Monday, September 27, 2004

Ode to Butterfingers

The wind. The rain. The fire.
The Butterfinger.
Did the Caveman know your delicious goodness?
Did the Mayan Priest exhalt in your buttery crunchiness?
Did the slothful Mastodon, upon his extinction, declare,
"Don't lay a finger on my Butterfinger?"
Oh, you finger of butter!
You proud confection!
Sugar brown roasted peanuts,
fructose, glucose, sucrose, lactose,
partially hydrogenated palm kernel oil.
Crispity, crunchity, peanut buttery--
I give myself to you.
Butterfinger.
Glad mantle of golden chocolatey hope upon my breast.
-Maya Angelou

(Stolen from Jose's profile)

Thursday, September 16, 2004

The Fearful Voter

A pretty good article. Well written, no real bias toward Kerry or Bush.

http://www.alternet.org/election04/19900/

Online XM Radio

I bet the RIAA loves this. XM Satellite Radio is launching their online listening service in October. Instead of selling a hardware reciever, XMSR opted to stream their music over the internet. WHAT WERE THEY THINKING? If you sell the reciever, consumers must at least buy it before using TimeTrax to archive the songs into mp3s. With music streamed over the internet, I don't even have to buy the reciever. I-Tunes anyone? I wonder how long it will take for an exploit to appear that allows me to record that stream - I give it a month. They forgot Justin's number one rule of marketing - if you put it on the internet, its already gone.

Wednesday, September 15, 2004

Quantum Cryptography

It looks like the $4 million that DARPA gave to BBN Technologies was money well spent. It appears that scientists have implemented (simple) quantum encryption. I say simple only because it is based on the behavior of photons, rather than quarks. It has been estimated (based on Moore's Law), that a 90-bit key with 90 bits of entropy will provide security through 2016. Meanwhile, it would take a modern computer nearly one billion years to brute force a 128-bit key (again, assuming 128 bits of entropy). The quantum encryption discussed in the article effectivley negates value of the key-length because it makes use of what is called a "one-time pad" - which is possible because of the sub-atomic size/nature of the message. Previously, one-time pads were impractical, as Bruce Schneier explains in his book, Secrets and Lies - "One-time pads are the simplest of all algorithms, and were invented early on in the 20th century. The basic idea is that you have a pad of key letters. You add one key letter to each plaintext letter, and never repeat the key letters. (That's the "one-time" part.) For example, you add B (2) to C (3) to get E (5), ot T(20) to L (12) to get F (6). 20 + 12 = 6 mod 26. This system works with any alphabet, including a binary one. And it's the only provably secure algorithm we've got.....It's also pretty much useless. Because the key has to be as long as the message, it doesn't solve the security problem."

Sunday, September 12, 2004

Pirate and Induce Act

Well, I said two years before no more downloading. I think I am going to be pretty close. If the Induce Act passes, then the creators of P2P networks can be sued by copyright holders. If the Pirate Act passes (it already passed the Senate) then violating intellectual property laws will no longer be a civil case but a criminal case. Its coming. Here is a link for more info. http://arstechnica.com/news/posts/20040909-4169.html

Child Pornography Upheld?

This is a bad title I know, but it got your attention. Well that is not the whole story. here is a link to the story. http://arstechnica.com/news/posts/20040910-4174.html I have to say I agree with the judge on this. I am not supproting child pornography, but I dont believe that the Internet Service Provider should be the one restricting access. It should be the job of the parents (to know what their kids do on the internet), or the police/government to prosecute child pornography offenses.

Wednesday, September 08, 2004

Select/Deselect All Javascript

This JavaScript I wrote is pretty useful for anyone building a website involving multiple checkboxes, and who wants "Select All" and "Unselect All" checkboxes. This assumes that you are using some sort of front-end (i.e. ASP or ColdFusion) and dynamically naming your checkboxes, though all the names must begin with "check" (i.e. check_1, check_2) in my example. This affords the developer a degree of security, as the user will be able to discern that the names of your boxes start with "check" (by looking at the script), but will not necessarily know the prefix, since it is written in ASP, ColdFusion, etc. The checkall() function should be called @ onClick of the "Select All" button, and the uncheckall() function should be called @ onClick of the "Unselect All" button. Using the ensurepropercheck() function is not always necessary, but it may be useful in some cases.

Tuesday, September 07, 2004

Defense of Myself

Just so everyone knows, I am sorry for the insanely long post. In the editor window it did not look as big. I will know in the future. As to the content of the post, if you don't like it, you don't have to read it. By the way, great poem Ross.

Amazon API & C#.NET

A few weeks ago I was writing an application, and I had a bit of trouble figuring out how to use the Amazon API (AWS) 4.0 in C#.NET. While there are Java examples available, there are no .NET examples, and the Java examples aren't much help in this case. The basic framework for this code came from a post buried deep within the AWS Beta Forums, so I thought I would post it for others to use. In order for this code to compile, you will have to have a web reference (I called mine Amazon) to the AWS WSDL (right-click References > Add Web Reference in VS.NET 2003 Solution Explorer). The code compiles the results from the query (right now it is set to search only the books section), along with an image (if available) into an HTML page, which can be used in whatever fashion you choose.

Content Matter

I have to agree with Ross on this one. The Pirat Blog should include more than computer nerd stuff ( and oh yeah if anyone can create a girlfriend out of 1's and 0's then they get kudos from me on the sole fact that that would be a beast of a project). On the other hand though most of us are computer nerds, and so that is what we talk about, so if you want more (and I do as well) then it should be posted. I plan on posting more than computer stuff, I just dont have time right now to post anything in depth such as politics or cool undertakings. Also though if you dont want to read the computer stuff (such as Keith's Genetic Algorithm stuff) then dont. P.S. I have already told Keith not to post a beast thing like that on the main page. What should happen is a small post introducing (and I mean smaller than his, I know his was a intro) should be posted and then just post more under the comments section.

Monday, September 06, 2004

Pi-Rats Shmy-Rats

Pi-Rat? This is more of a computer nerd blog, which is ok if you're into that kind of stuff. There should be more death and destruction and less 'here is how to make a girlfriend out of ones and zeros' Where's the booty and plunder? Andy and I are hereby challenging the subject matter of the Pi-rat blog. In the spirit of real world blogging (read: 'losers with too much time and too much webpage space'). I have written a poem of bleakness and dispair:

The darkness of dispair and the wretchedness of society
By: Ross Umberger, acclaimed international poet laureate

oh, I am but a hask of a man...
my soul drips from my body like a moist squirt of nougat
a melted candy bar in the pocket of society,
longing to fatten the love handles of spoiled children
woe is thine
hark
darkness be thine, oh bemoaner of misery
shadow, the sparrow is upon me
darkness i cannot overcome
giant hersey bar
so delicious, yet not so nutritious
i am but a tasty burden
to the disgusting fatbody

Genetic Algorithms Part 1

I am trying to turn this blog into a series on GA's, but I do not know the exact number of posts. This first blog will be a generic introduction to GA's. Genetic Algorithms were introduced to me about six months ago, and I have found them interesting every since. For those of you who do not know, Genetic Algorithms are the idea of applying evolution and genetics inside a computer program. They are used mainly in problems where a brute force(trying every solutions) will take centuries on a normal computer. For example, you can create a program designed to solve a typical problem to "evolve" into either a better solution, or even to evolve into a completely new program that will better solve the problem. There are a few basic steps involved in designing and implementing a Genetic Algorithm. The first step is to know what you are trying to solve for. Each problem will have a solution set that can be represented in multiple ways, however many problems (NP-complete) are represented through permutations of solutions. After determining your solution type you need to generate a population from solutions. You can do this through random number generation or another depending on your solution set. After the population is generated you need a cut-off point where a solution does not meet the required standards. For example, when solving a problem if the evaluation is too high you can throw the solutions away. When you have your population you will need to perform genetic operations on the population in order to evolve your solutions. There are many genetic operations such as mutation, mating, and crossovers which I will go more in depth in a later section. These operations will help determine better and better solutions at an extremely fast rate. You will then insert these solutions into the population, thereby increasing the intelligence of your population. Normally, you set a break off point for the program to stop evolving based on the amount of time you have to solve the problem. I have attached sample code implementing a GA to solve the Traveling Salesman Problem (TSP).

http://people.clemson.edu/~davidla/GATS.zip

The TSP is the problem of determining the fasted route of a salesman as he travels from city to city. Utilizing a brute force attack of this type of problem with a decent amount of cities (20 or more) will take years on a deterministic computer. Thus, the GA was implemented. Please email me if you have any questions, and I will work on Part 2 soon.

Tivo and Netflix

http://arstechnica.com/news/posts/20040906-4159.html
Tivo and Netflix are combining forces, so you will be able to rent movies over broadband for fairly cheap. This is going to be sweet when the technolgy infrastructure gets in place. I will get this definitely.

RipSource

I posted this on my webpage a while back, but no one ever reads my webpage. RipSource is a small utility I wrote in C# .NET that allows you to "rip" the viewable source for any web page to your hard drive, via a direct connection or a proxied (anonymous?) connection. It also allows you to disable any script tags for added security. This whole process allows you to explore a web page without worrying about executing malicious code or giving away any information about yourself. I'm posting the source, as well as a readme and the program. If anyone wants to make any upgrades, even if they add unrelated functionality, please feel free to post them here or mail me the improved source, and I will "re-release" RipSource with due credit given.

Optical Camouflage

Remember James Bond's transparent car in Die Another Day? The retro-reflective projection technology that could make such a car possible was demonstrated last June at Nextfest by Professor Susumu Tachi, a professor at the University of Tokyo. There are some cool videos at the Tachi Labs Site, an e-brochure, and a white paper describing the rather simple process.