I tend to write a lot of little programs, because it’s more efficient to
write a script than doing the alternatives.
For example, it takes a long time to download a bunch of files and
organize those downloaded files. This program reads a table from a csv file.
Then it downloads files from the url’s in the second column and it puts the
downloaded file in the the folder in the first column. The lines starting
with an # (octothorpe) except the first line are water downed notes for
people who know don’t what the program is doing. The first line shows where
ruby is located.
#!/usr/bin/ruby
# This program requires the csv library. A library is filled with
# functions, objects, classes (types of things) for the purpose of
# being re-used.
require 'csv'
# The parameters (or arguments) for the program is stored in an array (a
# list of things). This checks if the user put in the first parameter.
if ARGV[0] == nil
# If the user didn't put in the first parameter then the script displays
# a usage statement (how to use this program in the terminal). This
# program exits after the usage statements is displayed.
# $0 is the file name where the program is running from.
puts $0 + " somefile.csv"
exit
end
# I know this is not really necessary, but it waters things down. I know
# I can still use ARGV[0]. The first parameter should be the path to
# the CSV file. A path is the location of the file.
csv_file = ARGV[0]
# This checks if the file doesn't exist.
if !File.exist? csv_file
# If the file doesn't exist then the program displays an error. The
# program exits after the error (the file doesn't exist) is displayed.
$stderr.puts csv_file + " does not exist."
exit
end
# This program opens the file then reads one line at a time. Each line
# is a row in the table. CSV::Reader.parse is from the csv library.
CSV::Reader.parse(File.open(csv_file)) do |row|
# The current row is stored as an array. For each row download from the
# url in the second column and save it the folder in the the first
# column. wget is an other program. wget is a powerful downloading
# tool. wget is available for Windows, Mac OS X, Ubuntu and many other
# operating systems.
`wget --directory-prefix '#{row[0]}' #{row[1]}`
end
I got TV out to work with my ATI X1200 graphics card on Ubuntu Jaunty Jackalope without the FGLRX driver. I had to enable experimental tv-out support by editing the “/etc/X11/xorg.conf” file with a text editor. There might be some quirks when this option is enabled.
In the “Device” section I added the following line.
Option "ATOMTvOut" "yes"
The driver setting needs to be set as “radeon” or “ati” in the Device section.
Driver "ati"
This only works with “R/RV5xx, R/RV6xx, and R/RV7xx atombios chips” according to the man page for the radeon driver.
I thought wouldn’t it be nice take advantage of the new Notify OSD, in Ubuntu 9.04 Jaunty Jackalope, to tell me when BashPodder is finished downloading the podcasts. So, I took at advantage of it.
Since, BashPodder is written in Bash, I installed the libnotify-bin package to be able send a notification and have it display the notification. To do that, I typed in the following command in the terminal (without the dollar sign.)
$ sudo apt-get install libnotify-bin
Then I added the following at the end of the file “bashpodder.shell” as one line.
notify-send -i terminal BashPodder "BashPodder has finished downloading the podcasts."

I’m having a loosing battle with the recommendation engines. I always had issues with all recommendation engines, because it recommended stuff I didn’t like. A lot of times YouTube recommend to watch videos that are anti-Scientology. Pandora recommends only music with the same lyrics as songs that I liked, but the song is lost with every remix. Hulu recommends science fiction and drama when ever I never in the mood. Hulu just started to recommend comedies that rots the brains, even though I like comedies that requires the mind.
The ways I tried combating bad recommendations from recommendation engines by simple clicking the thumbs down button, clicking the I’m not interested check box, and giving low ratings immediately before watching the video. I am getting stronger feeling as I combat these bad recommendations that I am failing; I’m failing bad. I feel I am failing, because whenever I see something that I like in these recommendation engines I actually saw that before. For example hulu recommends me to watch clips of The Office I’ve seen before. I wounder to myself. Am I so hard to figure out?
Sometimes it’s impossible to teach a beast etiquette. In that situation, it’s probably better to let the world see the beast as a beast. I know it’s ugly to look at the beast when it’s being a savage. It’s always sad to look. Impulsive ideologies are truly ugly.
I learned that sad mentality from people who quickly disregarded my statements as to “nerdy” or “far fetched” without thinking. I know they didn’t listen to any word I said. When I was younger I kept on fighting (arguing), but now I am don’t want to fight. I am older now. I don’t want to waste time with frivolous things and people. There are more important things to do.
Out of fear of having to deal with these frivolous people I sometimes water down my statements. I fear that these “fakey” people will attack my actions as to “nerdy.” When they attack my actions they spread propaganda of pure stupidity and they’re successful. I know their successful, because most people are afraid of change even if they identify themselves as liberal. I hate both of these fears. I’m sometimes able to suppress my own fear. When I suppress this fear, I am happier.
I am always looking for tools to stab stupidity in the eye. Even though I don’t want to argue. I want to do more important things. The scary thing is people don’t know what I mean by important things, because their stupidity makes them run away before they find out what important things means. I really want to create and maintain without an entity telling me no for bogus reasons. Good job you havn’t run away.
A binary blob is a driver where the source code for that driver isn’t publicly available through a open source or free (not freeware there is a huge difference) license. Binary blobs can pose some legal questions for some operating systems. Is it truly legal according to the GNU Public License? This question is valid, because when your writing a driver it uses API’s that are under the GPL. Since it uses those API’s that makes a derivative work and while not being licensed under the GPL makes it violate the GPL.
The real reason why I don’t like binary blobs isn’t the legal questions it poses, because the problems I see also effects operating systems licensed under the BSD licenses. Binary blobs creates an unintegerated experience. When it’s not developed to be included in the operating system the drivers tend to be not compatible with certain features. For example not being compatible with a nicer boot process. Sometimes the issue is greater than being incompatible with some features. These issues eventually causes people to use older software. At times binary blobs from nVidia or ATI aren’t compatible with the latest verison of the kernel. The practice of being dependent on binary blobs to make hardware compatble with many operating systems is truly a diminishing return.
It’s boring to watch water down journalism. When I stare at their faces I hear, “Rabble Rabble,” and someone screaming. They defend their fluff pieces by claiming they need to cater to their audience. When they say that I really feel they are really saying their audience is filled with mostly idiots. When I water things down I feel like I am talking to an idiot.