Understanding Object.assign

    Redux is a powerful yet simple way of managing the state of your app, but it is a purely functional library. This is something that JavaScript developers may not have had much experience with and on its surface, sounds a bit odd. The purpose of Redux is to manage state, but one of the tenants of functional programming is you can’t alter state… so what’s up with that? To keep things functional, Redux makes heavy use of the Object.


    ES5 classes using Object.Create()

    This is a follow-up to Classes in JavaScript

    In my previous post, we learned how you can create classes in JavaScript using the new operator and a temporary constructor function. This post will show how you can use the Object.create() method to setup the prototype without using new.

    Classes in Javascript

    JavaScript doesn’t follow a classical inheritance model (although it can be made to do so), but instead uses a prototypal inheritance model at its core. See my introduction post on prototypes and objects if your not clear how this works.

    Prototypes and Objects

    The idea that everything is an object in JavaScript is a bit of a misnomer. A more accurate saying would be that nearly everything is or can behave like an object. The reason for this is because nearly everything in JavaScript comes from a common ancestor called Object. This relationship is expressed through prototypes.


    Zen-Cart: Gimme a cart and hold everything else

    It’s been 3 years since I wrote the little tutorial “Using Zen-Cart as a “Cart Only” System” and a lot has changed. The original tutorial was written for Zen-Cart 1.38 BEFORE they implemented the security token system for form submits. Since I moved to OpenCart as the shopping cart back-end for my main web project, I never bothered updating the Zen-Cart tutorial as I didn’t have the time or inclination to do so.


    Using Zen Cart as a cart only system

    UPDATE – 12/26/2012 - This Post is WAAY outdated, please see my new post regarding this method. I’ve seen this question has been asked many times before on the Zen-Cart forums with the same answer given each time: “it is not meant to be used like that, just make your whole site in Zen-Cart.” Well, if you have ever used a CMS like Typolight, you know that by comparison, the “CMS” capabilities of Zen-Cart cannot compare by any stretch of the imagination.

    Responsive Design Opt-Out

    Sometimes you just want to view a website as it would appear on a desktop, the problem is, with responsive design, user agent queries are ignored and the site will re-size itself despite clicking the “View Desktop Version” option in your mobile browser. For the development of, I made it responsive using the typical combination of Media Queries and JavaScript but also wanted a way for a user to “opt-out” as it were.

    Old Artwork

    Buried in the recesses of my hard drive I found some pics I saved from a degrading 3.5” floppy. Both were made in 1991 using the state of the art PC Paintbrush IV+. The machine I was using was a VGA equipped 286 made by some company that went out of business a long time ago (started with a Z I think). At any rate, The first one was copied from a Sierra Interaction Magazine advertisement for the VGA remake of Leisure Suit Larry.

    Visualizing Comcast Powerboost™

    What Is Comcast Powerboost? After upgrading the firmware in my Linksys WRT-54G router to Tomato, I was watching the wonderful real-time bandwidth graph that shows you exactly how much data is passing in and out of the router. With this tool in hand, I thought I’d see exactly what exactly does “Powerboost” actually do for me. I’m not disparaging it, as I can see it doing good for people who frequently download smaller files, say, single mp3’s, large images, etc.

    Tomato and VOIP

    Something I’ve been wanting to do for awhile I finally got to do a week ago. That is install the custom firmware Tomato on our Linksys WRT54G v.2 wireless router. Prior, I had only been using the router as an access point and not the full up router/firewall it was designed to be. This is due to the VOIP router (Dlink 1120M) that was provided by AT&T( as a part of their CallVantage service) was presently serving that role.