Making of idiode.in

Posting some of the images from the design process of my portfolio (http://idiode.in).

 


I-V characteristics of a diode,from which I started.

 


Initial design based on the circuit for plotting the I-V curve of a diode

 


Final design of the layout

 


"I am " screen

 


Battery for showing proficiency level

 


Initial design of skills screen

 


Initial design of hurdles screen

 


Design of "personal" screen

 


Design of "traits" screen

It went through many iterations and took almost 9 months to complete.

.

exSprite – Javascipt Library for Canvas Demo 2

exSprite – Javascript Library for Canvas Demo

nodejs 0.5.9 – nodemon fix

 

After updating node to version 0.5.9, current version of nodemon will not work because of the changes from node 0.4.9.

You can make the following changes to nodemon.js and get it working.

( file https://github.com/remy/nodemon/blob/e9d5274406515a45a6db0c7bd74650fe8cb4716e/nodemon.js )

line 3 :
sys = require('sys'),
to
sys = require('util'),

and line 10 :
nodeArgs = process.ARGV.splice(2),
to
nodeArgs = process.argv.splice(2),

Flash vs HTML5 : A Developer’s perspective

I remember… it happened back in 2002… I developed one simple c++ program,  a very simple program,  using Borland Graphics Interface . It drew some shapes – combination of lines, circles and rectangles on the screen and on mouse-click one shape turned into another shape. I shared it with some of my friends by sending the executable via mail. Then some of them started complaining that they were not able to run the application, some of them were not even able to download it from their mail as it was an executable. So I started searching for an alternative using which I could develop similar programs and share it without any headache. My search continued until one of my friends, Fenin  told me about Macromedia Flash.  He showed me some sample applications which he had developed using Flash 5. He used to embed them in one web page and share the link with his friends. Installing one browser plugin ” Flash Player “, all of them were able to see the content. It was something new to me, it was a dream come true, until then a web page was something dull and boring for me, just some text content having a number of limitations, only limitations,  but “SWF” content – it simply rocked.

I started playing with computer graphics in Macromedia Flash and shared all of my SWFs with my friends. I created  web pages with Flash content  – I still remember… its was real fun – playing with pixels and co-ordinate geometry. Then Actionscript 2.0 came using which I learned more about user interaction.  First it was all about graphics and user interface but it became more interesting when I learned about Flash Media Server, NetConnection, Netstream and XMLSocket.  It became really easy to develop web pages with dynamic content, online chat, streaming media and mutli player games – all these were possible in Flash when a page refresh was needed in Browsers to load new content and using Ajax was not so common.  The most notable thing was that Flash was totally independent of  Browsers. I never worried about how my Actionscript code will work in different browsers. I wrote my code only once and it worked evenly in all browsers , really Flash was a technology ahead of its time.

Everything was fine until Adobe acquired Macromedia. Adobe released Flex Framework and Flex Builder and it became the first choice for developing Rich Internet Applications.  Flex Builder attracted more developers to Actionscript development as it was a complete IDE  compared to Flash authoring tool. But gradually  I realized that the Flex was buggy, complex and heavier than the Actionscript applications  I used to develop. One of the developers I know even got a project to convert a completed Flex project to Actionscript project. Even the word ” Pure Actionscript ” became common among Flash developers, indicating  that something free from Flex Framework. Then Adobe released AIR for desktop  and most of us called it ” Limited Java “, as it had a number of limitations when compared to other similar runtime environments. The only good thing happened was Actionscript 3.0 which made coding easier.

Then came third party 3D engines,  they brought the enjoyment back – PaperVision3D, Away 3D, Sandy 3D etc. all of the engines were really powerful and opened a new world for developers – In addition to that came Physics engines – Box2D, JigLib Flash etc.

These were software engines, but  amazing websites and web applications were developed, which were beyond the capability of HTML. Adobe released Flash 10 with 3D, a long time after the release of  all  third party engines. I still wonder – for what Adobe waited, why didn’t they realize the capability of the technology they had.

Release of iPhone by Apple was a new beginning.  Until then people who worked with rich user interfaces were mainly Game Developers and Flash Developers – iPhone really changed the game. Where Adobe failed to bring a platform called ” Flashlite “, Apple brought a new device, new development platform and an entirely new market for developers and companies. Moreover iPhone introduced attractive, flawless and efficient applications.  But it didn’t became a threat to Flash until the development of  HTML5 and release of iPad.

 

Now, almost 2  years after the release of iPad, most of the Actionscript developers are in a dilemma. Actually its not because of the popularity of iPad or wide acceptance of HTML5, but because of the fact that there is nothing to expect from Adobe.

I am also one of the developers confused about the future and a few months before I started developing applications in HTML5 and each day I am realizing that how powerful Flash is. When I do something in Javascript, I have to make sure that it will work in all browsers. Sometimes I even have to write separate code/css for each browser, even though HTML5 is known as cross-platform.  I totally agree with open-web standards and freedom of developers, but truth is that in HTML5 I am researching the feasibility of something which I used to do years ago in Flash.  Still its a fact that Adobe is not able to turn it to advantage :( .

Setting up an Asterisk server

Asterisk is a software PBX. You can set it up on a server and connect it to VOIP gateway to make your voice calls over internet. Asterisk is the best of its kind to start up a VOIP service.

1. Get the source

First step is to get the source of the latest version of Asterisk. You can download it here

http://www.asterisk.org/downloads

or you can check out from svn repo

Asterisk

svn checkout http://svn.asterisk.org/svn/asterisk/trunk asterisk

DAHDI : For telephony hardware interface

svn checkout http://svn.asterisk.org/svn/dahdi/freebsd/trunk dahdi-linux
svn checkout http://svn.asterisk.org/svn/dahdi/tools/trunk dahdi-tools

LibPRI : Library for ISDN signalling ( optional – only for E1 Cards )

svn checkout http://svn.asterisk.org/svn/libpri/branches/1.4 libpri

Note: Run the commands as super user.

Install LibPRI : If you are installing LibPRI, you have to install it first

cd 
make clean
make
make install

Install DAHDI:

cd 
make all
make install
make config

Install Asterisk:

cd 
make clean
./configure

Customize (optional): You can customize your Asterisk installation using a menu interface.

make menuselect
make
make install

Install Sample configuration files and documentation. ( optional but recommended for beginners )

make samples
make progdocs
make config

Start Asterisk : You can start Asterisk by giving the following command. ‘c’ for connecting to console and ‘v’ for amount of logs.

asterisk -vvvvc

GET/POST from Actionscript and Browser cache

When you make a POST/GET request from Actionscript, browser returns the response of the previous call of the same url from cache. We can avoid this by adding a random parameter in the request.


var urlreq:URLReequest = new URLRequest();
var urlLoader:URLLoader = new URLLoader();

urlreq.data = {random:Math.random()};
urlLoader.load(urlreq);