Posted on Leave a comment

The Perfect Job Pet Project

I took my 15 minutes on my pet project in bed as I drifted to sleep. No computer was necessary. The question of how to write the application had to be answered. ColdFusion or PHP? I have hosting for both. This question only applies if I am going to totally custom design the application from ground up.

Custom designing a web application can be compared to redesigning a kitchen. You have skills. You can buy tools and wood at Home Depot. A professional might choose different places for equipment and materials. You could draw rectangles on a piece of paper and build your own cabinets but you will probably make some mistakes that a professional carpenter has been trained to avoid. When your cabinet sags oddly in the middle you might apply a hack by wedging a length of 2×4 under the sag. A professional would never do that but no one is going to see your hack so what does it matter? That is until you try to install an appliance under the counter and realize your counter cannot be used with that appliance due to the accessibility issue created by your 2×4. In the end you will probably have spent the time and money doing it yourself and then time and money to have a professional repair your installation. Of course, at this point you resent the professional because so much money is being spent. A less expensive option would be to purchase pre-built (open source) cabinets. These should mostly fit your situation and you probably have the talent to install them yourself although paying a professional to install the pre-built cabinets will guarantee they are installed correctly and don’t fall off the walls.

Laying in bed thinking about the path of least resistance and picking low hanging fruit, I ruled out a custom application despite having the talent to build it. A custom application will take much longer to launch and there is no guarantee that The Perfect Job will get traffic or produce income. Although there is plenty of open source in the ColdFusion community, I will rule it out and limit myself to the PHP open source community. This narrows my decision to WordPress, Joomla, Drupal, and Django (a web application framework..so this is still custom programming). There are plenty of other options but no sense in making the list too long. A comprehensive list can be found at http://cmsmatrix.org/.

I have more experience in customizing Drupal than I do with Joomla or Django. Drupal is a powerful CMS and many consider it a real CMS while WordPress is frequently dismissed as "just a blogging platform." However, Drupal hits a server kind of hard. I don’t pay much for hosting and you get what you pay for so I will rule Drupal out to avoid having increased hosting fees due to too many CPU cycles or memory usage. Once The Perfect Job is getting more attention, I can always upgrade the hosting and reconsider Drupal.

The choice is quickly becoming self-evident. Joomla gets a lot of positive press. It is a split from the Mambo development. If I am not mistaken, Scripps Networks is a fan of Django and that alone should be a reason to experiment with and learn Django. The fact that they are a major online publisher adds more reason. However, I am far more familiar with WordPress customizations than Joomla or Django. The path of least resistance is undeniably WordPress.

So in less than 15 minutes, I was able to come to a firm decision to write the features of The Perfect Job as part of a WordPress installation. The next 15 minutes will come this evening or this weekend and will be to closely read the WordPress licensing agreement to see if the coding I do for The Perfect Job will have to be released into the open source community or not.

Posted on Leave a comment

What do I do?

I often get the feeling that most people have no idea what I do down in this dungeon. Here’s a sample:

In the next hour, I will write, test and prove some php and JavaScript+jQuery to present a table of data, allow a user to click a delete icon, use a modal to prompt for delete confirmation, then remove the data from the database and the row from the table without a page refresh. Will work in IE6, 7, Chrome, Safari and Firefox.

This is also a micro-milestone. I often write these down, although I rarely publish them, when the number of tasks I have is overwhelming, or I have coder’s block, or I need motivation. Giving yourself small, achievable milestones can lead to great productivity.

Update: Had a digression. To get the new code to work I had to upgrade jQuery’s UI from 1.5.3 to 1.7.1. This was well worth the effort. They’ve done a great job with 1.7.1!

Posted on 3 Comments

I’m done with document.getElementById

I’m working on a project that has compatibility with Internet Explorer 6 as a major requirement. This means all appearances, all Ajaxy functionality, every aspect of the web application should look and perform in IE6 just as it would in Firefox, Chrome, IE7, IE8, and Safari. One of my favorite pieces of code is "document.getElementById()" but special cases have to be considered for IE 6. As an example, you can use getElementById to change the value of a hidden form element:

<input type="hidden" id="foo" name="foo" value="default value">
<input type="submit" id="goBtn" name="goBtn" value="Process..." onclick="document.getElementById('foo').value='anothervalue';">

That code will not always work. jQuery comes to the rescue! Rather than write lines and lines of additional code for browser testing and coding for a special case, we can simply replace "document.getElementById(‘foo’).value=’anothervalue’;" with "$(‘#foo’).val(‘anothervalue’);" and the code will work.

<input type="hidden" id="foo" name="foo" value="default value">
<input type="submit" id="goBtn" name="goBtn" value="Process..." onclick="$('#foo').val('anothervalue');">

I cannot sing jQuery’s praises enough!

Posted on Leave a comment

Hardware/Software Support

A service I provide to friends and family is cleaning up their computers when they start reporting, "it’s moving so slow!" or "I keep getting these popups." or error messages or whatever. Usually they are having a virus, spyware or malware issue. I’ve published my trade secret on how to fix this yourself. It takes me roughly 5 hours to clean a machine thoroughly. Granted, I usually do it overnight by sitting the computer beside me and taking breaks between programming tasks to evaluate the problems. You take smoke breaks; I take computer repair or social media breaks. For the service of cleaning a machine, assuring it has adequate virus protections, and making sure all the latest security patches are in place, I charge $135. In addition to software/hardware upgrades, I have replaced keyboards on laptops and even re-soldered a power connector on a laptop to its circuit board.

Yesterday a friend brought her computer and speakers by the house so I’ve added a service…speaker repair (I’d recommend just buying new ones).

Posted on Leave a comment

Need a Likaholix Invite?

I have a couple of invites to Likaholix for those who want to test it out. Likaholix is a new bookmarking service similar to Delicious but you enter why you liked the bookmark(url) and can add supporting images and videos to it. Basically, when searching for information, this lets you read other people’s positive reviews of a site before clicking through to the site. In theory, you can pick the ideal source of your needed information. Likaholix has a stronger social element than Delicious. I like Likaholix and although I do not foresee it replacing Delicious for me, it will certainly enhance my bookmarking.

Posted on 2 Comments

Twitter Size Does(n’t) Matter

Twitter ranking and stat programs come and go. In Knoxville I’m not even on the charts but in Knoxville, TN I’m ranked #11 (falling fast! Was 5th not long ago.). It’s all non-sense. Twitter’s value has nothing to do with how large someone’s arbitrary algorithm chooses to inflate your ego. Twitter’s value comes from how you choose to use it. So why am I jealous that my wife’s e-penis is almost twice the size (26.35cm) of mine (14.32cm)?

Warning! Clicking through to e-penis is going to show a cartoonish picture of a man’s thang.

Posted on Leave a comment

My wife has left me for Steve Jobs

At least today she’s Gone Gone Gone. See, while the US military and universities struggle to invent the invisibility cloak (getting closer), Steve Jobs and AT&T achieved invisibility years ago. Pay close attention the next time you are in public. Our social rules keep us from even making eye contact with a person on the phone. We don’t want to breach their privacy so we turn off our ears and physically turn away from them. Trying to recall the details of a person talking on the phone in public is more difficult than recalling the details of a person not speaking on the phone. I have no scientific study to back up that statement. It is just my own assertion but try it. Take a friend to the mall. Make mental notes about various people then stop and ask your friend to describe them 45 seconds later. The people talking on their phones are invisible! Even Girl Scouts selling cookies choose to skip their sales pitch to people speaking on the phone.

Now, setting is important. The person discussing private business dealings at the topic of their lungs in a quiet restaurant draws attention to themselves and is far from invisible. The loud talking, me, me, me, attention gather is trying to draw eyes to themselves and is the opposite of invisible.

iPods, MP3 players of all types, and anything that requires we plug wires into our ears also make us invisible. Our body language says, "Don’t talk to me!" Speaking to a person with earphone plugged into their ears might be a waste of time. They may not hear you and the frustration of raising your voice, getting their attention, and repeating yourself multiple times just isn’t worth it. To simply avoid talking to them is less physically exerting and less stressful. So we avoid interrupting people listening to their music or podcasts and they too become invisible. Today my wife joins the invisible people as she listens to loud music and gets things done around the house.

Posted on Leave a comment

Blog Fading

A favorite Knoxvillian of mine is fading from the social media spotlight. Russ McBee is ending his participating in the blogosphere, twittersphere, and socialsphere in general with the exception of the photosphere.

I’m ending this blog, effective immediately. It’s been fun (mostly), but I’m signing off, for personal reasons. I’m also deleting my accounts at Twitter and Utterli, but I’ll keep my PBase account active.

This site will remain live until either my hosting account expires or I decide to delete it on a whim, whichever comes first.

Goodbye.

[Source, Russ McBee, The end]

I’ll preserve his final message for prosperity. And one day I want to know why PBase over Flickr.

I have enjoyed reading Russ’ blog and Tweets. His contributions shall be missed!

Posted on Leave a comment

Seeking Next Project

I am coming to the end of a project and have an opening in my schedule. My strengths are programming in PHP, ColdFusion, JavaScript and jQuery, CSS, and HTML. I most frequently work with MySQL or MS SQL but can work on most database platforms. Code I write validates and is W3C compliant. I can also write Section 508 compliant code. I carry a project from concept to production as project manager, independent developer, and/or project team member. In addition to custom original code, I work well with open source projects and APIs. I usually telecommute but am not adverse to working onsite or traveling. I am not an artist and typically hire a graphic artist to provide the design for each project. I enjoy WordPress customizations (but have not done custom work to either Reality Me or Domestic Psychology). Please send referrals or inquiries to jugger@gmail.com or call +1-865-898-7189. Thank you!

Posted on 2 Comments

Latest Internet Nuisance

This morning I received an email from two people who don’t normally send me email. Both emails were almost identical and inexplicable. One was sent to me while the other revealed the 87 or so email addresses it was sent to and appears to have been sent through gmail. I presume a worm, trojan or virus is sending this message to people’s complete address books. If you get one of these, you may want to let the send (not the entire mailing list) know that they need to scan their computer. Click more to see the email. Continue reading Latest Internet Nuisance

Posted on Leave a comment

Today’s Coding Challenge

Today I am focused on debugging a custom tree control which present hierarchical data created through AJAX calls, custom JavaScript, and jQuery. The data is built dynamically so state must be maintained such that if the user navigates away from the page and returns the exact same data is presented upon return. The collapsers must close only their related data without orphaning any nodes.

The presentation was prototyped as tables nested within tables eight levels deep. Yesterday this was corrected to be a single table with rows dynamically added and removed which broke the handlers. Before someone throws the word sematic out without thinking, a table is semantically correct in this situation. Time to get back to handling the handlers.

Posted on Leave a comment

Coded Self Into a Hole

Had a rockin’ day of coding today. Started fixing some problems. Used jQuery to fix a cross-browser issue and simultaneously made my code lighter. Since this project is an evolutionary prototype, I got bold and evolved a piece of code that was holding the project back. In the process, many things broke of course and I’ve been going through fixing those issues. The code is looking prettier and lighter and the project looks better. Unfortunately, in my weariness, I started to put more bugs in than I was taking out so its time to call it a day.