Search Highlighting in VS 2008
I found a way to highlight search results in Visual Studio 2008, using the RockScroll add-in. I still miss the Highlighter plugin in jEdit, tho.
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.
LinuxFest Northwest 2010 Call For Presenters
At LinuxFest Northwest 2010 I’m going to be presenting on Apache rewrites and MySQL Performance again this year. I see mostly professional level talks posted. I wonder if there will be user-level sessions posted, too? I was considering doing a session on using Gimp. (Think I’m qualified?)
I will bring my hackey-sack and ride my bicycle. See you there!
Presenters and Exhibitors:
Online registration is now open for our 11th Annual
LinuxFest Northwest 2010
April 24th and 25th
in Bellingham, Wash.Presenters, register and click “Submit Session Proposal“
Exhibitors, register and click “Request Booth or Exhibit“
Programming Standing Up
After listening to a Science Friday report on the correlation between TV time and mortality, I’ve decided to stop sitting at my desk. I’ve propped up my keyboard and monitors with boxes. I’ve done it for a week now. My calves and shins are tired, but my legs don’t get fidgety, or fall asleep or get uncomfortable from sitting for long stretches.
I’m going to have to raise my monitors higher. I think my neck is going to tire out. When I cycle home after work, I definitely notice my neck more–bending my head up. My monitors are lower than they used to be. Happily, I think this indicates that the ergonomics of my monitors were very correct for my sitting posture, because I never noticed any neck strain before.
I’d thought about doing this a year ago, but I immediately jumped into a “what do I have to build” and started over-engineering the issue. Cardboard boxes are working for the present.
