The sabberworm Weblog

Jobs…

11/14/2011

…would never have let this slide:

0 comments

Missing iOS Features

11/23/2010

Since Macworld posted a list which virtually overlaps nowhere (except for an option to mark all mail as read), I thought it would be interesting to mention my biggest gripes with iOS 4.2.

Allow JavaScript execution

All right, I get the “no interpreted code” rule but this really hurts because of web browsers. No web browser is complete without a JavaScript engine. If MobileSafari gets it, why not the competitors? Opera Mini does its way around this limitation by executing JavaScript on its own servers and then displaying the result. But really, c’mon. By not allowing competing web browsers onto their platform, Apple is going way farther than Microsoft ever did and they were fined for it. If that’s what it takes to change Apple’s mind then so be it. I just want my Fennec on my iPad.

Better handling of scrollable inner content in MobileSafari

Speaking of MobileSafari: the way it handles scrollable content inside the page boundaries (either when using iframes, the object tag or other elements with an overflow) is really laughable. I get the idea: expand all elements so that they don’t scrol and only scroll the outmost container, the page itself. But this is executed like a bad hack and breaks terribly if web sites rely on containers with overflowing content having a certain size. Overflowing containers can be forced to scroll in MobileSafari but then they have to be scrolled using a (very precise) two-finger scrol which nobody will get since there are no scroll bars anywhere on the scrollable element.

Something else is also horribly broken in MobileSafari: absolute positionion. I won’t go into the details since they are well-documented elsewhere.

Better support for Bluetooth standards

iOS could easily support the full file exchange protocol with browsing: just display as folders the name of all the apps which enabled the iTunes file sharing flag and allow Bluetooth to browse their Documents directory contents and upload/download files.

Also, it would be great if tethering and syncing worked more along the lines of the Bluetooth specification: Apple has benefited the longest time from handset manufacturers implementing these protocols according to specifications so people could use them on a Mac with iSync and Internet Connect so it would be only fair to repay the favour and implement these things according to published specifications instead of doing vendor lock-in.

Programmatic access to the phone audio in/out

This always seemed to me a very obvious omission: apps like SonicVox or Voices would be a lot more useful fun if they could be used while a call was active, modifying the audio stream between caller and callee. I also envision recording calls, playing music to the person you’re talking to, allowing apps to take calls from certain phone numbers or after a certain number of unanswered rings…

Tethering

I’m not talking about using my iPhone’s internet connection with my laptop, I’m talking about using my iPhone’s internet connection with my iPad. Should be an easy fix but it’s probably not going to happen since it would:

Still, I hope to be surprised.

AirPlay to the old Apple TV

Again, my request is a modest one: I don’t need to stream video, just being able to stream audio would be fine. Why can iOS stream audio perfectly well to AirPort Express base stations without them needing a firmware update or anything of the sort but not to the old Apple TV which pretty much used to work – in terms of AirTunes streaming – exactly the way these base stations did?

And speaking of AirPlay: i want to be able to stream just the audio of a video to the new Apple TV. This works fine when streaming to AirPort Express base stations so it should work as well when streaming to video-capable receivers. The solution to this problem, however, is twofold: Firstly, a UI has to be invented for choosing wether to stream just audio or audio/video combined and secondly, streaming audio to the Apple TV should work even when no HDMI device is connected but just an optical audio out cable. There is a workaround for the first problem: lock the iPad while the video is playing, resume it from the lock screen and then choose to stream the audio to the Apple TV, then unlock the device and resume watching. This will, however, not work when the TV isn’t on since that severs the HDMI connection which lets the Apple TV mark it as „HDCP non-compliant“ which in turn refuses the streaming even if it’s only audio which would go unprotected through the optical audio port anyway. Aargh, damn content-protection mechanisms: always making consumer’s life’s harder when getting stuff legally…

Arrow keys on the on-screen keyboard

Escpecially when the text-insertion cursor is only one character off, being able to move it instead of setting it (a process which is both tedious ans well as time-consuming), would be very welcome.

0 comments

PHP CSS Parser

06/10/2010

I’ve spent hours online looking for a CSS parser to use with PHP but all searches came up empty, half-assed or required me to register with some strange sites. Frustrated, I decided to write my own parser which is pretty much working but very incomplete. I don’t know whether this will be another write-once, update-never thing like much other PHP code on the web is but one feature is definitely coming: The ability to generate output from the parsed structure (which can be programmatically modified after parsing – or indeed have been created from scratch in PHP).

Some other features are planned as well but if no-one else is willing to work on them, them ever getting implemented will depend on whether I myself need them at some point.

Without much further ado; here it is: http://github.com/sabberworm/PHP-CSS-Parser.

Update: Changed from a gist into a full-blown GitHub repository.

8 comments

All good things… (you know what’s coming)

10/14/2009

Sadly, I must inform you that my attempts at resolving the pending Legal issues with CBS have been unsuccessful and I’ve taken down Daxhotel from the App Store. The e-mail I got made it quite clear that it’s not possible to change Daxhotel in any way short of a complete rewrite to make it acceptable to CBS:

Raphael:
First, please accept my apologies for the delay in responding to you.
We have checked our files and have been unable to locate any record of receiving the email you addressed to "termsofuse@startrek.com" on September 24, 2005.  We also do not have any record of responding and advising that we have no objections to your proposed use of the STAR TREK properties on your website, which predated the "Daxhotel" iTunes application and can now be seen at www.sabberworm.com/daxhotel. Any proposed conclusion that no response constitutes our implied consent for you to use this content in this manner is not accepted.  We further note that the terms of use from www.startrek.com in 2005 may have permitted your personal use of some protected content, but in no way did any permissible use include publication, distribution and/or commercial use of any of the content.
Nevertheless, we have again reviewed your "Daxhotel" itunes application and underlying website and continue to object to your use of the STAR TREK properties in this manner.  You are utilizing the STAR TREK properties in a manner which is inconsistent with our exclusive rights under the law:  You use the "double parabola" logo; You use the stylized trademarks for each of the series' titles; You use copyrighted images on your website; Most importantly, you specifically state that your application is a "comprehensive STAR TREK episode guide," which you are downloading from www.startrek.com.  Your use constitutes trademark and copyright infringement. This is not fair use.
We appreciate that you provide notice on your website advising of Paramount Pictures and CBS's rights and suggest users of your services accept our website's terms of use; however, this does not eliminate our concerns.  Nor will your offering the application for free and removing the logos and STAR TREK name from your website and application eliminate our concerns with the clear copyright violation.
While we appreciate your enthusiasm for the STAR TREK properties, we cannot permit this use.  We request that you take immediate steps to remove the "Daxhotel" application from the App Store and refrain from offering this content in any format in the future.  Please confirm your compliance by no later than Monday October 19, 2009.  Otherwise, we will contact Apple directly seeking removal of the application.
Thank you for your correspondence and explanation.  We trust that you will comply with our request.

Mallory Levitt
Vice President & Assistant General Counsel
Intellectual Property
CBS Law
51 West 52nd Street
New York, NY 10019

From this response it seems clear that the technical aspect of Daxhotel which is that it does exactly the same as a normal web browser would do which could also download web pages for later (cached/offline) use is overthrown by some sort of semantical aspect which seems to imply that I or Daxhotel are in any way offering/selling/distributing “content”, which from my point of view isn’t the case at all. I am not offering any content, I am not even hosting it, I’m just providing a tool to access content that is already viewable on the web by anyone. No content is being distributed with the app.

Even though I’m saddened to see Daxhotel come to an end, I actually was surprised to feel a great bit of relief as I clicked that “Remove from sale” button: finally I wouldn’t have to worry about the future of my app anymore, about rejected updates and possible legal battles. I was free again. Free also to create something new. If you have any suggestions, please leave a comment…

Additionally, I will be releasing the Daxhotel source code in the “Daxhotel” section of this site.

Sincerely,
Raphael Schweikert

3 comments

Daxhotel = Fauxhotel?

10/07/2009

I’ve recently had to answer some emails asking (and rightly so) why Daxhotel, a currently unusable app is still being sold and I’ve had to come up with good answers all of which legitimate but none of them really convincing in itself. They were in essence:

To avoid these kinds of defences, I have decided to stop ripping people off and instead only rip those off that already purchased: I am making Daxhotel free for the time being (meaning as long as it’s not working).

Those who know how the app store work also know what this means: all the updates which are to (hopefully) come afterwards will also be free to the people who got it while it was free. So here’s your chance to get even and rip me off for a change…

Regarding the updates: I do intend to get the fixed version out – someday, it’s obviously taking longer than I thought it would. The fixed version is currently rejected (while the old version is still being sold even though nothing has changed except the added search and – obviously – the fix; but nothing that’s even remotely related to CBS’ IP…) and I’m currently in contact with a lawyer from CBS. Keep your fingers crossed.

1 comment

Crashes on load!?

07/29/2009

I have received a number of complaints recently about Daxhotel crashing during the initial data download process. I will be investigating the issue but even if I have a bug fix ready, it may take a long time to get the app ready for approval since the last update which I submitted to Apple for approval two months ago is still being reviewed.

I will take the app off sale if I can confirm the crashes and re-submit a fixed version ASAP. Let's hope for the best.

Please comment if you have any insights.

Update:

Initial analysis shows that the episode lists on startrek.com are broken, all season links only display the first season (technically speaking, this means that the season parameter is ignored, the list always displays the first season instead of the requested, e.g. second season). I have put up a warning in the app's description. It is not yet clear if this is the reason for the crashes but it's quite likely.

Update 2:

I've identified a second problem: the episode Encounter at Farpoint, Part I has gone offline and yields in a 404 not found error page. I've updated Daxhotel to fix both problems by means of The Web Archive and submitted the updated version to Apple for review. Let's hope they do. And quickly!

6 comments

Sunk in deep

07/03/2009

Sunk in deep

Sunk in deep, originally uploaded by sabberworm.

If this image elicits an emotion then it’s the one I’ve been feeling for the last 3+ weeks…

0 comments

Daxhotel 1.2 w/ Search Feature Submitted

05/11/2009

I’ve now got myself to submit the new Daxhotel to Apple. This update contains the search feature you’ve been waiting for (see this article)! Many thanks to Christel and to Matthias Schorer for beta testing. Let’s hope Apple will not deny it because of “pending legal issues” (which have been pending for ages now).

1 comment

WIRED!

05/08/2009

I can’t believe Daxhotel is mentioned in a WIRED article. I’m very fond of my little app right now even though I’m not sure the writer of the article has done anything but copied the description…

0 comments

Search feature coming your way

05/07/2009

Good news, everyone,
It’s been a busy week: in addition to everything else that’s currently going on, I’ve been finishing Daxhotel’s search feature.

Currently, it’s not a full-text search but rather a very complicated LIKE statement. The downside of this is of course: searching finds partial matches (for example a search for “and” finds “hands”, too) and it’s not possible to search for multiple words at a time (searching for “dax hotel” will only yield results where this sequence of words appears in this exact order - in this example none). The upside of this is: it’s not required to build up a search index on first launch. I think searching works reasonably well this way. If there are any complaints, I’ll look into a full-text search (if it were natively possible to run full-text search queries with SQLite, I’d probably have chosen this option.

I’m not yet ready to have it submitted to Apple. This is for two reasons. First: I need some more, thorough testing.

Secondly and more importantly: as you may have noticed, all non-CBS/Paramound-approved Star Trek apps have recently vanished off the App Store. This did not pass me. Quite the opposite in fact: I too got a very frightening E-Mail from Apple which forwarded a communication from CBS demanding the removal of my app as well as two others. I responded to the CBS representative directly saying that:

The response came quickly and said: “We’ll look into it”. This was roughly two months ago and I haven’t heard from them since. I did not take down my App because I had clearly stated in my response that I would not fight them and if they really wanted, they’d get their way. One other developer who was notified was Matthias Schorer, developer of the Tricorder TR-580 app. He too enquired about the reason for the cease-and-desist note but received no answer so he sent a second E-Mail saying he’d re-push his app to the App Store if he didn’t hear back within a certain amount of time. They never responded but when Matthias wanted to push the new version he’d created to the App Store, Apple would not approve it, instead referring to the pending legal issue. I’m worried that Daxhotel might meet the same fate so I’m a bit hesitant. On the other hand: a lot of people have been asking for a search feature and should I really have to pull Daxhotel, the least I can give them as a giveaway gift is this.

4 comments

Untitled (for now)

02/16/2009

Untitled (for now)

But we do have some ideas…

0 comments

Deserted beach

02/15/2009
Deserted beach
Oh, Föhr!

Deserted beach, originally uploaded by sabberworm.

Always remember the summer vacation during the tiring cold days of winter!

0 comments

A Wish is Enough for Everyone

02/15/2009

A Wish is Enough for Everyone, originally uploaded by sabberworm.

I’m incredibly late with wishing everyone a happy new year but I’m extremely glad I got Flickr blog integration working!

0 comments

Doin’ the Blog

02/12/2009

Coding my own blog seemed to be an interesting challenge. I took it on to be able to post one simple message to my website. I have a (very irregular) journal on last.fm but my last real (non-music-related) blog entry dates back a few years (and was posted on my plain-HTML-based blog I had on my old non-server-side-scripting-driven website for which I even hand-coded an RSS-“Feed”) so it was also a matter of pride to be “in the scene” again (of course, being most likely the only one to have an HTML-only blog was also my pride… back when).

Creating the first working version took some discipline but less time than I’d anticipated; I had it working in half a day. Adding a Captcha to the comment posting form took two hours and coding the RSS feed took a measly half hour.

This really showed me how much the tools I have at hand matter. When it comes down to estimating the time spent coding, the only tasks I regularly over-estimate are the ones where I’m working on Mini-CMS. As it happens, my website also runs on Mini-CMS and so now my blog does too. I don’t want to make the case that coding in Mini-CMS is far more efficient than doing stuff in Rails or that PHP is a better language than Ruby; far from it, actually. But for me, it is. And that’s because I know Mini-CMS inside and out unlike any other framework I could possibly be working with. I’m sure if I were a regular Rails coder, I’d say the same thing about Rails.

I’m thinking of days at work where I could hardly work on anything. Not because I wasn’t skilled but because the Framework I had to use was unknown to me or just a pain in the ass to use. I hate working under such conditions: coding becomes guesswork, interrupted only by numerous tedious look-ups of manuals and help files. Sometimes, however, that isn’t even the worst part: being held back by frameworks that require me to use a certain (slow) tool (which most of the time only works on Windows) instead of the one I choose to work with; unreasonably high caching values which leave you in the cold whether it’s still the old cached behaviour I’m seeing or if my modifications were wrong; test environments that require you to go through a lengthy rollout process by which all the session data gets lost instead of being able to instantly see changes like I can do with PHP and some well-set-up J2EE environments — all these things slow down my coding considerably. But what is far worse: they make me mad, nervous and – as a consequence – demotivate me. The demotivation itself is the single gravest factor in my slowdown.

I always thought I was atypical in this regard: that I’m the only one who is so demotivated by bad working conditions that I slowed down additionally and artificially as a result of the environmentally-imposed slowdown. But what if I ain’t? What if the single most significant boost in productiveness you can get coders to ever achieve will be when you start using frameworks which allow them to use the tools they like to use, code the way they like to code and work at the pace they like to work?

0 comments

My Biggest Gripes with the iTunes Store

01/28/2009

The iTunes Music Store was a great invention and I love it. As it is with everything, I also hate it because it swallows a big deal of my money every month (though recently, the iTunes Store has started giving me some of it back). But there are some things that continue to annoy me to no end.

iTunes Plus upgrades

Why do I have to do the iTunes Plus upgrade for every DRM’ed track I ever purchased? Why can’t Apple let me choose which tracks and albums I want to upgrade? Did I not buy a physical copy of Regina Spektor’s “Soviet Kitsch” after I’d initially purchased on the iTunes Store because I did not want the DRM? Now I have to “purchase” the album a third time. As much as I love her music, this seems to me just a waste of money…

During this new transition to an all-DRM-free catalogue, a lot of songs are not yet available in iTunes Plus format but somehow still show up as such in the search results:

iTunes Plus

But the buttons looks completely different in the album’s track listing:

DRM’ed

Yes, this is the same song. And no matter where I click buy now, I’ll always get the DRM’ed version of the song. I filed a complaint with Apple but the only thing I got in response was one free song coupon which is not of much use because as soon as “Until…” will be available as an iTunes Plus song I’ll have to get its Upgrade if I want any iTunes Plus upgrades.

UPDATE: It seems like someone at Apple is reading my blog (or is it just coincidence?). As of today, idividual iTunes Plus upgrades are possible.

And something else stinks about those upgrades: the way the should be working is as follows: the new versions should replace the old ones while retaining the old metadata. Yet this process only works in about two thirds of the cases. Sometimes you just end up with the DRM and iTunes Plus versions of the songs both living in your library side-by-side and you having to make the changes you made to the metadata (rating, genre, etc.) yet again; and even losing some metadata like play count and skip count.

Labeling

You’d think the music labels (and the artist) would want you to buy their music. When introducing the iTunes Music Store in 2003, Apple marketed it as alternative to the illegal download sites. It was all about providing a better user experience than those did. In those days, illegaly downloading music was painful: tracks were often incorrectly labeled, were bad quality or had no artwork.

However, the same is also true for the modern-day iTunes Store. Look at the song from the previous example. Whenever you see a song with an ellipsis in the title, in 99% of all cases, it is written using a triple-dot instead of an ellipsis (…).

This is just the tip of the iceberg, hovever:

Strangely-labeled tracks

You’d think they would manage to put a space between “Brink” and the parenthesis? Or propertly title-case the first word in said parentheses? Why is the music industry not taking more care at labeling music correctly. It can’t be that hard, can it? I never bought a single album on iTunes where I didn’t have to correct a single thing (and no, I’m not talking typographical apostrophes or eliipses).

Wonderous departures and re-entrances

Some albums rapidly change their pricing, iTunes Plus availability and track count or even completely disappear and re-appear at random. It actually happened to me a few times that I had eyed some album and, come the day I’d decided to purchase, it was gone.

Some albums are available in multiple variations, editions and versions. Some however are identical, yet differ substantially in price, artwork quality or labeling:

Same album twice.

I know John Lyons and I know he would never willingly confuse his listeners by putting up two identical-yet-different versions of his (great) record on iTunes. So I guess most of the problems I mentioned have got to do with how music rights are managed across the globe and how two companies could get the right to sell the same music in the same regions. If both of these companies have an iTunes Connect account, it has to come to such strange things as this.

International Movies and TV shows

I guess I’m just rambling on and on but my main gripe is really with how old-fashioned the rights to digital media still are handled worldwide: split into various sub companies, partners, franchisers, license holders, etc. This is the main reason why Apple still has not managed to bring Movies or TV series to the Swiss iTunes Store.

There are some american TV series I love. And CBS or ABC or Showtime or whoever produces them would happily sell them to me. Unfortunately, they can’t because they’ve sold the rights to market them exclusively in my country to someone else. And because that someone else pays them more money than people like me who like watching TV series in English at home on their Apple TV or computer would ever be able to pay them, they have no desire to change this. And that’s why instead of hundreds of companies, Apple has to negotiate with thousands of them. For every single country. These are the thoughts which often lead to one conclusion:
“It wouldn’t be so bad if the whole world was just one big country”.

0 comments

Daxhotel is selling! (Giveaway inside…)

01/19/2009

I honestly don’t know how successful I had Daxhotel expected to be; I hadn’t really thought about it at all. But I must say I was hugely impressed when I looked at the stats today and saw that since its debut on the App Store one week ago, my little iPhone app has been purchased exactly one hundred times.

As a thank you, I will send the first five people to comment on this blog entry (don’t forget to leave your E-Mail) a gift code for a free copy of Daxhotel, redeemable in the App Store (US only, unfortunately).

P.S.: For those of you asking: yes, I really set up (and coded) a blog just to tell you this. It’s not really finished: there’s still no RSS feed and comments are not yet validated (or moderated).

4 comments

Unit conversion command for Mozilla Ubiquity

01/19/2009

My first time playing with the dev side of Ubiquity.

Hacked it together today. It uses a GNU Units installation on my server. Found the need for it when searching a vergetarian thai curry recipe today:

Step 1 – Select measurement and unit:
Using Ubiquity unit conversion command – 1

Step 2 – Enter “unit-convert” command:
Using Ubiquity unit conversion command – 2

Step 3 – Get the result:
Using Ubiquity unit conversion command – 3

Get it at GitHub.

0 comments