January 6, 2010When I switched from Ubuntu’s default Gnome desktop to the tiling window manager Xmonad, I kept around Gnome Terminal, although with the menu bar and the scroll bars removed. I changed from the default white to a nice shade of #2B2B2B (a hue that Sup originally introduced me to).
Over the months, however, I got increasingly annoyed at the slowness at which Gnome Terminal rendered when I switched windows (a not uncommon task in a tiling window manager, made especially important when you have a relatively small screen size); the basic symptom was the screen would flash white as the old terminal left and the new one was being drawn. After testing xterm and finding that it did not flash when I switched screens, I hereby resolved to find a faster terminal emulator; on the advice of David Benjamin I finally settled on rxvt-unicode, also known as urxvt.
rxvt-unicode is part of a proud tradition of X terminal emulators, so its settings are managed by the X window manager (as opposed to gnome-settings, which gnome-terminal used). You can manipulate the settings at runtime using a program named xrdb; but I found it mostly easier to place the settings I wanted in .Xdefaults, which automatically gets loaded at session start. The syntax is simple: a newline-separated file, with the form Appname*option: value. Appname in the case of rxvt-unicode is URxvt.
Having used gnome-terminal for a long time, I was somewhat loathe to part with the colors and behaviors I’d come to love. So here is my .Xdefaults file, with notes about what the various bits do:
URxvt*background: #2B2B2B
URxvt*foreground: #DEDEDE
URxvt*font: xft:Monospace:pixelsize=12
URxvt*boldFont: xft:Monospace:bold:pixelsize=12
URxvt*saveLines: 12000
URxvt*scrollBar: false
URxvt*scrollstyle: rxvt
These parts are all fairly self-explanatory; rxvt-unicode supports anti-aliased fonts, which means bold text looks good (one of the primary reasons I couldn’t stand xterm, since bold fonts tend to bleed into each other without anti-aliasing).
URxvt*perl-ext-common: default,matcher
URxvt*urlLauncher: firefox
URxvt*matcher.button: 1
URxvt*colorUL: #86a2be
These lines implement clickable URLs inside your terminal. The launcher doesn’t give any visual cue in your cursor when a link is clickable, but I find the underlining and change in color to be enough change.
! black
URxvt*color0 : #2E3436
URxvt*color8 : #555753
! red
URxvt*color1 : #CC0000
URxvt*color9 : #EF2929
! green
URxvt*color2 : #4E9A06
URxvt*color10 : #8AE234
! yellow
URxvt*color3 : #C4A000
URxvt*color11 : #FCE94F
! blue
URxvt*color4 : #3465A4
URxvt*color12 : #729FCF
! magenta
URxvt*color5 : #75507B
URxvt*color13 : #AD7FA8
! cyan
URxvt*color6 : #06989A
URxvt*color14 : #34E2E2
! white
URxvt*color7 : #D3D7CF
URxvt*color15 : #EEEEEC
I absolutely adore gnome-terminal’s color scheme, which is a bit more subdued than the rxvt default. So in it goes. The first color is “normal”; the second color is “bright.”
January 4, 2010Over winter break, I purchased a Yaesu VX-8R, the newest model from Yaesu and the successor to the VX-7R, which is favored by many in the MIT community. Deciding that this was the particular radio I wanted to buy was difficult: purchasing a (cheaper) VX-7R would mean I could tap into the immense pool of knowledge that has already rallied itself around this particular model. But my father was willing to put down the extra $50 for the newer version, and so I decided to be experimental.
That’s, however, not the point of this post (a review of the VX-8R will have to wait until I actually get my hands on it): the real puzzling part of the exercise was figuring out what accessories to purchase in order to get a microphone headset. If that sounds vague, that’s because it is. Yaesu’s official accessories—which were strongly Bluetooth oriented—were devoid of a standard, wired headset. After some investigation, and a very informative conversation with Kelsey, here is what I found.
First, some vocabulary. If you’ve ever plugged in headphones to your computer, you are familiar with the TRS connector, also known as an audio or headphone jack. It is the exposed, tapered jack, and contain multiple conductors (the black rings separate them). The connector for the stereo speakers you own probably has three conductors; one for ground, one for the left channel, and one for the right. There is a wide variety of TRS connectors in both size and number of conductors. For a radio (and more generally equipment that can utilize a push-to-talk (PTT) headset), we are interested in TRS connectors of 3.5mm (1/8in) diameter with four conductors: one ground, one audio, one microphone, and one PTT.
A DIN connector has a number of pins protected by metal shielding. The pins in a DIN connector correspond to conductors, and it is not unusual for there to be three to eight pins (greater than four conductor TRS connectors are quite rare.) DIN connectors have standard size (13.2mm), but the assignment of pins varies from application to application.
Now, for the actual radios. We’ll start with the VX-7R, since the VX-8R jack is strictly more powerful than the 7R’s. The VX-7R sports a four conductor 3.5mm TRS connector, but with a twist: it’s specially designed to be waterproof, so to get a snug fit you need a special TRS connector that has a screw after the actual jack. The CT-91 is such a TRS connector, and it splits the connection into a three-conductor 3.5mm headset TRS plug, and a three-conductor 2.5mm microphone TRS plug; these are apparently standard jacks and thus you can find an assortment of headsets as well as individual earbuds and ptt microphones for them. (Note: I didn’t have any lying around the house, and didn’t get a chance to head out to a radio store, so this is strictly hearsay.)
The VX-8R, on the other hand, has support for GPS, so it can’t get away with just four conductors: instead, it sports an 8-pin DNS plug, which for all intents and purposes is proprietary. You can hook up the GPS unit (CT-136 and FGPS-2), but in general you’ll need the $30 connector, the CT-131, to translate it into a four-conductor 3.5mm TRS jack. This is the same four-conductor form as the TRS plug on the VX-7R, but without the waterproof screwy bit. To split it, you can use CT-91, but the screw bit will show and for a more snug fit you’ll have to buy their suggested CT-44.
We were able to find a four-conductor headset lying around the house, but it didn’t work; like the miscellaneous three-conductor stereo headsets I tried, plugging it in resulted in a working sound signal, but caused PTT to be persistently activated. The current theory is that stereo was messing with things.
Here are the things I’d like to know:
- The VX-8R has a separate stereo-headphone jack, so I’m a bit curious what would happen if I stuck a PTT microphone into the four-conductor plug. If by some miracle the two were compatible, it would mean that a secondary adapter is not necessary. Given that the splitter suggests a 2.5mm mic, and the 4-conductor plug is 3.5mm, this seems unlikely.
- The CT-131 and CT-91 form a kind of sketchy-looking connection, and I’m not sure if this would actually prove to be a problem in practice, or if I’d want to electrical tape the two together. Some field-testing is required here, and I’d also be curious to know how difficult it would be to purchase or make a 4-conductor to 2.5mm PTT mic adapter.
- I need to find a store close by Cambridge/Boston where I can test various push-to-talk microphones. Any suggestions here would be greatly appreciated!
January 1, 2010I’ve been busy at work over this winter break working on an article for The Monad Reader, entitled “Adventures in Three Monads.” The material will overlap the second part of my IAP talk Haskell Typeclasses that I will be delivering under the auspices of SIPB IAP.
The article itself is a literate Haskell file, and contains sample code I’ve cribbed from the various Haskell applications I’ve written over my year long flirtations with the language: included is code and explanation for the probabilistic Turing machine I built in order to brute-force a 6.004 assignment. (To the course staff: the code is incomplete enough that it’s not equivalent to publishing all of the solutions; intrepid readers will still have to write a search function themselves.)
I’ll be keeping a pre-print of the article available in my public directory. Questions, comments and suggestions would be greatly appreciated!
December 31, 2009I did one of these for 2008, and it was highly amusing to see some of the goals I had put down that, in fact, I do not care at all about in the middle of my sophomore year in college. (For a more technically oriented one, see “Get PHP to compile with VS2008”… ick.) They are not quite resolutions, because I know enough that to actually get things done I should set schedules. These are tendencies; guiding principles for the New Year. Things to make habits. Things that are hard.
- Pay more attention to the people I live with and care about, so that I know when they are distressed, and know what I can do to help.
- Pay more attention to what people feel. Develop empathy.
- Do interesting research. Write an academic paper. Get it submitted to a major journal.
- Become involved in ham radio. Get certified.
- Be romantic.
- Continue to increase my palette of cooking, especially for greens.
- Continue to study mathematics.
- Increase physical flexibility, figure out how to make exercise a part of my schedule, and not just something I do when I decide I need exercise to concentrate.
- Learn C++ metaprogramming. Find a good excuse to hack in this language.
- Push myself beyond my limits, because you don’t know what they are until you are past them.
- Cold call old friends every once in a while.
- Tell stories.
December 28, 2009This social experiment has already hit number four Google spot for “Iron Blogger,” and there’s no reason it shouldn’t rise any higher. Iron Blogger is an experiment in beer (well, not quite for me), blogging, and peer pressure.
Since we’re on the topic of blogging, and why people (including myself) can’t seem to do it, we might as well look over the aborted attempts at blogging that I’ve had over the years.
The very first blog I made was done when Blogger was still a shiny new service, and blogs were just hitting mainstream in 2004. The blog was named Library of Murmurs and in its initial incarnation was very much ramblings of a crackpot. Bad puns abounded. It was the era of “The Writing Pot.” I think during this time period was dying for feedback and communication, and when a semi-regular posting schedule failed to elicit any comments, the blog fell into disrepair.
In 2007, I repurposed the blog into an HTML Purifier development log, in hopes that the many users of HTML Purifier might find an insight into its development process of interest. Those were the heady days of architecture astronauts, of writing Java in PHP and the proliferation of design patterns. I also occasionally wrote bad poetry. Once again, a lack of feedback and response made the blog fall into disrepair. Also, I had learned to absolutely hate Blogger’s interface and total incompetence at line-breaking HTML.
Over summer 2009, I had charted for myself the ambitious goal of writing a substantial blog post every week; each post would have been meticulously written and revised, content would be king, and as an MIT student, surely I had something to say that the world would care about. The opening post was to be thus:
To write is to articulate.
It is to coalesce what has been in the periphery of your mental vision to the structure of letters, words, sentences, paragraphs, chapters. It is to lock down the meaning of what you want to say, and yet open up the possibilities of what you could say, but haven’t said yet.
So, do not think of this as a web log, for if it was a log the captain would regularly go back to the ledgers and rewrite the scritch scratch of history to make it pretty. Think of it as a collection of essays, each an encapsulation of something I wanted to say.
But the plan was derailed by the fact that it’s really hard to write essays, it’s not actually quite an appropriate medium for blogs (if you are writing an expository piece, you would very much like to keep it up to date), and Wordpress code is, quite frankly, kind of horrifying.
Iron Blogger, more than a “threat” of financial burden due to lameness, is helpful because it is an observation function: it cannot work unless someone is at least vaguely paying attention to your blog. And thus I am proud to embark upon this grand experiment. Let the lameness begin!