Tad Thorley

creative commons license rss feed comments feed powered by Howex valid xhtml Add to Technorati Favorites

The PING Project Proposal

Many computer users are harassed every day for not using the term "GNU/Linux" even though it is more often known as "Linux". They wish there were an alternative so that they could call it whatever they wanted without being dragged into a pointless argument.

I'm proposing a project to fork (like iceweasel from firefox) all GNU elements (under the GPL) so that users can be truly free: free from harassment, free from the ideals of others being pushed on them, and free to refer to the system as just "Linux". I'm calling it PING--Ping Is Not GNU--because it is recursive and "ping" is part of geek jargon.

Who's with me?

I'm tired of "solutions"

A few weeks ago I was given some copy for a website I'm working on. They were asking how they should change the wording to get better search engine placement. One thing that stood out was how often they used the word "solution". Who even googles for "solution"?!

It seems to be the popular new approach in business nowadays. You don't treat people as customers wanting to buy products anymore. You have "relationships" with people looking for "solutions" for their "problems".

When I hear the word "solution" (speaking as a former chemistry major) I think of solvents, solutes and precipitates--a "business solution" is business dissolved in water. What I think is odd about the whole thing is that it presupposes that there is a problem (and that people are just bundles of problems looking for "solutions"). For example, if you have HP Solutions doesn't that imply that there are a lot of HP problems out there? It gets even more ridiculous. If I have juniper problems does that mean I need Juniper Solutions? What is a "juniper problem" anyway? How many people are thinking to themselves: "I have a problem--a real juniper problem--I wonder if I can find any juniper solutions online"?

Maybe I'm a little too independence-minded. I don't think I have a lot of "problems". I don't think I need to pay businesses money to solve the problems I do have for me. I just have things I'd like to do.

And sometimes I need to buy some products to do those things.

Doorstep Spam

Another set of phone books was dropped on my doorstep this Saturday. There were two sets (large and travel-sized) of yellow pages and a set of white pages. I added them to the stack of phone books that I've received this year. It got me thinking. I haven't actually used a phone book in years--the internet has made them completely unnecessary. How are they any different than spam, junk mail, or fliers that are left on car windshields? They are just another form of irritating advertising that I didn't ask for and don't want.

I did some searching online and came across the Paperless Petition website. They claim that 540 million directories were printed this year. I just checked the population of the United States and it's (roughly) 302,962,103 people. That's about 1.78 books per person! I can see some use for phone books, but that ridiculous!

Blog Style Feedback

I've been working on the design for this blog for the last couple of weeks now. I have gotten the elements and such hammered out, but I'm not a designer so I'm sure there's room for improvement. If the 4+ people who read this blog wanna give me feedback, I'd appreciate it.

As always, thanks for reading

Cyber Kyle and the United States Postal Service

cyber kyleWhen I was cleaning up at work I came across this promotional magnet. It was part of a marketing campaign the postal service ran last year to encourage companies to use more direct mail advertising.

I thought it was interesting how the USPS chose to depict "the Internet". Let's take a look at "Cyber Kyle" and figure out what he's like. First off, he's anti-social and very adamant about it (as evidenced by the sign in the background). He's a bit of a slob (cola bottles on the ground, long unkempt hair). He isn't even quite human (blue skin--other magnets in the set used realistic skin tones--and a freakishly long neck). He doesn't seem like a person you would "work best" with.

Are they just using stereotypes of what "computer geek" is or is there more to it than that? I may be reading a little too much into this, but it seems like the USPS has a touch of animosity towards "the Internet." :)

Some Technorati Juice

I've decided to register my blog with Technorati to give it a little more exposure. I also created a Technorati Profile to keep up with the blogosphere.

Yarrr!

That's right, tomorrow (Sept. 19) is International Talk Like a Pirate Day. It is alright, but, to be honest, Pretend to be a Time Traveler Day sounds more fun.

Why I Filter Ads

Ad filtering has been getting a lot of attention lately, so I thought I'd write an article explaining why I filter ads. However, I'd like to point out to a couple of things right off of the bat. First of all, "speech" isn't equally free; commercial speech doesn't enjoy the same privileges as political speech. Secondly, along with free speech there is an opposite freedom: freedom to ignore.

There are three reasons that I filter online ads.

  1. They Are Obtrusive. Obtrusive ads are ads that seriously impede what I'm trying to do on a website. Most of the time that means reading some text. Ads that make a page load noticeably slow are obtrusive. Ads that float over what I'm trying to read are obtrusive. Ads that are overly annoying (e.g. animated or have a hideous color scheme) are obtrusive.
  2. They Are Offensive. There is a reason that erectile disfunction ads are only shown late at night. That is when children are asleep and it is unlikely that they will be exposed to them. Unfortunately, online ads don't always discriminate. I don't want to see ads that are sexually suggestive (yes, I'm looking at you Tru) or violent. I don't want my wife to see those kinds of ads. I definitely don't want my children to see those kinds of ads.
  3. They Are Intrusive. Ads on the internet are different than ads in other media. Ads on the internet (can) watch you. They can collect information about you: what isp you use, what sites you've been to and at what time, what your interests are, etc. (this is what Doubleclick and others like them do). I'm not ashamed of my web browsing. What I don't like is that they can stalk me and gather information about me without my knowledge or consent.

There are ads I don't block. For the most part, I allow ads that aren't obtrusive, offensive, or intrusive through. However, the only times that I've made purchases due to online ads is when the products were relevant to what I was looking for and directly addressed some need or want. Relevant, unobtrusive ads are how Google has made its money. It seems so simple and obvious I don't understand why more people don't do it.

Approximate Pi With Random Numbers

random exampleI came across some old computer science notes about using random numbers to calculate π and I thought it would be fun to code it up really quick in Ruby. First, however, I think it needs a bit of explanation. Let's start with a square with sides of length 1. Next, let's circumscribe a quarter circle within that square (making the radius of the circle 1). Let's also assume that the bottom left corner of the square is at the origin (0, 0). (I've included a--very simple--diagram in the way of illustration). We know that the area of the square is r2 or 12 or 1. We know that the area of the quarter circle is πr2/4 or π/4. (Notice that the r has dropped out.)

Now for the second part. Let's take a random number generator that generates random numbers between 0 and 1 (not so hard in computer science). A pair of them (xr, yr) will fall somewhere within our square. Using the distance formula, we can see if the random pair also falls within the circle (the square root of x2 + y2). We choose some total number of random coordinates and see how many fall within the circle compared to the total number (which all fall within the square). Using the ratio of the number within the square to the number within the circle we can take a guess at the value of π.

Here's the code:

1
2
3
4
5
print "Number of iterations: "
iterations = gets.chomp.to_i
count = 0
iterations.times { count += 1 if (rand**2 + rand**2)**0.5 < 1 }
puts 4.0*count.to_f/iterations.to_f

The more iterations that you do, the closer to π you get.

He Kinda Did

When I first heard that Al Gore claimed to have "invented the internet", I reacted the same way that most people probably did. I figured that it was another outrageous statement that politicians like to make where they claim more credit than they deserve for something they were marginally involved in. What he actually said was that he "took the initiative in creating the Internet", but that sounds just as bad.

However, I recently came across an interesting email by Vint Cerf and Bob Kahn; two of the "fathers" of the internet. Here are a few things that they say about Al Gore:

No one person or even small group of persons exclusively "invented" the Internet. It is the result of many years of ongoing collaboration among people in government and the university community. But as the two people who designed the basic architecture and the core protocols that make the Internet work, we would like to acknowledge VP Gore's contributions as a Congressman, Senator and as Vice President. No other elected official, to our knowledge, has made a greater contribution over a longer period of time...
Last year the Vice President made a straightforward statement on his role. He said: "During my service in the United States Congress I took the initiative in creating the Internet." We don't think, as some people have argued, that Gore intended to claim he "invented" the Internet. Moreover, there is no question in our minds that while serving as Senator, Gore's initiatives had a significant and beneficial effect on the still-evolving Internet. The fact of the matter is that Gore was talking about and promoting the Internet long before most people were listening...
There are many factors that have contributed to the Internet's rapid growth since the later 1980s, not the least of which has been political support for its privatization and continued support for research in advanced networking technology. No one in public life has been more intellectually engaged in helping to create the climate for a thriving Internet than the Vice President. Gore has been a clear champion of this effort, both in the councils of government and with the public at large.

Sounds like he was a lot more involved than I ever realized. It's too bad that he's been chided so much for his statement when really did help create the internet (as we know it today).

Using Pseudoselectors Together

Now that I have my new blog up and running, it is time to start customizing it to my liking. In my previous blog I liked having the first line of the first paragraph bolded and I've decided to add it to this blog's style. The secret is to use pseudoselectors together to get what you want like so:

1
2
3
.entrybody>p:first-child:first-line {
  font-weight: bold;
}

For those of you who use Wordpress or Mephisto, you can paste this right into your stylesheet.

Save a Student Some Money

Software For Starving Students is a great collection of free software aimed at college students, but everyone can probably find something useful. They just released their latest collection and it all fits onto a single CD for either Microsoft Windows or OS X. (For those of you on linux, you can just "aptitude install" most of these from a command prompt).

An Rbot CSS Plugin

I got a positive response from posting my last rbot plugin, so I've decided to post my second rbot plugin too. As a web developer, I thought a css plugin would be nice. It gives quick access to attribute info when you are in IRC. For instance, I have a hard time remembering the options for "background". I could either pass "background" to get the information for that attribute or "background*" (a regular expression) to get a list of the background attributes (a match for the regular expression).

Download the rbot css plugin.

Enjoy!

A Recipe for World Domination

Tad: if you were an evil madman
Tad: do you think you'd try more for "evil" or more for "madman"?
Tad: or try to strike a balance between the two?
Garrett: me, personally, I'd probably lean to crazy
Garrett: evil's just never really floated my boat
Tad: if you focused on evil you'd probably get more done, but focusing on madman is probably more fun
Garrett: Maybe, I don't know
Garrett: I don't see why you have to be super evil to be an evil madman
Garrett: I mean, is wanting to rule the world and control everybody with an iron fist really evil?
Tad: yeah
Garrett: er, um, oh
Garrett: I mean, yeah, of course
Garrett: ...
Tad: it's the evil that gives you the drive and focus
Garrett: But it seems like it can be distracting too
Tad: I mean, just being crazy doesn't accomplish that much
Tad: It's the evil that helps you channel it into something productive
Garrett: I mean, what seems to have derailed a lot of the supervillains in the James Bond films is they just crossed the line a little bit
Garrett: Tried to kill off henchmen for fun
Garrett: Got distracted from their goals by mass murders
Garrett: Or brought their plans to others' attention thereby
Garrett: Or ended up turning some of their followers against them who then gave critical help to the hero
Garrett: Just seems to me that they'd have gotten a lot farther being just a little less evil, and maybe just a bit more madman
Garrett: And sure, you've got to be evil to try to take over the world, but you've got to be crazy to want to
Tad: I'd ascribe those actions to "madman" more than "evil"
Garrett: hmm, maybe hard to make the distinction
Garrett: clearly evil acts
Garrett: But as committing them defies their own logic and thwarts their own plans, clearly mad
Tad: well, maybe if you could compare someone who is a madman and not evil with someone who is evil but not a madman
Garrett: hmm
Garrett: you don't really here about good madmen that often
Tad: kinda like chaotic good vs. lawful evil (in D&D terms)
Tad: or maybe more like chaotic neutral vs. neutral evil
Garrett: yeah
Tad: I'd argue that self-destructive behavior is more "chaotic" than "evil"
Garrett: You know, I think you're bringing me around a bit
Garrett: I'd agree that you'd probably need more evil than madman
Tad: consider bill gates
Garrett: But, the madman is still pretty necessary
Tad: he is more evil than madman
Tad: and he created microsoft
Garrett: As it pushes you to achieve greater goals than a sane person would consider, and seems to inspire followers somehow
Tad: and helps you "think outside the box" so to speak
Garrett: to be successful, very important to find the right balance, I think
Garrett: 30-mad, 70-evil maybe?
Garrett: Or do you have to throw some "genius" in there too?
Tad: yeah, that would also be important for accomplishing your goals
Tad: how do you build killer robots without an understanding of robotics?
Tad: 50% genius, 30% evil, 20% madman?
Garrett: http://www.girlgeniusonline.com/cgi-bin/gg101.cgi?date=20060828
Garrett: sounds good
Garrett: But Einstein said genius is 80% perspiration or something
Tad: I think it was Edison
Garrett: mayhap you only need a smaller amount for a spark, and more of the evil for the drive
Garrett: oh, yeah, well, I didn't look it up
Garrett: 80% of statistics made up on the spot, and whatnot
Tad: "Genius is one percent inspiration and ninety-nine percent perspiration."
Garrett: oh, that's even more a percent than I made up
Tad: so, 49.5% perspiration, 0.5% inspiration, 30% evil, 20% madman?
Garrett: sounds like a recipe for world domination!

Feeding the People

I realized that when I converted my blog over I change my feed urls. So here they are for all y'all who like to use readers:

feedburner: http://feeds.feedburner.com/TadThorley

rss: http://tadthorley.com/feed/rss.xml

atom: http://tadthorley.com/feed/atom.xml

Thanks for reading.

An Unsung Hero: Aung San Suu Kyi

I'd never heard of her until recently. I figure I should help get the word out.

Prime for Ruby

I came across this algorithm for determining if a number is prime and I thought it might be fun to implement in Ruby. Some objectives were to stay true to the original algorithm, do it in less code and keep it just as readable. Here's my result:

1
2
3
4
5
6
7
8
9
10
11
class Fixnum
  def prime?
    (2..self.abs**0.5).each {|n| return false if self%n == 0}
    return true
  end
end

2.prime?   # => true
5.prime?   # => true
12.prime?  # => false
101.prime? # => true

I figured this is something that I could add to the Fixnum class so I could just ask a number if it is prime or not (in true OO fashion). I check the range from 2 to the square root of the number. If it is divisible it isn't a prime, if not then it is.

Of course, there is a Prime class for Ruby, so in many cases this would be unnecessary.

A Lesson Learned

When your two-year-old tells you that she needs to go potty and you ask her if she can wait and she tells you that she can... she's wrong--she can't.