Archive for the 'Web/Tech' Category

The agony of Firefox beta upgrades

Pretty much no extensions have been updatedPretty much no extensions have been updated for the Firefox 1.5 beta 1 release yet. That sux. I feel naked without my favorite extensions! Oh web developer toolbar, where art thou?! Greasmonkey! Sniff, sniff!

I am impressed that the Yahoo toolbar has been updated though! Way to go, guys!

‘Software Engineering for Internet Applications’ online

Software Engineering for Internet Applications by Philip Greenspun (and a few others) is brilliant. An excellent primer for those new to developing for the internet, even grizzled web developers will likely find nuggets of information here. Well laid out, clear and admirable in breadth if not always depth (but impressively deep too in places), I highly recommend it. I wish this had existed 5+ years ago, but I guess we were all learning this stuff as we went, back then!

I do have a copy of Greenspun’s old book on web development, but was never very impressed with it. This “book” above, however, is awesome. I’m going to start pointing lots of people to it…

RSS: Make it so.

GreaseMonkey rocks. But the blog for it is Blogger-ified, and doesn’t seem to have a RSS feed. Huh? You no have RSS feed, you no get my traffic. I’d like to stay up to date on the developments, but bookmarking and revisiting is so 1997. Am I missing something? Is there an elusive RSS feed hidden in the page? Feh.

Double-fisted blogging

I’m trying to figure out where to post entries when I do happen to do so, which is a pretty rare event anyhow. Here, or at 360°? WordPress pretty much kicks 360’s ass at the moment when it comes to editing tools, so I suppose I’ll keep posting the majority here. But, 360 is all Yahoorific, and more at my fingertips while working. I guess I shouldn’t blog from work much anyhow :-)

Well, in the meantime, just a few interesting links… Mac serial number decoder–find out when your Mac was made.
As a guy at work would say, this is totally ringing the bell on the nerdometer. Some guy made Mac OS X Engineer Trading Cards. Yeah… but I have to admit his Ajax-style commenting system rocks. Pretty sweet effect, if a tad useless. Well, I like the submit-without-refresh bit, but the live preview bit is not too useful IMO.
One more: dissecting WordPress themes, seems handy.

ev1servers.net frustrations

We are hosted at ev1servers.net, and generally I’ve been a really happy customer these past few years. However, we added a 2nd box for mysql, and got their private network (10.) set up between them, and had nothing but problems. Slow connection (typically 6mbit/sec, kind of lame for private network!) and lately, lots of dropped connections/routing problems/loss of connectivity. Bad news. You hate to see mysql queries doing “writing to net” for 5 minutes…! We’ve finally ditched using the private network and are going direct to the external IP on the 2nd box, which is much much faster and more reliable (that’s sad). (Setting this up safely of course involved lots of firewall rules…!) Anyhow, it’s working, but the one thing I’m worried about is that in theory we’re limited to X amount (1T I think) of traffic a month on the frontend interfaces (on both boxes). I don’t want to pay for overages because they can’t manage to get their private networking stuff to work reliably. The nagios graphs of uptime aren’t pretty :-(

Between prince.org and a couple of the other sites we host, we do a decent amount of traffic, and it seems like it’d be a ton easier to just get some rack space and throw some machines at the problem, especially as we’re considering buying (renting) yet another machine… which would really start making the buy vs. rent situation look less viable. One of my big issues is that ev1 is super expensive to get a high-end machine (for example, for a DB server), especially with a lot of RAM. I want a big box to support fulltext searching in mysql, which requires oodles of RAM (the dataset is over 1G), but that is a fortune to rent. I’m going to price (again) local SF hosting providers that are flexible and dig helping out semi-nonprofits like us. And maybe price out an Opteron with 8G of RAM for the database… mmmm that’d be tasty…!

If anyone’s got suggestions about providers (I’m talking about up to 8U and maybe .5T/month transfer, and I’d really like 24/7 access but that’s not a dealkiller if not), let me know!

Real servers = real loud

I bought a server last night from a guy off Craigslist. Great deal, but there’s one thing I forgot about… “real” servers are “real” loud. It’s been a while since I had a 2U box cranking all its fans in a home setting, and it’s making me wonder about the viability of this solution as a “throw it in the closet” server. Hmm.

Oh, the machine specs are dual-P3 550, Intel LX440 motherboard, 1G RAM, SCSI (9G and 36G disks installed). I’m planning to toss a 250G IDE or two in there as well and make it the superduper LAN mp3/file/cvs server/linux development box/mysql slave (backup) to prince.org’s dataset.

The guy who had it previously tested it with NT, and that lasted on it about one hour at my place. Which is about 45 minutes longer than it would have been, had I been able to find a floppy disk (ANY floppy disk) to turn into a Fedora boot floppy. I needed that because I only have Fedora on DVD, and this server of course just has a CD-ROM drive (that may change in the future…) Anyway, I finally just burned a CD with the boot.iso image off the dvd, pointed the localhost config on Apache on my windoze box at the Fedora DVD, and booted into a HTTP install on the new server. Took a while (for kicks I said “Everything”… so now I even have Russian support for KDE, etc.), but worked fine.

A little disappointed that the Bogomips for each processor is just over 1000 (according to /proc/cpuinfo) and on my rented prince.org server the single CPU is around 4000 (P4 2Ghz). I’ll have to experiment with a sequence of mysql and apache operations though, and see how they compare under “real” situations, or a vaguely reasonable fascimile. Probably the performance of this thing, properly configured (utilizing 3+ spindles, instead of the 1 IDE device on the real server now) will still kick the rented box’s ass. I’d love to be able to buy a few more cheap boxes like this and throw ‘em in a local colo, so at least I could control my own servers, instead of relying on folks 1000 miles away… and even then, not being able to throw a bigger harddrive in, etc.

iSight rant

Oh, back-to-back hardware rants! Whee!

So my wife’s buddies “all” seem to have these mac webcams, and so she needs one too, right? Well, ok, it sounded cool so I didn’t need a lot of persuading. So I drop by Fry’s and pick one up (they’re essentially $150 no matter where you buy them), and plug it in. Nothing. No iChat love. No, well, much of anything! Which is kind of weird.

I do a little reading and realize that actually, you need iChat AV to make use of it. Which comes “free” with the Panther upgrade (OS X 10.3), which costs $129. Or, you can get iChat AV alone for $29. Well, I know I want some of the goodies in 10.3 anyhow, but was hesitant to upgrade before because I didn’t want to risk anything going wrong to her beloved Mac. But, I decided should just go for it…

So I’m off to the Apple store (happened to be going by on the way to the bagel shop in Burlingame, actually) and decide to play stupid to the sales staff, and see if I can get any useful help. Oh, it humbles me to do so… but here we go (my side of the conversation in bold). “Need any help?” “Yeah, I’m thinking about getting 10.3 upgrade from 10.2, but wait… when will 10.4 Tiger be out?” “Not until next year” “OK. I’ll take it. Now how do I back up my data before upgrading, just in case?” “Oh, well, do you have an external firewire drive or some blank CDs?” “Sure, I have an external FW HD”. “OK, copy some stuff from your home dir onto it first”. “Uhhh… like what stuff? Everything? What if it wipes my drive and I need to do a full restore after the upgrade” “Uh, that won’t happen.” “But I thought 10.3 had a habit of doing that with there was an external FW HD attached?” “Oh, yeah, well, you want to detach that drive before upgrading.” “Oh.” “Yeah, but actually, the version in this box is probably a slightly newer version than just 10.3, so it’ll not have that problem.” Riiiight. So, out I went, for the second time in as many days having tithed Apple $130+..

After uninstalling and deleting some junk, in an attempt to free up some diskspace on her Mac (it was down to about a gig free), and apparently convincing Finder to no longer be clueful about blank CDRs inserted in the slot (”No volumes that can be recognized” instead of the usual “Do you want to initialize this new disk”), which made it difficult to copy stuff off onto CDR… I finally bit the bullet and started the upgrade. This actually took a couple of tries, because the first time it couldn’t find the internal drive on the notebook to install from, even though it had been thrashing on the CD and disk for a while up to that point. Anyhow, about 90 minutes and 2 CDs later, it was done. And the CDR-recognition thing was fixed, and lots of niftiness ensued… Panther is cool. Although of course, it was stock 10.3.0 on the CDs; it needed about 150M of additional software updates to be downloaded and installed (and a magic file trashed to convince it to install Java 1.4.2, because it didn’t believe me that 1.4.1 was installed, even though it clearly was during the upgrade; this was 20 minutes of hunting on the net to figure out how to make this work, and 3 times downloading 28M of updates… more money for Speedera I suppose.)

So, on to iSight / iChatAV. It works well enough, but got a little tiresome. Let’s see, let’s use the iSight camera to make an iMovie. Nope, not possible. Only your DV camcorder via firewire can be used for that… what? OK, well, maybe I can take snapshots with it for iPhoto… well, if so, I can’t figure out how. So basically, there is a $150 webcam, and I do mean webcam, usable only for iChat, sucking down a bunch of current (and getting a bit hot, I might add) on the notebook’s solitary firewire port. Hmm. It’s now sitting the drawer, actually. I guess she’ll hook it up when she really wants to chat with someone, but… that’s kinda lame. It won’t even work with iMovie?! Come on, Apple, really!

Wireless keyboard? Brainless key layout.

So, I buy a Microsoft wireless desktop (mouse+keyboard) from Costco the other day, and gave my old optical mouse to the wife for her Mac. Everything seemed fine, software installed OK, la-di-da… the mouse worked OK on the fairly reflective white keyboard tray on my el cheapo Ikea desk (a problem in the past), etc. But then… I noticed something odd. Like a bad smell, but only faint, it crept up on me until I realized, what the hell? What have they done with the Inser/Delete key area?!?

On most PC/104 (I guess they’re still called that) style keyboards, there are six keys to the right of the main QWERTY section, typically above the inverted-T arrow keys. These keys are Insert, Delete, Home, End, Page Up, Page Down. Makes sense. Logical layout. Easy to learn.

But on this new keyboard I bought? Nope. Rearranged. Minus one key. WTF? “Insert” is just gone. Delete is now twice as high (including essentially the space where Insert used to be, ohhh now that is handy!), and Home and End are no longer in the same column. Whaaaa? I suppose 80% of users never use the insert key; they probably don’t use home and end much either. But the other 20% of us do… so stop penalizing those that DO use something, for the supposed benefit of those that DON’T!

Now I understand why the link entitled “Learn how Microsoft leads the industry in the design and production of ergonomic hardware” on this page goes to a 404 error! This sucks ergonomically. Now to do cut/copy/paste, I need to use these one-hand-bending ctrl+x, ctrl+c, ctrl+v keystrokes, instead of the easy-to-reach (left hand on ctrl or shift…) tap insert or delete. That’s not better from an ergonomic standpoint! Oh, wait, maybe I’m supposed to use the function keys that are now assigned to ‘cut’ ‘copy’ ‘paste’… yeah because reaching up there to learn NEW keys, that are ALREADY assigned functions in most apps, is useful. Did I mention you need to put on “F lock” to use the function keys as regular F keys? So I guess learning F2 for ‘modify’ and F5 for ‘refresh’ and ‘ctrl+f4′ for close, etc. etc. were a waste of time. Grrrrr.

I would blame Microsoft for all of this, but it looks like maybe this keyboard is just a rebranded Logitech device. I wouldn’t be surprised, as my previous Logitech keyboard also had this F-lock stupidity which was another reason I wanted to get a different keyboard in the first place! At least this one does let me reprogram all the silly ‘multimedia’ keys at the very top… although I have never used them on previous keyboards anyhow. But, I suppose assigning a key to Firefox, to iTunes, etc. is OK… but it’s not like they’re not always loaded, anyhow.

Disaster strikes

Last Friday at 5:30pm, some of the apps on our “production intranet server” stopped working. Well, actually, they were just gone. A few minutes after a couple of us started investigating, a developer’s voice sheepishly rose up “oh, uh, I think that was my fault”. He had been working on our new cvs->rsync deployment scheme, of which this server is one of the eventual targets. He had inadvertently sync’d over some data in the wrong place, and went to delete it, but rm -rf’d in the wrong directory (with sudo, of course!). Thinking he had only wiped out a couple small apps, he started reinstalling them.

The senior sysadmin and myself said “stop”, let’s just check the backups, first. So we do, and lo and behold, the backups aren’t working on this machine since it was reinstalled with RH9. Joy. The development server, which is essentially identially, of course has working backups. Por supuesto, claro. Soo…. we start listing the things that got lost… cacti: no problem, all config in the DB; several other internal apps: no problem, pull the release versions out of CVS; twiki–uh oh. TWiki is out internal documentation tool, a Wiki implementation in perl, with RCS for version control. It stores the data as regular disk files, in the twiki directory. Which was now deleted. And perhaps partially overwritten by restore efforts. Sigh.

We made a copy of the disk (cp /dev/md1 style) to a file, and then copied that to another machine. We did some quick googling on file recovery, and realized this was going to be really painful for ext3. I’ve never lost things I needed off of ext3, but have recovered things from ext2 previously with good success. Apparently with ext3, deleted inodes are actually overwritten with 0s at time of unlinking. Yay. We decided there was no way to get data from the device directly, and so started reinstalling and reconfiguring the other apps to the machine (30 minutes work). We then set about recovering our data with the grep-and-copy method, from the big image file we made off the device. Or, at least, did some research on it. By then it was 7pm and we all really needed to go home (after getting the backups working again, of course.)

Today the developer who made the error, who also happens to be our strongest Perl coder, started extracting the data. Unfortunately, in Wikis, the filenames are relatively important–they are the actual WikiNamesLikeThis that are used for interconnecting documents. We lost most of that association. On the bright side, TWiki puts metadata in a standard, easy-to-locate format, at the top of every page when it’s stored; and often, the signature of a twiki page is formatted in a machine-recognizable way. I think we’re going to get a significant part of our data back. Fortunately, but definitely with a loss of productivity, and some major headaches.

What’s the moral here? As always, big problems are the result of multiple failures–it’s never one thing that goes wrong that causes serious trouble, it’s always 2 or more things. We should have had the backups working, and verified, and…, and the developer should have been more careful (and not using that server as a target for experimentation!). Both of those failures causes us the problems. Identifying, implementing, and maintaining the redundant/supporting systems or processes, can be tricky… but utterly necessary.

Amazon RSS

Amazon sent me this in some of their developer API spam today..

Amazon now provides RSS feeds for many browse nodes. These feeds were
built using AWS and XSLT. You can find convenient “builders” for the
feed URLs at several locations including
http://www.onfocus.com/bookwatch/AmazonRSS.asp and
http://www.neopoleon.com/blog/chooseFeedGroup.aspx .

For more information about Amazon’s feeds visit
http://www.amazon.com/exec/obidos/subst/xs/syndicate.html . For more
information about RSS, visit
http://www.code101.com/Code101/DisplayArticle.aspx?cid=41 .

I tried it out, and well, it’s definitely good for AMZN; not so sure it’s useful for me. I wonder how many more companies are going to jump on the RSS bandwagon; from a standards perspective, I somewhat hope a lot. But I wonder what their target is–consumers, hoping people will put them in a news aggregator and it will drive sales, or portals/sites, which will mine the data for relevancy to other topics, and reformulate the info before presentation to a visitor. I just don’t see myself looking at their listings every day; I don’t browse that way.

Also, I just tried to create a couple feeds with those sites, and neither produced a valid/useful feed. Yawn.

Next Page »