Why I still don’t want to like Apple products
Apple really continues to show they want to lock in and control even their potential users. Constantly I see new reasons why Apple are working against open standards, freedom in development and freedom of choice. Some recent examples:
HTML 5 Showcase
Stupid! browser lock-in. Not even the index page that does not showcase any HTML5 at all is accessible in any other browser than Safari. A warning, maybe even as a modal dialog, about browsers and their support could be convenient - but to first block all browsers and then talk about the open web standards that are the future of the web gets, in lack of better wordings, silly. Now where Apple in general with Safari and their website works against open standards and freedom one must admit that their open source decision on the webkit rendering engine is a step in the other direction. But to me everything points to this being a strategic decision to have the a good, stable and fast development of the rendering engine that is just more and more important in their other proprietary systems.
WWDC for (almost) everyone
In 2010 you do not need to require registration as well as require usage of a proprietary download manager (iTunes) to be able to distribute video content. I was going to look at some video presentations of the conference but when realizing I had to download apple software where I need to be very careful to unclick 5 items to not get extra shortcuts, update managers or codecs I do not want - I turned around. Obviously this becomes even more bizarre as they showcase the <video> element in the HTML 5 demos.
Good examples in how you make conference content available rather than promote lock-in:
Google I/O 2010
FOSDEM
The flash opinion
Whereas I want open standards to as high degree as possible there is one thing that I feel is more important and that is CHOICE. The choice of the developer and the choice of the user. There is one thing you should do to control this choice and that is give information. What Apple decides to do with Flash is choosing themselves for both the user and the developer.
With the last version of the Android mobile operating system it is for instance possible to deploy Adobe Air applications on the android cellphones. This gives a lot of more ready applications, future potential developers and saves huge amount of time in converting flash applications to the native languages of the platforms. Apple argues that it is Adobes intention not to help developers with creating the best application for iPad/iPod/iPhone but to create the best cross-platform application. They have reason to dislike this as they have gotten such a good amount of dedicated iPhone developers - but I hope times change so that users and developers gets to do the choice. A good rating system lets users decide what apps are good - no matter of the code or framework it was written with. An open system lets others be part of the innovation - both with open and proprietary technologies. Let developers know the pros and cons of different development methods and work towards giving them as much choice as possible. Let users get the information about possible problems with some frameworks, size of downloads and what not - then let them chose and rate depending on their own experience. Users are the best user guides.
Dissecting the 4G term
The term 4G has been around in the news alot in scandinavia for a rather long time now. Mostly because of the Teliasonera network in Stockholm and the fights about the new wireless networks in Oslo. But lately it has more been dominated by the american networks.
However, the term 4G is already splitting off more than even broadband was doing at the start of mainstream internet connections. For now it has several common meanings:
LTE
4G has been the marketing name of the scandinavian 3G LTE networks (3G Long Term Evolution) whereas it will only at best (and in theory) lead to an actual 4G network in the end. The standards are actually just that - named to be the evolution towards 4G and not 4G itself. However TeliaSonera decided it was better to market something as fourth generation compared to third generation long time evolution. Makes sense from that perspective, really. But one could ask himself if that should not be considered false advertising.
WiMax
In the US it's another provider - Nextel Sprint - branding the new WiMax wireless networks as 4G. This is an even further stretch from the truth as the technology used will not even in a best case scenario go towards what is really the 4G mobile network. It could very well live up to the same performance but is not the 3G route into 4G as 3G LTE actually is.
4th Generation device
Some people seem very confused with Iphone 3G(S) now that the Iphone 4G is at the door. The name comes from the same term as the wireless technology; third generation. But the Iphone is merely saying that it is the fourth generation of the iphone, even though the third generation of the iphone was unluckily the first one to get support for the third generation mobile networking.
The real definition of 4G falls way behind all of these meanings. Will the real 4G have to switch name to leave space for all the illusions, perhaps?
A first glance at hiphop
Facebook recently released their PHP on steroids named HipHop as open source. I listened to their presentation a while before at the FOSDEM conference in Brussels and was as many others impressed - but not as entusiastic as many others seem now.
Some say it's nothing new because there has been a small amount of PHP compilers before or because there are op-code caches already. What HipHop does however is not only to compile the code base to C++ but also process the code in several stages - to use as specific data type possible for instance. Facebook engineers are saying that they see 30-50% performance improvement over PHP that is already boosted by APC. Indeed that is a huge deal given the amount of application servers they use.
On the other side a lot of attention it has been gotten is almost the same as that of APC. It´s seen as a general purpose performance booster. But as with APC results for most people will be disappointing for the reason that most of the application time is not spent in the PHP code with most websites.
Facebook is indeed special compared to most websites. For instance they generally do no joins of data at the database level. That results in alot more data in the application as well as more basic application logic.
The reason they often chose to totally exclude joins are several. Amongst others it´s performance draining for the database servers which are generally harder to scale. It´s also very hard to do when you need to query a whole lot of servers (that can also be sharded by different factors) for each and every type of data you want to join.
HipHop is made for the giants by a giant. The huge sites with a lot of traffic that have big amounts of data to do queries against. Smaller sites will have much less benefit from the performance boost of it as most of their time is spent in databases, caches, reading from disk etc. The results will also vary greatly depending on how much of the code base of the website is mundane (basic constructs like loops, processing with non-dynamic variables etc). Basically everything that can be rewritten with static functions and variables are the most welcome targets to the HipHop optimizations.
Even with some 10 commodity application servers I would say that Hip Hop should give little enough performance boost to justify the time that needs to be spent to learn, test and maintain the framework. For Facebook though, I can certainly see how it's very welcome even with several man-years of development costs as they have thousands (?) of application servers and have good reasons not to drop PHP in most heavy parts of it.