» tagged pages
» logout

sorted by: recent | see : popular
Content Tagged with OS-X + python

Software I Use

Inspired by Alex, here’s a brief laundry list…

Operating Systems:

  • OSX: I’ve recently become a Mac user. Years ago I used NEXTSTEP, first on the original 68030/68040-based NeXT machines, and later on x86 hardware, one of the three architectures to which NeXT ported their software before being acquired by Apple in 1997.
  • Linux: I’m thinking about trying out Ubuntu for use on development desktops. It’s not clear any of the bigger name distributions still exist in a form suited to my regular needs. My main file and print server in my home office is based on Fedora-Core.
  • Windows: The fastest machines in the house are still Windows boxes, but regular daily use on these machines has declined. They’re more frustrating and less fun than the new Unix-based Macs, and I’ve been doing more open source work than Windows-bound work in the last couple of years, a situation hard to complain about given some of the discouraging developments that have been accumulating on the backs of Windows developers in recent years.

Languages:

There’s an emphasis on scripting languages here, because they’re what I’ve been playing with lately… They aren’t the beginning or end of the languages that I use or am interested in. Also, defining one’s skill set by how many languages’ syntax one knows often turns out to be limiting in a bunch of ways.

Scripty Languages

  • PHP: I came to the PHP world to work on SWiK. For a while, I was at least partially there, although in the last year or so I’ve probably done at most a couple of weeks of work with PHP.
  • Ruby: I’d been intrigued by Ruby for a while and started working with it in late 2005. Alas, I’ve tended to go in and out of it on an as-needed and as-time-permits basis, so my facility with the language has oscillated continually. After this time, I’m still a fan of its metaprogramming support, much of which is nicely exploited by Rails, and the language as a whole remains comfortable and expressive although there are a few aspects of it that I avoid like the plague. I’m very curious to see what will happen with things like JRuby. Having access to a reasonable notion of threading rather than what the Ruby interpreter seems to currently do in this area would be particularly nice.
  • Python: I started to play with it back in 2004, but then got sidetracked into something else. I’m still hoping to get back to it, but don’t know if Ruby will continue to defuse the urge.
  • Tcl: Haven’t used it lately, but worked on a fairly big system that used it extensively a few years ago.

Systems-y Languages

  • Java: I now treat Java as my first pick, middle-of-the-road, “systems”-code sort of language. Performance has come a long way since 1995, the ecology of tools, complements and libraries, particularly open source ones, has become both wide and deep, and some of the tools help one be hugely productive (or at least more than one would be in the old C/tags/cscope/cbrowser/make/etc days).
  • C: For stuff that has to be lower level than Java, I often would go straight from Java to C, without stopping over at C++, for reasons too long-winded to go into in this space.
  • C++ : Although I can’t say I’m terribly worked up about the new additions to the language that have happened in the last few years, and I’m not sure that the initial goals of the language have held up terribly well as time has gone on, I try to avoid getting too far away from C++ even though I haven’t found myself using it daily in a while. Provided one has good impulse control, this can be a productive language, it’s just that the temptations to lose that control have multiplied hugely over time, as have the pitfalls and sinkholes that can leave even a solid developer not realizing what they’ve wrought until it’s almost too late.

Other Languages

For a long time, I thought it would be great to have a pressing, practical reason to do some functional programming again. Some of Ruby’s features recapture enough of that flavor that, I don’t find myself missing FP techniques as much as I would from C or Java.

In the last six months or so I’ve had a chance to look at OCaml and Haskell in conjunction with a project I’ve been involved in since October. I’ve also been spending an increasing amount of time around R, an open source cousin of SPLUS. I strongly suspect that ideas from these languages are going to creep more into the mainstream over the next five or so years.

Development Tools

  • Emacs: The venerable kitchen sink that contains the kitchen-sink with a picture of a kitchen-sink painted on the inside of the kitchen-sink of text editors.
  • IntelliJ IDEA: Not open source, but the nicest Java development experience I’ve had.
  • Locomotive: A nicely packaged Rails distribution with all the trimmings for OS X. It can get you started up in minutes, rather than the afternoon it might take to work around some of the quirks of the Ruby implementation that Apple ships. It also doesn’t pollute your system or trample anything, so whatever Ruby-oid tools you had outside of Locomotive live on unmolested.

Browsing and Yapping

  • Adium: The duckiest IM client for OS X.
  • Colloquy: I never had much use for IRC, because for years it seemed from afar like a vast pool of college students repeatedly sending the string “What are you wearing?”, but I’ve recently discovered that some of the technical forums are actually decent places to share information. Colloquy is a nice OS X client for IRC.
  • Firefox: My second most-used browser. A bit weird on OS X.
  • Camino: My new most-used browser. Some of the fish out of water-isms of Firefox on OS X are remedied fairly nicely.

Other Miscellaneous Applications

  • I’ve recently become hooked on OmniOutliner Pro for keeping track of to-do lists, notes on things I’m learning or investigating, and so on. I suspect I’m only scratching the surface of what it can do, but it’s finally replaced my previous way of doing this, which was Emacs outline-mode, partly because it’s so easy to stick in rich content if one has it.
  • I have a lot of books. Delicious Library shows some real promise for helping organize and take care of them.
  • Parallels Desktop for Mac: About the only Windows application I still need to use with any regularity is QuickBooks. I know that a Mac port exists, but my accountant has warned me to beware treating Mac/PC cross-compatibility with it too glibly. In order to exchange data with him, I’ve taken to running it in a Parallels VM, and the experience has been great. The new “Coherence” UI feature lets me minimize the amount of Windows Fugly that pollutes my OS X desktop by having just the Windows app that I’m using look klunky and homely, rather than a whole big window full of homely suck.