Wednesday, 27 December 2006

The Man, The Myth, The Legend… (or something like that)

I ended up taking an exacerbatingly-long survey on Monster tonight. It’s called JASPER. The results ended up pretty much the same as what I had in the Myers-Briggs test results, so I won’t bother posting the details of this other test here.

While recovering from the mind-numbing effects of Jasper, I decided to write up some basic Q&A for myself that I’ll post later. It’ll most likely be filled with interview-style questions.

I hope to update more often in the coming weeks. Work has been a little hectic as of late, so I just haven’t had as much time to devote to blogging as I’d like.

Monday, 25 December 2006

Sleek Designs

I was looking at Lady Ada’s WaveBubble today. Her work has impressed me in the past and this is certainly no exception.

I’ve followed her earlier cellphone-jamming projects with interest. A lot of the stuff from the hardware side went right over my head. I knew what a 555-timer was and that’s about it.

I was certainly amused with the capabilities of the WaveBubble, but what impressed me more was just how nice it looked. I don’t think I have ever had a hardware project that didn’t end up looking like an entry in an elementary school’s science fair. I’m pretty handy with hardware, sure, but my talents are definitely stronger on the software side.

I think maybe I’ll get back into doing some more projects, though, and see if I can get a bit better with my designs as well. I’ve traditionally been more of a function-over-form type of guy, so I had no problem with connecting random things together with bundles of wires, splices, etc. and then tossing it all into a black no-frills project box.

There’s just something really alluring to me, though, about making my own circuit boards and fabricating a custom consumer-quality case for it. To some extent, it’s all about the presentation…

Monday, 18 December 2006

Robotic Roomba Overlords

I somehow got into a discussion with my friend Josh last night about robotics. He mentioned an interest in picking up a Roomba and modifying it. I let him know that they have an SDK, tools, and sites out there for developing custom stuff for the Roomba. Pretty neat stuff…

The more we talked, though, the more we began to argue about some of his goals.

For me, the real problems with the Roomba units are more hardware-related than software. The existing cleaning algorithms seem to get the job done — at least over an extended period of time. The stuff I’d love to see changed would be for it to have a dumping station (sort of like the existing charging station idea) where it could clean out the dirt/dust it has sucked up. Also, I’d like to see it be a bit more durable and require less cleaning. I’ve seen way too many get gummed up with pieces of string, carpet fibers, etc. and eventually all it can do is spin in a circle a few times before shutting down.

Josh had other ideas, though. He said he wanted to include some sort of internal operating system that could connect to his computer to send/receive information. He talked about using different techniques for determining how dirty the area was and to spend more time over the dirty sections. Stuff like that… eh… whatever. I’m not that passionate about vaccuuming, really… and I’d never rely on something like a Roomba for all of my cleaning needs.

Where Josh and I were in major disagreement, though, was relating to mapping versus algorithms.

Using algorithms that rely on movement patterns and reacting to sensor data just makes the most sense to me. This allows it to be highly adaptive. You can put it in pretty much any room and it’ll do a decent job.

Josh had a different view on the subject, though. He felt that the way to make it the most efficient was to include mapping. It would “explore” its surroundings and be able to avoid areas where obstacles are going to be.

Mapping is fine and dandy for fairly static things like, say, walls or a washer and dryer set… Things like those aren’t likely to move. But what about, say, a laundry basket that is sitting somewhere? If it maps the boundaries of it, we don’t want it to skip that spot in the future once we’ve moved the laundry basket, right?

Josh argued that this would be handled through a GUI… where points and landmarks could be adjusted on-the-fly by the user.

In the end, his argument was that his method would be more efficient than using algorithms because it is a specialized application — rather than something made to work in 9 out of 10 households.

I can’t help but disagree. There’s too many unknowns when dealing with robotic mapping. You can rely on counting wheel rotations, sonar, lasers, etc., but they still aren’t foolproof… and small inaccuracies will simply build up exponentially over time — affecting future mappings.

Efficiency is more than just sucking up the dirt from every last inch of the carpet. Mapping may let you get to that extra 1% missed by using generic algorithms and wall-hugging techniques, but I think those gains are still outweighed by how much time and effort has to go into the project, how much time is spent correcting inaccuracies, etc.

It just isn’t worth it. At least not for me.

But we were at least able to come to somewhat of an agreement… I agreed that it would be fun to do and, if nothing else, a good excercise in robotic mapping.

In looking back at some sites I had bookmarked about robotics, I managed to find an interesting article about robotic navigation that basically just reinforced my initial gut-reaction to what Josh wanted to do. I didn’t really get any reaction out of him — aside from a link to some MSDN article about some Microsoft framework for use with robotics. Seemed interesting for hobbyists, so I might check it out later, but it still had very little to do with what he and I were talking about.

If a whitepaper from Carnegie Mellon University’s robotics department discussing the challenges in the field of robotic navigation won’t change his mind, though, nothing will…

Tuesday, 12 December 2006

What Type Of Programmer Are You?

There was an entry on Digg earlier today that caught my eye. It was supposed to be a Myers-Briggs Type Test, but the questions were supposed to be geared towards programmers… or something like that.

In any event, I had some time to kill, so I took the test. My result? According to the test, I’m an INTP, which essentially is summed up as someone who is:

Highly analytical, they can discover connections between two seemingly unrelated things, and work best when allowed to use their imagination and critical thinking.

Sounds like me, alright… What was most amusing, though, was reading the more detailed analysis of that specific archetype. It was creepy how accurate it was. I’m not talking those vague horroscope things that proclaim, “You enjoy being happy”… This was a bit more specific…

If you read the article, just ignore the top part that refers to INTP as The Wizard, though. That sounds so cheesy! If I have to choose, I prefer the term used in the article — Architect. It just sounds so much more dignified… and less like someone you’d run into at the local Renaissance Festival.

I doubt most of you will want to read all of the detail about INTPs. I know you’re busy — what with your Blackberry handhelds and your Rock ’em Sock ’em Robots, but bear with me for a moment… Here are just a couple little pieces I thought applied best to me:

“When INTPs do not like the rules, they are quick to find the flaws in the rule makers’ thinking, regardless of their status, position in the hierarchy, or renown”

“INTPs contribute a logical, system-building approach to their work. They like being the architect of a plan, because of the scheming and thinking involved, far more than being the implementer of that plan. Implementation tends to be drudgery. They are content to sit back and think about what might work, given their view of the situation. INTPs may ignore standard operating procedures. The hours that they spend are not what is important to them, but rather the completion of their thought process.”

“Flexibility is desired because INTPs like to ‘do the job when they want to do it and as they want to do it.’ They also prefer occupations in which the hierarchy is minimal and not important.”

“Authority derived from office, position, or wide acceptance does not impress INTPs. Only statements that are logical and coherent carry weight. External authority per se is irrelevant.”

“They are not good at clerical tasks and are impatient with routine details. They prefer to work quietly, without interruption, and often alone. If an organization is to use the talents of an INTP appropriately, the INTP must be given an efficient support staff who can capture ideas as they emerge and before the INTP loses interest and turns to another idea. Our “architect” is not merely a designer of buildings. There is the architect of ideas (the philosopher), the architect of number systems (the mathematician), the architect of computer languages (the programmer), and on and on. In short, abstract design is the forte of the architect and coherence is the primary issue.”

Now when I question the validity of certain policies or practices, I can chalk it up to being an INTP, eh?

I do enjoy the idea of bucking-the-system a little bit, at least. It’s not out of malice or some desire for anarchy. I just have fun challenging rules and ideas that don’t make sense or seem like they weren’t thought out as well as they should have been. It isn’t so much that I want to win the argument or convince people to do things differently, though. I just like to try to understand things better.

Recruiter Rant

Nothing irks me more than updating my resume on Monster, Career Builder, etc. only to be inundated with unsolicited emails from recruiters.

The idea behind recruiting I.T. people, I don’t mind. Heck, I don’t even care about the 10-20% off the top that they take for “finding” me. Whatever.

What I dislike is when the recruiters are essentially spamming anyone with a handful of keywords in their resume or profile — without even taking even the smallest amount of time to even feign respect for the person they are mailing.

It’s all about the law of averages, I guess. Send out enough mass-mailings and, eventually, it’s bound to work in your favor.

Just today, I received a message from a recruiter which addressed the message as “To Whom It May Concern”. You’ve got to be kidding me!

With the technology today (or the past decade or two), they could at least use something to extract the name of the person and use that name when addressing them. It’s not that hard.

Blatantly just lumping everyone with similar keywords together and assuming they all are equally qualified as potential employees is an insult.

I want someone to look at my resume, read it, and actually think about whether I’d be a good fit somewhere. And if they decide that my skills are what is needed, great, but then try and sell me on working for that company.

The recruiter needs me to take the job with their client a lot more than I need them to find me a company. But somehow it’s not viewed like that. I see comments from them about how, if I get hired, I will be given the opportunity to convert their client’s legacy system into something more modern. It’s not like there aren’t interesting aspects about doing that sort of work, but don’t pitch it like you’re wanting to introduce me to the exciting world of coal-mining. I’m not buying it.

Typically, I get recruiters who are more than happy to pass on their client’s mission-statement, a history of when it was founded, and an alphabet-soup of programming languages that are required. That’s fine. When I ask them to tell me about the company culture, what type of development staff is already there, how I.T. relates with the business, etc., I rarely hear back from them.

Why do I want to go out of my way to call a recruiter to check up on some mysterious offer at a company they won’t even tell me the name of and can’t really give me any details on?

For a while, I implemented an email-only policy with recruiters. I didn’t include a phone number on my resume and the only way I’d discuss possible job openings with them was in written format. That worked wonderfully for the most part. Not wonderfully in the way of, “I got a spectacular job out of it,” but more so that I just stopped getting contacted all together.

I keep an eye out still for small software development shops, start-ups, etc. I’m looking for a place where I can work on becoming better at what I do and have my work put to good use.

Development is something I just really enjoy. Sometimes a project is a pain or there are tedious tasks that need done, but it’s still rewarding overall.

If I wasn’t at work getting paid to make software or solve problems, I’d be at home doing it for free. I’m looking forward to finding a place where I can work with people who understand where I’m going with ideas and have the skills to help make those goals happen.

If you know of a place like that looking for someone with VB.NET/SQL skills and a love of development, feel free to comment and let me know. Or just find me on Monster. Just don’t start out the message with, “To whom it may concern”….