The Source for Java Technology Collaboration
User: Password:



N. Alex Rupp's Blog

Community Archives


Software Language Makes First Step Towards AI? Hardly.

Posted by n_alex on June 20, 2005 at 12:02 AM | Permalink | Comments (4)

First of all, I know bad reporting very well, because I've done my share of it. The first step in writing a misleading technology article is to step out of your domain of expertise. I daresay the person who wrote the article in question doesn't know up from down in cognitive linguistics or AI. That said, I'm no Ph.D. in cognitive linguistics or AI either. But I just-so-happen to have been recently studying the problem of polysemous prepositions in natural language semantics, and I do think the editors over at news.softpedia.com are taking the public for a ride down fantasy la-la lane.

Maybe they're not doing it on purpose, but that's the first thing that popped into my mind. The softpedia article proposes that ISO 18629 "Makes the first step towards AI." The title alone is ridiculous. When I read the article, (you should, if you want to understand what follows), I came to my la-la lane conclusion.

The article begins "Mankind is making the first steps towards artificial intelligence, or AI if you like." and then proceeds to explain why, apparently oblivious to the steps folks have been making in so-called "AI" for quite awhile.

The proof cited in the article?

If a person who hears the commands “paint it, before shipping it” and “turn on the coolant, before milling” understands that the word "before" has slightly different meanings in these two different contexts. In the first command, it is understood that painting and drying must be completed prior to the next action, shipping. In the second command, however, the first action, turning on the coolant, continues after the milling starts. ISO 18629 supports computer systems with this type of rudimentary understanding of context-specific language.

I don't think this has anything to do with AI. It certainly isn't something that "enables" AI, and I'll paint my face blue if it "makes the first step towards AI", as the title of the article claims. On the other hand, it does strike upon a subject I find VERY interesting, because of my recent research in language design: Polysemous Prepositions.

Here's how it breaks down. In natural languages, there is a common occurance called "polysemy". Polysemy happens when one word can mean a number of things, dependent on context. One of the areas most notably affected by polysemy in English is prepositions.

The Metaphor Research Group at Georgetown University has been conducting discussions and research into the question of whether polysemy in English prepositions follows a logical pattern, or whether its arbitrary and idiomatic. This work has recently culminated in a fascinating publication on the subject, titled "The Semantics of English Prepositions: Spatial Scenes, Embodied Meaning and Cognition" by Andrea Tyler and Vyvyan Evans. (ISBN: 0 521 81430 8 hardback)

The problem with polysemous prepositions in language, which is familiar to any language geek who has ever done any work trying to approximate natural language in a logical semantic system, can be illustrated by part of a simple quote at the beginning of this book:

"We won't come back 'til it's over, over there."

The word "over" has two radically different meanings in this sentence. Same word, but how do you know which version of "over" is meant? "Over" as in "finished", or "over" as in "on the other side of a certain amount of space"? The book goes into other meanings for "over": in motion above, as in "flying over the ocean", resting above, as in "over an open fire", more than, as in "over 90 percent", the list goes on.

To resolve this question of polysemy, the human listener has a number of potential options: one is to construct the meaning "on the fly", at "runtime", so to speak. This implies that the reader is generating hypotheses about the meaning of the language as they are reading. Another option is for idiomatic or "rote" memorization, where you learn to map spatial and temporal concepts with certain instances of usage in your mind. This is really just pre-processed language.

Now, it is undeniable that, over time, people develop idiomatic concepts to help them process polysemous expressions. That part of their language usage is already precompiled and in memory. But when learning a new language, such as a foreign language, must people memorize what the proper prepositions are for certain expressions, or is there a hidden, underlying system that actually makes rational sense?

Tyler and Evans argue the latter point, and do so with a candor that is charming and unexpected in such a dry-sounding topic as polysemous prepositions.

The questions their book raised in my mind, were along the following tracks: If prepositions deal primarily with mapping conceptions of space and time to language, what changes need be made to language and its study when Gaussian and Riemannian concepts of space and time are taken into consideration? Specifically, what's the plan to overhaul our notions of location and time? We know with absolute certainty that old Cartesian and Euclidean concepts of space, time and other manifolds are simplistic and rife with paradox, and that Gauss' cyclonic functions and complex domain, taken alongside Riemann's notions of multiply-connected manifolds lend radically new and elegant ways of resolving colocation (a type of polysemy) and other spatial paradoxes into simple and rational forms.

But, because Gaussian and Riemannian spatial concepts ("space" is such a limiting concept, really) have not penetrated our education systems (yet), neither our usage nor our understanding of language and the ideas that underlie it have changed noticibly since these discoveries. Structuralism and post-structuralism actually took us further from these discoveries, first toward the realm of discrete mechanical breakdown of language, a throwback to the scholastics (which we see here in ISO 18629), and later toward the post-formal absurdities of post-structuralism, another throwback, only this time to nihilism. Neither showed the foggiest recognition of these 19th century advances in mathematics and geometry, or of the immense philosophical implications of these advancements. Nowadays the works of Gauss are becoming available in English, but Reimann's still hard to find in English.

Don't be fooled. ISO 18629 is a library for mapping "process information related to discrete manufacturing." It uses AI, it doesn't enable AI. It's no breakthrough in AI, and it won't lead to rational machines. For my dime, it's just another domain specific language (I'm sure it's excellent at what it does, and that its designers should be proud--my complaint was with the slipshod reporting at news.softpedia.com)

To keep people thinking, I'd like to put forward the following assertions, which I'll be happy to elaborate on at a later time:
1. Logic is not Reason.
2. Now, I'm biased, but I think if people seriously want to make real breakthroughs in AI (break-outs, that is--I hold AI and cybernetics to be totally absurd, but that's for another day), they should be studying geometry (and its many cousin languages), not drooling over a specification for a discrete manufacturing syntax.



Twin Cities IASA chapter presents "Interop City" event

Posted by n_alex on May 24, 2005 at 05:37 PM | Permalink | Comments (0)

RE: Twin Cities Interop Event being held on May 31st at the University of St. Thomas in St. Paul.

The first-of-its-kind event, Interop City brings software technology user groups together for a day of presentations, demonstrations, and dialog on .NET and J2EE interoperability. Interop City is a unique event based on a grass roots initiative. Bringing together User Groups, Corporate IT, Vendors and today's Thought Leaders, members of the Java, .NET, and XML user groups, along with chapters of IASA and the IEEE, and the Software Process Improvement Network will congregate under one roof to discuss one of today's hottest topics.

For more information, please go to the all new IASA home web site: www.iasahome.org/events

Hope to see you all there!

Krzysztof Karski
Twin Cities Chapter President
International Association of Software Architects
[e-mail removed]

* * * * *

If you'd like to pass a message on to Krzysztof, you can drop me an e-mail, and I'll forward it on to him. -- n (at) alexrupp (dot) com



Beating Back The Spyrus Blooms

Posted by n_alex on January 14, 2005 at 08:10 AM | Permalink | Comments (4)

Every day for the last several weeks, I have gotten up, trudged through subzero temperatures that can literally freeze your eyelids shut, sat down at my desk in an old NASA-funded research building, and infected Windows XP machines with a wide variety of spyware, viruses, worms, IRC bots, toolbars, adware, and other assorted barnacles of the electromechanical world.

Barnacles, Spyruses, we have many names for them here. But they are the enemy. We've built zoo machines and read-only arks of all the worst nasties to cross our nets in the last six months. Blaster. Welchia. Netsky. Gaobot, and all its cunning variants. Internet optimizer, CoolWebSearch, you name it. We have 5,000 resident users in one great big network corral, with almost unrestricted access to the external net. They function like fishing nets, bringing us all the worst computer infections the world has to offer. Their job is to play, and learn. Our job is to protect them from each other, and the world from them.

We fight the bots, and we win. Time and again. I've been training a team of about 25 people, to be able to sit down with any Windows XP machine, and disinfect it--completely--in an hour, when a compromised or clueless Symantec would still be wandering blind through the System32 directory, and Ad-Aware would still be on-deck.

The best part, in my mind, about my place here, is that the people on my team aren't former virus writers or cybercriminals. They're honest, bright students who take more satisfaction in reinforcing windows than in breaking them.



Mark Proctor added Drools DRL schema to CVS today!

Posted by n_alex on September 14, 2004 at 02:22 PM | Permalink | Comments (1)

For more information on DRL schema, visit the Drools Project Site



TC IASA presents "The Secrets of ROI for Software Architects" by Cris Ross

Posted by n_alex on July 23, 2004 at 06:44 AM | Permalink | Comments (0)

Interested in Software Architecture? Twin Cities Resident? On Monday, August 16th 2004 from 6:30 to 8:30 PM, Cris Ross, CIO of United Behavioral Health will be delivering a presentation on "The Secrets of ROI for Architects" for the Twin Cities Chapter of the International Association of Software Architects (TC-IASA). The meeting'll be hosted by Intertech Training in Eagan, MN.

Intertech Training (David Blevins of OpenEJB used to teach classes here) has sponsored the Twin Cities IASA chapter! They'll be providing us with a venue for our software architecture meetings.

I've put up some more information on the August meeting at the TC IASA home page. If you want to come to the meeting, please drop me an email and let me know. Software architects of all stripes are most welcome, as are those interested in learning more about software architecture.

Also, it's not a done-deal yet, but I'm talking with Gregg Kloke, former CTO of SimonDelivers.com (online grocery delivery service for those of you in cities without one!) about speaking in September. I'll let you know when I find out more about that.

-- Alex

Approaching Architecture

Posted by n_alex on July 07, 2004 at 07:36 AM | Permalink | Comments (4)

Warning--high buzzword content in this blog entry might cause headaches. Aspirin, cool water and a whitenoise generator recommended. For best results, do not read on an empty stomach.

I've recently begun a Twin Cities chapter of the International Association of software architects. IASA is a not-for-profit company devoted to advancing the science of software architecture. The Twin Cities chapter will give residents of the Minneapolis and St. Paul area a language-neutral forum for discussing architectural concepts. We're having our first meeing in August, on the 16th. I'm still looking for a flexible and affordable venue, but we've got our speaker lined up and it's sure to be good. I'm just extremely thankful to have a group like IASA, which can offer me a national superstructure for hosting architectural meetings. I've really longed for high-level architectural discussion in the course of the last year, and found a rather sparse community.

Believe it or not, the best friend the architecture community has right now is probably Microsoft corporation--they've been a tireless advocate of advancing architecture as a science and as an art form, and they've been more eager than I would originally have thought to assist my fellow IASA chapters (all of whom to my knowledge have been founded, organized and run by Java User Group leaders). They're actively encouraging me to seek out sponsorship for my local chapter from the J2EE industry, because they know that architecture is a language and platform neutral science (it's been around far longer than .NET or J2EE/J5EE/whatever version Sun's PR goons want to call it. The willingness of Redmond to assist without control and encourage cooperation with Sun, IBM, BEA, SAP, Borland, etc is an advanced indicator to me that Interop and SOA is truly the way of the future. And that means that software architecture as an explicit and well-developed science is also the way of the future.

But so very little is commonly known or understood about software architecture. You can't get a degree in it. You can't really even become certified in it. Sun offers an architect certification, but theirs is really a language and platform biased vision of architecture that doesn't hold its own in the world of legacy interop and the emerging web services market.

Paul Preiss, the President and Founder of IASA, has been coaching me on his views of architecture and I've been noticing a distinct bias against including the concerns of developers and development practices in the architects repertoire. This is strikingly familiar to the bias developers hold toward practitioners of interaction design (and also a little reminiscent of the stratospheric nasal tilt many enterprise developers have shown .NET developers in the past five years). In defense of those developers out there looking to learn more about software architecture, and as an early attempt to make architecture more accessible and less "mystic", I'd like to throw out a few of my own ideas about architecture, and some links to other definitions and resources that people might find helpful.

The separation of development and architectural concerns should be undertaken only for practical reasons--when it is more efficient to have specialists focusing on each role than it is to have developer teams juggle traditional programming/construction and architectural/design responsibilities.

The "Model-2" approach to software development kicked off a trend toward greater isolation and abstraction between roles in development teams. In addition to separating the concerns of interaction designers and software engineers, there have been advances for isolating the administrative and executive concerns from the development process. This might be mere conjecture, but based on my own experience, we might have software engineers to thank for most of these architectural advances--it is possible they've been providing automation hooks and tools to remove themselves from the middle seat. I think that perhaps some underground coalition of long-toothed Unix hackers tired of having its shores invaded by milling throngs of well-meaning but tiresome (savage) artists and executives has finally elected to do something about it.

On the other hand, perhaps we are the savages and have the suits to thank for these new advances. Or (most likely), there's a bit of savage and a bit of savant in each of us.

architecture, in a way, is a way for developers to climb up and see the larger picture. The more you work with different Open Source projects (especially when you're trying to augment, alter or otherwise extend an existing software product), the more you'll gnash your teeth and notice how difficult a poorly thought-out (or even a well planned but strategically dissimilar) architecture can hinder your progress and spoil an otherwise good user experience. For example, the Jakarta Tomcat server has a very specialized architecture that allows it to operate in a standalone environment. This is sort of like an astronaut in a space suit--it's got lifecycle management, onboard dependencies, all the things it needs to operate in the depths of space. But all that luggage might prove a hindrance when trying to embed it in a service-rich environment. For this purpose Jetty is clearly superior--it is well adapted to life in lush surroundings.

This metaphor is working, and metaphor, really, is what software architecture is about, so I'm going to run with it. One could describe an architecture like one describes the evolutionary skeletal adaptations of an animal. The Irish Elk had a very specialized "architecture" in its 13 foot antler crown. Tomcat has a very specialized architecture that allows it to function in the barren environments typically operated by green-skinned n00bs. Both, because of their relative inflexibility (and I'm not by any means trying to cast a shadow on Tomcat--I've warmed to it quite a bit since becoming familiar with OpenEJB) stand to lose out when the environment changes. In the case of the Irish Elk, the weather improved and firebearing bipedals arrived on the scene. In the case of Tomcat, service rich environments and flexible component based architectures could render the "all in one" solution unnecessary. In order to avoid falling into disuse, Tomcat will need to adapt. And development concerns are not what's holding them back. The key lies in architecture.

And this is why developers need to learn about architecture--particularly good developers. There is even cause for them to specialize--the all in one solution might not be well suited to our contemporary technical job markets any more than the Irish Elk was to the woods. The advantage that developers have over self-styled architecture purists is that they know from experience, perhaps on an untrained but intuitive level, how and where the programmatic weaknesses in certain software architectures might lie. But in learning about architecture, they need to abandon the minutiae of flow control and implementations of their software, and begin to concern themselves with the construction of modular but holistic systems, functional organs for a service-oriented world. In this world, executive concerns and Interaction Design play at least as important a role in the delivery of software products as developers.

This morning's ramble is complete for now. I'll continue on this topic (and assemble some links to resources) soon.



I landed my dream job: Open Technology Systems

Posted by n_alex on June 21, 2004 at 12:07 PM | Permalink | Comments (4)

It's been a long haul since I started working with Open Source technology. There have been times when I've joked about the rice and lentils diet, only I wasn't really joking. I was putting a brave face on a pretty frightening and hungry lifestyle. I've never known for certain if my work in Open Source was going to pan out, and I've been just barely scraping by for longer than I care to admit. I figured if that's what it took to do what I really love, which is to write software and write about software, then that's what I was going to do. I had long since resigned myself to the "starving artist" mentality, because of my devotion to writing and poetry.

I actually majored in writing and poetry in college, and there's an interesting story behind that. I was nearly expelled half-way through my senior year in high school (1997) for hacking past our school's security system (with a Mac, no less) and into the local bank. I had accidentally gained access to the district's payroll system (quite without knowing it, I swear!)

In Saint Croix Falls Wisconsin they don't really know how to deal with that sort of thing. So, for the second half of my senior year in high school I wasn't allowed to use a computer at school unless a teacher was sitting next to me, watching my every move. No lie. It was a tremendously painful experience. I'd already taken almost every class I needed for graduation, and had very few electives to choose from (small school).

So I doubled up on the independent art classes and took FOUR English classes with Mr. Beversdorf (sorry if I mangled your last name, sir--it's been a while), a weight lifting class and study hall. That's right. Full enforced immersion in the humanities for one semester, and I never quite recovered. I didn't have a computer at home (much less the internet), so this was a crippling blow to my hacking career.

I learned during that semester that I wanted to study the liberal arts when I went to college, and not computer science. And that's what I did. I ended up taking a class on first and second order sentential logical languages my first semester, but didn't begin programming in earnest until I got a gig as a web designer at Dain Sundstrom's first company, Arcane Logic. (Here's a bit of trivia--one of Dain's parters at Arcane Logic was Charlie Demerjian, who writes for TheInquirer.net, and who is my roommate. Small world, eh?)

By the time I took my first (and last) computer science class in college, I'd already been studying Frege and Russel's linguistic theory, and had made it and lost it in the boom. I could have been a better computer science student, but language theory itself is what commanded my interest, along with human-computer interface theory and language/literary theory. Also the University of Minnesota's computer science classes have upwards of 400 students in them, and the labs didn't have enough seats for all the students. I was bored stiff during lectures on control flow and when all was said and done I decided not to take up CSCI as a second major.

I stuck with language and literary theory, and I'm still doing it (working with semantic modules in Drools right now). And when I had to choose a major I decided to go with learning how to write the perfect words in the perfect order, which is something that programming and poetry have in common. "Poet" just doesn't look as good on the resume as "M.S. CSCI", though.

So for a while, Open Source has been my only shot at actually writing good software or working with smart developers. I kept at it, hoping it'd pay off in the long run, and decided that if I couldn't get a job as a developer that I'd start my own company and go after small clients. I don't need to tell you, bootstrapping a company on zero budget is no walk in the park.

Very recently, I worried that I'd have to take a "bench" position at one of the giant, soul-crushing consulting firms here in Minneapolis, or give up the ghost (to borrow an expression from Hunter Thompson). And then, one day, while I was coding out loud on Drools at the Dunn Bros coffee shop on University Avenue, I met a guy who, by chance, knew some guys starting an Open Source company. . .

He asked "are you a techie?"

I nodded.

He asked "do you do Open Source?"

I nearly choked, and gave him an affirmative nod.

He didn't waste any time. He asked me for my resume right there, and since I'd just applied for a job at the University I had a copy with me. He referred me to a company called Open Technology Systems (try googling that ; ) and made me promise I'd send an email to the company's VP.

A week later I met with the company's President, Gregg Kloke and the VP, Randy Olson. Gregg's background was with a company called Simon Delivers, an online grocery deliver service here in Minneapolis. Randy had done consulting with Onyx (a bit before my time, I'm afraid) and they are both really into Open Source technology. Their business is based around providing Open Source solutions to small and medium sized businesses. After an hour with these guys, I knew I wanted to join their company. Last week they invited me to their office to sit in on a meeting with a local retailer and talk about Open Source in the context of their business. I thoroughly enjoyed myself and got along really well with the others I met there.

It's been a sleepless weekend, but I got the offer letter last night, and I started this afternoon.

The reasons I'm blogging about this is are pretty straightforward. First of all, I'd like to share the news of my good fortune with some of my friends out there, many of whom have been trying to help me land a regular gig for a while. Second, I'd like to thank Joe, Randy and Gregg (in order of introduction) for giving me a real chance to do what I love.

Finally, it's to remind all the local guys I've met, who've studied computers because they thought there was a future in it, that there is a future in it, and that it's as bright as it ever was. And Open Source is going to play a huge role in it, perhaps bigger than anyone really knows. If you're a young developer (or language geek) and the times have got you down, stick with it anyway. Things will pan out.

Now, lest I jinx my good fortune, I'm going to get some work done.



Unit Testing EJBs

Posted by n_alex on June 11, 2004 at 03:29 PM | Permalink | Comments (0)



TechEd 2004, Day 03

Posted by n_alex on May 27, 2004 at 09:15 PM | Permalink | Comments (1)

Open standards allow multiple vendors to offer their own implementation of valuable technologies. The Sun and JCP open standards are particularly good at helping small vendors participate in the technology market. Competition makes software cheaper, forcing the vendors to improve the quality of their products and services. Open standards also lower the risk for the end users by at least providing for some common ground between technological platforms.

Microsoft and Sun seem to have much different overall attitudes about the role that Open Standards have to play in the technology industry. Like any tool, Open Standards are good for certain jobs and not so good for other jobs.

At first blush, Sun is a stronger advocate of open, community driven standards. They sponsor the Java Community Process, which allows major and minor players in the software industry to determine the future of the Java language and platform.

Microsoft, on the other hand, seems at first blush to be more monopolistic in their intentions. I've written this myself about them several times in the past. They envision themselves as the ground upon which all of us should build our software. They also see themselves as the thought-leaders of the industry.

In many ways, both of the last two paragraphs are uninformed. From my perspective here this week, both Microsoft and Sun have more in common than might be evident at first glance.

For instance, Sun created its own standards body that allows it to excercise veto power over JSRs in the Java Community Process. This is intelligent, because while the community should be able to (and encouraged to!) inform and influence the future of the Java platform, it should not be able to force that future if Sun thinks it is bad for the technology, the industry or both. This strategy lets the community push for new technologies and come to compromises and agreements with each other, but also lets Sun cast the deciding vote and do what it can to protect the community from itself (let's face it—sometimes we need it). We benefit from community participation and leadership as well as from Sun's unifying vision.

On the other hand, Microsoft has turned their C# and Common Language Runtime specification over to the ECMA and ISO standards organizations in order to show the world that it didn't need to excercise absolute control over the technology. Of course, they hold on tight to their implementations. I was surprised at first that Microsoft would relinquish their specs to a third party standards organization, but I think they knew what would happen if they didn't. They've come under too much fire in the past decade, and I think they've realized the benefit of sharing. Now they can commit themselves to shipping the absolute best implementation of these specifications. But what is the process for moving the technology forward? How do future versions of the spec get ratified and become standards themselves? How can companies and individuals participate in future of the technology? I can't answer these questions tonight. By working through ISO, can Microsoft provide the same unified vision that Sun can with the JCP? Or do we need to worry about dozens of *mostly compatible* CLRs popping up in the next 20 years?

Open standards can serve customers and vendors, but they require compromise from both ends. The alternative, proprietary and closed albeit ubiquitous technology, might lead to a rapid evolution of features, but it also comes with the risks associated with vendor lock-in and a significant limitation on the number of vendors who can participate in the market. Macromedia's Shockwave is a perfect example of this stagnation. Everyone has seen what it can do, but not many seriously consider developing smart UIs on it. I can't say for certain why that is, but my guess is that it's because there are so few tools available for working with it, and not many developers can afford them. In this case, Macromedia might have become too successful for its own (and our own) good.

I was speaking with an IBM rep yesterday afternoon, and I mentioned the tradeoff between open standards and vendor lock-in. He pointed out that in the end, everyone customizes and tweaks out their implementations of a standard technology, and that customers always get locked in to some degree or another. But he insisted it's a moot point, because all the major vendors offer migration tools to overcome the differences, and that lock-in override is just another feature they can sell. The best of these custom extensions can end up driving the future of the spec.

I'd have to say (and I think that the .NET and Java communities would agree with me on this one) that the best model for driving technology forward requires a degree of open standardization and community participation coupled with an executive force at the top to provide vision and leadership.

Fortunately, both the Java and the .NET communities seem to be on this track. Hopefully this trend will help developers from each side play better together in the coming years, and crank out some fine software while we're at it ; )

Now, if only more of the Microsoft leadership could take the two hours to read the Open Source Definition, the Free Software Definition, grok the difference, and start acting like it. Microsoft spent a decade educating news reporters about technology—did they think they were done? They need to realize the role that real Open Source organizations have to play in uniting small vendor communities, driving innovation and enabling small businesses and vendors to get a foothold in our industry. Sun definitely gets the picture, but there are still too many in the Microsoft camp who mistakenly equate Open Source with rabid, viral anti-capitalism, and they're missing out on a very important community resource in the process. Communities of every size are improved when their members work together and form businesses. Likewise, businesses are strengthened when they form communities and voluntarily share knowledge. Open Standards and Open Source licenses contribute to this.

I don't fault Microsoft's leadership for not taking more time to explore and communicate the distinction between Open Source and Free Software. And I'm not just talking BSD versus GPL here—it goes much deeper than that. Most mainstream Journalists certainly don't get it, yet they're the ones writing all the sensational articles about Open Source (who would ever trust a journalist about technology or law anyway?) Most Open Source developers don't even understand the difference. But that's alright—there are many people who do get it, there are books and literature coming out on the topic, and those who have figured it out will be happy to explain the difference to anyone who asks.

Those of us committed to real Open Source development know that we're doing so in order to open up more technological markets to more people, that innovation and hard work in software development should be rewarded, but also that there's much more to business than the bottom line.

Not to imply that Microsoft is completely oblivious to these things—there are some in Microsoft's ranks who know exactly what I'm talking about. Hats off to them, and may they all rise quickly through the ranks. ; )



TechEd 2004, Day 02

Posted by n_alex on May 24, 2004 at 09:24 PM | Permalink | Comments (9)

I don't know exactly what I was expecting from Steve Ballmer's keynote address this morning. I've never seen the man speak before, or heard his voice. In fact, I haven't even seen a photograph of him that wasn't a decade old. What I did not expect was for Mr. Ballmer to have somehow transformed into a spitting image of my former Governor, Jesse Ventura. They look alike. They speak alike. It threw me for a loop.

Mr. Ballmer has a very strong presence on stage, but it wasn't his presence that really drew my attention during his keynote. It was the contents of his message and, more importantly, the way in which he delivered it that most impressed me.

What I'm about to do might be a bit unfair, and I apologize in advance if I upset anyone, but the only other major keynote speaker from the IT industry that I've ever seen was Scott McNealy, who gave the final address at JavaOne last summer. The more time I spend here and the more I explore the differences between the Java and .NET communities, the more I wish I were going to San Francisco in June, so that I could make back-to-back comparisons while it's all still fresh in my mind. Last year Sun and Microsoft were still embroiled in a major lawsuit, and so of course Mr. Ballmer's speech this morning was more positive and constructive than Mr. McNealy's was last June.

But even so, Ballmer did not lash out against other technologies, or against Sun. He certainly didn't make the mocking of his company rival a central part of his keynote, as McNealy did last June. He kept an extremely positive focus, and stuck to community and technology-based topics throughout the entirety of his address. It was very relieving.

I'll get into the technical and business related contents of his speech in a moment, but first I want to make some important cultural and rhetorical critiques. Mr. Ballmer is a visionary, and he probably doesn't walk in the quite the same world as you or I do.

This became more obvious to me throughout the day. After spending some time in the trenches discussing ideas and technological considerations with different developers and vendors, I've come to the conclusion that there is still a great deal of bitterness toward Java developers among the .NET rank and file. What surprised me most was how the topic of Java, even among and between perfect strangers, always returned not to the technological flaws of our platform, but to the "jerk" attitudes of our developers.

I'll be the first to admit, my flaws are boundless. I've written and said some things in the past, particularly about Marc Fleury and about the Redmond giant, that were deliberately inflammatory and sensational to no constructive end. I know it's a bad habit to get into as a writer, and especially as a critic whose job is to interpret and not to cast judgement. This editorial style certainly doesn't make me a better person, so I've been trying to grow out of that practice. It certainly helps to have people I admire, like Richard Monson-Haefel, acting in an extremely courteous manner toward someone he's slighted. For that, Richard, I'm very grateful.

It's easy to demonize your opponent when they only exist on your computer screen, but it's another matter altogether when they're standing right in front of you. And the whole "tribe mentality" plays into it as well, as it does in software projects, as it did last June when Scott McNealy made his keynote and burned Microsoft. It isn't difficult to see how the rank and file Java developers might amplify this half-playful distain into raw contempt for the .NET crowd. But the "US versus THEM" Napoleon-complex mentality is a luxury we can no longer afford as a developer community. As an American citizen, I can definitely say that political events of the last year have given me pause to reconsider how I conduct myself in public, and especially how I regard and treat my competitors in the public arena. I don't hate these people—I have a tremendous amount of respect for them, even if I disagree with them on technical details.

Which brings me to the next part of my blog for the day. For the last year I've been flirting with the dream of bringing affordable J2EE technology to small and medium sized businesses, and of someday making it possible for small companies to buy affordable, enterprise quality software. That, more than anything, is the reason that I use, study and develop Open Source software. Sometimes I get frustrated by the high cost of deploying enterprise-strength web applications. I'm probably just trying to crack an egg with an axe, but it's the principle of the damn thing that I just can't shake. I'm a small player but I like to think big, and I admire other people with the same penchant. I'd like to be able to deliver big, even to small clients who share my unfortunate addiction to thinking big. What really bugs me is when people I know make tongue-in-cheek comments about how companies who can't afford to pay hundreds of thousands of dollars for J2EE's stability and features don't deserve it. I refuse to accept that only Fortune 500 companies deserve rock-solid code. This totally ignores the market potential and the importance of small and medium sized businesses, and doesn't do much for the reputation of the Java guy.

Today, I saw more evidence of that truth than I was prepared for. Microsoft's development tools are easy to use, easy to learn, and affordable. That is why .NET is so appealing to small and medium sized companies. According to Ballmer, over 50% of IT developers in the country use .NET. These people don't write code--they have forms and wizards for developing just about anything you can think of. When they do write code, they have development tools that actually force them to write unit and performance tests. And from what I can tell, they have tools for writing those as well.

The tools they've got coming out this year will probe their software for security vulnerabilities, and color highlight the areas of their code which they have not adequately tested, forcing them to correct the error before they check the code into the repository. Tools, to amplify their productivity. Tools, to tell you while you're developing if you'll have fatal errors at runtime, thereby easing the testing and QA process. Tools for performance testing components in ASP.NET web applications, to push multiple simultaneous threads through your software, to bootstrap an ASP runtime environment and use it behind the scenes to simulate a live runtime environment. JUnit won't even add a Multithreaded Test Runner to their core API. Tools to design web UIs, built directly into their ASP.NET IDE. More tools than you can shake a stick at.

In the United States, only the pharmaceutical company Pfizer spends more money on R&D than Microsoft does. They've embraced Agile development techniques in Redmond and before long the rank and file will catch on as wel—they will have no other choice. The tools are there to make Test Driven Development ubiquitous throughout the .NET industry. In the realm of tools and ease of use, Microsoft and the ecosystem of small vendors surrounding them have got us outgunned and outclassed.

All of this was running through my mind before Mr. Ballmer even finished his keynote.

BUT—we in the Java community don't claim to be the most approachable or user-friendly development platform in the world. Usability has never been the greatest strength of the Java platform, and I know we're making strides to overcome our deficiency in that area. As I attended various sessions on .NET technologies, especially one about developing web applications with ASP.NET, it became fairly clear to me that we still have a tremendous and important role to play in the future of enterprise computing, of persistent transactional object frameworks, of distributed component frameworks, of ultra robust application servers. We've got a good handful of J2EE app servers on the market already, and more are one the way from JBoss, Jonas and Geronimo. The licensing costs will fall by necessity, freeing up more spending for support and better feature offerings.

Microsoft does not seem to have an answer to EJB, or at least the developers I've spoken with don't spend much time considering distributed component architectures. They're still coaching developers to hand-write their SQL code—the very thing that drove me from ASP technologies back in 2000. "Sometimes it's better for performance to customize the SQL", a gentleman explained to me this afternoon. Agreed, but where is the option to have a persistence engine do the heavy lifting for me? I can always subclass a BMP object to do custom transaction stuff. When the customer decides to change to a different database on a different operating system (yes, it actually does happen) and they've got to rewire their library of data access objects, it will certainly help that the SQL queries are encapsulated into objects and not scattered throughout the application, but it won't save them if they've got 6,000 unique data objects in their system. I'm not saying this to be cruel, or to spit on ASP.NET technologies. It's just my perception. ASP.NET might not be the best tool for that job. Or maybe it is. If so, is it worth the risk of lock-in? If it's not worth the risk of lock-in, does that mean that Microsoft and its employees are all terrible and evil? Of course not. It probably just means we need a two-tiered market, and that things are the way they are for a very good reason.

It always seems to return to two crucial factors: the tradeoff between flexibility and performance, and the tradeoff between vendor lock-in and the inefficiency of committee-governed standards bodies. Is that what this whole long fight has really been about?

Enterprise scale technology is not always necessary. But when it is necessary, when a distributed component architecture is necessary, when you need a Component Transaction Monitor and common server-side component model, does .NET measure up? And if so, is it worth the risk of getting locked in? This is what I still don't know. Critics of Microsoft's MTS technology always return to the issue of vendor lock-in, of the open-ness of EJB as a server-side component model, of the ability of different vendors to implement the technology and compete with each other for performance, features, pricing, etc. If the Sun and Java community weren't as dedicated to sharing the wealth of ideas, of supporting non-profit organizations who want to compete in their CTM market, projects like Geronimo couldn't even exist.

I think that, out of respect for my boundless ignorance, I'll defer any further exposition on this topic until after I've spoken with some more .NET evangelists, specifically the ones who would know about .NET's distributed component architecture capabilities. Also, out of respect for the customers and managers who ultimately must make this decision, I'll just keep looking for the common ground, the higher patterns and the difficult questions, and leave the decision to the people who ought to be making it. Finally, out of respect to the engineers and developers on both sides of the fence, I'm going to try really hard for the remainder of the week to represent the "Java guy" as a fellow developer and not as an outspoken, embittered ideologue.

I will write about this rockin' hotel room, when I get a chance. Hope everyone's having fun out there ;)



TechEd 2004, Day 01

Posted by n_alex on May 23, 2004 at 11:11 PM | Permalink | Comments (3)

I must admit, it was a little odd being a Java guy walking into a room full of .NET User Group Leaders from all around the country. The abundance of caffeine and general rowdiness of the 75 member crowd helped ease tensions somewhat, and while I got my bearings I took careful note of the group, its dynamic and the subject matter they were covering. What I found was equal parts encouraging and intimidating.

The TechEd conference doesn't start until tomorrow, but there were several pre-session groups meeting today. I had the good fortune of being invited to the User Group Leaders Summit, where I met my hosts, traded good-natured jabs with .NET devotees and talked shop with a bunch of hardcore development community volunteer leader-types.

The User Group Summit was headed up by the International .NET Association (INETA). From what I can tell, INETA User Groups are analogous to the Java User Groups. They're an independent organization, and their founder goes to great lengths to maintain a comfortable operating distance from Microsoft's PR machine, while simultaneously being careful not to alienate them. It strikes me that the INETA groups highly value their independence and don't want to come across as a Microsoft vendorfest to their members. They focus on C# development topics and although they thankfully accept Microsoft's sponsorship, they do maintain a good degree of independence. That's a difficult balance to strike.

What really fascinated me about the UG Leaders Summit was that the .NET Group Leaders from around the country knew each other, had their own community structure, and genuinely seemed to enjoy being around each other. These guys were rowdy. They were having a good time. And it wasn't just because we each got a 30 oz bottle of Tequila at the end of the meeting. People were really positive and nice. This was a slight cultural change for me, because all too often I find the Open Source Java community to be extremely high strung and competitive--sometimes to the point of being vicious. I like to think of the dynamic of our community as an extreme form of tough love. I haven't worked a lot with the Java User Group communities from around the country, and I have an inkling that things are a bit different in those circles than they are in the Jakarta / JBoss / TSS / Bile Blog OS Javasphere that used to form my only umbilical link to our community. (For the record, I don't think this "tough love" culture extends into the Java.net community--the folks from Sun's "shining city on the hill" are pretty amiable).

It was just a different vibe--not necessarily better, just different. I can see more of that in the future of the Javasphere. We live in a pressure cooker, but as the language and platform mature and we continue to carve out our niche, gain credibility in the industry and grow as developers, I think we'll see less of the infighting and more of the cooperation typified by last year's OpenEJB / Geronimo alliance and by the general good will surrounding Java.net.

One surprising thing I learned at today's Summit is that in the last 3 years, INETA and Microsoft have built up a 200,000 to 250,000 member developer community, and they're continuing to push forward, doing everything they can to make sure that .NET technologies take off at the local community level. They're hyperactively heading up programs to develop high school and college students, and they recognize the long term importance of bringing fresh blood into the industry. They are investing time, software and significant amounts of money into their evangelism efforts.

Essentially, what INETA and Microsoft are trying to do is outgrok the ASF on community building. And from what I just saw, they're way ahead of the curve. In their words, "we're trying to get it. You can help us REALLY get it." And by "get it" I think they mean to figure out how to have a successful user community in every city and on every major college campus in the world. I'm speculating, but it's hard not to smell ambition this raw.

The secret to their success as an organization, in their words, is that they focus on "the community and individual developers", something which I think the ASF has been rightly and repeatedly criticised on in recent days. As far as these guys are concerned, "the developers ARE the customers." They put a lot of work into developer-building, mentoring, developer guidance, etc.

Are we sunk? Hardly. We've still got a LOT to contribute to the enterprise cookpot. As far as build environments, unit testing tools and the wide spectrum of ASF licensed Open Source enterprise products go, we're still in the game. We've got tools like AOP, Groovy and Maven--industry altering software products that have thus far escaped the .NET community's attention. I see Open Source enterprise projects like the ones sponsored by the ASF and the Codehaus as the most crucial strategic assets we have if we ever want to bring the Java enterprise to the masses.

But it's an uphill battle. Java suffers from a reputation of being too complicated and too expensive, but that reputation is in my opinion exaggerated. For instance, it's possible that the EJB 3.0 spec committees are spending unnecessary time refactoring the EJB APIs. They're doing this in order to make EJBs easier to develop using agile and test-driven techniques. But the root of the problem might actually lie in the architecture of the major EJB containers. Maybe the "heaviness" of EJB containers prevents efficient container-driven testing. I know there are products available right now that address the need for dirt-simple in-container EJB unit testing, and it strikes me that the EJB spec committee could leverage this technology and devote more effort to things like security and authentication. Microsoft's not going to wait around while we get our act together.

In the end, the aggressive competition between different Open Source Java project teams might turn out to be one of our greatest strengths, if we can manage to keep the competition good-natured, and not forget who it is we're really working for. I pity the .NET outsider who tries to break in and compete head-on with the Groovy team, or the AspectJ folks. We'll see what happens.

Tomorrow I'll write more about my UNBELIEVABLE hotel room, and see if I can get any pictures up. :)



What about a Shockwave Community Process?

Posted by n_alex on May 21, 2004 at 12:31 PM | Permalink | Comments (0)

This is pure speculation on my part, but what if Macromedia were to assemble a community-driven process based on the JCP that they could use to extend the Shockwave platform and give companies and individuals around the world a chance to have a voice in the matter?

It strikes me that Macromedia could do the same thing with Shockwave that Sun has done with Java. If they did, I have a feeling that Shockwave would achieve the true universal ubiquity they've been pursuing for so many years. I'm not certain, but it seems that the only thing preventing companies around the world from wholeheartedly embracing the SWF platform as the standard platform, and not just the de facto platform, for developing Rich UIs is a perception about Macromedia holding monopoly control over the platform, a shortage of vendors offering competitively priced tools for working with Flash technologies and the attending lock-in fears and paranoia that naturally follow from that train of thought.

So I'm floating this idea out, just to see what people have to say about it. Suppose the Shockwave platform had more vendors developing tools for it, and suppose tool vendors could be involved in steering the future of the platform (of course Macromedia would still have veto rights for any specification requests, as Sun does with Java), do you think the community wants and could support this sort of arrangement?

When it comes to Rich UIs, nothing even comes close to having the market penetration and feature capabilities of Shockwave media. Building an equivalent open platform from scratch would require a massive movement, and probably a decade to achieve the momentum, mindshare and market penetration that Shockwave currently has--it strikes me as a tremendous waste of time to pursue this goal, when the answer lies right in front of us. The largest challenge would be to bring the major players to the table and get them talking. Is it possible?

It's been done before. And I think it could be done again.



Conference Season

Posted by n_alex on May 21, 2004 at 12:02 PM | Permalink | Comments (4)

Why on earth would I choose TechEd over JavaOne?

Well, I didn't exactly choose TechEd. It chose me. Or, rather, Microsoft did. They've invited me to come to the TechEd conference as their guest and as a community-minded Java evangelist sort of guy. Who could resist generosity like that? I think the Microsoft folks are hoping I'll find something on their side of the fence worth writing home about. And to be honest, I'm sort of hoping the same.

I'm not signing any NDAs while I'm there, and still refuse to install MS Office on my computer. But I am going to hang up my blinders for a week, and devote some serious attention to .NET technologies. If Scott McNealy can extend the olive branch, then I can too.

So, in short, expect some coverage from San Diego. Probably nothing earth-shaking, but you never know. I'll try to keep the topics pertinent to Java vs .NET, architectural styles, interesting patterns, Open Source potenials, integration points, common ground and the like. A few Java.NET fusion topics might give those of you who are going to JavaOne some helpful context.



Open Source Flex alternatives require broad industry support

Posted by n_alex on May 18, 2004 at 12:36 PM | Permalink | Comments (9)

"When a scientist says something is possible, they're probably underestimating how long it will take. But if they say it's impossible, they're probably wrong" --Nobel Prize Winner Richard Smalley.

In this case they're definitely wrong. Four years ago, while working for marchFIRST, I helped build a Flash-XML-Java driven site for building and configuring skinnable rich media blog sites. We built this for Proctor & Gamble's Tremor.com project.

I've not used Flex, specifically because I would like to bring similar products to the Open Source market. The licensing restrictions for the beta versions were a bit draconian, and I'm careful to avoid potential future legal enganglements when intellectual property law and Open Source software is concerned.

At this time, there is no alternative product to Flex or Lazlo that offers a competitive feature set. Such a configurable suite could be assembled with Flash MX and the library of Open Source J2EE and XML technologies available from the Apache Software Foundation & The Codehaus. The problem with running an Open Source project to build a Flash-XML-based UI framework is that very few Open Source developers can afford the Flash MX development suite, and at the moment, I count myself among them. If a framework of this kind is ever to make it to the Open Source marketplace, broad industry support will be required. However much I'd like to personally fund a project to develop this technology, I cannot at this time, and have no desire to go it alone.

Tomcat, Geronimo, Apache, none of these Open Source technologies would exist for us to use if companies like Sun, IBM, HP, Apple, BEA and the ASF weren't willing to cooperatively drive the standards, share ideas and contribute time and energy to providing the necessary development infrastructure. This strategy has proven to be extremely successful and practical.

The reason we don't have Open Source products for developing Shockwave media is not because the shockwave format is top secret. It's not. OpenSWF.org is a good place to start if you're looking for Open Source SWF editors.

But in terms of features, Macromedia has outperformed the competition and achieved a virtual monopoly status in the marketplace with their tool sets. To their credit they did this by delivering better products to the market before their competitors could. But the perception is that now they dictate the standards, can bring their reference implementations to market long before anyone else and in recent years, as one of my readers recently put it, "they've grown haughty".

The world has been content to rest on their laurels while this happened. Now it seems that Macromedia can charge any sum they want for their products, because they're the only game in town. The prices of the MX 2004 product line illustrate this. Back in 1998, a small business could easily afford a handful of licenses for Flash 3. With Macromedia chasing the high end of the market, what are the little guys going to do?

Communities are improved by the presence of strong business, and businesses are improved when they join together into communities. That's what Open Source is all about--it's what separates us from the Free Software crowd. Unfortunately, the talking heads in the technical press usually don't recognize the distinction, and Open Source gets all the bad press that Free Software rightly deserves. If you check out Gluecode's website, you'll see their motto is "Open for business." I've never seen a better phrase to sum up the relationship between Open Source and the marketplace. (Gluecode, by the way, is my pick for "Company most likely to destroy the JBoss Group")

Macromedia's shown us what's possible with the technology, and they've done a fine job addressing the desires of the market. But there's also a gigantic and growing market for affordable alternatives. If we want affordable alternatives to Flex, then we need to generate them. Any successful effort to bring shockwave products to the Open Source market would greatly benefit from Macromedia's leadership and support.

Macromedia is no bogeyman. They've recently broken their MX 2004 suite into two editions, but they still each cost over a thousand dollars. Their older products aren't getting much cheaper, either.

I am going to be at the Microsoft TechEd conference next week in San Diego. Anyone who wants to meet with me there and discuss the possibility of developing Java and XML driven Shockwave technologies for the Open Source market should send me an email. Any help Macromedia can offer will be welcomed with open arms.



Apache Geronimo milestone release

Posted by n_alex on April 28, 2004 at 11:31 AM | Permalink | Comments (4)

I spoke with a couple of Geronimo's developers this morning, and I'm told the first version of the server (with all the pieces in place) is tagged in CVS and will soon be available for binary download. I'm also told the release notes caution users not to bet the farm on it in its early form. This will be a release for hackers, enthusiasts and 3rd party vendors who will be contributing major components and subsystems to it in the coming weeks and months.

I've been keeping up with its development since the project's inception, and it'll be great to finally have a relatively stable version to develop against. I encourage anyone interested in it to visit the project's site in the Apache incubator.



Dear Alex, tell me the future

Posted by n_alex on January 31, 2004 at 02:07 PM | Permalink | Comments (5)

"What, exactly, do you see in the future for Java open source? How long do you think it will last? What do you see, if anything, that will take the place of the Internet? Perhaps a totally wireless Internet?"

"Also, nanotechnology seems to be the big buzzword today, and it seems to promise a lot of possibilities. Where do you see nanotechnology fitting into your map of concentric rings? At first flush, it seems to me is belongs in the fifth ring in the research category, but its application could permeate throughout all rings. Also, how far away are we from actualizing, "Beam me up, Scotty?" (I'm being a bit tongue-in-cheek here. However, how much science fiction have we already see move from imagination into reality?)"

"Regarding the job market, there has been some speculation that the traditional IT job, as we know it today, will cease to exist, and that most IT people will be independent consultants competing for contracts. What do you see actually happening?"

--(name supplied)

Friends of mine have said they won't stop writing code until they've re-implemented all of the core unix services in Java. Others have said that until there is an Open Source (non-GPL) alternative to linux that there will continue to be work for us to do, and that once the nature of the GPL license gets tested in court and the public understands more about what it does, they will want to replace Linux with something they actually own.

Or maybe not. I don't know the future. I do believe the research however,

"that 1 in 10 U.S. technology jobs will go overseas by the end of 2004, according to Gartner. In the next 15 years, more than 3 million U.S. white-collar jobs, representing $136 billion in wages, will depart to places like India, with the IT industry leading the migration, according to Forrester Research. . . . stories about American programmers collecting unemployment, declaring bankruptcy, even contemplating suicide - because they can't compete with people willing to work for one-sixth of their wages."

If Open Source helps people channel their desire to feel useful and to do challenging and beautiful work until either the economy picks up or they pick up their lives, then I'll do everything I can to help them learn about it and to encourage them to participate in it. The American programmer is my fellow "Forgotten Man". And by Man I also mean Woman. I know too many nice and talented ladies in the field who deserve better just as much as the men.

So, you want to know what "exactly" I see in the future. Sorry. I don't see the future--but I do have a poolside view of the present. I see books on Geronimo, Drools, Maven and Groovy coming down the pipe. I see people pushing the bounds of the J2EE platform. I see discussions about replacing servlet technologies. I see Tool designers having their day in the sun. I see a flurry of spontaneous activity. Like insects moving around to warm their hives in the winter, Open Source--as science for its own sake, for the fun of it--has the potential to keep the American programmers warm enough to survive the winter we're entering.

I certainly see no reason for intelligent men and women to be contemplating suicide over the loss of a cube. There's just plain more to life than bits and chips.

What I don't see is a US bull market in technology in the near future. For all I know we could be looking at Dow 4700 by June and the Nasdaq trading at 18 times earnings. I see that happening. I just don't *know*. I'm not in this field for the job security. I'm in it because I believe there is something big at stake in it. If I wanted job security I would have studied mortuary science. I try not to get too hung up on implementation details (.NET, J2EE, EJB) because those things come and go. I'm more concerned with the overall principles (making information more accessible and useful) and applications (building a network of like-minded people to do business with).

There will be no beamings of Scotties unless someone figures out a way to get around the Heisenberg principle. Heisenberg applies to markets, too. As soon as you think you know how the market works, your new understanding of it alters it until your knowledge no longer applies.

But, on the science-driving front, carbon nanotubes can be used to make Casimir plates, and there is a potential source of unbounded energy waiting to be tapped--all around us. Nanotech has incredible potential for medicinal uses as well. So nanotechnology will likely *not* be a fad. It's just something we the "unwashed masses" don't understand very well yet .

I think the internet will continue growing. Demand for high-speed fiber optics will replace our copper networks It'll take decades to realize that, but it'll happen. I also think that spontaneously evolving P2P wireless networks will probably grow to address our need for mobility until a less expensive way to make and lay fiber networks becomes available.

How far this all applies to you and me here in Minneapolis remains to be seen. We have the University as a gateway into nanotech. Perhaps you could look into a full time job there. For the rest of it, I'm no prophet. Just a cold-eyed optimist.



Open Source UI framework comparable to Lazlo

Posted by n_alex on December 10, 2003 at 09:56 AM | Permalink | Comments (6)

Now, before I go on, I want to address a very strong prejudice that I've noticed in my dealings with Open Source developers. It's the old familiar sentiment that if it isn't built in Java, it ain't worth using.

That might be true for a lot of people, and I have a lot of respect for that sentiment--it's an important one for our community. We're doing more than writing software in a certain language here. What we're doing is contributing to the development of a J2EE development platform. We're building tools for each other to use. If you've got the right tools, all the jobs in the world open up for you. For instance. There are precious minerals deep in the earth waiting to be harvested. These minerals are incredibly valuable and useful in industry. But if you're up on the surface walking around with only a stone axe and a loincloth you'll never be able to do that job. Another irony about tools is that sometimes you have to acquire and master the tools before you can even learn that a job exists. The creative reapplication of tools toward new industrial pursuits is what opens up entire new markets.

Another example. When I was seven years old, nobody in the world could make a living as a multimedia internet programmer. There were no Flash designers, because there was no Flash. When I was 21, that had all changed. I knew a lot of people who were making big dollars just to play around with Flash. One of the reasons for this, perhaps the biggest reason, is that by the time I was 21, the tools had improved.

That said, let's try to keep our input streams open to the possibility that Flash is still a very useful and cool piece of software (especially for those who know how to use it), and not relegate it to the status of "web designer's toy". I'll be the first to admit that the potentials of Flash have been largely squandered on sick cartoons and the infamous "Flashturbation" sites that every budding C-Corp and their brother launched in 1999 (you know--the ones with the contrived techno scores, who desperately wanted to be 2advanced?)

Well, for a while I made a living chasing that ghost, then gave it up for a while, returned to school, read some John Milton, some Thomas Paine and some Robert LeFevre, and now I'm back at it, looking for ways to develop new and better tools. This time, however, to retain my sanity, I'm doing it without a host company (for-profit or otherwise). And this time it has proven to be a lot more fun.

So here are some of my ideas. I want to build a manageable, rules-based J2EE development framework that enables the liquid UI capabilities of Flash on the presentation side. I want this thing to stream dyanically generated XML content to the client-side application and to completely automate the persistance layer. On the client side, I want to build an abstract UI engine in which users can plug in Swiff graphics libraries. Ideally, the UI engine would be able to digest swiff files and use them to skin the entire application.

If this software is built correctly, it should allow Flash developers to design skins which overlay UI components. They wouldn't have to deal with data maintenence at all--just building innovative graphics libraries. The app should easily plug into J2EE persistence. A lot of the contrived Flash apps of the 90s were IMNSHO a result of the nigh impossibility of reaching the persistence layer without having to fork over 35,000 USD for Generator.

The tools were the problem then, and the tools are the problem now. FlashMX costs a pretty nickel, and there seems to be a shortage of Open Source Java middleware developers in the world who know Flash like the back of their hand and have experience developing abstract application frameworks. To prove that point, I'm sounding out. If there are any more of you guys out there, for God's sake, drop me a line. We'll throw a party and write some new Flash tools, or maybe Macromedia will shoot us with the money gun and comp us FlashMX development suites in return for the fruits of our Open Source loins. In the meantime, 'll fork over the 75 bucks to launch a little non-profit company so we can get started right away.

Barring that, I'd settle for SVG, but I'm not convinced yet that it's worth its spurs.



Why I won't move my projects to Apache

Posted by n_alex on November 22, 2003 at 11:05 AM | Permalink | Comments (2)

Noel,

Thanks for your concern about this. I license software under the AFL so I can avoid legal entanglements relating to collective ownership of my property and conflicts of control over that property which derive from collective ownership, and also to grant greater rewards and incentives to future developers and users. Future versions of the ASL might correct this problem and give me incentive to relicense and get more involved with the ASF. If so, that's great. But it's only one factor.

I'm also trying to avoid political entanglements which threaten the development of software and (more importantly) the development of self-motivated, autonomous individual developers. What percentage of people get involved in Open Source because they want to improve their talents, their experience, their knowledge, so they can provide a better life for themselves and maybe for their families? Probably most of them. Possibly all of them.

I think the need to develop a strong community can work to the detriment of individual development. There are hundreds of people on this list who are hungry to contribute and develop their skills through the improvement of the community but who simply don't have the experience or opportunity to function as autonomous individuals. The current structure of the ASF simply does not scale to meet the demand generated by this project.

So the community has a couple of options, maybe more. They can either add more layers of management and tell people exactly what they should do in order to include more people in development and grow the active community (I wouldn't advise this), or they can develop some sort of mentoring or sponsoring program in which candidates are picked out of the list by one of the committers and sponsored for a period of time in order to train them about the workings of the technology and the community. The apprentices who show the most initiative and mastery over the technology and are socially able to perform as full members of the community could then graduate to committer status and can choose their own apprentice (or even two or three apprentices if they think they can handle it). This master/apprentice system has been used with great success for thousands of years. It contributes to the development of a strong community by creating the social incentives to lift up newcomers and to recognize talent before it gets frustrated and leaves.

I don't know, Noel. I have a strong sense that what I'm doing for this project is good for the people around here and good for me. I don't need you guys breathing down my neck all the time with rules and politics. I'm here to write code and have fun, and with comments like those Roy made last night and which Greg has made from time to time, I don't feel I can do much of either unless I'm willing to go it alone. I consider this the failure of the ASF and wish that its members would do something to detoxify the environment. Roys reasons might have been genuine but his conduct was intolerable.

I can't speak for anyone else around here, but I want to produce good software more than I need the approval of the ASF, and I'm not afraid to go it alone if it means I can work in peace.

--
N.

----- Original Message ----- 
From: "Noel J. Bergman" 
To: 
Sent: Friday, November 21, 2003 3:45 PM
Subject: RE: new console-swing team


> Matt Kurjanowicz wrote:
> 
> > Ryan Sonnek wrote:
> > > Could this new module be worked upon at the sourceforge project
> > > (service-cache) alongside the console-web?  This would allow non-ASF
> > > commiters to progress on it, and submit patches and updates to the
> > > geronimo project.
> 
> > I'm already a developer at service-cache, so we can host it there.  The
> only
> > caveat is that there everything is licensed as the Academic Free License
> (v.
> > 2.0).  I'd rather stick with that then use the ASL v.1.1.
> 
> Is there a reason why http://sourceforge.net/projects/service-cache/ is not
> hosted here?  If there is a need to bring in new component projects and new
> committers, that should be addressed.  You want to grow a larger and more
> diverse active Geronimo committer community.
> 
> --- Noel



Government (as it would be expressed in Java)

Posted by n_alex on November 06, 2003 at 03:54 PM | Permalink | Comments (2)

package nature.law.society.human;

/**
 * Obviously, the more complex this class becomes,
 * the less efficient it becomes, so I intentionally 
 * left it simple, but you can feel free to extend it if 
 * you wish.  Be creative!
 *
 * @author N. Alex Rupp
 */
public class Government extends Monopoly {

    public Justice dispenseRetributiveJustice(
        Price monopolisticPrice) {

        if(monopolisticPrice.isPaid()) {
            // the poll checking is totally optional
            if(Beaurocrat.checkPolls().equals("favorable")) {
                return CoerciveAuthority.
                    exactRetributiveJustice();
            }
        } 
        return null;  // TODO: someone log this please
    }
}


Author Praises the Die-Hard Spirit of Silicon Valley Culture in Radio Broadcast

Posted by n_alex on October 25, 2003 at 01:49 PM | Permalink | Comments (2)

(the following is an excerpt of Greider's radio broadcast)

"I was on the west coast. I can't tell you how many good conversations I've had with people, many of them software engineers who were working in Silicon Valley. Two or three years ago they thought they were millionaires, cause they had a lot of stock options and the stock prices of their company was still going through the roof."

"And they're not destitute now--they got a buyout or something like that. They're not living in poverty. But they got whacked, big time. And instead of bitterness, they're mostly in a reflective frame of mind. Now maybe that's just the people who come out to talk with me, but I was pretty impressed with how many of them are sort of noodling through what happened, and trying to figure out what's wrong in the system. And then thinking about--at least, in theory--it could be fixed."

"And maybe that's just because they're engineers, you know, engineers believe they can solve problems and these people are working on it. Men and women." (emphasis mine)

"I would bet on this country as long as that spirit is still there."

Listen to the whole interview here: Real Audio / MP3 / more info about broadcast



The Death of a Titan

Posted by n_alex on October 25, 2003 at 12:17 PM | Permalink | Comments (3)

On January 6th, 2001 I woke up and went to work as normal. It was a cold Friday and I was looking forward to working on a streaming MP3 jukebox server I'd been building with Flash and Java. I had no idea what was going to happen that day.

I worked for a company called marchFIRST, which had only months before boasted a roster of 10,000 employees around the world. I remember the early days very well. I was hired by an enthusiastic creative director and flown to Chicago for a week-long orientation seminar. When I returned I was brought to the new offices, which crowned the top three floors of a new highrisein a nearby suburb of Minneapolis.

The place was magnificent. We had hexagonal "cubes" made from brushed steel with sheer white cloth walls between them to facilitate communication. I was a part of a creative team with 30 employees. 30 brilliant designers, a handful of whom were also skilled Presentation or client-side developers. I was among those rare crossbreeds who could travel between the creative group and the Java developer team downstairs, which also boasted about 30 developer seats.

Supporting the creative and development teams were a contingent of information architects, writers, producers, HR personnel, strategy, and marketing specialists. All of the different groups held each other up. The Minneapolis office had about 140 people altogether.

I remember the energy of that place. It was immense--impossible to explain if you were not there. We were the absolute cream of the international crop when it came to delivering corporate services. But trouble had set in very early in my tenure. The company had cooked the Q2 books in 2000, relying on "accrual" accounting methods to keep up their price-to-book ratios. A lot of the "profit" they put on the balance sheet was outstanding, and the Dot-commers who made up our client base would never be able to pay their bills. The Minneapolis office was working on Tremor.com for Procter & Gamble, and were raking in money hand-over-fist, so we thought we were fine.

But if you chop off enough of the beast's heads, the body is certain to fall with it.

In Q3 marchFIRST fell short of analyst's expectations and worse. It came to light that they'd mislead the public in Q2 to the tune of 50 million dollars (or something incredible like that) and dug a deeper hole in Q3. The "C-Level" people in the company had dumped their stock and resigned by the time the news came out, but I'd only been there a few weeks and didn't have any stocks invested in the company (and still didn't know up from down when it came to finance). The stock price plummeted from $30.00 to about $0.10 over the course of a couple of weeks.

And everything was quiet in the office for a couple of months.

That Friday morning when I went to work, my managers were in a meeting, and when they came back around 11 or so, they looked stricken. There was a group of about 20 people quietly talking over by their desks. I went over and learned that one of my managers (the better of the two, in my mind) had been terminated and was asked to pack up her desk and leave immediately. I was shocked.

Then I learned they were going to do the same to about half of us that day. My initial shock turned to silent terror. Nobody said anything. We all returned to our desks and tried to think about anything other than who was next.

A little while later, the telephones at our desks began to ring. One at a time people answered their phones in a quiet voice, stood up and marched in silence to a room somewhere on the other side of the office. About ten minutes later they would return, white-faced, and begin to pack their belongings.

I can't do justice to the nerve-racking terror of that day. Whenever anyone's phone rang, you thought it was yours, because sound carried so well through the office. Grown men and women were choking down the fear, but everyone was alone that day. We had been profitable, we'd pulled long hours and burned the midnight oil to make this company successful. How could they disassemble a team of this caliber? I couldn't believe it.

Eventually my phone rang. I took my licks, gratiously accepted two months of severence pay and got ready for the Freefall. I've been consulting for many years, and returning between gigs to the Freefall is the nature of the business. I could go back to being a Merc, I told myself. I turned in my equipment and left marchFIRST.

But what happened to me? I didn't return to the IT business that spring. I didn't go back to the freelance life or become an IT mercenary the way I'd once been. I had eaten the team rhetoric and swallowed the hook. And when they yanked the hook out and tossed me back into the pond, I took it much harder than I thought I would.

I stopped looking for jobs and decided to go back to the University in the summer. I became a hardcore introvert and stayed up for days reading Nietzsche, teaching myself J2EE, listening to international politics on the BBC. Needless to say, it was a long, dark spring. And it didn't get better in the summer, when I moved in with some friends. Or in the autumn, when I couldn't afford books for my classes, or anything but the most absolute meager diet. I didn't accept another job until December of that year, by which time I'd burned off most of the anger, frustration and bitterness I felt for the entire IT industry and all of the destructive greed that had nearly eaten me alive.

I started working at an IT helpline for the U of MN at a very meager hourly rate, and came home from work each day feeling that I'd genuinely helped the community, given something substantial back. All day long, all I did was help people fix their computers, or get their email or some other trivial thing. But it seemed like magic to them. It's strange, but I learned that giving something simple to real people, where I could clearly see the results each day gave me more of a sense of accomplishment than I'd ever felt bringing home the $4,500.00 paychecks.

That's about the time I quit my studies of computer science and begun studying literature and literary theory in school. You think Josh Bloch knows about languages? Try reading Jacques Derrida sometime. You want to learn about architecting or codifying a concept in an information system? Deconstructive analysis can teach you more about systems architecture than the Java Language Specification, or any book on java certification can. Ever seen that "code poet" shirt? There's more truth in that phrase than in most books on programming.

All the technical training in the world hadn't prepared me for the day my company and my ideals about the industry came crashing down around me. I had to realize there's more at stake than what first appears. Our industry and culture is one of engineers, we are those who build. But we don't just build software systems, because you can't live in your software. My friend Dain Sundstrom told me earlier this year while I was helping him move out of his house that in his heart, he's "really just a carpenter." My good friend Russel Colliton takes that a step further--he actually has a woodshop in his basement. And the time is fast approaching when a new wave is going to hit our US economy and take our livelihoods with it out to sea. Now, as carpenters, we either have to build an ark, or we'll have to rebuild our lives when the storm breaks.

And that day is coming. It's going to make that January seem like this June. Sound fatalistic? It is, but I'm optimistic because it can be fixed.

Like any complex system, our economy has bugs. Huge bugs. Critical, terminal bugs. Our monetary policy is trending toward a Weimar Republic-style infinite loop. You could call it a "Cash Overflow Error". There are also bugs in our heads, particularly about our notion of the "good life". But the general character of our community is strong and smart enough to hack this system, figure out its flaws and work to refactor it.

There's more to life than bits and chips, and coming to terms with that helped me flesh out my understanding of my place in this society. Being in the belly of that titan when it fell back to the earth seemed like the end of the world, but there is more meaning waiting out there if the same should ever happen to you.

A final quick note--I don't recommend Nietzsche as a post-collapse starting point in the search for meaning, but Walter Koffman's preface in the Viking portable edition is a priceless introduction to western philosophy.





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