The eclectic musings of a bitter software engineer.

Archived Posts

Displaying posts 91 - 100 of 579

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.

Painless JavaScript lazy loading with LazyLoad

Tuesday May 29, 2007 @ 11:09 PM (PDT)

With all the fancy JavaScript libraries to choose from these days, it can be hard to keep your website’s page weight down. Even if you’re using a small, sleek library like YUI or MooTools, there are often times when it would be nice to be able to load certain scripts only when they’re needed.

For example, if you load a bunch of fancy animation libraries to do something spiffy when the user clicks a button, but then the user does something else instead of clicking the button, then you’ve wasted precious time loading scripts you didn’t even need.

Lazy loading is when you wait to load something until you actually need it. It’s not a new concept, and the techniques for implementing lazy loading in JavaScript have been around for a while, but it can be a real pain in the ass to roll your own lazy loading solution, especially if you want it to be compatible with all the major browsers.

Luckily, I’ve done the hard work for you. All you need to do is include LazyLoad in any web page like so:

<script src="http://cdn.wonko.com/lazyload/1.0.4/lazyload-min.js"></script>

Then, when you need to load a script, call LazyLoad.load() or LazyLoad.loadOnce() and pass in the URL of the script you want to load (or an array of URLs if you need to load multiple scripts). You can also specify a callback function that will be executed when the scripts are finished loading.

The only difference between LazyLoad.load() and LazyLoad.loadOnce() is that loadOnce() checks to see if the scripts have already been loaded and makes sure nothing gets loaded twice.

// Called when all scripts have finished loading.
function loadComplete() {
  alert('Hooray for LazyLoad!');
}

// Load the YUI Dom, Event, and Animation libraries if they haven't already
// been loaded.
LazyLoad.loadOnce([
  'http://yui.yahooapis.com/2.5.2/build/yahoo-dom-event/yahoo-dom-event.js',
  'http://yui.yahooapis.com/2.5.2/build/animation/animation-min.js'
], loadComplete);

If necessary, you can also have LazyLoad pass an argument to the callback function or execute the callback in a specific scope:

// Pass an argument to the callback function.
LazyLoad.load('http://example.com/foo.js', loadComplete, 'custom argument');

// Execute the callback function in the specified scope.
LazyLoad.load('http://example.com/bar.js', loadComplete, this, true);

For more usage details, see the source documentation or the unminified source code.

If you’d like to use LazyLoad, you can either include it directly from my server as demonstrated above, or you can download it and host it yourself:

LazyLoad works in Firefox 2.x, Firefox 3.x, IE6, IE7, Safari 3.x (including iPhone) and Opera 9.x. If you run into any problems, please let me know.

recharge plz

Saturday May 26, 2007 @ 10:41 PM (PDT)

low bateries. recharge plz.

Lightning: 1, Jesus: 0

Thursday May 24, 2007 @ 10:20 PM (PDT)

So when some nutbag finds grill marks on a toasted cheese sandwich that look like the Virgin Mary, it's hailed as a sign from God, but when lightning fries the ever-living shit out of a statue of Jesus, it's just a random coincidence? I'm so confused.

An inconvenient bill

Thursday May 24, 2007 @ 09:48 PM (PDT)

Yesterday we got our first electricity bill since moving to California. After reattaching my lower jaw and popping my eyeballs back into their sockets, I turned off the air conditioner and ran around the house unplugging gadgets and scaring the cats, who aren't used to the silence or the lack of glowing LEDs.

If anyone needs me, I'll be in my back yard trying to build a fusion reactor.

First impressions of Yahoo!

Saturday May 19, 2007 @ 11:45 AM (PDT)

It's been a while since I mentioned I had accepted a job at Yahoo!, and more than a few people have asked me when I was going to stop being lazy and write about what it's like working for Big Purple. Now that I've been there almost two months, I feel like I'm finally ready to give an accurate report.

So. What's it like? In a word: awesome. And by awesome I mean totally sweet.

Maybe it's just that right off the bat I've gotten to work on projects that are really interesting and that present lots of fun challenges, but so far I've been having a blast. I honestly can't remember the last time I've enjoyed a job this much. I can't wait to be able to show people what I've been doing.

I also love the environment. The people are friendly and smart, the campuses are beautiful, the coffee is free, and the food is delicious. Especially the cornbread. I'm absolutely in love with the cornbread served in the Yahoo! cafeterias, to the point where I've had to fight the urge to eat meals consisting entirely of cornbread and honey.

So far I've also managed to resist the urge to partake of the dessert bar, which is kept well-stocked with various kinds of delicious-looking pies and cakes and whatnot, but I imagine I'll eventually lose that battle. And what a delicious loss it will be.

As with any job, there will no doubt be good days and bad days, and I'll eventually develop complaints. I could probably already think of a few minor ones. But as long as the work is at least half as fun as it is now, and as long as they don't take away my cornbread, I think Yahoo! and I will have a long and happy relationship.

Minify 1.0.1 released

Saturday May 05, 2007 @ 01:03 PM (PDT)

Minify 1.0.1 has been released. This release fixes a few bugs and adds a faster JSMin implementation. Download it here.

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