A new kind of job
Submitted by Steve Simms on Sat, 08/16/2008 - 11:55pm.This has been a weird week for me.
On the one hand, the number of mailings sent this week comes in at #7 for all time, which is not bad at all for a summer week (being closed last week certainly helped).
On the other hand, I was barely involved in any of them. I did proofreading on roughly two mailings (one of which was a postcard, so that barely counts), and I only read a few others because I happened to be walking by the staging area while they were there, and I was curious what their writers were up to. For the majority, my only involvement was putting together the invoices, and trying to suppress the “did you remember to…” urge.
This is going to take some getting used to. Over the past few years, I’ve read literally thousands of prayer letters (it’s a neat job), and my days have been more or less defined by what shows up on my work list. Monday’s the busy proofreading day, Tuesday’s the heavy output day, Wednesday-Friday show declining amounts of work and are therefore the best days for meetings, and so on.
Now, rather than doing all the work myself, my task is to make sure Kevin has everything he needs (training, supplies, background knowledge, environment, etc.) to do the work. Beyond that, which doesn’t take as long — particularly on Mondays — I need to figure out what to do with myself.
Not that there’s any shortage of other things to do, and not that I’m just twiddling my thumbs, by any means.
But my schedule is much less defined than it was even a month ago, when I was still involved in some sense with every letter, even if I wasn’t doing most of the work then, either. And I didn’t view it as being very defined even when I was doing all the work. So I need to be careful to enforce some level of discipline that isn’t being forced on me by the work itself. Otherwise, it’ll be too easy to fritter away time on things that I don’t really care about.
Loosely, I want to be dividing my available (work) time into the following main areas:
New product development. I have a ton of ideas of things to implement, and need to choose and create one that will help fund the creation of the others.
Existing product enhancement. There are areas of the mailing service that could be improved, and in some areas, there’s a lot of room for improvement. There are also a number of things that I need to change from the operator’s perspective so that Kevin doesn’t need access to some of the arcane and obscure knowledge in my head that I only know because I wrote the code that he’s using, particularly when it comes to importing mailing lists (very powerful code; not so user-friendly).
CCC involvement. Beyond being keeper of the checkbook, enforcer of the budget, and discoverer of really obscure financial policy oddities, I’d like to get a little more involved with people again. I miss that. Now that the class of ‘08 has graduated, I don’t really know any of the students. How time flies! I only tend to connect with a few students in a given class anyway, and it was a bit of a shock to be going to a thesis presentation for someone I clearly remember staying up all night with during C&R her freshman year, playing cards outside Mid Mass while making sure nobody ran off with the tent.
Infrastructure. The process of ensuring that nothing is going to break under load, that everything is reasonably secure, and that people who work for me can enjoy doing so. This is less of a pressing concern than it has been in the past, now that cash flow isn’t a nail-biting issue, but it still needs time and attention.
Other stuff. I want to work on some skills and areas that I haven’t given much attention in ages. More on that some other time, perhaps.
That’s what I want to be doing. Now I just need to figure out how to structure my time to be most effective in doing so. And get used to the idea of not being completely up on the missionary endeavors of several hundred people.
A Public Service Postal Announcement
Submitted by Steve Simms on Thu, 08/14/2008 - 2:03pm.Here’s another in a series of postal announcements that are so far from having anything to do with my business, I feel inclined to promote them:
Day-Old Poultry
We [the postal service] revised [the Domestic Mail Manual, section] 601.9.3.2 to add day-old emu chicks to the list of poultry accepted for mailing.
So, if you’ve been chomping at the bit to send day-old emu chicks to all your friends, now you can.
If you’re not into mailing chickens, you can also pay for your P.O. Box online as of this month, rather than needing to do it in person at the post office. So don’t go saying I don’t write anything useful here. :-)
You know your computer is slow when...
Submitted by Steve Simms on Mon, 08/11/2008 - 2:28pm.…running software remotely on a server in Texas (from New Hampshire) is faster than running it on the computer that’s in front of you…
OSCON 2008 Reflections, Part 3
Submitted by Steve Simms on Sun, 07/27/2008 - 4:00pm.Perl is an insane language. I love it.
I’m guessing that there are very few languages that can be made to interpret rod logic, as shown by Damian Conway during the opening night’s keynote (or Latin, or Klingon, to highlight other talks he’s done), nor are there all that many languages that let you write positronic variables that let you return results before you’ve calculated them (same talk).
But even if you discount the things you can do with filters, how many languages let you do something like this:
*{";\n"} = sub { print something }
In case you’re not familiar with some of the lesser used Perl syntax rules, that says “make a function called ‘semicolon newline’ and have it print ‘something’ whenever it’s called.”
That will probably result in a “so what” response from the non-techies reading this, but it should cause a certain tightening of the stomach and a feeling of low-level despair to any programmers reading this, possibly with a little jaw-dropping, once they realize what it means. (Hint: What is at the end of every statement in most languages?) And maybe some anti-Perl flaming for even allowing such a thing (don’t worry, it gets worse — for the C/C++ programmers out there, you can also name a function “\0”). But you can write Fortran in any language.
Back in 2004, I attended a tutorial called Perl Best Practices. This year, I attended Perl Worst Practices. Damian C. commented that we must be the smartest, cleverest people at the conference to have convinced our bosses to let us attend a three-hour tutorial with that title. I’m not sure what that says for me. Other talks included Perl Security and The Twilight Perl (showing that things that should be syntactically impossible really aren’t).
What’s neat about Perl’s insanity is that it let’s you do practically whatever you want. Even if you shouldn’t. Even if 99.999% of the time it’s a monumentally dumb idea. And that allows best practices to be developed and codified over time, rather than being limitations imposed by the language (there is that 0.001% where it’s the perfect solution, and saves you days of writing workarounds). This is increasingly becoming a defining point of the Perl community, once you get away from the people who treat Perl like stereotypical PHP.
Learning some of these crazy tricks, while hopefully not the sort of thing you’d ever use in production, gives you a better understanding of the language. If nothing else, that can be really helpful for debugging, or if you ever have to maintain someone else’s code (or code that you’ve written more than six months ago).
Because, once you’ve spent three hours going through SelfGOL statement by statement, there’s probably not much that an inexperienced or undisciplined coder can do to scare you.
Outside of the Perl world, one of my goals for the conference was to get a better understanding of Ruby, since it’s getting a lot of attention. Well, I tried to be open-minded, but even the presenter reinforced that it’s still a relatively new and untried language that’s going through a fair bit of change as it’s maturing, and the syntax didn’t seem all that better when considering code to line noise.
The “fair bit of change” description is especially true for Ruby’s frameworks. Not that Perl doesn’t have its own problems with frameworks (it does, and I may write some thoughts on that at some point, since they’re mostly not safe to use, either), but Rails is probably the main selling point that Ruby has, to the point of being synonymous to a lot of people, and it’s still very much a moving target, without enough of an emphasis on backwards compatibility.
That makes it a very bad choice for any program that you want to stick around for a while, unless you’re willing to invest a lot of your energy in keeping up with the changes to your underlying framework, rather than enhancing your own code (that’s my big problem with Drupal as well, despite my really wanting to like it).
But lest I be accused of having a bias against anything that isn’t Perl, I did come out of the conference with an interest in learning more about the Mozilla framework, along with a renewed desire to help in at least QA with that project, with the hope of eventually getting to know it well enough to write some client software using its tools. And I went to a good session that did an introductory overview of C, since that’s a definite area of weakness in my skill set at the moment. I probably should have attended a Python session as well, but there are only so many timeslots available. Maybe I can set that as a goal for next time.
All in all, I think I was only in one session that was particularly bad. Otherwise, there was a huge range of quality, but I didn’t find myself wishing I had gone to a different session instead. So that was definitely a win.
More on speakers and presentation styles next time.
OSCON 2008 Reflections, Part 2
Submitted by Steve Simms on Sat, 07/26/2008 - 1:00pm.Part 1 was a generic overview of my experience at OSCON this year. In short, I had been looking forward to this conference for about three years, and I wasn’t disappointed.
An event like this would probably be an anthropologist’s or sociologist’s dream study. Get over a thousand mostly highly focused, technical people, 80%+ of whom are introverted, statistically speaking, all with a fairly narrow similar interest, and put them all in one place to see what happens. It’s a lot of fun.
What happens is that a large number of them open up. They’re finally among people who understand them. They have conversations with complete strangers, almost like they were extroverted. (It helps that there are some extroverted people to act as catalysts.) They have that common understanding with these people that they lack with “normal” people, defined as roughly 99% of the rest of the world.
If you think I might be exaggerating, consider this — how many conferences have a “People” track, wherein many of the sessions in that track are related to how to get along with and interact with other people? (And some of them, based on overheard feedback, included practices that many would consider pretty fundamental, like, oh, say, the importance of showering.) That’s how bad geeks can be, in general.
One of the better talks that I did end up attending in that track (while speaker-following) had as one of its titles “Hacking Wetware.” For the uninitiated, “wetware” == “humans”. Oh, and hacking can be more or less defined as “getting to understand at a fundamental level,” not as “breaking in and destroying” or “doing evil things”.
Among other things, including using The Sims as its overarching point of reference, it featured the gem of explaining the stereotypical greeting using the TCP three-way handshake:
- Hi, how are you doing? (SYN)
- Good (ACK), and you? (SYN)
- Good, thanks for asking. (ACK)
It’s great because it lines up so perfectly with the point of the greeting — you really don’t care how people are doing, you’re just establishing communication. I admit, I poke fun at people rather often by either changing or abbreviating line two, and watching them completely miss it. Though, the best one I witnessed was actually done by Christine at a restaurant, when she answered “Wet” (it was raining outside), to which the hapless greeter replied “I’m so glad to hear it. I’m fine.”
Anyway, back to geek-watching. My flight to OSCON was a somewhat poorly thought-through one-stop flight from Manchester to Portland with a layover in Philadelphia. Timing-wise, it worked well, but I hadn’t thought about the fact that Philadelphia is further from Portland than Manchester, which made for a really long second flight.
While in Philadelphia, it occurred to me that there was a decent chance that I might be able to spot other people who would be going to OSCON. So the game became how to spot them. (I did this last year for the National Postal Forum. There was a whole group of postal service employees on my flight.)
An observation that I made some time ago with regard to Christian conferences is that you can usually tell by what t-shirts people are wearing. Christians know that they’re not going to face much of any persecution while at such a conference, so they tend to wear all their religious stuff there. (This isn’t just a religious thing — you wouldn’t walk into a bar in Boston wearing a Yankees cap and jersey without expecting some persecution, and possibly higher prices.)
So, one person made it easy. He was wearing a t-shirt that asked “What’s your uptime?” Easy tell.
Looking at another person, I got the sense that he was a geek, but initially wasn’t sure. Right demeanor, right dress, right luggage, but nothing definite. It wasn’t until we both got on the same train to get to our (same) hotel that I noticed the subtle giveaway — he had a glider from Conway’s Game of Life sewn on his messenger bag. There’s no mistaking that, but only if you’re “in”. Turns out he’s a Perl geek, too, based on the sessions we were both in.
Back to sociology. The other thing that was amusing (and which I practiced a fair bit) was that you can completely ignore people and it’s perfectly fine. As was noted while the speaker was talking about the three-way handshake, idle chit-chat isn’t a strong point of geeks, since many don’t see the point (it’s a pragmatic thing). On the other hand, you could dive right into one of the topics of the day and that was also fine. Never mind that you hadn’t introduced yourself.
One thing I didn’t practice was the habit of a lot of people in the audience to spend the entire session on their laptops. Some were live-blogging the sessions, some were chatting on IRC about the speaker (there was apparently at least one instance of buzzword-bingo during a keynote), and who knows what others were doing. It wasn’t particularly distracting, so it’s not a complaint. Since I didn’t know anyone at the conference, I didn’t have any incentive to join in. Plus, my goal was to focus on the content of the talks, along with how it was being presented.
Let’s see, conference topics are the next thing to cover, but I’ll save that for next time.
OSCON 2008 Reflections, Part 1
Submitted by Steve Simms on Fri, 07/25/2008 - 10:00pm.O’Reilly’s Open Source Convention is now over for 2008, and I now have the rest of the day to relax, rest, and reflect before my flight tomorrow.
I ended up doing a lot of reflecting, so in the interest of not publishing a novel in one chapter, I broke this post up into several parts, and will post them more or less daily (if I remember) over the next few days.
Christine commented that I’ve effectively been off the grid this week, and that’s been mostly true. I’ve handled a few E-Mails, mostly customer-related, but otherwise I’ve been a lot less available than even the last time I was here.
That’s mildly odd, because I’ve also been a good bit less social this time around (last time I hung out a lot with the PostgreSQL folks; this time, other than an evening with the Mozilla QA people and a Birds-of-a-Feather session on open source in churches and missions, I barely spoke with anyone).
On the other hand, I was personally paying for this conference, whereas the last one was paid for by my former employer, so I had a lot more incentive to squeeze every penny of value out of the conference that I could. Not that I was slacking off the last time, by any stretch. Which is exactly why I’ve gotten a few “Hello?” E-Mails this week, I suppose.
I don’t think I learned as much this time as I did last time, on an absolute scale. That doesn’t really surprise me — I knew a lot less last time, and I’ve spent the past four years working on expanding on what I picked up from that conference. But the sessions at this conference did do a lot to fill in gaps and refine my knowledge, and would have been worth it for that reason alone.
One thing I learned last time was that it can be a better use of time to follow certain speakers around than just picking sessions off the chart based on topic. Quite simply, this is because some speakers can make any topic a worthwhile learning experience, while other speakers haven’t spent enough time learning about speaking to be able to effectively present even an interesting topic.
That was borne out this time as well. After the first day of the conference, I decided to follow Paul Fenwick of Perl Training Australia, to the extent that I watched him give the same talk twice. He was probably the best presenter at the conference this year, at least that I saw. His presentation style is fairly similar to Damian Conway’s (another person on my “follow” list).
A mildly related observation is that you know you picked a good (or at least an esoteric) session on Perl when Larry Wall is in the audience. For any CCC people reading this, that would be roughly akin to you giving a talk on the Four Spiritual Laws and having Bill Bright sitting in the first or second row, watching and listening attentively. So, Tim Bunce (of DBI fame) made it onto my “follow” list after that session, too. His presentations weren’t of the same caliber as the other two (few are), but they were very useful.
Speaking of usefulness, I skipped nearly all of the keynotes, except when Damian C. and Paul F. were presenting. Maybe it’s that open source is more of a pragmatic consideration for me than it is an ideological one, though I suspect that at least some of the keynotes were paid advertising. In any case, they didn’t seem all that interesting, and I heard at least a few others (who did attend) say the same thing. This had the added benefit that it let me sleep in.
Oh, and speaking of sleep, having a conference in Portland, OR was really nice once I got here. It meant that an 8:30am start time was actually an 11:30am start time as far as my physiology is concerned, which is a much better time for a morning session for geeks to start, in my opinion.
And that’s probably enough for one post. Observations on geek anthropology, conference topics, and presentation styles will be coming up subsequently.
Five years being Technically Sound
Submitted by Steve Simms on Fri, 07/11/2008 - 11:52pm.Technically Sound has been around for five years as of today.
This would probably be a good time to reminisce about milestones and interesting things that have happened over the past years, including such things as deciding to experiment with sending prayer letters for multiple missionaries, quitting my day job less than a year later, renting various offices and houses where my main concern is the main circuit breaker’s capacity, and so on… Bootstrapping a business on roughly $200 of startup capital is such an odd thing, and there are so many stories that could be told.
If I did that, though, by the time I finished writing, it wouldn’t be “today” any more. Suffice it to say that there’s nothing I’d rather be doing, and the prospects for growth are looking really good right now.
Having a couple of trained employees, along with the lull in work during the summer, is allowing me to spend quite a lot of time planning for the future and working on a new service, both of which have been keeping me up at night, but in a good way. :-) I’m more eager than ever to be working on enhancements to the service and keeping up with growth.
Actually, that’s largely why I’ve been so scarce here. I could write on deefs.net, or I could write code. Code wins out almost every time, especially when the projects are fun to work on!
So, with that, I’m going to sign off, and maybe write a little more code or do a little more planning before I call it a night.
Happy birthday, Technically Sound!
On File Naming Schemes
Submitted by Steve Simms on Mon, 06/23/2008 - 10:26am.Here’s the main reason why my file naming scheme can never be to just use the names that my customers use:
- June08prayerltr.pub
- Response Sheet.docx
- May Letter - year in review.doc
- June 2008 prayer letter postcard.pub
- june 08.pub
- June 08 PL.pub
- June, 2008.doc
- June 2008a.doc
- May_June Prayer Letter.pdf
- Update June.pdf
These are all files that I have open right now.
This is pretty common throughout a given month. If I stuck all of those in the same directory, and tried pulling up the one I needed, it would be a disaster waiting to happen, besides the fact that I’d be constantly overwriting files.
Since I’ve started, I’ve been using lastname-YYYY-MM-DD.pdf (or .doc, or .pub, or whatever), and for the past few years, I’ve been creating a new directory for each month (named YYYY-MM), which is somewhat redundant with the filename, but it works, and I could combine the directories if I needed to, without running into problems.
It has a couple of drawbacks. It breaks down at the end of each month, when some files get submitted for a mailing on the last day of the month, and more files on the first of the next. Not a big deal, but it means going back and forth between directories, or just having files in the wrong directory.
Also, last year, I started running into the problem where two people with the last name (Smith, which should be no surprise to anyone) would send letters on the same day. So, in those cases, I appended the first letter of the first name to the list (so, smithj for a fictitious John Smith).
Then, there was the family where the parents are missionaries and so is at least one of the kids, and they both submitted letters on the same day, and they have the same first initial. So much for that solution.
When I got three Smiths on the same day, it was clearly time to think up a new naming scheme.
I haven’t implemented it yet, but my current plan is to have the software create and populate one directory per customer, with a “Common Files” directory (for signature images, frequently-used response cards, etc.) and one additional directory per mailing. Then, since the computer’s doing all the work and not me, I’m also planning on having it create file system links for all of the active (and maybe recently finished) mailings in another directory, so I’ll be able to work out of the one directory, and still have an easily-accessible archive.
That should help address the fairly rare case when I’m accidentally working in the wrong month’s directory, and open last month’s letter, or something like that. It’ll also mean fewer files to sort through on a daily basis, since the server will be archiving all of the finished files out of sight.
Proud to be #7,701,969
Submitted by Steve Simms on Wed, 05/28/2008 - 10:33pm.According to Alexa, anyway, that’s my business site’s traffic ranking, compared to all the other sites in the world, as of a couple days ago. (They do admit that rankings beyond 100,000 are somewhat less reliable indicators of reality.)
Still plenty of room for growth!
As Seen in a Letter: What a Bother
Submitted by Steve Simms on Thu, 04/10/2008 - 11:47am.Our Father in heaven has given [a gift] to me through God-fearing bothers that he placed in my life…
bothers -> brothers
Or, at least, so I hope, given that a later sentence is:
He is putting me into a position to do the same…
Although, he did make the same typo a little earlier, writing:
…he placed me into the hands of my Big bother T___…
