Skip to main content

Whois[she|he]

One of my favorite ploy to those who newly joined my previous company was to give them a command line application and ask them to find out how it worked. This magic command line tool happens to guess your gender if you give your name.

char lastc = argv[1][strlen(argv[1])-1];

printf("%s is a %s\n", argv[1], (lastc == 'a' || lastc == 'i') ? "She" : "He");

Basically, it checks to see if your name ends with an 'a' or an 'i' and if it does, assumes that the person is a lady. Chances are, 95% of most Indian names fall into this category and this simple app seems to do magic.

Most were able to (after a few tries) guess the grand algorithm, but a few poor souls could not, which eventually leads to step number 2.

Step #2 is, as they were unable to decipher the algorithm, I said that I will provide with two separate command line apps called whoisshe and whoishe. I also mentioned that as I had not done the validation part properly, to please provide only men's name to whoishe and a ladies name to whoisshe. If they provide the wrong name, the results could be wrong as well. The code for whoisshe is as follows:

printf("%s is a she\n", argv[1]);

And appropriately modified for whoishe.

The aim is to see how long our new joinee continues to test these tools... Wicked!

Comments

Popular posts from this blog

Battle of Wesnoth Been on the lookout for a free turn based strategy game and chanced upon the Battle of Wesnoth . Despite it being an open source game (meaning, you get the source), it was incredibly polished akin to any of the other turn based strategy game (Alpha Centauri), be it the background score or the graphics or the tutorials. The game itself is set in a period similar to the D&D or nethack era. For the film buffs, if you have read or seen the Lord of the Rings, you would probably be able to relate to the clans that populate the game world. The game play, as with any turn based strategy game requires background information on each of the units that you own, their strengths and weaknesses and a lot of planning (a kin to chess, but with a lot more parameters) where factors like day - night cycles are taken into account (e.g, humans fight well during the day, but the orcs are better during the night). It is encouraged to keep your older units as they gain experience and beco...
Inside a Text Editor Ever since my college days, after dabbling with vi and a few other editors, I always had an yearning to create my own. Now, I am still stuck with XEmacs and jEdit and had a chance to compile / study the sources and documentation of EMACS and a free editor component called Scintilla. Until now, I was under the the belief that text editors used a doubly linked list to represent the text in memory. The advantages of this approach being insertions and deletions are much more easier which is just a matter of just un-linking a node off the list. But the shortcomming is that they tend to fragment memory with each node or line take a bit of memory. The other alternative approach is to have a dynamic array which is a contiguous space of memory and can sometimes be directly written off to a file. The disadvantages are that insertion and deletion are costly and you need to reallocate quite frequently. While goint throug the source and documentation of text editors, I chanced ...
The Quest The quest for a free UML tool has been going on for the past few years until I chanced upon StarUML . Capable, with support for UML 2.0 constructs except Timing Diagrams, this is a good tool compared to others like ArgoUML . StarUML is developed using Delphi and is COM compliant so that plugins exist to extend the existing framework to support or provide configurability. The base installation supports document generation and well as rudimentary reverse engineering support. I tried reverse engineering a few C# code and only a few classes were imported. This being an open source project, there is no stopping you from acquiring the source and fixing any open issues and submitting a patch. The UI is snappy and unlike other tools that are over 250 MB in size, this is 1/10 in comparison. A great tool for quick modeling.