"R is similar to other programming languages, like C, Java and Perl, in that it helps people perform a wide variety of computing tasks by giving them access to various commands."
Oh. My. God. I just don't even know where to begin.
I'm in Oxford now, and took the opportunity to drop in on london.pm at their June social. Nice to meet all of you, and thanks for being so welcoming! You have good beer.
I have a project that's needed some improvements for a while. I had been putting it off, because I thought it would be very difficult to get everything done well, and I was also waiting for a colleague whose input would have some (extremely minor, but good to have as an excuse) impact on how I implemented the changes. Finally, the colleague's comments came in, and I got started.
In about three hours, I had everything done that I had wanted to do. And tested. And this wasn't just a single thingI had to write several new helper methods, add additional database code, write a few new templates, tweak a stylesheet. My errors during the process were all simple things, like missing semicolons.
I'm looking at the working result and feeling happily flabbergasted that it all worked so smoothly.
And I'm trying to figure out how it happened. Is it that I spent months thinking about it instead of doing it, so that when the time came to code, I had already worked it out? Was it actually a simple process, and I had just convinced myself it was hard? Did I become a better programmer in the few months since I planned to start?
Whatever it is, it's a good feeling. Now, if only I could do something so that this is the way I work all the time....
For several years, I've been looking for the perfect laptop bag. I have a very cheap nylon briefcase from my company, that happens to be very good: it's lightweight, small, but very expandable--I can put a few hardcovers in there if I need too--has the right amount of pen slots, etc. But it's ugly, and cheap, and unpadded. Yet everything else I've seen is inappropriate in some other way--so heavily padded that you can't put anything else in there, the size of a suitcase, heavy, ugly. I've even bought one or two that I never use, and from one of them I removed the padded liner and use it in my cheap bag.
It's only relatively recently that I've started to use CVS for my software. I'm a one-person operation, so it seemed like overkill, but one too many times of "Shit! This doesn't work anymore--what did I do to screw it up?" and I got onboard. Initially I just kept things there and moved them to the right location by hand, but then I wrote actual "build scripts"--it's an embarrassment to call them that, just a few shell lines looking like
cp -r templates/--but they work, and when I type "make install" I feel like a Real Programmer.
The side effect from this is that I never carry my laptop anymore. I have a few computers at work, I have a few computers at home, everything has about the same software, and all I have to do is remember to type "cvs commit" when I leave the office, and "cvs update -dP" when I get home. And vice-versa. It's really great, I must say.
I'm still looking for the perfect bag. I do travel, and need to program or show demos or whatever. But it's no longer the crucial thing that it used to be, thanks to version control.
I had an extremely enjoyable time going out for beer with some Perl programmers. Professionals, that is. I program mostly for fun, so I usually don't have the chance to talk to programmers in person. Thus when I have problems or issues, I express them poorly and then get humiliated on some mailing list.
What was particularly great was the fact that everyone has the same issues! And there really is MTOWTDI! I would say, "I need to do so-and-so, and it's a pain when I have to...", and someone would say, "Yeah, I never figured out a good way to do that either" or "Just don't use [something that everyone uses], it's a waste of time."
Or we'd be discussing a so-and-so, and one person would say, "Well, I always use This and That and The::Other::Thing," and another guy would say, "I hate This and That; I use Foo and Bar and then I wrote a wrapper The::Other::Thing::FooBar so my code will work with his," and then another guy would say... And these are all people working at the same place! And they work on things you've heard of, and used!
I guess this is stuff that everyone knows. But it's nice just to hear it, and to know that not everyone is busy embedding FORTH interpreters into their code, or golfing DNA sequencers down to 67 characters, or whatever. And as I've said elsewhere, I miss being able to turn to the guy next to me and ask a general question.
I am the lead story on Slashdot!
It's also mentioned on the Language Log, and probably in other places too by now.
How cool. And damn, is my server getting hammered. But holding up fine. Thank you, open-source languages and operating systems and databases....
Trying to do some X configuration stuff that I would have expected to be straightforward and well-FAQ'ed somewhere. It is less so than I'd like.
Any X gurus out there with some free time
I have released my first CPAN module. Huzzah!
Of course, it has exactly one line of real code, and still it took me about four hours to get it done, what with fucking up the POD, getting confused about the tests (thanks Andy!), and forgotting to read the base class's docs to realize what my module should be returning.
Oh, and then releasing it, only to discover minutes later that I had a big error in the docs as a result of cutting-and-pasting from a similar module. Grr.
Anyway, it's my first module! And more in this extraordinarily simple vein will be coming, before I turn my not-considerable talents to something more useful.
IBM is about to release a new model of the Thinkpad, the X40. Unlike previous releases in the X series, it's not merely a speed bumpit's smaller. Way smaller. My beloved X23 is supposedly 3.6 pounds; the X40, with the same size screen and keyboard, is 2.7.
I don't need it. My current computer is perfectly fine, I love it. But I want it.
Oh well, there's probably some weird hardware stuff that'll prevent FreeBSD from working on it, unless I learn Forth to write weird drivers, or something. Yeah, that's right.