eric the fruitbatBlog
Sounding out the Noosphere.

Posts from September, 2007

Multi-Core Multi-Language Machines

Posted by Eric Hennigan
On September 26th, 2007 at 22:09

Permalink | Trackback | Links In |

Leave a Comment |
Posted in Comp*, Ideas, Language, Tech*

I was doing my traditional web searching about languages, this time beginning with parallel lisp. I was wondering, if LISP, being one of the oldest and original languages, had explored the concurrency model, and what concepts it had to offer. Immediately this search led me to a 3 part series [1,2,3] specifically on that topic, that, while a couple years old, still had a wealth of information, specifically pointing me in new directions.

I had never heard of the Lightweight Languages Workshops, and was very pleased to find an informative video about concurrency in Erlang from Joe Armstrong himself.

Over at Lambda the Ultimate I stumbled upon a post about Future(s) (with a talk about language research). From this I learned that my particular fetish, Domain Specific Languages, is becoming a fad, and that I can look forward to the widespread use of mini-languages and proliferation of interpreters.

So, how does all this come together? I find it self-evident that the widespread use of interpreters will be inefficient, specifically because those languages will be designed to run on a computer model (virtual machine) other than the native hardware; programs in these new languages will be forced to run in simulation. Multi-core CPUs can mitigate the slowness that we will see, however we can easily do much much better. Instead of having a CPU with 4 or 8 cores, why not have one with 2 or 4 cores bundled together with 2 or 4 on-die FPGAs? Now you don’t have to simulate a virtual machine, you can dynamically flash part of the CPU and get a hardware interpreter for your DSL. A webserver can have part of its hardware devoted to SQL, and part devoted to Php/Perl/Python/Java/Ruby/whatever. High performance computers could construct an optimized pipeline constructed specifically for a research problem. Suddenly we enter, not a world just of concurrency, but also of dynamic hardware through the use of silicon compilers. (Of course to take full advantage of such an architecture, you’d need another DSL).

Changing computer architecture in this fundamental way, will herald in a new era of computing. Not only will the software systems we build be dynamic, but they will run on dynamic hardware.

The Cloud

Posted by Eric Hennigan
On September 17th, 2007 at 00:09

Permalink | Trackback | Links In |

Leave a Comment |
Posted in Comp*, Ideas, Tech*

I was reading Marc Andreessen’s blog entry about The three kinds of platforms you meet on the Internet. and all his talk about sharing code and running that code on other systems and community and all that really got me thinking.

There have been many large distributed projects that have promoted the idea of sharing your CPU cycles. SETI@Home is of course the most well known, but others have followed in their footsteps. Some of these groups have met with success for their project, and their problem got solved, others were never able to obtain the necessary adoption rate. I have CPU cycles to share, but I’m not willing to goto the trouble of seeking out a project to contribute to and then downloading and installing their code so I can help solve their problem.

What’s needed here is something more akin to Bittorrent, where each researcher in need of a distributed parallel processing machine can ssh into ‘the cloud’ and then program up their problem, and wait for the answer. Just as if they’d logged into one of the many (expensive) super-computing facilities available to professional researchers. Now I know that high-performance computing has suddenly had a sharp drop in price, but that’s not really enough, that is it’s not wide-spread, and it’s still difficult to achieve. I would be willing, and any researcher would probably be similarly inclined to donate cpu cycles to another cause. It’s just that we’re not gonna go out of our way to do so, unless we get something in return. I would gladly run a daemon on my system which accepted jobs for another researchers problem, and sent back results, if I could get the same type of treatment for my problems. This altruism is especially true if the daemon was a VM that supported multiple languages (or even a specialized distributed parallel language) that had a shell-like or ssh-style interface.

The more cycles I donate to others, the more the system as a whole would give back to me. This would be the bittorrent model for cpu sharing. Finding other nodes and distributing load could be done with many of the same algorithms that run TOR.

End of the Keyboard

Posted by Eric Hennigan
On September 16th, 2007 at 14:09

Permalink | Trackback | Links In |

Comments (1) |
Posted in Ideas, Tech*

Lets review a few really awesome experiments with user-interfaces, and then I’ll introduce my own.

First, we have the Optimus Keyboard. Each key on this board has it’s own display. That means you can use the board for all sorts of wacky stuff. You could have the layout change adaptively for every key you press, or have a scrolling marquee that insults the user, or simplify language, layout, and font changes. The only drawback is that you can’t really re-arrange the physical layout of the keys.

Second, we have the Ergodex DX1 keyboard. It features individual keys with static-cling backing and a clear plate so that you place the keys exactly where you want them. The keys come with little stickers that you can use for labels, and you are free to design and print out nice looking backings. The major drawbacks here are that the system comes with a default of 25 keys and a 10� X 8� tray; this will not let you replace your current keyboard.

Idea 1: Why not have an inductor embedded in the tray (and make trays of several different dimensions) and have on the bottom of each key a set of 8 micro-switches, and on the top a tiny LCD panel? We then have the best of both worlds. The switches would encode the address of the key, which would be used to detect wether or not it was depressed, and what image it should display. The communication software would simply have to know about addresses, not physical locations, and the inductor could easily power it all.

Third, we have the Touchstream pads. These use the same technology that laptop track-pads use. The user presses a position on the pad and the keyboard maps that position into a key. The primary drawback here is that you no longer have great tactile feedback when you press a key, and that the keys are in fixed positions.

Finally, now that Apple and others have the Multi-touch, we can fully dispense with traditional keyboards. Imagine a multi-touch pad on each laptop instead of a regular keyboard. The location of each key could be fully customized, the glyph could change with each key press, everything you can do in Idea 1 above. Except now, since the keys aren’t physical, they could represent any control widget whatsoever, from sliderbars to joysticks. The possibilities are revolutionary.

macbook_color_keyboard.jpg macbook_controlboard.jpg

Update: Apparently musicians have already thought of something like this: the Lemur, it just hasn’t been extended to laptops.

Update: It was drawn to my attention that there already exist membranous keyboards with no push button tactile feel, rather they have a set of small ridges where an ordinary keyboard would have gaps between keys. These ridges provide enough feedback that the user can correctly reposition their hand and continually learn the keyboard layout by feel. Because tactile feedback is such a great loss to the touch typist, any multi-touch panel intent on replacing the ordinary board of keys should also be equipped with an upper surface that can raise little bumps.

Tuition-Free Education

Posted by Eric Hennigan
On September 8th, 2007 at 16:09

Permalink | Trackback | Links In |

Leave a Comment |
Posted in Economics, Education, Ideas

From, My Biased Coin we have an argument for a Tuition Free Harvard. While, this is a really great idea, I don’t think it goes far enough. I actually think that the goal of providing a reputable education at zero cost to the student can be accomplished.

Let’s first specialize the college to the field of financial engineering. An institution focusing on this field could easily be self-funding. The professors would split their time between running/creating financial models and teaching classes, while the more gifted or graduate students would be expected to help fund the university. The immediacy of hands-on work, and it’s importance to not only the institution but also to ones own salary would be an excellent motivator. Many of the graduate students would be highly sought after on Wall Street simply because of their experience and practical knowledge. All of this would lend to an enormous amount of prestige.

That prestige can then be leveraged to provide a highly competitive application process that would weed through the volumes of undergrad applicants looking for a free education (for a highly lucrative career). Unlike most universities, filtering out applications via grades and essays wouldn’t be enough. A formal, lengthy, and costly interview process would have to be followed, lest the real truth about elite colleges prematurely doom success.

After becoming self-sufficient the college could expand into other areas (mathematics, physics, bio, humanities, etc..) as budget allows. Even some of these areas could be formed as apprenticeships that fund their own departments. The Film majors would have to break-even financially, Art and Music majors required to exhibit their work and rake in profit through ticket sales, Mathematics can contract out to other departments, all fields can potentially benefit from directly encouraged entrepreneurialism.

Supposing that we can’t make a self-sufficient educational system, further funding can be acquired through a small 1–5% tax on the salaries of the recently graduated and employed, though such a policy obviously has major draw-backs, it might not be nearly as bad as student loans.

Linguistics and SciFi

Ok, It’s been more than a week since I last wrote down any of my thoughts. I recently went on travel for work, and gave a presentation of the software that I’ve been working on. I was received well, and I now have a list of improvements to make. I also visited my grandparents in Texas, which was loads of fun. While I was vacationing I was able to read Neal Stephenson’s Snow Crash.

I very much enjoyed the book. It had wonderful mix of virtual reality, linguistics, and ancient religious history. It also centered around the idea that if a human encounters carefully crafted input, then their brain might crash, akin to crashing a computer. I know that this is a fairly recent idea (It couldn’t possible predate computers) but it’s really captivating from a linguistic perspective. Stephenson touches on religion by tying the story of Babble to a biological virus that infects the learned linguistic wiring of the brain, meaning that you can crash peoples biohardware if you can carefully craft the right message. A touching form of Neuro-Bio-Linguistic-Hacking.

I believe that linguistics and thought are intimately related. You cannot truly have a thought without verbalization, and yet, a particular phrasing will color the thought. Humans can develop new ideas without first having the language to express them, but this requires the creation of new words or terms in which to adequately express the new forms of thought. Naming really is akin to creation (at least in the Noosphere). The language we use to express ourselves also affects the types of thoughts that you can think, it is very difficult to consider things for which you have no words. Having no words, the most immediate feeling is one of frustration, which is unfortunately not conducive to the creation of new vocabulary.

Seeing that others recognize that the linguistics of thought, and the thought of linguistics are intimately locked into a feedback loop, has come as a welcome relief. I was beginning to suspect that my viewpoint on this was unique, but now I see that the observation of this connection is old enough to have entered into popular SciFi. It really excites me that Stepenson was able to translate this observation into a novel, and spread the idea out to so many.

His attack on religion as a viral meme was also really interesting. The book wouldn’t be nearly as good without the grafting of neuro-linguistics to the ancient Sumerians and the story of Babel was fascinating. Recognition of the very existence of viral memes together with their particular relation to the major religions has started to enter the global consciousness (thanks mostly to the crusading Richard Dawkins). There is so much that isn’t widely known about our religious and cultural mythologies (most of that knowledge is still considered heretical) that we are still largely sheep to a veneer of symbology and iconography that stirs the emotions rather than the intellect. Humanity still has alot of growing up to do.

Disclaimer: I haven’t researched the historical info that Snow Crash was based on, and so I assume that most of it is inspired fiction.