I'm Jon Olick. I make shiny things. I simplify.

I presented Sparse Voxel Octrees at Siggraph 2008.

Thursday, December 31, 2009

A Message to Baby Toy Makers

Why is it that baby toy makers are compelled to take simple songs and nursery rhymes and add notes everywhere and make them overall much more complex. This is harder for babies. They need to start out with simple tunes and patterns and then when they are older build to more complex ones. I get the feeling like very few baby toys are actually designed to be educational for babies, and instead they are designed to be pacifiers, ala the horrible baby einstein (should be baby caveman cause thats what it will make your baby (and no, this is not a geico pun)). Another example is so called baby books where they pay more attention to rhyming words than the simplicity of the words they use. I mean common now... kids need common simple patterns, not complex ones that aren't used by their parents regularly that sound nice. Ok, so this makes finding good toys hard, but it also means that it is far easier for other people to gift bad toys to your kid than it is to gift good ones. The only reason that this works at all is that people trust the kid toy makers to make good toys, and the vast majority of them obviously have no idea what they are doing.

So anyway, the lesson to learn is buy simple toys for young children, then when they master those toys buy slightly more complex ones, and so on. Take the time to measure the simplicity of the toys that your child is playing with as any time you spend now teaching can have profound effects on your child's future. For example, if you set out walking north for 1 hour, but then later decided to change directions and you wanted to go 1 hour south instead, it would now take 2 hours to walk south (not including the 1 hour you spend walking north wasting your time), than if you originally just went south in the first place.

Monday, December 28, 2009

Designer Babies

First, some background information.

What are designer babies? Designer babies are what will come to pass in the next 10 to 20 years. That is to say, that we will be able to pick our child's eye color, hair color, or whether our hair glows in the dark or not, and most importantly rid our children of congenital diseases or disorders.

In the grand scheme of things, this is a convergence of the human race. As we will all trend to pick lots of the same fundamental traits. For example, everybody wants their children to be smarter, more beautiful, not prone to weight gain, depression, etc... These designer babies will make people very alike to one another.

Is this a good idea? Overall, I'd say yes. However, it does introduce certain frailties into the gene pool. One of the advantages of our sexual reproduction is that it introduces diversity into the system. Different ways of doing things, different ways of thinking about things, different immune systems etc. A lot of that will be lost with designer babies. Perhaps this won't matter, given that computers will do most of the thinking for us and that we won't be prone to any diseases at all. However, I do believe that a part of us, human beings, will be lost in this transformation. For all our short-comings and all our frailties, there is a underlying beauty of it all. But alas, it cannot be stopped. It is like the wind, fighting it would be a futile endeavor.

Sunday, December 27, 2009

Web Scalability

The problem of web-scalability is an interesting one. In general you need a web server to scale between 1 and 250,000 simultaneous connections. The 250,000 peak is to survive a digging or slashdotting or the like. Although the peak doesn't happen very often, you still have to prepare for it as it can be a very important time to be responsive. There really are two sides to the problem. On the one side, you need a solution to add hardware dynamically as needed and on the other side, you need a software solution which can actually take advantage of all that hardware. Luckily, cloud services like Amazon and Rackspace fit the hardware problem nicely. The problem left is the software problem. So first, lets describe the process every web request goes through.
1) The web-browser connects to the web server via TCP/IP.
2) The web-browser send a HTTP request looking something like "GET /\n\n" (in the simplest possible format).
3) The web-server gets the requested document, and sends it back to the client.

In any modern web app step 3 is performed differently if you are serving static or dynamic content. If the content is static, then the file can be cached in memory in the best case and served rather quickly. If the content is dynamic then the php, perl, python, whatever is run with the source file and the given parameters (index.php?foo=bar&bar=ack). The output is then piped back to the web-browser through the TCP connection. Done.

There are a couple problems with this. If we had a 1,000 processor machine this would be trivial, but alas, such a computer is the stuff of future for at least another 7 or 8 years. So a solution must be found with todays hardware, and so that is what we will do.

First, lets go into a little more depth on the previous list:
1) TCP/IP connection to port 80
2) HTTP request
3) CGI program startup (Python,Perl,PHP,ASP,etc)
4) CGI code parse
5) Database connect
6) Database requests
7) HTTP response

In 2010, a single computer can't handle a digging, so we must share the load.

Turns out that there already is a solution that parallelizes 3,4 and 5. Its called FastCGI (http://www.fastcgi.com/drupal/).

Parallelizing 6 takes a little thought. At first glance, you might think that FastCGI will parallelize that too, however upon closer inspection it is pretty easy to see that while you may have 10 different FastCGI servers, there is still only a single SQL database which serves them all... Ok, so you don't want to pay ridiculous amounts of money (or any money really) for a SQL solution which can handle this so you choose MySQL. MySQL however as far as I know doesn't have a parallelization through automatic database replication and synchronization of multple computers. However, that is pretty much exactly what you want to do. Luckily you can do this by hand in your CGI. First you need an identical initial DB setup, then any time you UPDATE or INSERT you do it to every server replication, but any SELECTs you only need to do from any one of the servers. Reads are fast, writes are slow. So you randomly select a server to do the SELECT requests from (or round robin, or whatever) in order to distribute the load. With the typical property that you will generally do 10x to 20x more DB reads than writes this will likely do a good job at paralellizing enough to be able to support a digging.

So what are we going to do about 1,2, and 7?
In order to give yourself the best chance of reaching 250,000 simultaneous requests, you need a good choice of web server. Apparently, Apache 2 sucks, Apache 1 is better, but Lighttpd beats them all. Ok, so once you chose a good server, the rest is quite simple, make duplicates of the server at different IPs then add multiple "A" records to your DNS entry. Each "A" record will get sent an equal amount of traffic. So you want 3 front end web-servers, then just have 3 "A" records. Each server will get sent 1/3 of the total traffic. Easy.

Wednesday, December 23, 2009


I'm not liking being a member of the IGDA, I get so much spam mail from them its driving me nuts. Don't they have something better to do than to bug me every day? I'm tempted to unsubscribe.

Monday, December 21, 2009

The Economic Explosion of 2015

Along with the culmination of many great things, the year 2015 is set to bring about a great economic depression possibly much worse than the last one. There are many possible triggers for this next collapse, some more likely than others:

1) Housing Bubble v2.0
Even worse than the last, but the reality is that none of our bad habits have changed which caused the last housing bubble, which means history is doomed to repeat itself. When will people learn?
2) Education Crisis
The cost of education has been rising well beyond inflation for many years. This will eventually cause a crisis.
3) Health-Care Crisis
Obama's worst fears have come true where decisions that were made only accelerated the crisis's timeline and other countries lost faith in the dollar and switch to gold as the standard for international currency. The surplus of US dollars being circulated as countries spend them to get out will cause massive inflation of the US currency.
4) Government Spending Crisis
The government has spent so much money and was unable to pull back the "stimulus" without causing a massive inflation. Other countries lost faith in the dollar and switch to gold as the standard for international currency. The surplus of US dollars being circulated as countries spend them to get out will cause even more massive inflation of the US currency.
5) Financing Crisis
The lack of taking any risks will cause many companies to go bankrupt as they seek funding, but nobody is lending. This will cause many companies which would have fueled economic growth in the coming years to be non-existent causing an economic downturn.

Lots of possibles there (as well as many more that I didn't mention). I think the most interesting is #2.

For the average Joe, the key thing to remember here is the date. 2015. Be sure to sell your stocks before then and then buy them back after the collapse hits bottom.

Thursday, December 10, 2009


There is a rumor floating around that the PS4 GPU will be a PowerVR chip. While this is possible, especially if intel buys nVidia, I have to ask if Imagination has the experience to do something like this? If this is true, this could either be the best play since the dreamcast or could completely back-fire and hurt Sony significantly. I'd give them a coin toss of a chance for that of success or failure. Is it something I'd bet the company (Sony) on? uhm, no. Its way too risky. So....

heres my take on what Sony may be planning. A PS2 like model with a dummy, lightning fast, high bandwidth rasterizer and maybe 128 SPU cores to feed it. Sony may think it is a good idea to get back to basics with the PS4. Is this a good idea?

I think that this goes against the grain here. Each console generation, games have been getting easier and easier to make over time, not harder and harder. ... This can be dangerous ..., I hope they know what they are doing.

On the plus side, PowerVR does solve Ahmdal's Law better than ATI or nVidia. If it can scale well to a dual GTX 295 level of performance, then perhaps things are all well and good. Thats a pretty big if though. I'd still say that they would be treading dangerous waters even if that does work out.

Tuesday, December 8, 2009

Intel Cancels Larrabee

This means that Intel will likely buy nVidia, because it has to in order to stay competitive with AMD.

More interesting is that the primary two graphics vendors would then be soaked up into processor companies. Will they force future consoles to use AMD and Intel processors along with their AMD and Intel graphics cards? Profit driven decision making says yes.

What really matters?

In the future... (in some cases far future, where I define far as beyond my lifetime, but perhaps not beyond my kids or my kids kids)
1) All Software will be open source
2) All Hardware will be open source
3) All Design will be open source
4) All Education will be open source
5) All Entertainment will be open source
6) All Food will be open source
7) All Pharmaceuticals will be open source
8) All Small Manual Labor will be automated (by hardware that you can print out)
9) All Communications (the internet) will be effectively free
10) Nearly All Data will be free
11) Nearly all of your time will be spent on improving or making any of the above as you see fit.

The current rat race that we all know and love is exactly that, a rat race.

So, What will be valuable in the future then?
1) Raw material resources (because it will be cheaper for a very long time to harvest than to create)
2) Power (energy can create materials, gather data, transport, and many many other valuable things)
3) Insurance (you will still need protection from outside meteor strike like events)
4) Community (bound together and acting as a single unit, they can enhance many of the other valuables)
5) Data (real measurements that are difficult to come by will hold value)
6) Transportation (because it requires 1,2,3,and 5, specifically long range transportation)
7) Manual Labor (manual labor on grand scales will continue to be valuable as they can require all other valuables to achieve)

Valuable items can be transferred into other valuable items, just like today. However what is valuable will change significantly.

Thursday, November 12, 2009

Go Language

Go is the worst name for a programming language.

Try googling "Go".

Try googling "Go Language".

Also, while I do agree that a garbage collecting language is a great idea. Even if you dedicate an entire processor to nothing but garbage collection it can still be overwhelmed. By doing thousands of concurrent go routines all allocating 1 byte in a loop and then discarding over and over again breaks that idea. One processor cannot keep up with that. You would need roughly an equivalent number of processors doing garbage collection as you do doing processing. That is also assuming a perfectly efficient garbage collector.

They would probably say to this "don't do that" and sure its a worst case scenario, however it shows that you can be sacrificing lots of performance to these garbage collecting processors. Thats possibly 50% or more regardless of the total number of processors in the system.

Ok, so all gripes aside... I think its pretty nice and I'm glad somebody is continuing research into new languages to solve parallelism problems. I installed it and currently am playing with it a bit, I'll know more soon.

When will we run out of energy?

Why worry about energy consumption?

Humans currently (2010) consume about 510,000,000,000,000,000 BTU per year.
Earth receives 3,649,800,000,000,000,000,000 BTUs per year from the sun.

World-wide energy consumption doubles every 35 years. At this rate, it will take a little less than 490 years in order to exceed our external energy input.

Ok, thats great, but what about things that aren't computers which require some sun too. Sunlight is vital for humans to produce vitamin D. Its also vital for growing the things we eat. If we eat up too much sunlight for computers, we will certainly die.

Majority of the world is ocean, and majority of the ocean doesn't have very much life. This is because life springs up and eats up all available resources, then dies, floats to the bottom of the sea floor and stays there as there is little to swish it around the nutrients to be eaten by other organisms. As such, most of the life exists around the coasts and up-swells in the ocean currents bringing the nutrition from the sea floor to the surface where phytoplankton can thrive and the pyramid of life grows from that. So I think its reasonable to say we can capture a decent percentage of the suns rays and convert that into energy without hurting things too much. Lets say 10% at best although the more realistic number may be much higher. At about 10%, we will exceed this energy source in about 310 to 350 years.

In other words, we won't run out of energy for a loooong time. I read lots of periodicals which say "were increasing our energy consumption and we should be concerned, blah blah blah". Sure, thats all true if solar energy won't get drastically more efficient with more research and time, which is ridiculous. So give me a personal holo-deck please, and damn the energy costs.


Sunday, November 8, 2009

Wikipedia Company Idea

Make a company which connects companies and individuals with other individuals or companies who will write wikipedia articles for cash.

This sounds bad, but isn't too different from what happens now. If a company wants something changed they have to convince other (hopefully unassociated) people to write about the thing or change the thing they want changed. This happens all the time. I've seen it personally at some companies that I've worked at. The difference is that this company would formalize the transfer for a modest intermediary fee.

I'm not sure if this idea is morally correct or even would follow Wikipedia's COI rules, however it would probably make a lot of cash. The company itself would be morally in the grey area in my opinion as it simply connects unscrupulous people with other unscrupulous people. It doesn't inherently do anything bad, but it does allow bad things. Like how Napster can be used for good purposes, but everybody pretty much just stole music.

Monday, November 2, 2009

Google Wave

looks like it is a chat room with threads. Currently not many people to thread chat with. I'm looking forward to really giving it a try when there are more people who have it. I think the biggest problem with google-wave is that its not open source. There would be much wider adoption if it wasn't centralized and google controlled. IE, more like e-mail.

Tuesday, October 20, 2009

Jet Lag Insta-fix

A tip for travelers with Jet Lag.

Align your eating habits to the time-zone you want to adjust to. Sleep habits will naturally follow within 24 hours.

Tuesday, September 1, 2009

My 10-month old baby can read

I tought my 10 month old baby how to read over the past 3 weeks. Literally, no lie. I'll put up a you-tube video to prove it soon.

Here is what you do.
1) Show a flash card with a word on it.
2) Point to the word and say it, moving your finger across the word as you say it.
3) Show a picture of what the word represents and say a simple sentence describing what the baby is seeing where the sentence ends or begins (or both) with the word.

Its better if the word has an action associated with it. Wave, Clap, etc...

I can show my baby a flash card with the word and she does the action and says the word. Without me saying the word first, which is the important part. At this point its probably just simple pattern recognition, however I bet that once I introduce more words she will be able to read new words that I have never showed her before. For example, waving or clapping once she learns to recognize the 'ing' at the end of a word.

Friday, August 28, 2009

Presidential Age Requirement


What is wrong with this video? All of the presidents are seemingly getting younger as time goes on. But are they?


The average age of every president is 55 years with a standard deviation of 6.25. Presidents have *not* been getting younger. They are all about the same age. Barack Obama for example is 48 whereas president Ulysses S. Grant (who was president over 100 years ago) was 46.

I think there is something that is not as it was originally intended. The minimum age of a US President or Vice President is 35 years old. I believe the original intent of this was to make sure that the person had enough life experience to rely on in order to run the country. However, something has changed since that requirement has set that should affect that 35 age requirement. People are living longer. Much longer in fact, but the age requirement of a president has not increased appropriately to accommodate this change. For example, in some parts of the world, the life expectancy is increasing by 6 months every year.

There are some potential benefits to having older presidents. For one, they may be more concerned with the future of the country as their personal future is coming to a close. If they make changes to the government which benefit them, but hurt the public, they quite possibly have little to personally gain by that, seeing as that their life is coming to a close. As such they may not be able to significantly personally gain from it or if they do it may not matter as much. Unfortunately, while the concept initially sounds good, this doesn't always work. There are plenty of occasions where presidents live to be very old indeed. What about family? One might think that they could still make sure that their family is well off. While that is true, the older a person is the more diverse of classifications of descendant family they would have to improve, some of which may be hard due to the unpredictable nature of those results. IE, some of their children's children could be in poverty while others would be in riches, so that the decisions of who to help and who to hurt are harder. This effect would improve the decisions of presidents as the average life-span of a person continues to improve over time. Therefore older people may have more of the best interests of the future of the people of the country in mind. This concept shows the most promise, however has yet to be verified by taking a look at descendants of presidents of a few generations. I suspect that it might be true some of the time, but not all the time. If I remember correctly, the richer you are, the less children you tend to have, which would directly limit this factor. Still though, I hope I'm wrong and this is maybe a 50/50 chance of being correct.

In any case, I think we should call some attention to this oversight and bring to light these changes and the future changes that this country faces. I do believe this change would be a change for the better.

Wednesday, July 8, 2009

Voxel Performance and Requirements

I read lots of papers on voxel rendering techniques and such describing that they achieved 60fps without specifying some of the most important factors.

1) Image Resolution -- This is obviously important, yet some papers seem to magically forget it. It has to run at 60fps or more at HD (720p and 1080p) resolutions in order to be considered for video games.
2) Voxel Resolution -- IE, how deep is the tree? This is very important as each level of the tree adds one more iteration to your traversal loop for every pixel and as such significantly affects performance.
3) Data Transfer Amount / Speed -- This may not be obvious, but it does play an important role. The GPU can do behind the scenes transfers from system ram to video ram, but the bandwidth is only good if you do it in large chunks (many sequential MB). This plays an important role in performance.
4) Cache Responsiveness -- This one shows its ugly head when you look at a scene that you have never seen before. If the cache is not responsive enough, the coarseness of the unloaded oct-tree will show its ugly head. This is primarily more of a quality issue.

Also, I think its important to mention what the system requirements were to run smoothly at those resolutions.
1) How much Video RAM does it consume? If you require more than 2gb of vram SVO/Voxel data, its not realistic for next gen consoles (720, PS4). Even 2gb may be pushing it. Keeping the requirements under 1.5gb is preferable.
2) How much System RAM does it consume? If you have to store the entire volume set in RAM. This is not realistic as most volume sets of a real game will be in the many gigabytes range.
3) What video card were the results computed on? dual GTX 295's may be a sign that the technology is unreasonably expensive.

I would really like it if all voxel papers in the future would mention these things, because its very hard to evaluate otherwise.

Friday, July 3, 2009

4/8/2008 - The Future of Piracy

When somebody mentions 3D printers, some may think this is the first step towards a star trek replicator. They are probably right. 3D printers will change the world as we know it. Mostly they will usher in a new era of open source hardware and piracy.

Imagine a world where you can download a design for a new ipod, and print it out within seconds.

Imagine a world where there is a thriving open hardware movement to complement today's open software movement.

A bit farther off, imagine downloading a recipe for an entree from a five star restaurant, and then print it in front of you.

What would happen to all the jobs built around the concept of design once, sell many... especially when a hardware design can easily be pirated?
Food and Clothing jobs will eventually change significantly, but chefs and fashion designers will remain for the foreseeable future.
Entertainment will not change a whole lot and still be complaining about piracy.

What would happen to FedEX and UPS?
Shipping services would most likely be relegated to raw materials and perhaps goods made with volatile materials.

How far off is this?
It is hard to tell... but a decent guess would be within 50 years, but it could happen as early as 30 years. You will start seeing the signs of these trends in less than 15 years, although you can see them right now if you look closely enough.

So lets look at the printing of food for a bit and take a few logical guesses about the future here. The thought of whipping out your HP printer and printing out a nice juicy New York Steak and Eggs is probably not going to happen, at least not in the form it exists today. However, the machines could build "flavor" molecules which act as spices or when heated and with water could produce various textures of certain types of food. These machines would more be of the simulation of foods rather than the production of Angus Beef.

Why would anybody want a simulation of a steak rather than the steak itself?
When humanity expands out into space, those space dwellers aren't going to have the amount of land necessary to support cows. Its simply too expensive. However, having one of these fancy simulation machines can trick the person into believing he is eating a Kobe Steak.

So in conclusion, would this technology change the world for the better? I think so. It allows people to experience the entire range of life, and for very little money. Anything that improves the lives of the entire human race, I think is a good technology to have. Even though it can and surely will be misused, its potential for good is too great to ignore.

Thursday, July 2, 2009