Development Blog

The lab is active! - August 15th '10

labs.avoidwork.com

It’s online, and empty at the moment. I need to organize my projects into it’s directory structure, after I work out my authentication model.

Server downtime - August 8th '10

Celcius was offline for most of Friday, and some of Saturday. At first this was due to a software conflict, which then turned into an opportunity to do a hardware swap / upgrade to prepare for an OCZ Revo PCIe based SSD. I also took this time to install a wildcard SSL certificate for avoidwork, which I mentioned in the previous post.

No data was lost, we just experienced a little downtime.

SSL fever! - August 8th '10

I decided to look into wildcard SSL certificate providers this weekend and was blown away by the price difference between my usual registrar and GoDaddy. After a little more research, I decided to get a ‘Standard’ wildcard for avoidwork which I plan to use across a lot of services and URIs; including a proper secure online lab.

The first things I encrypted was the client area (project manager) and a brand new webmail.

avoidwork NoSQL Schema - July 26th '10

avoidwork NoSQL Schema

The new database behind a PHP5 interface.

NoRel design using Views on a MyISAM table. Pure speed.

A rule table to apply bit permissions to entities. The entity.owner value comes from another db/service (openid style, decoupled ’cause it should be). When creating a new entity if the owner is not null (ie, not a system entity) a perm of 4 (read/write/delete) is applied, otherwise only 1 (read) is set via trg_ins. A cascade delete is handled by trg_del.

Views are used to create categories, based on an entity.parent value of 0. In theory this is both the navigation and primary content channels.

Groups are possible via the same auth service, so this is basically gen 1 of Spiral. That version will rely on Doctrine ORM and have a more robust dashboard compared to avoidwork.com.

Architecting Services - July 24th '10

The recent decision to move to a NoSQL database was coming for a long time. There’s obvious benefits to the schema design for certain scenarios, and I’m betting on them.

I was so quick to create the code base to allow me to use the new schema that I forgot I was missing the Authentication service on the secure application gateway I launched a few weeks ago.

Considering it’s close to midnight, I’m going to finish up tomorrow or later this week depending if the sun comes out tomorrow.

Upgrades! - July 24th '10

avoidwork.com is getting a behind the scenes upgrade by moving to a NoSQL schema powering my PHP5 code. I’ve also refactored the directory structure to be more secure with ‘best practices’ in mind.

SSL/RESTful Gateway online! - July 3rd '10

A major component for the SaaS project that’s driving aFrame development went live today! The URI based, SSL encrypted Gateway is online and ready for a bunch of resources to be enabled when the other pieces of this scalable application are ready.

It’s going to be killer.

aFrame Update - June 27th '10

Today I managed to squeeze a few hours in for development and banged out a final version of the AJAX/REST classes for DELETE, GET, POST & PUT. I also re-organized some classes, and created a few new ones including array{} which has alternative methods to native ones such as contains() in lieu of indexOf(), and remove() in lieu of slice()/splice().

More prototyping of aFrame onto JavaScript objects has also been occurring, and it’s starting to turn into a great framework to create applications with.

aFrame is almost ready for Beta - June 20th '10

The Prototype has gone into the Alpha stage, and it’s getting fleshed out rapidly. Next the step should happen within 2 weeks, because I’m going to be going camping and not much will happen over the next 5-6 days.

I worked out some details in the client{} class yesterday, which helped sort out IE support in the fx{} class; paving the way for some common effects, and more advanced ones as well.

The Wiki is live! - June 14th '10

That’s right, the Wiki! avoidwork now has a wiki at http://wiki.avoidwork.com. You’ll be able to find product documentation with code samples, and eventually user comments here.

aFrame Update - June 13th '10

Today has been pretty busy. I’ve enabled real time base36 encoding on the aFrame lab application JavaScript files to see what to expect in an well configured environment (obfuscation & compression). The result is very promising, it’s currently under 5KB and about 90% complete; for a Prototype.

I’ve got the AJAX/JSON/RESTful behavior the way I want, and there’s only 2 features left to add before it’s ready for the first Beta.

Server stats on my iPhone! - June 6th '10

iSysinfo

Ya, I know it’s nerdy… so what. This is awesome info to have at my finger tips!

Making good progress with aFrame - June 5th '10

Over the last few days I’ve been able to put a lot of time into the JavaScript library, and it’s starting to show. The GUI building possibilities are really starting to shine in the lab app I’m using to prototype against; a major paradigm shift took about 30 seconds to construct/implement.

However, this is still just a prototype and it’s pretty rough compared to more mature libraries. Once it’s out of beta, it should be able to do anything and I’ll just be focusing on business objects, gui fx and fun things.

New server config - May 31st '10

So, with the death of the primary SATA2 HDD in Celcius (it’s what I named the box, based on one of many snowboard/mtb stickers on the chassis), things rolled back a little. Specifically this blog, and my fiance’s photoblog. It’s a case of “not enough time to get it done”, which is a poor excuse in my situation; but shit happens.

The 3.5″ SATA2 HDD was replaced with a 2.5″ SSD rated with an avg Read/Write > 250MB/s. This new SSD syncs important data with the RAID5 housed in the chassis every 3 hours.

Celcius is quieter and using less power so my goal of an absolutely tiny footprint on the net continues. Future upgrades include CPU & RAM (currently using a fantastic AMD Opteron: 90w), and newer HDDs for the RAID (WD Greens maybe, it’s primarily backup & offline access).

Server failure, lost 2 months of the blog - May 30th '10

I’ve corrected the backup routine with an aggressive rsync.

The growing pains of switching to Linux, is a pain - March 24th '10

I’ve recently switched my home server (AMD Opteron 170/4GB ram/hybrid RAID 5/static IP) from Windows (2003->2008->7) to Ubuntu Server 9.04. It’s been a great refresher on Linux, however I forgot about kernel dependency and installed 9.10, and then realized I couldn’t use my RAID card. It was only a few hours of lost time, but it still sucked. Getting 9.04 going took about 20-30mins because I knew what to install, and in what order.

It’s pretty sweet for web app development.

aw:Flickr is going to get a new name, and some other changes - March 12th '10

I’ve decided that instead of releasing a standalone version, it’ll become a hosted service/saas. This comes at a cost of more development time, to create the account management/etc. I’m going to allow custom CSS loading, and possibly some kind of online template editing. I’m not sure yet. Lots of ideas. I’m thinking that integrating a Zenfolio account will be the next major iteration.

Been a busy week - February 24th '10

Starting late on Monday carried over to a late night on Tuesday at work. It was an unexpected, but overall beneficial long day. I’ve managed to squeeze in a little time for refactoring the JavaScript portion of awFlickr app, which I plan to release into a private beta this weekend.

I’ll think of a better name once I get it out for testing. I’m planning on using this as a base for Spiral’s PHP version, and my tentatively named aw:Mail.

Finishing off a side project (finally!) - February 16th '10

This past weekend I started working on a Flickr app that’s REST/JSON/JavaScript based (with a PHP back end generating the JSON). It’s a very old project I never really got started on, but was pretty easy to (almost) complete in under 2 days.

I discovered… a Flickr ID is too large for any web browser JavaScript engine to handle; they rounded up randomly. HTML comments on photos are very annoying from a programmatic point of view. I really like JavaScript.

I used the code base from my portfolio and hacked it up, by taking out the # operations and using events on all the dynamic objects/elements. I also corrected the JSON transportation. Now I’m left with a few visual effects to create, and some misc behavioral changes.

I’m hoping to have v1.0 released this week under the MIT license.

Spiral has been delegated to “weekend only” status - January 25th '10

With the new employment at Maple Works Technology, working on Spiral has become very low priority due to other projects and having a fiance. I’m hoping to have a spring beta.