Monday, June 25, 2012

Rewrite and rewire

1. Chart necessities
    When you start with existing code then usually it's well bloated. There are half formed, half-implemented ideas, constructs remaining from discarded ideas as well as code that's lying in comments. We need to remove all of this and add new code so that the new software ends up being slicker and easier to manage than old software. Code management is a complex job, and it's almost akin to file management on your personal computer or Laptop. Often you horde up files and what not together and when you start on cleaning you come to understad that half of the stuff is junk. So is with code. In any application which doesn't have quality people looking after it, there's a lot of junk code lying around. It's often in the form of unimplemented ideas coded partially which end up in comments. Or structures that are not used anywhere. Or header files that are not included anywhere.

2. Start with barebone infracture
    We start with an empty project and often don't pick up anything from old project. We study the old code, we evaluate it and then import the parts that we think are good enough. We stay away from junk code. We don't use code that's overtly complex or is dependent on too many things. Instad we develop our own simpler code that does the same thing.

3. Add pieces as well as dependencies
    Next as we go on adding functionality to the application, we increasingly find ourselves using more and more code from old code. So we must make sure that we are nitpicking the required code only. Also we do the same for dependencies.

4. Finish product
    This way we finish the project with minimal code from the old application and the constructs we are using are incredibly simple to use. We have just finished one milestone and if we are strapped for time then we send this stuff out as it is for testing.

5. Don't test it yet; remove unneeded code
    Now if we have time then we spend some of it deeply studying the current code and removing anything that doesn't meet the quality criteria. We need to have a threshold for the quality and so we follow the guidelines and we finish the QC.

6. Optimize existing code
    Next we perform some optimization. Experienced devs like us usually have lists of things that need optimization.

7. Refinish project
    So after all this we celebrate the official development freeze.

8. Give it for testing
    And send it for testing. Which is followed by a small bug fixing routine and some time in between we have the gold party.

Another Sunday and a fortnight with windows phone 7.5 on Samsung Omnia W

I really wish every Sunday was like this. Actually I have taken a break from the Internet, just visit the net to check out the mails on Gmail and check out the 2-3 websites that I frequent for news.

Well anyway as for the Sunday, I woke up at right time in the morning, had my favorite breakfast then some work followed by lunch with my favorite veggies. After couple hours of sleep and an evening stroll ending with a glass of cold coffee. Then some more work and now dinner - that was probably the best egg biryani I've eaten till date. Just wish I had someone to share this with, but no worry. That problem will be solved in due time. Anyway so here ends the Sunday and maybe it wasn't that interesting for you but the good part is the one coming below.

So windows phone! For a guy who's been messing with Linux since his late teens, ending up with windows phone is a surprise. Well how I did end up with the Samsung Omnia W is not what I'm going to talk about now. We are going to see what I have found with the Omnia for this fortnight.
Lets first see the device, Omnia W. Its a mid range smart phone. It doesn't pretend to be high end and after reading a number of reviews I got the impression that Samsung have put together a solid smart phone that is solid looking and would appeal to people who like unpretentious hardware. The phone's form factor is bar touchscreen. The display is 3.7 inches of Super AMOLED. And its gorgeous! Below this are three buttons - a windows button that acts as the home button and two touch sensitive buttons on its either side. On left side is 'back' button and on right side is 'search' button. Above the display there's the front camera as well as proximity and ambient light sensors.

The left side hosts the volume rocker and its a bit thin but works alright once you get hang of it. On the right side near top side there's the power button which also acts as lock button. And near bottom side there's the camera button. Its with half press and works alright. On the top we have only the headphone out. The bottom hosts the micro USB port which is used for charging too. On the backside near top is the 5mp autofocus shooter with LED flash on its right. A Small opening for speaker sits to its left.
That's all about the handset. The package consists of a long enough micro USB cord, a power adapter, a pouch and couple of manuals. There's no driver cd or software disk for that matter. Of course Samsung or MS wants you to grab the latest Zune software and use it to connect the phone to PC and transfer stuff to it. Anyway after I got Zune set up - which was a painful process since ,Zune needed a few of my windows components updated as well, transferring files was easy enough.
Of the remaining hardware specs, the display is protected by gorilla glass. The 1500 mAh battery is removable. The battery cover may look like its brushed metal but it's just plastic. But the fit is nice and solid. The sim card slot is aside from the battery and you don't need to touch the battery do remove the sim. The battery capacity of 1500mah is tad small for such a smartphone though, especially when you consider the 1.4GHz processor and 512MB of RAM. The handset has 8GB of flash of which about 6GB is available for user. So music or video junkies would stay away from this phone.

The Zune way of transferring things to the phone is the first walls of Microsoft's walled garden - no USB storage mode. Well, lose some, win some! 
On performance side the OS is smooth. The apps load fairly quickly and I am yet to see any crash or hang. The animations are smooth and there's no stutter or lag anywhere. The marketplace is small compared to android and you find its smallness when you search for something you would usually have an app for on say Symbian, but here you may end up one or two choices only. Still MS is hoarding developers and they have managed to get enough prominent apps on the platform.
On usability front, I find the settings provided just enough without getting overtly complex. Actually when I compare the settings available on windows phone 7 to say that in Symbian, I find that Symbian provided far too many settings and so that fine grained control is missing here. But at least they have the bases well covered.
Though as you go on using it for some time then you would find some annoying little things that the MS engineers have missed. E.g. The messaging functionality doesn't support sms drafts which is fairly common functionality found everywhere. Also in the mails you can only attach pictures. If you want to attach any document to a mail you need to go through the office hub and mail the document from there.
The phone comes with a sparse set of apps most of which are useful one way or other but you would probably uninstall all the picture related apps.
The preinstalled office suite helps with various type of documents and you can at least view the docs on the phone. Try creating something and you would probably pull your hairs out trying to wrestle with things. So stick to your laptop/ultrabook or whatever for content creation.  If there was a laptop dock then we might have put the office functionality to use.
The mail functionality is easy to set up and works as expected. One thing MS got right was onscreen keyboard. And even a guy like me with large thumbs can type comfortably on the provided space. In horizontal mode I can type fast using both the thumbs and the autocorrect functionality makes sure that the errors are kept at minimum. The keyboard shows predictions in the top line and if you are typing really fast then the autocorrect takes care of that in the best way possible. Of course your thumbs will have to be following at least the approximate path of the word for the autocorrect to work.
In portrait mode typing with one figure works okay though since the finger travel is more you often end up with tired finger/ forearm. Overall typing is not at all a problem.

The live tiles may prove useful if you are heavily into social networking or have a lot of stuff from web appearing on the homescreen but in my case most of them are staying static and so I have limited use for them. The applications list though has one neat feature which is grouping of apps alphabetically and alphabetic group selection. The group selection pops up when you click any character header with theme color or if you double click the application list. This screen is 'a to z' characters out of which you can click any to go straight to that group of applications.
Windows phone 7.5 supports multitasking and a long touch on the back button takes us to  screen where all currently open apps are shown and we can shift to any of them. Though there is no way to close any app from this screen. we need to select the app that we want to close, this takes is into the app and from there we must close it.

Well from telephony point of view I don't have any complaints. The calls are clear and Signal reception is good. The network sometimes plays vanishing act but I think that's the Airtels crappy network. Maybe I'll get another operator and check it out. The microphone volume looks adequate enough.
The 5mp shooter at the back is above average and it shoots good enough snaps. I'm yet to get a good opportunity to put it to test. There are a few settings provided and they are equivalent to what I have on my Sony dsc w510 point n shoot cam which I got for 6,500 INR couple of years ago. So once I get an opportunity I'm going to get some photos outside and compare both at 100% crop.
The 720p video though is greater than what my point and shoot pocket cam can do. So I guess I'll test the video too on the outside. Just need to get some sun out and some good landscape to shoot. (It's rainy season, and I live in a city!) If I shoot the city traffic it would ruin both our moods.
I don't think I'll ever get to use 3G considering the rates the operators charge here. The only 3G cheap enough is BSNL 3G but then I would rather stick with edge. On Airtel edge I'm getting 10 to 12 KBps which is nothing to talk about.
On the other hand the wireless performance has been good. Also the hotspot functionality provided by Samsung is really good in helping me connect my laptop to Internet via Omnia very easily.
As a smart phone, Omnia is serving me well. I can check my mails as well as news easily on it. I can use the cellular Internet on my laptop easily via Internet sharing. Sending music to it is easy enough. Putting movies and videos on it is painful though since Zune software first cross encodes it all. So it's a time consuming process and the 6GB of storage means you have to be economical with what you put on the device. The apps are okay and I have come to an acceptable mix that I find provides best functionality.
The screen is a major point for this smart phone. The music and video functionality is good enough. Though there is no sound enhancement. I would have liked some DNIE since I'm using Klipsch image S3 these days.

The battery life is average. It lasts just about a day and you would usually put it for charge at the end of day. Again I don't mind this even though I feel it's battery life is way less since I came from dumb phones. As a comparison my secondary phone - Nokia 101 lasts 3-4 days usually and I often forget to charge it so that sometimes I find it dead and I wonder when was the last time I had charged it.

Though overall I find myself happy with my Omnia W. And the fact that there's hardly any other phone like it in its category makes it a special case. Naturally I'm a Nokian at heart and I had used almost all Nokias software wise. In fact recently when I wanted to gift a phone I gifted a Nokia C5-00 5MP which costs half the price of this phone but packs a punch functionality wise. Of course that's almost a year ago. And right now Nokia 710 gives Omnia W a tough competition. Though with announcement of Windows phone 8 we need to see what new breed of smart phones does WP manages to create.
Well I'll hold onto this Omnia for a while till the landscape becomes clear with next winner. Maybe google will get its act together and release some much needed features and performance tweaks for android. And we might have a super winner. Till then, adios.

Sent from my Windows Phone

Wednesday, June 13, 2012

Words on Linux Mint 13

LM13 was released a few days ago and me being a mint fan aptly downloaded and installed the 64-bit variant with Cinnamon Desktop. I also went through a number of reviews to see what others have noticed. The overall tone was Cinnamon Mint has come up together as a really good distro though there are many small corners that need polish.
After using Mint 13 for last couple of weeks I can see that it's true. Mint 13 is an excellent distro and the mix of applications, the usability and the character as an Desktop OS are it's main features. And no other Linux distro can beat it right now. In fact as of now I don't find myself going back to Windows or my tried and trusted Ubuntu 10.10 installation anymore.
The things that need polishing are few enough that they shouldn't prove to be a deal breaker. One thing I noticed is that we need a better interface for appearance customization. The colors and themes are good enough but we need something splashy and vibrant looking. Maybe they need some Windows Metro colors.
Right now LM 13 is very well positioned with Mate being there for people who need a fast desktop while Cinnamon being the one for people who have fast machines and like the effects.

p.s. I think I haven't been fair to Mint 13. It's an excellent OS and everyday I use it I appreciate the work done by the Linux Mint Team more and more. I think I am too tired to write anything more.