Recently in Work Category
As many casual readers of the Fozzolog may know, I’m now working for a new company called KnowledgeBlue. Things are done differently at KnowledgeBlue and it’s not unexpeced that one company would do things differently than another, but the way things are done at KnowledgeBlue has been a bit of a shock to my system. I think my Iodynamics colleagues are experiencing similar feelings.
Robb and Chris are veterans of the corporate IT world and I don’t mean the IT department of your standard local business but the IT world of a large corporation listed on the Fortune 500 list. As a result, they bring an amount of discipline and regimen to workflow that I’m not acustomed to working with.
That being said, I’ve been learning a lot and enjoying it immensely. (I’m not just saying that to be a brown-noser.) While the regimented workplace is, without question, overkill for the size of company KnowledgeBlue is right now, the company will be growing significantly in the coming months. Without these policies and procedures in place, it would be easy for things to get out of control.
In all honesty, the structure and rigidity has been frustrating and the amount of work and responsibility piling up on my desk has been putting my confidence through its paces (pacing through the doldrums, perhaps?) That being said, I haven’t been challenged like this in a long time and despite my confidence scraping the bottom of the proverbial barrel, those I’m working for are supporting me and expressing confidence in me. So, there’s that.
Project planning
One thing I’ve been requested to do is do project and resource planning for some of the work that is upcoming. In the “corporate world“ the de facto computer application for such a task would be Microsoft Project. Anyone who knows me knows... that ain’t gonna happen. Fortunately, there are many alternatives to choose from in the immense software catalog of the Open Source universe.
Here’s a preliminary rundown of what I’ve come across.
Kplato was one of the first applications I looked into and I actually used it for a few days before moving on. It does a fair job of generating WBS (Work breakdown structure) codes and tracking who is assigned to what tasks. The one thing that kind of became a dealbreaker for me is that kplato doesn’t seem to be able to associate prerequisite task information. That is, there doesn’t seem to be an easy way to say “Task A must be finished before Task B can begin.” You can only specify task starting and ending constraints by date.
Planner, formerly known as MrProject, is a project management app that has been around for a while in various incarnations. Planner has most of the features I’m looking for and, unlike kplato, does support the concept of “predecessor tasks.” Additionally, Planner features the ability to import data from Microsoft Project XML format files. There is a port of Planner for Windows also available. One thing that bugs me about Planner is that it’s a GNOME application and suffers from the UI braindeadness that accompanies most GNOME applications. Otherwise, it’s probably one of the most capable of the applications I’ve looked at.
TaskJuggler is a bizarre entry to this field of applications. It completely deviates from the project management software genre. Users are required to enter information about projects, tasks, resources, etc. using a programming language-like syntax into a text file which is then compiled by the application. The authors of TaskJuggler claim their program is leaps and bounds better than “traditional” project management software. I’m a bit reluctant to go down that road. I should definitely come back to TaskJuggler at some point. For now, I’m sticking with the traditional applications.
OpenProj is the first Java-based desktop app of the mix I’ve looked at. It features nice import/export compatibiliy with Microsoft Project and its cross-platform nature, thanks to Java, also makes it attractive. It also boasts task predecessor support. It’s not very easy to use compared to the others I’ve looked at and it runs slow. It does have a lot of screens and reports, though.
GanttProject is another Java desktop application I looked at. It offers good import/export capabilities for people who are dealing with Microsoft Project data. It doesn’t offer quite as many views as OpenProj, but tries to make up for this with lots of export options (HTML. PDF, CSV, PNG, and JPEG). GanttProject also supports the concept of prerequisite or predecessor tasks. One disappointment, however, is that GanttProject doesn’t seem to let you get any more precise on the length of effort of a task beyond the number of days. For example, you can’t express that a task is only going to take 2 hours to complete. It also doesn’t handle some errors very well.
I’d love to hear about other applications that I haven’t listed above.
Those who attended the dinner and/or first keynotes from tonight’s Utah Open Source Conference session may have seen a press release on display at KnowledgeBlue’s exhibition area. It announces the merger of Iodynamics into KnowledgeBlue.
So, no more secrets! I’m a KnowledgeBlue employee now as well as Mike, Adam, and Thom - my chums from Iodynamics.
KnowledgeBlue is based in Salt Lake City and is in the business of (my words here) gluing together open source software packages into systems that offer great value to businesses.
Another thing KnowledgeBlue is letting people know at UTOSC is that we’re hiring. If you’re a can-do person with a firm understanding and appreciation of Open Source software, check out the jobs available on the KnowledgeBlue careers page.
Iodynamics is, for a lack of better words, in a pickle.
A few weeks ago, we finally found our technical salesperson whom we had been searching for since May. We found a gentleman who had substantial experience in technical sales and, while not that knowledgable about open source software and Linux, knew enough about the kinds of I.T. problems companies face in today's world he could sell our products and services after taking some time to become familiar with our edge over traditional (AKA "Microsoft") approaches to problems.
We found out a couple days ago that our new salesman is quitting. Apparently, a company he'd been courting long before we talked to him, offered him an opportunity he couldn't turn away from.
I understand his decision and wish the guy the best, but it really does put us in a pickle.
Up until now, Iodynamics has managed to grow (quite well) without any dedicated sales personnel. Most of our business has come through word-of-mouth and referrals and such business contacts seem to remain loyal.
We decided in order to take our company to "the next level," we would need to start doing serious sales and marketing. Our first step was hiring a salesperson who would work with Chadd, Mike, and Dave (the partners with marketing background) to develop a sales and marketing thrust that would generate more business.
We realized in order to do this, we'd need some capital to fund our marketing efforts and pay a salesperson while they got up to speed and started making commissions. To accomplish this, we set up some business financing.
Once our salesperson was hired, we started dipping into that financing. Now we've got a balance on that debt and nothing to show for it. It's depressing and it kind of sours me on the whole idea of a hiring another sales person.
Iodynamics is currently seeking an outside salesperson and we're in a hurry, so tell your friends, your neighbors, your cellmates... anyone.
You can send this URL to people: <http://www.iodynamics.com/corporate/employment.html> or just send them this job description:
Outside salesperson
Iodynamics, a growing IT and web services company based in the Salt Lake Valley, seeks an outsides sales representative. Join the friendly staff of Iodynamics and earn an excellent salary plus commission.
Responsibilities:
- Sell the firm's products and services, which include IT support services, web design, programming, and server management.
- Prospect and pursue new leads.
- Work with existing clients to find new work and leads.
- Assist the firm in developing and maintaining marketing material and copy.
- Assist in developing the firm's overall sales and marketing strategy.
Perqs:
- Excellent, negotiable base salary (will be based on experience).
- High potential for commissions.
- Insurance benefits (after 90 days with firm).
- Lots of opportunity for success and growth with a relatively new and growing company.
Requirements:
- College degree in business-related field or equivalent experience in IT-related sales and marketing (pre-existing business contacts along Wasatch Front is a plus).
- Strong computer and Internet skills (high degree of proficiency is a plus).
- Familiarity with the products and services of the IT industry (knowledge of Open Source software and/or the Linux operating system is a big plus).
- Business-like, professional appearance and personality.
- Ability to communicate well verbally and in writing.
- Must be able to operate throughout Cache, Weber, Davis, Salt Lake, and Utah counties for 40-hour work weeks.
To apply:
Send resume in text, HTML or PDF format to iojobs-AT-iodynamics-DOT-com.
Next topic: Company
The company
Today, I spent several hours with my business partners in meetings. We scheduled this "corporate retreat" to discuss the next phase of Iodynamics' existence. It was a very productive meeting.
For the first time since I formed the company about 9 years ago, we're going to be utilizing some outside financing to help us grow over the next couple of years. When we first started discussing this, I was very nervous about it, but now I feel a lot better.
We will be bringing on some dedicated outside sales expertise and dedicated marketing expertise over the next couple of months. Up until now, we've tried to handle most of this kind of stuff ourselves, but we've realized we're too busy already to give these areas the kind of attention they deserve.
It's amazing, really, we've done as well as we have without any "real" sales and marketing. Most of our business comes in via word of mouth or referrals. We retain nearly all our customers as well.
So, all in all, I'm feeling good about the decisions that were made today.
"There are no graduates. The learning never stops." -- Rush Limbaugh says that every once in a while when identifying the Rush Limbaugh Institute for Advanced Conservatives Studies.
I like the mantra, today it applies to me, and I think it should apply to everyone in the open source community.
We recently got a call from a guy with a company out of Utah County who needed some work done on a Linux server. The first meeting took a couple months to set up, but it finally happened about a month ago. Adam and I checked it out. He had a Dell rackmount box that had suffered some hardware failure of some kind. It was a pretty important server, so they hurried and built a new server on other hardware.
This led to them contacting us. Now that the original hardware was fixed, our client wanted us to document everything that was installed and configured on the rebuilt system and duplicate it on the original system -- fixing things that weren't done quite right along the way.
We did all that and delivered a 26 page set of documentation on the system.
Our client then requested that we do two more things. First, he wanted one machine to act as a failover slave to the other. Second, he wanted to do implement a single-signon scenario so that users of the Linux system could use their Windows network usernames and passwords to log into the Linux system via SSH.
I've set up a couple High-Availability Linux clusters before, so I wasn't worried about that, but I hadn't really investigated the single-signon thing before - especially not with Windows as the authentication source.
Turns out the single-signon thing wasn't that difficult. It comes down to a handful of steps:
- Edit /etc/nsswitch.conf and add winbind after files for the passwd and group entries.
- Configure /etc/krb5.conf with the right Kerberos realm names and server names.
- Configure /etc/samba/smb.conf with a few winbind parameters like what is shown here.
- Join the domain with net rpc join -S PDC -U Administrator.
- Start the winbind service and restart Samba.
- Edit login and sshd in /etc/pam.d and add lines like auth sufficient /lib/security/pam_winbind.so which tells PAM to use winbind as a source of credential validation.
- Edit /etc/pam.d/system-auth and add a line session required /lib/security/$ISA/pam_mkhomedir.so skel=/etc/skel umask=0022 so that PAM will create a home directory (specified by the template homedir directive in the Samba configuration file) when a user successfully logs in for the first time.
And that's pretty much it.
Tonight was my final visit for these projects. We did it after hours so we could take the servers down for IP address changes and what-not. Two to three hours later, I had two servers using heartbeat failover and accepting Windows username and password logins. Very nice.
Visiting Jennie's blog just fills me with a ton of guilt for not popuating this space in a more frequent manner. So much so that... I'm doing something about it.
One reason I haven't been blogging is because I've been working on overhauling the Fozzolog code - the code that drives this blog (and a few others). I should have been done with that a couple weeks ago, but I've been so busy with other stuff, it hasn't happened.
Other stuff? Oh, just work, mostly. Iodynamics is very busy right now. It's gratifying to look at the "Big Board" (a reference to Buffy The Vampire Slayer - Season 7) at our Salt Lake office -- it is chock full of active (Hot & Spicy) projects.
There have been three Sons Of Nothing shows in January. One in Park City and two in Colorado. These shows mark a landmark for me and the band: the first time we've run visuals and audio effects completely without the Windows operating system. Everything is running Linux now.
I'm very pleased.
We recorded the audio and video from these recent shows and I have been editing it all into some multimedia that may be usable as promotional material for the band.
Meanwhile, the rest of the band -- the actual musicians -- have been busy recording the next CD. I've been up to Matt's house to observe and document a couple of times and it's sounding great.
It's long past update-time. I can't believe how busy we've been the last few weeks.
Gearing up for Christmas
Of course, part of our busy-ness is partly, if not largely, due to the looming Christmas holiday. I would have to say this is shaping up to be the best Christmas our family has had yet. Everything is coming together nicely. We've had more of a budget this year than we've had in a few years and that has logically contributed to more lavish giftgiving, but this is also the first year all three of our kids will be able to really appreciate the Christmas occasion.
Christmas won't be the same without Kermit Dog, but we have Buffy and Angel to try to fill in that void.
At work, we tried to arrange a Christmas party for the company, but we didn't really think it through well enough and certainly didn't plan far enough ahead. By the time we started checking availability at restaurants and recreation centers, everything was already booked by other people. We may still have a get-together or some sorts in January.
Despite not having a formal gathering of the Iodynamics brains, Mike and I decided to give a geeky gift to everyone in the company and we did that earlier this week. Everyone seems pleased with their iAudio X5 hard drive-based portable digital media players.
I wonder if anyone will bother talking to each other at the office anymore. We'll all be wearing headphones and communicating via Jabber.
Not gearing up so well
Last Saturday morning, we were taking Maya and Lucy to their Christmas recital for their tumbling class when our Mazda Protege started making an unusual knocking sound after I turned a corner. It wasn't the kind of sound I'd ever heard before. I thought it might be a CV joint issue, but I wasn't sure.
The car still drove fine (aside from the noise), so I continued on to the recital. After the recital, we retrieved the other car from home and took the Mazda to our local tire store. They checked it out and called us later saying it wasn't something they could fix; It was in the transmission.
Earlier this week, I made arrangments to have the car looked at by Gary Smith -- a mechanic who is also a good friend of the family. He confirmed the problem was in the transmission and said our best bet was to replace it with one out of a car in a salvage yard. So, that's going on.
Meanwhile, we only have one car to use, which has been interesting. Christine and I have taken turns driving and giving each other rides on different days. It hasn't worked out too bad.
Last Saturday, after hearing back from the tire store, we left the kids with my parents and went car shopping. We test drove the new Mazda5 and a used Honda Pilot.
The Mazda5 is a neat car. It's the product of newfandangled cross-breeding experiments between minivans, SUVs, and compact sedans. The result is a 5-door vehicle that seats 7, has dual sliding doors for the rear passengers, gets up to 27 miles per gallon, and is available as a 5-speed stick-shift.
The Mazda5 was fun to drive too, but I was discouraged by its lack of all-wheel drive, something I consider to be an important safety feature for driving in Utah.
The Mazda5 also doesn't come with a lot of cargo room if you use the rear bench seat. If you fold it down, however, there's plenty -- more if you also fold down the middle-row captains chairs.
The Honda Pilot is dreamy. That's all I can say. I really want one, but Christine's got her eyes fixed on the Honda Odyssey right now. We'll see what happens, if anything.
Our current plan is to sell the Mazda (once it's fixed) and replace it.
Basement updates
Another reason I've been so busy is that I've been working hard in our basement. I was hoping to have the two bedrooms and the office done by Christmas, but I think it'll be more like mid-January now. I'm now using the office as an office, freeing up space in the future family room/theater where I had a makeshift office set up.
The bedrooms are getting close. All the framing is pretty much done. Most all the insulation is installed around the outside walls. Electrical is nearly finished. I need to do finish up those items and do the ductwork and then we'll be ready for wallboard.
A December party
Christine's family had a get-together for all the kids (grandkids of Christine's parents) last Sunday. It was fun... that is, until Maya got sick. She spent the trip back home vomitting into cups and bags in the car. Not so fun.
I took a lot of pictures -- no, not of the vomitting, of the get-together -- and here are some of them.
Google had their Summer of Code, I just had my...
Weekend... Of... CODE
(Say it like The Muppet Show's "Pigs In Space.")
It's been kind of nice, really. First of all, I enhanced the way gig images are viewed over at the Sons Of Nothing site. Instead of images opening up in a new browser window when you clicked on a thumbnail, the images will open up "inside" the site along with some handy "next image" and "previous image" navigation.
It wasn't hard. Just create a new template for the full-size image page and give it some meta data about the next and previous images in the set. Done.
Perl, mod_perl, and Template Toolkit just rock... like Sons Of Nothing rocks... but different.
For example, check out this recently-posted rare glimpse of me from our September jaunt to Steamboat Springs, Colorado.
Secondly, Iodynamics is currently involved in a project for a client that involves gluing a bunch of facilities together within one website including auctions, weblogs, news articles, file downloads, and more. Call in the next 20 minutes and you'll also get this handy dandy nosehair trimmer.
Anyway, the original project specification had us doing everything in PHP - not our first choice for anything. We weren't too worried about spending too much time writing PHP code because our plan was to use "off-the-shelf" components or applications and glue them together into one seamless website.
It never quite works that way, does it?
The "RSS feed" we were supposed to be using for the news articles turned out to be an XML format which borrowed haphazardly from RSS, but is completely different, thereby requiring some ground-up parser development.
The file download repository is specific enough, we hadn't been able to find anything that would do the trick admirably enough.
Oh, did I mention the client was seriously hoping to have it all done last week?
Fortunately, the client succumbed and said, "Go ahead and do it in Perl." Whatever it takes, just get it done quick. Man, after searching for something akin to CPAN's XML::Simple for PHP, it was so refreshing to be able to just use versatile Perl modules like XML::Simple, LWP::UserAgent, DBI, and others.
I was able to crank out all kinds of magic to do the news articles and the file download repository in an amazingly small amount of code and still maintain a strict separation of concerns (i.e. MVC) -- something that you have to work really hard to do when programming with PHP.
Server upgrades haven't been so smooth lately. We've been upgrading the Iodynamics core servers to Fedora Core 4, but it just seems like every upgrade we do something goes wrong.
Today, for example, Adam and I are upgrading what is, perhaps, the most essential server for the company: castro. I decided we should upgrade some hardware while we're at it and maybe that was a bad move on my part. Maybe we should have stuck with the hardware that had been working fine.
It's raining outside.
Anyway, we threw in a new motherboard and CPU and started the reinstall process with FC4. As soon as the drive formatting was complete and the install was about to start... Kernel panic. It happened every time.
The panic message said something about journalling. That indicates to me there's a problem with the kernel's interaction with the ext3 filesystems on the hard disks. Very strange considering the hard disks have been running fine.
Adam and I thought maybe the problem was due to bad memory (which was also odd considering the memory was also in the previous motherboard). We ran a memory test regardless. No errors.
The CPU temperature was pretty high: 85° C. The fan was seated well and turning when the system was turned on. The heatsink was getting real hot. Very weird.
I just sent Adam to a local computer store to get two new hard drives, more RAM, some thermal goo, and possibly a new fan. We'll see how it turns out.
(Time passes.)
Adam returned. We attached the new hard drives (SATA drives to replace the aging PATA drives) and the motherboard's onboard SATA controller BIOS won't POST. We tried EVERYTHING to get that SATA BIOS to POST and it wouldn't. We even used a USB keychain drive to update the BIOS on the motherboard, but that didn't seem to affect anything (i.e. it was already running the latest and greatest BIOS.)
So. Adam set out again... this time, to our office, to get yet-another motherboard -- one that we know works because Adam's been using it in his workstation at the office.
It's been nearly five hours since we started. Hopefully, this will be the last hurdle.












