It’s been a minute since I’ve posted to this blog, and I’ve been accumulating things to talk about faster than I could really compose anything super-cohesive, so this is was going to be another quick summary post.
I’ve been using Cygwin at work (at CrossLoop) basically since I started, and as far as just getting around the filesystem it works great. Adding a good number of utilities, gcc/gnu products, all that works fine, but any time you have to make changes after the fact it’s a little nightmarish, as anyone who’s been actually reading what I have to say on Twitter could tell you. Not that there are any folks matching that description. Basically, though, symlinks can get hosed, and you frequently have to perform a “rebase all” before a number of things work correctly. Not only that, but you have to perform it from a crippled shell and sometimes it doesn’t even want to run from there. Some tools and tricks I have taken to using in Cygwin are:
- Mintty – a replacement terminal with middle mouse button pasting, select-to-copy, and a few other improvements over the vanilla cmd.exe terminal.
- Charade – a bridge utility that fakes out all the ssh-* utilities (like ssh-add, etc) into thinking ssh-agent is running, when in fact it talks to an instance of Pageant, the Putty key agent, so you can use keys inside and out of Cygwin with ease. The only trick here is sometimes Pageant goes out of sync with Cygwin, so you have to kill it and start it with cygstart, a utility that gives ownership of processes to Cygwin.
- Symlinks – lots of em. Link all your frequently-accessed folders under ~, because having to jump through /cygdrive/c/ is just annoying.
- I’d like to say I’ve gotten z working, but I still haven’t. I’ve got python installed, I get no errors, but it doesn’t jump to directories like I’d expect. The author, rupa, has been kindly helping me jump through hoops to figure what’s wrong, but to no avail as yet.
I’ve also ditched E as an editor on Windows in favor of Gvim, so I’m now using vim across the board on Mac/Win/Linux. (more on Linux in a moment) On Mac I’m using the lovely MacVim, whose author has kindly implemented a few fixes since I whined about not being able to add a simple
set fu in .gvimrc to enter fullscreen at startup. (previously you had to set up an autocommand). Yesterday morning I finally adopted pathogen on my Mac and committed my setup to github (it’s at http://github.com/thynctank/thyncdotvim) but am currently having issues getting it working under Windows, which is no surprise given all the hell I generally have to go through to get anything working on Windows. I’ve installed a copy of AutoHotKey, but I have yet to do much productive with it beyond getting a script (slightly out of date, will provide a copy of my tweaked version if anyone wants it) to convert my TextExpander abbreviations converted for AHK. Pretty cool utility, though a little clunky in the syntax department. Another great Windows until is VirtuaWin, a virtual desktop/workspace program that gives you a completely separate taskbar per workspace, and lets you assign apps to load into specific workspaces, very similar to Spaces under Mac. (I’ve been having issues with Spaces lately, too… )
I’ve gotten a little Asus EEEPC netbook, which came preinstalled with a trimmed-down version of Windows 7. Well, it works, but it’s pretty damned slow. I didn’t want to completely trash it, as Windows does have its uses, like testing and running Win-only software. Instead of trashing it, I installed a copy of EasyPeasy Linux beside it, which I highly recommend. The install was silky smooth, I didn’t even have to quit running software in the livedisc-like environment it loaded with off my Pre, which I loaded the ISO onto for installation. (remember, netbooks have no optical drive) EasyPeasy has a lot of great general purpose software preinstalled. The only things missing were developer tools and those were pretty easy to get rolling, for the most part. I’m still a little confused as to where Apache root is, but I haven’t had to fool with that much yet. Under EP I’m running Chromium as my main browser (with a fully-loaded Firefox for good measure), and a copy of Turpial as a Twitter client. It works pretty well, it’s definitely the nicest simple interface I’ve seen for a Linux client. Most software is easy enough to get installed, just find it in Synaptic package manager or add the repo to Synaptic if it’s not already there. A few items, like Chromium, Dropbox (yes! It works great!) and maybe one or two other apps, I had to download as .deb files and let the system install for me. I’ve even got the Windows Kindle app running under the latest WINE beta, though it’s a little uggo. I’m also running AutoKey, a simple AutoHotKey-like utility that works well for the most part. It’s only crashed a little bit. Mostly I’ve just used the netbook for reading and browsing the web, but I do plan on doing some work on it. (I bought it because I can’t do any dev work on the iPad, after all…)
I’ve been reading The Definitive Guide to Dojo ebook, which is a couple years old now, but still a good intro to the framework. Other than the crazy number of typos, the book is great. Dojo’s a lot more robust than I had realized before. I saw Pete Higgins say that Base alone is useless the other day, but I’ve gotta disagree. Being able to
dojo.connect to any event or arbitrary function is awesome, and built-in pub-sub and deferred objects is real cool, not to mention the module loading and build tools, which is what attracted me in the first place. I’m reading about dijits right now. I plan on using several parts of Dojo (not the least of which is dojo.gfx) for a mindmapping app I’m building called MindSnap.
On Mac I’ve been using a utility called Optimal Layout for the past couple months for moving/resizing windows via keyboard. I like it a lot, especially since the author added custom keyboard shortcuts, which lets me keep it running while shelled into my work machine (the default keys for bringing up Optimal Layout are Opt-Tab, which just happens to coincide with a certain shortcut in Windows… I’ve also been using iTerm2, which adds split panes and more to the existing iTerm awesomeness.
I’m using SimpleNote to keep notes synced across all platforms (Mac/Win/Web/iOS/webOS) which is nice for maintaining work notes, shopping lists, etc.
Have been doing a lot of embeddable JS work lately, and plan to write some tutorials and maybe put together a presentation or two if I can drum up some interest on the subject. I need to get some actual metrics together, but once I have real data I’m hoping to put together a service for compiling multiple scripts into an optimized, 3rd-party-safe embeddable widget or bookmarklet. I’ve also been building some interesting on-site widgets, like reusable dialogs/lightboxes and image croppers. Most recently I’ve built a Frankenstein monster that encapsulates both classes for reuse across pages and multiple instances per page. To avoid managing dependencies manually and to avoid the possibility of accidental multiple inclusion of a script (which aside from causing unexpected/hard to trace behavior is also a waste of HTTP requests) I’ve used RequireJS for the first time. Aside from a few hiccups learning the syntax, it’s working great. I plan on learning the optimizer component next so I can build concatenated/minified scripts that include templating strings and so on within them. It’s almost like I’m using Dojo…
So this may have been a longish post, but it was mostly a mishmash of various “what I’ve been doing” bits. Hopefully someone finds some of it helpful. Please ask questions if you’re trying out any of the same software or ideas!