Showing posts with label education. Show all posts
Showing posts with label education. Show all posts

Friday, October 2, 2009

Importance of hackability

This is something I wrote down on my blackberry during one of those sleepless nights.


As I huddle in the darkness of my room with my Blackberry in my hand, listening to the mp3 rip of the Deus Ex soundtrack, and reading Cory Doctorow's the Makers serialized on the web, I am inevitably reminded of a question that had been plaguing me for a long time.

I read about the greatness of the old computer systems all the time, being something of a retrocomputing enthusiast. I read about all the wonderful stuff people did with their first Apple computers and Spectrum ZX, making and running crazy things on 128kb of memory. I also read about the demoscene where people squeeze old retro hardware to it last reserves of computing power to create fascinating works of pop art.

And then I look at my handset. I remember my old nokia running symbian, which is a modified version of linux fitted to run on mobile platform. I scrounge through the apps on my blackberry. Any modern handset I can remember using, and I can remember other people using is vastly superior to most of the retro hardware that are remembered so fondly. Even my older model Blackberry can kick the pants off the old Apple computer in terms of hardware spec, and it has much more sensors to boot, allowing it to communicate with the world through its eyes (camera) and location awareness (GPS). I'm not even going to talk about the always-on data connection because it's a given on any working handset.

Yet despite the reserves of computing power and amazing array of sensors available on this little buggers, they just don't seem to be able to inspire that same level of awe and creativity the first generation of personal computers did for its users. Just what happened? What is the difference between modern handsets and first generation PCs other than how superior many of the modern handsets are in terms of spec?

The answer I think, may have to do with the hackability of the handsets compared to the first generation PCs. First generation PCs were intended as computers. They had moderately sized screens (though the resolution was mostly worse than even the poorest smartphone out in the market today) and a full complement of input device you can use for extended period of time (just a full sized keyboard really, though it does make a difference). Yet these are still superficial hardware differences that can be made up for quite easily. Most high end Nokia phones support connecting to tv screens and what not, and most bluetooth equipped smartphones can interface with a bluetooth keyboard. Can, but not allowed to.

The biggest difference, perhaps the only difference, between the old first generation PCs and current handsets seem to be the software. The PCs were intended as computers meaning you were provided with the tools to develop new content for that platform, usually in form of BASIC implementation for the given system. It was possible to code in assembly and such if you were good enough. The best memories of the old systems and their wonders are almost always linked with the entry level development for the system.

You can't find that on handsets. Even Google Android doesn't yet provide a suitable platform on top of the mobile that can be used to manipulate the machine fully. There is a zero chance that a user of a blackberry handset would be able to run a code on the handset itself, and even linked to a full scale PC the road is usually long and confusing.

Granted, modern smartphone hardwares are complicated which necessitates (really?) the need for complex development environment. Yet, what if the mobile OS itself just gave the users just a slight bit more control to their own hardware? What if we can bring the modern BASIC equivalent like python onto the mobile OS, capable of interfacing with, and controlling the hardware?

Would it lead to another wave of developers and tinkerers world wide to create things that were completely unexpected?

Thursday, October 1, 2009

Alan Kay applied to synthetic biology... And other late night notes.

I always find it very hard to blog. Even when I have the time to write something, not necessarily sitting in front of a laptop, mind you (I'm rather known for writing stuff that needs some word processor access and sending it in straight from my handset). It's only that I always feel that whatever I'm writing or trying to write at the moment just doesn't feel exciting or important enough. Which is why I keep multiple blogs around the net, each serving as a rant template for the other. Something would begin as a rant template on place A only to be edited into another form for place B, to place C, so on and so forth before the same yet radically altered post ends up as a follow up at the place of origin.

I know I should be writing about some other things as well, like how the diybio nyc might be amazingly close to getting a real lab space, or how I'm prepping to stop by for this year's iGEM jamboree. Oh or the pictures from this year's major diybio nyc event, where we set up a stall on the green market and extracted dnas from the natural produces with common household material (with the city people of course). Each of those things would probably make for some lengthy and interesting reading, and the list goes on (my life's actually kind of exciting right now). Yet whenever I find the time to write something down, nada. Nothing. My mind just shuts down and nothing I can commit to paper or the keyboard seems good enough.


Tonight though, aided by my weird bout with insomnia, I'll just write something down I've been meaning to say for a long time. I'm not even spellcheck this thing (god save my soul).

I've been looking into the history of computing and computer languages recently. I've always had some level of interest in computers, not just the spiffy brand-new muscle machines but in what most people would refer to as 'retrocomputing' (I once ended up practicing some AIDA because of that. Ugh), which is a story for another time. It's not that I think old ways of computing were better than others. It's just that it's much easier to trace the evolution of the concept of computing when you see beyond the immediate commercial products.

Synthetic biology is effectively a pursuit of engineering biological organisms. Biological organisms are based upon very singular information storage and processing system that has quite a bit of parallels to computerized systems. I've been wondering whether it would be possible to predict the future development of synthetic biology by looking at how computer programming languages evolved (because they deal with information processing systems applied to physical counting medium). Maybe it might even be able to predict some of the pitfalls that are inherent in developing any kind of complex programmable information processing system that will apply to the synthetic biology in the future. Maybe it would be possible to bring a conceptual framework to the synthetic biology that would have taken decades if left to mature naturally within mere years.

While I was rummaging through the texts in both real life and the web (with many of the promising links on the web leading to dead-ends and 404s) I ran into a programming paradigm and environment I was only superficially familiar with before. Smalltalk and Squeak, respectively, both the brainchild of the computing pioneer Alan Kay.

Here's an excerpt from Alan Kay's biography I found on the net (I can't find the website right now. I swear I'll edit it in later, when my brain's actually working!)

“Alan Kay postulated that the ideal computer would function like a living organism; each “cell” would behave in accord with others to accomplish an end goal but would also be able to function autonomously. Cells could also regroup themselves in order to attack another problem or handle another function.”

This is the basic philosophy behind smalltalk/squeak and object oriented computer programming paradigm. It is no coincidence that Alan Kay’s vision of the ideal computer language and computing environment would take to a biological allegory, since he came from molecular biology background.

While I’m reading through the history of different computing paradigms for the purpose of figuring out how it might be applied to understanding and usage of synthetic biology, there’s something else I found awesome and perhaps a little heartwarming. Alan Kay throughout his life as a computing pioneer held onto the belief that the ideal computing platform isn’t a platform capable of crunching the numbers the fastest, but a platform that can be integrated into the educational function of the user through ease of manipulation and control. Ideal computing platform should be hackable because it makes logical sense to do so.

Can we say the same of synthetic biology? Perhaps not. The direct comparison of a complex biological system to computerized circuits and cathode ray tube projections can only take us so far. Yet I can’t shake the nagging feeling that synthetic biology might be looking at some very unique opportunities for change precisely because it is different from regular electronic systems, with documents of the early days of computer and programming already here for our perusal.

A good, elegant system that allows programmable extension must be at the same time easy, or at least logical to learn. And there are systems that both run and learn better compared to other systems. This might become something of an issue of how synthetic biology parts/devices/systems are put together in the future as the capacity of the synthetic biologists to handle complex systems increase.

I think it might be able to pursue this idea further. As it stands this is nothing more than an interesting parallel in concept without substantial scientific reasoning.

Which is why I should get myself to learn smalltalk/squeak sometime in the future. Maybe I should knock on the hackerspaces in the city, see if anyone's willing to mentor me.

Now, it's about time for me to get some sleep.

Thursday, August 13, 2009

How to change the world Rev.

This is a minor revision of the how to change the world post I made a while ago.
I still think most of the stuff I've written here are quite relevant. The importance of science and access to science for the general public in the coming age will decide the path of the future. And reliance on computing intensive coding for things that should not be computing intensive in the first place would be IT equivalent to driving a Hummer to a grocery store 3 blocks away.

The information superhighway is more or less in place. It's upto us to decide what that infrastructure will be used for.

This is a bit of rant post on something I thought of after watching bunch of old hacker-themed movies from the Hollywood. It continues to amaze me how I can participate in all sorts of crazy things even with the summer studies and jobs I need to keep up with. I guess that's the benefit of living in place like NYC.

I've been watching some old hacker movies lately. And I just can't believe what kind of cool things those movie hackers were able to pull off with their now decades-old computers and laptops. Computers with interfaces and hardware that exudes that retro feel even across the projector screen. I know a lot of people with brand-spanking-new computers with state of the art hardwares and what they usually do, or can do with those machines aren't as cool as the stuff on the movies being pulled off with vastly inferior hardware and network access. Of course, like everything in life it would be insane to compare the real with the imagined, and Hollywood movies have a bad tendency to exaggerate and blow things out of proportion (I'm just waiting for that next dumb movie with synthetic biology as a culprit, though it might not happen since Hollywood's been barking about indecency of genetic engineering technology for decades now). Even with that in mind, I can't help but feel that the modern computerized society is just way too different from the ones imagined by artists and technologists of the old.

Ever heard of younger Steve Jobs talking in one of his interviews? He might have been a rather nasty person but he certainly believed that ubiquitous personal computing will change the world for the better. Not one of those gradual, natural changes either. He actually believed that it's going to accelerate the humanity itself, very much like how Kurzweil is preaching about the end of modernity with the upcoming singularity. Well, personal computing is nothing new these days. It's actually quite stale until about a few months ago when people finally found out glut-ridden software with no apparent advantage in functionality were bad things, both in terms of user experience and economics. Ever since then they've been coming out with some interesting experiments like the atom chipset for netbooks (as well as netbooks themselves), and Nvidia Ion system for all sorts of stuff I can't even begin to describe. And even with the deluge of personal computing in the world we have yet to see the kind of dramatic and intense changes we were promised so long ago. Yeah sure, the world's slowly getting better, or changing at least. It's all there when you take some time off and run the real numbers. It's getting a little bit better as time goes on, and things are definitely changing like some slow-moving river. But this isn't the future we were promised so long ago. This isn't the future people actually wanted to create.

We have engines of information running in every household and many cellphones right now. Engines of information meaning all sorts of machinery that can be used to create and process information content. Not just client-side consumption device where the user folks money over to some company to get little pieces of pixels or whatever, but real engines of information that's capable of creating as well as consuming using all of the hardware capabilities. It's like this is the Victorian Era, and everyone had steam engine built into everything they can think of. And nothing happened. No steam cars, no steam blimps, no nothing. The world's rolling at the same pace as before and most people still think in the same narrow minded niches of their own. What's going on here? Never had such a huge number of 'engines' responsible for creating an era in history been available to so many people at once. And that's not all. Truly ubiquitous computing made available by advances in information technology is almost here, and it is very likely that it will soon spread to the poorer parts of the world and remoter parts of the globe traditionally cut off from conventional infrastructures.

But yet again, no change. No dice. Again, what's happening here, and what's wrong with this picture? Why aren't we changing the world using computers at vastly accelerated rate like how we changed the world with rapid industrialization (not necessarily for the better, of course)? That's right. Even compared to the industrialization of the old times with its relatively limited availability and utility of the steam engines we are falling behind on the pace of the change of the world. No matter what angle you take there is something wrong in our world. Something isn't quite working right.

So I began to think during the hacker movie screening and by the time the movie finished I was faced with one possible answer to the question of how we'll change the world using engines of information. How to take back the future from spambots, 'social gurus', and unlimited porn.

The answer is science. The only way to utilize the engines of information to change the world in its tangible form is science. We need to find a way to bring sciences to the masses. We need to make them do it, participate in it, and maybe even learn it, as outlandish as the notion might sound to some people out there. We need to remodel the whole thing from the ground-up, change what people automatically think of when they hear the term 'science'. We also need the tools for the engines of information. We need some software based tools so that people can do science everywhere there is a computer, and do it better everywhere there is a computer and an internet connection. And we need to make it so that all of those applications/services can run on a netbook spec'd computer. That's right. Unless you're doing serious 3D modeling or serious number-crunching you should be able to do scientific stuff on a netbook. Operating systems and applications that need 2GB of ram to display a cool visual effect of scrolling text based documents are the blight of the world. One day we will look back at those practices and gasp in horror at how far they held the world back from the future.

As for actual scientific applications, that's where I have problems. I know there are already a plethora of services and applications out there catering to openness and science integrated with the web. Openwetware and other synthetic biology related computer applications and services come to mind. Synthetic biology is a discipline fundamentally tied to usage of computer, accessibility to outside repositories and communities, and large amateur community for beta testing their biological programming languages. It makes sense that it's one of the foremost fields of sciences that are open to the public and offers number of very compelling design packages for working with real biological systems. But we can do more. We can set up international computing support for amateur rocketry and satellite management, using low-cost platforms like the CubeSat. I saw a launching of a privately funded rocket into the Earth's orbit through a webcam embedded into the rocket itself. I actually saw the space from the point of view of the rocket sitting in my bedroom with my laptop as it left the coils of the Earth and floated into the space with its payload. And this is nothing new. All of this is perfectly trivial, and is of such technical ease that it can be done by a private company instead of national governments. And most of the basic the peripheral management for such operations can be done on a netbook given sufficient degree of software engineering and reliable network connection. There are other scientific applications that I can rattle on and on without pause, and there are plenty of people out there much better versed in sciences who can probably come up with even cooler ideas... So why isn't this happening? Why aren't we doing this? Why are we forcing people to live in an imaginary jail cell where the next big thing consists of scantily clad men/women showing off their multi-million dollar homes with no aesthetic value or ingenuity whatsoever? Am I the only one who thinks the outlook of the world increasingly resembles some massive crime against humanity? It's a crime to lock up a child in a basement and force him/her to watch crap on T.V., but when we do that to all of humanity suddenly it's to be expected?

We have possibilities and opportunities just lying around for the next ambitious hacker-otaku to come along and take. But they will simply remain as possibilities unless people get to work with it. We need softwares and people who write softwares. We need academics willing to delve into the mysterious labyrinths of the sciences and regurgitate it in user-friendly format for the masses to consume, with enough nutrient in it that interested people can actually do something with it.

This should be a wake-up call to the tinkerers and hackers everywhere. Stop fighting over which programming language is better than others. Stop with the lethargic sarcasm and smell the coffee. Learn real science and hack it to pieces like any other system out there.

Get to work.

Change the world.

Sunday, August 9, 2009

Lectures and Presentations

Long time no see on the blogosphere. I've been busy during the summer with all the usual stuff, mostly learning and working. I'm glad to say that I've almost finished the Exploring Complexity: An Introduction book during the summer, and I was even able to get some of the mathematics out of the way. I think I was able to model a pretty neat animation on some of the methods demonstrated in the book, and I'll try to post it soon.

I've also been saving up for going skydiving before the summer's over... I've always dreamed of the skies (my first choice in college education was majoring in aeronautics, never quite made it though), so it's only natural that I do something that involves full-contact with the air up there. Living on the student budget means that I have to work some extra jobs for that though. Some a bit more crazier than the others.

And of course, there's always the DIYBio NYC. I've been trying to come up with some decent ideas, but everything I can think of at the moment mostly revolves around the kind of project that would require some sort of dedicated labspace. All I can do at the moment is to prepare for that inevitable day when we'll obtain access to a labspace through independent studies. Some of the things I've talked about the members during a recent meeting regarding the state of the group and the processes that are involved in constructing artificial vesicles were very enlightening, and I intend to do a full-length post about that some time in the near future.

On to the main post...

During today's twitter and identi.ca browsing I happened upon some interesting resources for scientists and potential scientists.

The first one is a collection of links and documents on how to prepare a scientific presentation. I haven't had the time to read through it yet, but I know some of the posts on the list, and if the rest are like the ones I know, they are definitely worth a read, especially for an aspiring scientist like me. It's amazing just how many things are involved in preparing a half-way decent presentation, and how most people are just plain terrible at it. I've sat through my share of lectures/symposiums/conferences and there's nothing more painful than a horrible presentation with irrational powerpoint.

The second resource I want to share with you is osgrid. It's a virtual environment tool like the second life except that it's opensource. It's relatively simple to download the environment and run it off your own servers, though it also means that you 'need' to run it on your own server for the whole thing to work. I'm really interested in finding out how this environment can be used for scientific research. Perhaps virtual laboratories running off university computer clusters? Open educations tool like a virtual university? A method for scientists to interact with their own 3D datasets in clean and intuitive manner? There are plenty of possibilities out there.

... I can also think of a few ways to utilize some of the stuff for the DIYBio community.

Thursday, August 6, 2009

Synthetic Biology interlude

This blog is currently underconstruction, since I wanted to port all the posts on my previous blog on livejournal over here before I wrote anything new (a tiresome process since Blogger only allows 50 entries per day, and I have about 280~300 posts that are waiting to be imported).

Well I'm afraid I'm going to have to break the rule here because I found something that's really just too awesome to wait.

There's a six hour lecture/presentation by George Church and Craig Venter on the Edge website right now. It's about the most rigorous introduction to the field of synthetic biology on the net in continuous video format at the moment, given by two of the most brilliant minds in the field. If you have even a modicum of interest in synthetic biology, you should run and watch the video right now... I'm trying to find a way to download the vids so I can watch them on my iPod.

This is a refreshing change of pace from all the synthetic biology stuff on the net targeted at broader audience, most of which tend to focus on conceptual sides of synthetic biology instead of the technical background that makes it so alluring.

Abundance of educational data on the net these days is staggering, compared to the days of my prepubescent web surfing days when everything revolved around telephone modem connection and American Online services actually mattered. If only I had access to this caliber of information during those days.