Some questions for ya
So I performed an interview today (well, when I wrote this I did), and am full of question, some relevant to the position, some not, so I thought I’d ask the void and maybe I’ll get an answer. Never hurts to ask (or does it?).
Prototype? or jQuery?
How do you measure the quality 0f a developer?
Should we use code metrics?
In a company strapped for developers, how can you promote one to a position where they don’t code?
How hard is it going to be to switch to Semantic markup?
Will everyone notice the speed benefits in the next release of eProject?
Anyway, back to programming.
Ahhh crap
I just had one of those moments, the one where you saw the stupidity you were about to wreak upon yourself from 10 miles away, but still grabbed the knife blade as it fell.
The Justice Gray - “North America’s favorite metrosexual software consultant”, not to be mistaken for thyself, had his comments to this blog filtered by this unworthy piece of software known as word press.
I must formally apologize for this grievous error on its part, and for all metrosexual’s out there who had their comments filtered. I am truly sorry, I shall not neglect the comments in the future.
Reading, Curse of Chalion
I’m knee deep in work, so focused on whats coming up tomorrow to distill what I did yesterday. So, I’m delving into that other past time of great developers, reading.
The Curse of Chalion
I’m going to skip a length description on the story, as you can read that anywhere. Though, from the title you can gather Chalion is having some problems. I picked the series because the author has some heavy commendations, such as 4 Hugo awards, yet after reading George RR Martins series a Song of Ice and Fire, I was much dissapointed at the scale involved.
I was impressed with the setting she paints, as I would say its her strong point, eloquently describing each scene. Rounding out the positives where some thought provoking banter, and an acceptable story. I’m a stickler for banter, words of wisdom are hidden in that banter that a man can live by happily, yet when a group debates the wills of a made up god structure, it doesn’t help me a whole lot.
Negatives, well, for most of the book I didn’t connect with any of the characters, I didn’t see the purpose, there was no beginning and the end was so undefined till the very end, which made it seem like an abrupt finish.
This book isn’t a waste of time to read, but I would never suggest you read it before a wealth of other books (Enders Game, SnowCrash, A Song of Ice and Fire, Ilium, I could go on and on and on). I’m actually reading its sequel right now, which I do find I’m enjoying a bit more, as I feel its atleast going somewhere.
I don’t think I have the patience to review a book, I may just want to stick with reading them.
Not enough to read?
Try out these guys, who read an obscene amount of blogs and post the cream of the crop on their own blogs.
- A Continuous Learner’s Weblog ()
- Christopher Steen
- Jason Haley - (psst, you smell)
- Larkware News (Mike Gunderloy)
And of course dzone.com which is where I get about 90% of my traffic.
Jason Haley, you suck!
Seriously, you stink, your blog is ugly, and I’ve enjoyed your daily reading updates for far to long.
Its likely the rest of you are curious why I’m using my blog to Flame and smear Jason Haley. Well, if you didn’t notice, first read this post…
Then check out Jason’s post the following day.
Hmmm, so you flame him, then you get on his daily blog read list. Hey I can do that! So if you ever read this Jason, you can bite me! Which shouldn’t be all that unpleasant after that kick ass salsa recipe you helped me find.
To continue the trend, if you flame me, I’ll add you to my OPML!
Advancing Javascript with libraries + 1
In a short but sweet post over at Ajaxian, Dion Almaer interviewed John Resig, of Mozilla and jQuery about Javascript Libraries, and the reasons for said libraries.
- Avoid repetition
- In JavaScript: Distance from browser differences
- In C: stdlib distances itself from the platform differences
First of all, whats up with #3? Secondly, I’m totally digging points #1 and #2 in the current construction of the library at eProject. Refactoring old code to new code thats twice as good makes me feel so good, like some kind of Ego Building Sundae.
So what do I have to add? That #3 should have been easy test injection.
We’ve been struggling how to implement JSUnit at work for quite some time, testing a function on an ASPX page just isn’t very practical, and a lot of the functions in the old files were intended for a specific usage. Yet, once all the logic from the old pages has been moved to the library, it has been written with re-usability in mind, and writing a JSUnit test page turns out to be just another page in the system.
Dynamic Package Inclusion
If you don’t know much about the Dojo toolkit, its a vast Javascript library with some very cool framework features. One feature I liked was the ability to add packages to a page depending on your need, so if you needed ajax, you could add the following script.
dojo.require("dojo.io.*");
This way you only get the bits necessary per page, this doesn’t make sense for something as small as Prototype but as I was building the JS Library for eProject it made sense to include this feature since we have so many packages available.
I’ve just recently been running into a problem implementing a Dojo style dynamic package inclusion system in our companies new JS Library. I didn’t want to dig into the Dojo source code to much, so I implemented a rather crude solution of taking the string to require, converting it to a file system path and appending a script element with that path to the page.
dojo.io.* would become dojo/io.js
This was a really simple solution and worked great in FireFox, but in IE (eProject is only concerned with these two browsers at the moment) , there were loading issues. It appears that unless the file is cached, it took its own sweet ass time loading. Annoyingly this made it seem that all my unit tests were passing when in fact, they only were passing because the dynamically included packages were already cached in most cases.
So after some digging into the dojo source a bit, I’ve discovered how they avoid this irritating little “feature”. The dojo toolkit uses an XML HTTP GET (for cache support of course) call to retrieve the contents of the file from the server, and eval()’s the returnText.
Ever since I read this, I’ve been trying to avoid it, it means I have to write custom XML HTTP Logic in the base framework level, and I have to do eval()’s on large blocks of text, but because I don’t fully yet understand why IE isn’t loading the script files as the DOM elements are being added to the DOM, I’ll need to implement this for now. It does give me the advantage of knowing that any logic I do include via the package inclusion system, will be available after I have exited the call for that package.
If you have any idea behind the lower level occurrences here, please share. Till then, I got some re-writing to do.
Team Player
Ichiro Suzuki at http://seattletimes.nwsource.com/html/sports/2003628318_ichirotv21.html
The point is: A professional who respects himself can only have a positive influence on others around him. If your mantra is that everything you do should be for the benefit of the team, you become incapable of valuing yourself. You become a less-than-ideal player. You become a player that fans don’t pay to come and see. In the end, that kind of player doesn’t benefit the team.
Sure he’s talking about baseball, but doesn’t this apply to all teams? If you don’t focus on being the best ME as possible occasionally, then you don’t grow properly. I’m sure most developers don’t need to be told that you can’t always focus on whats best of the business but you need to look inward as well. Yet the managers need to surely be aware that developers are not tools, and you can’t assume that as you demand more and more from a developer he is improving as a developer.
Its Only Just
The psychology of the programming universe is complex and nuanced, but a quick tip for today is to look for these two words in any conversation.
Only and Just
These two words are used to limit the percieved scope and weight of the subject, without actually limiting the amount of effort or complexity necessary.
Its just this one section on the page we want updated.
It will only take 5 minutes to implement this on all the pages on our system.
It should just take 10 minutes to fix this bug, its really easy, assign it to Kris.
If you ever hear anyone talking about work they want you to do, and use these words, make them re-word what they are asking for without using the words Just or Only. At this point they should be aware of what they are trying to do, and know that not being truthful about the actual amount of effort required is just (hah it has some uses) going to throw off the schedule.
In Scrum you need to be truthful about this type of stuff, you can’t agree to a bunch of Just features knowing its going to make you miss your schedule as everyones Bacon is on the line here. If dev’s can’t get thier work done, the PO’s will share in the blame. And not just that Republican “Its not a big deal I did something bad”, kind of blame.
Mission Accomplished!
So last week I made a launched a small sprint for myself to start establishing an online identity, and to start marketing myself in a positive fashion.
The result of that task was this blog in its current incarnation. Based on the fact that I currently have a black belt and the permutation of Karate throughout my life, I felt the melding of the two was like peanut butter and banana’s. (Love it!) Or Jelly for you fuddy duddys.
As of the writing of this post, I need to close down the old blog, losing my 10 hard earned viewers a day I’ve been getting! Grrr! Hopefully I’ll be able to maybe even double that, then I can start thinking about taking on the big boys.