mortonfox: (fox sit)
Snow, 24-28°F. At noon, I went to [undisclosed company] in Wilmington for my second-round interview. This time, I met up with only two of the three people from the first interview. It was longer though. We talked of many things. Of ships and sealing wax, of cabbages and kings... and also software development.

When I was done with the interview, I noticed that it had started snowing. The roads weren't really bad yet, but I saw a few accidents on the way back, including one overturned pickup truck. And that was before even an inch of snow had fallen! The truck didn't appear to have collided with any other vehicles but when I saw that, I decided it would be best to go directly home and stay home. In the evening, I went out to shovel the sidewalk and driveway. There was still less than an inch of snow on the pavement but I did that anyway and I was done in minutes.

With inclement weather comes a new software project. I actually started NuviGC a few days ago when I noticed that GSAK uses SQLite databases and wondered if perhaps I could write a script to query those databases directly and generate POI files for the Nuvi without going through GSAK. I'd been using this GSAK macro to generate POI files but it's a bit crufty and the author hasn't updated it in two years. The GSAK macro language is like Visual Basic with a lot of the good stuff missing, so I figured it would be better to reimplement it in Python and use that as a base on which to make my own improvements. And that's what I did. So far, I've added:
  • Better linebreaks/formatting.
  • Geocache attributes.
  • Corrected coordinates in logs.
  • Some workarounds for the Nuvi 295W.
  • Substitutions for some HTML entities not recognized by POILoader.
mortonfox: (Robot)
I did enough weeding yesterday evening to fill two trash bags, but then I got a bit dizzy because some of the weeds were noxious. So I fell asleep before dinner and was wide awake in the middle of the night. That usually is a prelude to high productivity. First, I worked on converting my Twitter scripts to OAuth. I was a bit overdue since Twitter turned off Basic authentication on August 31, but these aren't utilities that I use every day. The main stumbling block was looking for an OAuth library that didn't make things unnecessarily complicated. I found one that's simple enough: oauthConsumer.py by AppHacker. However, it's written in Python but my scripts are in Perl. No biggie. It was actually pretty straightforward to rewrite those in Python once I got up to speed. (I don't use Python very often so every time I pick it up, I have to take a refresher on common Python idioms.)

That only took me to 6am. What else was I going to do today? How about a new project? Enter 4sqNoGPS... (You need a Foursquare account to see it because it starts with the OAuth handshake.)

It's a replacement for Foursquare mobile that is optimized for my handset. (or, as Ericles put it, the smartest non-smart phone :) ) There are numerous problems with Foursquare mobile:
Read more... )
mortonfox: (words)
I released TwitVim 0.5.4 yesterday, just a day ahead of Vim 7.3 final. I haven't written about TwitVim development in a few months. The last time I wrote in any detail was while I was in the middle of writing the OAuth code. From 0.5.0 to 0.5.4, there have been over 3 dozen revisions, mostly to complete the feature set with some bugfixes and documentation improvements thrown in the mix.

One issue I've struggled with in TwitVim 0.5.x is about requiring the user to use a Vim executable that has been compiled with one of the scripting interfaces. (Perl, Python, Ruby, or Tcl) The reason for this is I don't have a good implementation of the HMAC-SHA1 digest code in pure Vim script1, so TwitVim has to sign OAuth requests by calling a HMAC-SHA1 module from one of those scripting languages. This is a terrible inconvenience; if it were not for this requirement, one would be able to run TwitVim in a precompiled Vim executable. Because of this requirement, a prospective TwitVim user now needs to be reasonably familiar with compilers and be able to build Vim from scratch. Furthermore, the required module isn't present by default in most Perl distributions other than ActivePerl, so the user has to fetch it from CPAN. Fortunately, the TwitVim user base (which seems to number about 3 at the moment :) ) appears to be quite good at those things. So far, those who contacted me with questions only needed a nudge in the right direction to get it working.

Another problem that's still unresolved at this time is Vim breaks some Tcl 8.5 modules. In particular, this bug prevents TwitVim from using Twitter SSL via the Tcl interface if Vim is compiled with Tcl 8.5. (TwitVim needs the "tls" package that I mentioned in my post to vim_dev. Tcl 8.4 is fine.) It was too late to address this issue in Vim 7.3, but I hope there'll be an official patch for this before Vim 7.4. (The unofficial patch is simply to hack out the redefinition of the "catch" command in if_tcl.c.)

---
1 There are Vim script modules for HMAC and SHA1 but these are very slow. The problem is Vim script does not have bitwise operators, so all the shifts, rotates, ANDs, ORs, and XORs have to be done using regular math operators and table lookups. It's really quite clever but I'd rather wait until the necessary enhancements are in Vim script before implementing HMAC-SHA1 in pure Vim script.
mortonfox: (create a fursona)
John Largay Memorial Preserve

Rio Tinto (NYSE:RTP) was up 23% today, which was a nice surprise because that happened to be one of three items I bought during the August/September correction. The stock had been on my watch list for a while because it had been lagging due to the Alcan acquisition. I also thought that at some point, CVRD (NYSE:RIO) would make a bid for it. I was wrong on that because BHP ended up being the one making the first offer. It appears that Rio Tinto will reject the offer after all, but even so, it is now clearly in play.

I've been railing about the subprime mortgage crisis in recent times, but the irony is I may have actually played a minor part in creating this monster. It was something that I had almost completely forgotten about until a few days ago when I ego-surfed Google Scholar. There, I found this paper, which carries my name in the acknowledgements section at the end.

The story behind that is in my senior year at college, I helped with the coding on a PhD student's thesis project. It was a piece of software that computed multi-dimensional integrals in order to value complex financial derivatives. Goldman Sachs, one of the key players in today's mortgage mess, was the one who provided sample data for the project. Back then, I was a naive youth and I didn't know half of what they were talking about when they bandied around terms like mortgage tranches and CMOs. I do now. That project was a possible precursor to what they now use to slice up a bundle of mortgages into tranches by (supposed) risk level to be repackaged into securities that can be marketed to pension funds, hedge funds, and that wayward bond fund I just rid myself of today. So I guess I could've been a little responsible for that, but hey, at least I didn't continue down that path after graduation. (On the other hand, if I had, I might have gotten stock options. Darn. :) )

Profile

mortonfox: (Default)
Morton Fox

May 2020

S M T W T F S
     12
3 456789
10111213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags