Google Ads

I’m a bit of a packrat. When something electronic finally craps out, I tend to keep it around, just in case. Dead hard drives fall into this category, at least for me.

If you’ve never taken apart a hard drive, you should. The platters are unbelievably reflective, since they’ve never been touched by anything before being installed in the drive’s casing. I have a large collection of hard drive platters at the moment, some of which have interesting radial patterns due to being scratched into oblivion by a misaligned head. I’m not sure what I’m going to do with them yet, but I’m sure I’ll think of something.

Another handy component in a dead hard drive is its magnets. Hard drives have two extremely powerful magnets in them. You want to be careful when playing with these - you could injure yourself if you got some skin or a finger caught between two magnets as you snapped them together.

I use some magnets on my fridge - the ones that have prongs on one end work well for this, since it keeps the magnet itself from touching a surface. Hard drive magnets are strong enough that they’re pretty difficult to pull off a magnetic surface.

So, in addition to my wide collection of hard drive platters, I also have around twenty hard drive magnets of varying sizes and styles. Today, I found a good use for one of them.

I live in an old historic house in downtown Lafayette, IN. All my walls are plaster. Today, I bought a cheap Black and Decker laser level at Menards. It comes with a magnetic wall mount, but the mount requires using a small pin to attach it to the wall. This pin only really works with drywall - if you’ve ever tried to push a pin or nail into plaster by hand, you know how difficult it is. So, I needed to find an alternative. Because of the design of the wall mount, I couldn’t just stick it to the wall with a piece of double-sided heavy-duty tape. The solution? A hard drive magnet!

It worked perfectly. I used my favorite 3M indoor/outdoor double-sided tape to mount it to the wall. You need to be careful when using this tape - if you remove it too quickly, it will rip off a layer of paint. I would imagine that other types of adhesive mounts would work equally well - 3M’s Command Adhesive tape would probably work, since the level isn’t very heavy (at least, my $15 one isn’t).

At any rate, think twice before dumping your trashed hard drives - they may still be useful for other geeky (and non-geeky) sorts of projects.

2008.09.07 [Sun] | 12:17 AM

Purdue, like a lot of enterprise-level organizations, uses LDAP to manage certain things. One of the advantages to LDAP is that it can provide information about users on a domain. Our organization uses some globally-accessible ColdFusion functions to quickly get user information based on user ID data.

With AJAX libraries and frameworks (we use Scriptaculous and Prototype), we’ve also created a bit of JavaScript that allows retrieving the first nad last name of a user from an entered ID without having to submit the form and post back to the page. It’s a useful tool, but it was originally written to only work with one text field on a page.

In one of the applications I’m currently working on, I have several different fields that require this behavior. I decided to modify the script we have so that I could pass a value to the function as a sort of prefix. That way, I could have a text box with an ID of OwnerID, and another with an ID of UserID. Instead of the normal script, which is called just by lookupID(), I’d be able to refer to a specific input, using something like lookupID(’Owner’).

Everything was coming along the way I needed it to, until I got to the section of code that dealt with changing the values of input boxes on the form. When a user enters a person’s ID, the JavaScript code looks up the person’s first and last name and displays that name in a read-only input box on the page. Since each ID input box had a corresponding read-only input box, I needed to be able to dynamically refer to that box using the prefix passed to the function.

It’s very easy to accomplish, but it took a bit of Googling to figure it out. It turns out that square brackets give us the ability to manage the task. For instance, for a form named “edit”, the standard code might look something like this:

form.edit.OwnerName.value = '(' + FirstName + ' ' + LastName + ')';

However, the OwnerName input box ID needs to be different for each read-only box, so we use square brackets to create a dynamic form element reference, where foo is the prefix passed to the function:

form.edit.elements[foo + 'Name'].value  = '(' + FirstName + ' ' + LastName + ')';

It’s a bit more complicated than dynamic variable names in ColdFusion, but it’s fairly easy to implement, and it gets the job done.

Dynamic variable names can be extremely useful when dealing with similar pieces of code, loops and other such concepts. Each language deals with it differently, but I’ve found it an important element to learn about in most of the applications I create.

I, like pretty much everyone in the known Internet-accessible world, use Google. A lot. I’ve used Google Docs in the past, I have friends and family who only use Google Talk for chatting, Google is obviously the biggest and best search engine available, and now they have a browser.

A browser which, unfortunately, I will not be using.

There’s an interesting article that lays out the details of Google’s EULA (end-user license agreement). It’s not pretty.

This has all come to light with the release of Chrome, but Google’s user-hostile EULA has been around for much longer. The basic gist of it is that Google claims to have royalty-free license to use, manipulate, and/or modify any content (text, images, etc) that you send through their services.

What does this mean for you? Google’s EULA stipulates that you confirm your legal right to any content you send - that it’s your own intellectual property (IP). This just isn’t possible, as the above article discusses. If you use your corporate webmail through Chrome, you have no right to give Google license to use any content sent through email. Your company holds all rights to that content - not you, not Google.

Is it possible to live without Google? Probably, but I’m not interested in giving it up as my search engine. I won’t, however, be using Google’s browser (although for other reasons as well, which I’ll discuss in another article). I’ll also be pretty cautious about using Google Docs to store any important content - I’d much rather put some kind of document management system on my own server, free of anyone’s service or license agreements.

Google’s started to get a little powerful for its own good. I applied for a job there in 2006 (when I was finishing my undergraduate studies at IUPUI), and they were pretty underhanded and unethical in how they handled the interview process. I was never explicitly informed that I was applying for a contract position with no guarantee of full-time salaried employment. I had to ask them directly about that - it’s just not an honest way to do things. Aside from that personal experience, though, just look at how widespread Google has become. They’ve infiltrated many industries. They’re talking about releasing a smartphone with an alternative to Windows Mobile and PalmOS. They’re buying up other services to expand their reach. It’s how capitalism works, but it this case, I think it’s becoming a little dangerous.

Like Apple, people just trust Google to treat them well as customers and users. They trust Google to not abuse its power, and they believe that it has their individual best interests in mind. Unfortunately, that’s just not how corporations work. Google is like any other corporation in that they are driven by what funds them - their stockholders. Google continues to provide good products, because it means people will be interested in their offerings and will consider buying their stock. But at the end of the day, it’s not about your interests at all - it’s about money and profit. Google is no better a corporation than Microsoft; it’s just that the owners of Google aren’t as upfront about their evil as Steve Ballmer is.

I started looking around for alternatives to some of Google’s offerings. There’s an interesting service provider called Zoho that seems to provide a lot of the same services without the hostile user agreement. In fact, Zoho is the complete opposite:

We respect your right to ownership of content created or stored by you. Unless specifically permitted by you, your use of the Services does not grant AdventNet the license to use, reproduce, adapt, modify, publish or distribute the content created by you or stored in your Account for AdventNet’s commercial, marketing or any similar purpose.

It used be that nobody read EULAs on software or services, because they all said the same thing - a disclaimer, limitation of liability, and rules about what’s considered illegal and grounds for revocation of the license in question. Now, however, with Google’s EULA coming under public scrutiny, it might be worth your time to make sure you haven’t agreed to any license terms that no sane person should ever voluntarily agree to.

Google Ads