iCode was founded in 1989, and has had an incredible journey over the years with multiple successful hardware and software engineering ventures. While the founders of iCode have all moved on to create many other successful ventures, this site’s purpose is is to serve as a repository and social hub for iCode’s original founder Ali Jani and iCode fans. Together we can discuss all kinds of awesome development projects, post general how to’s, tips/tricks, and any other technology related topics.

Lets see how this progresses and I have no doubt the iCode legacy will continue to live on.

Risk Dice Roller is a simple app designed to replace dice needed for the original risk board game. It automates the rolling process and keeps history and statistics of each players rolls. You can even automate larger battles and watch as your large army takes on the defenders. It can be really fun to compare player stats and its effect on the outcome of the game.

If you need to locate a field in a large database and you don’t know what table the filed is or not really sure of the exact spelling of the field, you can use this simple query to search for fields names in a database.

Since Google does not support SIP, what you need to do to get around the restriction is get an alternate SIP account, connect it to a 2nd phone number, and the forward your Google Voice to this number.

The Bezier Curve formula below can be used to define smooth curves between points in space.

P(t) = (1-t)^3P0 + 3(1-t)^2tP1 + 3(1-t)t^2P2 + t^3P3

Bezier Curve

The function below is a C# implementation of the formula return the X and Y coordinates of a position on the curve for a given Time (t) and the 4 points that define the Bezier Curve. At t=0 you will be at p0, and at t=1 you will be at p3.

You can easily extend this to connect multiple curves to each other (multi-segmented path). You can do this simply by making p0 of subsequent segments equal p3 of the prior segment.