Marc Grabanski's Work Articles

RSS Feed - Marc Grabanski's Work

2009 in Retrospect

Tags: My Work | Written on Dec 06, 2009

Since this website is dedicated to documenting my career, I figure I'd better take a look at the last 11 months which have been quite inspiring.

The company I started now has a strong team and we are ready to swing for the fence next year. We have gained 20+ clients, with 30+ projects which all have been delivered on time and on budget. Sick! Way better than I thought.

MarcGrabanski.com

Although my blogging and open source work has slowed down while trying to boost my company, that has not stopped website readership from growing. We are up to 119,065 visitors last month with 62,946 being unique.

Version 3 is Coming, Built From Scratch

I am gearing up to release version 3 of this website, which will hopefully re-surge my energy and motivation to bring you fresh content. It is yet another custom system built entirely from scratch. I dumped ALL my current code and design in order to rethink the whole blogging paradigm from the bottom-up.

More Speaking

I spoke at more events this year. I especially enjoyed the short-notice trip to Dublin, Ireland.

- jQuery Summit 2009
- jQuery Conference 2009 in Boston, MA
- Epicenter 2009 in Dublin, Ireland
- MinneWeb Con 2009 in Minneapolis, MN
- Twin Cities Web Design 2009 in Bloomington, MN

Technical Editor

I technical reviewed Dan Wellman's book on jQuery UI 1.7.

jQuery UI 1.7: The User Interface Library for jQuery

Startup Companies

Aside from my consulting company, I own shares in two startup companies. One of them launched a few months back, it is a rental listing and search engine called Rent Update. Another one is a firefox extension that talks to a web service I built.

Spring of LIfe

I used to be so addicted to things I could not possibly be useful to society. I had a life-changing experience back in 2004 and I'm starting to open up to sharing the source of my motivation and strength. The source that has led me to make this website, share with you any knowledge I have, and provide everything I can for my clients.. Jesus.

"but whoever drinks the water I give him will never thirst. Indeed, the water I give him will become in him a spring of water welling up to eternal life." John 14:4

I feel "life" springing up inside me every day and even the most simple things in life take on extraordinary meaning.

Engaged!

I got engaged to Candy! She's been there beside me for the last three years and we are excited to tie the knot.

Happy Holidays!

What's Up with Marc Grabanski? Summer 2009 Edition

Tags: My Work, Business | Written on Jul 20, 2009

Aside from my office turning into a complete disaster...

Here is an update on the status of my projects as of 10 months ago.

  • Rent Update: launched public beta! We are now walking property managers through sign up for their free listings and gathering feedback. The product is about 2 years in development, but still in the user-testing stage. I'm sure I'll make a big announcement article and promote the product when it starts humming. Follow Rent Update on Twitter for more updates.
  • jQuery Datepicker v4: turned into Calendar Engine, an ambitious project intended to fix problems with the native JavaScript date object and give you access to internationalized calendar functions in straight-JavaScript (no jQuery). It works with Gregorian and Persian calendars so far, but I want to build a calendar and datepicker on top of it to showcase its abilities.
  • CakePHP jQuery Integration: tried to iron out some of my thinking through a JavaScript RFC for Cake 1.3, but I still have a ways to go. I'm tossing around so many ideas that I haven't solidified something actionable.
  • Carcassonne Online: with the new things in webkit/iphone this could be a very interesting browser-based game, but I've put the project on hold for now until I feel inspired to learn what's new in webkit.
  • Family Reminder: will be built on CakeCal and Calendar Engine, so I need to finish those open source projects before I get to this application, on hold for now.
  • Open Ad Sense: on hold until I get momentum behind this project, maybe next year.

New developments!

  • Launched my consulting company's website, MJG International. Showcases the network of people and some work we've done.
  • MarcGrabanski.com broke one million visitors in under a year! 1,043,421 since late July '08 and you can view more details in Mint stats.
  • Learning Ruby on Rails because of doing a UI on top of one of my client's projects, fun so far.
  • New startup company deals with organizing and sharing content on the web, this one is interesting because they are both paying my company and giving percentage of equity based on the performance of the project. Exactly the type of contract I've been trying to get.
  • Sat down at the table with business owners around Minnesota, prepping them and selling them on a new e-commerce platform that I've been planning for years. This one will be huge because I know how it will run, we just have to work out the specifics financially to get development underway. This one is very exciting for both local businesses in Minnesota and me.

On a personal note, I'm engaged! She's now enrolled in college at Art Institute International downtown Minneapolis, the added financial burden just increases my motivation to make the business run stronger.

Check out the Sushi + Engagement Ring plate!

And don't worry, I cleaned my office!

 

Acheiving Freedoms in 2008

Tags: My Work, Business | Written on Dec 25, 2008

2008 was a year of embarking on a journey towards personal freedoms in my career, which although was scary at times, paid off in spades.

Attained Freedoms

The following freedoms are available to me, that I didn't have at the beginning of this year:

  • work from home remotely
  • hire people I trust
  • create my own applications
  • work as much or little as I desire and still get paid for it (as a contractor)
  • take time out to eat, read and pray (during the work day)
  • spend more time doing things outside of normal work like go to conferences, spend time with my girlfriend and go on vacations

Assets VS Liabilities

Attaining these freedoms became incredibly important to me late 2007 when I realized I was building someone else's assets. I realized that if I stayed the course I was headed down, I would end up dependent on that next pay check to pay for the liabilities (things on credit) just like those surrounding me. I needed to break out of the system and forge into new territories.

It would have been a cold day in hell before I launched any major start-up companies while working for someone else - working nights and weekends. Not to mention I became border-line depressed working so much. Instead, I decided to cut my (client) work week down to 24 hours per week to allow the rest of my week to build applications that make my business into an asset-driven company (I'll explain later).

Breaking Into Contracting

In April of 2008, I pinged a few companies to see if they would hire me for 24 hours per week, remotely to cover my living costs. After casting the line, I got a few offers. I ended up turning down a job offer working on the Firefox Addons theming engine (which I was grateful for the offer!) to work for an internet marketing company in Duluth, MN. Why? My #1 reason for turning down a job with Mozilla is, Silicon Valley doesn't need anymore high-level talent. Silicon Valley takes away much of the great talent (poke at Dave Dash of delicious.com) we have here in Minnesota.

Instantly Respected Names VS Local Business

The bottom line is that I want to work for local companies and grow them, without a company name that demands respect attached to my name. It is for the same reason I went to a small college - The College of St. Scholastica, who has heard of that? Strengthening the computer science program was a high priority for me, as it most certainly will be in the future.

If you work for "Google", you have "Google" attached to your name for the rest of your life, and instant respect. Some people want that, I don't. My attitude is to do it the hard way from the ground-up and not bank on others' success. I learn more that way and get only the respect I deserve. Yes I was interviewed by Google, many times over. But it was in the process that I came to some of these realizations.

The Unexpected

Not everything went perfect this year. My first startup company will launch in the first week of January, which I wanted to launch exactly one year prior. It turns out that launching a (good) startup takes thousands of hours or work and investment. You just can't put in that kind of time unless you own your own business and have flexibility (without pulling in investment dollars). So far I've spent 1800+ hours of my time and a pile of my own cash to hire awesome talent to help me with the tough parts. I might argue this isn't a downfall, but it was mostly just unexpected.

I had to give up my seat on the jQuery UI development team. It was just too hard to generate revenue, launch startup companies and program open source at the same time. Datepicker was just consuming way too much of my time and I had to give it up. Though, I did review a book that is coming out soon on jQuery UI, so that was cool.

Reflecting on 2008 Goals

The goals I've made in the past have been fairly lofty, but all-in-all it is good to make them once and a while. As I've found out, it is incredibly hard to hit software development goals because things change and your focus can shift. It is hard to stick out projects to the end in this dynamic profession, but if you do stick it out you may get big rewards.

I've met more amazing people this year, and have continued to grow past work relationships stronger (thanks, Twitter). I know things will continue in the midst of the failing economy because I work with great companies who have strong client-bases. Each company has been chosen wisely.

Looking Forward

2009 will mark the pursuit of creating assets, jobs and reliable tools. Assets are things that have value without you being there. They generate (or hold) value without you having to attend to them. The rich generate assets and the poor and middle class generate liabilities (car, house, tvs, etc) and pay lots of taxes.

But this year isn't all about money. 99% of the time I talk about my career because this is what my website is about, but the "secret sauce" to my success is that I have a deep spiritual life that fuels and inspires me each day to be the best I can possibly be (and beyond).

So Happy Holidays everyone! I'm hoping you have a great 2009.

Getting Projects Done in 2008

Tags: Business, CakePHP | Written on Nov 02, 2008

I have decided to pour all of my resources and energy into getting four rather demanding projects done before the end of the year. This big end-of-year push has had a lot of thought behind it, which I wanted to share with you and document here on my blog.

Push Forward

The Projects

Of the four projects I am focusing on getting done, two are consulting jobs and two are my own start-up companies.  With the start-ups, I have partnered with businesses to help define the products and they will sell them when the products are released to the public.

The Plan

My focus in November will be on consulting. Consulting is a great way to get temporary cash flow, through which I will be using to hire people to work on my startup companies. I will have a total of 4 contractors working for me in November.

The Logistics

UI skills are the most important for my consulting work, and CakePHP skills are most important for the startups. In case you are wondering who is working with me, here is a list of them and brief description of each:

  1. A developer that is a highly seasoned professional and core developer of CakePHP, he will be working on a startup in CakePHP.
  2. A developer that is a master of databases and does a lot of work with CakePHP, he will be working on a startup in CakePHP and on documentation
  3. A developer that is great at UI and CakePHP, however he will be consulting with me focusing on UI (jQuery/JavaScript/HTML/CSS) with me and has been for quite some time.
  4. A developer/designer who is good at a diverse amount of things, working with UI, straight PHP and some CakePHP. He will be working with me on UI consulting projects.

Though the above isn't 100% finalized, I am confident they will be joining me in these last two important months of the year - all of the projects fun to work on. 

The Goal

It is my goal to have a company with products, partnerships and consulting. So far it has been working out brilliant and I only expect the great work to continue.

This will be a wild two months that I'm hoping to propel those working with me into a great 2009.

Consultant Agency Off and Running

Tags: Business | Written on Sep 16, 2008

I have been operating as a small consulting agency for my clients lately. Here is what has been happening:

  1. Client seeks out my work.
  2. We begin a working relationship.
  3. Client needs more work done, so I find another worker.
  4. I remain point of contact, but bill client for worker's time and my time to get more done.

This is pretty simple, but works out well.  The client only needs to go through one channel of communication does not have to worry about the work getting done, because I can hire up for what the client needs. 

The truth is, most clients are not able to find the right people to work with.  Since I have worked both in corporations and also in open source, I know a strong network of people.  This also saves the client overhead of finding the right people for the job.  They can rely on the work that I will deliver.

This has been a great shift of focus and I am privileged to be providing people jobs through my clients while being able to deliver more work than before.

Top Commenters Page

Tags: My Work, jQuery, CakePHP, MySQL | Written on Aug 19, 2008

An addition to my website is the top commenters page.  Even though the page doesn't look that complex, there is still a bit going on behind the scenes.

To get the top commenter count I have to thank Ryan Peterson in helping me write this custom MySQL query.  I used Group By to lump the results together based on the commenter's email address.  Then use count(*) to count the number of records in the group. Also used the NOT function in MySQL to filter my email address.

Mysql:
  1. SELECT `Comment`.`author`, `Comment`.`id`, `Comment`.`url`, count(*) AS `count` FROM `cake_comments` AS `Comment` WHERE 1 = 1 AND NOT(`Comment`.`email`=\'m@marcgrabanski.com\') GROUP BY `Comment`.`email` ORDER BY `count` DESC LIMIT 0, 10

Since I didn't want to load all of the related comments at once, I decied to use a little jQuery and Ajax to show comments that they have made.

First, I put a span tag around the comment count, because without JavaScript you won't see this functionality. On page load I swapped the spans into links with $(this).replaceWith('<a>' + $(this).html() + '</a>');

Instead adding behavior later after append, I used a jQuery object inside replaceWith  so I can attach behavior to the link and I like how the code looks.

JavaScript:
  1. $(this).replaceWith(
  2.     $('<a>' + $(this).html() + '</a>').click(function(){
  3.         //code here
  4.     })
  5. );

Using CakePHP's JavaScript object generator, $javascript->object($data); it was easy to send JSON back to the client and parse with jQuery. Here is the full source of the JavaScript file.

JavaScript:
  1. $(document).ready(function(){
  2.     $('.get_comments').each(function(){
  3.         $(this).replaceWith(
  4.             $('<a>'+$(this).html()+'</a>').click(function(){
  5.                 link = $(this);
  6.                 $.post('comments/get/comments', {
  7.                     'data[Comment][id]': $(this).siblings('.author').attr('id')
  8.                 }, function(data){
  9.                     out = '';
  10.                     for (i in data) {
  11.                         prefix = data[i].Article.type ? 'article/' : 'answers/';
  12.                         out += '<li><a href="' + prefix + data[i].Article.slug + '#c' + data[i].Comment.id + '">' + data[i].Article.title + '</a>' +
  13.                             data[i].Comment.created + '</li>';
  14.                     }
  15.                     $('<ol>' + out + '</ol>').hide().appendTo(link.parents('li:first')).slideDown();
  16.                     $(link).replaceWith( $(link).html() );
  17.                 }, 'json');
  18.             })
  19.         );
  20.     });
  21. });

 

Update: I think I'll post the CakePHP code just in case someone is interested. Here is the controller, I use the RequestHandler component var $components = array('RequestHandler'); and the Time helper var $helpers = array('Time'); in the top of the controller.

PHP:
  1. function get($type = null)
  2. {
  3.     if ($this->RequestHandler->isAjax()) {
  4.         Configure::write('debug', 0);
  5.         if ($type == 'comments') {
  6.             $comment = $this->Comment->read(array('Comment.email'), $this->data['Comment']['id']);
  7.             $results = $this->Comment->find('all', array(
  8.                 'conditions' => array('email' => $comment['Comment']['email']),
  9.                 'fields' => 'Article.title, Article.slug, Article.type, Comment.id, Comment.created'
  10.             ));
  11.             $this->set(compact('results'));
  12.         }
  13.     }
  14. }

I also turn debug off with Configure::write('debug', 0);. Also, I only use $type  so that I can setup my code to get types of data if I want later - more of a design pattern I typically follow.

Then in my view I use the time helper and output a JSON object.

PHP:
  1. <?php
  2. if ($result):
  3.         if (isset($result['Comment']['created'])):
  4.             $results[$key]['Comment']['created'] =
  5.                 $time->timeAgoInWords($result['Comment']['created']);
  6.         endif;
  7.     endforeach;
  8.     echo  $javascript->object($results);
  9. ?>

 

To see in action, click the comments count next to someone's name on the top commenters page.

Business Cards

Tags: My Work | Written on Aug 13, 2008

After getting tired of not having business cards when people asked, I decided to buckle down and make some.

I sent the design over to www.overnightprints.com to get them printed.  They turned out exactly how I wanted them - A+ print job by my standards. These cards turned out great! 

Business Cards

It is exciting to have some business cards that are this nice. No more writing my email address on a napkin!!

List of Personal Projects as of August, 2008

Tags: My Work | Written on Aug 13, 2008

A list of what personal projects I have going on.

  • Rent Update - Rental property listing web application - I have high hopes for this project.
    Status: Well-Underway - backend data entry developed, design complete, UI development started.
     
  • jQuery Datepicker v4 - Rewriting jQuery datepicker on top of the jQuery UI core.
    Status: Started - initial code structure is complete.
     
  • CakePHP jQuery Integration - Integrating jQuery and jQuery UI into the core of CakePHP.
    Status: Concept - digging into current code. Thinking ways to integrate helpers to follow jQuery mindset.
  • Carcassonne Online - Board game converted to JavaScript on top of jQuery UI and Comet.
    Status: Underway - much of the game interaction has been developed, some difficult parts left.
     
  • Family Reminder - Web application to help those of us with bad memories to list family events and birthdays, members of a family can subscribe to reminders and get invitations, address where to send cards, etc.
    Status: Started - database structure and concept complete.
     
  • Open Ad Sense - Open source ad system which gives more ad revenue to publishers instead of Google/Yahoo taking most of it.
    Status: Concept - industry professionals are excited about the concept after I explain it.
     

These are all unpaid (at the moment) and for my own personal career development.

My Response to Full-Time Employment Opportunity

Tags: My Work | Written on Aug 10, 2008

All Star Web Development

I received a request for employment from a company who had gotten funding and was trying to assemble an, "all star team" (I made the above logo for fun). Most of the time I do not respond, but in this case the person hiring took so much time crafting the email that I decide that I needed to email back. My response was largely canned, but at least I took the time to respond:

I am currently not seeking full-time employment, however I do consult for agencies that know my work or have worked with me in the past. I find that working relationships are most beneficial if the agency has had experience with my work, because they are able to accurately judge my abilities. Typically, I am sought after for prototyping and user interface development. My rate is ___ per hour.

He then responded with a line of questions regarding why I was only open to consulting. Here was my response, which I think sums up a lot of where I am at in my professional life:

Employer: Thanks for the reply. May I ask why you are not open to full-time employment? Do you prefer consulting work?

Marc: Consulting allows me the ability to work from home and keep working for agencies to a minimum. I try to stick to 24 hours of consulting per week, allowing the rest of my time to be dedicated to personal projects. My projects are worth their weight in gold, more valuable to me than the fleeting cash that I get from consulting. That said, I still need to pay bills and I do love to do client work when it suits my talents and abilities.

Employer: One thing to mention is that we could talk about giving you the option to do consulting work on the side, while being a full-time employee of ours.

Marc: I tried full-time employment with working on side projects and got burnt out, so this is not an added benefit. Full-time employment is too demanding on time. You only have so many fresh-thinking development hours in a week.  My opinion is that if you do 60+ hours in a week, than a lot of that time you weren't spending on pressing your abilities to the maximum - not only do you end up having no life, but you most likely wasted a lot of time with clouded thinking.

The goal here is efficiency and making time as effective as possible.

Employer: We need an all-star team to turn our company into a multi-million dollar enterprise and we think you could be a great asset to our team.

Marc: Thanks again for considering me for your all-star team. As far as making a company into a multi-million dollar enterprise... I have worked with fortune 50 companies (UnitedHealth Group, HSBC, 3M and Ford) and have seen them make millions off of my work, which is a reason that ultimately led me to go off on my own as soon as I could.  I am happy to make people money, but the fact is that if you are full-time, then your rate is pretty much set and you don't have the time to dedicate to creating your own ideas.

Employer: Will you consider it with the right pay? Let me know.

Marc:  I do not consider full-time to be an option right now because it limits me from doing the projects that I feel the need to create.

Assemble

Overall the goal is to create ideas, and full-time employment doesn't allow me to do that at this point in my life.

Ode to RMG Connect (Minneapolis, MN)

Tags: My Work | Written on Jul 11, 2008

RMG Connect Minneapolis

After working for RMG Connect (Minneapolis, MN) for two years, I would like to take this moment to wrap up what I've learned and pay them some due respect. For those of you wondering where I've gone from RMG, I moved on to being a consultant and to start my own business building web applications.

Note: My experiences at the Minneapolis RMG office may not reflect that of the broader organization of RMG Connect (30+ offices). This article is based on my personal opinions and is not sanctioned or endorsed by RMG Connect.

Business Structure of RMG Minneapolis

The biggest takeaway from my experience at RMG was structure. From a high level, this is how the office was broken down into roles and responsibilities on the production side of the business:

  • Account Executive: Makes initial relationship with the client. Gets contract signed, presents RFP response, on-going client contact.
  • Strategist: Interviews the client to find out their goals with RMG services, big picture people. Decides on a product and vision to pursue with RMG.
  • (PM) Project Manager: Estimates hours, creates project plan and lays out project time-line.  Becomes client contact for anything project related.
  • (BA) Business Analyst: Defines business requirements and use cases.
  • (IA) Information Architect: Creates wire frames based on the business requirements.
  • Copywriter: Writes copy for anywhere the client and IA deems it necessary.
  • Designer: Creates templates and style guides for project based on wire frames.
  • Developer: Takes all artifacts and creates the finished product.
  • (QA) Quality Assurance: Checks everything to assure final product matches all artifacts signed off by client (content, design, wire frames, use cases, etc).
  • Analytics: Ongoing tracking shows user trends and how to make the product more effective.

While at RMG, I had a chance to work with all of these core groups of production people, aside from the account exec and strategists.  I was always so interested in how each of these roles interacted with each other.  I would walk the floor throughout the day having brief conversations with coworkers to understand this structure more. It was fascinating to me and I always enjoyed learning bits about their expertise. All too often people don't realize that each one of these roles requires a specific and refined skill set. 

Important takeaway from a developer's perspective: If a developer sits down to develop an application without having the understanding and principles of each role, the developer will have to undergo an amazingly complex road of twists and turns.  Even if the product gets completed, it will most likely lack the cohesiveness and polish that having these roles provide.

If the proper time was given to each task and none of the steps were skipped, developing the final product based on these documents was a breeze.  The structure always left for an enjoyable experience for me, because I always knew where to find the answers to my questions depending on what artifact I was looking at.  Sure, there was a lot more, "social" overhead by tracking people down, but the end result was never a shot in the dark. The client always knew what to expect.

Overall

I had no complaints about RMG Minneapolis internally as a business. Some benefits of my experience there are worth noting:

  • RMG paid me fairly for my experience at the time and the job market in Minneapolis, MN.
  • I learned to meld artifacts from all different practices into one cohesive product.
  • RMG subsidized my trip to a web development conference in Boston, The Ajax Experience 2007.
  • I was able to grow my abilities by researching during down times.

There are so many words I could say about my last 2 years working with RMG Minneapolis, but I think I'll stick to the above for now. Thank you to everyone I worked with!

Visit the projects page to view some of the work I did with RMG Minneapolis.  The testimonials page also has many recommendations that I received from coworkers at RMG Minneapolis through LinkedIn.

Version 2 of MarcGrabanski.com Launched!

Tags: My Work, CakePHP, jQuery | Written on Jun 25, 2008

CakePHP Logo  jQuery Logo 

Note on June 27th: The website is now usable on IE6 and IE7.

Rebuilt from scratch on top of CakePHP and jQuery, version 2 of MarcGrabanski.com has been launched!

The first version was on top of PHP and HTML, which turned into a mess to maintain. This time I really thought long and hard on how to code the website from the ground-up. It is a psuedo CMS, blog and takes advantage of much of CakePHP's strengths.  The code is 100% hand written in a text editor, as well as the design was done in illustrator. I purchased the computer/face, then heavily modified it and illustrated all of the items around the monitor and keyboard. I enjoy illustrating but don't get to do it very often (too much coding). 

Finally I feel like I have a website to be pleased about - despite the compliments on the old website by far and wide audiences, I was never too happy with it.  But, this one I enjoy and am pleased with.  Which is ultimately what matters.  With this website I will be able to post more (hopefully) and definately have a much easier time maintaining.

Enjoy the new website, I know I will!

P.S. Please report any bugs you find in the new site to m@marcgrabanski.com

2007 was an Incredible Year

Tags: My Work | Written on Dec 31, 2007

This year has been an incredible year on the career front. I literally can't believe how far I've come from last year. To put things in perspective, it reminds me of back in college when I was was failing calculus and then buckled down and learned the entire semester's worth of calculus in an 18 hour stretch of time, receiving an "A" on my final. This year has been like that. I can't remember a single year of my life that I have learned so much as this year. Thank you to everyone who has helped make this possible, thank you.

Some of the this year's career highlights:

Highlight

  • I met a lot of great people where I work at RMG Connect. I got to lead UI development on some pretty big projects, and was the third to receive our internal company, "Rockstar" award.
  • I launched this website 8 months ago (late April), all of it being hand written 100% from scratch. Since the launch, it has received 300k page views and grown to 15k unique visitors a month.
  • I learned how to successfully code open source projects - helping thousands of developers around the world is worth its weight in gold.
  • I gave two presentations at jQueryCamp, held on the Harvard campus.
  • One week I was featured on Ajaxian and Smashing Magazine (jQuery Calendar), sort of an epiphany that people are noticing and really do care about what I do.
  • To top off the year, my code is now being used by Google.

Looking Forward

I have goals and a plan for this website in 2008. I have so many things I want to do it is crazy, but I just need to keep things into perspective and it will be another stellar year. Thank you for watching, reading, helping and supporting me. Without the help and contributions of others I wouldn't have much, so thank you again. Here is to another great year in the horizon!

2008 Plans for MarcGrabanski.com

Tags: My Work | Written before Dec, 2007

Drawing Plans

As you may know, 100 percent of this website was written from scratch. I don't use Wordpress or any packaged solution because it goes against the grain of what I want this website to represent. I want MarcGrabanski.com to be unique and empowering to developers. It is time to take a step back and re-think what I am doing and why I am doing it. Let me start by brain-dumping the things I'd like to do:

  • Write a forum to help support the code I've written.
  • Put code into SVN so that other developers can contribute.
  • Fix my unanswered emails problem - 30+ emails sitting in my inbox about open source projects right now.
  • Finish articles I'm writing including:
    • Why jQuery
    • Part4 of Media Temple Setup : Deploying web applications
    • Post-Intro of Media Temple Setup : Why Media Temple
    • Developer's Guide to Corporate Communications
    • Why CakePHP
    • Developing for Big Business
    • More...
  • Write version 2 of the blog including better UI and easier navigation.
  • Change the website's design to actually reflect who I am.
  • Code an Open Source Ad system.
  • Code a collection of JavaScript/Ajax widgets to work inherently with CakePHP.
  • Revamp/add features to each of my code examples.
  • Write tutorials for the following platforms:
    • PHP
    • MySQL
    • ASP.NET (VB/C#)
    • Ajax
    • Flash/ActionScript
    • Windows
    • JSP/Java
    • Search Engine Marketing
  • Add my design portfolio.

Keep in mind, these are just things off the top of my head that have been rolling around for a long time. This doesn't include my full time job or the web application/ajax framework that I am building on the side.

This all seems pretty crazy to do all this work for free, but I feel strongly that this is something that I need to do and continue on with. My career is built on top of the open web and I can't give up, or say it is too much work to do. I'm sure the fruits will come from the labor, because they always do when you believe and live for someone higher than yourself.

Career Goals as of August 2007

Tags: My Work | Written before Dec, 2007

Grey Arrows

Recently, I started the employee review process at work. Sure, there is the normal "rate you out of 5 stars" form, but I was intrigued that they have a process for employee development. "Do you have specific career goals in mind that we can write down to monitor your career development?" We are to write down our career goals and make action items to achieve them. The following year we are graded by how well we meet those career objective. Interesting...but how can I answer that question?

I will answer it with a list of things that are broken down into categories.

Short-Term Career Goals (Now to 6 months)

  1. Educating myself on Rapid Application Development with CakePHP.
  2. Support open source projects, specifically CakePHP and the jQuery JavaScript Framework.
  3. Develop a complete web application including:
    • table relationships
    • user authentication
    • custom analytics
    • user groups
    • custom components
    • secure validation
    • custom user interface elements
  4. Speak at the jQuery Conference in Boston.

Persistent Career Goals (Daily)

  1. Write more readable and compact code.
  2. Become a better leader.
  3. Become a better follower.
  4. Educate those around me.
  5. Keep in contact with other open source developers.
  6. Continue to educate myself on a daily basis even on days I don't feel like it.
  7. Press on when things are hard because I will probably learn an invaluble lesson from it.

Mid-Term Career Goals (6 months to 5 years)

  1. Speak at conferences worldwide about my area of expertise.
  2. Manage a team of developers.
  3. Contribute to a technical book.
  4. Hold a web conference in Minnesota.
  5. Implement more efficient development processes across entire corporations.

Long-Term Career Goals (5-10 years)

  1. Have sufficient residual income coming in to pursue personal projects.
  2. Have family and kids a higher priority (time-wise) than work.

Web Traffic Keeps Doubling

Tags: Analytics | Written before Dec, 2007

Web Traffic Going Bonkers

My web traffic is doubling again this month. Web traffic has almost doubled each month since when I started it six months ago. Thanks everyone who visits my website and links to me! I will keep doing my best to pump out quality code and content to help out the web development industry.

Beyond Flash - Proof of Concept

Tags: My Work | Written before Dec, 2007

Beyond Flash Screenshot

I finished the prototype of "Beyond Flash". Beyond flash proves that you can combine the accessibility of HTML with the beauty of Flash. It basically uses JavaScript to talk between the HTML and the Flash object.

Under the hood of Beyond Flash

  • Unobtrusive Flash Objects embeds the flash into the page.
  • CSS sets all of the pieces into its proper place.
  • jQuery (JavaScript library) is used to manipulate the HTML to allow the flash page to roll over top of the HTML and then sink back under when the flash animation is done playing.
  • HTML content slide-in animation also done with jQuery.
  • JavaScript may also be turned off to allow you to see the page normally without the pretty effects
  • Flash piece has call backs using Flash's "ExternalInterface" function to indicate what it is dong (Start, Stop or Closing the page).

After about four months of thinking about this I finally did it to prove to myself that this can be done. I wanted all of the functionality of HTML and the great animation interface that flash provides. I am trying to make this simple and cross-browser so anyone can use it.

Programming in the Wee Hours

Tags: Development | Written before Dec, 2007

Programmer Kid

Do you ever have that itch at 2:30 AM to get up and program? Well this happened to me this morning and it is now 4:45 AM. My mind loves solving problems and doesn't care what time it is. This has happened since I was very young, age 14 on up. I would wake up early or never get to sleep because I was rolling around thinking of ways to solve computer and programming problems. Sometimes I feel like I was born for this.

Other Categories