I doubt anyone will twitterbook about this on their InterScapes, but I know there’s a niche audience out there for this sort of Excel hackery so I’m posting it anyway.
If you know why you’re reading this already, skip to the code below the fold. Otherwise, here’s some explanation. In a project Work Breakdown Structure (WBS), tasks are organized into major tasks, sub-tasks, sub-sub-tasks, etc. as in the following example which is an actual project plan used by NASA:
1 Build a spaceship
1.1 Read wikipedia article on spaceships to determine required supplies
1.2 Buy spaceship supplies
1.3 Assemble spaceship
1.3.1 Attach top part to middle part
1.3.2 Attach middle part to thruster thingie
1.3.3 Paint spaceship a neat-o color
1.4 Set spaceship upright (facing sky)
2 Fly around in spaceship
3 Discover strange new worlds
4 Return home
4.1 Point spaceship at Earth
4.2 Land spaceship on Earth
4.3 Park spaceship in designated parking space
Instead of sequentially numbering the tasks, we assign subtask numbers to those tasks that roll up under other tasks. Assemble spaceship is a subtask of Build a spaceship so it gets Build a spaceship‘s number (1) plus a subtask number (3, since it’s the third subtask) so its WBS number is 1.3. Attach top part to middle part is a subtask of Assemble spaceship, so it gets 1.3 plus a sub-subtask number (1.3.1), and so on. MS Project also bolds any items with subtasks.
Since this type of WBS or outline numbering functionality isn’t available in Excel, it requires a VBA macro. Free code after the fold.
read more …
Unlike the rest of the known universe, Sprint has chosen not to support the Multimedia Messaging Service (MMS) for picture messages on Windows Mobile phones such as the Treo. This is annoying for many reasons, but most of all because it severely limits your ability to upload photos from your Sprint phone to Facebook. Facebook only allows mobile uploads via MMS or text message, and in some limited ways from mobile email as some iPhone users have figured out. Unfortunately this doesn’t seem to work with emails sent from Windows Mobile phones; Facebook returns a message stating that “you have uploaded from an unrecognized or unsupported address.” What is a poor Sprint user to do? Read on …
read more …
Summary: Leave P2P, iTunes, and wasted plastic behind. When you can’t get your mp3s from an independent distributor like CDBaby, Amazon offers high-quality mp3s without DRM. It’s time to start buying music again.
Out here, in the world, far from the offices of RIAA executives and their overzealous lawyers, plodding along ignorant of the many layers that exist between ourselves and the artists, are the people who listen to music. We don’t want much. Access to music we like. At a fair price. And seriously, no DRM.
First, let’s be clear. Despite my utter frustration with the state of the digital music market in recent years, I have never been an advocate of stealing music. As you can see from my previous post, I take intellectual property seriously and I don’t play nice when people steal from me. So this is in no way a defense of music piracy. I get why people turned to stealing music though. For many of them, it was the same reason I mostly gave up procuring new music altogether for several years. But for those of us who never objected to paying a fair price for a fair product, I think the market is finally catching up with us …
read more …
Update 3: April 4, 12.22pm: This article is now the #1 Google result for a search for ‘Virtisys’. Thanks everybody!
Update 2: March 24, 6.42pm: I think we won this battle. The Vertisys site was moments ago replaced with a redirect to the “Rick Roll” video on YouTube, then shortly thereafter disappeared altogether. Thanks to everyone who emailed, commented, and notified SoftLayer of the copyright infringement. I’m really encouraged by the response I got and happy that we were able to help protect bloggers from having their content stolen.
Update 1: March 24, 4.31pm: My article has been removed. Several other bloggers whose content was used on virtisys.com have contacted me expressing their intent to complain to SoftLayer.
Completely by accident today I discovered that a website I’d never heard of – www.virtisys.com (note the spelling; I am not talking about Vertisys, an entirely separate company) – was syndicating my blog content. Quite obviously I don’t mind if people do that, as evidenced by the links to various syndication services beneath each of my posts. It’s part of how blogging works and how people discover each other on the Internet. But this is different. Unlike digg, del.icio.us, and every other syndication service out there, Virtisys aren’t crediting me. They aren’t linking back to my original post. They aren’t even acknowledging that the post is a syndication. There is a different name for what they’re doing and it is stealing.
They might be doing it to you too. It appears their entire content base is made up of articles by blog authors from all over the world. All of them are technology focused, all of them (as far as I can tell) are WordPress users, and none of them are given credit for their work.
Virtisys provides no contact information on their website, or in their domain registration records, so I have sent a notice of copyright infringement to SoftLayer, their hosting services company, asking them to remove the offending content. To the extent that I have time today, I am also notifying other bloggers whose content is being stolen. That isn’t always easy because Google searches don’t always locate the original source, but I’ve already had a great response from one person (Remko at EvilCoder) who intends to file a similar complaint with SoftLayer.
Just in case you’re reading this on Virtisys or anywhere else right now, you can find my original post at j.modjeska.us. And by the way, no-talent ass-clowns over at Virtisys, I’ve discovered a number of really interesting people and blogs through your site. You’d have a really nice service there if you’d just credit the authors and provide links back to the original works instead of blatantly ripping us off.
I was in the middle of upgrading the Wasington Parkour forum software to the new phpBB 3.0 when I got distracted by a MySQL limitation I wasn’t previously aware of: it seems you can’t drop more than one table at a time in the MySQL command line interface. This curious limitation begs for a command-line script solution, and indeed I was not surprised to find that there are plenty of them out there. As usual, though, I’m reinventing the wheel for my own entertainment.
For today’s exercise, I experimented with PHP on the command line (PHP CLI). Some of the features I wanted to include weren’t in the scripts I found elsewhere, so I built them in order to make this useful for my current phpBB upgrade and on into the future for various other situations:
- Allow the user to store db login information in the script if he really wants to, but if he’s a security-conscious and relatively sane person, leave it empty in the script and prompt him for the login information when the script is called.
- Allow the user to specify table prefixes so only certain tables are deleted. When I experienced epic failure on my first attempted phpBB 2 -> phpbb3 conversion, I had to go back and remove all the bad tables that had been created. They were prefixed with phpbb3_ while the old tables were prefixed with phpbb_. Obviously I wanted to leave the old ones alone.
- Provide some useful reporting on any errors encountered and results of the batch drop.
So, here’s what I have for you today: a PHP CLI script to batch drop all your unwanted MySQL tables (after the fold).
read more …