My life without the Long Tail

So, seeing as how this is the start of a new month, I’ve decided to finally do something I’ve been wanting to do for a long time.

I’ve removed the Google AdSense ads from my blog.

Honestly, I never wanted them on here in the first place. I always felt it cheapened the idea of a blog. I am, after all, not in it for the money. However, a personal friend of mine kept pushing the idea of AdSense and how easy it is to use and make money off of. So, eventually, I signed up and slapped them onto the sidebar.

It sucked. My eye would immediately zoom in on the ads whenever anyone I knew brought up my blog. It just feels cheap to accept indentured sponsorship. I might as well walk around with a big sticker on my shirt that says “Wonder Bread” or something.

Long Tail or not, the ads are gone.

I feel better.

Now Playing: Clear the Area from the album “Speak for Yourself” by Imogen Heap

Self Organizing Systems & Constraints

Waiting for the bus this morning on the corner of Roosevelt and State St, I noticed something strange. People were scattered around the whole bus stop and as soon as the bus open its doors, you had a mob of people trying to force themselves into the one opening. No one knew when to be polite and let women or elderly people go first, because they think someone else with just jump in front of them if they hesitate, so they go.

In fact, except for the blind person that everyone let on first, people showed no concern for others.

This strikes me as interesting, because most people will tell you that is the way it is anywhere a group of people try and access a resource ( the bus door in this case ) without clearly defined constraints telling them other wise ( some sort of marked line, for example ). The strange thing is that it doesn’t have to be this way.

I’ll illustrate this using the same bus example, but in a different area. When I was in New York last fall, I always noticed long lines of people on street corners at random times of the day. I was really paying attention to them, until I saw a bus pull up. Then, people filed in one at a time. What was amazing was that people stood in the line, even if there wasn’t a bus. If someone walked up to the bus stop, they noticed the line and went directly to the back of the line, without fuss. This was in New York, of all places, where the stereo type of people is that they don’t care about anyone else.

I found this interesting, because it’s common to think that without a clearly defined set of rules governing people, chaos would ensue. However, the opposite usually tends to happen. Often, a group of people impose a dynamic set of constraints on any chaotic group that assembles. People either fall in line and maintain order, or risk some sort of judgment from the group.

Another one bites the dust: A favorite feed goes partial

UPDATE x2: Damn WordPress. 🙂 Apparently, Brett updated to WordPress 2.1 and it automatically moves to partial text feeds. My apologies to the folks over at CircleSix. However, you bloggers with partial feeds still know who you are.

UPDATE: Brett over at Circle Six has responded to my gentle prodding and will be moving back to full text feeds.

I find it sadly ironic that two days after Steven Rubel talks about increasing your blog readership through full text feed, one of my favorite new blogs Circle Six, has apparently decided to go backwards and offer only partial text feeds.

I don’t read partial text feeds for one reason: Trust.

Partial text feeds are meant to do one thing and that’s bring the reader back to their site. Why would they do that? Easy: Page Views. The sites owner wants to increase the number of page views on their site. As soon as a site makes it known that page views are their number 1 priority, they are letting you know that page views, metrics, and ( perhaps ) AdSense are more important to them than people hearing what they have to say. They’re letting you know that the content on their site will be structured in a way as to maximize traffic and hits.

That, my friends, is not a blog.

In fact, it’s only another small step to not even offering partial text at all. Just a headline / title that says “Earn more money now! I’ll show you how…”

That’s not a blog. That’s a pop-up banner ad for a site and I thought everyone hated those?

Parallels and Spirited Away

I use a tool called Spirited Away for the mac. It’s a neat little tool that hides my windows after a definable period of inactivity. It’s nice because you’re not constantly bombarded with windows and I can concentrate more on what I’m doing, rather than something beeping and blinking in the background.

However, one of the interesting ( or perhaps annoying ) things is that with the latest Parallels builds, Spirited Away actually hides Windows apps too. I’m assuming with the introduction of Coherence, the window handles for Windows applications needed to be exposed to the underlying Mac OS just like any other Mac application. However, using the Windows application sometimes doesn’t reset the trigger in Spirited Away and it will still hide the window, even if you’re using it. Strange.

Now, spirited away does allow you to exclude applications from it’s control. it’s just a pain to have to do that over and over again for the different windows apps you use.

Hopefully, someone will come up with a better “Spirited Away” type application, especially since it looks like the app itself isn’t under active development ( It’s PowerPC for example ).

Compiling Redland RDF LIbrary on OS X

Just wanted to drop a little note here, in case other folks are trying to compile the Redland RDF Library on OS X. Apparently, if you have a Intel box and have the MySQL 5.0.25+ ( x86 ) installed, you’re going to run into this error:

ld: multiple definitions of symbol _CRYPTO_add_lock

/usr/lib/libcrypto.dylib(cryptlib.o) definition of _CRYPTO_add_lock

/usr/local/mysql/lib/libmysqlclient.a(libtaocrypt_la-misc.o) definition of _CRYPTO_add_lock in section (__TEXT,__text)

ld: multiple definitions of symbol _CRYPTO_lock

/usr/lib/libcrypto.dylib(cryptlib.o) definition of _CRYPTO_lock

/usr/local/mysql/lib/libmysqlclient.a(libtaocrypt_la-misc.o) definition of _CRYPTO_lock in section (__TEXT,__text)

/usr/bin/libtool: internal link edit command failed

make[3]: *** [] Error 1

make[2]: *** [all-recursive] Error 1

make[1]: *** [all] Error 2

make: *** [all-recursive] Error 1

The folks over at MySQL have said they have fixed this bug, but apparently it’s still an issue on Intel boxes. To get around it for the Redland install, simply add the –with-mysql=no flag when you run ./configure. This disables Redlands MySQL triple store. More options can be found be found here.

Chicago ACM: LINQ Presentation

The Chicago ACM has just made an announcement about it’s next meeting. It’s January 10th at the Microsoft office in downtown Chicago. The topic will be LINQ, presented by Dave Bost from Microsoft. Here is the talk abstract:

Modern applications operate on data in several different forms: Relational

tables, XML documents, and in-memory objects. Each of these domains can have

profound differences in semantics, data types, and capabilities. Much of the

complexity in todayÂ’s applications is the result of these mis-matches. Dave

Bost, Developer Evangelist for Microsoft will explain how the next release of

Visual Studio and the .NET Framework (code name ‘Orcas’) aims to unify the

programming models

through the introduction of LINQ capabilities in C# and Visual Basic. LINQ,

Language Integrated Query, is a strongly typed data access framework and an

innovative Application Programming Interface (API) for manipulating and querying


Space is limited, so make sure to reserve a spot by emailing Jim Thompson at

See ya there.

Parallels Performance Tip #2: Top 5 Ways to Optimize Windows XP

This is the second of several tips I want to write up with regards to squeezing every last bit of performance out of Parallels Desktop for the Mac. All information below is based on the current beta of Parallels Desktop for Mac, Beta3

In my first post, i discussed hosting your VM on an external USB HD vs. your internal SATA MacBook hard drive. Today, i’ll go over basic Windows XP performance optimization.

1. Turn off all the visual effects in Windows XP.

A fresh install of Windows XP comes with all sorts of visual niceties enabled. Shadows, animated windows and cute little graphical buttons are just some of the default GUI options enabled. All of it looks good, and all of it sucks more performance out of windows than Outlook. So, first thing’s first, disable all of that stuff. Microsoft was nice enough to give us an option to do just that, but they went and hid it a little bit. Make sure your logged in with Administrator privileges, then right click on ‘My Computer’ and select “Properties”. In the system properties windows, select the “Advanced” tab, then click the “Settings” button in “Performance” group:

Picture 1-6

It’s here that we find the promised land: a option on the “Visual Effects” tab that says “Adjust for best performance”:

Picture 2-1

Select that option, and click the ‘Apply’ button. Sit back and wait for a few seconds while windows disables all of those little visual effects.

2. Use a fixed size virtual machine hard disk

Parallels gives you two options when creating a virtual hard disk, Plain or Expanding:

Picture 1-7

An expanding hard disk starts with a size of zero, and grows to meet your needs, never taking up more space than you actually need. A plain hard disk starts at a fixed size and never grows or shrinks. While an expanding hard disk sounds like a smart solution since it saves space on your hard drive, it is by far the bigger performance bottleneck of the two. Since a expanding hard disk is constantly growing and churning, you’re trading hard drive space for runtime performance. Hard drive space is cheap now a days, so pick a big size ( 20-30GB ) and create a plain hard disk of that size.

3. Turn off System Restore

If you followed tip #2, then you’ll immediately be feeling the hard drive crunch. Since you have a fixed number of GBs on your hard disk, space is at a premimum. One of the ways to keep windows from filling up your virtual machines hard disk is to turn off pesky System Restore ( SR ). While SR does provide a valuable service in some cases, most of the times it just takes up space that a ) you don’t have permission to delete and b ) won’t show up on any hard drive statistics software you run ( like WinDirStat ). To turn off SR, right click on My Computer and click Properties. in the System Properties window, you’ll see a System Restore tab. Select it and select the check box that says “Turn off System Restore on all drives”:

Picture 2-2

Click Apply, which may take a while because windows is deleting any previous system restore files. Once windows completes, click ok.

4. Move your swap file to a dedicated partition

While many people have written about the benefits of removing their windows xp swap partitions on boxes with 1.5GB+ of RAM, we still need one. It would be very difficult to run our vm’s with that much memory. ( See my previous parallels article on my findings with regards to RAM settings. ) Given that fact, there are other ways we can optimize our swap partitions usage within a virtual machine. Some of the biggest benefits can be gained by moving our swap file to a completely dedicated hard drive partition. You can change the location & size of your OS swap file by right clicking on My Computer and clicking properties. From there click on the the Advanced tab and select the Settings button in the first group under the heading Performance. Select the Advanced tab in the new window and then click the Change button at the very bottom of the window, inside the Virtual Memory group. You should be at the below screen:

Picture 3-1

From here we can alter the size and the location of our swap file and even create more than one file. Any change here will require a reboot.

Now, unless you are just setting up your hard disk file for the first time, you will probably be unable to re-partition your hard disk because you already have existing data. Fear not. Parallels supports more than one hard drive per virtual machine. So, all you have to do is create another virtual had disk file. You can do this by editing your virtual machines configuration:

Picture 6

Click the Add button below the window on the left. Select Hard Disk as the hard ware you would like to add. From here you create your hard disk normally. Once creation is complete, the new hard disk will be associated with your virtual machine as Hard Disk 2:

Picture 4-2

Your new hard disk will now be available with you boot our virtual machine. Format it and assign it a drive letter and you can then store your swap file there.

5. Use the Mac OS X disk caching policy option

With the release of build 1940, Parallels introduced an option to change a virtual machines caching policy. By default, caching is optimized for the virtual machine and not the underlying OS. The author of the utility PDTweaker explains it best:

“Optimizing the cache for best performance of the VM makes sense if you do nothing on your computer except run Parallels. But outside of Parallels’ own developers and testers, that’s got to be a tiny percentage of the user base. If all you do is run Windows, why not just boot into it directly? Because you want to use your Mac as a Mac, obviously.”

To change the cache policy of your vm, edit your virtual machines configuration. While in the Configuration Editor, select the Advanced tab. The bottom right is where you change your virtual machines caching policy. By default, its set to optimize performance of the virtual machine. You can change this to optimize the performance of OS X instead:

Picture 7-1

Now, this setting is a little bit ambiguous because you need to test each one and see which value works best for you given your Parallels usage habits. If you run Parallels for long periods of time or do some intensive work in your virtual machine, the default setting would be the way to go. if, however, you only boot Parallels occasionally or use it sparingly, then optimizing Mac OS X would be what you want.

Related Articles:

* Parallels Performance Tip #1: Don’t use an external USB HD to hold your VM