Mainstream Vindication

April 29th, 2008 by chris in Regular Stuff

Hand-coding stuff really IS more reliable and efficient.  I get so bothered when I work on sites that were built using Dreamweaver because I find that the code is difficult to read, is not compatible with any other browser than the embedded (usually Internet Explorer) WYSIWYG viewer, and is plain inefficient. Although the advanced features I’m looking for are technically available, they’re seldom easy to use, rarely implemented well, or are just plain buried so deep within a tree of menus that they may as well be non-existant.

My vindication came in the form of a Q&A done with the design director of the New York Times online. Here’s the important part:

It’s our preference to use a text editor, like HomeSite, TextPad or TextMate, to “hand code” everything, rather than to use a wysiwyg (what you see is what you get) HTML and CSS authoring program, like Dreamweaver. We just find it yields better and faster results.

I hope that more high-profile designers and developers will come forward and speak up on this topic, too.  I know some people will read this as a dig against them, but it’s really not meant that way.  Simply, I think it would be a good idea that if a designer really cared about their sites being compatible, adaptable, and mutable, then they should take the time to learn to code by hand and view the dramatic results for themselves.

Based on my own experiences, I find hand-coding to be many times faster than using WYSIWYG apps because of the reduced amount of time it takes to implement small changes when doing browser compatability. If I want to re-arrange some CSS real quick, make a minute adjustment to a property, or drop in some debug code, it’s simply faster, easier, and more reliable to do it by hand than it is to wade through menus, make sure boxes are cheked, then wait around for a whole project to be updated.

That’s time I could spend working on the next project.


Holy Busy Bees, Batman

February 29th, 2008 by chris in Regular Stuff

Oh man, I’ve been soooo busy!  I have this one site I’ve been working on, and now am about to pass the deadline with the site only about 90% complete.  I’m not worried about it so much because there were a number of scope changes, and I had to do some work that was a little out of my usual responsibilities.  I don’t normally handle the task of wireframing a site, that generally falls to the designers and planning people, and it ate up far more time than I had budgeted.  In the end, the project will still be profitable, but not quite as much so as it would have been without the added scope.

So, the reason I’m busy is a good one, but the bad news is I didn’t charge enough extra because I didn’t include out-of-scope charges in my contract. Funny how we learn these little things as we go. For example, I didn’t include things such as graphic design or wireframe layout as being extra charge items, and have been struggling with how to bill for them.  Until now.  I’m just going to put them onto a second invoice, stating that an estimate is exactly that - an estimate - and that the final charges ended up being slightly more.  We’re not talking about a lot of money in the overall scheme of things, but I’m glad I always disclaim my estimates as such.

Being that I’m just starting out, I need to set a precedent on how I handle my billing. The first time is the most important, and later on down the line I can make ‘deals’ on a case-by-case basis. I’ve seen other businesses succumb to the pressures of their clients to do them a ‘favor’, but in the end, all it does is hurt the poor guy who’s trying to make a living.

So, there we go, a nutshell reason why I haven’t been posting.  Trust me, I’ve been here.

A quick shout out to Gillick, I saw your comments in the Forecaster, and even though I have a pair of beach-loving dogs, I’m totally on your side, brother! Shame on Crystal Goodrich and SoPoDog for letting things get to this point.


IT People Always Forget Something…

February 17th, 2008 by chris in Regular Stuff

…Non-IT people! Breakfast reading is fun reading, and today I’m going to share what today’s morning meal had to offer literature-wise. I was just reading Scott Bradner’s recent column in Network World, and as usual, he has the right concept, but can’t seem to connect the dots to the central issue.

Before anyone thinks this is an attack on Mr. Bradner, I need to make sure I get this out of the way: I have the utmost respect for him, he’s kind of Internet royalty on the tech side of things. He is part of what keeps this all going technologically and is a pretty nice guy from what I’ve been told! If you read this, I’d love to take you for coffee sometime!

Ok, I continue now. Not once in that article does he use the words “training”, “education”, or “instruct”, or “responsibility”. No way could he possibly blame himself or people like him (myself included here!) for not using those words when speaking with hardware suppliers, telcos, or even administration - a pretty typical point of view from him.

When I’ve asked for things such as what he’s mentioning, I use verbiage that the vendor can understand. I bet he wouldn’t go to foreign countries without learning to say “thank you” or “where’s the bathroom” in the native tongue, so why not learn some of the native language of the vendors? I once asked for redundant T1 lines, using the telco’s own vernacular to describe how I wanted the lines to be routed, and to make sure they understood that my employer was willing to pay for the custom request. Sure enough, my ever-so-wise boss got to prove the value of this diligence during some street maintenance happening behind our building. One of the lines got cut, along with telephone, cable, and power, but the redundant Internet connection stayed online because it came from a different physical location in the telco’s network. Our UPS kicked in, our customers had no idea anything happened, and I got to sit around and play paddleball* for 35 minutes while waiting for the power to come back on.

The point I’m making here is that being an informed consumer is meaningless if the vendor is in the dark about how to provide the service you’re looking for. Granted, not all vendors are suited to providing these special requests for any number of reasons (some being: physical plan capability, personnel, economics, etc.) but there is always someone out there willing to do whatever you’re willing to pay them for as long as you can explain what it is… and it isn’t impossible. You’d think that the tech security officer from Harvard would be a little more in touch with issues like this. He’s obviously extremely good at what he does, has an impressive IT-beard, and is motivated to share his experiences - which are all important. Wow, I’ve got 2-out-of-3 of those things (guess which one I don’t have!) - maybe I should be half-writing articles for Network World.

You can do better, I know it. See one of your recent previous articles if you don’t believe me!

* I know, a totally stereotypical nerd thing to do


The Bad Man Stole Our Fun

February 15th, 2008 by chris in Regular Stuff

I was accosted, hit by a truck, and watched as my dog was chased down by a snowmobile - all by the same person. It was a pretty rough day. Man my arm hurts.

Here in South Portland, we have this wonderful open space called Hinckley Park. It’s a good sized area complete with a hiking trail network, two fishable ponds, and large open fields. We don’t have a strict leash law, and Hinckley is considered an off-leash park that is visited by hundreds of dogs (and their people, of course) every week. There are some basic safety rules in place, such as no bicycling, no vehicles, and no snowmobiles. The trails are small, narrow, and windy with no much of a good forward view, so they’re definitely not ideal for more than walking - even jogging them can be dangerous to others!

Today, when we (doggies and I) arrived at the park, there was a guy riding a snowmobile around the trails and through the fields. When my dogs were out playing, he came zooming through with the throttle wide open and didn’t slow down even slightly. I made a “get out of here” gesture with my thumb and he rode over to me and began to accost me for not having my dogs on an “8 foot minimum [sic] leash”. When I attempted to point out that he was incorrect and that Hinckley was a city-sanctioned off-leash area, he started to yell at me. I should back up here and make sure to mention that I had been taking photos of him with my iPhone while he was riding through the field. When I was up close, I got a nice picture of the asshole, plus I also got his (expired!) registration number from the sled. I told him I was calling the police, and he said he’d wait there while I did so he could prove me wrong. I dialed, and as soon as dispatch answered he sped away.

But not first without chasing down my Golden Retriever, Stewie. He actually turned and headed directly at my dog who was running away as hard as he could. This man turned his head to face me and started laughing, then changed direction and took off. By this time I was speaking with the police dispatcher and they were sending someone along. 40 minutes later, they arrived… but not until after we had spoken to some people in the parking lot and got some information about where this guy lived and where his tracks led. Turns out his name is Gordon Viola, he lives at 44 Stillman Street in South Portland, (207) 799-7842. His property abuts the far southwestern end of the park, where he has a dog who is always chained up outdoors most of the year. I linked this here, because I want it to be seen by all that he’s claiming I made it from the back of his property to the parking lot of the park in 3 minutes. You have to scroll up on the map. Did I mention the knee-deep and wet snow?

I found his place, and then came back to the park to see if the police had arrived yet. They had not, but Gordon Viola was pulling out of the parking lot in a blue pickup with no front license plate. I blocked him from being able to exit by pulling my car up right in front of his at the park entrance, where I proceeded to get out and go to the back of his truck to get his tag number. That’s when all hell broke loose. The police were just arriving (40 minutes!?!) and he was yelling and screaming at Marie who was with me. She got out and started yelling at him. He backed his truck into the parking lot, and I pulled into the lot as well. I got out of the car to wait for the cops, when he came at me in his truck and hit me in the arm with his mirror. I have a nice bruise now.

During and after the time the police took our statements, Gordon Viola kept yelling at us and lying to the police about how he wasn’t there and how my dogs were on his (fenced in!!) property, and all sorts of other nonsense. It would have been impossible for me to have been anywhere near his property unless I was Superfuckingman and could run through the aforementioned snow. When he found that he wasn’t being believed by anyone (in or out of uniform) he then tried to tell people that Marie had assaulted him! It was getting desperate. Then he was yelling at the cops to and saying that nobody could “prove” that he owned a snowmobile. That’s when I handed the police my iPhone with some photos on it. This being one of them:

Gordon Viola, 44 Stillman St., South Portland, ME 04106, (207) 799-7842This is Gordon Viola, not riding a snowmobile. After the officer showed him the photo on my phone, he still denied he did it or that he owned or rode a snowmobile. The fact that several other people saw him, the tracks led to his house, and that he feverishly attempted to deny what happened even though the evidence was shown to him was all just a giant fabrication according to him. Psycho. Doesn’t he look like Dennis Rader - the BTK Killer? He was a ranting, raving, crazed lunatic with a serious chip on his shoulder and obviously no clue about how to vent his frustrations properly. Obviously, there is something wrong with this person to think that they can solve their problems by trying to kill uninvolved humans and canines.

I don’t know what the procedure is for dealing with this cocksmoker, and I’m not sure what the final disposition was with him for today, but I do know this: I’m not going to lay down and die. He had better have been placed in custody and arrested, because if not, there’s going to be a serious problem between myself and the South Portland police’s oversight committee. The officers on the scene were very nice, understanding, and patient with the situation as a whole, so I’m not going to say anything bad about them - there was nothing bad TO be said. There was also a nice guy there with his dog who’s wife is a lawyer, so we exchanged info and I plan on going after the incredible snowmobiling jackoff.

If you know anyone else who goes to Hinckley Park for fun with their kids, friends, or dogs, this should be important to you. This man must be taught a lesson and shown that he will not be allowed to get away with these types of things.

[Update: Fixed some massive grammatical problems - I posted this while still in pain and pissed off, plus I added Gordon Viola’s name to a bunch of places to get to the top of Google]


Name This Blog

February 13th, 2008 by chris in Regular Stuff

I’ve decided to rename the blog. I’ll keep the domain name because maybe someday I’ll aspire to be a CTO again, but for now… now I need something different. Got any ideas? I could be really boring and just put this in as cngann.com/blog or something, but that’s just dull. And I may want to have a company blog in the future, which means the link would change again. Since I’ve decided to really be diligent in writing, I feel like the title should represent who I am, what I like, and where I want to go - and the current title just doesn’t do that. I could use the “cgann.com” or “stalepez.com” domains. I also have “phpst.com”, “dnspup.com”, “imenuz.com”, “quippi.com”, and a few others…

I should post to slashdot and see what happens.


Ooohh, pretty pictures

February 13th, 2008 by chris in Regular Stuff

I’ve been working on the wireframe for a site that I’m doing the code for. That’s a little unusual for me in that I’m a subcontractor and that sort of thing is generally provided by the client. I used to do these things in Visio under Windows, but since I’m on a Mac, that means booting Parallels to do a simple thing, which hogs insane amounts of resources. So, I decided to give OmniGraffle a shot, and boy am I glad I did! The included stencils aren’t bad, but for the purposes of wireframing a website, I strongly recommend going to their site and following the link to their 3rd-party stencils link. These blow away most of the stuff I’ve ever used under Visio. Not only do they have multi-platform OS UI ones, but they also have multi-platform stencils for web browsers. Neato! If I want my wireframe to look one way for Windows and another for Mac, Linux, Motif, etc., I can, simply by using the appropriate stencils and referencing them on different layers.

Now, this may be old news to a lot of people, but it’s pretty great for me! I used to do all this stuff on paper, and I will probably continue to do so for roughing layouts out, but I can pretty much assure you I won’t be booting to Parallels to do this outlining anymore! Of course, Visio still wins hands-down when it comes to building RDBMS designs, because not only can you lay out the database visually, you can export the schema directly into the database engine itself, which I’ve always thought was more than slick.

The other major reason OmniGraffle wins my heart is because it takes advantage of the Mac OS UI, which is far superior to anything on the Windows side. Visio is incredibly powerful, but it’s not very intuitive to use, and the UI is just crazy. I know I could modify the toolbars, change some of the default behaviors, make modifications to various parts of the interface, but why should I? Seriously! Why can’t things just kind of work right out of the box when it comes to Microsoft’s software. Even their new ribbon interface leaves a lot to be desired, it just isn’t very smart and never seems to remember that you *want* to see some options, even after you’ve tried to find them several times. I find it interesting that their new Windows Office UI is finally catching up to their Mac Office counterpart after all these years :-) But I digress…

You know what else is cool?  You can take a bunch of stencil sets, pick the individual stencils you like, and drag them into a new container to create custom sets in an instant. You can even drag images and stuff right into the window and they become stencils too.  Talk about handy! I had to do a wireframe that contained a WYSIWYG editor, so I just came into my blog, took a snapshot of the toolbar, dragged it into my new stencil container, and bang! instant WYSIWYG editor element. Kick. Ass.

So I’m having a grand old time doing wireframes on my machine for the first time ever. Normally I find it to be a tedious, boring, and nearly painful exercise in futility, but I did them anyway begrudgingly because I knew what it meant: a far easier time putting visual elements into place after the coding had been done. That doesn’t mean I always had to like it, though - there’s something special about flying blind and making it up as you go along. Undoubtedly you know that by “special” I mean “insane”. And I get to look at pretty pictures of sites that are yet-to-be-made, almost a window into the future. A bleak future filled with code and QA, but the future none the less.


Never Thought of It This Way…

February 7th, 2008 by chris in Regular Stuff

I got this email from a friend north of Portland, and it really made some sense to me. She sent this to the author of an online magazine article, then forwarded it to me.

While reading the article, I recalled a friend of mine telling me, a while back, he was writing software for a company called, PillHelp. From what I remember, and visiting the website, I suspect Heath would still be alive if his pharmacy subscribed to PillHelp services.
If you would like to read about the solutions PillHelp provides for consumers, physicians and pharmacists:
http://www.pillhelp.com
What a great service you provide with your newsletter. I find it both enlightening and upsetting.
Thank you

Interesting how this should come up. Many people think that PillHelp is only for old, sick, or illness-prone people who take tons of meds. In this case, she is probably right on the money, someone who was innocently taking medications within their prescribed parameters should still be alive. That’s the freaking point. A true MTM practice like PillHelp would most likely have saved this man’s life.

I admit, I wasn’t familiar with his work beyond Brokeback Mountain. I was a little old for many of the teenager movies he was in before that, which leads me to one final point: I’ll also admit that before we knew the cause of death, I was hoping it was something un-natural. I may not be too much older than he was (7 years?), but I do believe that healthy people around my age aren’t supposed to be dying, which is why we probably don’t take concepts like MTM to heart.


Weird Site Requests

February 6th, 2008 by chris in Regular Stuff

I haven’t been freelancing all that long, so maybe this is a common scenario.  I recently bid on (and won) a contract to translate a website from JSP to PHP.  No design or functionality changes are part of this contract, nor are there any database changes - just a language change.  I’m not sure what the reasoning was, but the client seemed pretty dead set against keeping the JSP stuff. Ok, fine, I’m down with doing it, I mean money is money and the job is easy for me; as a fluent PHP and Java programmer, this isn’t a huge challenge. I only have compiled WARs and no java source to work from, but that’s ok, the JSP gives up most of the keys to the castle when it calls in classes to perform certain functions.

So, does this come up often? I wonder what the motivation is? Could it be the lack of skilled Java contract programmers in the Portland area? Or the somewhat overabundance and availability  of PHP programmers around here? It most certainly could be the former, but the latter is definitely not a true statement - pretty much all the local talent has either fled the scene (left the state) or are locked into some sweet gigs they won’t give up to save their lives. I guess one of the reasons I ask is because the site does work well, and apart from the administrative tools, it’s well done! The admin does completely suck. It’s a canned CMS thing that plugs into a website as a class and the end user gets to pop in some calls like <%=thisclass.toString(’someVariable’)%> and have it correspond to a text field in the admin tool. Not a bad idea, but definitely not impressive, nor is it easy for the end-user to manipulate if they’re not technically inclined.

As it turns out, it’s cheaper for me to re-code the site and include a custom CMS than it is to pay the company who wrote the site to make modifications. I need to attract *their* clients - and then charge 50% less :-)

Before you ask… no, the client is not interested in modifying the site code. They don’t even want to make their own design changes. My guess is someone put a bug in their ear that PHP was better than JSP or something. I’m not going to ask, however, because I most certainly don’t want to talk myself out of a job! I am going to do this site using XSLT, however, just in case they decide they want to make design changes they’ll be able to without having to see any real code. The only fundamental difference between their old site and their new site is that it’ll be MVC-compliant with no appreciable (if any) code intermingled with the views.

Whelp, back to work for me…


Artistic Standards for Coding? Is This Possible?

February 4th, 2008 by chris in Regular Stuff

In software development, they say there’s no single correct method to get something done. I firmly believe that, and live to prove that statement every single day with every piece of code I write. But recently I’ve been re-doing or touching up code that belonged to other people who were, umm, less experienced and it hasn’t been pretty. Sure, it technically worked, but not very well and with great effort for minimal return.

I hate hearing people say “the last person who worked on this had no idea what they were doing” because that’s a pretty broad statement. There are tons of reasons why something may look like it was done sloppily, but never assume that it was done that way because the author was clueless. Sometimes developers are forced to do “committee” work, which is always a losing proposition. A couple of years ago the Red Sox did “Closer by committee” and they couldn’t keep a lead after the 7th inning. The same goes for development by committee - the end product is almost invariably of lower quality than if an artistic type was left to create freely.

I call this an art form because you can do things a whole bunch of different ways, and the beauty of the work is always subjective. I’ve seen that your work, depending on your raw skill, will be either admired or reviled depending on who views it. But that shouldn’t immediately lead to the assumption that the artist had no talent, it just wasn’t the kind you recognize. This is where coding standards come in. I’m not including a URL because standards change from language to language and project to project and I wouldn’t want to confuse my poor readers (all 2 of them).

The reason I’m writing this is because, like I said at the intro, I got some of that sort of code recently. I had bid on a job, and it ended up taking almost twice as long to complete because by the time I dug into the meat of the app, it was too late - it was pretty clear that more than one person had been in there and not adhered to any coding standard. Of course, because I put in a bid and made an estimate, I’m pretty much locked in to what I had originally quoted, plus or minus a few (maybe 10) percent.

So, what was this about coding standards? Well, for the uninitiated, it’s basically a list of dos and dont’s that define the basic structure, architecture, documentation, and layout of code. Everything from file naming standards, to how many spaces you indent, to whether you use OTB {}’s or not, to which system calls you’re allowed, etc. Generally the syntactical stuff is pretty much the same everywhere you go, and only varies depending on the personal preferences of the team or project leader. This is the structured side of programming as an art form. I don’t know about you other programmers out there, but I can recognize beautiful code from a mile away.

What happens when there are no standards in place? Well, you under-bid jobs, among many other things. But eventually it costs people money. I’ve worked for places with no standards in place, and it got messy very quickly and created a lot of turnover. In this case, I will have to come in over my estimate, which means I will have to charge my client more, which means they’ll have to charge their customers more to make up for what they spent. And you know what this all adds up to, right? Poorly written or documented code is bad for the economy, which means the terrorists win. And you wouldn’t want that, now would you?


Pretty Sneaky, ISS

February 2nd, 2008 by chris in Regular Stuff

I was just out doing some quick errands, when I happened to look up in the sky and saw this interesting bright light whizzing almost overhead in the evening sky. It was around 6:30 this evening, and here in the middle latitudes it was already dark. Whatever it was, it was moving at a good clip and the light was beginning to fade away, first I thought it may have been an aircraft making an approach or circling the local airport (I was only about a mile from PWM), but there was no way, it also made a quick flash before it began to dim, so my thoughts turned to it being a satellite. Then I was wondering what we had big enough that I’d be able to see with the naked eye, and then it hit me, it had to have been the ISS!

ISS OverheadI came home, went to N2YO.com and punched in the ISS. I turned on the checkbox that draws the trajectory lines, and sure enough! The thing had just gone above my head and was now over Africa. Sweet. You know, I’ve been wanting to catch a glimpse of that thing careening along overhead for a long time now, and every time I think of it I’m either nowhere near a computer, it’s daylight, or it’s not coming anywhere near where I am.

Since I’m here in Maine, I kinda wonder how many people from the sticks called it in as a UFO.

Something I thought of is that somewhere there’s a picture of a fishing net that my father and I hung off a tree. Above it, there was a paper sign that simply said “SKYLAB” with an arrow pointing down into said net. I may even be in the picture, I don’t remember. If any of my family members are reading this, could you please send that along to me?

One last fleeting thought I had was that maybe it was this thing… I have been having some pretty bad luck lately, maybe I will be a human catcher’s mitt for it. Another part of big brother is burning up in the atmosphere. And it won’t be missed.

[Update, 2/4/2008: I pasted in the wrong image! I had one with the great circle lines, but in my haste, I uploaded the wrong one and deleted the correct one, my apologies!]