Cyrus Omar » 2008 » October

Theoretical Neurobiology

PhD in progress, CNBC @ CMU
I study neurobiological circuit dynamics.
Currently working on: Funding: DOE CSGF and NSF GRFP

High-Performance Computing

I develop ahh, a Python package containing useful tools for high-performance scientific computing, including
  • cl, a superset of the OpenCL runtime which maintains metadata to make it less tedious to program with.
  • cl.oquence, a superset of the OpenCL language sporting a Python-like syntax, type inference, higher-order functions, macros and other stuff, without sacrificing an ounce of speed
  • cl.ements, a collection of blazing-fast OpenCL-based data analysis functions
  • cl.egans, a cl.oquence-based simulation package, which I use for neurobiological circuit simulations

Rehabilitative Interfaces

with Todd Coleman, Tim Bretl, et al. @ UIUC
I design faster, more usable brain-computer interfaces to help paralyzed and locked-in patients communicate.
Currently working on:
  • Using feedback information theory to better design BCIs [in review]
  • Improved language models

Contextual Programming

just for fun
I'm (slowly) prototyping a usable next-generation programming language and environment, vaguely inspired by Self, Clojure, Javascript, LaTeX, Sage and Python.
Currently working on:
  • A (now functional!) prototype
  • Brainstorming
With me, it’s what Yeats called
the fascination with what’s difficult.
I'm only trying to do what I can't do.
Lucian Freud

ǝdɐɔs,

a large part of my mind sliced
test

Alessandro Warth and Alan Kay released a paper and prototype Javascript implementation of a concept they dub “Worlds”. In essence, it allows you to fork off the current state of a program and then treat that fork, called a “world”, itself as an object. When you are satisfied with it you can commit it to your program’s primary state record.

This is similar to the idea of a transaction in shared-data concurrent scenarios, and could be used to implement transactions, but doesn’t necessarily have anything to do with concurrency. Its basically first-class checkpointing of a program’s state, which is pretty cool.

The question of course is how to deal with external dependencies to systems which may have state you can’t reversibly update. Perhaps an API for wrapping such dependencies in a logical way is the best way to approach this. Systems which themselves have reversible semantics could be integrated seamlessly (database updates, for example), and systems which don’t could either be treated as if they do (debuggers) or produce errors if interacted with in a reversible context (stock trades).

In any case, its a good concept for future language designers to consider. Efficient implementation of the concept is non-trivial and as far as I know, an open research question.

test

Here’s a commonsense idea: public financing of public elections. It would break up the symbiotic relationship politicians and corporate lobbyists have, which prevents action on issues where corporate interests are at odds with the public interest (healthcare reform, environmental regulation, copyright and patent reform, the list goes on.)

Think about it. What if politicians didn’t need to raise money anymore? Would they continue to seek audiences with well-funded lobbyists to the exclusion of everyone else? Certainly many politicians would love to spend more time with their constituents and work on the issues that brought them to politics in the first place.

How do we do it?

Lawrence Lessig, who I had the pleasure of seeing speak in his signature style, has the same idea. He has started a movement called Change Congress, which attempts to raise awareness of this issue, and sign up citizens and politicians who support removing money from governance. If a critical mass in Congress was reached, and the public was shown to generally support it, I think we could get it passed. The effects would be dramatic.

So my recommendation to you, dear reader, and this is really easy, is to go to the Change Congress website, sign up and pledge your support for public financing, and then find the candidates for your district.

If they have pledged their support, donate some money to them, even $5 is fine, and (this is important) tell them why you did it.

If they haven’t, or haven’t made their opinion known, write an email, make a call, or write a letter (the tools to do so are right there on the website) saying why you didn’t donate, and ask them to make the pledge or explain themselves. Its better if you customize your emails instead of using the provided template verbatim. Tell your friends to do it, spread the word to political blogs and forums. Make this a movement!

But what about…

More information about public financing is here. For those of you concerned about first amendment issues, keep in mind that the system will be opt-in, and it won’t prohibit lobbyists from making their arguments, just from buying acceptance of them. The cost of the program will be miniscule in comparison to the federal budget, and we’ll save money by creating a political climate in which unjustified corporate subsidies are no longer supported.

Obama vs. McCain?

Neither candidate makes a big deal about public financing, though McCain has supported it in the past and Obama has made some vague overtures toward the idea. If you have a chance to ask them or their high level staff about it, please do. You will be disappointed if your favored candidate has to get all their reforms vetted by lobbies who stand to lose money.

Creative Commons License