Why are most Twitter clients for the iPad just so bad?
Recently there is has been lots of innovation in App design for tablets. Apps like Qwiki, Flipboard, Zite, Pulse, Reedr have really figured out how to give a good user experience on a tablet. However, sadly, most twitter clients have not. Even iphone twitter clients like TweetBot are better than most iPad twitter clients as they are more optimised for the display size. The fundamental problem seems to be that twitter client developers think that iPad is just a scaled up iPhone.
With the help of this thinking various successful iPhone twitter client developers have released new iPad clients which are nothing more than scaled up versions of their iPhone application, with some added iPad elements. For instance, the following screenshots are from Twitterific and Echofon on the iPad.
T

As you may observe, over 90% of the screen it taken up by a single UITableView. IMO the UITableView is an efficient way to present of a list of items (or a stream of tweets) in a small display. It makes no sense however, to just adopt the same thinking on a larger screen. A better use of the iPad screen is made in TweetDeck for instance. It makes more rich use of the screen, as the following screenshot depicts. However, unfortunately, the TweetDeck app has some performance issues.

Recently a new bread of applications such as Flipboard and Zite have emerged. These applications enable you to consume information in a magazine like fashion. I believe they too are an efficient way to consume your twitter feed and lists however they are not design to be full fledged clients. I believe there is a gap in the iPad App market for twitter clients that make rich use of the screen yet do so in a computationally efficient manner.
If you are aware of any good twitter clients please post to the comments...
Strange issue in Safari 4
I've been facing this issue since the last couple of weeks.
When I open a webpage in Safari 4, the page becomes "gray-scaled" after a couple of seconds.
See the attached screenshots on what I mean.
Once I load Google News, this is the page I get.

After a few seconds, it turns into this ugly site:

Anyone faced this issue yet?
Impressive web-development features in Safari 4
Today I stumbled across some impressive web development features in Safari 4 (or are they WebKit features?).
When you right click and select "Inspect Element" the Web Inspector window opens.

The Web Inspector provides numerous features which facilitate web development. Some features I found useful:
- Live HTML and CSS Editing: In the Elements tab, you can browse the entire page source and edit elements as well as CSS styles and preview them in the browser.
- Web Page Profiling: Personally, I found the resources tab most useful. In a single view I found out that there are some images on my front page which take a considerable time to load.
- Script Debugging: In the scripts tab, you can execute scripts in the page in debug mode.
Before discovering this, I used CSSEdit's web browser. CSSEdit's X-ray mode allows me to edit HTML and CSS and preview on live pages. Anyone aware of some other great web development tools for the mac?
Firefox 3.1 b2 finally has “proper” Mac Support
Firefox 3 was a radical departure from Firefox 1 and 2, neither of these versions had a native look and feel on the Mac, but nevertheless were a better browser than the native Safari. Firefox 3 introduced native look and feel but, I had numerous issues with it, and preferred Safari for a while. (e.g. the slow browsing on long webpages, I wrote about earlier).
Now finally, Firefox 3.1 b2, not only has a more sleeker Mac-like interface, it also supports the multi touch features of the new macbook/pros. This makes Firefox for me, a more favored browser compared to other browsers in the Mac.
Semantic Web Workshop at HP Labs Bristol
Today I attended the Semantic Web Workshop at HP Labs Bristol. The HP Labs in Bristol, UK are HP's second largest research facility in the World, and one of the largest computing research facility in Europe. The Labs focuses on many different core technologies which include Quantum Information Processing, location based wireless services, semantic web, agent-based computing, privacy and identity management and mobile health care.
So what is "semantic web", most basically it is a set of technologies which aims at making information on the web (which is predominantly human oriented) machine readable. Allowing users to express ontologies and models to make machines and software do the reasoning instead of humans. Semantic applications could for example find patterns of symptoms for a specific disease or they can allow you to find the nearest doctor via a simple search on the internet. For Semantic Web to work, people need to define data about the data, "metadata", in order for machine to process it according to some model. This metadata is usually defined in Resource Description Language (RDF) or in the Web Ontology Language (OWL), which as is claimed by many as more expressive than the more popular RDF. Just as there is SQL to query a Database, there are query languages to query metadata which enables reasoning on the actual data. A popular Query language is SPARQL (pronounced Sparkle), and sure enough this language was designed in HP Labs Bristol. So the building pieces of semantic web are in place, but where are the applications?
For a layman progress on semantic web seems to be going very slow, infact most of the the Web2.0 has nothing to do with Semantic Web, which was seen as the next generation Web. However there are semantic web software all over the place at the backend. At the workshop it was revealed that companies such as Amazon and Google had deployed semantic web technologies and keeping their platform proprietary for competitive advantage. Semantic web technologies exist however they don't exist in such a framework which people can use.
One of the prime projects in HP Labs Bristol, is Jena. Jena is an open source semantic web framework, one of the first of its kind. At the workshop some few more were introduced: Talis, an easy to use framework to develop semantic web applications then there is an effort by Ingent Publishing Cooperation etc.
Many applications were presented in the workshop, which really showed off the capabilities of the Semantic Web. The focus of the Semantic Web community currently seems to be to create user friendly frameworks/development environments where users can develop semantic web applications. Just as there is DreamWeaver/Frontpage/Expression which helps us develop Web applications, similar frameworks are required for the next generation of Web applications.
Overall it was an informative event, especially for me who wasn't versed with Semantic web technologies before.

Me in front of Building 3, HP Labs, and beneath is the main building of the complex
Open Source World lacks Good Web Development IDEs
Linux is considered the de-facto server based operating system. A typical Linux distribution comes with everything any web developer could have asked for: php, apache, python, perl, ruby etc. However there is one thing that Linux sorely lacks: Web Development IDEs. Sure KDE comes with Quanta, and there is BlueFish, and there used to be Nvu. Each IDE has its own strengths, for example I love coding php in Quanta, BlueFish rocks at HTML authoring, however there is so much more to web development nowadays: XML, CSS3, JavaScript to name a few. And each IDE really sucks in handling these things. Today I was coding in Javascript and Quanta kept crashing!
To just give a flavor what the open source world is up against when it comes to web development IDEs. Just have a look at the latest enhancements to the already powerful Visual Studio (not a web development IDE par se, however VS always has supported web development due to ASP). Then of course, no comparison is complete without the mention of Adobe Dreamweaver, MS Expression Designer although seen as lame in the Windows world is light years ahead of any open source web development IDE unfortunately.
So what is a Linux web developer to do? Put up with crashing, feature deficient web development applications, or get the proprietary ones and run in them in through virtualization (this is the path I'm thinking of adapting)?
The fastest Download Manager for Linux is on its way!
I've been disappointed by the state of linux download managers for quite some time. While on the Windows platform, some excellent download managers exist such as FlashGet, Internet Download Manager and Download Accelerator Pro, besides many others. What is it that sets these download managers apart? Its their support for what I call "multithreaded downloading", enabling them to download different parts of a single large file in multiple streams, independantly of each other! The benefit: an exponential increase in download speed. On a shared 2 MB/s if I use the ordinary linux download managers: kget,wget etc.. I dont get more than 50Kbps, but because I'm short on time, I go to a windows machine with one of the above download managers installed, and guess what the speed is: 160-220 kbps! Its not a Windows vs. Linux issue, its just that a 'serious' download manager in my opinion has never been developed for Linux. But this will soon change! I've started a project, in python which aims to be feature compatible to the download managers I've mentioned above. I've developed the module which allows me to download a file in independant chunks, parrallely. I'll keep you all posted on the progress. I'm also thinking of using Jython for this project, to create powerful Java frontend for it, so that people in Windows/Mac don't have to use those download managers above and pay licenses!
Are there any features which you would like to see in this download manager, for now I'm calling it Py/Downloader?
Has AJAX killed Java Applets?
Java introduced the notion of Browser based applications, in the form of Java applets, which included nuances of feature rich desktop applications within a browser! It was a huge success and widely popular during the dot com bubble, but now I rarely hear about new nifty applets? Web Start gained some traction but the furor over it has died down. Rather another technology has taken the reigns now: AJAX, asynchronous Javascript and "XML". AJAX is the marriage of server side scripting languages such as perl or php and client side scripting language such as Javascript perhaps a little flash, imbued into HTML and some little XML or some other mechanism to transfer information, we get a powerful framework to create desktop-like applications on the browser! AJAX has taken computing by storm. The wave of AJAX based startups, acquisitions and mergers has already begun! Are we heading towards another bubble or is this one for real?
AJAX applications are a definite improvement over previous flickering page based applications, and what more, these applications are NOT memory savvy as Java applets used to be, and no runtime environment is required to run such applications, just a compatible, updated browser is enough. Nowadays many more innovative AJAX applications are being built than Java applets, and people are accepting AJAX more readily than ever. This year for the first time I heard people doing AJAX based undergraduate degree projects in Pakistan, there is talk in my research lab of developing AJAX based intefaces to some of the distributed applications developed here. Not long ago, browser based application used to be the exclusive domain of Flash and Java Applets.
So what was wrong with Applets? I don't need to list any reasons, you can check out this poll which was conducted in Java.net, the official Java forums, and complaints ranged from: Too hard to deploy to to slow in loading!
So we can safely say that AJAX has killed Java applets, a significant portion of standard Java.
From Google Trends we can see how much interest people have in the three technologies, Java Applets, Webstart and AJAX, and compare the news reference volume certainly AJAX has ruled the headlines in recent months and years.
As wireless connectivity expands and gets increasingly cheaper, more and more mobile devices will get connected, once this happens the future of J2ME would look bleak. I personally have started using AJAX based services like Airset.com, which provides an intuitive calendar solution that helps you also to remain in touch with your friends and family. The built- in calendar program which came with the PDA, was developed in J2ME and it lacked a lot functionality, and I found it a bit clunky to use. Another drawback of J2ME applications which you won't find in AJAX applications is the mutual incompatibilities between mobile devices. Like I can purchase a game from the internet designed for Symbian mobiles, but when I try to run it in a cellphone using symbian it won't run! After a little bit of investigation it turns out that the game supports Nokia symbian mobiles, and some certain sets NOT Motorola ones, like wise try running a J2ME game for the Motorola E680i on a Nokia N92 it wont work!
The greatest impediment to AJAX of course is the lack of connectivity, once connectivity is seamless and universal, than people will stop using native applications like the one developed in J2ME and start using AJAX ones.
One complaint I have about AJAX services is that many of them run poorly on cellphone/PDAs, this is certainly not a problem with AJAX itself, because services such as Gmail and Airset.com, prove that AJAX can run on supported browsers on mobile devices if the service is well developed.
