Category: Computing/IT

Upgrading Wordpress with Subversion

As many of bloggers are no doubt aware, a major update to Wordpress was released this week. I  like many others, eagerly upgraded my installation to take advantage of many new long-awaited features (particularly on the admin/management end). However for many, upgrading WP means downloading the latest .zip archive, unpacking on one’s local disk, then uploading the entire contents of the unpacked archive (see the irony here?) through an [S]FTP client, wondering why so many micro-tiny files would take soooo long to transfer (it’s easily explainable, but that’s for another discussion). During this protracted upload, one’s WP installation can become instantly unstable as files are being upgraded in place, creating a real-time oil-and-water mix of two different versions.

So what do I do?  Well, obviously not the above. :) With shell access to my hosting account (for Windows users, think DOS command prompt), up until a few months ago, I would get the new version as usual, only I’d upload the .zip file (or in my case, the .tar.gz “tarball”), unpack it on the server, and replace the installation in a couple of seconds; the time to upload (which would be vastly shorter because it would be a compressed, continuous file) would have no bearing on the “out of sync” problem above, because I’d unpack the files in a few seconds. This is a tried-and-true workflow that nobody could argue with in terms of simplicity and speed.

However, there is an even more elegant method that I started utilizing as soon as I found out WP supported a version control utility called Subversion. Version control is used in the software industry to track changes on various files so one can roll back to a previous version. People do this all the time with, say, a document in Word by saving multiple copies, but imagine 50 developers all making changes simultaneously to a source tree of hundreds of files. You have to be able to track changes so that you can fix what breaks while not discarding what got better.  Anyway, I don’t want to get overly technical, but I wanted to give a slightly better understanding of what Subversion is more than the simple statements in the video. Speaking of which, here it is:

thumbnail of video tutorial

Video of WP Upgrade

Cool, eh?  It’s important to know that the above was recorded in absolute real-time, no edits, and that it was really, truly my live system. Aside from the file and database backups before recording, you saw my real, unadulterated upgrade process (while I wasn’t worried having done this many times, the fact that it was done on a Sunday afternoon when traffic was low wasn’t an accident, either ;) ). Once your svn tree is in place, tracking updates large and small really is that easy. There are no big installation files to download or upload (the `svn’ client gets the individual files it needs, but it’s a fast server-to-server transfer) and unlike dropping a new installation on top of the old one, the old, deprecated files are cleaned away. Note that this is the workflow for an existing subversion WP repository; how to convert a “standard” (ie, uploaded) WP install to a subversion-enabled one is the topic for a future post (if there’s interest).

Anyway, I this helped, or at least inspired you to look into checking with your hosting provider to enable shell access if you have it. Please, please, give me feedback on this because I have lots of ideas on similar videos on WP ginsu outside of the web dashboard, most notably using MySQL queries (the database that powers 99% of WP instances) and the like. I admit command-line management isn’t for everyone, but for those willing to start adding to their toolkit, it opens up a limitless world of possibilities.


P.S. I didn’t make this clear, but this was created mainly for friends and readers in the med blogging world who are not necessarily highly technical. If you stumbled upon here from a search or tech-related link, this was not intended to be 100% comprehensive on anything. Condescending comments by tech trolls about how “retardedly simple” this is have already been removed and will not be tolerated.

Frustration w/video - help request

As I blogged on Friday, I wanted to have some stuff up this weekend of a video nature, but my video options are being very, very uncooperative. I have an OLD version of Final Cut on the Mac, but it has since been corrupted and can’t be used right now. Still, it’s a sledgehammer when many times a simple stapler will do.

In this case, I have video of a shell session (like a DOS command line) showing how to use Subversion to upgrade Wordpress. I actually I have another unrelated video as well, but they have two things in common: they need their audio replaced with another audio track (recorded on a better mic). Now if it was a straight 1:1 audio swap, that’s trivial. But I do need the help of a video editor w/rudimentary capabilities to stretch out the video on a frame for a few seconds extra, or whatever, to make sure the audio is synced up. Simple stuff that they all can do if the audio/video is muxed together, but not so much if discrete tracks.

iMovie ‘07 (I refused to upgrade to ‘08, which would have actually put me backwards in this too) can do all this easy, except it MUST convert the video to one of DV (720×480)/DVwide or MP4 (640×480). The captured video is not in a “standard” broadcast dimension, so converting into iMovie ruins it, especially because of the text on the screen, in this case. QTPro can do simple video editing but not replacing sound unless it’s a perfect 1:1 swap.

Anybody have experience with 3rd party video shareware/cheap editors that can do basic editing of this kind while allowing for add’l audio track but play nice with QuickTime and non-std formats too? Yeah, I didn’t think so. But I can be surprised. ;)

Perl Boredom, Domain Hunting

The other day, registrars began opening up domain registrations to .me TLDs.  I became aware of this because Beth at PixelRN had a quandary about a domain she was trying to register and the TLD .me obviously caught my eye.  From what I can gather, tons of .me domains are being snagged by the hour at premium prices.  GoDaddy and other registrars are reportedly screwing the pooch either because of higher-than-expected demand or because there has been too much bullshit with front-running where searches basically ‘tip off’ a registrar (and, in my conspiracy-theory-addled brain, an elite group of insider clients who will snag it in the precious waiting period while one decides if they want it or not).

I probably won’t get one, but in complete boredom I wondered what kind of games could be played with to see what domains could be listed.  Here is a Perl one-liner from a shell CLI querying the UNIX (in this case, Mac OSX) generic words flat-file database. (another common location for this file would be /usr/dict/words):

enrico@AppleCore:~$ perl -ne ‘if (/^(.*)me$/) \
{ print “$1me ($1.me)\n”; }’ /usr/share/dict/words


abrocome (abroco.me)
absume (absu.me)
academe (acade.me)
acetoxime (acetoxi.me)
achime (achi.me)
acme (ac.me)
acrodrome (acrodro.me)
acrosome (acroso.me)
actiniochrome (actiniochro.me)
actinodrome (actinodro.me)
actinosome (actinoso.me)
actinostome (actinosto.me)
adarme (adar.me)
adenochrome (adenochro.me)
adenomatome (adenomato.me)
adenotome (adenoto.me)
adrenochrome (adrenochro.me)
adventuresome (adventureso.me)
aerodrome (aerodro.me)
aflame (afla.me)
aforetime (aforeti.me)
afterchrome (afterchro.me)
aftercome (afterco.me)
afterfame (afterfa.me)
aftergame (afterga.me)
afterlifetime (afterlifeti.me)
aftertime (afterti.me)
agname (agna.me)
agoranome (agorano.me)
agronome (agrono.me)
airdrome (airdro.me)
airframe (airfra.me)
Akhlame (Akhla.me)
aldime (aldi.me)
aldoxime (aldoxi.me)
allosome (alloso.me)
alme (al.me)
ame (a.me)
amidoxime (amidoxi.me)
Read more »

Updates, Bags, and Social Networks

Blog Updates:
I’m happy to report all is well. The blog software is updated, making room for all the “current” plug-ins, themes, etc. and most importantly, the security fixes applied so that I don’t get h4×0r5 hijacking the site to something hideous and embarrassing like an online yarn shop. I’d never live that one down. Regarding the slick black theme: yes, it’s understated, and surprisingly, yes, it’s pretty much done. I downloaded it of course, because I can’t create much of anything, but I can always edit and tweak. (which I need to do because I want my links underlined and my blogroll subcategorized) However, I really like the minimal, clean look. Maybe in a month or two I’ll think to add a graphic here and there, but the day you see a flash ad at the top (for yarn and fabric!) is the day you know for sure I’ve been abducted. Thanks Vijay and TinyShrink MD (heh) for the shout outs.

Bags:
As I wrote on Twitter the other day, I have a serious thing for bags. I am, in fact, completely indistinguishable from a woman shopping for purses with the level of scrutiny that I investigate pockets, seams, zippers and compartments. However, the presence of my Y chromosome does mean that I must depart somewhat from my inner female in that looks and it matching anything else I have are nearly irrelevant. I don’t care if the bag looks like a freak accident that escaped the Coach genetic testing labs–I care about function,form, and feel, ONLY and in that order.

So my brother was here last week, and I saw a bag he had that I don’t recall his having this last Christmas. I asked what it was, and he said “Weren’t you the one that told me about this?” Disgustedly, I gave a look like, “You fool! Do you think I’d forget something like this?!?” as I pawed The Precious.

Here is the object of my desire. It’s different from my brother’s, but our gear needs are different. Yes I know the orange isn’t the most aesthetically pleasing color, but just look at that removable DSLR camera bag attachment. Yes, I know the whole “snake” theme is a bit odd, but that’s some sexy stuff. YeSSSSS!

Obviously, I’m not getting this anytime soon, but my current eBags laptop backback is not doing too well (in fact, it’s nearly unrecognizable from the online pictures). It’s also surprisingly heavy all by itself–something I found recently as I emptied it to have it be managed by Claudia when I was last in the hospital. “Honey, I need this because, like, you know, the next time I might be in the the hospital–what? yes, I know the doctor said all would be fine, but you never know…ok!–I’m just saying, the next time, if I have this, it won’t be as heavy for you when you have to manage it,” just isn’t very convincing. I’ll work on it.

Social Networking:
In my previous life, I was a senior-level IT person/consultant. It should come as no surprise, then, that when faced with a “SIGN UP NOW” email from a relative, friend, or annoying co-worker–it matters not–in order to see their pictures or whatever online with some proprietary service, I normally would hit “delete” without a second thought (and might even be annoyed that thanks to them, they at least have my email address). Why on earth would I want to give away my information to a business that I have nothing to do with who, upon trying to make ends meet, will be like so many others and whore their user data to the highest bidder, maybe even sinking so low as to start putting up yarn ads. (If you got that reference, you’ve read this all the way through and I thank you from the bottom of my ad-less heart)

Maybe it’s the sweltering Texas summer heat, maybe it’s having some burnable time on my hands, but I seem to be trying out new services sites like it’s going out of style. Normally meticulously recorded in SplashID on my Blackberry (encrypted of course), I have yet to keep up with all the usernames/sites I’m registering. It’s like I have Daddy’s credit card and going on a registration/shopping spree and don’t care about amounts or receipts, wadding them up and throwing them on the floor as I search the next target. There’s a ton of redundancy and overlap in these things, and I think I’ve reached the limit of what I’m willing to try. I think with each useful service, there is a “best of breed” product; that’s the one I’ll sign up with.

And what it is with the lack of vowels in these names? Flickr. Stumblr. Feedlr. Tumblr. Mastrbatr. I gotta pull back before some 21-year-old CIO in the Bay Area tweets to his other entrepreneur buddies and with all their collective information figures out the exact position of all the constellations at the time of my birth. On their iPhones.

(Medical stuff–personal and news/commentary–coming in a jiffy, I promise!)

Blog updates

Tonight I plan to upgrade this site to Wordpress 2.5.x. I’ll also be applying a new theme, though I’m not 100% sure which one it will be. I can say, however, that it will NOT be a completed task anytime soon. I’m not a web designer and I don’t want to waste time making things purty. I care more about functionality and such and will be adding a few new plugins as well. So, if there are a few glitches y’all notice over the next 24-48h or so, please PLEASE let me know. Letting me know what you think of the new semi-temporary look and feel as well would make me verrry happy.

I may yet continue as a Mexican medical student at another school, so I haven’t given up the domain yet, but it’s time for some serious housecleaning around here. If your blog is not on my sidebar and we’ve commented/emailed in the past, let me know–it’s just on oversight on my part. OK, time for me to start scrubbin’!

High Definition

One of the things I love to do in my free time is photography and video. I don’t claim to have any special talent for either, but given enough time and footage, I can make something pretty cool video-wise. For our IRS “stimulus check,” (which, thanks to my working last year for those months I earned one) we did our patriotic duty to help piss in the ocean invigorate the economy and bought a high-def camcorder. Given our financial situation, this was a rather extravagant purchase (and I bought it for way cheap as a refurb, so I think I did pretty well) but our 5-year-old camcorder was ailing so badly, I’d rarely break it out; consequently, I missed filming many moments of our little one.

Here’s the funny part: there is no HDTV in any of our family members to be found. Oh sure, the computer monitor can serve that purpose, but who wants to watch a movie on a 20″ monitor? After the firesale we had in Mexico to move back, the only TV we have is this bargain basement 21″ Magnavox which does a shitty job of showing standard definition without problems much less HD. So why bother with HD at all? Simple: futureproofing. I have yet to see my daughter’s 2nd birthday last month in its full HD video glory, but it’s on digital tape (HDV format) whenever that time comes…

…which leads me to another quandary: this whole process has underscored how much I need to upgrade my computer system. Handling HD video is seriously CPU/GPU intensive. The raw video (1920×1080) doesn’t even fit on the computer screen. The disk space requirements are enormous as well: going from HDV->Apple Intermediate Codec will cost almost 75gigs/hr of hard drive space. Ouch. Now I need a RAID array as well, because I sure as hell ain’t going to trust a single drive to be slammed with that much I/O, project after project, and survive for long.

But what a cool camera. In truth, I can record in HD and export in downsampled SD DV like any other tape-based consumer camcorder. The difference is that 1) I have the original footage in HDV format on tape for future re-import, and 2) the image quality is STILL a product of a superior CMOS image sensor and all the functionality the camera provides leveraged to make a much better video product. I’m still learning everything, and I’m scared that the more I learn, the more I discover things like “if I had this kit to use a 35mm lens adapter, imagine what depth of field control I could have!”

I am not a filmmaker, and I have no plans to change careers to become a cinematographer or movie editor. I think I am drawn to this new (and inevitably expensive) hobby because it channels the dormant parts of myself that are creative, that do yearn to create something brand new, or at the very least, transform the ordinary into something special. Just as a picture can be worth a thousand words, a visual story can be worth a thousand pictures.

This should be fun.

Zippity Zoom

I got broadband again! YAY!! :D No more having to go to the school library or Starbucks (unless I really want to) to do anything more bandwidth-intensive than quickly check email via Gmail’s You’d be surprised how long even Gmail’s web interface which appears text-only takes to load. All that Javascript/AJAX code and the 10-15 cookie/status/God-knows-what-else checks take up a surprising amount of time. Loading a Youtube video or a sizeable attachment? Fergedaboudit.

Speaking of Starbucks (yes, they have quite a few here), they actually have holiday cups and some Christmas decorations, as well as their “Holiday Blend” coffee. However, gone are any real holiday flavors–no gingerbread latte, pumpkin pie spice or other seasonal favorites–just a lame vanilla and/or toffee something-or-other. That’s not a special–those syrups are there all the time! I actually hardly ever get the “candy-in-a-cup”-type drinks, preferring straight-up coffee. During the holidays, though, I do indulge a few times with a beverage treat that only comes this time of year. Too bad it’s not here.

Compared to the tin-can-and-string technology I’ve been using for the last week to get online, not having a flavored coffee is nothing. ;)

Re-solidified (?)

Since my last post was “Meltdown,” I guess that’s an apropos title, since everything is back up and running. The final diagnosis for the desktop: simple drive corruption. Thankfully, I don’t have to buy a new drive! I have no idea how it got corrupted, since as it was going south, I was in front of it doing nothing special, but I ran several utilities that stressed the hell out of the drive (writing 1s and 0s randomly in all sorts of patterns covering the disk multiple times) and nary an error was reported.

Unfortunately, I was not able to recover all the data. Between data recovery efforts and backups, I got more than 80-90% of everything, and I’d say that almost everything that was important (since I backup that stuff more often) is still with me. It was a classic case of diminishing returns: the first day of full-on effort yielded by far the most data, the second day a bit more stuff but at far greater time and effort, and by Day 3, I had to just chalk the remainder up as a loss. I had a HUGE project at work that required me to work almost all day this last Sunday (another reason I hadn’t updated), so I didn’t have oodles of time to burn with my system in lala land.

The laptop was obviously fine from the start after I wiped it clean since its problems were always more superficial and was a result of my being overcautious than anything. It was “home base” for everything and turned out to be a trooper. What was massively cool is that my MPB has an 80G drive–adequate but small by laptop standards nowadays. It has one Firewire port which was connected to my desktop, which has two physical internal drives. The freaking awesome cool thing I had never tried in target mode is hot-connecting more physical drives to the slave machine. In this case, I added two more external FW drives to the G5, so my wittle bitty Macbook now had 5 physical drives mounted for a total of 880G of total raw space at its disposal!! Mwahahaha!

Ok, enough geekery, I promise. I just wanted to post a quick update before the posts that are about to go up because I got some comments (thank you) and wanted to bring the minimelodrama full circle. :)

Meltdown

I have had a complete and total computer meltdown today.  I finally got my hands on the new version of MacOS X 10.5, “Leopard.”  Since I’m overly-cautious, I decided to put it on my MacBook Pro since it has very little “unique” data that was easy to back up first.  The update hosed it.  My usernames were gone and other esoteric problems had myself spending way too much time in single-user mode.  I doubt I would have had any semblance of a system left if it weren’t for my existing UNIX-y skillz.

To make this part of the long story short, I got it working…sort-of.  It’s the same in medicine–you know something is wrong, but all the labs say things are fine–except in medicine you can’t say, “OK, we’re going to just erase you and start from scratch.” LOL!  I was reading articles online on my desktop to help w/the laptop situation, and then–after the laptop is pretty much behaving oddly enough to say “screw it, I’m wiping it,”–my desktop started chunking. There was no noise, but the fan started revving and the CPU seemed pegged.  It took seconds just to switch windows, probably a minute to switch to a different app, and just general badness. When I looked at the system logs, all I saw was “I/O error” over and over, and it corresponded to my boot disk–you know, the one that has a bunch of important stuff on it.

Booting from install CDs to run disk utilities was an exercise in futility. 2 out of 3 times, I couldn’t get the disk to even be recognized.  It was then that I had my “Oh shit!” moment: thanks to the laptop fiasco I realized I had no working computer to fall back on.  The cruel irony that sadistically played out in my head over and over was that I intentionally left my G5 alone, pristine because information on it was too important until Leopard proved its spots.  My karmic fortune makes me wonder if I clubbed harbor seals in a former life.  

Besides sharing my woe (and on the 31st, no less), the other important update is that I had no less than 5 blog drafts >90% completed to post.  One of them was on MRSA, another was on emergency medicine….it sucks that I lost all that work, but that’s still not even the worst of it.  I am still trying some voodoo to see if I can at least salvage some recent data, if I can even get the sucker to mount. (don’t mind the goat skull on my CPU and the salt circle on the floor)  I do have backups, but my iTunes library alone is >40G, so it gets kinda hard sometimes.  I might have lost everything in the last 7-10 days in terms of documents, collected data, bits and pieces, etc., but I have a 2nd internal drive which stores most of my multimedia (Aperture for digital photos, some video movie projects, etc.).

So as to not lie on the bed crying like a girl, I remind myself that I’m not a graphic designer that lost his entire portfolio and will affect his financial future; this was not a case where my groundbreaking research into blah-blah went up in digital smoke.  I have a reasonable collection of backups across different external drives, but it’s going to be a major pain in the ass to figure out how to put Humpty Dumpty together again (and where to get another sATA drive of any decent size down here w/o paying practically double price).  

One step at a time….more soon…    BACK UP YOUR IMPORTANT DATA! 

Programming Languages Are Like Girlfriends

I was reading this article about a PHP developer’s love affair with Ruby, an increasingly popular scripting language. Like “love affair” implies, it was intense, passionate, difficult, but ultimately ended. Ruby’s greatest asset is that it was developed from the ground up to be strictly object-oriented (that’s way too huge a topic to go into here) in the face of “bastard” scripting languages like Perl and PHP that borrow from several “standard” languages (making them more flexible, IMO). Ruby has received the most exposure via a Ruby-based web-creation framework called Rails, and people swear it’s the best thing since man invented fire. Whatever–I know better and I’m not drinking the Kool-Aid.

Ok, background done–I mentioned all the above so you can make complete sense of what follows. My main point is that the author listed several lessons learned in his torrid language love affair, and this one really stuck out:

#7 - PROGRAMMING LANGUAGES ARE LIKE GIRLFRIENDS: THE NEW ONE IS BETTER BECAUSE YOU ARE BETTER

Rails was an amazing teacher. I loved it’s “do exactly as I say” paint-by-numbers framework that taught me some great guidelines.

I love Ruby for making me really understand OOP [object-oriented programming]. God, Ruby is so beautiful. I love you, Ruby.

But the main reason that any programmer learning any new language thinks the new language is SO much better than the old one is because he’s a better programmer now! You look back at your old ugly PHP code, compared to your new beautiful Ruby code, and think, “God that PHP is ugly!” But don’t forget you wrote that PHP years ago and are unfairly discriminating against it now.

It’s not the language (entirely). It’s you, dude. You’re better now. Give yourself some credit.

Programming and geekiness aside, I thought that point was very insightful. How many things in our lives do we come back to something, full-circle, and have a vastly different view? By definition, when this happens we have a greater experience base to draw from, and the “time-out” we took allowed us a perspective that would have been otherwise impossible. I think of my impending return back to school and bet that this will factor in somehow.

We all need to experience something different, something that jars us from our current point of view. I’m not suggesting a real torrid love affair (at least not for the married/committed people) to gain perspective or do anything irresponsible, but there is something special in losing oneself in a different activity or interest, pushing boundaries, challenging one’s views, and coming back “home” a better person for it.

WordPress Theme Design