new host!
Woot – everything has been migrated to the new hosting provider. Hopefully it all runs right now
Topics: update | No Comments »
host migration
As mentioned recently, I am about to be switching hosts from my current VPS provider, Tektonic.
I have found a non-VPS ISP that meets the requirements I’d previously outlined, and have everything but the MySQL databases for WordPress instances sync’d to the new host.
With a bit of luck, the migration will be invisible to all 4 of my readers
Topics: personal, technical, update | 1 Comment »
doing technical phone screens
Related to a previous post on career development, I thought it could be interesting to look at one approach to the technical screen that I have used over the past few years when interviewing candidates.
- for folks with no “real” experience yet, I ask them to rank themselves on a few key technologies on the “Google scale”
- the range is 0..10 where a 0 is no knowledge, 1 is some, 10 is “you wrote the book”, 9 is you could’ve written the book, or you edited/contributed
- on a few occasions, I have had folks ask to change their ranking from their initial [overconfident] statement to one that is much closer to inline with their true experience/comfort/knowledge level – and that’s OK in my book – honesty is always the best policy here
- a couple quick “about us” questions – open-ended inquiries that let the candidate tell me what they’ve done for work
- this verifies their resume
- gets them warmed-up for the rest of the call
- allows the candidate to brag on something
- perhaps a couple quick probes to find out more about a specific experience
- a few basic / intermediate questions to assess candidate’s technical chops (ie, verify that their resume is accurate)
- this goes along with my personal rule of “never put anything on a resume you don’t want to be asked about”
- open-ended, intentionally-vague questions to gauge problem solving ability, and methodologies
- see how they go about refining the problem statement (if at all)
- gauge estimation skills
- gauge teamwork and delegation aptitude
- a few intermediate/advanced questions about an area they *don’t* know anything about – to gauge their response to unfamiliar/stressful situations
- in my field in particular, it is impossible to know every new technology or even (probably) to be truly 100% aware of those that you do use every single day
- a few intermediate/advanced questions in their now-articulated fields of expertise (presuming I have any)
- this verifies more of their stated (and unstated) job experience, and helps determine at what title/work level they should start
- lifestyle/workstyle questions
- how much they enjoy travel
- how they handle last-minute demands and “requests” by customers and management
- a few questions to gauge flexibility of response to changing requirements
- for example, switching a project from being Solaris-based to Windows-based part way into implementation because a new CIO has come in, or new licensing is available, etc
- open time for them to ask me whatever they may wish to know that I can tell them
- this usually ends-up being very short because the candidate was stressed-out over the interview, and can’t think of anything about the company they want to know on the spot
What I try to NEVER ask:
- “trivia” questions – I bet there are C questions even K&R couldn’t answer
- I guarantee I can ask you a question about your area of expertise you cannot answer…just like I guarantee you could do the same to me
- since that is the case, trivia questions are pretty pointless, and more of an ego stroke to the asker than anything else
- pointless “MindTrap“, lateral-thinking questions
- riddles are fun – but only add to the stress of the interview
- pointless problem-solving and estimation problems
- for example, “how would you move Mt Fuji”, “why are manhole covers round”, or “how many gallons of water flow into New York Harbor from the Hudson River per hour”
- estimation problems are wonderful tools and games to play, but not in an interview
- illegal questions
- sometimes they slip out, but it’s never intentional
I adjust my questioning to fit the situation, timing, and candidate responses – so it’s [somewhat] different every time.
When the interview is done, I write-up my evaluation of the candidate and send it on to the hiring manager. In line with Joel Spolsky‘s “Guerilla Guide to Interviewing“, I make sure to put my firm conclusion of Hire/No-Hire near the top, and again at the bottom – with my reasoning in between.
One thing I have noticed about almost every interview I have ever taken or given is that I end up learning something in the process – and not just about the candidate (or company). It’s important to listen to both how and the candidates responds to questions, and what they say.
So, if you ever get the chance to interview with me, you have an idea of how I’m going to run the show
Topics: education, ideas, insights, interview, personal, technical, work | No Comments »
preliminary update on kirk’s crash
All who knew Kirk Aragon are still in shock over his sudden and tragic loss Sunday.
The N&O called me this week for a brief interview, and some of what I had to say is in an article published today by Aliana Ramos, along with the following preliminary information about the crash:
The private-plane crash that killed an Apex man this week probably was not caused by mechanical failure, according to early findings by an investigator with the National Transportation Safety Board.
…
Aragon’s plane went down about 12:45 p.m. Sunday, minutes after radioing to air traffic control that he was departing. A pilot who was in the air at the time told investigators that Aragon’s plane appeared to be lower than usual and losing altitude before crashing.
“The entire airplane was consumed by fire,” Rayner said. “The engine was significantly damaged; the gears are melted together; the instruments have been destroyed.”
…
Aragon was alive immediately after the crash and managed to separate himself about 10 feet from the plane, said Deep River Fire Chief Larry Kelly. A trio of area residents managed to reach Aragon before the fire department arrived and helped to remove some of his clothing.
“They helped to keep him calm until we could get there,” Kelly said. “He was conscious. I was able to talk with him to find out if anyone else was in the plane. He was in a lot of pain. He did not give any indication of what happened.”
My prayers are with his family especially today.
Topics: news, personal, update | No Comments »
netherland by joseph o’neill
I finished reading Netherland by Joseph O’Neill Tuesday.
It’s a “novel” in the same sense that One Flew Over the Cuckoo’s Nest or Where the Heart Is are novels – it’s a story. The story unfolds in a rambling fashion as a the memoirs of Hans van den Broek.
It’s a story of one man’s life in New York, his wife, his son, and their ultimate return to London taking place over several years after the attacks on the World Trade Center. It’s a story of lost purpose, betrayal, uncaringness, and, ultimately, the refound and rekindled love Hans has for his wife Rachel.
Mostly told as a flashback from finding out that his friend (in loose airquotes) Chuck Ramkisson has been found dead, Hans’ story is one that I’m sure far too many people can relate to – not because of the intricacies of cricket, or the exoticity of various locales visited and mentioned, nor due to the propensity of the author to use words most of us haven’t thought about since we took the SATs. But it’s simply the story of a man who has lost his way, nearly lost his family, and found himself again through focusing on an artifact of his childhood self: cricket.
I don’t know if I recommend this book or not – it’s not a genre I typically read or like, but I didn’t not enjoy it.
Topics: books, review | No Comments »
kirk aragon – lost 25 september 2011
Kirk Aragon was a former direct coworker, and long-time colleague of mine. Kirk died Sunday doing what he loved to do.
I first met Kirk a few days after starting Opsware in January of 2007. He was one of the “named resources” for dealing with our biggest customer, EDS. Kirk’s professionalism, friendliness, and over-powering happiness that exuded from him constantly was a fantastic encouragement to the entire team in Support. A few months later, he returned from his loan from ProServe to go back on the road.
I had the opportunity to learn from him frequently on a variety of subjects – flying (his passion), family, technical intricacies of the product we worked on, great places to eat, work/life balance, etc.
I’m going to quote one of the members of senior HP Management with regards to Kirk:
Kirk Aragon was a kind and loving person, helpful, professional, and a true gentleman.
For Kirk, aviation was his passion and true love. He embodied the American story. As a former Air force captain of 4 years he fuelled his passion for flight, and carried this on to building and flying his unique kit plane. While serving in the Air force, Kirk Met his wife Archana, and later became a very proud and loving father of 2 daughters (12 and 9).
He was beloved, respected and admired by his managers, his teammates and his customers.
Kirk will be remembered by all of us.
“Kirk was always happy as he seemed to always be upbeat. He was an awesome guy and demonstrated everything a professional could.”
“All he talked about was his wife, his beautiful girls, and his love of flying. Kirk was one of those guys you just had to love, and I know our team will miss him as much as I do.”
“Kirk was a gentleman, a friend and a professional.”
“I have not felt this way for a long time. My eyes are moist, and my heart is saddened. It is a sad, sad day. I’ve known Kirk since the days at Opsware. We had SA boot camp and dinner together a number of times. He is a great person, respected colleague, strong teammate, SA expert and friend. He always brought a colorful perspective to our exchanges and made the conversation lively. He is helpful, open and friendly. You feel close and personal with him. His ‘baby’ face is hard to forget. I miss him a lot.”
I am privileged to have counted Kirk as a dear colleague and am deeply grieved by his unexpected death. I hope our memories of Kirk will comfort us. Let us all support Kirk’s family with our deepest sympathy, prayers and thoughts.
Further, some comments left by his friends and colleagues on social sites:
“I remember the time a bunch of us went to ‘China Town’ for lunch and reallocated car pool distribution on the way back to the office and Kirk graciously volunteered to ride in the seat-free doggie/storage area in the back of my Forester since we were short a seat. Afterward, he just happily tumbled out with that impish smile that he shared so freely. I will miss Kirk.”
“Kirk was a great guy.”
“Wow…. this is very sad. He was a really nice guy.”
“I am so saddened to hear of Kirk’s passing.”
“Mourning the loss of a coworker. RIP Kirk. You were a great person.”
I know tributes like these don’t cover everything that needs to be said – and we always regret what we didn’t tell someone when we had the chance when we no longer do.
One thing I can be grateful for, though, is that I have no regrets about what I did say to the man in the years I knew him.
Good bye, Kirk – may God be with your family in this dark time.
Topics: personal | 7 Comments »
effective error messages
I had a recent conversation with an old classmate, and he stated that using asserts when programming Java is useless because an exception can generate more useful information. Exceptions are only ”more useful” if you are a developer or perhaps supporting an application. When a bug report or support case needs to be created, supplying the “raw” errors can be a useful tool in finding a solution.
However, to go back to my friend’s point, he asked how an assert can “benefit someone that is running the application”. The short version is that NO ”error message” that is in the frame for a developer will [likely] benefit the person “running the application”.
David Pogue wrote about this more than a decade ago, but it’s something that still has not taken-hold in most applications: the human-friendly error message.
The C Compiler in MPW (a Macintosh programming tool kit) gives you messages like this: “You can’t modify a constant, float upstream, win an argument with the IRS, or satisfy this compiler.” Or this: “Type in (cast) must be scalar; ANSI 3.3.4; page 39, lines 10-11. (I know you don’t care, I’m just trying to annoy you.)” Or how about “This label is the target of a goto from outside of the block containing this label AND this block has an automatic variable with an initializer AND your window wasn’t wide enough to read this whole error message.”
The BeOS‘s native browser, Net+ (pronounced “net positive”), had amusing error messages – in fact, it was those amusing messages that spurred the name of the OSS reimplementation of BeOS, Haiku.
For instance, a user might see the following error message if they try to access a website that is unavailable:
- Cables have been cut
- Southwest of Northeast somewhere
- We are not amused.
If the user tried unsuccessfully to authenticate against a website, they might see:
- Server’s poor response
- Not quick enough for browser.
- Timed out, plum blossom.
One you might see, however, in a product I use frequently:
2011-09-08 19:03:58,590 INFO Thread-12 [org.apache.beehive.netui.util.logging.Logger] [info] Register RequestParameterHandler with
prefix: checkbox_key
handler: org.apache.beehive.netui.tags.html.CheckBox$CheckBoxPrefixHandler
2011-09-08 19:03:58,591 INFO Thread-12 [org.apache.beehive.netui.util.logging.Logger] [info] Register RequestParameterHandler with
prefix: checkbox_group_key
handler: org.apache.beehive.netui.tags.html.CheckBoxGroup$CheckboxGroupPrefixHandler
2011-09-08 19:03:58,592 INFO Thread-12 [org.apache.beehive.netui.util.logging.Logger] [info] Register RequestParameterHandler with
prefix: radio_button_group_key
handler: org.apache.beehive.netui.tags.html.RadioButtonGroup$RadioButtonGroupPrefixHandler
2011-09-08 19:03:58,592 INFO Thread-12 [org.apache.beehive.netui.util.logging.Logger] [info] Register RequestParameterHandler with
prefix: select_key
handler: org.apache.beehive.netui.tags.html.Select$SelectPrefixHandler
Gee, thanks Apache!
Compare that with Google’s Chrome browser that puts a frowny face on a file folder and says “Oh Snap!” when something goes wrong (whether it’s the browser’s ‘fault’ or not).
So why don’t more applications come with “friendly” error messages?
Part of it is because developers too often are concerned with getting something shipped (shipping is a feature, after all), that they don’t stop to consider who is going to actually use the software.
User. The four-letter-word of the development community. Developers all too often (I’m as guilty as anyone on this) of forgetting that what they are writing is for someone else to use. Not for them to work on, debug, develop, extend, and futz with. No, it’s to use.
The average user doesn’t care that some component interacted in a bad way and caused a stack trace… they don’t care that there even are components and stacks to trace!
It takes conscious effort to write message people can care about, or at least understand. And it’s not because the userbase of a given product are dumb: they’re just not developers. Doctors surely are not dumb as a group, but that doesn’t mean they’re qualified to understand a stack trace on the EMR system.
Developers need to take a step back from their work and remember that there are other people in the world beyond just them, and if the more easy and friendly a system is to use and interact with, the more likely people are to want to use it – which might just keep them employed
Topics: ideas, personal, technical | No Comments »
http is a stateless protocol
The ubiquitous protocol that enables the internet as we know it, http, is stateless.
Stateless merely means that any given request has nothing to do with the previous, or the next request. This enables the world wide web, as web servers do not need to keep track of who is receiving data, nor ow much they have: they get a request, and ship data to the requestor.
It is up to the requestor (often a web browser) to handle the incoming data.
If not every part of a web page, for example, is sent, the browser will display what it can.
This is analogous to a creditor sending you a bill (request), and you sending a check back to them – once the bill has been sent, the creditor knows nothing about the state of the bill until he receives a payment. Likewise, once the check is dropped in the mail, the payor knows nothing about his bill until the check clears his bank.
Why is this important? Because of an oft-repeated “request for enhancement” to the product I use on a daily basis. When the implementors of Opsware SAS were picking how a user should communicate with the system, they picked to run everything over http(s). They chose to utilize http because it’s commonplace, well-understood, and easy to work with.
One of the things about statelessness is that you cannot know how many people are using a given web page at the same time. Google cannot tell anyone how many people are actually looking at www.google.com at this moment. They can tell you how many loaded it,and how many just presses “Search”, but they can’t know what percentage of the loaders promptly went elsewhere – either to a different page, or a different room in their home.
One way around the statelessness of http is to utilize cookies or session data – but that merely adds a check layer to the interaction, it does not provide true “statefulness”.
Several times during my time in Support at Opsware (and after HP’s acquistion), I would have a customer who was looking for the ability to determine who was logged-in at any given time (in similar fashion to running `w` or `who` or `finger` on a Linux/Unix system). This could be important to know whether a user is “doing something” before doing an application restart.
However, since communication is all done via http, there can be no state known in the tool. Once you load a web page, it is being viewed/rendered on your local machine in your web browser – the server could be shut off, your network connection removed, or any of a host of other simulations of restarting the application. And your browser would be none-the-wiser, nor should it be: it has the data it requested/received, and you’re doing something with it.
This carries over to the product I work with. Jobs might be scheduled by a user to run every day at 0200 – but he doesn’t need to be actively logged-in to have them run. Likewise, someone may have logged-in, but is not “doing” anything currently (maybe they’re at lunch).
Another case of why technical intricacies matter
Topics: education, insights, technical, work | No Comments »
apple should buy sprint
According to The Street, Sprint-Nextel is at a 52-week low with today’s closing price. Their market cap is $10 billion.
Apple as $70 billion in cash on hand.
Google is buying Motorola.
I think Apple should buy Sprint. And they should stop distributing the iPhone via Verizon and AT&T in the US.
- guarantee a distribution channel for media which Apple proffers
- boost Sprint’s value
- accelerate the deployment of 4g (and better) network technologies (a la LightSquared)
It would also give, in my opinion, a strong leg-up for Sprint on their suit against AT&T’s proposed acquisition of T-Mobile.
Topics: ideas, news, technical | No Comments »
changing hosts
After several years of being hosted at tektonic, it has come time to move hosts.
My current web server is running 32-bit CentOS 4.9. Eek! That is old.
Since upgrading to a new release of CentOS is now becoming more urgent, and upgrading is really reinstalling a new OS, I’ve started to look at new hosts. I’ve considered Chunk Host, but while their entry-level service are Okay, they’re not really in line with what I need at this time. Likewise, I have review iWeb‘s offerings, but unless I go for a colo, they’re not going to suit my personal needs well, either.
My requirements for a new host are the following:
- CentOS 6 x64 (for a variety of reasons – this is not a religious thing: I have evaluated other distros/platforms, and this is the best option for me)
- at least 250GB of storage (>500G preferable)
- several CPU cores (a minimum of 2, 4 or 8 would be better)
- at least 4GB RAM
- decent amount of available traffic (though I don’t anticipate major traffic patterns for some time)
- at
What I am planning to run:
- Apache (ports 80 and 443) hosting several domains
- MySQL
- Plone (on 8080)
- PostgreSQL
- sendmail for several domains
- SVN
- Trac
- WordPress with some plugins (one of which is a little CPU intensive)
- a backup store for myself (hence the storage requirements)
- OS media
- personal files
- continued mirroring of m0n0wall
- oh – and it’d be nice if it was in the same rough price range as what I’m spending now on far less
(2GB 2CPU 60GB on one host, and 512M 4CPU 20GB on my other host – total ~$45/month)
So far, I have found a couple viable options – but have not 100% settled on them yet.
I am curious as to what alternatives may exist in this area that I have not yet seen, and would appreciate any suggestions
Topics: news, personal, technical | 1 Comment »


