The eclectic musings of a bitter software engineer.

Archived Posts

Displaying posts 71 - 80 of 574

Improving e's performance

Tuesday August 07, 2007 @ 06:10 PM (PDT)

In my last post, I criticized e for being slow and bloated. As it turns out, e's sluggishness and high memory usage were being caused by an e.db file that had grown too large. Once I removed the huge database and started fresh, e's performance improved dramatically and its memory usage returned to acceptable levels.

As far as I've been able to tell, %APPDATA%\e\e.db is where e stores preferences and file history data. Over time, as more and more files are edited, this database grows, since it contains branching undo/redo data for every file you edit. The bigger it gets, the longer it takes e to start up and the more memory it appears to use.

E's author says that the memory usage reported by Task Manager includes non-paged virtual memory and isn't indicative of e's actual RAM usage, but he still hasn't responded to the question of why a large e.db seems to have such a detrimental effect on startup time. He did suggest creating milestones every so often to clear a file's history, so I'll try that and see if it improves things.

In any case, e is running smoothly once more and I'm happy with it again. Hopefully the issues with e.db will be resolved eventually, but for now they're a minor inconvenience offset by the fact that e is such a pleasure to use in almost every other regard.

Coincidentally, e 1.0 was released today. Get it while it's hot.

The sad state of text editors on Windows

Thursday August 02, 2007 @ 11:16 PM (PDT)

On a good day I spend anywhere from 8 to 12 hours writing code. Unfortunately, even though I've been doing this for ten years now, I have yet to find a text editor that satisfies all my needs.

I suspect TextMate would fulfill all my wildest fantasies, but I don't have a Mac. A few months ago I wrote about e, which is currently the closest thing to TextMate for Windows. Sadly, my infatuation with e is quickly wearing off; it gets slower, more bloated, and less stable with each release. Intype shows promise, but is missing some very important features and is apparently being developed by a team of hypothermic sloths with refactoritis.

My needs aren't complex, nor are they numerous:

  1. High performance, low resource usage

    During a typical debugging session, I have Firefox, IE7, Opera, Safari, and an IE6 VMWare image running in addition to my email client, IM client, several SSH terminals, and my text editor. Every last megabyte of RAM is precious, yet many text editors (especially recent builds of e) have no qualms about gobbling up a hundred megs or more and responding like a pregnant cow in a lake of molasses. You're a fucking text editor, not a goddamn video game. Learn how to manage memory efficiently.

  2. Good, customizable syntax highlighting

    Shareable color schemes in the form of editable files is a must. GUI dialogs that force me to open a color palette and choose each individual color for each individual language construct are an instant disqualifier, especially if I have to do this for every single language (I'm looking at you Aptana).

  3. Good anti-aliased font rendering

    This comes for free on Windows if you just let the OS render the damn fonts, but plenty of text editors still seem to get this wrong. I have to stare at these fonts all day, every day, so I need them crisp and readable, not pixelated or blurry. If I can't use my favorite font, that's an instant failing grade (suck it, jEdit).

  4. Some kind of outline- or symbol-based navigation

    I need to be able to jump to any class, method, CSS selector, etc. instantly, preferably with a hotkey and a few keystrokes. This is one thing that e does very, very well, but that no other Windows text editor can seem to get right. It does me no good if you display the outline in a lovely treeview with expandable nodes for each class and method but don't give me a keyboard shortcut. I'm not going to use the mouse. I refuse. Mouse equals fail.

  5. Stay the hell out of my way

    I don't want auto-indent, I don't want auto-formatting, I don't want auto-complete, I don't want auto-fucking-anything. I know what I'm doing and I want you to get out of my way and let me do it, because if you try to do it for me you'll only fuck it up.

At this point, I've pretty much given up all hope of finding a Windows text editor that does these five simple things and does them well. I've resigned myself to the fact that I'm either going to have to return to the dark and painful world of desktop application programming and write my own damn text editor or I'm going to have to bite the bullet, get a Mac, and use TextMate.

Since I don't have the time or the desire to write my own text editor, it's looking like I'll probably end up throwing money at the problem. Sigh.

I'm not sure when it happened, but it looks like Yahoo! oneSearch has been updated with a beautiful new iPhone-friendly interface. You'll see it if you visit oneSearch on an iPhone (and only on an iPhone).

Unfortunately I have no way to take screenshots and I don't have a camera with me at the moment to take photos of it running on my iPhone, but it's really very nice. The page automatically scrolls down to hide the Safari toolbar on load, and the color scheme, icons, and widgets all match the iPhone UI styles much better than the standard oneSearch design. I like!

Things that suck about the iPhone

Wednesday July 11, 2007 @ 01:02 PM (PDT)

I've had my iPhone for almost two weeks now and I absolutely love it. It's the best cell phone I've ever used and the sexiest gadget I've ever owned. But there are a few things about it that really, really suck:

  1. iTunes

    iTunes is the only way to transfer music, photos, movies, or anything else to the phone, and the Windows port of iTunes sucks donkey balls. It's slow, ridiculously unstable, and completely ignores standard Windows UI practices. If it were possible to sync my iPhone by letting Chuck Norris kick me in the crotch, I'd choose the crotch kick over iTunes any day.

  2. No native IM app

    There are a few good Ajax IM apps for the iPhone, but they're all severely limited by the fact that they can't provide audio alerts and only work when Safari is the active application. As soon as you switch to another app, lock the phone, or even look away from the screen, they become useless.

  3. There's no way to email full-resolution photos

    The 2 megapixel camera on the iPhone is decent and certainly usable for casual photoblogging via Flickr, which is something I've been doing for years now. Unfortunately, when you email a photo from the iPhone, it sends a tiny 640x480 version of the photo rather than the 1600x1200 original. There is no way to change this.

    This means that in order to get my full-res photos on Flickr, I have to dock the iPhone, copy the photos over to my computer, and upload them to Flickr manually. That's retarded. Even my ancient Nokia 6600 from a few years ago could email full-resolution photos to Flickr.

  4. The calendar won't sync with iCal feeds

    Despite the iPhone's excellent Internet capabilities, the calendar app can't be synced with iCal feeds over the 'net. Just like everything else, the only way to sync the calendar is to dock the phone and fire up iTunes, and even then it will only sync directly with iCal, Entourage, or Outlook.

    I primarily use Google Calendar and Windows Calendar (which comes with Vista and happily syncs with Google Calendar) to manage my schedule, but the iPhone won't sync with either of those, even though they're both capable of publishing iCal feeds. On Windows, it will only sync with Outlook, and I don't use Outlook. Lame.

    The fact that the calendar app is otherwise very good makes this omission suck even more.

  5. No Ogg Vorbis support

    I know, I know. iPods have never supported Ogg Vorbis, so why should the iPhone? Truth be told, I didn't buy the iPhone for its iPod functionality; I bought it for the phone and Internet functionality. But it's so damn good at playing music that I've stopped using my trusty old iRiver H120.

    The only problem is that all the music I've purchased in the last two years is in Ogg Vorbis format, which the H120 supports very well. Now I have to convert all those Oggs to MP3s if I want to listen to them on my iPhone. I'm not sure what Apple has against Ogg, but I sure wish they'd get over it.

It may sound like I hate my iPhone, but I don't. I love it. I want to have like a million of its babies. The fact that I love it in spite of these major drawbacks should tell you something about how awesome it is.

Evil rodent

Wednesday June 20, 2007 @ 10:04 PM (PDT)

This is officially the best thing that has ever happened.

Update: I have no idea what this thing is. Chipmunk? Squirrel? Gopher? Prairie dog? Zebra? I don't know and I don't care.

The JavaScript Module Pattern

Tuesday June 12, 2007 @ 03:49 PM (PDT)

Eric Miraglia has just posted an excellent tutorial on the YUI Blog demonstrating how to use Douglas Crockford's awesome Module Pattern for JavaScript.

I learned about this pattern when I randomly stumbled across a page about it on Yahoo!'s internal wiki shortly after joining the company, and I immediately fell in love with it. I was amazed that I couldn't find any mention of it outside Yahoo! aside from a few hints on Doug Crockford's website, so I'd been meaning to write a tutorial, but never got around to it.

Luckily, Eric did the hard work for me, so now all I have to do is link to his article. Hooray!

One thing Eric's article doesn't mention, though, is how to extend a base module in such a way that the inheriting module still has access to members of the base module's private scope. It's a little tricky, and there are caveats, but luckily Douglas Crockford has gifted the world with the solution to that problem too. I'll try to find the time to write about it soon (if the YUI blog doesn't beat me to it).

The death of privacy

Sunday June 10, 2007 @ 10:00 PM (PDT)

If there's one goal driving the continued and unprecedented expansion of the Internet into every aspect of our lives, it's the idea that people should be able to connect to one another and to the collective knowledge of the entire world with as little effort and as much convenience as possible.

With the rise of social networks, blogs, and forums, all of which are almost instantly indexed and searchable, the Internet is much like a massive neural network and we are all neurons, adding our individual bits of information into the mix. And like a brain, the Internet has a capacity for memory that is both vast and imperfect.

In a biological brain, memories that are rarely recalled or that are insignificant tend to fade away. In much the same way, information on the Internet that is interesting and widespread is far more likely to be discovered (or "remembered") than information that is uninteresting or unimportant.

Social networking helps to ensure that interesting information is propagated and uninteresting information is not by aggregating this information in front of millions of eyes and thus encouraging its spread. The more people see a site that interests them, the more people link to that site and the more likely that site is to appear prominently in search results; thus the site is cemented in the Internet's memory.

This is all wonderful if we assume that the spread of information is inherently a Good Thing™, but what happens when those millions of eyes latch onto something that would otherwise have faded into obscurity? In an instant, a piece of information that was harmless when seen by a handful of people can become incredibly damaging when seen by millions.

Consider, for example, the recent hoopla over Google Street View. People in public places have no reasonable expectation of privacy and normally wouldn't be concerned if a photographer inadvertently included them in a picture of a building or landmark. You might not care if a few visitors to a gallery or readers of a photography magazine saw a picture of you—an anonymous person they don't know and will likely never meet—standing on a street picking your nose; but when the entire world can see you standing on a street picking your nose, and when they can email it to their friends, who can email it to their friends, who can email it to your friends, you've suddenly got a huge problem.

Consider also the recent case of high school pole vaulter Allison Stokke, who gained the unwanted attention of millions after a photo from a track meet was posted on a local website reporting on the event. Normally, the photo would have been seen by only a handful of people and would have been quickly forgotten, but one of those people thought she was attractive and linked to the photo. Other people saw it and were similarly interested, so they propagated the photo, along with other information they managed to dig up about Stokke. Within a matter of days, millions of people from all around the world knew who Allison Stokke was and were sharing information about her. Stokke, who neither expected nor wanted the attention, was understandably horrified.

There are countless other examples like these, some of them lighthearted, like the Star Wars kid or the Numa Numa guy, and others downright creepy. Once the Internet decides a piece of information is notable, it's unlikely to forget it. If that piece of information happens to be about a person, that person has no choice but to try and deal with the consequences—consequences that have been thrust upon them largely by the actions of anonymous strangers.

Short of dismantling the Internet and returning the world to the way it was pre-Information Age, there is no solution to this problem. There may be ways to mitigate it to some extent in the short term, but in the long term, it's only going to get worse.

It may be that our only choice is to accept that privacy is dying and may one day become extinct. In accepting this, perhaps we can learn to cope with it. Or perhaps there isn't any way to cope with it. Perhaps all you can do is hope that you don't wake up one morning and find your life suddenly exposed to the entire world.

Somehow I thought the future would be less scary than this.

JyteKeys adds hotkeys to Jyte

Saturday June 09, 2007 @ 08:41 PM (PDT)

screenshot This afternoon I whipped up JyteKeys, a Greasemonkey script that adds hotkeys for common operations on Jyte.

As you can see in the screenshot, there are hotkeys for pretty much every common navigation action, including browsing paginated lists of claims. There's also a hotkey for an advanced search I use pretty frequently which displays all claims you've commented on that have had new comments since you last looked.

Different hotkeys are available depending on what page you're on and whether or not you're signed in, but you can always press L to see the legend, which displays all currently available hotkeys.

Share and enjoy!

My boring-ass commute

Friday June 08, 2007 @ 09:59 AM (PDT)

Google Code doesn't want me anymore

Thursday May 31, 2007 @ 10:18 PM (PDT)

Apparently Google Code limits you to having 10 hosted projects unless you beg for a higher allowance.

I sent an email to the support address (as directed in the error message) asking for help two days ago and have received nothing but an automated response telling me to go whine in the forum.

Lame.

Update: One email, three forum posts, and nearly a week later, they've finally upped my limit. Sweet.

Copyright © 2002-2008 Ryan Grove. All rights reserved.
Powered by Thoth.