Primefinder, Part 2?

August 17th, 2009

So, I’m tempted to revisit my brute-force primefinder, now that I’ve discovered that I can buy time on a supercomputer* for next to nothing. I looked into Amazon’s EC2 cloud a couple of years ago for a project I was doing for a client, found it wasn’t a good fit, and then never really thought about it any more. However, recently I started a project for another client that *is* a good fit, and as a result I’ve been putting EC2 through it’s paces – and I can see that doing things like brute-force testing a large problem space for potential solutions to the p/q problem is something EC2 would be *very* good at. (Any problem that can be broken into small chunks and would therefore run well on a cluster). And, CPU on EC2 is relatively cheap. Storage and bandwidth cost money, but we don’t really need either of those.

I know – just what I needed, another pet project. 😉 [actually, revisiting an old one]

* = well, very large cluster anyway

My hi-res wishlist

August 16th, 2009

So, here’s a list of movies that I *wish* were encoded on high res formats. Incidentally, this may also be a pretty good list of my favorite

1) Pump Up The Volume

2) Hackers

3) Who Framed Roger Rabbit

4) the Animatrix

5) Pink Floyd: Delicate sound of thunder

6) U2: Rattle & Hum

7) The mind’s eye series. (I know, this would be a major undertaking since they were originally rendered for NTSC and would have to be rerendered)

8) Groove

Problems with Money (may not be well thought out)

August 16th, 2009

So, as most of you have noticed, money is broken. Various people have different theories on how it’s broken, why it’s broken, or what we should do to fix it, but only a few billionares actually think what we’ve got works well.

From time to time, I post posts about particularly broken things (like margin accounts). Today, I’m going to point out a set of ratios – the money : human time available, money : physical resources available, money : information available, and money : energy available ratios.

The one I’m going to focus on first is the money : information available ratio, because it is the one that is the most demonstratably broken. When people create new intellectial property, they are presumably creating value for humanity. When a artist records a new album or a programmer writes a new application, they get paid for it. What’s interesting about this is that it seems like a lot of our prized monetary systems – like inflation – are based on the idea that there should really be a fixed amount of money in the world, and it should be tied to physical resources. i.e. your $1 buys you 0.0001 ounces of gold. The problem with this is that when people create things that are all, or even mostly, ideas, it *breaks*. They’ve just created a new resource. It’s like they synthesized that 0.0001 ounce of gold out of nothing! In order for it to work out okay, you really need to inject more money into the system, *without* inflation, to line up with the more stuff (information, movies, albums, whatever) that now exists.

Next, the money : energy available ratio. This one goes several ways. We’re spending money to buy stored energy (i.e. gasoline, NG, etc) and to buy energy converted from the sun, wind, falling water, etc. But whenever someone insists on generating energy via some direct-from-the-sun conversion method, they again mess with the whole system.  Again, it’s like they’re synthesizing more gold. We’re supposed to have a certain amount of energy for sale, all stored as oil here and there, and there they go demonstrating the ability to produce unlimited amounts of energy with just a little bit of technology.

Next, the money : human time available ratio. This is where things get *really* broken. The assumption in america seems to be that every one who wants to be able to buy things and eat and live indoors and the like should either A: work, B: have rich parents, or C: be disabled. In general, it seems like people think there’s something immoral about not wanting to work. This would make sense if we didn’t have a *shortage* of real jobs. But the reality is, a lot of our jobs are makework – shuffling papers around, system overhead caused by the monetary system itself – or work that a really simple robot could do, and probably will do soon. Part of what we need is to embrace that in a world with 6 billion people, *not everyone needs to work*. Many hands make light work, say the Chinese, and by all indications they’re right. Especially when those many hands are connected to many minds that can program computers to do the work for them. 😉 However, the current system makes it very difficult for those who don’t work to continue, for example, living indoors. This is, in fact, dumb.

Next, the money : physical resources available. You can make a good case that right now, there is a finite amount of stuff – raw resources, metals, oil for plastics, whatever – in the world. Also a finite amount of land. However, space exploration and nanotechnology could both change that, if we wanted them to. If we put the kind of energy into discovering new ways of generating wealth that we put into blowing each other up over the existing wealth, we could all be wealthy beyond our wildest dreams. What we’ve got now is a system for resource allocation that has the government paying farmers to not grow food while people dig through trash cans in order to feed themselves. It’s broken, and it really needs stripped out and replaced.

Java Tip: setting a header on a http request

August 5th, 2009

This didn’t actually take me that long to figure out, but I can easily see how it could take someone a while, so I thought I’d include a code snippet for the benefit of our Googling friends:

URL url = new URL(“http://whatever”);
URLConnection urc = url.openConnection();

urc.setRequestProperty(“header”,”header-value”);
urc.connect();

InputStream in = urc.getInputStream();

New (old) Sheer Track

July 18th, 2009

Here’s another Sheer Jam track – Kayti was feeling sad and asked me to play her some love music, and so I did – I recorded it in case she wanted to have it to listen to later, and she’s graciously allowed me to share it with my 2.5 fans out there. 😉

http://www.sheer.us/stuff/kayti/KaytiLoveSongs.mp3.

[Actually, by my download numbers, I apparently have more than 2.5 fans. Some of my tracks get hundreds of downloads a month – but they’re mostly in China. I don’t really understand this]

This is also one of the few tracks I have up recorded with Ivory, which I’m very fond of. I’m looking forward to sometime soon (maybe as soon as the 30th.. *bounce*) having enough spare change to buy a friend’s x86 mac, and finally having enough CPU to run Ivory for 64/128 note polyphony. For my friends who are musicians, if you haven’t played with Ivory, it is the holy grail of software pianos. It is kind of big, though.. it wants 2G of RAM minimum, and it comes on 9 DVDs.

New Sheer Track

July 16th, 2009

http://www.sheer.us/stuff/esen/EsenMovieJam-071609R.mp3.

What is it? Well, my friend Esen is working on a movie for her parents – a bunch of photos – and wanted one of my jam sessions to go with it. So this is raw, uncensored, one pass to tape, no rehersal, improv. Hence, there are a few minor trainwrecks, especially in transpositions which I haven’t totally mastered, but this is 100% sheer jam, mostly piano with a tiny bit of panflute and pad thrown in for good measure. Please let me know if you enjoy it.

I want one..

July 11th, 2009

http://www.geeks.com/pix/2009/900M.html.

Granted, I already have one tiny laptop I don’t use very often (it’s a P-II).. and I’m trying to not make too many frivilous purchases.. so I probably won’t be getting one, at least not in the next few months. But, I drool..

Link

July 9th, 2009

A unusually well written overview of query optimization and indexing in mysql – http://www.informit.com/articles/article.aspx?p=377652.

Has anyone seen a much more hairy, technical article on the subject of indexes in mysql?

Religious fun

June 23rd, 2009

FSM
Fail
Fun

Random thoughts from scripting (perl)

June 23rd, 2009

Here’s a couple of nifty tricks from today’s scripting adventures:

1) This one is sort of obvious in retrospect – but, if you’re processing a long list of items and want to show a status indicator, this works rather well:


for($i=0;$i<10000;$i++) { print "$i\r" if(!($i % 100)); }

I’ve always used the !($i % 100) trick, but never the \r, which returns the carriage to the beginning of the line.

Also fun is:


$|=1;

@spinner = (“|”,”/”,”-“,”\\”);
for($i=0;$i<10000;$i++) { print $spinner[($i % 4)] . "\r"; select(undef,undef,undef,0.1); }

2) moving a byte: handy constants to memorize are 65280, 16711680, and 4278190080, which are the second eight bits, the third eight bits, and the forth eight bits, respectively. You can do ($value & 65280) >> 8, ($value & 16711680) >> 16, and ($value & 4278190080) >> 24, respectively, to get at bytes two, three, and four. The reverse operation is even easier: $b1 + ($b2 << 8) + ($b3 << 16) + ($b4 << 24);