Sunday 24 February 2008

Excerpts from a 'Software Developer' Interview

Candidate : pops in, pulls a chair,sits down and makes himself agreeable for the interview

Interviewer : Well, Mr.X ,I See you have a good degree etc etc...Have you come across this book, may be read it , it's called 'Code Complete' by Steve Mc Connell ?

Candidate : Err,.Eh, not sure,yes may be.

Interviewer : Thank You! , eloquently points his finger at the door.

Speed Boat Distributed Systems Development Team

 

Hull DS, the Distributed Systems Development Team. We develop software just worth enough to buy a 'speed boat'. Now if you're wondering what makes me say that, we have been groomed to do just that and forget about the surplus money factor!!!!.

Rob Miles, our guru and mentor speaks thus when asked something like 'how do you price software for good revenue keeping the risk triangle in mind' ?

Rob Miles: Software should be priced in such a way that by the end of the project, the stakeholders go home happy and you're left with money just enough to buy a speed boat!!. Now, that's Job Well Done!!

It's a Smart Ass world out there..

An XYZ company's marketing spokesperson was demonstrating the dynamics of his company's new 'cool speech recognition software' to an audience;

you are about to witness a revolutionary software product now he said, and he clapped his hands;

Welcome it said, 'what can i do for you' ?

the man ordered; 'start' 'program1' 'type' 'email' etc etc..

the 'smart' software obediently and elegantly executed every order of his, The audience viewed the demo in serenity.. suddenly,

someone at the back shouted:

'Run' 'Format' 'C Colon' 'Yes'

Thursday 21 February 2008

Scott Adams Blog

Click here for Scott Adams blog

and this one's my all time favourite Dilbert strip.

Dilbert

Requirements engineering,The known unknown..

Hi,

I'm reading this book by Karl E.Wiegers called Software Requirements, published by MS press. The most intriguing part of the otherwise boring book are the interactions between employees before every chapter..

Often, 'small deviations' during requirement analysis leads to doom during development/deployment phase. Also, not often it's realized that those 'small deviations' during requirements engineering was the cause., the actual 'creep' which lead to doom. This book throws light onto those areas and helps you avoid getting doomed early on, even before you start negotiating a software deal with a client..

6496

Technorati Tags:

Wednesday 20 February 2008

xda blog

i am posting this blog from my pda,trying to see how well i can keep connected to the internet from various devices..

Tuesday 19 February 2008

O2 XDAIIi

I got my XDAIIi Pocket PC today. Intel PXA 272 520MHz,128 RAM and 128 ROM, running on Windows Mobile 2003 SE. (predecessor of WM5, which is a predecessor of WM6, which is a predecessor of WM6.1)

XDA's may be becoming less common these days. However, check this out to see what XDA's can do for your business.
'Technology Success Stories for XDA'
Now, i've got my hands dirty with compact framework development, way to go for building the next big success story innit ?

Monday 18 February 2008

My Photographic skills!

myphotographicskills
I use a 7.2 mega pixel sony DSCH5.

 
 
 
 
 
 
 
 
 
 

Recursive Descent XML Parsing

Hi,
A simple recursive descent parsing algorithm for parsing xml which i developed sometime back. Generally a recursive parsing algorithm is an idealistic approach for parsing xml documents with 'tree' sort of a structure. Most of the xml documents can be processed in .net using System.xml ,xpath expressions and various other techniques. But the generality for fetching the data in a certain order becomes important while processing the xml. for brevity's sake i'll consider an xml document which serializes a window.so, ideally the tree structure in the xml would look like the following.








Note the classic 'tree' structure here, i.e a 'container' node can contain other 'container' nodes as child nodes besides 'component' nodes. Therfore i used a recursive algorithm for parsing the tree.

the C# implementation:


internal void RecursiveDescentParseXML(XmlNode root)
{
XmlNode node = root;
Console.WriteLine(root.Name);
if (node.HasChildNodes)
{
XmlNodeList cnodes = node.ChildNodes;
foreach (XmlNode n in cnodes)
{
RecursiveDescentParseXML(n);
}
if (node.Name.ToString().Equals("window")) { }
else
{
Console.WriteLine("Node: " + node.Name +
" Should be added to : " + node.ParentNode.Name);
}
}
else{
Console.WriteLine("Node: " + node.Name +
" Should be added to : " + node.ParentNode.Name);
}
}

Sunday 17 February 2008

Universal Translation on the fly!

'Compadre suite', a universal translation software developed by a company called SpeechGear provides unbelievable translations from speech,voice and images on the fly supporting 200 languages bidirectionally!!. really impressive! , The compelling part of the software is, it lets you speak into it (obviously through a mic) and have your speech translated into 'text' of a foreign language on the fly and also reads it aloud. (i.e back to speech in a foreign language) Now, for enterprises to adapt to such a thing might still sound naive because of the reasons best known like translation errors due to lack of voice training , pronounciation differences etc.

However, what really caught my attention was the interpreter bit of the software suit which runs on Windows Mobile Pocket PC!!. The 'Interpreter' on your Pocket PC can come in handy if you are in a foreign country, travelling abroad, or simply wanted to converse with a foreigner. It's versatile in that it provides voice commanding over text input.

Compadre Suit at CES 2008 [Video]

Compadre Suit CES,SpeechGear


Friday 15 February 2008

ಕಸ್ತೂರಿ ಕನ್ನಡ (Kasturi Kannada)

ಆ ಹಾ!!, ಕನ್ನಡದಲ್ಲಿ ಬರಹ ಎಷ್ತು ಸೊಗಸಾಗಿದೆ !
ಗೂಗಲ್ ತ್ರನ್ಸ್ ಲಿಟ ರೇಷನ್ (Transliteration) API ಗಳನ್ನು ಉಪಯೋಗಿಸಿ ಮಾಡಿರುವ ಈ ತಂತ್ರಜ್ನ್ಯಾನ ಆತಿ ಸೊಗಸಾಗಿದೆ. ಬರೆಯಲು ಕಸ್ಥವಾದರೆ, ಸ್ಕ್ರೀನ್ ಇನ ಮೇಲೆ ತಕ್ಷಣ (Transliteration) keypad ಮೂಡಿ ಬರುತ್ಹದೆ
ತಂತ್ರಜ್ನ್ಯಾನ, ಒಂದು ನೆಲವಿಲ್ಲದ ಬಾವಿ !
ಇಲ್ಲಿ ಸಾದ್ಯತೆಗಳು, ಸಂಭವಗಳು ಅಪರಿಮಿತ, ಅನಂತ !!

Thursday 14 February 2008

Show me the money..

Once upon a midnight dreary...

I pondered about the magical word 'cost' in developing and maintaining software, I found this classical example of 'Practical Cost' in software development / maintenance.

The scenario is upgrading your windows PDA/phone from windows mobile 2003 edition to wm5 or 6. Now, if you ever wondered why there aren't any dynamic upgrades possible on mobile os's, like the ones on desktop platforms (for instance windows xp to windows vista ), the answer may not be evident at first.

http://blogs.msdn.com/windowsmobile/archive/2005/10/06/477999.aspx

According to Microsoft, "But, by and large, the number of devices that will upgrade are pretty small." and therefore

Total cost of doing the upgrade) / (number of people who will use it) = (unreasonable price)

Total cost of doing the upgrade includes

1] Changes in the drivers / kernel etc. from the Hardware manufacturers.

2] Time required for testing new drivers on the 'new' operating system software.

3] Testing required by Mobile Operators (eg., o2, vodafone etc.) for the 'new' operating system so that it operates smoothly on their networks without any interferences whatsoever.

All this because of a Software Upgrade, essentially an Operating System upgrade ?!!

People at Microsoft argue that the cost for the upgrade will often be unreasonable and more or less equal to the cost of a new 'cool' phone ,may be with an already upgraded operating system.

Off late trends may be that there are equal windows mobile phone users and desktop users. Now, i wouldn't buy a new pc just because of a new operating system,but why wouldn't the same thing happen on a PDA/Phone ?!!

Microsoft may be true when they say that too less people would want to upgrade (could your grandmother do it!! :D) and therefore the above cost analysis may be right.

but i somehow strongly feel that there are other factors contributing to it like,

1] Hardware changes in terms of faster processing speed and technologies are significantly higher in mobile phones and PDA than the desktop market i guess.

consider PDA's such as the ones manufactured by HTC, IMate, O2,Apple iPhone etc. hardware changes and technologies evolve much quicker than a shift from single processor to quad processor on the desktop.

2] Imagine Hardware with virtual machines, just like software, processors with virtual instruction sets and thereby support for virtual drivers etc.

3] Virtual operating systems for PDA/Phones. (not sure if Virtual PC emulates Windows mobile 5/6)

Monday 11 February 2008

My Favourite Bloggers/Inspirations

Dr.David Grey
Dr.David Grey's Blog

Mr.Rob Miles
Mr.Rob Miles's Blog

Both of them are from the University of HULL. What ever i could say about them here would be way far less than giving a try on their links to find out more about them for yourself.

Nikhil Kothari
Nikhil's Blog
A software architect in the .NET Developer Platform group at Microsoft., I mostly like all his discussions on ASP.net and ASP.net Ajax (formerly Atlas framework)

Sunday 10 February 2008

The Intern - Asok (Spelled 'Ashok' in India)

dilbert_asok

Scott Adams introduced 'Asok' as an indian intern who is very sharp and intelligent but lacks experience and is naive to the business world unlike the experienced wally, dogbert or dilbert. more here[http://www.dilbert.com/comics/dilbert/the_characters/html/character2.html]

MSF and P&P

Microsoft Solutions Framework

The MSF Link

http://www.microsoft.com/technet/solutionaccelerators/msf/default.mspx

Started using MSF and researching MS patterns and practices. Microsoft patterns & practices are Microsoft’s proven recommendations for how to design, develop, deploy, and operate architecturally sound application for the Microsoft platform.

If you start exploring P&P, the best thing about it is it sparks off innovative technology ideas!!, apart from learning the best patterns and practices.

For instance, Consider Mobile development,

check this out:

Mobile client factory:

http://msdn2.microsoft.com/en-us/library/aa480471.aspx

I am using MSF extensively in my university distributed systems project and is definitely the way forward.

Life is so miserable for a software architect given the type of application , the stakeholders and domain. oops!

Agile or scrum, RUP or MSF or just Iterative development!! ??!!

It's now that I've realized "The only way around it is through it" and it comes for a price called "EXPERIENCE"!!!