Mathemachicken is a unique educational game which teaches basic mathematical operations with the help of the chickens. The primary goal of the game is to add or subtract the eggs laid out by the first two chickens. The user represents the answer by making the third chicken lay eggs by touching it. The answer is submitted by poking the cow. The game is finished once the user answers 10 questions correctly. The game has been designed in a way that the answer will never be greater than 10. The user can also pop the eggs of the third chicken by just touching them.
Additional features are listed below:
1) Hilarious sound effects when the chicken lays an egg
2) Physics effects when the chicken lays an egg
3) Ability to pop the eggs of the third chicken by touching it
4) Point based system to keep the user motivated
5) Applause sound for the correct answer
Get the app now using the following URL:
http://itunes.apple.com/us/app/mathemachicken/id425364385?mt=8#
I came up with many different titles for this post but I think nothing can reflect the simplicity and the elegance of the two words “Hello World”. If you are following me on Twitter (@azamsharp) then you might have noted that my tweets have drastically changed from highly technical to plain poop. On October 22nd I became the fatha, I mean ferger, I mean father (Joke from Austin Powers Gold Member). Many people have asked me how does it feel to become a dad I always answer with the following:
“I feel older and wiser!”
Even though she is only couple of days old I have already picked out the following story books for her.
1) Agile Web Development with Rails, Third Edition
2) Beginning iPhone 3 Development: Exploring the iPhone SDK
I am sure she will enjoy the stories!!
Here is the picture of Mehreen Azam.
My little baby girl!!
Recently, I pushed out a new version (1.1) of the ABC Pop game. The new features includes the following changes:
1) Ability to repeat the voice
2) Three new cool backgrounds
The game is available on app stores for only $0.99 cents. Use the following link to read more about ABC Pop.
http://itunes.apple.com/us/app/abc-pop/id392527680?mt=8
Thanks,
Where do you find 800+ technology geeks talking in binary? Yes you are right Houston Techfest 2010. I was fortunate enough to attend the Houston Techfest 2010 hosted at University of Houston on October 9 2010. Fortunate, because I got permission from my wife, she is pregnant and due in a week.
I presented two sessions on the following topics:
1) NOSQL Using MongoDb
2) Introduction to iPhone Game Programming
One of the good question asked in MongoDb session was how to access the nested collection attribute. Here is the code for that:
db.Customers.find({“Addresses.City”:”Houston”});
10Gen was kind enough to send some MongoDb swag which was distributed in the session. To read more about MongoDb I recommend checking out the MongoDb website and also articles hosted on HighOnCoding.
My other session was on iPhone Game Programming. It was the last session of the day 5-6 PM. I really enjoyed presenting this session since it is just so much darn fun creating iPhone games. In the iPhone session I demonstrated how to use Cocos2d framework for creating cool effects and animation, SpaceManager to create physics dependent games and Instruments to find memory leaks. There were many good questions from the attendees and most of them were interested in getting started. Here is a complete list of things which can get you started with iPhone programming.
1) Mac (You can get Macbook, IMac or Mac Mini)
2) Pay $99 (annually) to Apple to become part of the developers program.
3) iPhone or iPod Touch to test application (You must be part of the Apple Developers Program to test your iPhone application on the device. See point number )
4) XCode
5) Cocos2d (Cocos2d library makes it easy to create games)
6) SpaceManager (Wrapper around Chipmuck and it makes it easy to use physics effects)
7) Ray Wenderlich blog (This is the best resource for creating iPhone games)
8) HighOnCoding Articles on iPhone Development
9) TheNewBoston on YouTube (This guy has many iPhone development videos)
You can download the complete code using the following link:
[Download]
Many people also asked me about my iPhone application which is available on app stores. The app is called “ABC Pop” and it is an educational app to teach alphabets to young kids. If you do buy ($0.99) the app please rate and review it.
It is that time of the year again! No not all you can eat at IHop! I am talking about Houston Techfest 2010 on October 9th 2010 at University of Houston. I have to admit that I have attended all the Techfest events in Houston and every year it gets better and better. If you have not registered then register now using the link below:
Register for Houston Techfest 2010
I am presenting two topics at Techfest and here are the details of the sessions:
NOSQL Using MongoDb
In this session Mohammad Azam will explain the concepts behind document database using MongoDb. MongoDb is a super fast, scalable document database which can be used by many different programming languages. The session will include live coding which will explain how to use MongoDb in a .NET application.
Introduction to iPhone Game Programming
iPhone games are among the top applications sold on iTunes. In this session Mohammad Azam will introduce iPhone Game Programming using Cocos2d Framework. Azam will demonstrate how to utilize the effects, animations and audio libraries of the Cocos2d framework. The session will also introduce the usage of the SpaceManager, physics library for the iPhone. This session is highly code based so sit back and enjoy!
See you at the Techfest!
Couple of weeks ago I gave myself a challenge. The challenge was that I have to write a complete iPhone application in 1 week. I had no prior iPhone development experience so I thought it would be fun and educational at the same time. I had couple of app ideas but since my first baby is due in October I thought I would make something that my baby can use.
My wife and I came up with ABC Pop. An educational alphabet learning game. The basic idea of the game is that the user will pop the bubble that is indicated by the wonderful voice of my wife. Once a number of bubbles are popped the user earns a star. The user can earn a maximum of 9 stars. The nice background music, cool sound effects and several awesome background make this game a must have for kids learning alphabets.
You can check out the application by searching “abc pop” on the app store OR you can use the following link to view the app on iTunes.
http://itunes.apple.com/us/app/abc-pop/id392527680?mt=8
The screenshots are shown below:
I have expressed my adventure of writing iPhone application in the form of articles which are hosted on HighOnCoding. You can check out the following articles:
Introduction to Cocos2d for iPhone
Sprites and Animation in Cocos2d Application
Cocos2d iPhone Sprite Movement and Collision Detection
Hope you like the application and reward my effort with a nice review!!
Thanks,
Azam
The ObjectID is assigned to each document when the document is persisted in the MongoDb database. The ObjectID is a unique ID to distinguish between different documents. The ObjectID is kept in the field/attribute called “_id”. This attribute is very important when fetching and updating the records. When using MongoDb with C# driver I usually create a property called “_id”. This property maps directly with the _id field of the MongoDb storage system.
Let’s say you do not have _id in your C# entity class and you want to update couple of fields for that class. Here is a small implementation:
var customer = customers.FindOne(new Document()
{{"FirstName", "Mohammad"}}).ToClass<Customer>();
customer.UserName = "azamsharp";
customer.Email = "azamsharp@gmail.com";
customers.Save(customer.ToDocument());
The above code will successfully pull the customer document and convert to the appropriate class but it will not update the existing customer document. It will go ahead and create a new document. The reason is that the Save method will look for _id field and if it is not found then a new record is inserted.
You can however use the obsolete Update method and pass your custom fetching strategy as shown in the code below:
customers.Update(customer.ToDocument(),
new Document(){{"CustomerId",customer.CustomerId}});
The above code works perfectly but it does adds more to the picture. Think of _id as the MongoDb convention and use it instead of working around it.
The C# driver for MongoDb works with plain documents. Unfortunately, we don’t live in a document oriented world. Our world is more of an object oriented. There are numerous ways of converting the object structure into documents and I have blogged about this before. If you are interested here is an article which takes about ToDocument() method which can be used to convert objects to documents.
Implementing Business Object to Documents Converter
While making these conversions I thought that maybe I will use an Object Relational Mapping tool to write my classes. So, I used LINQ to SQL framework to create my entity classes or I think I should refer to them as mapping classes. The problem with creating classes using an OR mapper is that it creates a two way relationship between objects. A customer object can have many addresses but why does an address object needs a reference back to the customer when we know that we will never access the address without the customer object.
The main problem comes when you want to serialize these objects. The serialization will return in circular dependency problems. The only way to serialize is to either make the relationship internal or null out the relationship. Both of them are pretty bad techniques.
My conclusion is that when using MongoDb as your data source take the time to manually craft your entities and do not rely on OR mappers to create the relationships for you because most of the OR mappers will create wrong relationships.
My quest to learn things outside the Microsoft stack has led me to the Ruby language. I always admired the beauty and expressiveness of the Ruby language. Ruby advocates the idea of unit testing and that is why it is baked into the Ruby language.
I just published an article on Unit Testing Using the Ruby Language which can be viewed using the following link:
Introduction to Unit Testing in the Ruby Language
I hope you enjoy the article!
I think most of the programmers have this disease of keeping them self busy with work and I am no exception. Several months ago I was interested in gardening and spent most of the time growing my vegetables. I like to think I was kind of successful as my garden produced 6-8 large tomatoes and one single huge egg plant. Anyway, Houston heat and insects have kept me out of the garden and I needed another gig. So, I decided to give photography a try. My wife bought a D5000 Nikon which was a perfect camera for me to get started. Now, I spent most of my free time capturing nature and really enjoying it. Some of my shots are shown below:
For more of my photography please visit my album using the link below:
AzamSharp Photography