Tail the Latest Log File

I’m grateful for Cygwin. I wouldn’t know how to do this in cmd–though I should probably learn how to do it in PoSH.

find LogFiles/W3SVC1 -type f | xargs ls -1tr | tail -n1 | xargs tail -F

I need to make it an alias now….

XP System Does a Dodge Monaco Ka-Boom!

Apparently, the Dodge Monaco was the cop car in the Blues Brothers movie that served Ellwood so well. It came to a catastrophic end, of course. My mom just had her seven year old Dell do a Dodge Monaco Boom on her:

> I’m very glad that I kept the old machine running all the time until I
> completed Dad’s project (his Desert Symposium volume – 292 pages worth
> of science, hideous tables, multiple weird symbols, and huge graphics).
> Once it was off to the printer **and** the printer said the file was
> okay, I turned off the machine. When I started it up again the next day,
> catastrophic failure! One of the programs even had a pop-up message that
> said exactly that.
Seven years for a Dell desktop computer–wow! We knew it was dying so it hadn’t been turned off for like two or three weeks because it was clearly close to it’s end.

Are Two SSDs Worth It?

I was just pricing out components for a Windows 7 system for a Photoshop user. My idea was to have two SSD drives, one for the boot drive, a second for ssd for photoshop scratch, and a 1TB drive for finished work. A Core i5 system with 8GB ram seems to price out at $2000, including two nice Viewsonic 24″ monitors. By choosing an AMD X4 processor and two 23″ Acer monitors, I can squeeze it down to $1500. That’s a big difference. With the SSDs and a CS4 approved ATI graphics card (don’t need a gamer card of course), a slower processor shouldn’t actually make much of a perceptible difference, right? Seriously–the system it would be replacing is like six years old.

ATI FirePro 3700

ATI FirePro 3700

So my big question is–are two separate 32G SSDs a good choice? To divide up this way? These motherboards come with built in RAID, so would I ultimately get better performance striping both a C: and E: across the two SSDs? Or is it best to just let Photoshop dominate a whole drive just for itself? I’ve always been hesitant to raid a boot volume, of course. And booting off the the 1TB drive is of course…absurd.

All advice welcome.

Edit: it might be better to just raid0 two OCZSSD2-1VTXT60G and get a combined 400MB/s write speed.

Diffed and Merged…and Ported

“Hard at it,” is how you’d describe me these days. I’ve really learned a lot about programming C# in the last three weeks. There’s some stuff I like, even. I’m still, rather instinctively, feeling hesitant to praise Microsoft for anything…but it’s melting.

Consider this latest Tools episode from The Commandline podcast. Thomas Gideon describes a journey, somewhat similar to my own, about early programming in a Microsoft environment, discovering the power of Linux, and trying not to look back. I was rather overwhelmed the first time I tried programming console graphics using the Borland C compiler back in 1992. By 1996 I had taught myself C and Perl and even written an assembly compiler for a MIPS processor in Perl in a SunOS 4.x environment. I went on to programming CGIs in Perl but took a right turn at Cold Fusion more than once at two different jobs, dodging PHP both times. I ended up deep into Java, learning OO and Patterns and Refactoring (Fowler, Beck, Cunningham, et. al.) not out of righteousness….but out of desperation in deadline environments…seeking wisdom and arguments to battle absurd deadlines with. My biggest conclusion was the resulting confusion between reading all of Steven McConnell’s, Kent Beck, and Martin Fowler’s books in 18 months.

Almost all my book reading seems to have ended. I no longer (and not for a few year now, after 18 hour days and 2am pages and midnight server bloodbaths) care to know more than I do from a book. My reflection of being a smug, knows-better-than programmer may as well be a flattened aluminum can. Nothing stops the deadlines. Almost no human programmer/sysadmin can know enough to forestall the melting server farm. So when it came time to convert to C#, it was with resignation. I recognized pretty quickly that I needed to accept that. Anyhow, I’d never become the Free Software rock star I hoped to be…one day. Rather–I discovered that I was pretty darned human: with house, pets, and kids…and limits.

In two weeks of C# programming, I feel actually more productive than my first six months of Java programming. Experience, of course, plays a large role. Knowing how to Google-to-solve is actually so much more fluent to me than looking up anything in a book that I never considered buying a C# book. Poor trees. Poor publishing industry (watch me cry).

It was really interesting reflecting on Cmdline’s thoughts on using an IDE in his latest podcast. He describes how he’s somehow still not as productive with an IDE as with vim. (Boy, Kevin will like to hear that!) I’ve heard the same of Emacs programmers. (Did you know you can setup a VIM SERVER?) I, myself, would be “absocrippled” were I to lack bash (thus: cygwin). But presently, between Visual Studio 2008 and the Advanced Logging package for IIS, my estimation for the Microsoft Web platform has actually…grown.

I find the C# API is actually easier to use than the JDK API (from whence I last used it). Convenience methods and a bit of simplification of file operations seems to have made learning how to work with streams only a few hours of learning…not a day. The expressiveness of “properties” in C# is remarkable. That VS2008 has at least a few built in refactoring capabilities makes simple refactorings quite effortless. In to weeks of programming I’ve already probably thrown out 1/2 of the code I’ve written because I’ve refactored–leveraging properties.

None of these thing were as easy using vim and PHP. The IDEs I was using for Java were terribly heavy, a decade ago. The thing I miss most from jEdit so far is the Jdiff plugin. However, combining WinMerge, TortoiseSVN and the  Comparison Tools add-in for Visual Studio off Codeplex gets me pretty close to the Jdiff plugin. And…I admit…an integrated debugger in an IDE is actually a pleasure to use. I was never comfortable getting the Zend IDE or Eclipse and Xdebug to fit together.

Thus…I admit…from a practical standpoint, I have been amazingly productive in the face of recent…platform adversity…you might say. Granted, I’ve never been a big IDE developer because…nothing is more distracting than a programming environment that slows down your “syntatical expression.” That I’m on the fastest workstation that anyone has ever bought me certainly helps the IDE do it’s job. But really, my situation could be so much more difficult.

I feel like I’ve accepted a lot of change and have remained competent in the face of it. I have to be grateful for that. And I remind myself…that even though it’s not F/LOSS software I’m developing with, really the real challenge in my life has not been the software, it’s been with programming and programming environments and business in general. The various businesses I’ve worked for have always presented (necessary) challenges for someone who’s naturally inclined to stay home and read sci-fi novels. F/LOSS was not extra-better at reducing my workload.

F/LOSS has always been better at providing turn-around in the face of unfunded development efforts. That’s the biggest change in the last decade: again working at a place where they spend money on you. In San Francisco, they spent money on us (while the VC lasted). But after the bubble popped, it was back to field-stripping your trusty AK47-vim editor on my aged 350mhz machine, waiting for the next small client to arrive. Who had cash for an IDE? “…from my cold dead hands” eh? Stripped down development habits are hard habits to break. Instructive, certainly. Character-building: undoubtedly!

So really the change has been getting me to grip the controls of an M1 Abrams. Microsoft really wants to keep their developers. Just listening to a few episodes of .Net Rocks, hearing about their Road Show really put into stark contrast the affluence Microsoft was offering compared to the frugality I was used to. I’d LOVE  to attend a vim or jEdit launch party. Heh!

I’ve described a large difference in my professional life. I don’t want to make myself all worked up by re-treading some older moral points. My sense of panic is evaporating. Now it’s time to remember to pace myself.

Well, the Microsoft has Landed on the Jed

I spent all day getting my workstation to build a set of pretty intense C# projects. I’m impressed that we got it working in a day (not counting the four days it took to straighten out my Visual Studio  install on my Vista workstation). Having developed projects in Perl, PHP, Java and C, and having been a Linux administrator for 15 years, the process was a bit different, of course.

The biggest difference is how many commercial components I had to manage. Contrast this to a Linux environment where most packages are either pre-installed, or managed by the distribution maintainers. In a Linux distribution, having to hand-roll and maintain out-of-band libraries is not really kosher. One of the things I installed today blew my Windows Explorer away…literally, in one case, a hybrid Java-based installer crashed the Aero interface and dumbed my desktop down to “Windows Basic.” Wow, 64 bit Vista at that.

The other thing that I reflected on was the amount of “oral tradition” that guided the application setup. Since there’s never been a product installer (this being a web based application), setting up the IIS application was never scripted. Wow! This was like nothing I’ve done before using Apache. I can see how an apache .htaccess file would be like black magic compared to an IIS Basic Settings dialog…but its usually just a file kept in source control and often just another bit of automatically deployed collateral…and just another bit of code to a programmer. In this case IIS really involved hand-holding.

The combination of 64-bit and 32-bit libraries was tricky. IIS 7 was not happy for a while until we forced it to run applications as 32-bit. I’ve seen plenty of 32/64 bit dissonance on Linux before. It’s actually quite sad that 64-bit architectures have been around for what…20 years (the Alpha) and it’s still a problem. (It’s still a problem on my home Ubuntu box: Firefox won’t touch my Adobe Flash.) I wish someone, a decade ago, came up with fundamentally better ideas on how to deal with combining 32- and 64-bit software together. The notion of “just keep them separate” is quite unrealistic…unfortunately, it just increases the pain…and quite unacceptable when it comes to customers that have invested in proprietary 32-bit development libraries–people won’t pay for 64 bit versions if the 32-bit ones can be made to work.  Makes me appreciate how much work has gone into making so many Linux distros 64-bit friendly, really. The crazy IIS install also made me love bash scripting all the more…it made me think this would be a great time to learn Power Shell and create a PoSH installer for all the components. (It won’t get asked for, tho.)

Time to keep an open mind. Time to shelve my pride. I am now at a place where PHP has being stomped out like a smoking cigarette butt. The last time I coded full time in a Windows GUI was in San Francisco, using JBuilder, approaching a decade ago. The JBuilder eventually got discarded for Notepad++ and well crafted Ant scripts. I wouldn’t think that anyone now would have the chance to discard Visual Studio 2008.

My last thot is…gosh, this is what, like, a million other programmers use every day. I’ve been using F/LOSS components for so long, I forget how much of the world F/LOSS is almost entirely missing. In “typical” desktop and server environment, Windows is still the majority in much of the world. Some day I will develop more with Linux. Mostly, I am grateful to still be employed…that’s is definitely the most important point of all. I won’t let Microsoft be a barrier to that.