Archive for the ‘Open source’ Category

iPhone and iPod Touch, why the negative responses + feature requests

Friday, October 5th, 2007

I followed the iPhone introduction closely. Partly because I just love Steve Jobs to present, due to how he engages you (even if you’re watching the recordings) as well as the paradox of the casual Steve with overall slickness of the presentation and the products. But more importantly, I love Apple products. By now I own a black MacBook, 3 iPods and an Airport Extreme. ( Apple Fanboy… sorry)

Both the iPhone as well as the iPod Touch were greeted with a lot of enthausiasm and hype. In my mind, rightfully so, since they are great devices for their intent and above that superbly designed. However, as of late, I have seen more and more negative responses on the net primarily due to Apple restricting the platform both devices provide: Apple started to lock down the iPhone more and more to make sure you don’t unlock the phone and don’t install 3rd party software.

Now, I for one, would love an open iPhone/Touch which could be augmented by 3rd parties because either someone writes an app that proves to be usefull (more bang for the buck) or everyone screws it up and you end up not installing 3rd party software (seems unlikely, given enough time). This is not the point of this post though: Apple decided the platform is theirs, not yours. Applications written for both devices will come from Apple, and Apple alone.

This last bit is what pisses off a lot of technology folks. I’d like to provide a different perspective: buy the device if you’re okay with locked down platform. In the case you’re not: don’t buy it. Either buy something else (I wouldn’t know what though) or wait for Apple to see the declining sales trend. Because, believe me, if opening up the Touch/iPhone will increase sales substantially, Apple will do so.

But beware, there is another way this could play out: you’re waiting for Apple to open up the platform and sales are going through the roof. That just indicates that the mainstream audience doesn’t find the openness a necessity and that makes you a niche market. Given the current success (shopping season is around the block) you could be waiting a long time.

Bascially, given Apples reputation in terms of designing applications, operating systems and devices, they thought long and hard about the feature set, and if you’re not okay with that please change your perspective from “Why the ***** is this not an open platform” to “Jeez, I am apperently not in the target consumer group”.

Personally, I have a technology background myself, I am totally okay with the status quo: I’ve bought an iPod Touch the minute it came out and I’m loving it. It “just works” and that’s exactly what I bought it for. No need to tinker, no need to get some vague 3rd party app installed that will help me track my Todo’s, etc. I’m perfectly thrilled by the user experience as is!

There are however a few features that I either wish the Touch would have or otherwise hear some rationale about why they were not included:

Wifi integration

The Touch is able to browse the web, buy songs on iTunes (I love exploring new types of music through the store, btw!), etc. But why doesn’t it see my MacBook on the network as well? It could do all kinds of nice features like:

Synch music/photos over the network without needing a lousy cable.
Synch my bookmarks: it’s quite irritating that I need to start from scratch in terms of bookmarks. (Although I find the keyboard doable after some practice, entering long URLs by hand is not my favorite past-time )

Music/Photo

I can remove movies from the Touch on the Touch but I can’t remove any pictures or music. I find myself often using the Touch listening to music I really don’t want to have anymore, I’d like an option to remove those and after I synch it with the host computer they should optionally be removed there as well.
The titles of photo albums are quite large, which is great for readability, but there is no way to look at the longer album titles to figure out which one you’re looking for. For example, I have 6 albums called “Westendorf Wintersport 200x” and I need to determine by the photos which album I’m looking at… not great.
Synching smart play lists: I’ve got this “100 songs most played” play list which I turn on when I don’t want to bother with handpicking the song I listen to. The Touch does synch the playlist (I’ve got one on my Touch with the same name and filtering) but doesn’t load in the same numbers, causing all kinds of random numbers to enter into that play list which doesn’t seem necessary to me.

Browser

Once, I tried to open up a few wikipedia articles in tabs to have some information handy during a recent holiday; only to find out that the Touch doesn’t keep it in memory and as soon as you try to open up that tab tries to reload the page. It would be great if it just kept a cache for those pages that are open in tabs (can’t be that hard, right?) so that you can still use them even if you don’t have wifi. Now that I think about it, it would be great to store YouTube video’s in the Movies section as well, given that you’ve already downloaded it.
One non-feature request: the safari browser intergration is superb; the best browser experience I’ve seen on a mobile device!

(Please note, that none of these issues with the possible exception of the Safari bookmark synch, would be solved by opening up the platform)

Memcached usage across large web properties

Tuesday, May 29th, 2007

Lately a discussion on the memcached-mailing list has started where for example the guys behind facebook.com and bloglines.com are participating and sharing some of their experiences. I’m don’t think this is rocket science, but I’d like to quote some of the things that are being said and provide some links to the relevant discussions.

About the general “would you want to bet your uptime on memcached as an infrastructure component?”-question:

We consider memcached a critical part of our infrastructure. The benefit of memcached in a typical setup is to reduce the amount of database hardware you need to support an application; if you have enough database horsepower to run unimpaired with most of your memcached servers out of service, then there¹s probably no point using memcached at all, since it without a doubt adds extra complexity to your application code. [link]

If you shard all you data, etc. etc., is memcached still worth it?

Question:
And you would split (federate) your database into 100 chunks (the remaining 100 would be hot spares of the first 100 and could even be used to serve reads), wouldn’t that take care of all your database load needs and pretty much eliminate the need for memcache? Wouldn’t 50 such boxes be enough in reality?
Answer:
Don’t forget about latency. At Hi5 we cache entire user profiles that are composed of data from up to a dozen databases. Each page might need access to many profiles. Getting these from cache is about the only way you can achieve sub 500ms response times, even with the best DBs. [link]

Also, there is a lot of talk about a FUSE (File system in user space) filesystem based on top of memcached. Not only would that make caching available for those applications you do not control (blackbox) but it would have some really great advantages for your generic PHP app:

Over the last two weeks i spent a lot of time discussing a memcachefs (fuse-based) with two fellow geeks - applications that came to mind were (a) the smarty cache (b) php sessions; for both cases, losing files (as a whole, not random parts inside) is ok and readdir is irrelevant, which allows cutting a lot of corners. [link]

To which project do I want to contribute?

Sunday, July 13th, 2003

Developing… I’d like to contribute!

I’ve made small contributions to open source projects. Someone on the translation front, others by contributing idea’s and/or actual code. But I’d like to do more (after all I’ve been using open source software so much!). One of the things I always dread is to ‘get into the project’. You have to read so much: how is the architecture, get all the dependencies, read the policies regarding commit access, testing, etc. So I’m trying to select a project on which I want to focus for the next few months, trying to come up with some useful patches in my free time. A couple of candidates: Apache, Subversion, Anthill, Phing/Binary Cloud, PHP5 and Mozilla. All these projects touch my professional work as well, and that is A Good Thing(tm). I’d like to walk through these projects one by one. (This it actually not to inform you of something I’m going to do, just my ‘internal’ decision making process, exposed to the rest of the world. Read it or disregard it as you see fit :-o).

What would I like to find in a project on which I’m going to work in my (so scarce) free time?

Multiplatform: I’d like to do something that I could use/develop on Linux as well as on windows (the latter having less priority of course).

Perspective: It should be a project that has a lifetime in front of it (not something that is going to be replaced in a few years, e.g. CVS).

Language: Preferably a compiled language (C/C++/Java/etc.) instead of an interpreted language (PHP/Perl/etc) because that’s what I work with professionally. I’d like to keep my skills sharp over the entire line.

Documentation: A project with a good organization has the advantage (e.g. RFC’s/bug reports etc. are input to a starting contributor). A HACKING file or some other documentation to orientate starting developers is an advantage!

Easy Compile-Run-Debug cycle: I’d like to contribute to the Linux kernel but compiling the kernel, installing it, rebooting it… that’s too long a cycle for yours truly.

Coolness factor: this property of a project is undefined but working on some projects is just cooler than working on other projects (e.g. Linux kernel is way cool, writing man pages is definitely not :-?).

Need for developers: some projects are developed into their 2.x versions. Clearly they don’t need the developers as much as a 0.1beta project. If you want to contribute something the latter has more need of you.

Albright, here is my decision matrix(tm).

Apache

Subversion

Anthill

Phing/BC

PHP5

Mozilla

Multiplatform

7

7

7

7

6

7

Perspective

7

8

6

6

8

7

Language

7

7,5

6

6,5

7

7,5

Documentation

8

7

6

6,5

6,5

7

Devel-cycle

7

8

8

8

6,5

7

Coolness

7,5

9

7

7

8

8

Developers needed

6

8

7

8

8

7

Totals

49,5

54,5

47

49

50

50,5

(Blab bla: my opinion, would like comments, this is my opinion, these values may or may not be based on the truth)

Well if you’d take this table, I’d go working on Subversion… I’d like that very much. But, this table itself is not definitive. So if you, the reader, know any topics on which the above projects should be judged, before choosing a project, please tell me and I’ll include them in the above table. The same goes if you know of any projects that might be cool for me to join. Mail me! or place a comment here, or backtrack, whatever you like.

First I’ve got some other stuff to finish, and in the meantime I can read documentation and stuff, to get into this new project…