Thursday, December 15, 2011

KDE 4.7.2 is Now Available for Debian

KDE 4.7.2 has been uploaded to both experimental and the semi official http://qt-kde.debian.net/ repository.

The release has been a long awaited one, delayed due to various reasons, and I hope this is a great news for many of us.

At the meantime, KDE 4.8 beta2 is available now from the upstream.

Sunday, October 23, 2011

Composite Key Problem in Doctrine and How to Work Around

I tried to create an invoicing system with symfony 1.4. It did not work out well as the database design contained some complex composite keys which were not possible to be mapped properly in doctrine that is bundled with symfony 1.4.

I tried to work around by creating the database first, and then generating the schema. But, if I use the same generated schema and created the database, some extra unnecessary  constrains were generated. These constrains made the database design useless. After trying a couple of time, I lost my faith in doctrine, and just gave up.

See my post on doctrine and composite keys to see the design which caused the problem.

I heard that symfony-2 has a better support for the composite keys, and tried it out. Again, it did not work out well.

Then, after some searching, I learned that to properly use an ORM, I should start with a class diagram. ORM should persist it to the relational database. I should not go the other way around, which is, creating the relational db structure and mapping it to the class diagram. So, I tried the above db design in the OO context, and below is the initial draft I could quickly produce. This diagram sees simpler and natural to put into action with an ORM.


A complex problem to be solved in one perspective, can be a very simple one in another perspective. Finding the right tool, if it seems hard, then consider finding the right perspective to solve the problem.

Sunday, October 16, 2011

Nokia - Maemo, Meego, Meltemi, and What ....?

History has proven that division of labour is the path of the future and present. Nokia should have concentrated on Phone Hardware rather than trying to come up with a phone OS. Their efforts to come up with Maemo and Meego were proven failures. They shared the same fate as HP's WebOS. (Now that google has bought Motorolla, will the history repeat? The answer is yet to be seen)

In the meantime, other phone companies started making phones for Android. That worked well as the model goes along the well proven division of labour concept. They had out-beaten Nokia in the Smartphone Niche.

From the above perspective,  Nokia's decision to go with Windows-7 Mobile is a good choice. And Plasma Active is a recent choicewhich is now open . Even if they had decided to go with Android, that would also be fine, if they had the capability to compete purely based on the hardware.

Or has Nokia lost their faith in their hardware competency and trying to survive with the brandname and some software differentiation?

Sunday, September 25, 2011

80% of the Words Used In the Quran Can Be Learnt in Two Months

If you are looking for an easy way to learn Quran the following site would be very helpful.

Start with the video embedded in this site. That gives a lot of useful information on how to use the material.

The brother who made the video, points to an external site and explains how to use it. I tried the links and found some of them are moved, but within the same site, and you can access them using the links provided.

Try it out, and Insha Allah you may benefit a lot!

Wednesday, September 7, 2011

KDE 4.7 is Delayed in Debian

I think I owe a blog post here because I see a lot of users visit my KDE 4.6 being delayed post. Whenever I login to debian-kde IRC channel, the topic says "No ETA for 4.7." I don't have any other information on the topic. I did look at regular places where I check for info, but could not find any.

As debian is a voluntary project, we can't expect them to commit to a deadline. People have their own lives to live. But, I tried the IRC twice to get some information on why they explicitly say "No ETA for 4.7." It seems there is no special reason for delaying 4.7 other than the usual one, need more helping hands.

I hope people join their hands with Debian.

Update: KDE 4.7 is now available for Debian

Defining QA Process for Teams Which Don't Write Test Cases

As I am leading a small QA team on an Open Source company, I have the task of defining the QA Process. The formal QA cycles, and process won't work here.

We have two major teams, one is working on the open source product, and the other one working on customizations of the open source product. The Open Source team is more agile, while the customization team being less agile. We have projects for which presales and estimation done in 15 minutes, development and testing finish in one day.  The largest project so far is two and a half developers working 3 months together, and two testers working both on manual testing as well as automation of basic test cases.

Writing test cases is not in the business model. We send the feature specification to customers and get it signed off before the project starts. The practice of signing the test case document is not there. I have spoken to the project managers, and none want the QA team to write test cases to their products. Since test cases are not signed off, they don't carry much business value for project managers.  For a project that runs one month, they don't want the QA team writing test cases for one week.

Following are some of the reasons why test cases don't provide a good solution to the company.
1. Specs are not written in a way so that business scenarios are easily visible. Rather it describes a small chunk of functionality. This makes it harder to write test cases before the release is made.
2. Test cases are useful if the same set of test cases are executed in multiple cycles. This, usually, is not the case. A story/functionality, is usually tested thoroughly in only one cycle. And there will be defect verifications in one or two more cycles and that's it. This reduces the value for the test cases a lot, and people prefer ad hoc.

I find it harder to define a testing process where test cases are not practiced. Since testing then goes undocumented, it is harder to monitor and control it.

I know that Agile teams don't rely on formal test cases, and they have a different view on testing. I am currently going through  "Agile Testing" by Lisa Crispin, hoping that it will shed some light to the problem.

Today, I found something interesting in the book, which I would like to share with the rest of the world.
Agile testing doesn’t just mean testing on an agile project. Some testing approaches, such as exploratory testing, are inherently agile, whether it’s done an agile project or not. Testing an application with a plan to learn about it as you go, and letting that information guide your testing, is in line with valuing working software and responding to change.

Sunday, September 4, 2011

Automating Web Applications - How I Got Started - 3

I am going to explain a tool that I created which stands in between Record and Play Selenese and robust automation code.

You better read my previous post to see why I came up with such a solution.

The purpose of the solution is

  1. the tool should be usable by non-technical people as well
  2. a single modification of the web application should break only a single unit in the automation suite. For example, if a text box is renamed in the application, it should be possible to fix it only in one place and correct the suite.
  3. should allow re-usability. i.e. We should be able to build a block of solid piece and reuse multiple times
  4. should support parameterizing the data. 
  5. the learning curve should be small, and after that users should be writing test cases straight away without worrying much about building large frameworks.


Bearing the above considerations in mind, I decided to go with a "hack-around of Selenium IDE."
The design had three layers
1. Action layer - containing all the actions. An action is the atomic element which performs a logical action and placed inside an action file.
2. Template layer - Template files are there just to contain action files, and other template files. They are similar to directories which contain files and other directories.
3. Data layer - Data files contain the data of a template file. Parameters of the template file, and the data file should exactly be the same. Data in the data files will be copied to templates, and then to action files.

Let me give three sample action files here. Name of the action is the name of that particular file.

Name of the action file: OpenURL 
param:URL
<tr>
   <td>open</td>
   <td>#URL#</td>
   <td></td>
</tr>

Name of the action file:TypeSearchItem
param:SearchItem
<tr>
  <td>type</td>
<td>id=lst-ib</td>
<td>#SearchItem#</td>
</tr>

Name of the action file: ClickGoogleSearch 
param:
<tr>
<td>clickAndWait</td>
<td>btnK</td>
<td></td>
</tr>


The below template file could hold the above action files.

Name of the template file: SearchGoogle

param: URL SearchItem

OpenURL URL
TypeSearchItem SearchItem
ClickGoogleSearch 


Then I create a data file to hold the data of the above template. It would look like below.

param: URL SearchItem
google.com,mailtoirs.blogspot.com
google.com,orange
google.com,apple
If I run the tool, it will map the data file to template file, correctly replace the parameters in the action files and produce one selenese script which can search google for "mailtoirs.blogspot.com", "orange", and "apple", one after the other.
  • Action files are usually created by recording in the Selenium IDE, and then modifying it a bit for parameterizing, and saving as different files. Creating the above example took me less then 5 minutes. 
  • The final resulting selenese script is also run using the Selenium IDE. 
  • If google changed the name of the search box one day, I would have to rename it simply in one action file (TypeSearchItem), and run the tool to regenerate the selenese script. Had this been a manual recording, I would have to replace it in all three searches manually. 

What I described so far is the essence, and a simplified view of the tool I created. The tool actually contained another layer, suite, which puts templates together and generate a selenium suite.

We got a project where the tool could be used immediately. The project was fairly complex, and the duration was 2-3 months. Myself and another new person, who was a fresher to the field, had to complete the manual testing as well as the automation within the duration of the project. The concept and tool became very handy, and with some struggling, we were able to successfully automate the product to a certain level.

I was hoping to automate the entire base product using the tool. But, as usual manual testing were prioritized, and I did not have a chance to automate for a while. Then, as days passed, the initial concerns and assumptions changed, and that paved the way to another technology to be used. Details will follow in the next post.

Wednesday, August 10, 2011

Automating Web Applications - How I Got Started - 2

If you have'nt read part-1 of the story, please read it so that you will get the full picture.

I appreciate the good design in IBM three tiered architecture, but I believed there could be better object oriented ways. The three tiered architecture gave me some good insights on how to maintain reusability, maintainability and the importance of a good design. It actually inspired me towards a different design.

I imagined a page as an object containing three other objects. componets, actions, and verifications. Each of these will have respective page specific items. Test cases are put in a different layer. A simple test case would look like the following. Think of the below as a psuedo code, just for explaining the concept, not a real one.
Login login = new Login("URL");
login.actions.login(username, password);
if(!login.verifications.verifySuccessfulLogin())
  System.out.println("login no successful");
else
  System.out.println("Successfully logged in as " + user );
I designed this without knowing that there is a similar, but better pattern called pageobject design.

As I told in the previous post, this was a slack-time task, and though I was doing it with a lot of hope and passion, I was the only one doing it. A lot of code representing a lot of pages need to be complete to cover even smoke testing level. But, if the classes are ready, and API is ready, progress from Smoke Testing level to Medium/Thorough testing would be much quicker. The point is, a lot of coding needs to happen to achieve some minimal real progress. No one in the management realized that this is another development project, which demands a lot of programming skills and resources (people). After almost 1.5 years, I still seriously doubt that  they have a good understanding of the load of the task.

After about three months, my supervisor, who is also a very good friend of mine asked a simple question. "Do you think we would be able to make it by the end  of the year if we go in this pace". This let me re-think the whole progress and the target I would achieve at the end of the year.

By that time, only one test case was done. I had managed to ramp up another colleague, the one and only resource I had for sharing the work (only if he was free of other tasks). He was struggling to catch up with Java, and not so enthusiastic because the company is not Java based, rather PHP based. When we got into any Java specific issues, none was there to help. Another major risk was the entire product, the web application, was being re-written using symfony framework at that time. So, the product was changing. One traditional rule in Automation is "Not to Automate Against A Changing Product". The product has to be stable, before starting automation. So, by the time I write another ten more test cases, most probably the entire module would have been re-written making the automation code outdated.

Given all the above facts, I decided this is not the way. This prompted me to go for another solution. I'll explain that in the next post.

Automating Web Applications - How I Got Started

I am in software QA stream. And an Open Source company whose main product was a web application. I was asked to write functional test automation for the web application as the company wants to push in that direction. At the time of the request, i.e. early in 2010, functional test automation was not a high priority, but completing manual testing on new releases had higher priority. Functional test automation was a slack time task, and I was new to the company and web applications.

I had hands on experience in working in a full fledged functional test automation project, trying to automate IBM DataStage using Rational Functional Tester. We were doing automation as per the three tiered architecture. Three tiered architecture separates, appobjects into one layer, tasks into another and test cases into another. Test cases call tasks, and tasks are achieved by manipulating appobjects. Check this link out for more details on the architecture. Though I find the concept not being very much object oriented, still that solution was a good one, scalable and maintainable. So, my whole experience was around IBM DataStage, which is a desktop application.

Now, in the new company, it was about web applications. It is not a web site, to emphasize, but a real desktop like web application. They had done some automation already, which was selenium IDE recordings. I was told that selenium scripts would fail sometimes without proper reasons. I was OK with it because that is something common to any automation suite. But, the degree of emphasize they put on that fact was quite puzzling, and then when I tried things out some other interesting facts also came along. One of the colleagues, who had contributed a lot to the scripts, told me that when the scripts are run in high speed, things often fail. So, running in a slower speed would make many of the test cases pass. I did some googling and could not find such an issue with Selenium. And the scripts did not have verifications built in. Renaming a single texbox in the application would necessitate updating so many places in the scripts.

Slowly the responsibility of automating the entire product came unto my head. My previous experience and expertise taught me that record and play back is not the solution. A definite NO to that direction. Then I had to do some research, to find out a better way to automate the application. The company was willing to invest in commercial products, even though open source technologies are preferred. But, If I pushed them towards big commercial products, I knew there would be too much expectation on me. And if I later find out that we are not going anywhere with that tool, that would impact my career negatively. I wanted to stick to Open Source solutions for so many reasons, including my love towards Open Source. And I am still glad, that I didn't go behind any commercial software.

My research suggested WebDriver would be the best. I started with that, but there were two main problems. I was just a QA guy with some programming knowlege, and WebDriver was just a jar file without any IDEs and frameworks to kickstart. There was no one in the QA team, who could guide me how to proceed in this direction. We had a development team, and I had a good relationship with them, but they don't have the slightest idea of how a functional testing framework would look like. So, I could not talk to them about my needs. As I had been in an IBM Rational Functional Tester project, I knew how a matured functional test project would look like. The pretty fancy test reports, the ant commands that would let us run the test suite with different configurations, the object mapper interface which would give us the properties of the components, and so many other stuff. You can check this link to have a smell of it. All of them are missing, and all I was left with was one lonely jar file and the task of automating the entire product.

My stubbornnes asked me to write all the verifications using if conditions, and some research pointed me that firebug could show me the properties of the components. The dear Eclipse IDE was already there. And I started writing the code for functional testing.

That's how my journey began. Read the next post to see how things moved on.




Sunday, July 31, 2011

அன்புத் தொல்லை

அன்புத் தொல்லை என்ற வார்த்தைக்குப் பல அர்த்தங்கள் இருப்பதை நான் பல நேரங்களில் உணர்ந்ததுண்டு. பொதுவாக எல்லோருக்கும் தெரிந்த ஒரு அர்த்தம் தான் ஒருவரது அன்பு மிகுதி அடுத்தவருக்கு, அதாவது அன்பு செலுத்தப்படுபவருக்கு தொல்லையாக அமைவது. உதாரணத்துக்கு நீங்கள் ஒருவரது வீட்டுக்குப் போகிறீர்கள் என்று வைத்துக் கொள்வோம். அவர் உங்களுக்கு இரண்டு தோசைகள் பரிமாறுகிறார். நீங்களும் வயிறு முட்டச் சாப்பிடுகிறீர்கள். அவர் உங்களை இன்னும் இரண்டு சாப்பிடச் சொல்கிறார். உங்களால் முடியவில்லை. இருந்தும் அன்பு மிகுதியால் வற்புறுத்துகிறார்.  இங்கு சாப்பிடச் சொல்பவர் அது மற்றவருக்கு சங்கடம் தரும் என்றோ, தொல்லையாக அமையட்டும் என்றோ நினைத்துச் செய்வது இல்லை. அவர் ஒரு அன்பு மிகுதியில், நல்லெண்ணத்தில் செய்து விடுகிறார், ஆனால் அது தொல்லையாக மாறி விடுகிறது. இது தான் பொதுவாக எல்லோருக்கும் தெரிந்த அன்புத் தொல்லை. 

இதுவல்லாத இன்னொரு ரகம் இருக்கிறது பாருங்கள், அது தான் ரொம்ப மோசமானது. என் வாழ்வில் நடந்த இரண்டு சம்பவங்களை சுருக்கமாக சொல்கிறேன். அப்போது உங்களுக்குப் புரியும் இது எத்தனை மோசமானது என்று. இதைப் பற்றி இத்தனை விலாவாரியாக  எழுதுவதற்கு இரண்டு காரணம். ஒன்று, இது மாதிரி ஆசாமிகளிடத்தில் நீங்கள் கவனமாக இருக்க வேண்டும். இரண்டு, இது போன்ற தவறுகள் உங்களால் மற்றவர்க்கு நடந்து விடக் கூடாது. 


சம்பவம் 1
நான் திருமணமான புதிதில் ஒரு உறவினருடைய வீட்டுக்கு விருந்துக்குச் சென்றிருந்தேன். கூடவே என் மனைவியும், மாமியாரும், இன்னும் இரு சிறுசுகளும் வந்திருந்தனர். போன இடத்தில் எம்மை நன்றாகவே கவனித்தார்கள். விருந்திலும் உபசரிப்பிலும் நான் ஒரு குறையையும் காணவில்லை. என்னோடு கூட  வந்தவர்களுக்கும் எந்தக் குறையும் இருக்கவில்லை. இரவு 8 மணியளவில் சாப்பாடு ஆரம்பமானது. ஒரு பெரிய மேசையில் ஒன்றாக அமர்ந்து சாப்பிட்டுக் கொண்டிருந்தோம். நேரமும் ஓடிக் கொண்டிருந்தது. 
அந்த ஊர் கிட்டத்தட்ட ஒரு குக்கிராமம். இரவு 8:30 மணிக்குப் பிறகு டவுனுக்கு போக பஸ் கிடையாது. 8:20 நெருங்கும் போது நாங்கள் சாப்பிடுவதை நிறுத்தி புறப்படத் தயாராகப் பார்த்தோம். அங்கு தான் ஆரம்பித்தது அன்புத் தொல்லை. பரவாயில்லை, மனது நிறைய சாப்பிட்டு விட்டுத் தான்  போக வேன்டும் என்று அவர்களோ ஒரே அடம். நாசூக்காகச் சொல்லிப் பார்த்தேன். சாப்பாடு நன்றாகத் தான் இருந்தது, வயிறும் நிரம்பியது, நீங்கள் ஒரு குறையும் வைக்கவில்லை என்று முடிந்த வரை சொல்லிப் பார்த்தேன். அவர்கள் விடுவதாக இல்லை. இறுதியாக, கடைசி பஸ் தவறினால் சிக்கலாகி விடும் என்பதையும் சொல்லிப் பார்த்தேன். அப்போதும் விடுவதாக இல்லை. எனக்கோ தர்ம சங்கடமாகி விட்டது. அவர்கள் வீட்டில் ஒரு வான் இருக்கிறது. சில நேரம் அதில் எம்மில் டவுனுக்கு கூட்டிச் செல்ல இருக்கிறார்களோ என்றும் ஒரு சந்தேகம்.  

ஒரு புறம் எரிச்சலாக இருந்தாலும், பயமாக இருந்தாலும், இன்னொரு புறம் அவர்கள் மனதை நோகடிக்கக் கூடாது என்பதற்காக அவர்கள் இஷ்டப்படி இருந்து விட்டே வந்தோம். மணி 9  தாண்டி விட்டது. கடைசி பஸ் தவறியும் விட்டது. அவர்கள் வீட்டில் வான் சும்மா தான் இருந்தது. ஆனாலும் இதில் போகிறீர்களா என்றோ அல்லது எப்படிப் போகப் போகிறீர்கள் என்றோ ஒரு வார்த்தையாவது கேட்கவில்லை. வீட்டு வாசல் வரை வந்து வழியனுப்பி வைத்ததோடு அவர்கள் கடமை முடிந்தது என்று உள்ளே சென்று விட்டார்கள். அந்த ஊரில் இரவு 9 மணி என்பது 12 மணி மாதிரி என்று அன்று தான் எனக்குத் தெரியும். பஸ் மாத்திரமல்ல, ஆட்டோ கூட அந்த இரவில் தேடிக் கொள்ள முடியவில்லை. எவ்வளவோ அலைந்து திரிந்ததன்  பின்னர் இன்னொரு சொந்தக்காரரின் வீட்டைத் தட்டி, அவரது கூரையில்லாத லாரியின் பின்புறத்தில் நான், என் மனைவி, வயசான மாமியார், மற்றும் இரண்டு வால்கள் என்று எல்லோருமாக டவுனுக்கும் வந்து சேர்ந்தோம்.
 
இங்கு இதில் எனக்கு வந்த ஆத்திரம் என்னவென்றால், நாங்கள் பஸ் இல்லாமல் அவதிப்பட வேண்டி வரும் என்று நான் தெளிவாகச் சொல்லியும், எங்களை வற்புறுத்தி சாப்பிட வைத்தது தான். அவர்கள் செய்வது எமக்கு தொல்லையாக மட்டுமல்ல, பெரும் சிக்கலாகவும் அமையும் என்பதை தெளிவாக சொன்ன பின்னரும் கூட அன்பு செலுத்துகிறோம் என்ற பெயரில் எம்மை சிக்கலுக்குள் தள்ளி விடுவதைத் தான் நான் பிழை என்று சொல்கிறேன். இவர்கள் உதவ வேண்டும் என்பதற்காக உதவுபவர்கள் அல்ல. தனது மனத்திருப்திக்காக பிறருக்கு உதவுபவர்கள். பிறர் அதனால் தொல்லையில் விழுந்தாலும் இவர்களுக்கு அது பற்றி அக்கறை இல்லை. நான் உதவி செய்தேன் என்ற உணர்வு இவர்களுக்குப் போதும். 

என்னைப் பொறுத்தவரையில் இவர்களது உணர்வுகளைப் பெரிதாக மதித்து எம்மை நாம் துன்பப் படுத்திக் கொள்ளத் தேவை இல்லை. ரகம் அறிந்து பழக,  நடக்க அவனவன் தெரிய வேண்டும். இல்லையென்றால், அன்புத் தொல்லை ஜாக்கிரதை தான்.

 இதே மாதிரி ஒரு சம்பவம் அண்மையில் நடந்தது. அதை பிறகு ஒரு நாள் எழுதுகிறேன்...  


Friday, July 22, 2011

Ramazan is Coming - What's Next?

Ramazan is one of the most spiritual months for a Muslim. It is a month of self discipline and change. Every Muslim plans ahead for Ramazan, and some pay special focus for spiritual improvements.

I attended a speech yesterday, in which the speaker mentioned that the real question should not be "How do I prepare myself for Ramazan". Instead, it should be "What do I expect from this Ramazan". It is a profound question, and a well calculated answer and practicing it in Ramazan would make miracles in our lives if we try to really stick to it.


Monday, July 18, 2011

Sarcasm - Lennart Poettering

I could not stop laughing after looking at things that happened after Lennart Poettering's interview on LinuxFr.com. Just reading the article would give anyone a clear idea that this is the start of another flamewar. Just forget about the software, and focus on the sarcasm and the joke in the scenario I describe below, you will be able to see and enjoy what I enjoyed.

Slashdot had published the above article with the following title "Lennart Poettering: BSD Isn't Relevant Anymore". It had 415 comments the last time I checked. Out of the comments I read on the thread, the following two really are punching, whether they stand correct or not.

I don't take anything from this guy seriously after dealing with Pulse Audio on a few systems. The shit never improved and only added a layer of incompatibility to systems that ran just fine using ALSA by itself.
The below comes the reply:
He has a tendency to develop things halfway, without taking any input from any users, and then everyone using Fedora has to end up using it even if it's complete shit. If you criticize him, he's got some staunch defenders that will call you out on it, mostly the people who have only ever used Linux on a laptop... that really does seem to be the only thing he cares about.
PulseAudio - a useless NIH layer. ALSA was just fine. He lists a bunch of other problems with Linux audio, but everyone was just using ALSA directly, nobody was using his straw men really (Jack? OSS? Really?) This is the first thing I remove on my Linux boxes.
I predict systemd will be his next "hit". He named the control command "systemctl" even though every Linux has a "sysctl" command already... one of the most easily avoidable CLI namespace problems I have ever seen in over 20 years of UNIX and 18 years of Linux administration. I think systemd is because he really really wants to make Linux into MacOS X. If you want MacOS X, then great, it's a fine desktop OS, have at it.... but Linux is still mostly used on servers, and there is nothing wrong with that at all. Anyway, systemd just throws out everything that was good about init and even upstart, and starts over, and he is busy adding the features of cron and inetd to it for some reason. Because saving some tiny amount of space in the process table is somehow useful.
I just wish there was some review of features that make it into Fedora, etc, to see if they're really worth it.

After looking at some of the comments, I did a google search and came across a link, clicked on it, and the first line is by Lennart Poettering. It was just a single line by him. It reads "Slashdot is useless".

This leads me to wonder which is the guy creates more; software or flameware?

Saturday, July 16, 2011

How to Choose an Android Phone - Tips

If you are looking for an Android phone with a decent camera quality, and your budget is limited, consider the below tips to make a better decision.
1. Be clear, whether your priority is Android experience or Camera quality
2. Be aware that screen resolution (not the camera resolution) is a major factor deciding the quality of your Android experience. It should be of 320x480 at least. There are phones with 240x320. Avoid them.
3. Always compare the features with HTC G1 which was the first Android phone to be shipped. Make it as your point of benchmarking
4. Keep your options open and explore beyond the famous international manufacturers
5. If you are concerned about the camera quality, don't settle for anything lesser than 5 MP, esp. if you are willing to try out less famous brands
6. Real estate of the touch screen matters if the phones does not have a separate keypad. If it has a keypad, consider only the screen resolution and not the width. Otherwise, the minimum is 3.2 inches
7. Go for capacitative screen, and avoid resistive screen
8. Check whether you can root the phone. There are some good software for the rooted phones. Read this if you don't know what rooting is
9. Read reviews before buying any phone

Many manufacturers are trying to break into the low cost android market. Many models targetting the low end market are planned for this year. The market seems to be blooming and not yet stable. I hope there would be better options by end of October, and phones with more screen resolution may become cheaper. Here is a list phones I find interesting for a person with limited budget.
Vodafone 945
Spice Mi 300
Huawei X5, X6, S7
HTC G1

Software Patents - My Opinion

The objective of the patent system is to protect innovations and innovators. I think the world needs to seek some other means to serve the purpose.

As I was reading the news on Microsoft demanding $15 per each Samsung android phone sold, I enjoyed some of the users' brilliant comments. This exactly shows how business are working around the patents to cripple innovation which is competition.

The below comment highlights the issue.
No, the point is that the software patent process in the states stifles competition. For instance – this is one of the supposed infringements – “One of our patents enables users to select text, see what is selected via highlighting, and expand the selection in either direction as desired. (U.S. Patent No. 6,891,551)”
So tell me how another company is supposed to “innovate” round this? How else can you select text on a smartphone? Patents were designed to cover actual physical devices and systems – and competitors could come up with a new way of doing things. Imagine if a company had a patent, not on hardware ways to make a TV screen brighter, but on the concept of TV itself? e.g. “A patent that describes a system by which a user may view images on a screen and vary the image by means of a push button remote mechanism”. Most of these software patents should never have been invented in the first place. I’ll also point out that the above MS patent was issued IN 2005!! (http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=6,891,551.PN.&OS=PN/6,891,551&RS=PN/6,891,551) So no-one was able to select text or vary the select before then? What a load of crap. -- by  colesadam

Want to know what sarcasm means? Read the below comment
I should go patent “an item that is circular in shape that will move around and repeat in a repetitive fashion so that it may carry objects held down by Earth’s gravity across the Earth’s crust.” Has anyone patented a wheel? Why not I? -- by Cliff Porter

Saturday, July 2, 2011

How to Determine the Print Quality of the Camera Phone

I wanted to buy a camera so that I can take pictures of my son, and I was also interested in buying a new phone. I initially thought of buying a digital camera, as I was interested in taking prints, rather than just sharing/saving the digital copies. I had the impression that phone cameras do not print well. There are a lot of articles and comments on the Internet supporting this stand.

I wanted to analyze and see whether a phone with a good quality camera would fullfil both of my requirements. I rarely print photos, and a 6"x4" photo print would be enough for me.

I wanted to know what is the Mega Pixel value a phone should have to print a decent 6"x4" image.
Short answer: 5 MP would be enough.

I found some blogs/articles mentioning that the camera phone industry has hit a new level when it was able to build 5 MP cameras into phones. This I believe because 5 MP is the practical minimum needed to support some good quality prints. So, settling for anything is less than 5 MP is not advisable if someone is interested in the camera functionality of the phone.

There is an easy way to find out what is the size of a good quality print one can take with his camera phone. Consider the below example.

The standard resolution of a 5 MP camera would be 2560 x 1920 pixels.
Printing at 240 dpi would result in a nice looking photo print, but the industry standard is set as 300 dpi which is practically more than enough. (dpi = dots per inch)
Dividing the resolution of the image by 300 gives the size of the image in inches (when the image is printed in 300 dpi).
So, a picture from 5 MP camera (2560 x 1920 pixels)could produce a neat 8.53"x6.4" photo print.

Saturday, June 18, 2011

Hoping Kmail is Improved Now So that I Can Use It

I always wanted a KDE mail client for my gmail accounts for the below two reasons.

1. Support for multiple accounts
2. Better search support, at least in the local folders

I tried Kmail, first time with POP3, and the experience was confusing. Later on, I came to know that when POP3 clients don't modify the status of the mail in the server. For example, the mails read with the POP3 client, will still be marked as 'unread' in the server when accessed by another client. After knowing this, I gave Kmail another try, but using IMAP this time. Connection via IMAP actually removed this confusion, but it was so slow and painful to use. As of that time, there were a lot of people saying that the Kontact suite (thus Kmail too) was not yet ready for production. That statement indicated that Kmail was going through some serious development and gave me some hope for the future.

Though I gave up using Kmail, I still wanted to try it again due to the above two advantages. Now that an improved version of the Kontact suite has been released along with KDE 4.6.4, I am awaiting these to make it to either debian unstable (sid) to give it another try. I am excited as the release announcement specifically says that the IMAP speed has been improved, the reason why I actually quit Kmail.
Among the most noticable improvements are faster email notifications, vastly improved performance for IMAP email accounts, and ...
Lets wait until it arrives.


Wednesday, June 8, 2011

Handling Composite Keys Which are also Foreign Keys

Many-to-many relationships are usually resolved by having another junction table, which includes the keys from both sides of the relationship. This is a common scenario in database design. But things get slightly more complex when this junction table is referred by another entity.

Lets consider the below scenario:
There is a shop which purchases items in bulk, and resell them in smaller quantities. For example, they buy pens in units of Cartons and sell in smaller packs and pieces. Price of a unit varies as the measurement unit varies. A pack of pens has a different pricing (strategy) than an individual/piece of pen.
An invoice is issued for every sales which contains list of items, their relevant quantities and prices.
Lets say you came up with the following design to solve the above problem.


In the above diagram, Invoice_item_unit is more interesting as it represents a relationship between a junction table (item_unit) and an entity (Invoice). In Invoice_item_unit table, item_id and unit_id and invoice_number together form the the composite key which are actually foreign keys from other tables.

The first confusion here would be "Should item_id in Invoice_item_unit reference Item table, or Item_unit table?". It should be Item_unit, as that is what is involved in the relationship, not the original Item table.

The next confusion that may arise would be, since item_id and unit_id are from the same table, how do you define the SQL for the foreign key relationship. My emphasis is more on syntax, rather than concept. The solution is listed below.
ALTER TABLE invoice_item_unit ADD CONSTRAINT fk_item_unit_invoice_item_unit FOREIGN KEY (item_id, unit_id) REFERENCES `item_unit` (item_id, unit_id) ON DELETE RESTRICT,
 ADD CONSTRAINT fk_invoice_invoice_item_unit FOREIGN KEY (invoice_number) REFERENCES `invoice` (number) ON DELETE RESTRICT;

If you are using schema.yml of doctrine ORM to generate the database, handling the above underlined part may not be obvious at once. Here, is the solution.
  relations:
    ItemUnit:
      local: item_id
      foreign: item_id
      type: one
    ItemUnit_2:
      class: ItemUnit
      local: unit_id
      foreign: unit_id
      type: one
    Invoice:
      local: invoice_number
      foreign: number
      type: one

Update: The above was found using the reverse generation technique; create the tables and then create schema. But this approach seems problematic as doctrine in symfony 1.4 does not properly support this kind of a relationship. A better solution would be to assign a unique identifier to the item_unit table and refer that id in the invoice_item_unit table. This would work in symfony. Please refer the updated post to get a better picture on this.

Debian KDE Team Fully Focused on Getting 4.6.3 to Testing

The Debian KDE team is working fully focused on moving kde 4.6.3 from unstable (sid) repository to the testing (wheezy) repository. They have mentioned that they will not be working on bringing KDE 4.6.4 to unstable. Their priority is to finish off any remaining work on KDE 4.6.3 and move it to testing. Testing repository still is in KDE 4.4 and users have been waiting for an official major release for more than an years.

Given that KDE 4.7 beta1 is already released, if 4.6.3 is not pushed to testing before KDE upstream releases 4.7, users of the testing repository will be two three major versions behind. So, I feel that Team Debian KDE is focused on the right thing. Lets wait and see what happens.

Update:  KDE 4.6.3 entered testing repositories as of June 8, much quicker than I anticipated.

Friday, May 27, 2011

KDE 4.6.3 Will Land on Debian Unstable Within a Day or Two

For all those who are waiting for KDE 4.6.3 in unstable (sid), it will be available within this week. Since this is an upgrade 4.4 to 4.6, where 4.5 was completely skipped, and KDE is packaged in a different way now than the previous releases, expect some rough times when upgrading.

Said that, things should not be too tough since several people have already taken this upgrade path qt-kde.debian.net package maintainers might have ironed out all the glitches by now.

I hope the my long awaited kdevelop 4.2 will also be made available with this release.

Please read this before upgrading. I hope my previous experience on upgrading to 4.6.2 via qt-kde would also be useful for anyone  planning for this upgrade.

Note: KDE 4.7 beta1 has been released by the upstream meanwhile.

Sunday, May 15, 2011

Upgrade to Debian KDE 4.6.2 - Issues and Solution

I wanted to upgrade my PC to KDE 4.6.2. It had 4.5.x and sid. qt-kde.debian.net was enabled, and I knew upgrading is not going to be a tough time since so many people have reported that to be smoother than expected.

So, feeling pretty confident, and not being upgraded for 3 months, I just issued the two magical commands.
apt-get update; apt-get dist-upgrade
The upgrade did not go so smooth, it stopped at a certain point reporting some broken pacakages. Luckily it hinted that 'apt-get -f install' may do the trick. So, I followed the hint, and no errors reported after that though I noticed that some packages (konqueror, dolphin, etc) are held back without upgrading. I rebooted my PC as it was upgraded, and was very excited to log into the the new 4.6.2. To my surprise, the login manager did not list KDE as an available session. Only Default, Failsafe, and Fluxbox were listed.

Being disappointed, did some searching and found out that the qt-kde.debian.org repository explicitly mentions not to do what I exactly did above. So, the command I should have given, according to the site is
apt-get -t experimental-snapshots dist-upgrade and NOT apt-get dist-upgrade
 So it was I, being foolish and blind, messed up the system. Now, I tried to remove and re-install kdm suspecting that it might fix the mess. After removing it, it refused to re-install due to broken dependencies. I figured out a newer version was available in the official experimental repository. So, I temporarily enabled it and got kdm installed.

After beating around the bush for an hour, I logged into Debian IRC and asked for some help. My question was exactly which package should be properly configured to get KDE listed in my login manager. MoDaX answered it, and he pointed me to focus on getting kde-standard working. I knew it was a subset of kde-full. So, I decided to focus on getting kde-full installed properly.

I did not want to jumble all the repositories, so disabled the official experimental repository. Then tried the below.
apt-get install -t experimental-snapshots kde-full
 I was expecting to see some broken packages to be reported, and prepared myself for some troubleshooting. But, to my surprise, no broken packages were reported. The process went just fine. And I finally was able to login to KDE 4.6.2 without any issues.

The point is, if I just had read the release announcement before upgrading and given the correct command, I could have got it up and running without all these issues.

I hope someone who does/about to do the same mistake may find this experience useful in someway.

Wednesday, May 11, 2011

To Wait for KDE 4.6 on Debian or Not To Wait?

As being waiting 4.6 to arrive in the official debian repositories, I became pretty curious and tried it in Ubuntu (Installed Ubuntu first, then installed kubuntu-desktop and kde-full).

As I  have seen many Ubuntu KDE users' comments in the forums, I thought of giving it a try, even though my presumption is Kubuntu messes up KDE.

As I am using debian wheezy, I am still in kdevelop 4.0.1. I did not know how to get all phpunit related stuff working in kdevelop. $this->assertions are not popped up by auto-completion. All phpunit related functions are underlined in wavy red. I don't mind it much and keep on using kdevelop 4.0.1. So, my very first try, after installing, was kdevelop 4.2.

Meanwhile, I got a solution for the above from Milian. He says, we can workaround by simply creating a symlink for PHPUnit under the project directory. I jump started by creating the symlink and opening a php project. kdevelop 4.2 in Ubuntu scanned and indexed the project pretty quickly, but alas after reaching 100% of scanning it throws an exception and exits. I tried it multiple times, it is repeatable. I tried the same in debian with kdevelop 4.0.1. It took more time for indexing and scanning, but it did not break. (Although the wavy underlines  are now gone and some unit testing related methods are listed, none of the assertions are still not popped up by auto-completion. I would attribute that to kdevelop rather than debian, as I know there had been some issues with auto-completion which were fixed in later releases)

So, my first expectation broken, I continued with using the system. And within two hours I saw the system breaking at least 4 times. Rekonq, and Konqueror are breaking miserably as of now.

I just made my mind that waiting for 4.6 in debian is worth, rather than hurrying for something else. Let those debian developers take their time and come up with something usable. May Allah bless them.

Update:  I upgraded my debian sid to 4.6.2 (using qt-kde.debian.net repository) and using it for 2 days. I have enabled desktop search (nepomuk and strigi) and desktop effects. No single crash so far. That's why I place my trust on debian than Kubuntu when it comes to debian.

Configuring PHPUnit with XAMPP in Windows

Installing and configuring phpunit is a trivial task in Linux environment. If you are a debian/Ubuntu user, just 'sudo apt-get install phpunit' will install it. If the installation reports any php extension as missing try 'sudo apt-get install php5-theExtensionThatWasMissing'.  It is as simple as that.

But getting it configured it in XAMPP in Windows environment involves some additional complexities. The reasons are
1. It comes with phpunit already installed which is 2.x.y. It may take some time to realize that this is not the latest phpunit, though this is the latest XAMPP
2. pear -V will show that it is 1.7.2 whereas 1.9.1 or higher is needed to install the latest phpunit. This is the first and foremost task.

If you have multiple php versions running, sorting out any path related issues before proceeding will save a lot of hardships and unnecessary confusions.



Steps to Install PHPUnit:
I am going to write down the steps that I had to follow to get it installed in my laptop.

1. cd c:\xampp\php
2. pear upgrade pear
The above command gave the following error
ERROR: failed to mkdir C:\php\pear\docs\Archive_Tar\docs
ERROR: unable to unpack C:\Users\Home539\AppData\Local\Temp\pear\download\Structures_Graph-1.0.4.tgz
ERROR: failed to mkdir C:\php\pear\docs\PEAR
3. mkdir c:\php
4. pear upgrade pear (again)
It upgraded. Now, the version is 1.9.2
Important: If this is not successful, there is no point in continuing further in this direction. If this step is blocking and could not continue, try some alternatives. I have listed some below.
a. Try installing pear freshly. Download and save this as  go-pear.php under c:\xampp\php and run 'php go-pear.php' from there. This should work.
b. Consider installing phpunit without pear as the final option if nothing works

5. Followed the commands in the official site. But, instead of  'pear install phpunit/PHPUnit' execute 'pear install --alldeps phpunit/PHPUnit'
This should install phpunit without any issues. phpunit --version now shows 3.5.13 now in my machine.

It is also recommended to enable xdebug (required for code coverage generation) and curl.

Enabling cURL:
1. Remove ';' from extension=php_curl.dll in php.ini (uncomment)
2. Ensure that  ssleay32.dll and libeay32.dll are in Windows/system32.(copy these from c:\xampp\php to windows\system32)
3. Copy php_curl.dll into Windows\System32 as well.(copy this from c:\xampp\php\ext to windows\system32)

Enabling XDebug:
1. Find the section [XDebug] in php.ini
2. Uncomment the following line (remove ; from the beginning of the line)
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
3. Copy php_xdebug.dll into Windows\System32 as well.(copy this from c:\xampp\php\ext to windows\system32)

Note: Since XDebug is configured as a zend_extension in the above section, we need to make sure that it is not loaded as a dynamic extension. So, find and comment the following line, if it is their.
extension=php_xdebug.dll

Note: If your Windows is 64 bit, you need to copy the dlls to Windows/SysWOW64 Folder




Tuesday, May 3, 2011

KDE 4.6.2 Has Landed on Debian Experimental

The Debina KDE community was anticipating 4.6.2 in one of the official repositories in April. Though the release was expected in the official repositories, it made its way to the semi-official qt-kde.debian.net.

I just had a check and found that 4.6.2 is in the official Experimental repository today. kdebindings has not been packaged yet. This means it might take some more time for the release to reach unstable (sid) and testing (wheezy) repositories.

Update: Updating to qt-kde.debian.net is a stabler option than the official Experimental. As per the sources, debian Experimental and qt-kde.debian.net are almost the same but the latter may contain more packages. qt-kde.debian.net also seems more active than the Experimental. As we are expecting KDE 4.6.3 within this week, we can expect that to reach unstable (sid) rather than 4.6.2.

Tuesday, April 5, 2011

KDE 4.6 Will Be There in Debian Soon

KDE 4.6.2 SC is not available to the public, but has been made available to the packagers and the Debian team is actively packaging it. According to package maintainers, they are trying hard to bring KDE 4.6.2 to the official repositories within a week or two.

The packages will be launched to either experimental or sid or both, but testing (wheezy) users have to wait.

Monday, April 4, 2011

KDE 4.6.1 Released in the Debian Semi-Official qt-debian repository

After a long awaiting, KDE 4.6.1 has become available to the Debian users via the semi-official qt-debian repository. The release is said to be of experimental  quality, and not guaranteed to be compatible with the official 4.6.x releases which are planned for sid and testing.

KDE bindings are not packaged yet, and expected to take some more time due to their complex dependencies. This excludes a subset of the packages which are written in  non c++ and bound to kde by their respective bindings. For example any KDE application written in python is not going to work with this installation.

The packaging team has tried a new way of packaging KDE software so that it will not conflict with some of the third party KDE software like ktorrent and kmess. Previously it was conflicting.

Performance improvement is said to be the most visible improvement. Another change interesting to me is that the networkmanagement plasma widget of 4.6.1 not being compatible with 4.4.5. KDE network management plasma widget was not up to the level when it comes to Mobile Broadband support. Some decent work has went into this, and some other complaints are also fixed in the latest version. Lets hope and wish that similar improvements have gone to dual monitor support as well.

I personally had a bad experience with knetwork client when I once tried to do a presentation. The wireless network connection got deactivated accidentally using the function keys of my laptop and did not pickup after I re-activated it again. After some tries I got desperate and even restarted the laptop. Still it was not working. And in the same presentation, the projector detection was also not so smooth, and finally I had to use someone else's laptop to proceed with. (I did some experiment later and found out that I have to kill knetwork and start it manually to make it detect the changes)

Anyway, It is a good decision to break the long silence and provide something to the end users via the semi-official repository, rather than not producing anything at all. Though things are not perfect, people will have something.

What the package maintainers want is an early feedback, so that the quality official releases can be enriched. Brave souls are welcome to give it a try!

Saturday, April 2, 2011

Dell Vostro 1014 Sound Issue in Debian Wheezy

When I plug my headphone into my Dell vostro 1014 (laptop) the laptop speaker was not getting muted. My laptop had Debian Wheezy installed.

The following Ubuntu forum threads shed some light on this and gave hope that it is possible to get things working.1. http://ubuntuforums.org/archive/index.php/t-1467218.html
2. http://ubuntuforums.org/archive/index.php/t-1457859.html

My guess was the problem was due to some driver issues as I was using the free kernel that was shipped with Wheezy. After some experimenting the following solved the problem.

1. Adding the line "options snd-hda-intel model=dell-vostro position_fix=0 enable=yes" at the end of the /etc/modprobe.d/alsa-base.conf
2. Installing liquroix kernel, 2.6.38-2.dmz.1-liquorix-amd64, solved the issue

(Installing firmware-linux package did not solve the issue as of today.)



KDE 4.6 Getting Delayed for Debian

There is a lot of pressure being built up on why packaging KDE is getting so delayed. According to official sources it should have become available in the beginning of march, but now being the beginning of April, no signs yet.

There is a good news as well as some bad news. Good news is that the semi-official repository qt-kde will see the 4.6.1 by Saturday, we may expect one or two days of delay there, but it will make it there pretty soon.

Bad news is that it may get further delayed to land on one of the official repositories. According to a mail in the Debian mailing list, official archives will see 4.6.2 (which is scheduled at April 5th by the KDE upstream) or later. Users of the testing repository may have to wait sometime more.

According to the package maintainers, the KDE SC is huge, and each package has to be verified that it meets Debian's Free Software Guidelines. Given the complexity of the project, it is no more technically as easy as it was in 2.x series.  Once the major release is packaged, updating it to point releases is easier. So, even when users have to wait a little longer for 4.6.1 (the major version), they will notice that updates to point releases (4.6.x) are quicker.

All who are impatient should understand that all the work that goes into Debian is voluntary, people do it for fun on their free time, and do not want to be pressured. In an IRC chat with the package maintainers, I learned that there are much more packages they wish to get packaged into the repositories, and welcome any assistance. But the assistance is expected from an experienced person, and not a complete novice. If no one comes forward, those packages may not be included in Debian at all. For example, one maintainer wished he had semantik - a mind mapping tool - in the repository. I checked and found that it is an KDE extragear package which is currently missing in the repository.

I know that KDE 4.7 is going to be released in July (according to official sources). Again Debian will face the same delay in getting 4.7 in for the same reasons. But, I decided to learn some basics and get prepared from now itself so that I can be of some help at that time.

A good starting point would be the New Maintainer's Guide for anyone willing to join forces.

Monday, February 21, 2011

Why Nokia Shunned Away, and What is there for Qt and KDE?

There are a lot of speculations written about Windows 7 Mobile as the choice of platform for Nokia to continue with. There are two areas which I would like to comment on.
1. Why Nokia had to chose Windows Mobile?
2. What will happen to Qt afterwards?


1. Why Nokia had to chose Windows Mobile?
Reason #1: Never the second mentality
Nokia wants to be number one and sort of what Microsoft is in the Desktop market.  It does not want to be #2 or settle with a Niche eco system, what Apple is in the Desktop market. This is the first and foremost reason why Nokia is turning too fast looking for options, and even did not have time to amptly evaluate its own investments in Maemo and Meego. Looking at the steady growth rate from iPhone, it is too nervous that it would fall to the second place in the list. If someone becomes capable to push the giant Nokia from its first place to second place, probably its something too much for Nokia to risk.

Reason #2: Heavy competition
Symbian gave a boost to Nokia which others could not compete with initially. As it had a faster platform and a huge developer community, Nokia was the leader in the Smartphones arena. Now the stage is entirely different. With iPhone's innovative solutions, the success of Android, and the threat of cheap chinese mobile phones, now it has to compete both in the areas of hardware as well as software to retains its longheld place.
1. Apple has already proven that it can take the lead over Symbian. And the popularity of the recent Android phones too forces Nokia to search something beyond Symbian.
2. The other major threat comes from the thriving Chinese mobile phones. People can easily buy a Chinese phone for less then half the price of Nokia and get triple the features that Nokia would have provided for a such a price. The threat is much severe in third world countries where quality is seen as a luxury, and the recession has definitely affected the purchasing pattern of the western market.

Reason #3: The consequences of open-sourcing
It was almost unavoidable that Nokia had to open-source Symbian to transfer major development cost of the platform to the community while investing heavily on hardware to face the Chinese competition. Learning the hard way that it takes time to reap the benefits of open-sourcing in the mobile platform, the company took another smart approach. It tried to bring the benefits of already existing KDE applications into its new smartphone. Investing on Qt and polishing the existing KDE desktop applications would make a great smartphone suite with a relatively much less cost. There are only speculations why this was abandoned in the middle.
After open-sourcing Symbian last year, Chinese phones now appear in the market with Symbian support for as low as $50. Nokia might have learned that the benefits of open-sourcing is not exclusive to Nokia. Even if Meego platform becomes a huge success, Nokia will not gain anything more than what others like Samsung, Sony Erricsson and Chinese phone makers would gain. Going open-source would, of course, help Meego to foster but, the competitive advantage Nokia would get for championing the cause would be questionable in the long run. Instead, moving to Windows 7 based smartphones will definitely help to differentiate it from its Chinese competitors.

Reason #4: Nokia is running out of time
Nokia could stay ahead of the competition for a considerable short period if it invests in the success of Meego. The failure of Maemo as a platform could also be a reason to be reluctant. With heavy competition crushing it in the edges, Nokia does not have time to experiment.

2. What will happen to Qt afterwards?
First of all certain basic facts needs to be understood inorder to see the full picture a bit more clearly.

Fact #1: Nokia is a company. They want profits. They don't love open-source for it being open-source. Nor they are driven by the ideology of Software Freedom.
Fact #2: Their product is phone, not software. They had to enter the realm of software production only to differentiate their phone from the rest of the others, so that they gain competitive advantage.  If Microsoft could build good software for Nokia with less cost, there are less reasons to say no.
Fact #3: They are going behind Windows Mobile. Meego and Symbian will get step motherly treatment.
Fact #4: They are corporate, and reading between their statements is necessary to comprehend what they truly mean. For example, when they say "We have future interests vested in xx", it translates to "We don't want xx now".

Based on the above facts it is simple to guess that Qt does not have a bright future inside Nokia.

Nokia has already almost turned down Symbian, Maemo, and Meego and all of them are well invested in-house products. Such a company will not hesitate to turn down Microsoft if it smells any issue or failure in the roadmap. In such a case, KDE/Qt/Meego would be the next and only "Plan B" it can currently think of. Some key contributions now and then would not anyway hurt for a giant like Nokia, if it can benefit from it at some point. So, definitely Qt and Meego will get some contributions.

Qt had always been actively parented by a company (previously by trolltech, and now by Nokia), unlike its counterpart gtk+ which is relatively more community driven. Given the fact that KDE is so much dependent on Qt as its fundamental toolkit, it is highly likely that it will forked off and maintained by KDE community. Will Qt maintain its current momentum of growth and refinement if it becomes community driven is a question only time can answer.

It should also be reminded that MFC libraries have been their with less improvement for longer time, and it is not necessary to change and improve radically to stay ahead and stay for long. Qt is currently state of the art and powerful enough to conitnue to empower the KDE platform for another five years, at least, without much overhaul. So, Qt will stay for another ten years, so is KDE. No worries.

If anyone is anxious about the future of Qt or KDE, then the anxiety is about what is out there after ten years, rather than will KDE or Qt die next year. Ten years is way too far to predict given the current pace of technological advancement.

Sunday, February 6, 2011

Debian Squeeze is Finally Released

To much of the joy of all Debian fans, Debian Squeeze (the stable release) is now released after 24 months of development. Two notable first timers are,
  1. The default is a completely free kernel. 
  2. kFreeBSD kernel is shipped with Debian userland applications in a separate line. 
Wheezy, the next to be released, has hit the testing branch which hopefully will become stable after another 18 - 24 months.

As mentioned in a previous post, I am glad that the freeze is over, and now I can get a rolling release with cutting edge technology. With overwhelming curiosity in upgrading to the newest packages, I typed  apt-get update in the console, and noticed that the package changes were minimal so far. I was expecting that KDE 4.6 to land on the sid/unstable repository as soon as  Squeeze is packed up. To my disappointment, wheezy still has the 4.4.5 left overs of Squeeze, and no buzzing KDE 4.6 so far. Not even in the experimental repository.

Lets wait until KDE 4.6 becomes available and the rock and roll party begins.

Update: According to debian mailing lists, GNOME 3 and KDE 4.6 become available March in sid. They will March in. Click the link for more details.

Thursday, February 3, 2011

Legitimacy Vs Legality

I found the below in a KDE user's blog as a comment when he discussed about the current Revolution in Egypt, crack down of the Internet and Freedom of Speech. And kind of liked it.

The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man."

G.B. Shaw

This whole talk could (imho) be shortened to : "legitimacy vs. legality".

I'm from those who think that legitimacy matters first. And the reasonable man never questions the law.

Wednesday, February 2, 2011

Live Messages from Egyptian Revolution in Al-Jazeera

Al-Jazeera has started Live Messages from Egypt page. Anyone interested can checkout from from this link. What I enjoyed the most are the voice clips and the live blogs posted on the panel in the right side. The recent comments was simply a superb coverage in the grass root level.

Al-Jazeera's coverage on the Middle East revoultions, Tunisia and Egypt were first class. Anyone could easily notice the effort they put and to the grass root extent they go to reflect the common man's opinion. This has increased their websites traffic by more than 2000 per cent last few days, and more than 60 per cent of the traffic is from U.S. where people don't find the channel in the air and trying to seek coverage from their website.

Al-Jazeera not in the air in U.S.? If anyone finds it harder to believe they can have a look at this link.


Tuesday, February 1, 2011

Debian Squeeze May Get Released This Weekend

The long awaited Debian Squeeze release is coming very very soon. I have been waiting for this for a long time.
I am a sid user, rolling release lover. This means I was under freeze and going to rock and roll again.

Radiagate Scandals and The Palestinian Papers Deserve More Coverage in the Mainstream Media


The two main news items that took my interest this week were about Radiagate scandals and The Palestine Papers.

Radiagate scandals is a series of conversation taps between corporations, top media persons, and lobbyists in India. It basically shows how politically biased the Indian Media is, a kind of bias which can be attributed to other countries as well. Certain figures are known to be biased, and no one would be surprised if there are any complaints about such persons. What seems to be shocking was the personal integrity of media persons who are of high esteem are now being questioned. Even the quality of information and the way it was obtained and confirmed seems too low. Just going through some of the revealed conversations disillusions what the seemingly big media is, behind the screen. This scandal is supposed to shake the Indian media industry.
The Palestinian Authority and Al-Jazeera were always perceived to be having conflicting interests. While The Palestinian Authority - PA - accuses Al-Jazeera of being pro-Hamas, Al-Jazeera continues their reporting as usual. Most of the news items that appear in Al-Jazeera about the PA were not very positive. This seems to fuel the fire and the PA continues to reject the comments and the news provided by Al-Jazeera, accusing them to be speculative and lacking substance. From Jan 23rd to Jan 26th, Al-Jazeera started publishing "The Palestine Papers", more then 1600 documents, in a fashion similar to that of wikileaks. Some of the published documents are pure shocks.
What bothers so much is that both of the above did not receive much coverage in the mainstream media.

A Seemingly Naive Answer

Bala Murali Krishna writes in the Asian Correspondent about Radiagate Scandals
Business Standard’s T.N. Ninan says they should “just say sorry” and get on with it. If it hadn’t come from such a wise old journalist, Ninan’s advice would be dismissed for being naïve.
Some seemingly naive answers are rather simple answers for complex problems resulting from a vast experience.

Monday, January 31, 2011

Awaiting KDE 4.6 in debian sid

I frequently visit kde.org for updates, and noticed the release of 4.6.

I am expecting a functioning kmail, which is ready for production, and a lot of new widgets. Very curious to keep my hand on Activities as the concept itself seems to be redesigned and reintroduced in 4.6. And delighted to see improved kate with SQL plugin, and KDevelop being shipped with KDE 4.6 rather than as standalone.

Unfortunately, still using 4.5 since 4.6 did not make it into debian repositories, as of today, since Squeeze is still under freeze. And not to my surprise, it did not even make to the semi-official http://qt-kde.debian.net/. May be no one bothered to put it there since the freeze is expected to finish in a couple of days, and this release may be the one to flow into the repositories. I envy the Kubuntu users who have a chance to upgrade using the PPA packages.

Lets be patient.

There is Always Room for Improvement

I was revisiting some of the blogs I had written a while ago, and I found that they can be improved. I noticed some mistakes which I did not notice when I first wrote them. Certain passages which I carefully worded at the time I first wrote them seemed to be crappy and better to do without them, so I removed them.

So is the life. Take some time to revisit, think about the past. There is always room for improvements. Improvements which we never noticed.

Wednesday, January 26, 2011

A Dialog About Life - Between Me and My Friend


I have given below a dialog between me and one of my non-mulsim friends. He is a very nice and open guy. He was affected by dengue and was hospitalized for three days.

This dialog took place after a week or two since he got discharged from the hospital.

 
Me : How are you?
My Friend: hi
My Friend: okk
Me : that means
Me : you still have pain in the joints?
My Friend: no
My Friend: i never had pain
Me : Oh
My Friend: :-) only 3 days heavy fever
My Friend: but i had body pains when i wake up
Me : Ok
Me : How are things now?
My Friend: going on
My Friend: glad to be alive
My Friend: i saw few people die at the hospital .... now i look at life differently
Me : What's the difference?
Me : difference in the view
My Friend: when it comes to end
My Friend: 1. There is only you
My Friend: 2. No one can help
My Friend: 3. It doesn't matter what you did or have
My Friend: 4. you are helpless
My Friend: 5. its always painful when u die
My Friend: 6. they still want to live
My Friend: :-(
My Friend: i seriously thought i was gonna die so ...above is so true :-)
Me : What is the difference between item 2 and 4
Me : and 1
My Friend: 2 -4 same
My Friend: but 1 is different
My Friend: u know 1 girl in the next block screamed for 3 days ..and died ...
My Friend: horrible life we have :-(
Me : must be painful
Me : How is item 1 different
Me : What do you mean by item 1
My Friend: when you are i'll and you know its beyond anyones help ...you feel very lonely ..its difficult to explain unless you experience
Me : I understand
My Friend: we have to do lots of good things in this life ...maybe then when we die we may not feel so down
Me : That's what I was about to ask
Me : You said
Me : 3. It doesn't matter what you did or have
Me : I felt like it matters what you did
My Friend: by that i meant ..like job/business
Me : Understood
My Friend: hospital is a very good place to understand life as a whole ...oneday we all go there to comeeback in a box :-)
Me : You said that when you strongly felt that you were about to die, you felt very lonely. We believe that when people bury us after death, we still hear and see what happens around us. We will be calling the people, and scream not leave us alone.
Me : Imagine that
My Friend: ya i believe that too
Me : At that moment what guards us are only the good deeds we did in the world
My Friend: I was not ready for death this time ..but next time i wan't to be ready and strong ...
Me : Good
My Friend: yes yes thats rue
My Friend: its a good thing i got dengi ....
Me : How do you plan to get ready?
Me : I mean what did you feel like you should have done when you were at the hospital?
My Friend: i was not sure i did enough good
Me : what do you mean by good?
Me : Religiously or in general?
My Friend: like good things like helping people and spiritually
My Friend: and i haven't made sure my wife would be ok after my death
Me : in general is a subset of religiously
Me : You were more worried about the subset? or the other part?
Me : No one can make sure that how the world would be after we leave. When I say world, it includes wives.
Me : Some even worry about grand children.
My Friend: ha ha yes
My Friend: i think its very difficult to get ready for death at any age ...that fear is inherent
My Friend: if you can get rid of that fear only you can get a peaceful death
Me : You need to be spiritually strong from the inside, to get rid of that fear
My Friend: yes but the problem is ..you don't know how strong you are until you actually face it
Me : True
Me : That's why I always ask the question "what is the purpose of life"
Me : If we are not clear in that, we will never be peaceful while we die
Me : We may have different answers
Me : But we need an answer to oursleves
My Friend: ya ..
Me : An answer that is convincing enough to ourselves to keep us in peace even in the deathbed
My Friend: absolutely ..depends on each of us thinking and belifes
Me : Yes
Me : Absolutely
My Friend: you said "what is the purpose of life"
My Friend: but my question is
My Friend: "what is the purpose of so much suffering in this life"
Me : Is it "what is the purpose of so much suffering in this life" or "Why people suffer so much in this life"
Me : What is the exact question?
My Friend: from what i see people suffer for no reasons ...like the guy next to my bed ..he is a really good guy ..got his both kindney damaged
Me : So, it is "why the life is filled with so much suffering?"
My Friend: his leg had a wound like he got shout
My Friend: shot
My Friend: yes thats the question
Me : Are you looking for an answer from me, in my perspective
Me : ?
My Friend: nop ... i don't think anyone can answer
Me : No, it is a simple question with a simple answer, but from different frame of reference
My Friend: ok so...
My Friend: simple answer?
Me : Life is a test in which the one who succeeds will get rewarded and others will not
Me : Suffering as well as Happiness is part of the test
My Friend: but its not a fair test
Me : Why?
My Friend: some people suffer unnessasarly ..like the girl who died after screaming 3 days ..she was young ...got that disease from the small age
My Friend: she never had a better chance
Me : Suffering is not suffering if you know it is a part of the test, and happiness is not happiness if you know it is a part of the test
My Friend: but the girl was only screaming through her whole life ...thats not a fair tests
Me : Suffering and happiness and all events are chances to get rewarded. They are equal in that aspect.
My Friend: how can some one get such pain for a test
Me : If I told you that the richest and wealthiest man in the world is having the most horrible test for being the richest and wealthiest, does it amaze you
Me : ?
My Friend: if i cut your leg today ..and reward you with a brand new legs after 50 years ..is that a good deal :-)
Me : If I say the test that Bill Gates is undergoing - the test of how you behave when you are wealthy - is a more horrible test than the girl you are talking about, does that makes sense for you?
Me : You think the girl's test is unfair and the Bill's test is fun
My Friend: yes
Me : That means you miss the purpose of the test
My Friend: Bill Gates seems to be enjoying
Me : Success is determined in the hereafter, not here
Me : Bill gates will be intoxicated by the wealth, and forget God. His test is may be harder to pass. Everytime there is a pain, and every time it reduces, the girl will know that there is a super power. If she acted by being thankful to the relief, she'll be successful in the hereafter
Me : You were measuring the test and the results in terms of this world
Me : Test is in this world, reward is in the hereafter
Me : Even bearing the will forgive our sins
My Friend: thats what i'm asking this
Me : as per our belief
My Friend: if i cut your leg today ..and reward you with a brand new legs after 50 years ..is that a good deal
Me : If the leg I am having will be there only for 50 years, and the leg that I will receive after 50 years will be there with me forever, millions and millions of years, it is worth considering isn't it?
Me : Actually for bearing that pain, what she deserves is an eternal happy life with all the wealth and health she can think of
Me : That's worth a deal
Me : Going for prayers
My Friend: up to you 2 decide
My Friend: (y) we have 30--40 years left lets see
Me : I am back
Me : I once had a pending operation in my right leg, which I was not able to move at that time
Me : Doctors said that there is a slight chance that the operation will be successful
Me : I was happy because it was a test and to pass that test I just need to be patient and the reward will be high
Me : See suffering "as you see" is a chance of reward as "I see"
Me : I am happy about the suffering, and you are terrified about it
Me : That's the difference
My Friend: not terrified ... sad
Me : Ok
Me : I happy in happy and happy in sadness as well
My Friend: (y)
Me : Thanks
Me : That's what I meant when I said that there is an answer, but from a different frame of reference
Me : May be it is hard to comprehend from your frame of reference
My Friend: my frame of reference is like this ....suffering is inherent for everyone in this world , no one can escape ...whearther we get rewarded for that of course not sure ...
Me : Suffering has two aspects, physical and mental
My Friend: and i don't see fair amount of suffering
My Friend: it changes from person to person
Me : Yes
Me : That's the point
Me : Life is inequal
Me : According to communists civilization will come to a halt if everyone gets equal
Me : Imbalance is needed to move on..
My Friend: no thats in wealth
My Friend: not in physical pain
My Friend: if there is no physical and mental pain in this world ..this world will be very beautiful
Me : What people should be worried is whether they get equal opportunity to earn rewards in the hereafter
Me : If that is equal, then the test is equal
Me : If that is not, then the test is not
Me : Proportion of happiness and sadness can vary
My Friend: so u say Bill Gates and the Girl screamed all her life and died ...both got the same chance and a fair test ?
Me : In that specific case, I think the girl got an easier test. Considering the whole life, I think they have equal chance
My Friend: if that girl got easier chance ..thats even unfair ...because Bill Gates didn't have the chance of getting that bone marrow cancer ...
My Friend: and get rewarded easyly
Me : That's not the only test, it is just the part of the test. The girl will then get harder ones and bill will get some easier ones later in the life. That's why I said "Considering the whole life, I think they have equal chance"
My Friend: the girl never got easy one ..she died
Me : What she got was highly rewarding small and easy tests, with a short life span. What bill is getting is different kind of tests with a larger life span, but they all will have equal opportunity to score.
My Friend: i would like to think like this The girl got punished for something she has done in her previous life ...now bad karma has gone in her next life she may have a better chance to do good and improve
Me : Good
Me : Its all about beliefs
My Friend: :)
Me : But there are answers in different frames of reference
My Friend: yes
Me : If you don't believe in the reward system, and that the world and life are created by God, my answer is just another theory to you
My Friend: yes like mine to you
Me : If I don't believe in rebirth, and don't think that the life is sufferring, your theory is no worth for me
My Friend: yes i know
Me : The point we were talking about is that we have answers, and they should convince us, so that we'll have a peaceful death if we live true to those answers.
My Friend: :) yes
Me : Anyway, this is a very nice conversation.
Me : I'll try to save it somewhere
My Friend: yes , just make sure you are ready in anyway , as a friend thats my advice ..
My Friend: and thank you for the blessing when i was in the hospital ..i think that helped a lot
Me : Is it?
My Friend: yes if someone wish good in heart ...it has instant effect on others ..that i belive
Me : Thanks
My Friend: and i know u wished me well in good heart ..i felt better :-)
Me : It was a prayer to God to cure you. The prophet used to do what I did to you.
My Friend: ya i know