The Coder Diaries: Death Knell to Flash!

Working closely with web development technologies enables one to think about more intuitive ways to meet client expectations & delight the end users. UI designs, animations and usability, guide the dynamics to any successful portals project.

Seven years ago, my first JavaScript code which modified the elements on a page at runtime fascinated me beyond comparison (it still does!). Sleepless nights, boundless coding & creativity led to a bunch of innovative designs; yearning deepened and the journey progressed from a juvenile coder to an intermediate with questionable reasoning.

Soon enough, jQuery came into the picture and everything changed – yet again. Stronger UIs, a better control over page components and the gift of ‘Code Less, Do More...’ gripped the athirst-for-knowledge in me. And before I knew it, I was left with more expectations than just being limited to a mere wrapper around the erstwhile JavaScript.

A couple of weeks ago, when while working on a project left me with utmost desire to use the forbidden flash components to achieve the desired UI, a vague yet intriguing idea of jQuery-ing the flash components struck my mind. While I was mostly preoccupied with timelines & deliverables, Adobe was preparing the beta release of their next marvel: Edge... most aptly termed by the wizards of web development as the ‘Death Knell to Flash!’ With over 50,000 downloads in First 24 hours, the latest from Adobe Labs seems more than promising.

Edge aims to be a "web motion and interaction design tool that allows web designers to bring animation, similar to that created in Flash Professional, to websites using standards likes HTML5, JavaScript and CSS3." Currently being limited to basic animation and simple page layout, users of timeline-based applications will immediately apprehend Edge's simple UI and timeline for HTML5 animations.

Here’s hoping that Edge is a success for Adobe and that it emerges as a strong tool for designers and developers

Using I/O ports in C programs

Routines for accessing I/O ports are in /usr/include/asm/io.h (or linux/include/asm-i386/io.h in the kernel source distribution). The routines there are inline macros, so it is enough to #include ; you do not need any additional libraries.


Before you access any ports, you must give your program permission to do so by calling the ioperm() function (declared in unistd.h) before any I/O port accesses. The syntax is ioperm(from, num, turn_on), where from is the first port number to give access to, and num the number of consecutive ports to give access to. The last argument is a Boolean value specifying whether to give access to the program to the ports (true (1)) or to remove access (false (0)). ioperm() can only give access to ports 0x000 through 0x3ff; for higher ports, you need to use iopl() (which gives you access to all ports at once).

Accessing the ports

To input a byte (8 bits) from a port, call inb(port), it returns the byte it got. To output a byte, call outb(value, port) (please note the order of the parameters).

wait for more ;)

Page copy protected against web site content infringement by Copyscape