Thursday, June 18, 2009

Bing it or Bung it? Google it.

Yes it is beta but…..

This is in continuation of my previous post. Although Bing it is still in Beta but it really surprises me how could Microsoft release such a half cooked product. As I understand beta version means a software that has been tested internally, found stable,  worked as required and released as beta so that if some something missed from the testing team could be captured by early users.

the test,

1. Search mvc.net 1.0 in Bing and Google, search results look ok (better than Live Search), see my previous post on Google and live search comparison

2. Frequently when I search technical stuff I go straight to images to find an architectural document as ‘ a picture is worth thousand words’. So I did the same in Bing and Google and my jaw dropped – () .

3. I searched for ‘Mvc.net 1.0’. Bing came with only three images, not relevant to search, while Google came with 1470 very relevant images. Clicked on Video & news, not result found in Bing, Google came with loads of videos as well as relevant news items.

4. To make it easy , modified the search to just ‘mvc.net’ , images came in greater number but more than 90% irrelevant while Google came with about 90% relevant!

Sorry Bing,

For search engine war, Microsoft can’t win with their old strategy of ‘Early to market with bugs’ . They could win with products like Office, windows and SharePoint etc where there is not that stiff competition but taking on Google Search is something different. So I still go for ‘Google it’

Thursday, May 21, 2009

KUMO (BING), Can it take on Google?

the latest,

Microsoft is expected to show the first preview of its new search engine BING code named Kumo next week.

From very brief details available online it looks that it is going to fix a basic shortcoming (when compared with google) i.e. search results categorization. Also at the moment google shows up the results with images and videos for your search while Live Search doesn't .


Following is a brief summary from eweek.com Microsoft to Unveil Kumo, a New Search Engine

"Kumo will organize search results in an efficient way, grouping them into sub-categories, and represents an upgrade from Microsoft’s Live Search. For example, if you do a search of "Audi S8," it will feed back results categorized under "Audi S8 Parts," "Used Audi S8," "Top images for Audi S8," and "Top video for Audi S8." In theory, this will result in faster searches, sparing the community from having to sort on their own through pages of ungrouped hyperlinks. Microsoft has been testing the search engine internally for months, according to several different published reports. "


After reading the news I asked myself 'Why do I like Google?' The first immediate answer was its interface was so simple and came out with that simplicity when the other search engines home pages were loaded with tons of crap (news, weather, sports, entertainment etc).

how google search differs from live search?

I spotted few differences when I ran a search for 'asp.net mvc'. There is one serious issue with live search that could be spotted very quickly. Both Google and Live search came with similar results but the description of the search results were totally different. Where google was showing the text that was related to the search context, Live search was showing the site description instead. Of course I do not need to see the description of the site as whole, I am more interested to see if there is something promising enough for me in the site making me click and open the web page. This alone is enough for me in preferring google over Microsoft Live search, lets wait and see if they have fixed this in KUMO or not.

see yourself,








Further more, from aesthetic point of view, leaving space on left side as blank in Live search results page doesn't look good to eyes.

Monday, May 18, 2009

Software development - A to Z

A picture is worth a thousand words

Tuesday, May 5, 2009

MIX09 - Its all about Silverlight

MIX09 - Keynote,

I recently watched Scott Gu's keynote speach at MIX09 conference (called MIX because its audience are a mix of designers and developers). I found it informative and interesting. Here you can watch it MIX09 Keynote, or click here for a quick roundup

what is all about?
Intros and demos, mostly around Silverlight and related technologies

brief list of topcs:
  1. Advancing User Experiences ASP.Net MVC 1.0

  2. ASP.Net 2.0 & VS 2010

  3. Expression Web 3 (with Superpreview demo and it was really superb)

  4. Microsoft Web Platform Installer (nice handy tool to get downloads from Web application gallery from a single window)

  5. Silverlight 3
  • Netflix demo
  • Smooth video streaming, bitrate throttling
  • Beijing 2008 Olympics and Silverlight
  • WorldWide telescope (just got mentioned but I love it ttp://www.worldwidetelescope.org)
  • 40k smaller than silverlight 2
  • StackOverflow website (not that impressed though)
  • Sketchflow : Expression Blend 3 (Impressive for creating quick demo for analysis and design purposes, love it), export sketches to word document !!, integration with Adobe tools, Advanced graphics and lot more
MIX09 Videos,
Complete list of MIX09 sessions and videos


a tip,
If you are installing Silverlight 3 then better removew all previous versions of Silverlight and first install VS2008 SP1 otherwise you may have a lot of trouble in installing Silverlight 3.

Monday, November 3, 2008

WCF Performance: Don't take it for granted

Conclusion first,

Our Challenge: 300 user base, when users execute complex search queries that will go through wcf services and for that our db would take more time than usual in executing the searches then other users will experience significant delays while interacting with the system. They will get web service calls timing out but you find CPU, RAM and other hardware resources were underutilized on IIS and DB box.

Solution:

  • By default WCF can't serve more than a limited number of concurrent users or requests. OUT of box WCF comes with conservative performance settings and in most of the cases you will have to tune WCF services yourself.

the key parameters that are to be set in services config file

<serviceThrottling maxConcurrentCalls="Integer"
maxConcurrentInstances="Integer"
maxConcurrentSessions="Integer" />

  • basic http bindings for WCF web services provide almost double the performance as compared to secure http bindings


MS products, ready to use:

We developed the application based on WCF web services but didn't realize that we should be thinking of tuning WCF before going into production, we took it for granted that things would go normal as they used to do with other ms products (like .net runtimes, IIS etc) simply because we did not have a very large user base but what we did not know was that WCF came out of box tuned for a very limited set of users.

the key config parameters ,

if your application is running in an environment where WCF services perform some blocking operation (because of some dependency on external processes like db or file read/write operations ) then you should consider setting the following parameters appropriately in the services config file.

<serviceThrottling maxConcurrentCalls="Integer" maxConcurrentInstances="Integer" maxConcurrentSessions="Integer" />

Me and my mate Merill worked together on this task and he was the first who detailed what we did in his blog, so instead of duplicating I refer to his post, check this nice article http://merill.net/post/2008/10/WCF-Performance-Optimization-Tips.aspx.

Stay tuned,

However beside tuning WCF, I have learned another lesson. The degrade in performance might not due to a single factor but may be a combination of factors when combined give rise to the problem. Trying fixes one by one might not give you a success, leaving you scratching your head. My next blog will on how to attack a slow performing application and what to look for & where, so stay tuned.

Monday, June 30, 2008

Bridging the gap: Business and IT

We know the people who give requirements called 'Business' and the people who develop the requirements the 'Developers'. Also we know that there is another group of people who work as coordinators among these two groups and called 'Analysts'.

The challenge,

For analysts the major challenge is to make both 'business' and 'developers' happy. They deal with the people who want to stick with their guns and hard to change their opinions. Business just believe in getting whatever they want 'somehow' and Developer whatever they 'understand' to deliver is to deliver with the technology they know the best. The analysts have to master the art of communicating to both the groups in their own language.

What happens in the real world,

Analysts might come from one of two backgrounds; IT developers with strong communication and problem solving skills or Business people with strong management and understanding skills.

A successful analyst would be the person who attempts to see the picture from the other side.
Limiting the focus to the areas they know best do not deliver the results.

For instance, an analyst with background in business may attempt to force the development team to cut the crap ("methodology and processes") and deliver fast. On the other hand an analyst with expertise in IT may try to focus more on technical solution (tools and technology and methodology) than functional solution (the process and achieving the value), stressing the quality of the software.

recipe for success,

DOs

  1. Realistic
  2. Quality of software and processes does matter
  3. Business people needs solution to their business problems
  4. Developers want clarity so remove ambiguity from requirements as much as possible
  5. Business is more interested in functional solution then technical design so give them the only part they are interested in.
  6. Speedy communication is the key to success
  7. For everything, coming from developer or business, ask again and again 'Does it make sense?'
  8. Be flexible but Quality Does Matter!
  9. Learn how to understand people, deal with each person (technical or business) with the way they should be
  10. Understand the environment, the people, the context and the people. Every place is different so modify your approach but always make it goal driven.
  11. Be agile, embrace changes and updates

DON'Ts
  1. Avoid attempting to be 100% clear on requirements , business will never (and they can't) give you. Make assumptions, take decisions and move forward with an acceptable margin of error
  2. - Avoid stressing too much on technical quality when it will deliver no value, making process too difficult to follow and creating a pile of documentation which no one would be interested in reading.
  3. Don't rush to get something done with half cooked requirement. you might have to scrap the whole work and do it again. In IT delivering a software with 95% functionality working means having bugs around 5% mark, too high!.
  4. Get out of your shell, your background (IT or business) is your strength, don't make it a constraint

Just a link,

http://www.requirementssolutions.com/Business_Analysis_Skills_Test.html

Friday, June 6, 2008

Back to life

Back to business after almost two months, at work life goes as usual, another project after another,but personal life has been changed completely, got married to a beautiful girl, came with her to Aus(yes we made it together!), just got the keys of our new home (moving very soon!) and last (but not the least!) will going to have someone soon who will call me Daddy! (what a feeling!)

So what should I write now? still IT thoughts are trying to make their way into my mind but with not much success

What if we map our lives to Software life cycle? how it would look like? I always love such analogies, they give some interesting knowledge bits, let you look at life from a different angle

We born to our parents,
* software born to business users and development team,

We grow, learn, improve, medical problems, see doctor, cry, laugh,parents feel proud
* software gets rich in feature, get defects (but they don't cry!), eases the pain of the users (but they don't laugh!), see technical support guys, get more stable and stable, business user and developers feel proud(not always though :D )

We socialise, make friends, help others, get benefited from others, create problems for others,
* software starts interacting with other software (ok I mean web services in today's term), relationships established, provide information to other systems, share data, share knowledge, sometimes crash the other systems too, but they don't feel!

We get threats, concerned for our security, financial struggle, move to other places, buy new homes, change lifestyles
* software attacked by viruses, spyware, malware ..., move from one server to another, behind another firewall, get new operating system, new features, work more efficiently (but they never pay themselves, their parents (business or consultants) always pay for them )

We plan our life, start family, Kids, travel and tours, family holidays,
* software , hmmm, sorry they always work, no such luxury , poor dumb systems, they need some AI to think, how crap their lives are!

well, ultimately we die, remembered or forgotten
* software, they die too, replaced by new systems and forgotten,

Conclusion:
I don't want to be a software, I want to be remain human, establish my life but want to work only part of a day not 24x7, enjoy my life, laugh and yes wanna cry too, I want to be remembered, I don't want to be a software

see u soon with some real IT stuff!