Latest and Greatest Techstuffs Comments

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.

I’ve also been reading Learning Vi and Vim ebook, also by O’Reilly, which is an awesomely helpful tome. Between David’s pestering and this book, I was convinced vim was worth the trouble of the initial learning curve. There’s just so much power packed in modal editing, and so many useful commands available even out of the box. I’m using a few plugins, including nerdtree/nerdcommenter, command-T (haven’t gotten this working on Windows yet, go figure) javascriptlint (dumps errors into quickfix window, is more configurable than jslint) vcscommand and fugitive. Pathogen makes all of this very easy to maintain, or that’s the theory! Hopefully I get it working on Windows in the next couple days… I’ve also had a number of issues getting Gvim on Windows to respect the default gvim commands, such as Ctrl-V for entering visual block mode. I think it may be working now, but I’m not sure what I changed.

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!


  1. Posted February 13, 2011 at 11:53 pm | Permalink

    Good to see you’re posting more frequently than myself! I always love the mention, of course. Hope your vimmin’ is efficient 🙂

  2. Posted February 14, 2011 at 3:14 am | Permalink

    Always trying to improve my productivity and vim is definitely helping there. Thanks for pestering about it for so long. Pathogen is sooo great. If you decide to sync across machines make sure to use mklink on Windows to link files _vimrc and _gvimrc to .vim/vimrc and .vim/vimrc (or the equivalent vimfiles directory on Windows). It works just like link -s in *nix.

    Still putting off learning more than the bare minimum of vimscript but I’ll pick it up when I need it. Only thing I want to learn right now is window management so I can shift windows around (especially the quickfix, it always ends up somewhere I don’t want it!)

    My current plugins list is:

    • pathogen (the key to it all now)
    • fugitive (git specific commands)
    • sparkup (for quick static markup gen)
    • yankring (clipboard history manager/cycler)
    • nerdcommenter (multi-language support for commenting shortcuts)
    • vcscommand (multi-VCS shortcuts including a handy differ!)
    • nerdree (duh)
    • snipmate (still need to tinker with writing some of my own snippets)
    • vim-indent-guides (you introduced me to this one, not sure if I’m going to stick with it but liking it for now)
    • javascriptlint (similar to JSLint but lets me get away with more code atrocities, which I like, and it uses quickfix which I really like)

Post a Comment

Your email is never published nor shared. Required fields are marked *