Saturday, June 20, 2009

CyberPolitics


I have been fiddling with Twitter for months now, and frankly just could not find anything engaging about it at all. I kind of liked the simple API that it has, but at the same time, the idea that Twitter is just, well, dumb, was reinforced by techies doing things like setting up their toilet to tweet when it was flushed. There is a portion of this that I admire; I think that more and more of the things in our environment could be set up to communicate to make life easier and better. Doing an 'art project' of this sort helps expose the problems and possibilities of existing communication standards. But this is sufficiently tasteless that it decreased my interest in the technology for a while. I didn't care to tell anyone when I was going somewhere, and couldn't imagine caring what anyone else was doing trivial enough to be encoded in just 140 characters, and I sure as hell don't need to know when someone is on the crapper unless we have to share one.

Facebook has been a lot of fun, so it isn't that I am a social networking curmudgeon ("Hey you damned kids, get your Web 2.0 off my lawn!") and although the status line is roughly analogous to tweets, Facebook has a lot of other things going for it. I'll leave my musings on FB for another post, because it has something interesting going on too that I want to think aloud about.

Anyway, with the recent unrest in Iran following the apparent re-election of Mahmoud Ahmadinejad, I kept hearing that the Iranian people protesting the election, which they said was fixed, were communicating via Twitter. I was not sure what to make of this, so I looked in, and it dawned on me over the course of a few hours (of following with rapt attention, tweets that contained links to cellphone video and news stories) that this was something of great importance. Twitter may not have been intended to be this kind of tool, but many things find their best use only after having been around a while.

What emerged was that this technology provides a quick and easy way for people to let the world know what is going on. One might expect that the mullahs would just pull the plug on all of the communication and internet resources that allowed this. But this is where the politics gets interesting.

To some extent, all of the things that Ahmadinejad and the mullahs have been doing with respect to nuclear enrichment have relied on having a digital infrastructure in place. They cannot just shut it off without screwing themselves. So they shutdown or block servers that carry digital traffic outside the country.

Twitter matters because people on the outside can help, by setting up software to provide misdirection, anonymity, and proxies so that bloggers and tweeters in Iran can bypass the routes that have been restricted by the mullahs.

Twitter matters because 24 hours ago, I had never heard of Tor, and had only the vaguest idea of how to set up proxies (my 12 year old already knew, but that is another story). Now I have several things set up to try and help.

A friend of mine and I had a spirited debate over whether Twitter was helping. He seemed to think, from what I can tell, that the fact that 90% of those tweeting support couldn't find Iran on a map, and didn't know anything about Iranian politics, meant that they should just shut up and get out of the way. But the point is that people are watching, even if they do not know what they are seeing. They can certainly understand a bystanding young woman being shot on the street by the government.

I don't have a dog in the Iranian election fight, and it might well be six of one, half dozen of the other when it comes to who won. I don't know enough to speak about what is going on.

But I do support peaceful assembly, and free speech, and I don't think these sentiments are just products of American cultural imperialism. There is a Universal Declaration of Human Rights, and peaceful assembly and free speech are in it. So I want to help, and will, in a tiny way, knowing that my servers are not going to change the world. But enough drops fill buckets.

Monday, May 25, 2009

Religious Wars



I work at a place that is 100% Windows OS driven. Despite Microsoft's release of Vista, we are solidly XP Professional.

When I chose a computer for home, I picked an iMac. With the advent of Apple's OS X, with its core based on the unix-like Darwin (nee' Mach) operating system, I was attracted to the chance to use a *NIX box and take advantage of the multitude of software available. It is a bit harder slog, if one opts to download and compile source code for thing, but it is a very good, and very educational, way to work. And the native OS X look and feel is very good. I won't say better than XP, although I prefer it. I will remain unchurched in the OS religious wars.

Still, there are things available on XP that I like. I have had a lot of fun, and learned a great deal, using Microsoft's Express Editions of their compilers for C++ and C#. It is not impossible to do the same sort of programming on the Mac, and I am learning some of this, too. But MS has a pretty extensive evangelization effort for their compilers, and there is a large body of work that I wanted to take advantage of, so I had been doing some development on my XP laptop.

However, I recently discovered something called VirtualBox, a Sun Microsystems product that allows one to run other operating systems (called 'guests') under an existing operating system (called the 'host'), like *nix or OS X. I got a copy of Ubuntu linux and began running it, and was impressed by the performance, so I decided to get a copy of XP and load it as well. Having seen it work with Linux, I was not too surprised to see XP boot without a hitch.

VirtualBox comes with software called "guest additions", which allow certain guest operating systems tighter integration with the host, and with the underlying hardware. In the case of XP, this allows some access to serial and USB ports, and allows more screen resolution. Apparently it makes things faster, but I installed them immediately, so I didn't see.

Despite running beautifully on my Mac, all the pointedly irritating things about XP persist. Connecting to a network printer was far harder than it should have been. I set up the damned network here, and my Mac and my wife's PC (where the printer is located) are not 6 feet from one another. I fiddled with it for half an hour, but it did eventually work.

From a philosophical point of view, there is something awesome about virtualization, running an OS on another OS. As hardware become ever more powerful, we can make any hardware look like any other hardware to software. I am not doing this idea justice by sitting here, slack-jawed, but at the moment, that is all I can do.

Computing

About 60% of what I do every day at work now involves me writing software. Of that, the largest part is LabVIEW, but this has begun to expand into C++ and C# as well. There is a tremendous amount of overhead involved in writing software, but the payoff is that once the programming is finished, if it is well-written, it is possible to get data at a rate unimaginable in the absence of the automation the software provides.

That describes pretty well why I put up with writing software- automation of data collection makes it worth the headache. Only, as I do it more and more, it becomes much less of a headache, and something altogether different. It has become a means of thinking about the world. The algorithmic mindset, I find, complements the scientific. I have heard it said that programming should not be an experimental science. Well, in the hands of an experimental scientist (at least this one), it most certainly is.

I cannot imagine programming to do something like accounting or database management or business systems, though I am quite happy to use the fruit of such labor. It would not be something I could stomach, I suspect.

But getting things to do stuff...this is intoxicating, and I like it a lot.

In the process of doing experiments, I have learned a little about programming microcontrollers. I can't pretend that programming a microcontroller to run a dishwasher sounds like crazy fun, but it doesn't sound bad, either.

The key is that the combination of software that allows one to control things, coupled with chemical and other scientific knowledge, allows the creation of systems of fairly awesome power. I am keen to try to learn more, and hopefully post some of my non-professional experiences here. "The man" owns my professional experiences. Not that I am complaining. I'm pretty happy to be in the employ of "the man" in times as tough as these.

Monday, March 09, 2009

Once again, into the breech...

I think I've neglected my blog long enough. I have had so few readers that I had no real issue with setting it aside a while, but now I am thinking of how best to use it. I am not fully decided, but I want to focus on chemistry and science in general.

For now, I'll just post my intentions. I can't quite break away from other commitments just yet. But I'll be back.

Tuesday, November 25, 2008

JavaScript

Dumb Example 1:


string1:
string2:


combined string1 + ' ' + string2:




__________________________________________________

This is my first foray into public javascript programming. Now, the above example is pretty silly. But until recently, I had not been able to use javascript in Blogger pages. Stay tuned, things will become more interesting.

Labels: , ,

Saturday, November 15, 2008

Empowerment

I use computers all the time. I often find myself struggling to learn the fundamentals of a new programming language (last year I picked up a working knowledge of Java, and at the moment, I am beginning the same process with Python). The internet has made this progressively easier, because there is a dizzying array of information and tutorial material available, much of it free, or nearly so.

Both Java and Python are free. I can get anything I need to write programs in these languages for free. This alone is remarkable, but the power that these languages have, especially their friendliness and built in support for web programming, makes the head smacking that goes along with learning anything complicated well worth the dents in my forehead.

I am not a professional programmer by any means- I am a chemist (and fiercely proud of it!) If I want to learn something new in chemistry, I have the background and experience to pick up the greater fraction of what I need to know from reading. The last 15 to 20 percent, however, is best learned by talking to another chemist skilled in the technique or area, and even better, watching them set up a reaction or do a measurement. If you have a huge Karmic bank account, and they will watch you do it, and offer critique, then you are as close to heaven as you can get and not have wings.

I don't have easy access to professional programmers, even though I work in the same building with a bunch. They are busy, and we do not necessarily cross paths. I can't readily ask them things without disturbing their work, and watching someone program is boring and largely unhelpful. And probably pretty creepy for the person being watched.

I discovered a very cool website called ShowMeDo that contains all sorts of tutorial screencasts about various programming topics. They are done very well, as far as I have seen. Much of the material can be accessed free of charge, but for a modest subscription ($60/yr) you can get access to much more, as well as having your feedback considered in new rounds of content creation.

A tool like this is invaluable- $60 is very reasonable, less than the average I would pay for a programming book at the local bookseller or on Amazon. Certainly, the books are more comprehensive, and as I learn what I am doing, just like with Chemistry, I can look up most of what I need to know. But "Monkey See, Monkey Do" is still the most powerful way I know to learn things in a hurry.

Wednesday, November 12, 2008

Googling

One of the things that strikes me is how much more computers have become than I ever imagined. I had no doubt that they would be powerful and useful and interconnected. What I did not anticipate, at all, was how much would be possible effectively free of charge.

My son and I use Google Calendar to keep track of his homework assignments. I use it to keep a calendar of my own, one that will email and text me if I set a reminder. I can text items to my calendar, and within reason, the calendar application will parse what I send it and insert the new item into my schedule.

I have a blog now that I am working on as a message passing system. I email or text messages to SMS Data Collection. I have some Google spread sheets set up to retrieve and parse this data. So far, if you bother to go to the SMS Data blog, you will see nothing of interest. I am doing all of the data sending by hand, largely just to work out the details of how to retrieve and chop up the data. Even after I get things going, there won't be much to see, and a lot of it may be quite cryptic. I am just using it as an intermediary.

There are a couple of things I plan to do. First, I have an idea for keeping track of a vehicle on a road trip. This device here will get GPS data and text it to the blog. A Google Documents spreadsheet will periodically go and get the data and parse it into pieces that will tell location, speed, and so on. This will feed a map that people that are invited will be able to look at, showing our location and anything else I decide to . I imagine using it as a way to keep my Dad updated on progress when we drive home, and as a way to post pictures and routes when we go to Canada or out West.

Various programs that take data for me, using LabVIEW or other software, can also email stuff. All of this can be processed using free, readily available web software and turned into something anyone with access to the Web could potentially use.

The fact that so much of what is available is opening up to being programmed by people who are not necessarily professional programmers is particularly exciting. The ability to use the power that exists in technology has resided in a subset of people that doesn't necessarily overlap with the subset of people who might do really interesting and creative things with the technology and data. The leveling of this, so that one need not be an acolyte of the computing profession, is a very good thing.

At this point, it is still esoteric enough that I spend far too much time trying to do things that ought to be simple. But things are improving, and the barriers to entry are far lower than they were just a few years ago. I imagine that there is some level of sophistication, when computers are finally programmable by anyone who can describe in a fairly logical fashion what it is that they want done. Everything that we have seen up to this point is prelude to the creative explosion that will occur on that day.

Sunday, September 28, 2008

Simple Truths

Then the Gods of the Market tumbled, and their smooth-tongued wizards withdrew,

And the hearts of the meanest were humbled and began to believe it was true

That All is not Gold that Glitters, and Two and Two make Four –

And the Gods of the Copybook Headings limped up to explain it once more
-Rudyard Kipling


Too many people will look on the current financial crisis and see only the opportunity to pillory their political rivals. Government will be cast as the savior and the villain, and the same roles will be handed to free enterprise. In a world where government-chartered entities (I'm looking at you, Fannie and Freddie) and private banks were forced by law to make senseless loans that they subsequently packaged into securities (now there's an oxymoron that burns), separating the market from the government is both dizzying and unprofitable. A pox on both houses, as well as the recognition that they are both vital.

Copybooks were a device used in years past to teach children, where they would copy lines of text or facts that they were meant to learn and internalize. They might be as simple as methods for learning the ABC's (one I remember that made an impression on me was the entry for 'X' in a copybook: Xerxes did die, and so must I. No varnishing of the facts for the kiddies in the olden days...). They could be Latin or Greek maxims. The idea was that there were important lessons to learn, and you could learn them (along with penmanship, I guess) by copying them.

This is not the kind of educational milieu we live in today, and I'm not suggesting that we should go back to rote, drill, and copying. At least not altogether.

Still, like the Kipling fragment suggests, times of crises remind us that there are iron laws: 2+2=4, and anyone who says otherwise is not your friend, but a devil.

Anyone who suggests that it is a good idea to loan money to people who aren't likely to be able to pay it back- whether it is Barney Frank, with his bleeding heart outraged that poor people are not having their "credit needs" met, or some pin-striper from Bear Lehman CitiStanley rubbing his hands together thinking up ways to pass that trash as a legitimate place for grandma to put her life's savings- needs to review the copybooks.

There really are good and bad ideas that are simple enough to teach children. Prudence really is a virtue, and greed really is a vice. That the largest economy in the world could be brought to a near standstill by liberals and conservatives colluding to ignore simple truths is tragic, comic, and unforgivable.