The Source for Java Technology Collaboration
User: Password:



John Reynolds's Blog

Community: Global Education and Learning Community Archives


Give One, Get One

Posted by johnreynolds on November 26, 2007 at 03:47 PM | Permalink | Comments (0)

It's not too late to Give One and Get One...

The One Laptop Per Child initiative may not be perfect, but why not support them anyway?

I ordered mine today:

Confirmation
Thank you for participating in Give One Get One. Your donation will bring education and enlightenment to children of the developing world, and, in recognition of your gift, you will be receiving an XO laptop for the child in your life as well. If you have any questions or problems, please contact One Laptop Per Child at service@laptopgiving.org. Should your employer wish to match your donation, we are a 501(c)(3) organization and our EIN# is 20-5471780. Thanks again, and welcome to the One Laptop Per Child community!

Merci de votre participation au programme Offrez-en un, recevez-en un ! Votre don servira à l'instruction d'un enfant d'un pays en voie de développement ainsi qu’à son enrichissement personnel. En remerciement, vous recevrez un portable XO pour votre enfant. Pour toute question ou problème, veuillez contacter Un portable par enfant (OLPC) à service@laptopgiving.org. Si votre employeur souhaite compenser votre don, sachez que nous sommes une organisation 501(c)(3) et que notre numéro d’identification d’employeur (EIN) est le 20-5471780. Merci encore et bienvenue dans la communauté OLPC !

Gracias por participar en Dé uno, reciba uno. Su donación ofrecerá un acceso a la educación y al conocimiento a niños del mundo en desarrollo, y, en reconocimiento a su regalo, Ud. recibirá otro portátil XO a cambio para el niño en su vida. Para cualquier pregunta o inquietud, favor de comunicarse con Un portátil para cada niño (One Laptop Per Child) a service@laptopgiving.org. En el caso de que su empleador deseara igualar su donación, somos una organización 501(c)(3) y nuestro número de EIN es 20-5471780. Gracias nuevamente, y ¡bienvenido a la comunidad Un portátil para cada niño!



Monolingual web toolkits: Phobos vs. GWT

Posted by johnreynolds on October 16, 2007 at 06:29 PM | Permalink | Comments (5)

The JVM is well on its way to becoming a multi-lingual environment with support for Java, Javascript, JRuby, Groovy, etc. but I have to admit harboring concerns about polyglot programming within a single project. If at all possible, I prefer to use one language per project, but with browser-based applications that's been very tough to do. I've usually ended up with Java on the server side and Javascript on the client.

Fortunately, I can now dump either one language or the other... If I want to ditch Java I can pledge my allegiance to the GlassFish Project Phobos. If I want to ditch Javascript I can pledge my allegiance to the Google Web Toolkit (GWT).

Phobos looks really, really neat... you should really check out their screencast... but I have not had the bandwidth to even play with it. GWT also looks really neat... some of my colleagues at work have published their favorable experiences with GWT versus Dojo, and it certainly looks compelling... but once again I haven't even played with it yet.

Is it really worthwhile to use a monolingual tool? I think it is, particularly when you are trying to learn how to program. Once you've mastered one programming language it's fairly easy to pick up another, but mastering two (or more) at once seems to me like a bad idea.

As I might have mentioned before, I'm interested in teaching "normal" people how to program. Back in the good old days before that darn-old Internet things were pretty simple... I remember teaching a neighbor "enough" Visual Basic to "get by" in a few evenings. Learning "enough" to build a browser based application is dreadful by comparison...

I am thinking that Phobos might change that... Javascript seems simple enough for anyone to grok... but maybe I am kidding myself. Even Javascript has a lot of cruft.

On the other hand, GWT does liberate Java programmers from all of those nasty browser inconsistencies. For those who've mastered Java it seems like a natural... but Java seems like a poor choice for a first language to teach someone.

What do you think? Teach them Java or teach them Javascript?


(cross-posted at Thoughtful Programmer)

JSF and AJAX versus Swing

Posted by johnreynolds on May 11, 2006 at 03:21 PM | Permalink | Comments (4)

Evan Summers wrote a very good blog on "Swing versus everything else" a few days ago, and it started me thinking...

Many heated battles have been fought in the war between browser-based applications and "stand-alone" applications... and when a new skirmish flares up it often brings to mind lyrics written by (Country) Joe MacDonald back in the 60's:

"And it's one, two, three,
What are we fighting for?
Don't ask me, I don't give a damn,
Next stop is Vietnam;
And it's five, six, seven,
Open up the pearly gates,
Well there ain't no time to wonder why,
Whoopee! we're all gonna die.
"

The roots of this User Interface war go deep to an era long before Java existed... the war is really about the best way to implement the client aspects of client-server computing: Dumb-terminal versus Smart-terminal.

I've said it before, and I will say it again, a computer that is not regularly connected to the Internet is not of much use to most people. To quote Sun's motto: "The Network is the Computer"... and that makes the device that you sit in front of a glorified terminal.

At this point in time, I believe that the substance of the battle between JSF and Swing is mostly over the amount of functionality that an application possesses when it is not connected to The Network:

  • JSF applications are powerless when The Network is absent
  • Swing applications can operate on local data when The Network is absent

My belief that The Network is at the root of the war was reinforced on Wendesday when I got a sneak peak at Oracle's ADF Rich Internet Components at the Oracle Developer Day held here in Austin. The newest components are snazzy-looking, AJAX enabled, and with Tools like JDeveloper it is very easy to create non-trivial applications with them.

From a presentation on NetBeans and Matisse presented by Greg Sporar at Austin's JUG a few months ago, I also know that it's pretty easy to create non-trivial applications using Swing components.

If you will grant me the latitude of gross generalization, the biggest difference (from an architect's perspective) between a Swing application and a JSF application lies in where the bulk of the application logic is executed... on the client (Swing) or on the server (JSF).

No doubt we should quibble about the phrase "the bulk of the application logic"... It's quite possible to build a very "thin" Swing front-end on top of Web Services, and with more and more client side Javascript the AJAX components can seem to be pretty "thick". Add to this equation the use of Derby-in-a-browser to provide offline capabilities and I am not left with much of a distinction between Swing and JSF clients.

So what are we fighting for?

I think it is easier to say what we are fighting against... We are fighting against having to use wildly different programming styles in a single application. I say "We", because I think this is the goal of both the JSF and the Swing camps.

Swing advocates obviously like the ability to do everything in Java and they hate markup (except for Josh Marinacci and Ethan Nicholas).

JSF advocates are much more markup-tolerant, but they want to hide all the the markup ugliness (and Javascript) within nicely wrapped packages.

If you can get past these differences, then you will find that the client-side JSF event-handling-logic is not all that different than Swing's event handling logic.

So is either side ever going to "win"? I dearly hope that they both do... and I pray that both sides don't destroy each other or:

"Whoopee! we're all gonna die."



John Gage's Ad-Hoc Keynote - WCIT2006

Posted by johnreynolds on May 05, 2006 at 05:55 PM | Permalink | Comments (2)

Senator Kay Bailey Hutchinson (R. Texas) was not able to make it to Austin's WCIT2006 for her Friday Keynote Address (due to a late Senate vote), so John Gage (Chief Researcher and Vice President of the Science Office for Sun Microsystems) pitched in with a delightful Ad-Hoc presentation.

John had spoken at earlier sessions, and given that he has a lot to say he took full advantage of the opportunity to engage a larger audience (the hall was packed in anticipation of a speech by former US Secretary of State Colin Powell)... John easily filled his alloted time, and had to be gently ushered away from the microphone by WCIT2006 CEO Glyn Meek.

John took us on a journey to many of the countries represented at the convention by enlisting Google Earth. As he flew between continents, he pointed out and zoomed in on the homes of fellow presenters and on the future site of 2008's WCIT in Kuala Lampur... and then he demonstrated how the tool could be used to visualize important data... for example the locations of reported Avian Flu incidents.

If Avian Flu spreads as many fear, the first signs are going to be from the undeveloped nations, from the mostly remote rural areas where people live in closer proximity to animals... For our own sakes we need to build out the world's networking infrastructure - starting with the poorest countries first - to insure that we know what is going on in those locales... We need to hear the news of disease outbreaks as soon as possible to prevent the feared pandemic (a compelling argument).


John went on to demonstrate another wonderful tool from www.gapminder.org that can be used to visualize Human Development Trends from around the world over the last four decades. Words Cannot Begin To Describe This Tool --- VISIT THE SITE AND SPEND A FEW HOURS EXPLORING ON YOUR OWN!

Pardon the dramatic all caps of the previous sentence... but you really ought to check this tool out... By graphing Child Survival Rates and GDP per capita income for regions (and individual countries), you can visualize dramatic trends that have taken place over the last several years. You can see countries that were once poor with high child mortality rates blossom in both wealth and health... and you can also see countries where wealth has increased, but health has not.

John makes a compelling point that tools like this can be used to strip away deciet and expose the truth... it is painfully clear which countries have successful health/wealth policies, and which do not. Knowledge (not raw information) is power, and gapminder's tools help transform raw information into knowledge that people and governments can use to the benefit of all...

John's passion for ICT (Information and Communication Technology) as a tool for a better world is contagious, and nobody seemed to mind that he over-ran his allotted time slot... We all wish he could have spoken longer, and with respect to Senator Hutchinson... I was kind of glad that she missed her plane.

Thanks John... You've helped rekindle hope that ICT really can make a difference.

Continue Reading...



Exchanging Innovative Ideas - WCIT2006

Posted by johnreynolds on May 03, 2006 at 11:59 AM | Permalink | Comments (0)

My memories of Tuesday's WCIT2006 Innovation Exchange are a bit of a blur, but it sure was fun. I volunteered to help out, and was assigned to help usher speakers to and from the podium... We started at 8:00 am, and ran non-stop until 6:00 pm... 17 speakers from Texas, Malaysia, Australia, Korea, Taiwan, Cambodia, Australia, Canada, and Mexico... and that was in only one of three meeting halls.

The Innovation Exchange was coordinated by Rebecca Judis... who volunteered for WCIT2006 last year but ended up as a Vice President for the convention ( you should always be careful what you volunteer for... it can end up taking over your life).

The pattern for the Innovation Exchange was the "Venture Capital Pitch"... 25 minutes to sell yourself and your idea to potential investors or partners. My meeting hall was filled with a mix of governments and companies... come and do business in our country, and come do business with my company.

I learned a great deal... Malaysia is like Silicon Valley but with Hawaii's climate; Koreans work too many hours a week, but that's changing; Cambodia is slowly but surely recovering from the Khmer Rouge; Mexico graduates 34,000 programmers a year. I took notes, but the sessions have still blended in my little gray cells, so I appologize in advance for any mistakes.

Some of the business pitches really roped me in... these were marketing pitches, not technical pitches... so they really focused in on relevence: Why is this technology useful? What problem will this software/hardware solve?

Joel Trammell did a great job of explaining NetQOS by using an analogy of "The mayor and city traffic": When a reporter asks the mayor "How's traffic today?" the mayor needs to be able to say "Pretty good" or "Really awful", and have a short justification... Outlining all the road closures and construction delays is overkill... the mayor needs something simple like transit time: "Traffic is pretty good, the average commute today is only 20 minutes".
NetQOS does something like this for networks... it can tell you the average transit times for messages in the network, and it can tell you where the time is being spent in your infrastructure.

Mark Spiloto pitched his company iKnowWare (pronounced "I know where")... a device agnostic view of what you need to know based on business rules, privledges and personalized views. Mark had a side-splitting video for their product... hopefully he will post it on iKnowWare's web site.

José Luque of Merkatum blew me away with their facial recognition system. His small startup created a database for the state of Florida that contains all driver license photos (and other biometric information)... it is currently the largest facial recognition database in the world, and they can match faces to photos in 4 seconds. What intrigued me by the pitch was Merkatum's intent to offer biometric recognition as a web service. If they get the funding to pull this off, they will be able to offer a very low cost solution to any company or agency that has been mandated to provide biometric verification of identity.

I had helped José get his laptop ready for the presentation the day before. He is a very charming person, and we chatted a bit about identify theft... we have both been victims. Although there are privacy concerns, the ability to more reliably prove that "I am me" before executing a transaction is very appealing (I hope these guys get rich).

Wayne Karpov of YottaYotta tailored his pitch to the convention's topic of IT and Health Care. Wayne made a very compelling argument that Health Care costs can be reduced by managing many hospitals as one... and that is an IT problem. If the databases of many hospitals could appear to be one giant database, then it would be fairly easy to write applications to manage across the multiple entities. That is essentially what YottaYotta's product does: High Performance, Resilient Global Data Sharing.

Wayne also clued us in on what a Yotta is... it doesn't have anything to do with Jerry Sienfeld. A Yotta (1024) is approximately the number of snowflakes that fall on Canada in a calendar year (That's a yotta snowflakes!).

James Balestra of Safefreight showed off a nify "brick" that contains a GPS receiver and a tracking transmitter that is smart enough to switch between cell and satellite signals (satellite is way more expensive to use than cell). The brick can be attached to a truck, trailer, shipping container (you name it) and transmits information back to the company's home base. Various sensors are available (temperature, motion, etc.) and Safefreight supplies easy to use software that makes it very easy to generate views, reports, and exceptions. For example, the brick can generate an alert if its temperature exceeds a range, or if the trailer goes outside a pre-determined area.

Peter Neve of Fieldworker pitched his company's device agnostic software development platform for mobile workers... He told us that Fieldworker had originally shipped software for the Apple Newton... and I am impressed with any company with that sort of longevity in the hand-held market.

Marshall Vanderburg's Municipal Software Corporation has a sweet set of packaged applications for local governments that can be easily tailored to meet custom needs. Who knew that automating beaurocracy could be so pleasent?

Paul Hanson's Anyware Group has a great solution called ROAM (Role Oriented Access Management) that securly exposes legacy applications via any Web Browser. Paul is a hoot to listen to... he told us that a Forrester analyst compared him to a Ginsu Knife salesman... and I could see the resemblance ;-)

Daniel Gonzales of Sinapsis specializes in building "captive" off-site development teams in Mexico. Mexico has some very good programming talent, and it is in the same time zone as much of the USA. With a bi-lingual project manager, Mexico is in many ways more attractive than off-shoring development to India (for example).

As a US programmer, I am (of course) negative about off-shoring any programming jobs... but I do have to admit that there are many great programmers all over the world. Daniel's company has done a good job of enabling Mexican programmers to get work from the US by lessening the risk to US companies. The efforts of Sinapsis should help improve the economy of Mexico, and the standard of living of Mexicans... That's a good thing. The bad thing is that US programmers lose jobs...

Malaysia has great programmers, Korea has great programmers, Australia has great programmers, Taiwan has great programmers, Mexico and Canada have great programmers. There is talent out there, and they want work from the US. If we in the US want to continue to be programmers, we are going to have to figure out how to stay competitive... we have to provide more value than our colleagues in other countries, or they'll get the work.

On a more positive note, there really are a lot of clever and gifted people out there in the world, and we can benefit from their efforts (as they have benefitted from our efforts). Many of the speakers fondly referred to Thomas Friedman's The World Is Flat.

From what I saw at WCIT2006 on Tuesday, the world is also exciting... truly a worthwhile way to spend a day.

Continue Reading...



Internet-Access For All - WCIT2006 in Austin

Posted by johnreynolds on May 01, 2006 at 06:08 AM | Permalink | Comments (2)

One big focus of Austin's WCIT2006 is to develop strategies to bridge the digital divide between "Us" (people who are able to read this blog) and "Them" (people who can't access the Internet).

I am an affluent middle-class, well-educated white-guy who lives in a big city in the USA... In a world of "haves" and "have-nots" I am definitely one of the "haves". I don't just surf the Internet's ocean; I swim in it, dive beneath the waves and explore the depths. Internet connectivity is pervasive in my world (desktop, laptop, PDA, mobile phone, public kiosks, etc.) and I feel lost without a good Wi-Fi signal.


Contrast my world with that of the large percentage of the worlds population who have yet to make a phone call. We really do live on different planets... and it's very hard for us to communicate.


Communication is the point. A low cost device that is within the reach of most people is important, but the communication infrastructure is the real problem. A computer by itself is not relevant to most people. A computer (communication device) connected to the Internet is relevant to almost everyone... AMD's Personal Internet Communicator (PIC) acknowledges this fact in its very name (without an Internet connection, it's just a nice looking brick).


The technical aspects of a bridge across the digital divide are challenging, but we're really good at solving technical problems. Given the dropping costs of hardware and the expanding presence of wireless networks, the goal of AMD's Hector Ruiz to provide Internet access to half the world by 2015 seems technically doable.


The cultural aspects of a bridge across the digital divide may prove to be the bigger challenge... bridges between cultures can be disruptive and even destructive.


Two close friends of mine moved to the Caribbean island of Nevis in the early 1990s to help build and open a Four Seasons resort. Nevis is a near perfect tropical paradise... a wonderful climate, fertile soil, and some of the friendliest and most beautiful people that you will ever meet. In such a climate, people's needs are simple, and the majority of Nevisians live in very modest dwellings... many don't have indoor plumbing and most are very small.


When my friends first moved to Nevis, few of the natives felt poor. A few "rich foreigners" had plantation houses, but the majority of the people lived pretty much the same. If you had a roof over your head and enough to eat, you were "middle class".


Then came the Television.


When Nevisians gained access to the outside world (via TV) they seemed poor by comparison; perhaps even poverty stricken. The effect on the culture was not devastating, but it was disruptive... and the level of "general happiness" dropped palpably for a few years.


Internet access has a profound impact on sheltered societies: Everyone can talk to everyone and nothing stays secret for long. This blurring of borders leads us to a whole new set of tricky cultural issues to contend with... Governments and businesses need to craft policies to prepare their citizens to become active players in the new digital economy (or they are likely to become victims of it).


WCIT2006 has assembled an impressive list of speakers to debate and discuss both the technical and cultural issues posed by the digital divide.

On Wednesday morning a panel will tackle questions related to the "global impact of digital access". The panel includes Steve Rohler (Accenture), John Gage (Sun Microsystems), James Goodnight (SAS), Teresa Peters (Bill & Melinda Gates Foundation), and Yeongi Son (Korean Agency for Digital Opportunity).

On Wednesday afternoon another panel will tackle the "impact of digital access on education throughout the world". This panel includes David S. Byer (National Coalition for Technology), Veronica Kgabo (Diepsloot School, South Africa), Guillermo H. Le Fosse (Competir, Mexico), Lorie Roth (California State University), and Dan Updegrove (University of Texas).

WCIT2006 is just a four day convention, so don't expect miraculous pronouncements that transform the world... But it should be very interesting to hear what everyone has to say.

Continue Reading...



Teaching Kids to be Thoughtful Programmers

Posted by johnreynolds on April 26, 2006 at 08:18 AM | Permalink | Comments (13)

(Cross-posted at The Thoughtful Programmer)

Today's kids are amazingly creative technophiles... If you have any doubts about that, just check out some of the videos posted at sites like YouTube.

My personal YouTube favorites are Chips (by Brookers) and Hey (by Tasha)... Both of these videos demonstrate a significant grasp of the art and technology of film-making.

Given that these young people grew up with MTV and a wealth of cable channels, it is not completely surprising that they've mastered the basics of film-making so well... Learning by example (especially when there are so many good examples to choose from) is a time-proven method for mastering a skill.

With access to low-cost (and fun) film-making tools like Apple's iMovie, kids can now easily emulate the movies and music videos that surround them. Raw talent is quickly refined by contrasting their own work with the pervasive examples of "Good Film-Making" that they see every day.

We've got a seemingly endless supply of great want-to-be-Spielbergs on tap... which is really fun... but sadly we don't seem to have a supply of great want-to-be-Programmers (let's face it, film-making is sexier).

Given the relatively small number of want-to-be-Programmers, it is increasingly important that those who do accept the challenge learn their craft exceedingly well... Quality is going to have to make up for a lack of Quantity.

To teach these new programmers, we have to take our cue from the film-makers. Today's new film-makers are successful because they have access to great (and inexpensive) tools, and they have access to great examples to learn from.

Today's want-to-be-Programmers do have a wealth of great tools at their disposal, many of which are free. What they lack are pervasive examples of "Good Programming" to learn from. We are surrounded by some really great programs, but they are almost invisible... even when we are aware of them, it's hard to "see" how they work.

Do you have any idea at all how Google finds answers for you?

I think that our task (those of us who would educate these new programmers) is to seek out "Good Programs", and to discuss them and analyze them in the same way that film critics discuss and dissect movies. This has very little to do with specific computer languages or specific technologies... it has more to do with craft, style, and techniques.

There is science to programming, but there is also art... and the combination of the two is what really leads to Thoughtful Programmers.



Remedial Programming Classes?

Posted by johnreynolds on April 19, 2005 at 07:06 AM | Permalink | Comments (18)

I came across a disturbing factoid this morning: "U.S. students earlier this month made their worst showing in the 29-year history of the ACM International Collegiate Programming Contest."



By pure coincidence, I had a chat last week with a friend who is an adjunct professor at a well known university. For some reason the topic drifted towards discussing the relevancy of computer science curriculums.

It has been a long time since I finished my Master’s thesis, but even then I had qualms about the relevancy of my coursework. Many of the courses that I took in college were taught by brilliant men who were lousy teachers. My general feeling was that I was being taught by a bunch of well-meaning PhD’s whose secondary objective was to get me to earn a PhD (the primary objective of my professors was always to get grant money for their own research projects). Presumably, once I earned a PhD, I could then go on to teach other students so that they could earn their own PhDs.

I’ve lost touch with academia, but my friend (the adjunct professor) tells me that many universities are actively shunning relevancy in their computer science curriculums (they don't want to be confused with vocational schools).
I was surprised to learn that my own undergraduate alma-mater now mandates Lisp (actually Scheme) as its Lingua Franca. Apparently this will insure that under-grads don’t confuse learning a programming language with learning how to program. I grok their intent, but this approach conjures images of cap-and-gown clad men reciting Latin prose while smoking cigars and sipping brandy.

Unfortunately, I am functionally uni-lingual (You’ve doubtless heard the joke:”If you speak 3 languages you are tri-lingual; If you speak 2 languages you are bi-lingual; If you speak 1 language, you are an American”). I can understand a bit of Spanish, but if I want to have a conversation I have to use English.

Perhaps if all of my college courses had all been taught in Latin (the root of western languages like Portuguese), I would now be multi-lingual; able to fluently converse in myriad tongues. Perhaps, but more likely I would be limited to basic communications (“I need this” “I want that” etc.) in eleven different languages.

Precise thought requires precise language. Nuance requires mastery of an extensive vocabulary. Nuance and precision are hallmarks of successful programmers.

So should my alma-mater dump Lisp and adopt Java? Java may just be a flash-in-the-pan fad (like COBOL and FORTRAN). Languages promote patterns of thought and preferred approaches to solving problems… Would Java’s Object Oriented approach taint young minds and sour them on Aspect Oriented Programming? Maybe AspectJ is the future? Maybe Ruby is a better choice? It appears that Lisp has Latin’s advantage: it is a dead language***. The University doesn’t have to pick a winner from the pack of contenders; they can pick a legacy language and be done with it.

I don't know if any of this is responsible for the decline in U.S. programming skills. It's great that other countries have made dramatic improvements.. but something's wrong back here in the U.S.A.

Continue Reading...



Robocode goes Open Source

Posted by johnreynolds on March 21, 2005 at 07:01 AM | Permalink | Comments (0)

I came across Robocode a few years ago and was instantly delighted. On first glance, Robocode is an arcade game. Robot tanks roam a virtual battlefield in search of combat and blasting away at any opponent that they encounter. Unlike traditional arcade games, the "player" is not in direct control of his weapons; the tanks are autonomous, controlled only by the event-driven algorithms written (in Java) by their creators.

The creation of autonomous robots transforms Robocode from a mindless shoot-em-up video game to an excellent tool for teaching programming and deductive reasoning... it's particularly effective for grabbing the attention of teenage boys.

My wife teaches computer skills to elementary and middle-school kids, so I had an opportunity to introduce Robocode to a group of 8th grade boys. The results were somewhat mixed; most of the boys just wanted to know how to "cheat", but it did give them a good introduction to the cause-and-effect of programming.

I think it would be great to combine Robocode and Lego Mindstorms together into a curriculum for middle and high schoolers. Robocode could be easily enhanced to include maze navigation and obstacle avoidance, and it would be very instructive for the kids to transfer their algorithms from the virtual landscape of Robocode to a Lego robot in the "real" world. What better way to learn that simulations sometimes miss the obvious?



Are we there yet?

Posted by johnreynolds on October 24, 2003 at 06:47 AM | Permalink | Comments (0)

Are we there yet?

Periodically, I like to sit back and take stock of how closely “computers” match my expectations of what they ought to be, and starting this blog seems to be as good an excuse as any to see how they’re doing. My expectations for computers are pretty easy to sum up: I want computers to function the way they did on Star Trek back in the mid 60’s.

When I bought my first computer in 1979 it had a whopping 4K of RAM and Basic in ROM. I could only store programs on cassete tape, and it was always an iffy proposition whether or not I would be able to reload them. That computer brought me quite a bit of joy by allowing me to tinker around with programming. Compared to the cryptic world of punch cards and climate controlled mainframe vaults, that little microcomputer was a hoot to play with, but it wasn’t at all what I “expected” a computer to be.

I expected computers to “know things”.

For years I had seen Captain Kirk and Mr. Spock turn to their computer whenever they had a question, and seldom were their queries left un-answered. While true that Star Trek was set in the future, the “real” computers that I worked on at school, and the one that I brought home to my dorm room were not even philisophically similar to the devices my science fiction heroes relied on. My computer knew nothing, it simply executed the buggy programs that I tediously constructed. Not at all what I expected.

Fast forward to today. Whenever my wife and I want to settle an argument about something important (like: “How old is Antonio Banderas?”), we inevitably “ask the Internet”… or more specifically we ask Google. Unlike Kirk and Spock, we have to type in a search phrase, and the results are not always as germane as the answers heard on the bridge of the Enterprise, but you have to admit it’s getting close to the same experience.

Computers are closer to meeting my expectations with respect to answering questions, but they still fall far short in their ability to be taught new tasks. When Spock needed help from the computer, he would sit down and patiently explain to the computer what he wanted, and the computer would then draw on its resources to perform the task. For me, sitting here in the 21st century, it’s still pretty tedious to contruct even relatively trivial programs, even in domains where pretty sophisticated functionality has already been developed.

For example, assume that some thug has been vandalizing the cars in your building’s parking lot, and you’d like to catch the cretins (This recently happened to us). The building has video survellience cameras, but the recorded video doesn’t have sufficient resolution to identify a culprit, so you can’t review the tapes to track down suspects after the fact. If someone would watch the monitors and alert the cops when they spotted the thugs, you could catch the rats, but there are a lot of hours in the day, and it’s just not likely that a guard will be able to stay alert.

The solution should be simple.

Me:”Computer, monitor the video camera and alert me whenever you detect any suspicious people in the parking lot”

Computer:”I don’t know how to monitor video”

Me:”No problem. I’ll install this video capture card that I bought at Fry’s, and then splice in the video feed from the camera” Computer:”I don’t know how to detect suspicious people”

Me:”No problem. The folks at Carnegie Mellon University developed some software for DARPA that analyzes video to detect and classify moving objects and their trajectories. Just download that software, and let me know when any of the objects that are classified as ‘people’ are moving in an unusual trajectory.”

Computer:”I don’t know how to alert you”

Me:”Now you’re just being difficult. Prompt me at this terminal first. If I don’t respond, then buzz my pager. If I don’t respond then call my cell phone”

The status quo is a bit less satisfying.

Carnegie Mellon University really has developed software that can analyze video and differentiate between the “normal” and “abnormal” movements of people and vehicles. They developed some pretty impressive stuff, and published all of their results a couple of years ago on their web site: http://www.cs.cmu.edu/~vsam/. There is no longer any need to suffer through hours of grainy video tape to catch a glipse of the thugs that vandalized your car in the parking lot last night. You really can construct a system to quickly flip to the scenes where “something unusual” is going on. That’s pretty cool stuff.

Conceptually, all you need to do is get the software from CMU, establish a feed from your video cameras to the processing units, and add in hooks to alert you or your guard. Practically, it’s not a simple task. The software is not componetized, and it is not packaged for reuse. You’ll need an extensive knowledge base and many weeks of tinkering to duplicate the base functionality and adapt this technology to catch the bums that are vandalizing your cars.

For this specific example, there’s lots of money to be made so there will no doubt be a turn-key system available soon, but think of all the fringe cases where you want something done that isn’t common enough to warrant a dedicated product.

I long for the day when it is the norm for sophisticated systems to provide interfaces that allow them to be incorporated as components of other systems. Perhaps Web Services is the beginning of this trend, but it’s a bit too early to tell.

Can you imagine a world where all of the functionality that exists on SourceForge and Jakarta today is componetised and packaged for reuse? Can you imagine development environments that can locate and assemble functionality to fulfil stated desires? We’re not there yet, but we’re getting there.

Continue Reading...





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds