Saturday, June 23, 2012

Alan Turing - Google Doodle Solved

Google, breaking the pragmatism of creating artistic doodles, has showed up a geeky doodle which is a gate way to Google search results for the greatest mathematician, natural code breaker Alan Mathison Turing who with his inventions laid the strong foundation for modern computing world. The " Alan Turning Doodle " which is showed  up on Google's home page today is a tribute this ingenious.

I didn't care much to solve this doodle for the first couple of Google searches that I made today, but each time I opened Google's home page, it was be-knocking at me by tacitly asking to be solved. I began and It took little time to understand the problem to be solved and here it is.

Problem to be solved
  • User is expected to, match the pattern displayed at the right top corner of the doodle.
  • To match patterns it is required to shift bits, either 0 or 1 which can be set explicitly.
  • Each time the bits are set , doodle starts matching the modified pattern with the target pattern.
  • And if the match is successful, each letter of the word "GOOGLE" is decoded, i.e each character's color changes from gray scale to colored.
  • Once all the characters of the world "Google" is decoded, Google redirects you to page displaying search results for Alan Turning

This is more of a permutation problem combined with need to set or unset the bits appropriately.
each time a character is decoded, the level and hence the complexity of the problem increases.

Decoding Patters for each character

G = 01011
O = 00011
O = 00011
G = 01011
L = 01001
E = 10000 

And Here is how I did it.
Though I could capture most, but few screenshots are missed.

Decoding G

Decoding O
Decoding O

Decoding G
Decoding L
Decoding E

It took a little time for me to solve, but it was worth of it.

Friday, June 22, 2012

Windows 8 - From a Consumer And a Developer Perspective

Microsoft Surface an unexpected surprise to the computing world, a menacing competitor for those who thought they had touchstone devices in the digital realm, and an adjunct to the joy of consumers and developers, Microsoft Surface running Windows 8 has formally made its pitch to bring-in  wave of change to the way we interact with computers superseding traditional flashy, jazzy, banal user interface.

That is not all, the release of Surface has now personally given me a strong reason to start posting articles on windows 8  which I was postponing for last few months, and this article being harbinger to the series of windows 8 articles, presents a brief introduction to windows 8 from a consumer and a developer perspective.

Windows 8 Home Page
Consumer Perspective
Perceiving windows 8 from a consumer perspective gives raise to innumerable questions which are very common, and to list a few.
What is Metro UI ?
What was the need of Metro UI ?
What learning efforts it takes to start working with Windows 8 ?
Can I run all those applications on Windows 8 which I used to run on Windows 7 ?

Now, let me try to answer these.
Windows 8 isn't just, an another operating system, because by considering it so, we would be reflecting our own ignorance. Yes for the sake of definition Windows 8 is yet another operating system, but beyond everything at the crux of it Windows 8 is a new design concept distinctly unique and discrete from the rest of converging design concepts.

Windows 8 Metro UI is a new way of perceiving things to build a sense of familiarity which gets imbibed in our conscious without even we could realize it. To exemplify this consider a scenario. Say, for the first time you are about to drive from a source to destination location, and as you hit the road your eyes start searching for sign boards, and you will be unknowingly trembling in a state of ambivalence until you find a signboard, with an arrow mark directing you to the destination location.

Once you are assured of the way to the destination location as indicated by sign boards, your conscious will feel back at home. This is because our brain is already being tuned to be familiar with such sign boards since the day our brain started learning and perceiving things around us. Windows 8 metro UI is all about this, making our conscious feel comfortable, feel always be at home, encounter with less surprises, a minimal computing work for brain and ultimately bridging the gap between humans and machines.

Windows 8 isn't Metro UI or Metro UI isn't Windows 8 either, in its original and in the most Ingenuous form Metro itself is a insular design concept with unquestioned approbation, since Metro design can be easily interpreted and perceived by human beings.

And lastly the key point, "Backward Compatibility" which is the main requirement of any newly built software product, and this isn't different for Windows 8. Having said that users can be assured that all of the  applications running on windows 7 should flawlessly run on windows 8 with or without minor modifications.

Developer Perspective
From a developer perspective, Windows 8 has opened a new and also a huge window of opportunities to developers to showcase their skills, expertise, design erudite,  and ability to make a difference. Now it is the responsibility of the developers across the world to build windows app store from the scratch since Windows 8 has brought in the concept of  Metro UI and a more strict and restrained life cycle of applications. Below are the few common concerns of the developers who are novice to windows 8.

Snap Shot of  Windows 8 Metro UI - Twitter app
Metro UI or Desktop Application.
Developers are not fettered to be developing only Metro applications for Windows 8, because some applications are more appealing and friendly to be used in windowed mode than as a Metro application. To support windowed applications, Windows 8 runs "Windows Desktop Environment" as an application inside Windows 8, enabling it to run native windowed applications.

Tablet PC or Desktop Computer.
Developers can develop Metro applications without bothering anything about target devices. This is because Metro applications are inherently device agnostic. it just needs WinRT framework to run. However desktop applications, aka windowed applications built for windows 8 will only run on Windows 8 Desktop edition and these windowed applications can't be run on tablet PCs since tablets running Windows 8 lacks desktop environment.

Programming Languages.
Windows 8 makes every developer feel at home, since there isn't any new language to be learnt to code for windows 8. Developers can build both Metro and Desktop applications using the same languages C, C++, C#, VB, JavaScript, HTML which they have been using ever since.

Start Coding.
Download Windows 8 release preview
Download tools and SDK for development of Metro apps.
Self help Documentation

That is all for now. I will be writing posts, mainly developer centric on building metro applications. I hope this article could help you understand the essence and need of Metro UI and hence Windows 8.
Kindly write to me if you have any comments or suggestions