Emacs: Helm for finding files #
When using Emacs I’m often switching buffers or opening files, so I’m always on the lookout for ways to make those operations more pleasant.
A while ago I tried Anything.el. Anything is like Quicksilver for Emacs. It’s powerful but I found it confusing to set up. Emacs-Fu had a blog post about configuring anything.el, and I used that for my setup.
For the most part, I use it instead of find-file:
Labels: emacs
Unstructured to Structured #
I find that I often don’t know a structure or abstraction until I’ve worked with something more concrete. This happens in programming but it also happens when creating structured information.
While helping Wild Shadow Studios with Realm of the Mad God, we held our discussions in Google Wave for two years, until Google shut it down. Why did we use a tool everyone else thought was useless?
- Group Chat: The 3–6 of us could chat about the game.
- Asynchronous: We could continue conversations while not all of us were online.
- Nesting: We could reply to individual points made in another message.
- Attachments: We shared test binaries or screenshots.
It was nice for keeping everyone “on the same page”.
Wave didn’t work well for us when it came to adding structure. We had thousands of chat messages in the system, but when a bug or feature or idea came up, there wasn’t an easy way to transition into a task tracker. As a result, those kinds of things were too easily forgotten.
When I use tools like Asana or Trello or Cohuman, they want me to start with structured data, but they don’t handle the informal unstructured nature of IM or Wave. Where do those tasks come from? They came from somewhere, but that history isn’t preserved when you create a new task in a task tracking tool.
I want a tool that lets me hold unstructured conversations, then extract portions of conversations that led to a task, and move them into my task tracking tool. Unstructured comes first for me; structure is what I add later, once I understand what structure I want. Databases and most structured tools I use get this wrong — they ask me to decide the structure first. Spreadsheets, Wikis, Wave, and most unstructured tools also get this wrong — they let me easily work without structure, but don’t offer me a transition to something structured. JotSpot, before it was bought by Google, is the only tool I tried that had a smooth transition from unstructured to structured.
It’s also possible I’m cursed to like things that have a lot of potential, but can’t be understood in five minutes, and thus are doomed to niche status. I think Wave and JotSpot both fit into this category.
Labels: structure
Emacs: custom mode line #
Dirk-Jan C. Binnema’s mode-line blog post inspired me to post about my own Emacs mode line configuration. I found the default mode line to be too busy for my tastes. I removed most of it and added to the features I care about most. Here’s what it currently looks like:
Labels: emacs
Interactive diagrams #
Five years ago I got interested in interactive diagrams and made a few, but then got distracted by other things. I wrote a blog post about why I was interested in them. I've recently become interested in them again. Back then, I used Flash, but these days I think HTML5 is a good option. I generally make better progress by starting small, so I've started working on something fairly simple: a diagram showing where the “blind spots” are when driving a car.
(click through to try it)
It's not yet complete but I've already learned some things:
- If you have your seat forward the blind spots are smaller than if you have your seat back.
- The right side mirror shows much less area than the left side mirror. To see a larger area you need to distort the area, which causes things to look smaller. This is why you see “Objects are closer than they appear” on the right mirror but not the left mirror.
In retrospect, these should've been obvious, but the diagram is what made it clear to me. It also became clear that the diagram needs more work. I need to add an option to make the right side mirror curved (I'm not sure what the typical curvature is). I might need to calculate the effect of someone rotating their head. I should measure car mirrors and the driver position inside the car.
It's been a fun little project. I learned some Javascript and SVG, and I got to play with Mike Bostock's d3 library, even though it's overkill for a diagram like this. The process of working on the diagram helped me understand things and motivated me to learn more. I'd like to work on several more interactive diagrams to see if the car diagram is a special case or if interactive diagrams are generally useful for me.
Labels: project
TiVo Features I want #
Over the years Tivo has added lots of features to the product. Unfortunately I'm not interested in most of them. Things I don't care about:
- Swivel Search
- Guru Guides
- podcasts
- Discovery Bar
- KidZone
- radio stations
- games
- TivoCast
- Photo, music, video streaming from my computer
I do like the internet guide loading (so I don't need a phone line), the Netflix/Hulu/Amazon streaming, and support for HDTV (Cablecard).
What I'd really like are features without funny names:
- When I press a button on the remote, the Tivo should react instantly.
- No more waiting. When I change a season pass or settings, I shouldn't have to wait for the Tivo to do its calculations. It should let me continue while it works in the background.
- When I delete several shows in a row from a folder, the Tivo shouldn't get confused. I sometimes find that it tells me the group is now empty, and I have to go out and back into the group to see the remaining shows.
- When I add a show to be recorded (or a season pass), I want to choose a folder. I don't want to use the folders by show name; I want to choose folders that mean something to me, like “history shows” or “time travel movies”. This didn't matter when the capacity was 40GB but the more storage there is, the more useful folders become.
- Instead of assuming I receive all 500 channels, ask me which level of Cable TV I subscribe to, so that I can see just the 100 channels I actually get. Every channel change can be relative to that list. Right now, most channel changes are irrelevant to me, and end up adding channels that I don't actually get.
I suspect that as a company gets larger, it's easier to get management to approve people working on features with names than on features without names. However, this is pure speculation on my part.
Labels: review, speculation
