Archive for April, 2008

Memcached Developments

April 24, 2008

Today I discovered that there’s a new port of memcached for Windows! This one reflects memcached v1.2.4, which added a bunch of new features like multi-get, append/prepend, and check and set. This is a huge release even though it’s in beta and is the first pass from the new maintainer. I am especially happy because I was considering putting in some time to do the port myself; I wasn’t looking forward to it since I’d have to learn C++ and it’d take me awhile.

I also found the BeIT memcached client library, which purports to improve on Enyim. I haven’t had a chance to try it out yet, but I like the embeddable, lightweight nature of its code. It supports a few commands that Enyim doesn’t so I’m going to give it a try. Enyim had a couple quirks that we found and worked around so I’m always willing to find a more straightforward framework if possible. I don’t understand the hashing issues enough to ascertain which is using the better-performing or more consistent algorithm so I don’t have a preference on that front.

All in all, these were two very welcome developments. It’s never been a better time to be a memcached fan in the .NET world!

Advertisements

Lock-In

April 9, 2008

Google recently announced its AppEngine initiative and I can’t say I get who would want it. It strikes me as too inextricable from Google.

Amazon Web Services operates in a similar fashion but it is clearly serving as an infrastructure provider rather than a platform. While it’d be hard to migrate off of AWS if you ever chose to do that, it’s not as if you’re promoting Amazon by virtue of creating and running your application. At every turn, the AppEngine application uses Google products like Google Checkout and Google Accounts. Building a business so closely associated with the largest Internet company in the world strikes me as perilous.

AppEngine aspires to be a platform like Facebook has become. But it lacks the social aspects that make Facebook so attractive as an application platform. So, ultimately, I think AppEngine’s main competitor is not Amazon, Facebook, or even Microsoft (which has its own cloud initiative in development) but Ning. Who’s Ning? Exactly. I just don’t see this market as compelling so I don’t understand why Google’s entered it.

Talking ‘Bout My Integration

April 9, 2008

I deployed my most recent project at work today. It’s a Facebook application that allows Quick Blogcast customers to link their accounts to their Facebook profiles.

I know that bringing a blog into your Facebook profile is nothing new. There are many such applications out there right now that can do that. But I think this Quick Blogcast version is unique in that you can make it so that your friends and visitors never leave Facebook, even to comment! What’s more, we leverage nearly all of the Facebook integration points. This allows the Quick Blogcast customer to publicize his or her blog to the fullest extent while still respecting the conventions and norms of the Facebook world. While that may not sound like much, it’s been quite a learning experience for me.

For one thing, I had to master the Facebook API. Luckily, I only had to learn it secondhand because I had an excellent framework called Facebook.NET to lean on. After a month or so of experience, I even felt conversant enough to help others and supply patches. In so doing, I apparently really helped the developer of Thugz Passion, a game which I’ve grown to enjoy.

It was also a chance to get to know memcached better. I used the terrific Enyim.com Memcached framework to interact with a Win32 port of the service. I wish I knew enough C++ to move that project to the current version of the Linux original. I futilely check the danga email archives to see whether anyone’s gotten impatient with progress and just did it on their own.

I was (and am) very impressed by memcached, which is an excellent (and free) distributed caching system. ASP.NET is top-notch at scaling but its caching mechanisms (namely, the object bags like Cache, Application, and Session) can easily become bottlenecks after enough usage is thrown at them. I think memcached offers a way out—it’s certainly worked wonders in the Linux world.

I affectionately call this integration app Quick FaceBlogBookCast. It cracks me up every time; it’s easily the most cumbersome portmanteau I’ve come across. (I can’t believe I forgot the other Facebook app I released today: Domain Center for Facebook! It’s a way to spontaneously generate domain name suggestions from the information contained on your Facebook profile. The algorithms right now are pretty coarse, but I plan to refine them each and every release until they’re uncannily right some day.)

[The views expressed on this website/weblog are mine alone and do not necessarily reflect the views of Go Daddy Software, Inc.]

On Eudaimonia

April 5, 2008

“… eudaimonia is the human entelechy.” — Leonard Peikoff, Objectivism: The Philosophy of Ayn Rand, p. 349

I can vividly remember the first time I read those words back in 1991. I was still in high school and I immediately went to the dictionary to find out the meaning of the two words I didn’t know. That phrase solidified my desire to study philosophy in college. (There wasn’t enough courses that fit my schedule to get my bachelor’s in philosophy, so I had to minor in it and major in history.)

Eudaimonia, Aristotle’s idea of happiness or the good life derived through rational living, has informed my entire life since then. Ayn Rand’s Objectivism is, I think, the perfect realization of his conception. Lately I’ve gotten it into my head that I need to write on the subject and bring their ideas into the self-improvement, self-help canon.

If you’ve read that genre to any degree, you’ll know that it invariably takes emotion as a given, such that the goal of it is to feel better about yourself. It’s almost as if the authors regard the subject of virtue and reason as irrelevant. Even the cognitive psychologists like Seligman and Beck emphasize the centrality of emotion, though they’re immeasurably better because they understand that thought precedes emotion.

I’m working on my outline but I’m not going to get into it just in case it fizzles like so many of my grandly-started ideas. I’m really enamored of the central idea, which I think could be the start of something big. We’ll see. I will, of course, keep this blog updated with any progress.

ReSharper *IS* All That

April 4, 2008

Longtime readers may already know that I am a big fan of JetBrains’ ReSharper add-in for Visual Studio. I recommend it highly to any .NET developer, but especially to any of those who are interested in being more productive. You’d think that that’d be everyone, but I’ve found it not to be the case. Many developers I recommend the tool do don’t want to learn a new tool, aren’t particularly keyboard-enthusiastic, or mistakenly believe that ReSharper is superfluous. On that last point, I’ve stumbled upon a nice comparison chart showing that that is not the case.

There’s overlap, to be sure, but in nearly every instance I’ve encountered ReSharper’s implementation is more thorough and more thoughtful. It’s worth every penny.

Earth Hour Can Bite My Ass

April 2, 2008

Today is the day of Earth Hour, where everyone is supposed to turn off their lights for an hour tonight in a pointless show of support for global warming. Global warming is currently under such an attack that, like deities in every religion, it must be constantly re-assured that it is foremost in everyone’s mind. Also, don’t look too closely at the tenets of the cult of climate change. I’ll save the similarities between environmentalism and religion for another entry.

Google adopted a black theme for the occasion, though they had the courage to admit that it doesn’t save an ounce of energy to do so. It’s probably to promote “awareness” and demonstrate their environmentalist chops. Did they power down any of the hundreds of data centers they run in a show of solidarity? Of course not. It’s still a business, and that sop would be expensive.

The thing that most bugs me about Earth Hour is that it celebrates darkness. The light bulb is perhaps the greatest invention ever and we’re told that we need to turn it off in order to save the earth. The position is clearly us (our technological way of life) versus nature. It’s Rousseau for the modern man.

If you think that Gore et al. don’t really want to turn back the clock or rollback the economic progress, then consider his recent plea to reduce carbon dioxide emissions from the United States by 90% by 2050. 90%! In the best case, where we switch from coal to nuclear power and internal combustion engines to electric ones, I doubt that we could get down to 10% of our current emissions and the dislocations in trying would be absolutely astounding. Worst case, we’d have to just shut down.

All of this just leaves me speechless, but I mustn’t avoid speaking out. I will most likely be alive in 2050 and I do not want to live a “nasty, brutish, and short” existence. If the global plan to turn Earth Hour into Earth Year succeeds, I’m afraid that my future will be exactly that.

[UPDATE (4/2/2008): Keith Lockitch puts it well: “But during Earth Hour we see the disturbing spectacle of people celebrating those lights going out—of people rejoicing at the sight of skyscrapers going dark. If anything, what Earth Hour represents is the renunciation of civilization.”]

Rick, Rick, He’s Our Man

April 1, 2008

Over at Found on the Web, I’ve made my first April Fool’s joke. As you might expect, it’s Rick-Roll related.

Here’s the Javascript I used:


<script type="text/javascript" language="javascript">
var links = document.getElementsByTagName("a");
for (var i=0; i < links.length; i++)
{
links[i].onclick = function()
{
location.href="http://www.youtube.com/watch?v=oHg5SJYRHA0";return false;
};
}
</script>

It gets every hyperlink on the page, loops over them, and adds an onclick event handler that performs the redirect.