Archive for the tag 'engineering'

We don’t need no stinkin’ marketing strategy

I was skimming this month’s Doctor Dobb’s Journal, which doesn’t take long in recent years due to the Microsoft-centricity of the ads and overall relatively lightweight article content (there’s always a gem or two, though, which is why it gets skimmed at all), but ran across an ad for a programmer’s editor that grabbed me, not in a good way.

The ad says “Need a Code Editor that’s Powerful - Flexible - Robust and Supports over 40 Languages?” (For the 1 person who reads my blog who isn’t a geek, by this of course, they mean programming languages)… “Introducing Dr Koder, The Powerful, Dynamic Code Editor(tm)”.

OK, this is fairly wrong on a few levels, as obviously it has to be powerful, and “dynamic” to some degree, and edit code. So why trademark that expression, I have no clue. But the more important bit is “Dr Koder”. No period after the Dr., but I would assume they mean it in the form of “Doctor”, even though there’s no crazy tagline like “heals your code quick!” or “diagnoses your code ills” or similar. So forgiving that, the main point is, “Dr. Koder”, with a K yet? What is this? No self-respecting developer, let alone software engineer, is going to proudly reply to “what editor do you use?” with “I’m a Dr. Koder man!” It just sounds lame. No wait, not just that… it IS lame. A terrible name. Obviously, the engineer(s) who wrote this thing, got naming rights. Don’t do this. Get some consensus, ask around, hire someone… something.

Adding to the hilarity, is the “ComingSsoon! Signup [sic] for your copy Today!” As if, developers wait around for that next great editor with baited breath, and stand in line to get it the first moment, etc. That’s for iPhones, not code editors. Here’s how it works with editors: you download a free trial. If the trial is cripped in any way besides time-limited (and that, something reasonable along the lines of 30 or 60 days), you ditch it. You try it with a small project. You read the manual (well, only after figuring out there’s something you’re “not quite getting”). You see if it compares to Eclipse. You see if it’s got some magical redeeming features / look and feel / behavior (a la TextMate on the Mac only), and if not, stick with Eclipse (or heaven forbid, the Microsoft Visual Studio tools if you’re so deeply stuck in that world), or emacs/vi if you’re a diehard Linux geek and don’t understand the productivity gains of a modern IDE. That’s how it works. Dr Koder has no chance at this point, in other words. Maybe they should get the free trial up and running, and only then advertise it.

Meanwhile, I’ll be using my free trial of Dr. Browzer to surf the web–it kicks Firefox’s ass!!

Y! Engineering is good, but…

Tony Tam posted about Loving Y!. Tony works on the News team, and has been impressed with Yahoo since 1997. I was even more impressed with Y! after interviewing here, because I realized just how few engineers were behind some of the properties, like News. I was amazed. Now that I’ve been at Y for just over a year, I still think it’s a great place to work, but I definitely realize it’s not all type-A strivers cranking useful apps day in, day out.

I’m not a complete subscriber to the “controlled chaos” of Yahoo lore, but I wouldn’t mind if everyone did worry a little more about their reputation as an engineer (notice I didn’t say “coder” or “hacker”), as Tony mentions happened in the old days. There’s the whole gamut from pretty poor, to amazing here, which is doubtless going to be the case when there’s just SO MANY technical folks. I just find myself wishing everyone felt the pain of struggling a little more. I have a young kid, and so true, I don’t want to work 80 hours/week, but I want to work a smart, effective week. I want to really feel I’m producing at least 2X my salary in incremental revenue to Yahoo from when I started. I want to know everyone else shares that desire, too. Funnily enough, it might be just a per-individual trait. Some folks who have been here a long time and certainly don’t need the money, still burn with a passion to make things great, and achieve beyond what is expected. Others think it’s just a job and act accordingly.

I’m going to make it part of my personal challenge to inspire my (new) team to raise the bar… my biggest concern right now though is that there isn’t enough of my team to do anything but deal with the fires burning…

‘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…

Apps apps apps

I haven’t posted in forever. I know. I will start up again soon. But I just looked down and thought, hmm, this is kind of interesting and says something about my workflow… how many and what windows (applications) I have open. I’m currently working on the tail end of a lot of changes to prince.org 3.0, and thought it’s interesting. Here’s what’s currently open:

- Firebird (of course). A couple windows. One to work on the code for a popup, the other is the “main” one with right now, 7 tabs open (about average). The tabs are for: (1) another page I’m working on, (2) the live version of the site for comparison (3) mysqladmin on localhost (4) paypal IPN documentation, (5) google, (6) a page on mailman archives [I'm sending admin mails from the site to a qmail virtual domain to a mailman private list... oh, don't ask...] and (7) typepad.

- A couple folder windows (to the source base dir, and to the icons dir as I was tweaking some graphics with ImageReady earlier.)

- OpenOffice Writer, which has some moderation guidelines I’ve been hacking on, and list of new mods for the site.

- Cygwin bash (rxvt window). For grepping the source, running scripts, quick cvs stuff, etc.

- Cygwin bash (standard console shell). This is essentially my permanent “mysql client shell”. I would use the rxvt window for this (it’s much nicer) but the mysql client for windows does something strange to the std file descriptors and thus, gives no output in rxvt. So… the ugly console suffices.

- iTunes, for obvious reasons. Last played was Ani DiFranco ‘Little Plastic Castle’ and Paris’ new release of ‘Guerrilla Funk’. In case you’re curious, I have 7,738 songs (23days worth), according to the status line.

- Komodo, editing source files. I have 13 tabs (files) open in that. I have to close it at least once a day, it leaks :-(

- EditPlus. Oh, I can close that now I guess. It’s my “old trusty, el quicko” editor. I was using it on a file that I needed to do regexp search-and-replace on. Komodo seems to be lacking that :-(

- Microsoft Virtual PC. Inside that, I’ve got a Win98 installation running IE 5.5. It’s for testing the CSS/DHTML stuff on an older browser. I don’t support anything below IE 5.5, and can test on XP IE6 and Firebird on the main environment. Only other thing I test on is a Mac browser, but that’s the machine next to me.

- Thunderbird. For e-mail of course, and a bunch of the code I’m working on today is relating to sending emails to moderators, etc…

- SecureCRT. Connected to the live machine, comparing some things in the database, etc. I prefer to do that within a completely different session and app (I could do it in a cygwin shell), because once I did that and forgot which database I was modifying and… bad things happened.

- Trillian. But it’s just doing its thing. I’m immersed in coding so I turned its sounds off, and I am only paying attention when someone from my ‘family’ group, my mom or grandparents, come online.

- At the moment I don’t have the PHP Winhelp reference opened, but I often fire it up for a minute, look something up, and kill it. It’s the fastest way to get an answer (for example, the format codes for date()…), often way faster than going to php.net/<query>.

Plenty of other stuff running, but that’s what’s actually open and getting interaction. I remember thinking when I built this machine “hey, 512M RAM will be more than enough!”. Riiiight. If I fire up PhotoShop, it goes into swap…

Anyhow, I though that was vaguely interesting. How different is your setup? I’m actually a little surprised at how much “free software” I heavily depend on; and even the commercial packages are pretty inexpensive. The Adobe stuff is the only really expensive thing, and I could probably get away with a cheaper alternative, but I own it, so I’m gonna use it. I’ll probably wean myself off SecureCRT when I next need to upgrade and pay, which seems to happen every 2-3 years with them. The rxvt shell is a decent enough ssh client.

iTunes for ‘doze rocks

iTunes on the mac was pretty cool. iTunes on windows is even cooler. Why? Because I use a PC way more than I get to use Val’s mac :-)

I guess I didn’t think the sharing would work, right off the bat, but it sure does, to Mac iTunes users, no matter. This is good news–at home, my PC is the one with all the CDs ripped to it–my wife’s PowerBook only has a few CDs; now she can stream them off my harddrive if I leave iTunes on, and she can use my PC to play stuff if she wants it loud (it’s connected to the big Logitech Z680’s in the livingroom).

Second point–I installed it at work on my T30 notebook, and realized that the mac users upstairs in the graphics department have weird taste in music, but cool. Interesting to check it all out.

Of course, this is standard out-of-the box stuff. Nothing mind-blowing. What we really need is to be able to stream stuff off the linux box sitting next to me. Someone must have done that. Yes, they have. A little compiling and tweaking later, I’ve got it working for me. Shweet. Thanks to this story at macoshints.com for the juicy bits). Basically, follow that article… I was doing this on RH9, no big deal, only thing that wasn’t clear from the article is that you do the build (make os=linux) in the mDNSPosix dir of the Rendezvous download from apple, and then the binaries are in build/. (I did sudo cp build/* /usr/local/bin/). Also, you’ll need to add /usr/local/lib to /etc/ld.so.conf if not already there (and then run ldconfig as root.) Make sure you get daapd going (requires building a couple smaller libraries first, and make install’ing them.). Copy the daapd-example.conf to /etc/daapd.conf, and configure. Then, here’s the (cheesy, and not perfect, I know) init script I made (/etc/init.d/itunes): This will obviously require some editing before it’ll work for you!

#!/bin/sh
#
# Startup script for mDNSProxyResponderPosix and daap, ie. iTunes server
#
# chkconfig: 2345 95 05
# description: set up this machine for Rendezvous and DAAP protocol (iTunes sharing)
#

# Source function library.
. /etc/rc.d/init.d/functions
. /etc/sysconfig/networking/devices/ifcfg-eth0

PATH=/usr/local/bin:$PATH

prog=”mDNSProxyResponderPosix”
prog2=”daapd”

[ -f /usr/local/bin/$prog ] || exit 0
[ -f /usr/local/bin/$prog2 ] || exit 0

start() {
echo $”Starting $prog: ”
CMD=”mDNSProxyResponderPosix 172.20.31.170 dotnet ‘Ben RedHat9′ _daap._tcp. 3689″
#echo “Running: $CMD”
$CMD &
RETVAL=$?
touch /var/lock/subsys/$prog

echo $”Starting $prog2: ”
CMD=$prog2
$CMD &
RETVAL=$?
touch /var/lock/subsys/$prog2
return $RETVAL
}

stop() {
echo -n $”Stopping $prog: ”
killproc $prog
echo
rm -f /var/lock/subsys/$prog
echo -n $”Stopping $prog: ”
killproc $prog2
echo
rm -f /var/lock/subsys/$prog2
return $RETVAL
}

case “$1″ in
start)
start
;;

stop)
stop
;;

status)
status $prog
status $prog2
;;
restart)
stop
start
;;
condrestart)
if test “x`pidof $prog`” != x; then
stop
start
fi
;;

*)
echo $”Usage: $0 {start|stop|restart|condrestart|status}”
exit 1

esac

exit 0

By the way, Eclipse rocks too. I’ve kinda given up on Komodo, and am just using Emacs again for PHP. Sigh.

Assorted geeky stuff

Hey, remember VisiCalc, the precursor to Lotus 1-2-3? Well, maybe you don’t. I do, mostly as a “business” app that I couldn’t afford (on a platform I couldn’t afford–the Apple ][). And I wasn’t that interested in that kind of software at the time, mostly games caught my fancy when I was trying to get a VIC-20 of my own.
Anyhow, what’s really cool, is that you can download the reference card and a working executable of VisiCalc (for the PC), from Dan Bricklin’s site. And great reading for the geeks is some of the design/programming notes from Bob Frankston’s pages. If you’ve never coded in a memory-limited environment, or in assembly, or for performance, it’ll be eye-opening reading. Lots of stuff that has been ingrained into my habits throws back to those days–including a few habits I’ve had to break to avoid premature optimization. I often think about students who learn Java as their first (does this happen?) programming language, are missing so much of the coding landscape, context which is entirely necessary to building quality systems. Sigh.

Got my my first issue of “ACM Queue” in the mail the other day. I was shocked they actually sent it to me in Spain, for the free intro offer, and supposedly at the same subscription rate as for US orders. Anyhow, it’s decent. A little bummed the first issue I got was the June (maybe the mail is just that slow), but content-wise there’s some really interesting stuff. The focus of this issue is ’storage’ and the interview with Jim Gray was pretty interesting; the article (primary) on physical disk stuff from a Seagate guy (Dave Anderson) was not that thrilling, nothing too new there. But the overall level of the articles is good, not quite up to some of the orther ACM pubs but worth the time. In the end, I doubt I’ll subscribe–I’ll just read the interesting-sounding articles on their free site. As much as for any other reason, I don’t feel the need to have trees destroyed and stuff mailed around the globe, for me to receive this info. On the other hand, I’m not giving up my New Yorker subscription anytime soon :-)

I forgot whose blog I found this link on originally (sorry), but I’ll link to this here too, ‘cuz it’s high on the geek factor: not quite a DIY project, but a nice one-off: a homebrew Segway clone.

Tool links: URL Bandit watched the clipboard and snatches out URLs it sees, handy, especially for blogging…

Everyday tool roundup

I thought a good, non-personal-info-divulging post I could make would be about various tools I use, this way I can vent, and maybe someone can suggest improvements to my workflow, etc. I won’t get into the things I deploy on servers for apps, mostly because this tends to depend on the project more than any personal bias (I hope). In this post I’m just going to share the applications I use daily for my tasks, not the things I deploy. Maybe in the future I’ll do one for libraries I use a lot…

Email
Corporate: Outlook. It’s just the best windows-based reader, and I need the Exchange integration, so options are limited. I like it and am used to it, anyhow.
Personal: Yahoo business webmail. Yeah, it’s a little clunky, and the spam filters aren’t perfect, but it’s pretty damn good webmail, that works everywhere, it fairly light, and “reasonably” priced. Aside from a few weeks 1 year ago when they kept screwing up my mailbox, it’s been flawless from a reliability/stability standpoint. It’s my browser’s homepage.

Word processing, Spreadsheets
Microsoft Word & Excel: I give in, I’ve just been using them too damn long to use anything else. If I could convince my CEO to switch the whole company to openoffice, I’m sure I could live with OOWriter etc… but I sort of know where everything is in the MS apps, I have my little style-macros set up, blah blah. Anytime I use Word to write something longer than a few pages I run into the various ugly spots (list numbering, outline vs. normal text authoring, master document bugs, etc.) but I generally know the workarounds. I seem to remember loving AmiPro in a previous life, but M$ has the corporate world beholden at the moment. And Excel, well, it’s possibly the most polished app Microsoft makes, I think. An assload of features that actually work, and eminently useful for light- to medium-weight analysis. I’m going to ditch my pirated copy of office at home (well, technically I think I am covered by our corporate license somehow) one of these days, and really try StarOffice or OOO. Certainly on the Mac at home, I’ll give it a go–I have a no-pirate policy on the wife’s computer (whoo hoo licensed Adobe products!)

OS
To put it simply: If I want a desktop, I run Windows. If I want a server, I run Linux/FreeBSD/Solaris, depending on the purpose and pocketbook.

Coding
Ah, now we’re on to the serious stuff!
Editing/IDE
On unix-ish machines: Emacs, with my php-model.el and some other goodies. vi only when absolutely necessary. On windows, we get into a world of pain. Yes, I know I can get emacs for windows, but I just… well… hate it for some reason. It feels kludgy, and if I can drop files on a window to open them, I like to.
I’ve been trying out a few different editors. For C# of C++, no argument, I use work’s copy of VisualStudio… the Intellisense, and GUI builder integration, is so tight, I think it’s insanity to use anything else. But mostly I don’t do that kind of stuff these days. (Strangely enough I always got away without a “smart” IDE for Java when I did a lot of that… I typically just used Emacs. Probably these days I’d go for IDEA or Eclipse, though.)
Anyhow, I have purchased EditPlus in the past–it’s super small, light, fast, and basically pretty nice, but isn’t really IDE-ish–but a very strong text editor, and fits nicely on a floppy. I am glad I bought it, but only use it for lightweight stuff now.
Most of what I write these days is PHP and Perl, so I have been looking into IDEs that support that. I like the freeware-ish PHPEdit, but their release management is horrid, and each version seems to have different, but significant bugs, than the last. I was using a year-old version for quite a while, and it was 95% right. I don’t trust them to be able to support it in the future though. Editors are tough, for open source.
I also just bought the personal edition of ActiveState Komodo, and in the first 10 minutes of using it I found 2 bugs. Over the next few days, I’ve hit two distinct, important bugs–one is a crash, the other is a weird some-keys-no-longer-work thing. Also, it’s still pretty slow–faster than the previous releases, but 2.5 is still a bit of a dog. I don’t know if that NSPR library is really the right choice, but it would be comfortable to have it on both Linux and Windows. Right now I’m really just interested in Windows. The quality so far is making me wonder if anyone at ActiveState actually uses Komodo for coding tasks…! I’m hoping to get some use out of the Perl, XSLT and Python dev modes though, they look promising.

Revision control
For now, I’m a cvs man. I’m playing with Subversion for a new mini-project, I love the atomic aggregate commits (you know them as ‘changesets’), but the tool still seems a little rough around the edges, and the biggest thing is how happy I’ve become on TortoiseCVS. I still use cvs command-line on linux a ton, but more and more of my coding is done in windows, and Tortoise just kicks ass. I think they should start charging for it :-) It’s a shell extension that provides interface to CVS, and it’s really slick. Excellent piece of software, and they’ve just about got all the bugs worked out of it (for a long time it was in the “promising, but crashes explorer” phase). If they make a version of Tortoise that supports Subversion, I think I’m sold, that’s it, I’m done, source code control is a solved problem for me. (If you ever feel the need for entertainment, buy me a beer and I’ll tell you about my previous employer’s experiences with BitKeeper!)
I also use ViewCVS, and can’t live without CVSSpam (it’s in Ruby!).

Instant messaging
Trillian Pro. It rocks, especially now that it supports Jabber (which I honestly haven’t gotten working with it yet, but they claim it works.) Pro 2.0 adds nice polish. Seamlessly supports MSN, AOL, ICQ, Yahoo, and looks good doing it. That reminds me, I really need to start looking more seriously at the Jabber protocol/specs…

Password management
OK, I think there may be better (or cheaper) tools out there, but I use Eldos Keylord. It’s some shareware I bought for doing pw repository tasks. I keep the repository (apparently blowfish-encrypted based on the pw you enter every time you open or save), on my removable flashdisk key-thingamabob, so I always have it with me. It’s pretty small, and has some intelligent features, plus a pocketPC and palm version, if you’re into the PDA thing. A nice touch is that if you buy all 3 versions (it’s pretty cheap), you get the source… so you can audit it for security if you’re paranoid about that kind of thing. I love the “lock on minimize” and “timed minimize” features, just in case I forget to lock my notebook (ctrl-alt-del, enter) when I walk away.

Shell/misc
Gotta have Cygwin on windows–I can’t live without tail, grep, wget, rsync, etc. etc. from the command line. Also I bought PowerArchiver, a really nice windows zip tool. It’s not perfect, but really close, and understands .tgz .bz better than Winzip, it seems.

Web browser
Firebird all the way. I still use IE for final site testing and corporate Exchange webmail, but that’s about it. Firebird is just the cat’s meow. Must-have extensions: the Live HTTP Headers, Venkman JS debugger (amazing), and the Web Developer toolbar. These extensions, plus Firebird, make my life so much easier it’s ridiculous. I can’t honestly think of doing web development (especially the front-side stuff) without them.

RSS Aggregator
I used to be a big fan of Dare Obasanjo’s RSS Bandit, but now I’m leaning towards the web-based Bloglines. More on this as I get used to Bloglines… it’s just a huge hassle to only have one place with my feeds. The web is the obvious location for this kind of app, though, IMO. When they start charging for it (inevitable) I’m sure lots of imitators, probably even sourceforge projects, will pop up to duplicate it–it’s pretty simple. But a good idea.

Bug tracking
Bugzilla. I know it’s old, creaky, and the code isn’t great. But it works, and has a zillion features, and is free. You can’t beat that. Fairly easy to integrate into CVS with a little scripting, or do anything else you want with it… and scales to large projects and teams pretty nicely.

Remote access
ssh on windows: Well, I advocate other folks use PuTTY, because it’s free and good (and the key agent can be utilized for TortoiseCVS, which is sweet), but I usually use SecureCRT. Partially because I’ve paid for it, but also because I’m so comfortable with it, it’s copy-and-paste semantics, etc. It’s pretty solid, and pricey for a single home user compared to PuTTY, but I like it.
scp on windows: WinSCP, it rocks. And faster than the cygwin tools…
FTP on windows: I don’t do much of this. When I do, I use SecureFX (because I bought a license along with my SecureCRT one), but I don’t really like it. When I’ve been forced to do a bunch of ftp from windows, I’ve used LeechFTP, but it’s not being maintained and has some weird bugs that can corrupt transfers, it seems.
Xwindows on windows: I am a big fan of XWin32, although honestly I don’t have a legit license for it, and have stopped using it. I find it’s not really necessary, just nice to have. The cygwin xfree32 stuff will sort of do the job too, but it’s really painful–XWin32 is much nicer. But not nice enough to justify the cost, for me personally. If I can get an employer to pick up the tab, I’ll run it.

Database & other design stuff
Of course for SQL server, I use their tools; mostly Query Analyzer, less so Enterprise Manager (can do a lot of the DBA stuff from QA by calling stored procs, anyhow.) For Oracle work (I don’t do much of it…) I use an ancient copy of FreeTOAD. For mysql, I have tried a ton of GUI tools, and decided actually, I like phpMyAdmin (web-based) the best! They just continue to pile on the features for it, and it actually is really fast to use once you’re used to it, and it’s running on a box on the LAN.
For DB design, I like DeZign, although I’ve never bought enough copies for all the people that should really have it.
I’ve played with Rational Rose and a couple other UML tools, Visio was my favorite of the bunch, but basically all of them were too expensive/too formal/too restrictive for me. I am not a huge UML guy at the moment. We need the depth of thinking that is enforced by these tools, but I’m not convinced the notation itself is necessary to actually get most things done, or even the best way to communicate it, although a shared nomenclature for expressing functionality and interactions is a good goal. Most of the apps I’ve devloped didn’t require that level of “interaction management” if you will, though. <soapbox>We were usually successful with: Get a bunch of smart people together; hash it out on the whiteboard; everyone break for a few hours or days to have a good think, and while the project architect drafts up a proposal (and thinks about/creates a small prototypes); return to the discussion with proposal and clear heads, and repeat steps as necessary. At the end of that, document the decisions. You’ll almost certainly have a good solution, if you have quality people. </soapbox>

Project management and related
I’m forced to use MS Project, but I really don’t like it. It was a bastard stepchild for the longest time, with no updates from Project 98, and now the new version is bloated and heavy. I’ve actually started just using Excel and a few small macros for sorting, etc. I’m in search of a good web-based on, the most promising seems to be dotProject, but I’m not convinced about it either, yet. I’ve found a bunch of bugs, and the dev team seems a little on the green side. But, they are making progress, so I hope it becomes really usable soon… I’m unlikely to advise any org I work for to fork out the bucks required to run Project with ProjectServer, etc…!
PDF Generation: I’m actually using the free PDFCreator at work, due to lack of enough Acrobat licenses. It’s good enough for translating stuff to PDF; no editing, etc. For handing off specs, or excel files with data I don’t want messed with, it’s nice. Again, can’t beat the price.
Group documentation: TWiki. I don’t love it, but it works. I wish it worked properly with JGraph, which rocks.

Sysadmin/IT type stuff
I won’t get into all the junk we have installed, but here’s the ones that I actually “use” every day:
Performance monitoring: Cacti is the way to go for me. Small, free, decent, in PHP (hackable). Scales reasonably well…
System monitoring: Nagios with a bunch of custom plugins for application monitoring. Everything you need, but not much more. Scales well and the config language is worlds better than BigBrother.

Miscellaneous/Trivialities/Home-use stuff
Souds: Winamp lately, and when I’m entertaining, run MilkDrop on the projector for the Ibiza-club-in-your-livingroom vibe :-) I even have a MusicMatch license, and use Winamp, so whatever that says…
CDR: Nero. It came with my drive, and I’ve been happy with it, it just works.
Graphics: I’m no pro–but my wife has legit copies of Illustrator, Photoshop and InDesign–so on the rare occasion I need to toy with that kind of thing, I use this stuff on her PowerBook. Whee.
DVDs: WinDVD. The only thing that seems to work properly with my SP/DIF soundcard and both my LCD monitor and projector.
Remote control: uICE. It rocks with the remote that came with my soundcard (ATI remote wonder thingy)

Hmm, that’s about it I guess. Anyone have suggestions? Comments? Pointers to other useful tools I might need? I accomplish all the types of tasks I need to do, with the stuff above.

That’s like 50 years old!

I have a team of developers who work for me. Some are Linux/PHP/Perl/mysql guys, some are IIS/ASP/MSSQL guys (and apparently from their behavior, never the ‘twain should meet). My background is definitely biased towards the former camp, but I try to be impartial. Sometimes, though, I really see stuff that just blows my mind.
We have a payment partner who shall remain nameless (but it rhymes with “iBill”). We used to use a value from their admin interface to calculate some stats. This page changed. The 500+ line vbscript that, among other things, scraped for this value, is broken. The developer gave up on making it work. Customer service complained enough that I just sat and wrote a 1-page LWP-based script to fetch down not only that number, but the entire list of active customers, which is useful in many ways. I told the developer of the vbscript about this, and he was interested in getting at the data (it’s cron’d to pull every morning.) So, I told him the directory and server (it’s on a linux box), how he’d need a ssh client (and where to get one), and said give a holler if there’s any problems. I was curious to see what’d happen.
Cut to later that day. He tells me he can’t get on the machine because there’s too many people already connected (huh?) He shows me, sure enough, Remote Desktop says it can’t connect. I inform him that true, the linux box doesn’t support microsoft’s remote desktop. I explain again about ssh, and he must have at least read the mail, because he had installed PuTTY. He fires that up, and can’t get in. Nope, really, SSH–telnet ain’t gonna do it. OK, now password doesn’t work. Right, the linux box doesn’t understand your microsoft domain password–but it’s the same as your cvs login, which is on the same machine. OK, now he’s in. Command line. Boom. Now what? I say “well, it’s command line, but you know, like DOS”. “DOS? That’s like 50 years old!”. Sigh.
I say, “I sent you what directory it’s in in the email”, and watch. He figures out “cd” is the way to get there… good start: “cd home/pmt_logs”. No go, I tell him “you need a slash before that”. “/cd home/pmt_logs”. I correct him, he gets there. Types “dir”, and thanks to years of bash shell alias hacks being now standard on RH9, it works. After a few more moments I realize he hasn’t the faintest clue how to examine the contents of a file. He indignantly asks how is he supposed to access these files?!
I give in and just make a readonly Samba share on the box.

Why is it that the commandline is so scary to these folks? I know CMD.EXE sucks ass, but if you are a coder on windows, shouldn’t you know at least something about it, or commandlines in general? I’m not going to offer any insight that wasn’t already much more eloquently delivered in Neal Stephenson’s “In the beginning, was the commandline” book, but seriously… all Windows coders should install cygwin and read a book. I don’t hire people who can’t explain at least the concepts, if not the final meaning of a commandline shown to me by Marc Slayton years ago. (It’s goes something like this… what does this do? “cat /var/logs/httpd/access_log.tgz | tar xzf - | fgrep -v ‘.jpg’ | cut -d’ ‘ -f1 | sort | uniq -c | sort -rn | head -50″). Needless to say, I didn’t hire any of the MS guys, they were all inherited. But I did get this same programmer from above, interested in learning some Perl [on win32], much to my surprise, so maybe there’s hope for skill expansion yet.