July 21, 2008
I do not think it means what you think it means
I’m in receipt of a Powerpoint document from an advertising network which will remain nameless. Leaving aside the question of whether Powerpoint is the appropriate medium for communicating the information it contains (I come down heavily on the side of “No”), let’s take a look at this question, apparently intended to find out something about our ability to handle a particular advertising campaign:
Does your web server have internet access? Can your web server view web pages?
If the web server doesn’t have internet access, our site will have serious difficulty reaching its audience. Whether or not the server software can be said to “view” pages is a complicated metaphysical question I’m not really prepared to consider at this point.
I think the sender meant to ask if the server could programmatically access resources located elsewhere on the internet, and the answer to that question is (I think) “Yes,” with trimmings. (I suppose I can imagine a scenario in which an overly-paranoid firewall prevented a server from accessing outside resources.)
But how would you answer that question if you were not at my level of technical experience? Guess?
Now Playing: Maps And Legends from Fables Of The Reconstruction by R.E.M.
Posted by pjm at 5:32 PM | Comments (0)
July 18, 2008
Skype indulges my geekery
Somewhere I picked up a habit, in IM conversations, of correcting myself using Perl syntax. (I think perl swiped this from awk or sed but I’m not that old; I learned it from Perl.) To clarify for less geeky people, that means that I would type something like
s/Oriten/Orient/
and expect it to be read as, “Oops, I fat-fingered the spelling of that word, here’s the correct version so you know what I meant.” The more literal interpretation of that syntax is “replace the first string with the second one.”
Imagine my surprise earlier this week when I did exactly this in a Skype IM conversation, and rather than having my little substitution shorthand turn up in the chat window, it actually edited my preceding message and added a little flag saying the message had been edited.
I’ve found myself wishing more than once that I could have shell access to life, instead of being completely limited to this visually-stimulating-but-inefficient audio/visual interface, and for one brief second Skype brought that dream a baby-step closer to reality.
Now Playing: Tellin’ Stories from Tellin’ Stories by The Charlatans
Posted by pjm at 3:12 PM | Comments (1)
July 17, 2008
Getting priorities in line
How great is going for a run?
Well, I can leave thinking about proportional reactions to different degrees of crisis, and come back thinking about all the steps I would need to set up an SSH tunnel to an HTTP proxy; in other words, to bypass the Great Firewall of China, if it works.
(I’ll post the steps when I get back… if it works.)
Now Playing: Waiting from Inarticulate Nature Boy by Josh Clayton-Felt
Posted by pjm at 9:40 AM | Comments (1)
July 13, 2008
How you use the storage space
At some point in Eugene, I was discussing with a colleague the differing approaches people take to popular culture. (One which came up, since I mentioned Mountains Beyond Mountains, was how Paul Farmer referred to People magazine as the “Journal of Popular Studies”, or JPS.)
At some point I asserted that since I have a head full of professional knowledge for my “real” job, my track-writing sideline occupied all the head space ordinary people filled with pop-culture trivia. I illustrated this by pointing out that I couldn’t name a single American Idol winner, but I could list the last 10 Olympic 10,000m gold medalists.
She then named all the American Idol winners, and I recited:
- Bekele (Athens)
- Gebrselassie (Sydney)
- Gebrselassie (Atlanta)
- Skah (over Chelimo, disputed) (Barcelona)
- Ngugi (Seoul)
- Cova (L.A.)
- Yifter (Moscow)
- Viren (Montreal)
- Viren (Munich)
…and blanked out on Mexico City. But Tokyo ‘64, of course, was Mills; I don’t have Rome or Melbourne, but Helsinki ‘52 and London ‘48, of course, were both Zatopek.
On doing some research, I blew Seoul, because that was Brahim Boutayeb. Ngugi won the 5,000m in Seoul. Mexico City was Naftali Temu of Kenya; Rome was Pyotr Bolotnikov and Melbourne Vladimir Kuts, both Soviets, which probably explains why their heroics were never imprinted on my brain.
(Yes, Now Playing is back—I have my offline editor speaking to my system once again.)
Now Playing: Bob Dylan’s 115th Nightmare by The Gay Blades
Posted by pjm at 10:34 PM | Comments (0)
July 11, 2008
Selective tone-deafness
I recently realized that there are some people I just can’t communicate easily with. They’re generally people I like (on reflection, the group probably includes people I’ve dated) and yet somehow I’m continually (unintentionally) stepping on their metaphorical toes.
If this was one or two people, I’d want to blame it on them (over-sensitive). If it was everyone (and it’s not) I could blame myself (socially inept). But it’s neither, so there must be a more sophisticated reason.
Posted by pjm at 5:14 PM | Comments (0)
June 28, 2008
A brief word from our producer
I’m pretty busy here. I may find time to write a few graphs now and then, but I may not, so not all my good ideas for this space may make it. I regret the incompleteness, but I never promised comprehensiveness here.
Posted by pjm at 12:13 PM | Comments (0)
June 22, 2008
Forking a college
This weekend was A’s sister’s wedding. The groom is a CS professor at my College’s biggest rival in nearly everything—an old, cherished rivalry as close and heated as only two nearly-identical institutions can manage.
Early in the weekend I overheard him (I think I was meant to overhear) remarking that the College was an “offshoot” of theirs. This is not far from the truth; the College’s founding was made possible by the defection of their president and many of their faculty, who considered their location too remote and advocated its wholesale relocation to Amherst.
Failing that relocation, they arranged, with many of the leading citizens of this town (including Noah Webster, he of the dictionary, and Emily Dickinson’s grandfather Samuel,) to launch a new college. I’ve taken a lot of words to explain this (and the Wikipedia links above use even more), but as usual, the hacker culture has boiled it down into a two-word phrase.
I think the founding of the College may have been one of the earliest code forks.
Posted by pjm at 8:54 PM | Comments (0)
June 21, 2008
Pocket characterizations
I wear dress clothes so infrequently that when I pull out a jacket, I dip in the pockets to discover when I last wore it. Generally I discover a place card from a wedding reception, but not always; yesterday, my suit’s jacket revealed only a large square of moleskin, suggesting that whichever occasion I had last worn it had included uncomfortable dress shoes. (I recently invested in respectable-looking shoes I can wear for a day without resorting to moleskin.)
The blue blazer has seen much more use in the last year, between my new career impersonating a businessman and my tendency to bring it to major meets to be prepared for official receptions and the like. It’s easier to wear a jacket like that than to pack it.
As a result, checking those pockets revealed a cash receipt (in Euros) from a shop in the Milan airport, and a schedule for Metro North trains between Grand Central and New Haven.
Posted by pjm at 3:05 PM | Comments (1)
June 17, 2008
Finding the right venue
A lot of modern technology, for me, seems to be about setting up the right venue. For example, “podcasting” struck me as a faddish buzzword until I discovered that it also means “time-shifting NPR” and that having a load of podcasts on my iPod meant actually keeping the part of my brain that gets bored engaged on long drives. (I might have discovered this sooner if I drove anywhere on a regular basis.)
Today I discovered that I can make necessary phone calls if I’m walking somewhere. I can’t do it while seated in the house, or anything like that, but if I’m walking, no problem.
I don’t know what this means; maybe I don’t want to.
Posted by pjm at 8:09 PM | Comments (0)
Not a bad idea
I like it when testing web apps for work involves setting up some cool little surprises.
(It’s less fun when the tests don’t work, of course, but it’s a cool idea.)
Posted by pjm at 8:07 PM | Comments (0)
June 16, 2008
Learning from everywhere
There’s something about the door to this house that eats deadbolts. Maybe it’s just our luck. The puzzle, though, is that there are two deadbolts, and it is the owner’s wish that they use the same key.
The deadbolt in the door when we first moved in reached End Of Life not long after we arrived; I found myself clamping two chunks of a hockey stick (used for propping windows on the porch) around my key to get enough leverage to move it. Rather than wait on the owner (long story) I just bought a (relatively cheap) deadbolt and replaced it. Then I realized we would need another one, keyed the same way, and I had to find another one. This failed and I ended up having another one re-keyed to match.
This worked fine for a while, but recently A locked the door on the way out and found she couldn’t remove her key. It turned out that the tailpiece of the new lock had snapped off, killing that lock.
If you’re keeping score, that’s two non-working locks and two working locks, with two sets of keys; each set of keys works on one working lock and a non-working lock.
The temporary measure was to bring the older working lock up from the basement and rearrange the locks so the doors weren’t keyed-alike, but at least had working locks. Last week I happened on a pair of keyed-alike deadbolts, the brand of the original locks, and snapped them up in a second. When I got them home, I realized that these locks were keyed both sides, not keyed on one side and latch on the other.
(I’m not sure when one would use a lock like this. When is it important for a door to be locked to people on both sides? Particularly if a person on the “inner” side with a screwdriver could remove the lock entirely?)
I looked to see if I could just swap the old latch plates with the inner cylinders, but the tailpieces didn’t match up. Fortunately for me, I had the internet in my toolbox. Two searches produced, first, the manufacturer’s manual for re-keying these locks, including an illustration describing how to remove the tailpieces with a special tool.
(That also taught me that those pieces are called “tailpieces”, and also how the locks themselves worked. I briefly considered re-keying the locks to work with the key to my parents’ house, but thought better of it. I actually took apart the cylinder mechanism of one of the old locks and put it together again so it worked; I’m tempted, now, to try to clean out the frozen one and bring it back into working order.)
Second, a lock-picking site (yes, there are lock-picking sites) describing how to remove tailpieces without the special tool, or at least confirming that it was possible, and I was in business. I put the tailpieces of the original locks on the outer cylinders of my newest locks, and then used otherwise original equipment all around. And I know about three times as much about deadbolts than I did this morning.
Posted by pjm at 9:26 PM | Comments (1)
Recipe for disaster
On the bag of brown rice, I noticed a small block of text headed, “Microwave Directions.”
Hoping that might be slightly simpler than the stovetop directions (boil water, add rice, then oscillate between too much heat and no heat until bored or rice is cooked to bottom of pan), I skimmed through. It included the phrase, “Cook 35-45 minutes.”
I’m a little alarmed at the idea of leaving anything in the microwave for a half hour or more.
Posted by pjm at 6:47 PM | Comments (0)
June 12, 2008
Sudo says
As of yesterday, I have now had to explain my sudo make me a sandwich t-shirt twice, both times to non-computer people. (Yesterday, it was the ART therapist.) As the Times noted, it’s not an easy joke to explain to people who aren’t already familiar with sudo (which may be best understood as a sort of “Simon Says” command for when the computer refuses to do something you asked it for.) The cartoonist brings up the old E.B. White saying about explaining jokes (“Analyzing humor is like dissecting a frog. Few people are interested and the frog dies of it.”) which is one of my favorites.
I’m a little disappointed that “/Everybody stand back/ I know regular expressions” hasn’t had anywhere near the same level of interest.
Posted by pjm at 10:27 AM | Comments (0)
May 27, 2008
The advantages of engineering schools
I got email from the University’s alumni office just now, inviting me to a seminar titled “Networking for Introverts: why does it have to be so hard?”
This is not a seminar I would expect from the College, and I have to wonder if the presence of engineering programs at the University accounts for that difference. (More likely it’s simply the size difference between the two institutions.)
I also have to wonder about the potential attendance at a seminar expressly targeted at people who “avoid networking events so [we] won’t have to talk to strangers.” Isn’t that like trying to start a procrastinator’s meeting on time?
Posted by pjm at 1:57 PM | Comments (0)
May 11, 2008
Well, that explains a lot
Remember how I was complaining about all the ringtone spam which appeared to be pointed at this site, apparently causing me to drop in the search rankings? I was puzzled, at the time, by the inbound links; why would anyone link to this domain for spammy content which wasn’t here?
This afternoon, while I was backing up the site in preparation for a server move, I found four different locations on the site where loads of files had been hidden, most of them set up to look like a big blog about… ringtones. Or some other thing people spam for a lot. The files were mostly datestamped around January or February of this year. Some of them were hidden in directories named with a leading dot, which made them invisible in listings unless they were specifically requested; others were simply stuffed in with valid files. It looks like there was something to that ringtone stuff after all.
It could’ve been a lot worse; because of the placement of most of the files, they were not listed in my XML sitemap, nor were they in frequently-updated directories.
I’ve deleted the files, and as I was moving the site anyway, most of the passwords will become invalid soon. I simply accelerated my move process. But it’s not at all clear to me how the files got there.
Or, for that matter, if I’ll be able to convince Google that I’m not a spammer. Any more, anyway.
Posted by pjm at 3:23 PM | Comments (0)
May 9, 2008
You really do have to be able to spell
We’ve been watching the classified ads for office space in the area. You seldom see a listing with all the useful information (e.g. it will mention the location and price but not square footage) and we wind up sending a lot of email to filter out stuff that isn’t useful to us.
The other day we heard from one potential landlord that the space advertised was part of a “three-office suit.” Since then I have decided that the spare bedroom I split with A as an office must be a “one-office suit.” And I wonder, is a three-office suit an office drone who has multiple workplaces?
Now Playing: Helpless by Electric Light Orchestra
Posted by pjm at 1:21 PM | Comments (0)
April 30, 2008
I hate Windows
You already knew that, but I want to vent.
I want to run a perl script on a server once an hour, all the time. On a Linux (or, for that matter, Mac) server, I could just set up cron to run the script hourly, or every third minute, or every seventh minute if I cared that much. (Anyone without the know-how to manage cron wouldn’t have written a perl script which needs hourly running.)
On a Windows server, the most reliable way to do this is using Windows’ built-in Scheduled Tasks. Scheduled Tasks can only run once a day, so I have to set up twenty-four identical Tasks, one for each hour. Tedious, particularly since they can’t be cut-and-pasted and must be created by Wizard, but not such a big deal. I need to provide the Administrator password (twice) to set up the task. And then, since I need to open the Advanced Properties in order to give a command-line argument to the script, I need to provide the Administrator password two more times, making a total of four for every task and a grand total of ninety-six password entries.
Honestly, I’d rather read cron manual pages.
Update: Right, so after I make all 24 tasks, I discover that in the Advanced Properties section of each job, the job can be scheduled to repeat at intervals. So we only need one job, but the wizard is worthless and I still hate Windows.
Now Playing: My Love by Auktyon
Posted by pjm at 2:36 PM | Comments (1)
"A screen that ships without a mouse ships broken"
Jeremy Zawodny links to a Web 2.0 conference presentation by Clay Shirky about what Shirky calls “the cognitive surplus.” It can largely be boiled down to this: that whenever anyone asks, about the massive user-driven online projects (e.g. Wikipedia), “Where do they find the time for all this?” the answer is, generally, “They watch less television.”
Or at least, they see television differently than they used to. (See the title quote, a summary of how at least one anecdotal four-year-old views television.) I seldom, if ever, watch television; I try to keep this to myself, because it’s the sort of statement that makes people accuse you of trying to be superior (or simply acting smug.) I know people who do, but only in the context of other activities, not in the old context of simply sitting and watching. I can’t promise that I’m always doing interesting things with this extra time, though seven or eight hours of running every week may be part of it.
The difference, Shirky explains, is that we’re no longer afraid of what to do with our brain when we’re not working, and we don’t feel the need to hide in passive entertainment. We’re increasingly able to choose how we use that “cognitive surplus”, and when a project like Wikipedia can get a few billion of those brain-hours, it can do impressive (if not necessarily always accurate) things. It’s an interesting theory, and one that may not be provable, but if he’s right, the TV people had better be looking around to figure out where they fit in to this new world.
But don’t take my word for it; take Shirky’s.
Now Playing: The Obscenity Prayer by Rodney Crowell
Posted by pjm at 1:37 PM | Comments (0)
April 9, 2008
What I did with my day other than writing anything here
I merged a branch in and pushed a big revision to the La Cucina Italiana website. There are now recipes available—by which I mean, about 1% of all the recipes they have available, but that’s just the start, of course.
If you’re interested in reading me geek out for a few hundred words about asset hosts and revision control, that’s possible, too.
Now Playing: The Reasons from Reconstruction Site by The Weakerthans
Posted by pjm at 9:00 PM | Comments (0)
March 31, 2008
Tax preparation software still stinks
They say one of the definitions of insanity is repeating the same process and expecting different results. Clearly I need to abandon the idea of doing my own taxes using software, and start paying a professional, because while the software is slightly cheaper, it tends to raise my blood pressure.
After last year’s mess with H&R Block’s TaxCut, I went back to Intuit’s TurboTax this year. The TurboTax name is applied to both an online service and a desktop program. I got a CD for the desktop program in the mail (unsolicited; Intuit is apparently the new AOL), and the process works like this: you install the software, plug in all your data, and then you buy a license before you can print or e-file. This is either brilliant (users’ data is already captive in the program, and they’ve invested several hours in Intuit’s software) or a really bad idea (when we call to “buy” the software, we’re already angry about our taxes.)
We’ll leave aside the mess which is my taxes (getting a significant chunk of income from an organization based in Monaco does not do wonders for your return) and get right to this “purchase” process.
There is no online option. You call a 1-800 number, beep through an automatic tree, state your name, key in your credit card number, and get a sixteen-character confirmation code. You’re also told to use the last four digits of your card number as a verification number, so presumably part of this confirmation code is a hash of the credit card number.
I had to re-play the confirmation number four times, and still was unsure about one character. (Was that a “B”, a “C”, or a “D”? Or an “E”? Or even a 3?) I figured the margin of options was small enough that I could brute-force it. Then I hit the next snag, which was this verification number.
Despite the instructions on the phone, the software says, “Enter 1234 for your verification code here.” Needless to say, this engenders some confusion.
So, after six or eight failed attempts to plug in this ridiculous code, I sent an email to Intuit’s customer support website, and was promised a response within 24 hours.
Well, I got a response within twelve hours, but apparently Intuit needs to outsource their customer service to a higher-quality firm, because the response not only fails to be helpful, it is so replete with non sequiturs and grammatical problems that it actually makes no sense. Don’t believe me? Here’s the full text, with only my identifying details redacted:
Thank you for contacting TurboTax Customer Service & Support.
I do understand that you were unable to successfully enter the provided confirmation code in the program.
Going back to your concern [name], It’s my pleasure to help you on this matter. Actually, you can still use your Turbotax Deluxe 2007 on your Mac Computer without putting some information or register from the CD. You can just pass that particular interview screen.
However, If you still want to register or put information, you can just Uninstall and Reinstall the program.
Take note: If you’re going to uninstall your Turbotax program on your computer, please save and back-up your tax data file.
Title: Back Up Your Return (Mac)
URL: http://turbotax.intuit.com/support/kb/printing-mailing-saving/saving-backing-up/3784.htmlTo better assist you, kindly dont hesitate call our GS ( Getting Started ) Department:1-888 777-3103 from 8 am to 5 pm Pacific Time, Monday through Friday and you will be answered by our helpful and friendly Technical Support Representative.
I am glad to have assisted you today. You may receive a survey from us through e-mail in approximately 24 hours asking you about my performance on today’s contact, as well as comments you may have in regards to the TurboTax product. So we can continue with our promise to provide our customers with the best support available, please take a few minutes to complete the survey.
Have a great day ahead
Is it me, or is the second paragraph suggesting that I can simply bypass registration?
Can someone explain to me how reinstalling the software is going to help when I apparently have either a broken confirmation code or broken confirmation-code-verifying code?
Anyone who wishes to diagram the sentence beginning, “To better assist you…” is welcome to try. I think the results may be hallucinogenic.
I must say I am eagerly looking forward to this “survey through email.” I will do more than take a few minutes to complete it; I will lovingly detail all the specific aspects on which Intuit has simply failed to provide either a product which works as designed, or any useful support for this product.
If I could be certain my credit card hasn’t been charged, I would re-start my return tonight with TaxCut. I’d also like to repeat my plea from last year: can’t someone please make tax preparation software that doesn’t suck?
Update: A phone call to the number above resolved the problem; despite the “Pacific Time” red herring, the call center reached is almost certainly not in Pacific Time. The system did not recognize the case number assigned in my email, and there was a great deal of confusion surrounding the last time I allowed myself to be stripped of $50 by these charlatans, which was when I did my 2005 taxes. However, I can print my returns now.
Now Playing: Country Sad Ballad Man from Blur by Blur
Posted by pjm at 11:54 AM | Comments (2)
March 28, 2008
I like good grades
After I spent a chunk of yesterday figuring out how to make some work sites load significantly faster (think “twice as fast”) without a few little configuration changes, I thought I should apply the same process here. I ran YSlow on this site, and started with a grade of 68, a D. Unacceptable.
Unfortunately, since I don’t own the server this site runs on (yet) I don’t have total control over its configuration. For example, I can’t figure out how to ensure that the site stylesheet (all 2KB of it) get compressed before it’s sent to your browser. (This would be worth doing because the time it takes to Gzip a CSS file is more than reclaimed in the time saved downloading a notably smaller file.) However, I was able to add these three lines to the configuration:
FileETag none
ExpiresActive On
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
This means that the two files you do download along with the front page (the stylesheet and the image) will stay in your browser cache as long as you let them, or one year, whichever is shorter, which means you won’t need to request them every time you visit this page. Not a big deal for one visit, but over time, it adds up. And you’re coming back, right?
What really got me was a number of little JavaScript inclusions I added years ago in the name of boosting traffic, such as a Technorati widget which, on closer examination, I discovered isn’t even current. Dropping those took a number of relatively slow-loading scripts off the download list for the front page.
The result of this is that, even though fewer people are coming here, the pages will load more quickly for those who still are. And, probably more important to me, my grade is now an A (94). Which we all know stands for Acceptable.
Now Playing: Merry-Go-Round from All Shook Down by The Replacements
Posted by pjm at 9:15 PM | Comments (0)
March 24, 2008
It compiles if you hold your mouth right
Due largely to this post, I’ve spent some off-and-on time over the last eight weeks trying to make a particular obstinate Ruby library compile and install on my Mac. (Remember my adventures in Fortran?) Tonight I finally managed it, though I did wind up performing the software installation equivalent of getting in under the hood and banging around with a hammer.
I think the reason I finally succeeded tonight was that last night I gave up, opened an Ubuntu virtual machine in Parallels, and installed Ruby, Rails, the relevant library, and a working copy of my application there, resigned to doing all my developing and testing in a virtual machine.
Now I need to confront my deficient understanding of linear algebra.
Now Playing: Aside from Left and Leaving by The Weakerthans
Posted by pjm at 10:06 PM | Comments (0)
March 22, 2008
Where fine cooking and heavy metal collide
For this project, we had to ensure that certain functions work properly with the accented letters which crop up relatively often in Italian (as opposed to English, which operates on the philosophy that if you don’t already know how to pronounce the vowel in a word, you must be a foreigner anyway and should be forced to guess as a comedy performance. Written Russian addresses the problem by providing ten glyphs for vowels, but sometimes requires accent marks anyway).
The solution I came up with involved this policy: test cases must include röckdöts.
Posted by pjm at 12:54 PM | Comments (0)
March 19, 2008
It works on so many levels
As I watched the compiler working on the last software upgrade, I saw this go scrolling by on the terminal window:
compiling curses
I know what that really does, of course, but imagine the other interpretations!
Now Playing: People Of The Underground from Float Away With The Friday Night Gods by Marah
Posted by pjm at 10:38 AM | Comments (0)
February 23, 2008
Function poker
I found myself in a card game with some friends last night, and pretty early in the game I realized that I was finding “runs” in the cards which simply weren’t playable by normal rules. Most games only recognize runs where the run follows the function ƒ=1n, like 3-4-5. To me, holding 3-6-9 in any suit seems like it should count as a run as well, where ƒ=3n. Other functions would allow somewhat more esoteric runs (2-4-8 counts for ƒ=2n, for example, or a Fibonacci run could include 1-2-3, 2-3-5, 3-5-8, etc.) Maybe a specially-designated “wild” card could be the λ card which would allow one to use functions for runs? Now that would be a card game for geeks.
Posted by pjm at 8:35 AM | Comments (2)
February 14, 2008
More specifics about the good news
If you look at the domain at www.lacucinaitalianamagazine.com at the time I’m posting this, you’ll get redirected to a page on www.lacucinaitaliana.it, the pages of Italy’s oldest and most successful cooking magazine. If you look at them sometime in the afternoon of Friday, February 15th (“tomorrow” as I’m writing this) you should see the first stage of the site we’re building for their U.S. edition at work. (This is the “big, new job” I mentioned a few weeks ago.)
Monday we’ll start in on Phase Two. Phase One would’ve been much easier if we hadn’t spent quite so much time building foundation for Phase Two, but Phase Two is where we go from “just above the minimum you’d expect from a magazine’s website” to “hey, this is pretty cool,” so there’s plenty to do before our next big deadline.
Posted by pjm at 9:43 PM | Comments (1)
February 10, 2008
Polarity
I am giving some thought to the possibility that I simply reversed the wires on the battery connector for the Fuzz Face. While the wires on the other two pedals were red (positive) and black (negative), just like the battery connector, the wires on the Fuzz Face were black and white. I assumed that black was still negative and white was positive, but maybe not?
The problem now is, both my amp and my guitar have such finicky connectors that I was unable to get a note from the amp tonight, even without the Fuzz Face in the loop, so I haven’t been able to test. I’m tempted to use some 1/4” female to 1/8” male connectors (and a male-to-female adapter) to splice the pedal in between my MacBook and my computer speakers, because I know those work.
I’ve also started trying to map out the wiring schematic of the thing, just to figure out where to put the multi-meter to check connections.
Posted by pjm at 9:09 PM | Comments (0)
Surprised there are so few
So this photo is the only one on all of Flickr with the tag “thisonegoesto11”. I only found three more (all much less appropriate to the tag, in my opinion) by changing the digits to a word.
Posted by pjm at 11:10 AM | Comments (0)
February 2, 2008
Safer strategy: don't mention COBOL
My databases professor would frequently mention “the C word,” by which he meant COBOL. (“The F word,” of course, was FORTRAN.) I was thinking of this last night while wondering why a local company would be hiring a COBOL programmer. (The most probable answer, as it always is for COBOL, is support and maintenance of legacy green-screen applications in the finance and supply-chain-logistics areas. And the link was sent to me; I don’t make a habit of browsing the help-wanted ads.)
That led me to trying to remember when certain advances in computer technology actually happened. It’s sobering to realize I couldn’t always sit at a laptop at the kitchen table and tap out obscure rants to be stored on a server in Los Angeles via my own personal wireless network.
I first encountered Windows (3.1) on business desktops in high school, sometimes. It wasn’t until I was nearly out of college that Windows became something more than a program that ran on top of a command-line machine; I had classmates who went straight through college with entirely text-based computer experiences. (I was a Mac person from the beginning, of course, but being able to color-code folder icons was considered a marketable feature in graphic user interfaces then.)
This led me to how long green-screen applications have hung on. I was using one as late as summer 1992 at my summer job, and I know that application survived at least a year or two more. (The business stopped operating before the software did.) So, “only” fifteen years ago, or so, and GUIs didn’t take over many other applications until much later. We used dumb terminals connected to a DEC tower in a closed room elsewhere in the building. I’m pretty sure it ran ULTRIX; Linux, at the time, was the late-evening project of a Helsinki CS student, if that. I doubt anyone actually spent significant time in the ULTRIX shell, though, other than the one or two times I went browsing around to see if I could find anything I recognized.
I did discover vi but not emacs (which was a problem for me then, as I only learned to limp along in vi many years later). vi, with its smaller footprint, made more sense than the sprawling emacs (which, famously, even includes a therapist: M-x doctor) when disk space was at a premium.
Which brings me to the inevitable and tiresome conclusion: I have a USB flash drive, not even a very large flash drive, with as much disk space as the computer I graduated from college with. I burned that HDD onto a single CD-ROM when I retired the drive. You can put the entire filesystem of what we used to consider a mainframe on a pocket drive. Why decide between emacs and vi (or, for that matter, ed or nano or TextWrangler or TextMate or Eclipse or carefully calibrated butterflies which are built into emacs anyway) when you can have them all?
And the only thing I can come up with is, maybe it’s better if I just don’t think about COBOL. I have to compile a library which appears to be principally FORTRAN, though (actual entry in the documentation table of contents: “Contents of the tape”), so I can’t forget about that just yet.
Now Playing: Starry Eyes from Mutiny by Too Much Joy
Posted by pjm at 8:51 AM | Comments (0)
January 11, 2008
Died in a blogging accident
This research, while fascinating, seems like it would become invalid at the first derivative. I immediately wondered what the result for “elevator surfing” would be…
(As usual with XKCD, make sure you mouse over to read the “alt” text. And it appears that “I haven’t died in a knitting accident” has already become the hip shorthand for “sorry I haven’t written”.)
Now Playing: Wilderness from Angels of Destruction! by Marah
Posted by pjm at 9:15 AM | Comments (4)
January 8, 2008
The thirst for meaningless statistics
As of this writing, Common Running has 98 reviews distributed among some 400+ shoe models. If you’re like me, the very way I phrased that sentence led you to ask, “But how are they distributed?” They can’t possibly be random, right?
Noah borrows a phrase from Wired to describe the impulse to ask that question: Info Porn. We’re not immune, so I spent a few hours last night writing some code to rip the interesting data out of the CR database and slap it in to some Google Charts. The juicy stuff is here, but if you want the summary, Asics is the most-reviewed brand, and it has three of the top four most-reviewed shoe models, including #1, the GT-2120.
I also added some data to the pages which show details on the shoe models themselves. If you check that GT-2120 page, for example, you’ll see the average ratings for each of four areas, and the comments the reviewers made about the shoe.
You’ll also see a quirky little paragraph on some shoe pages which purports to give an average lifetime (in miles or kilometers) for a shoe model. It’s based on numbers reported by some of our reviewers, and I actually went a step beyond that to calculate a “price per mile/km” for such shoes. These numbers are not, at this stage, statistically significant, because there’s just not enough data, but if they were—a few dozen more reviews for each model might do it—they could be a real tool indicating “value” in a pair of running shoes. Imagine if you could compare the price-per-mile of several similar models!
Now Playing: One Kiss Goodnight by Lori McKenna
Posted by pjm at 9:53 PM | Comments (0)
December 19, 2007
Backup policy
When you do systems administration and are professionally paranoid, you think a lot about backup policies. In particular, you think about off-site backups. What’s the point of having a copy of something, for example, if you’re storing it in the same place as the original? If you’re backing up your financial data, and the house burns down with both original and backup, what was the point?*
This explains why my department head from my pre-grad-school job sent me email today asking whether the safe deposit box key they found in a drawer in my old office was mine. It also leads us to a corollary to the off-site-backups policy: remember where you stored the backup.
* Of course, there is a point to keeping backups close by, and that’s that off-site backups are inconvenient for restoring files. Most professional paranoids advise a borderline-obsessive-compulsive regimen which involves frequent (e.g. daily) backups stored on-site, with less frequent (e.g. weekly) backups stored off-site, thus avoiding the convenience-vs.-safety conflict with overkill, attempting to both have the backup cake and eat it too.
Now Playing: Pieces of the Sun from Pieces of the Sun by Test Your Reflex
Posted by pjm at 10:52 PM | Comments (0)
December 13, 2007
Unanswerable questions
I’d love to know why I’m getting (on average) two visits a day to this site, over the last week, referred by the search string site:flashesofpanic.com chain grease.
Sure, I’ve mentioned bike chain lubrication a few times (including alternate uses for the gunk, which seems to be when this all started) but why restrict the search to this site?
Now Playing: Saint Simon from Chutes Too Narrow by The Shins
Posted by pjm at 8:55 AM | Comments (0)
December 10, 2007
You are only as good as your tests
I’ve been getting the testing religion. This is one of those things where serious software engineers respond with something along the lines of, “You mean you’re only now discovering testing?!?” and everyone else says, “Huh?”
I’m not going to try to explain testing in detail, but the rough outline is that a testing infrastructure allows you to define a set of acceptable output parameters from a program, then run the test against the program every time you change it. This provides you with some warning if an “improvement” you made turns out to break the program. It’s a great tool for making more-reliable software, and there are some people who actually practice “test-driven development,” where the tests are written first, and then the programs created specifically to pass the tests.
There are drawbacks, of course. One is that you can spend as much time writing tests as writing “real” software. (The counter-argument is that you supposedly spend much less time bug-fixing or otherwise re-writing.) The one I’ve run up against lately is that the tests really do have to define the most-important facets of the tested program. At one point last week, I wrote a test, then wrote a stub method which passed the test but didn’t actually do any work.
Noah suggested that we really needed a t-shirt which reads, “You are only as good as your tests.” We went looking—surely on the whole vast ‘net such a thing is for sale—but according to Google, there’s only one other document with that exact phrase, and it’s a PDF. Clearly we need to create such a thing and offer it in the company store. If we had a company store.
Now Playing: Jimmy Olsen’s Blues from Pocket Full of Kryptonite by Spin Doctors
Posted by pjm at 9:14 AM | Comments (0)
December 6, 2007
Simple and useful
A few weeks ago, looking for some kind of technical issue, I stumbled across a site called My Mile Marker (or “M3” as the production team calls it.) It’s a very simple database application: you register a vehicle (no details needed, just a label that makes sense to you) and whenever you put gas in, you record the car’s current odometer reading, how many gallons you put in, and the per-gallon price you paid.
The output is a set of simple numbers: your average miles-per-gallon since you started using the site, your projected odometer reading in a year, and your projected gasoline expenses over the next year. There are also a set of simple graphs tracking your MPG over time (plotting the MPG for each fill-up, I assume) and your odometer readings. (This second graph would be more useful as a first derivative, I think: the slope of the line, i.e. miles-per-day, is more interesting than the absolute number.)
It’s very simple math, of course, and nothing you couldn’t build in an hour or less of bored-in-the-office time if you have decent Excel skills. But you don’t have to; it’s been done for you, now. The trick is that it’s simple (all I do is get a receipt when I fill up, and write the odometer reading on the back of the receipt; all the data is then on one slip of paper for later entry) and that it becomes a small, slowly-played game: can I run up my MPG? Can I trim that annual cost? I can look at the graph and see what makes the difference: more highway driving (i.e. trips to Amherst) than in-town, short-haul driving means better mileage on a tank. More city stoplights and traffic means worse mileage. Back on the bike, you slacker!
Now Playing: Something in the Way by Nicolai Dunger
Posted by pjm at 10:19 AM | Comments (0)
November 24, 2007
Some things can be fixed
Unlike my first iPod, the squeak in the bathroom door at the Amherst house can, in fact, be fixed.
I wouldn’t ordinarily be too disturbed by a squeaky door, but this one shrieked, and every time I closed or opened the door in the middle of the night I was sure I was waking up the whole house. My first instinct was to find a bottle of WD-40 and give the hinge a squirt, but fortunately there wasn’t one handy, and I had to do some research instead.
The best instructions I found pointed out that WD-40 isn’t much use as a lubricant (though it’s a great solvent for cleaning the hinges) and that my second guess, graphite powder (I didn’t have any of that handy, either) was likely to be a big mess.
Getting the pin out wasn’t too hard, but it was pretty grimy. I levered it out with a screwdriver to start, but I needed to tap the screwdriver pretty hard once or twice to get it un-jammed. Once it was out, I wiped it down first and then went at it with a small piece of sandpaper until it was pretty bright.
I could’ve used bike chain grease to re-lubricate the pin if mine wasn’t with my bike (which is to say, at the other end of the state) but I did have handy option #2, petroleum jelly, which I often use to keep the sockets on my spikes loose. I applied a liberal coat to the pin, dropped it back in the hinge, and sure enough: it now swings quietly.
Now Playing: Keeps My Body Warm from Strangest Places by Abra Moore
Posted by pjm at 3:26 PM | Comments (0)
The iPod that couldn't be fixed
I haven’t written for a long time about the saga of my oldest iPod, the 1st gen 5GB model with the wonky Firewire jack. I still get some traffic from my posts about my failed attempts, three years ago, to re-solder the jack myself; eventually, even my brother, who had some specialized equipment available, was unable to get the thing to mount (though it will charge.) I have it in a static-free plastic bag in a drawer somewhere; it may or may not be in pieces.
Today I read a NYT article about a Denver company, BuyMyTronics.com, which will actually buy old, non-working iPods, rehab them, and re-sell them. I went through the menus and got an estimate of $6.40 for my iPod, which I suspect reflects the desirability of the model itself (five years old, heavy, not much more storage than a new, $150 iPod nano) more than the difficulty of fixing it. I may send it in anyway; I like the idea of having it off my hands but not in a landfill, and getting some lunch money for it is better than paying for the component recycling.
(I’m not in the market for a new iPod, either; my current one, almost three years old and slightly clunky-looking now, still works just fine for what I ask of it.)
They say they’ll be taking old cell phones soon, though I’ve not had much difficulty with those; I usually keep one previous phone as a backup in case of failure (I just swap the SIM card back, and I’m in business,) and the phone companies often give a trade-in rebate for old phones when we upgrade. I wonder how many other good businesses are stowed with obsolete gizmos in other people’s desk drawers?
Now Playing: Stand from Green by R.E.M.
Posted by pjm at 9:58 AM | Comments (0)
November 2, 2007
Silence
Sometime in the last week, Gmail stopped picking up any email sent to my various addresses at this domain. If you’ve emailed me here, and I haven’t responded, that’s why.
(This is also why I wasn’t a respondent to this survey.)
Now Playing: Everything Must Go from Left and Leaving by The Weakerthans
Posted by pjm at 10:36 AM | Comments (0)
October 15, 2007
Watch what you say
I hadn’t given much thought to it until this weekend, but one of the consequences of taking this assignment—aside from the potential asthmatic effects I’ve been warned about—is that I’ll be behind the “Great Firewall of China”.
Given that I have a pretty narrow focus on what’s happening at the track, I can’t imagine myself sparking any political clashes with the Chinese government. If I can make it eight weeks in post-Soviet Russia without sparking an international incident, I can probably manage ten days in China, despite the doom and gloom in this New Zealand Press article Nicole links. But part of the nature of my job is to get stuff online in a hurry, and bitter experience in that area suggests to me that that can be hard enough in allegedly-less-authoritarian countries, simply due to technological challenges. What kind of logjam might be created by an artificially-imposed internet bottleneck?
Maybe not IAAF stuff, but how about posting photos on Flickr? Trying to get a secure (i.e. encrypted) email connection?
Heck, shelling in to a work server? Running an impromptu wireless network in my room? All relatively unthreatening things on the face of them (though an SSH connection can be used with port forwarding to bypass a firewall, and who knows what an unsecured network could be used for.) I doubt any of these things would be significant problems, but I wish I knew more.
Posted by pjm at 9:26 PM | Comments (1)
October 5, 2007
Pipes are cool
I’m late to the party on this one, I suppose, but I recently discovered the coolness which is Yahoo! Pipes, and I feel the deep, geeky need to share.
I’ve read about Pipes for months (I even hinted about building one here) but I really only came to find them—and see how easy they are to use—a week or so ago. I’d been putting together a bunch of feeds for Common Kitchen, and the nature of their creation meant I had a feed which had cookbook objects, a feed with recipe objects, etc., but it was very difficult to create a feed with different kinds of object. So, in order to put together a “unified feed” with everything that’s new on Common Kitchen—a concatenation of the existing feeds—I turned to Pipes.
Pipes let me take the five or six feeds of interest, slurp them all into one big blob, sort it by date, then truncate the result to a reasonable length. Presto: a unified feed.
Intrigued, I built a similar pipe which combines most of the feeds linked from this weblog: the main site feed, the comments feed, my Flickr photostream, and my del.icio.us bookmarks feed. One feed to rule them all, one feed to bind them…
But Pipes are good for more than just combining feeds. Say you’ve had enough of reading my ramblings on technology that’s so last month (or, what’s a feed, again?) or folk singers with horn sections, and you just want to read what I have to say about running. I wouldn’t endorse such monomania myself, but it would be pretty simple to create a pipe which filters out all but the “running” category.
Why “pipes”? Because in the Unix world, the “pipe” character—the vertical bar you get from shift-\ on your keyboard—tells the operating system to take the output of one command and “pipe” it into the input of the next. By chaining a series of simple commands with pipes, you can build complex and powerful operations. That’s what Pipes is doing: allowing several simple operations on data to be chained into a powerful system.
(Tell me again: what’s a feed and why should you care?)
Now Playing: Fighting In A Sack from Chutes Too Narrow by The Shins
Posted by pjm at 9:43 PM | Comments (0)
September 12, 2007
How do we use this stuff?
If you know much about Ethiopia beyond the names of its champion distance runners, you may have run across teff. Teff is the staple grain of Ethiopia and Eritrea, and companies growing and selling teff in the U.S. actually sponsored some Ethiopian distance runner(s) in the late ’90s or early ’00s. Lately, it has seen some interest as a gluten-free flour, a possible substitute for people with gluten allergies.
We have two bags of teff grain in our cabinets, and we’ve had them for… well, several years. The problem is that it’s easy to use teff flour (just substitute it for wheat flour) but not so easy to use teff grain. So what do I do with two pounds of teff grain?
Well, as it happens, I can ask that question on Common Kitchen. We added a feature—well, actually, Noah added it while I was in Japan—which lets you ask for recipe recommendations. So I can ask for suggestions: anyone have a good recipe using teff grain (but not teff flour, which I have none of)?
Actually, I may answer my own question: all the teff recipes on the web may already be on the Teff Company site. Now, can someone tell me how to explain to the cat that dinner isn’t for another twenty minutes?
Now Playing: Hard Road by The Shore
Posted by pjm at 4:41 PM | Comments (0)
August 24, 2007
Two machines in one
The IAAF’s system for publishing their site is built using ASP and turns out to require Internet Explorer on a Windows machine. The media office shrugged its shoulders and set about finding Windows laptops for me and the other reporter working on their team who uses a Mac, but then I stopped them. “Wait,” I said, “I have Windows here too.”
So I fired up Parallels Desktop, opened Internet Exploder Explorer, and opened up their CMA. They were quite impressed. But then… “Hey, can you do that for Matthew, too?”
Also, yesterday, when I was trying to get online here in the hotel room, I heard the Japanese word pasacon for the first time. I’ve seen it before; it’s a contraction of “Personal Computer.” The clerk was asking if I had the computer in my room. I should’ve said, “Of course, I’m a pasacon otaku.”
Posted by pjm at 7:07 AM | Comments (0)
August 17, 2007
Wireless security note
In general, using the name of the network as the network password is not terribly secure.
Posted by pjm at 3:42 PM | Comments (0)
July 27, 2007
Using one key for a lot of servers
If you’re at all like me (let’s hope not) you have too many passwords to cope with. I can’t help with websites, but I don’t think there’s been a time in the past five years when I haven’t had at least two different servers to log in to, sometimes more like four or five. There’s no way I’m going to remember all those passwords, and I don’t try. Instead, I put an RSA public key on each server, and keep the private key here on my Mac. When I ssh to those servers, I get prompted for the private key’s passphrase, then I’m logged in. Same “password” every time. When I get access to a new system (CS department servers, web servers for former places of work, research cluster, Common Kitchen web server or development server) the first thing I do is upload my public key. The second thing I do is stop trying to remember the password.
I realized that I’ve described this process to several other people now, (and even mentioned it here before) and haven’t bothered to save the writeup anywhere public, so here it is if it’s useful to you.
The command to generate a key pair (this is asymmetric encryption) is
$ ssh-keygen -t rsa
You’ll be prompted for a destination for the files (your ~/.ssh directory is best, since that’s where the ssh client will look for the private key) and a passphrase, which you’ll need to confirm. Then you’ll have two files, one with a .pub extension. (The default names are id_rsa and id_rsa.pub.) That’s the public key, which you’ll be uploading to any servers you wish to log in to.
(Note that you can create a passwordless login this way, if you’re confident enough about the security of your private key; it’s not advisable. I’ve used that, however, to allow scripts access to a remote server, e.g. with scp.)
Once you upload the public key to the target server, it should go in a directory named .ssh in your home directory, and be renamed
authorized_keys (or appended to the existing authorized_keys file):
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ mv id_rsa.pub ~/.ssh/authorized_keys
# or $ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
Now when you log in, it should prompt for a passphrase, not a password, and because the passphrase is associated with your private key, not your public key or even this account, it’s the same on all servers which have your public key in authorized_keys. I think this is really cool, but I suppose I’m a specialized case.
Now Playing: If I Wrote You from Out There Live by Dar Williams
Posted by pjm at 1:41 PM | Comments (1)
July 17, 2007
Recruited
I just got a head-hunting email from a large Internet company looking for people with experience in systems administration and software engineering. This, in itself, is not too surprising. The fun part is that it was sent by a graduate of my College—ten years after me, natch—who found me through my Facebook profile.
Apparently he didn’t read the part about my current state of employment. (Though he did sort of hint that I should be handing this message on to other alumni I might know.)
Now Playing: Nietzche from Thirteen Tales From Urban Bohemia by The Dandy Warhols
Posted by pjm at 11:35 PM | Comments (0)
July 16, 2007
"Beta" launch
There’s a little bit more than a “coming soon” page at www.commonkitchen.com as of this afternoon.
Since the beginning of July, we’ve shifted the site to a new server and written the first chunk of what will eventually be the full site. Looking back on the code we’ve written—and debugging it—in its code this is very much a “second system,” a bit of a jumble of all the lessons we learned the first time around. We’re using the framework better now, but we’re not yet writing elegant software.
I don’t like talking up things we haven’t done yet, but I do think it’s worth mentioning that this is only the barest start of what we have in mind. We aren’t expecting anyone to be impressed just yet.
Now Playing: Van Nuys (es Very Nice) by Los Abandoned
Posted by pjm at 11:16 PM | Comments (0)
July 11, 2007
Firebug and page layouts
Since the holiday weekend, the only thing that’s really going on around here is work. Common Kitchen is evolving like a weed in its Subversion repository, with 236 revisions as of right now and well over 200 tickets in Trac. We’ve become obsessive about closing tickets, and since we implemented Trac’s milestones feature, watching the roadmap.
Our decentralized working pattern means we don’t spend a whole lot of time looking at one screen and talking about how things look, and there are a lot of tickets saying things like, “That green went away? What happened?” Last night I spent 45 minutes tracking down a CSS bug, and part of that time was finding the right tools to diagnose the problem.
Let me save you some time. The tool is Firebug. Firebug is a plugin for Firefox which opens a bottom-of-the-browser window allowing you to browse page source (in the same sort of collapsible-tree format as Firefox’s DOM inspector), highlight portions of it, and see which CSS rules apply to that chunk of code, in order from strongest to most distant inheritance. In other words, it lets you back-track up the cascade. Rules which are overridden are shown, but struck out, so you can pick them out as well.
By showing me that some rules simply weren’t being applied, I was able to go back to the CSS validator to figure out what was buggy about my stylesheet, and solve the problem. And now that I know how to attack the problem, I find myself popping open Firebug all the time to check out why things are doing what they’re doing. It’s a neat idea, and a very helpful one.
Now Playing: Paralysed from Nowhere by Ride
Posted by pjm at 11:37 AM | Comments (0)
July 5, 2007
More proof that this is really happening
We did a slew of paperwork this afternoon, which did not catch us up (some early investors are owed stock certificates, for example) but did cover most of the desperately urgent stuff.
I am getting unsolicited postal mail at our incorporation address.
Within a week or two, I hope to be able to share some more proof that this is really happening with the rest of you.
Now Playing: Good Things from Back to Me by Kathleen Edwards
Posted by pjm at 11:03 PM | Comments (0)
June 20, 2007
Telecommuting
I know it’s commonplace now, but it’s still kind of cool to me that I can log in to the Mac Mini in my living room from a wireless network in Indianapolis.
Posted by pjm at 5:38 PM | Comments (0)
May 25, 2007
Everybody's got advice
That’s the problem with telling people you’re working on a start-up.
Of course, a large portion of this advice is in areas we’re legitimately concerned about, e.g. patents (necessary or not? Affordable or not?) or money (should be obvious.) But sometimes I feel like I’m being given a pop quiz. Which database are we going to use? What technology stack? Web server? There are a lot of IT geeks who want to know if we’re using their favorite technology mix (databases are a favorite holy war, but source code management packages are another area where this happens) and are perfectly happy to tsk tsk and shake their heads when they hear we’re not. Sometimes I can shrug it off, like when I know we have circumstances which dictate doing things our way and not theirs. Sometimes I have to wonder.
My impulse is to resist going into too much detail in this sort of situation, and avoid the discussion, but in a lot of cases it’s good for us to get the advice. It’s just so tough to know which advice is good.
Posted by pjm at 9:34 PM | Comments (0)
May 24, 2007
Milgram was right
On an online community centered around (but not limited to) alumni of my college, I ran across the author of an interface library I’m attempting to use for this project. Finding him out of context was a little disconcerting, but the more I think of it, not too surprising given the level of interconnectedness we reach now.
Now Playing: Dying For More from Be A Girl by The Wannadies
Posted by pjm at 9:51 PM | Comments (0)
May 22, 2007
Why you need a software engineer
I spent three hours this afternoon in the office of a professor from another department, along with that professor and a senior IT manager. I’d worked for the IT manager in my first campus job, where I did a fair amount of software configuration and installation, and he knew I was a Mac user.
The mission: build this bundle of quirks and source code on a Mac G5. If you can’t immediately figure out what it does, don’t worry; I can’t either. (I recognize several of the terms used in the description, but I can’t be certain I know what they mean.) Needless to say, it is unique on the face of the planet, so far as we can tell, and based on several comments both on the main software page and in the documentation included in the package I suspect the author scores a few points higher on the crackpot index than the average faculty member. (Probably less than a standard deviation from the mean, though.)
Unfortunately, this groundbreaking and interesting piece of software suffers from some crippling flaws. I’ll quote from the installation documentation, emphasis added:
Qubiter 1.1 was written using CodeWarrior (CW) for the Mac. CW is a C++ Integrated Development Environment produced by MetroWerks Inc. CW is available for the Mac, Win95/NT and some Unix flavors. Since Qubiter 1.1 is pure C++, you don’t need CW: you can run Qubiter on any platform for which you have a C++ compiler. However, if you don’t use CW, you will have to write your own makefile. I’ve used CW Pro 2, with the “Old ANSI Libraries”. If you want to use the MSL libraries or a more recent version of CW, you’ll have to convert the project yourself.
This probably made some sense six or seven years ago, when it was written, but it’s 2007 now. Let’s tally up the problems here:
- Whatever version of CodeWarrior was used, it’s now long past End Of Life. Our version of CW insisted on “updating” the project file, in the process scrambling it.
- “You’ll have to convert the project yourself,” when it comes to software, translates directly to, “Despite being publicly available, this software is unusable.” (Or, more kindly but more specific, “It works for me and I haven’t tried any other way.”)
- “You will have to write your own makefile.” This is one of the most ridiculous phrases I’ve ever seen regarding software installation. This is like saying, “We’re having pizza for dinner, but if you’d like some, you’ll have to write your own recipe.” Without knowing how the package is supposed to be built, how on earth are we supposed to figure out how to write the makefile? We have a pile of source files, in some vague organization, but having a list of ingredients is not the same as knowing how to cook.
We did some searching to try to find documentation from others, but all we found was a mailing-list post from someone else reporting exactly the same errors we had, and complaining that the author had not responded to requests for assistance.
This is not a viable software package. This is a bizarre sort of vaporware, and although the author is a better C++ coder than I’ll ever be, he’s written a lousy program, because he didn’t take any of the steps needed to make it usable to anyone else. The code is essentially undocumented, unbuildable, and has crippling dependencies. Fix those things, and it might be interesting.
Now Playing: The Way the Light Falls from Devil Hopping by Inspiral Carpets
Posted by pjm at 9:15 PM | Comments (0)
May 16, 2007
Workaround
There is a bug in Eclipse, apparently, that keeps it from properly compiling and running Swing-type Java apps on Intel Macs.
Instead, I am running Eclipse on WinXP, in Parallels (virtual machine software for Mac OS), in “coherence” mode (which means the Windows windows share space with the Mac OS windows, to grossly oversimplify things.) It’s a close second best… but whatever part of my subconscious is synched to operating system user-interfaces is context-switching so much I feel like my whole brain is slowing down. It’s also bizarre to see the (maximized) Eclipse switch to screen-saver in the background while I’m working in a MacOS app in the foreground.
Now Playing: Only Now from Carnival Of Light by Ride
Posted by pjm at 10:26 PM | Comments (0)
May 15, 2007
Stop me before this continues
The source is the source, of course, of course
and no one can code without source…
Posted by pjm at 3:47 PM | Comments (2)
May 9, 2007
Working in translation
I think the reason I have put this project off as long as I have is that I am not comfortable working in Java.
One of the things I’ve learned from TAing the Programming Languages course this semester is how some languages require the user to think in a particular way. Prolog is perhaps the best example of this; students are used to thinking of functions as something which does something, and Prolog rules don’t really do anything. To write good Prolog, we needed to shift to thinking about conditions—X is true under the following conditions—rather than actions.
Java is not quite as dramatic as Prolog, but it does require the programmer to rearrange the way they think about the problem. I’ve spent more time in languages like PHP, or even C, where once I’d conceived of a means to solve the problem, the translation into code was fairly straightforward. Java’s object-orientedness forces the code into an organization I might not otherwise have used; beyond that, it makes it harder for me to read others’ code and make sense of how to use it. There have been times when the way I conceived of a problem made it easy to code up in Java, but not many of them.
This is not (necessarily) a shortcoming in a language. But it does mean I’d avoid Java in most cases. Maybe if I’d been taught Java in intro CS, the way the Shipwright was (in my day, it was taught in Pascal), I would think differently.
Now Playing: Everything’s Not Lost from Parachutes by Coldplay
Posted by pjm at 2:02 PM | Comments (0)
May 8, 2007
Name that network
Anyone who has gone war-driving, or searched for free wireless from odd places, knows that the best suspects are networks named “linksys” or “NETGEAR”, either of which suggest network hubs running the (insecure) default settings.
We’ve never had a default network name. Our first wireless network was given the name previously applied to the building our apartment was in: Hawley Middle School. When the owners opted to do a condo conversion, I renamed the network “Hawley Exiles”, and kept that name through the move to Amherst and now out here in Medford.
In Medford, we’re in a denser neighborhood than I’ve ever lived in before, and there are a lot of other wireless networks in the menu when I look around. “linksys” and “Belkin54g” are out there, of course, but when we’re all overlapping, people start paying attention to which network is theirs. Most of the networks require passwords. (I described our access control scheme some weeks ago.) There are some uninspired names (“Jane’s Wireless”) but some which must be unique to this area—“best internet evah”, for example, and “Red_Sox_Nation”.
I finally got a new base station, which supports both a password/encryption protocol we can all use, and allows me to add USB disk drives to the network as well. For the time being, while I break it in, we have two wireless networks, so I couldn’t use the same network name. Perhaps influenced by the fact that I’ve had mail solicitations from both Alley Cat Allies and Alley Cat Rescue in the past few weeks, I opted for “Brown Tiger Support Network”.
None of this, however, excuses the fact that I had a shiny new wireless base station in the apartment, still shrink-wrapped, for over a week before I got around to installing it. You’d think I was ill, or something.
Now Playing: Battle of Who Could Care Less from Whatever & Ever Amen by Ben Folds Five
Posted by pjm at 10:01 PM | Comments (0)
May 3, 2007
Pocket power
Two evenings ago, I sat down with a soldering iron and made one of these. If it’s not immediately clear what this is, it’s a tiny circuit which allows you to hook two AA batteries to a USB jack and thereby charge anything which can be charged that way—most iPods, for example, but also, as it happens, my new phone. The whole thing fits in the tin from Altoids gum.
I’m interested in this because it may allow me to reduce the number of wall-wart chargers I take with me when I travel. AA batteries are almost as easy to find as cigarettes, at home and abroad, and they aren’t subject to unusual voltage or AC issues. Based on a post Steve Frank made last week, I’m wondering if my phone, which is supposedly an “unlocked, tri-band” phone, might be usable in Japan (albeit with a different number) if I get a pre-paid SIM or something like that.
I’ve never done soldering of this type before, but the instructions linked a few helpful pages, and I got the hang of it. My previous metal-joining experience was some years ago, hanging around the Smithsonian’s Folklife Festival, where the museum exhibit staff were doing demos. Things were quiet, so they invited me behind the protective glass, put a mask on me, and showed me how to weld. I had the two slugs of steel I joined on my bureau for several years; I may still have them kicking around somewhere.
Soldering with a pressed circuit board is nothing like that; every component has a socket, some number of metallic collars around holes in the PCB. You run the component’s contacts through the holes, flip the board, then solder from the bottom. After you’ve heated both the collar and the contact for a second or two with the iron, you touch the wire of solder to the joint. It becomes a drop of metallic liquid, and if you’ve done it right, some kind of capillary action sucks the drop into the hole, cementing the contact in its socket and joining the component semi-permanently with the board.
I got out the multimeter I got for Christmas and checked input and output voltage, and it appears to be working as advertised. It doesn’t charge my phone yet, but there’s a particular resistor with two different options, and I may need to re-solder it in the other option to get my phone to like it. I also need better wire cutters so I can trim the excess contact wire from the back of the board; right now, it doesn’t sit down close enough to fit in the tin.
Update, 5/7: Thinking through the changes, I realized that the laptop should be sufficient for charging the phone; the battery pack is going to be most useful for charging an iPod on a lengthy plane trip. So the excess leads are clipped, and the PCB is stuck down in the tin; no more soldering on this one. Maybe I’ll try another one for the phone, for fun, someday.
Now Playing: Block from Uninvited, Like the Clouds by The Church
Posted by pjm at 9:43 PM | Comments (1)
