|
The Spork Blog's got the goods. Basically, you must use MySQL's own officially supported Mac version, rather than the more hacker-attuned fink version. I'm disappointed that fink falls down here, because MySQL is definitely a technology I'd rather maintain through a command-line package manager than though manual download-and-install methods, as pretty as the new System Preferences pane is. Still: it works. (And this is probably the least general-audience-appropriate Appleseed blog post ever. Alas! But, I wanted to reward that article with some google juice...) This is how I finally got Time Machine to work over WiFi:
Previously, I had the hard drive plugged directly into my desktop Mac's USB, and tried to have the laptop back up to it via network-mounting it from there, but it didn't work properly - Time Machine would make all of its scheduled backups, but the Time Machine application would not recognize them, acting as if no backups had ever been made. Admittedly, I changed several variables at once going from there to my current, working setup. Most obviously, there is the presence of the new Airport base station, and the fact that the backup drive is now plugged into it rather the desktop Mac. But also, I didn't know that my laptop's ethernet port worked - I thought it was broken! So I didn't try to make my initial backup that way; instead, I connected the hard drive to the laptop via USB, performed the backup, and then reconnected the hard drive to the desktop Mac, doing subsequent backups via the network. I suspect this may have confused matters. (I discovered the working state of the laptop's ethernet last night, as a desperate move. Wow.) Therefore, I can't prove that my previous setup wouldn't have worked if I had tried to connect my laptop to the network differently. However, I don't regret purchasing the Airport, because the house now has a very nice new router. It gives us not just 802.11n WiFi (several times faster than anything we've had before) but also gigabit ethernet (ibid) and a separate wireless internet node for guests, with a trivial password and no LAN access. Plus, our old router is junky and prone to freeze up if you looked at it funny, so just as well that it get replaced. [1] Yes, I'm aware that calling one and a half measly terabytes "ginormous" will seem laughable in a dozen years' time. I well recall how I purchased a two-gigabyte hard drive in 1997 and how infinitely huge it seemed then, and on and on back through time. This setup is for today, and lo, the ass, it is big. While I do almost all of my work - and maybe a little too much of my play - on a MacBook laptop, I keep an older desktop computer in my office for tasks that are better left to sessile machines. I seldom use it interactively, though, and its display - balanced on the back edge of my desk - usually shows only whichever screensaver has most recently caught my fancy. (Was running SurveillanceSaver for a long time, but lately have favored HAL-9000.) Recently, I discovered, quite by accident, a new use for this arrangement that may permanently improve the way I work. For a project I'm working on, I had reason to comb through some video footage that existed only on one of this machine's two hard drives. It was a time-consuming task, so inevitably the usual forest of Twitter clients and Gmail windows and RSS feed-readers and such sprouted up as I worked. (How strange, yes, as if by magic.) Presently I completed by task and switched back to my laptop, but decided that I liked how all the happy little info-stream windows looked on the larger display, so left them there. After getting back to work, I quickly realized that the constant Bing! New email and Bong! new tweets and Doink! new news articles interruptions I had going on my laptop were now entirely redundant, as these same activities were also evident on the screen in the background. My background in physical space, recall, running on a separate computer. Experimentally, I turned off all my laptop's many new-event notifiers. I found myself in a new place: the streams were still present, and I continued to stay current with the outside world, but the sense of constant interruption had vanished. Now, when I need a micro-break, I need only cast my eyes up at my other display and see what's changed. I do this often enough that I never fall behind; the crucial bit is that I decide when I'm ready to take another sip from my personal external-info fountain, rather than have it splash me in the face while I'm in the middle of a thought. I realize this exact solution isn't something that everyone can implement, since not everyone happens to have the same computing setup I do. But I do recommend that fellow knowledge workers who share the need to be continuously plugged in, but also feel the constant low-level stress of continuous, clangorous interruptions, re-invent this solution in whatever way works for them. I'm hopeful that, in a small but crucial way, it's changed my life for the better. My last post contained Perl source code that adhered to the rules of iambic pentameter. An inverse bit of hackery may be seen in these Perlish poetry generators by Nick Montfort. Both programs are 256 bytes in size. Sample output from the second one: the sits Indeed. It's been a while since I have some across any new attempts at Perl poetry, so I was delighted to discover this stanza of iambic pentameter code by my friend jadelennox, written as part of Blank Verse Blog Week. The longer version by damned_colonial in the post's comments is great, too. Something unexpected I just learned: to many, it's now considered best-practice to use hyphens ( - ) instead of underscores ( _ ) when separating words in URLs. For example, instead of this:
You'd be better off doing this:
Why? Simple: Google recommends it. According to Matt Cutts, the big G will do a better job recognizing and indexing the words in your URL if you separate them with hyphens. This has everything to do with search engine optimization (SEO), a term I tend to shy away from, what with its coming from the sinister realm of marketing versus the practical software architecture tack that I try to stick with. Sometimes the paths cross unexpectedly, though. For me, this happened most recently as I set up a new Movable Type (4.23) instance for a client. I was surprised to find that, by default, it enforced that all files it created use dashes in their names instead of underscores. Googling on this topic led me to discussions from people asking how to get MT to use dashes in its filenames instead of underscores - the exact opposite of what I sought, but I was intrigued that so many should care. A little more searching led to this post on Google Inside, as well as the articles I linked to above. I always approach the notion of work-pattern changes due to Google Fiat with a bit of skepticism, but this one's apparently settled into place globally over the last few years without my really noticing. Interesting, anyway. Ajaxload is a nifty do-one-thing-well web-based service. Poke in a few parameters, and out pops a little animated spinner graphic. It's optimized against the background color of your choice, and free for you to download and use however you wish. In web applications, you most often see these graphics used wherever there's AJAX. Their sudden appearance and rolling motion help reassure users that something is happening, and they should stand by and await further results. They often look something like this: I somehow failed to find this site when searching on likely keywords via Google, earlier this afternoon; I found it instead by its being linked to from some Scriptaculous documentation. Many thanks to Catherine Roman for this simple and useful service. I recently finished a project for a client that involved installing CAPTCHAs on their various web forms. You've seen these before - they're the little widgets that challenge you to retype the intentionally garbled numbers and letters it displays in order to prove that you're an actual human, and not a node of some spammer's botnet. In researching the current best practices for adding a CAPTCHA to an existing site, I found ReCAPTCHA, a project of Carnegie Mellon University. You've probably come across examples of this particular flavor of CAPTCHA before. The image always consists of two unrelated words or word fragments, usually resembling smudgily typed copy with some additional bot-foiling visual artifacts thrown on for good measure. Something like this: It happens that the two words have a very good reason for looking like they do: they have been scanned out of old printed books and periodicals, part of various CMU-affiliated efforts to digitize old media. As ReCAPTCHA's own About page explains, even the best OCR software is only so-so at recognizing text, and frequently can't recognize words that would be obvious to any human reader of the language at hand. Now, here's the cool part: by plugging itself into ReCAPTCHA, a computer working in one of these massive scanning projects can submit a word it's unsure about to the global community of people who happen to be filling web-based forms in at that very moment. It will quickly get a response that 98 percent of all the people who saw it thought the word was "doggy" (or whatnot), and that will be enough agreement for the machine's purposes. The reason there are two words per ReCAPTCHA instance is that one of the words is undergoing this kind of trial, while the other one already has - in other words, the ReCAPTCHA system already knows what word it is. This is how the widget still functions as a CAPTCHA - the entity filling it in must still be correct about at least one of the words, if it wants to prove that it's a human. Meanwhile, bots are foiled not just for the usual reasons, but because all the words on display have already proven to be confusing to computers trying to read them! I think this is incredibly cool. That slimy spammers have made technologies like CAPTCHAs a necessity of the modern web is quite unfortunate, but the way that ReCAPTCHA has found a way to put a positive, culture-perserving spin on it is ingenious and laudable. My friend and colleague Andy Turner just posted some interesting graphs that measure changes in the CPAN's activity rates over the last decade or so. (CPAN being Perl's distributed, internet-based archive of code libraries and other stuff, and approximately 51 percent of what makes Perl my favorite programming language.) I'm interested to see that the number of new users started to drop off a few years ago, but the activity of existing users has been increasing so much that the archive's overall activity continues to trend upwards. If I had to guess a single reason for this, it'd involve the community getting better over the last several years at corralling many hackers together into large, frequently updated projects, which then get stored in the CPAN under a single username (as that's a limitation of the system). I think, for example, of DBIx::Class's recent ascendency, and clear community dominance, over the thousand SQL-abstraction modules that came before it. So you have fewer instances of people creating new CPAN author accounts just to upload their own wheel-reinventions. My friend Noah, a sysadmin at MIT, reports that on October 1 he switched off the info-mac hyperarchive ( Several years ago, when I was writing the Nutshell book, I discussed the possibility of being the hyperarchive's volunteer maintainer. Nothing came of it, though, and the server was allowed to coast into electronic senescence. I see from that Wikipedia article that there exists an info-mac website that claims lineage from the original archive and mailing list, but it's now just one more computer-news website in a vast sea. It does sport a mirror of the info-mac archive, where it's quickly apparent how little traffic it got since the turn of the decade; viewing some categories by date shows you software from the 1990s on the first page. Though the hyperarchive's role was supplanted by better-organized websites years ago (hello, versiontracker), I won't forget its important role in the early history of Macintosh software, the web, and myself as a computer dood. Goodbye, old friend! |
|