Posts

Single Page Web Applications

[Excerpts from my book review published in ACM ComputingReviews.com on March 31, 2015.] Single page web applications : JavaScript end-to-end Mikowski M., Powell J., Manning Publications Co., Greenwich, CT, 2014. 432 pp.  Type: Book (978-1-617290-75-6) Date Reviewed: Mar 31 2015 In the late 1990s, a technology now known as Ajax became prevalent in web applications as a tool for fetching content from a web application server asynchronously rather than having to fetch an entire new Hypertext Markup Language (HTML) page whenever a page update was required. The payload format for data exchange between client and server was predominantly Extensible Markup Language (XML) (AJAX was originally an acronym for Asynchronous JavaScript and XML). Typical Ajax use included fetching portions of a page or data updates from a server, the most famous one being Google Maps, which updated its web page asynchronously in response to the user zooming in or out or dragging to a different portion...

Towards a Pixel to Metal Perspective

[This is an excerpt of my review published in ACM's ComputingReviews.com on January 29, 2015.] Becoming proficient at web application development involves a very steep learning curve and is often a never-ending, career-long endeavor. And yet a newbie has to start somewhere. When getting started, it’s easy to become overwhelmed by the vast array of concepts, technologies, and tools one has to master. Often, even proficient web application developers have blinders on when it comes to having a broad perspective on web application development. In general, most developers are adequately familiar with only one or two of the following aspects of web application development: client-side programming, middleware programming, server-side programming, text editors/integrated development environments (IDEs), source/version control systems, data stores, operating systems, network programming, and hardware configurations. Few developers have a broad enough perspective--or what I call a 360-de...

AngularJS And HTML5 ContentEditable

Getting Angular to Play Well With HTML5 ContentEditable HTML5 introduced a cool new attribute, which can be attached to any element to make it editable ( contenteditable="true" ). However, that's just the theory. To make that work, you have to use a data binding library (e.g. AngularJS, BackboneJS) or build your own using JavaScript. I recently created a todos application using pure JavaScript (with jQuery) with a Node/Mongo backend, i.e. without using any data binding framework. This is a good exercise to ensure that you understand JavaScript well enough before you start leaning on hefty frameworks that obscure a lot of what goes on behind the scenes. If you understand JavaScript, you'll be better able to troubleshoot and fix issues that come up when you're using frameworks. My pure JavaScript app is deployed on Heroku here . The code is on GitHub here . Once I was happy enough with the pure JavaScript application, my next goal was to redo it using Angul...

Adriano, the Arduino Robot | Step 3 (L293D Controlled)

Image
[Everything in this robot is built from scratch, no kits used (except for the chassis).] Click here to view the previous steps in this series. Step 1 (Basic Operation) Step 2 (Remote Controlled) Further to adding the remote control feature, I added the L293D H bridge chip to allow the Arduino to reverse motor direction. This also allows for the removal of the 2N2222 transistors that were previously managing the power supply to the motors based on signals received from the Arduino. As you can see from the video and the schematic, using the L293D chip significantly reduces the complexity and bulk of the circuit. On the other hand, you now need to respond to one more remote key press (down/reverse) and issue two more pin signals (reverse action, one for each motor).

Adriano, the Arduino 2WD Robot | Step 2 (Remote Controlled)

Image
[Everything in this robot is built from scratch, no kits used (except for the chassis).] I finally found the time to add remote control capability to the robot I had created around this time last year. Check out my earlier blog entry for details on how I created the core robot . After building the core robot (see link above) and getting it working, I decided that the next best step would be to add remote control capability to it so that it could be moved around as desired. I decided to try the Vishay TSOP4838 infrared remote receiver/sensor. I first created a proof of concept for the remote and the receiver. Even though I have several remotes at home, I decided to buy a cheap and simple remote just for the robot so that I could do all of my testing without interrupting those at home who wanted to watch TV. As it turns out, any infrared remote can be made to work with the robot. Just get your program to spit out (to the serial console) the received raw codes from the remote ...

DIY: Atari Punk Console, Sound Synthesizer, Noise Maker

Image
Here's a video I've posted on YouTube.com with detailed steps on how to build an Atari Punk Console (APC). I've also covered some of the key concepts required to understand the APC circuit, including the workings of the 555 integrated circuit chip and the workings of the 555's astable oscillator circuit setup and monostable oscillator circuit setup, which collaborate to produce the wonderful variety of tones we hear from the APC. I've also included several demos of the finished product, both solo as well as plugged into my Line 6 Spider IV 75W amplifier, which adds some amazing effects on top of the APC! To help you get the most out of this tutorial video, I've posted the slides and the video narration transcript at the links below. APC Tutorial Slides APC Video Narration Transcript Please don't forget to like the video and subscribe to my YouTube channel !

A Short History of Iterative Software Development

[This post has also been published on DZone.com , where it has gathered well over 5,000 views.] It is useful to know about the various iterative software development project methodologies and how they originated, not so that you can follow them religiously but so that you can add them to your bag of tricks. I recommend learning about the following. Kanban (1953), whose origin lies within the Toyota manufacturing process innovations Scrum (1986), and its storied origin in the 1986 Harvard Business Review seminal article The New New Product Development Game , which examined 6 major Japanese and American companies to conclude that successful teams had replaced sequential approaches with iterative ones Rational Unified Process (1996), proposed by IBM in response to some of the growing market forces looking for alternatives to the Waterfall family of methodologies Lean (1998), and its origin in Toyota's manufacturing system Agile (2001), especially the contents and motiv...