Irfan’s Corner on the Web On Mac, Linux, Grid, Virtualization and Software Technology

24Feb/073

Adobe Flex 2 is a Real Winner!

[digg=http://digg.com/tech_news/3_Reasons_why_Flex2_is_a_winner]Since the last week I've been getting my feet wet with Flex 2, a programmatic way to create Flash applications. And I'm thoroughly impressed by it! It's a promising Web 2.0 technology which has to potential to take your web experience to the next level. Flex 2 applications, because they are made in flash, are faster than equivalent AJAX applications while providing a richer, more desktop like, GUI. For example I'm not impressed by Google Docs, which is very slow compared to a desktop application but have a look at Gliffy, a promising MS Visio alternative of which I've been making increasing use of in the last few days. As is the custom nowadays, these are my top reasons why I think Flex 2 is a winner:

  • Its EASY: Flex2 application have a very simple model: The application, including the GUI, are defined in standards compliant XML format (MXML), the application logic is defined in ActionScript 3.0, a language which is similar to Javascript but object oriented. You can relate this to AJAX applications, where the GUI is defined in HTML and the application logic is in Javascript, however Flex2 applications contain gui controls which are not found in HTML, and with the help of the Flex2 Builder, which is an IDE based on Eclipse, building Flex 2 applications is very easy and you can create a more richer interface experience.
  • Its Extensible: Flex2 doesn't do everything, for example it can not connect to data services directly, rather you have to set up a data provider source which provides data in XML format for Flex2 applications to use. Flex2 supports various mechanism to communicate with other frameworks, it supports RPC for example, and it is very simple to link php with Flex2, so one can get a powerful backend in php, with an appealing GUI in Flex2.
  • There are no cross-platform/browser issues: AJAX would be the best model if all browsers supported the same javascript or everyone would be using the same browser and you could never disable javascript. There are varying levels of support for DHTML and JavaScript in different browsers on different platform. With Flex2 applications you don't have this problem. You can get the latest Flash player from a single source, supporting a single API. The Flash Player runs on multiple platforms, which means (borrowing the standard Java phrase): Write once, run everywhere.

However there are some drawbacks to Flex2 aswell, Flex2 Builder is proprietary and not cheap (Its way more cheaper than it previously used to be), where as majority of AJAX frameworks are open source. However you can still develop Flex2 application for free by making use of the free Flex2 SDK

Having raved about Flex2, I dont think deploying flex2 for all types of web application is a good idea. I love to use AJAX enabled web application such as Google Maps and GMail, however I hate to use AJAX based desktop-type applications such as Google Docs. I think Flex2 is viable only for the development of desktop like applications for the web.

Filed under: internet, web2.0 3 Comments
24Feb/070

Google Apps will never replace MS Office

[digg=http://digg.com/tech_news/Google_Apps_will_never_replace_Ms_Office]

At least for me! And with MS Office I mean any desktop office software ie. OpenOffice.org
Why do I say this? Precisely because I find Google Apps to be completely useless for me. I tried to compile an article on it to check its functionality, I find numerous problems:

  • Docs is just like some formatting toolbar with a huge text box, and it is extremely dificult to navigate in lengthy documents, whereas desktop office software you can easily switch between pages, this limits productivity.
  • I mostly write articles/papers which are peer reviewed by my friends who highlight and comment on portions of text. You can't do that in Google Apps, although you can add comments, but they are inserted inline to the text, which can be confusing. In MS Office comments, and changes are shown in a sidebar. I also see that footnotes are missing.
  • Google Apps is slow compared to desktop software. There are numerous other web application such as Gliffy, which is a charting and diagramming software in Flex, which for me can replace MS Visio easily, and the response is good aswell.
  • Because its webbased there are numerous distractions, one may get an instant message notification, a new mail, check a slashdot/reddit/digg out etc, and what happens when the internet when the internet is disconnected, or my google account gets hacked, Google Apps I believe will be a hot target for h/crackers.
  • Google Docs is awful for formatting, like the one required for research publications. I tried formatting according to IEEE 2 column format, and it was hell!

Google Apps as it stands now is far from replacing anything. Its excellent for blog posts like this and short articles or 'to-do' lists, however its not a serious danger to any of the desktop office software, and they are to remain for a loooong time.


28Dec/0616

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?

24Dec/066

Craigslist coming to Pakistan

Well not exactly, but a craigslist inspired service is in development here in Pakistan. The website is called "YayCheez" a slang word used to denote an emotion where "you get what you wanted" (can be interpreted wrongly, I mean materially).

The site is still beta, and I would encourage people to start using it to iron out any bugs in the system. There are some e-shops available for the Pakistani market like ShopHive which sell new stuff but support only a limited number of cities, but this website is like a place where you could get new aswell as used stuff, and its extremely useful if you want to get some stuff (Ipod??) which is not available in large parts of the country.

Having had a cursory glance there are two things which I would request the developers to work on:

One is a rating system, where people could rate people with whom they had some transactions, this is to ensure that good sellers/buyers get recognition and future sellers/buyers can have increased trust in the person concerned. There are some real problem related to trust b/w buyers and sellers esp. in Pakistan. I was initially thinking of proposing an embedded video conference system embedded in the site, but that's impractical in Pakistan, where most users are behind dialup connections. However I'm also not comfortable with actually meeting someone and performing a transaction right there. In Karachi, Pakistan's largest city, for example street crime is very common, how can I be sure that the buyer who is meeting me is not someone who would rob me at gunpoint? In the US you have atleast the police/legal system to fall back on, but neither is the case in Pakistan. But I'm confident that the people behind the website are innovative and will think of something to handle this. Maybe the readers can propose something?

Another thing which I would recommend the developers to improve upon is the interface! It's a web 1.0 website, which is hard to navigate and in my first try, I didnt even know how to post something. Amongst other things I would recommend the developers to use CAPTCHA in the signup forms, otherwise the system would be really vulnerable to spam.

24Dec/066

Never host with Serversea!

Earlier this year, we were looking for a hosting service, where we could host our website, one of my collegues, Shuaib Khan, recommended to us to host with Serversea, because they provided good service and were cheap, just $30 per annum! We went for it, but now we realize that this was a mistake! Serversea advertises 99% availability, however to be honest this figure is closer to 30%. Just now I was updating our website, and the domain went down!! I'm an incredibly busy person and I don't get much time to do stuff like website updates etc. But when I do get the time, the domain is down!!!! The Serversea setup is riddled with problems: Just when we started, the mailing lists won't work! then the archives were not being created, there were problems with authentication later on. Once the mails from the serversea server were blocked because of spam originating from their networks, which put us in an awkward position, as we could not interact with our international collaborators.

So just to say summarize it all: avoid ServerSea, the money you will save will be compensated with your time, so just go for a better hosting service!

Filed under: internet 6 Comments
9Dec/0613

Novel SuSe Linux: Most Laptop Friendly Distro!

I have years of experience in Linux, and have used countless distributions in the past. Slackware has been my all time favorite. Over the years I have finetuned it for my PCs that they exhibit performance which I could never dream of in Windows. The thing I really love about Slackware is that because it is raw, the amount you learn about GNU/Linux is enormous. So In desktops at least in my place Slackware rules. However I would not say that Slackware is for the Desktop, it is a raw distro, which requires a lot of expertise and time to fine-tune and get everything working. I initially used to pitch it to newbies, but they always ended up being disgusted with linux due to the amount configuration they had to do.

Recently I got myself a Dell Inspiron 6400 Notebook, and installing Slackware on it, was pleasant at first, but than soon I realized many things where not working, after extensive configuration messing with the xorg.conf, countless kernel recompilations and others I got everything to work and enjoyed Slackware on my Laptop.

Today, I thought for a change I'll try out OpenSuSe 10.1 from Novell out. And it has been a blast! From the first glimpses of the installer I said to myself "hmm.. 32 bit!" (slackware has DOS-like installer, I know its not the only one with a 32bit installer, I've used Redhat's anaconda, its good, but the SuSe one is impressive). Soon I was in for surprises, everything went well during the installation: At first my external mouse and the touchpad automagically worked! Even the scroll wheel did :) . Then as the installation proceeded, my sound card got detected (with which I had problems in Slackware, although I had compileed SND_HD_INTEL into the kernel, it still wouldnt work) , the graphics card (glxgears shows close to 900, thats 800 more than Slackware default :) ), along with the appropriate resolution (1280x800). Bluetooth, WiFi, firewire, everything was picked up by the installer automatically. This is how I expect a Linux installaton to be! SuSe really sets the standard here.

In Slackware, we have the very raw pkgtools package management system, which is simple and easy. But sometimes one runs into version conflicts, just as in Federo with "RPM-Hell". SuSe has perhaps one of the best package management system built into YaST. It handles dependencies transparently, and downloads and installs them without any special intervention.

So OpenSuSe is here to stay in my laptop! I know there are some political arguements against Novell for having struck a deal with Microsoft, and some are going as far as proposing a boycott of all Novell code. But the fact is Novell has made SuSe an extremely user-friendly distribution which really rocks on laptops! I'm sure it has the same performance on Desktops. So with OpenSuse and some other distros like Ubuntu etc. Linux is finally ready to enter mainstream desktop computing.

27Nov/068

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.

viz.png

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.

12Nov/060

Diving into Python

Recently due to a project(I am part of a group building a next generation operating system, which would allow seamless resource sharing on a global scale) complication I decided to ditch a particular component and implement it in another alternative language. I explored various possibilities. The component is a SOAP web service based thing. It was previously implemented in C, using the Axis2/C framework. The initial impetus to use the Axis2/C framework was to make a web service based component which was as fast as possible. But the problem is that Axis2/C is not mature, it hasn't even crossed the 1.0 milestone! The component was riddled with segmentation faults. It only worked in Slackware 10.2! When we upgraded to Slackware 11.0 in our lab, the component stopped working! I spent some 8 hours trying to debug it but to no avail! I finally decided to ditch the component and implement it another language which was more productive than C and didnt have manual memory management. I had numerous alternatives, Java, which I found to be too resource demanding; PERL, the problem with perl was that I am the only one in the team who knows PERL, and I would have to implement everything myself, I finally settled on a combination of Php and Python. I read somewhere that Python had bad performance as compared to php in hosted applications. So I decided that the server side portion of the component is to be php based and the client side portion is python based, and we have ample expertise in the group in both php and python.

With this effort I hope to dive into python and contrast it to Perl, I will write a subjective comparison of the two languages soon.