RoboGeek

RoboGeek's (David Herron) Weblog: co-developer of Robot and several other things related to Java testing.


« Previous page | Main | Next page »
20051114 Monday November 14, 2005

The new systems and "eco-responsibility" Okay, we got this new buzzword to attach to computer systems:  eco responsibility.

Hurm, it may sound a little strange to attach that word to something meant to stay running 24/7 regardless of whether it's doing anything useful or not.  Leaving a server running full time is kind of like leaving a lightbulb on all day while you're at work.  That electricity got wasted, you just wasted some money, and the fossil fuel burned to provide that electricity still poisined the air even though it was pure waste.

On the other hand, if you're going to have a machine turned on and doing something it is ecologically responsible to study how to optimize the energy use of that machine.

And, it's not just ecologically responsible, but the power savings will contribute to the corporate bottom line in lower costs.

And just why is this important?  Let me spin your mind back a few years -- California, late 90's, the .COM is booming before the .BUST.  But one of the strange things happening is the rolling blackout phenomenon.  The newspapers are full of stories about the power situation.  It wasn't until later that we learned that GW Bush's buddies at Enron were ripping off California. 

What instead the newspaper discussed was how with the rise of "server farms" the power needs density metrics the electric power industry had lived by were going out the window.  A server farm is a dense packing of servers into a building, with air conditioning out the wazoo to keep it all from melting down.  The power needs of a server farm tended to equal the needs of small towns, in just one building.  THIS, the newspapers claimed, was the source of the blackouts, the rapid rise in power demands.

Clearly the hotter each individual computer runs, the worse the problem is.  Each hot computer heats the room, meaning more air conditioning, and more air conditioning means more electricity required for cooling.  It doesn't take an air conditioning specialist to understand that.

On the other hand if the servers run cool, not as much air conditioning is needed, meaning less power than the hot computers.  That to me, as a part-time environmentalist, is the gold of the Niagra announcement.  That the chip has all those threads and can so gracefully interleave thread execution is great and I'm sure will mean for a huge jump in system performance.  But to also do so with lower direct power consumption, as well as lower indirect power consumption (air conditioning) is the icing on the cake.

See, the fossil fuels that get burned today to create the power we use - that stuff isn't going to be replaced any time soon.  When the fossil fuels run out "we", the modern societies, had better have developed alternative energy technologies that makes sense (and, no, nuke power just doesn't make sense).  If we don't do so, well, let me remind you of the Mad Max movies. 

In fact it appears the world is a lot closer to the oil peak, and perhaps the natural gas peak, than the world's people understand.  I think there's a lot of denial going on, with the SUV problem being a symptom of that denial, and that stupid illegal war in Iraq being another symptom.  (Not to mention the threat to invade Syria and/or Iran).  In denial, "we" the modern societies would continue to wastefully assume the fossil fuel power industries can supply us with power forever, and continue to stupidly refuse to do anything about it.  Witness our idiot President and the oil-laden National Energy Policy.

I for one am glad to work for a company that wants to do something positive about this issue.

There's some web pages to help you understand what the official line on this is.  The official line is obviously not going to be quite as rabid as I am on this issue.
(2005-11-14 08:43:23.0) Permalink Comments [1]

20051101 Tuesday November 01, 2005

New laptop, new OS, part 2 Last week I posted that I've received a new laptop, and am searching for the desired OS.  I had some good feedback, mostly leaning to ubuntu.  I did try installing solaris10 but the boot CDROM failed to get past the white screen so I gave up on that momentarily.  As a good Sun employee I really want to try solaris 10 so I can see what all the hoopla is about.  But for the moment I'm using ubuntu.

This is a nicely integrated Linux based on the Debian work.  I've never used a Debian system, but having now looked it over I understand why people rave about it.  Ubuntu is pretty nicely integrated and I'm sure a lot of that has to do with the debian system, as I have an appreciation for the debian packaging system.

A somewhat minor flaw I've seen early is the issue of configuring proxies.  I'm inside Sun so I have to go through a proxy.  There's a proxy setting for the Synaptic package manager, that seems to be separate from the system wide network proxy setting.  And Firefox has its own proxy setting, as does Java Web Start.  So it seems that every time I turn around I'm going to be setting a different proxy preference.

Oh -- and I said Java.  Installing Java (Sun's JDK 1.5.0_xx) was a minor hurdle.  On the Ubuntu Wiki (which I can't seem to get to right now) there's a page giving instructions.  The instructions worked well, except I didn't have to edit the script the way they suggest.  Basically one has to run a script that repackages the RPM we distribute, converting it to a DEB package, and from there the debian package manager (dpkg) works.

The only problem with that is it installs Java in  /usr/lib/j2sdk1.5-sun/ ... er ... Starting in 1.5 (er.. Java 5) we made a declaration of the standard location for Java to be installed.  On Linux that's in /usr/java.  The /usr/bin/java program is fixed to recognize that there can be several versions of Java installed in /usr/java, and there are command line options letting you select one.

Unfortunately the /usr/bin/java in ubuntu doesn't recognize this.

I'll have to explore this and see how to get the 1.5 I've installed to be recognized as the system-wide Java.  Normally I'd just edit /etc/rc or some such script to force the situation, but with the control debian puts on the system files that might not be a good idea.  Hopefully there's some hook already in place.

The last interesting thing I did was to install jedit.  The jedit folk provide instructions for setting up debian so that apt-get works to install the program.  That worked fine (once I set a proxy server in yet another program) and it installed fine.  But it crashed on startup.  Hmm... Turns out the /usr/bin/jedit script that got installed had a hardcoded reference to a JRE 1.3 installation.  So I edited that script to refer to the 1.5 that was just installed, and it's working fine.  The jedit installation even updated the system menu with the newly installed application.  Cool.

UPDATE: On the Ubuntu Wiki "RestrictedFormats" page they say how to switch the /usr/bin/java program so it uses the Sun JDK.
(2005-11-01 12:39:51.0) Permalink Comments [3]

20051027 Thursday October 27, 2005

New laptop, new OS choice I have a (work provided) new laptop to set up and am looking at OS choices.  It's not exactly a "new" laptop, but new to me, because my manager left the company and I'm inheriting his old laptop.  It looks like it'll be better than the laptop I'm using now, inherited from a different former co-worker who left the company.

My first consideration is, how to minimize the use of Windows.  While I need to occasionally use Windows, it's not an every day need and I'd interested in avoiding it like the plague.  Unfortunately that means hassles of getting hardware to work well with a non-Windows OS.  This isn't like the powerbook I have at home where Apple has the convenience of controlling both software and hardware.

For example the laptop I have right now is pretty nice -- but the WiFi support is from whatever Centrino is.  I gather it's a software driven form of WiFi and on Windows the WiFi is driven from a software driver, but on Linux you've got a tremendous hassle.  I started to work my way through that hassle but fortunately the new laptop will save me from it.  However, this hassle is remniscient of my experience with Linux.

I've used Linux off and on since 1993 (slackware v0.9.54 or some such).  I had to create my own set of boot floppies, and then once it was installed I had to locate PCMCIA/ethernet support and a matching PCMCIA ethernet card, etc.  As a professional geek I was able to do the deed.  But over the years the rigamarole hasn't changed.

My experience with customizing Linux is that I regularly end up searching for documents and finding HOWTO documents that are written for a different Linux version than the one I have in hand.  And it's not always the HOWTO, but sometimes the documentation delivered in the distribution is often written for some different version of Linux than the one its installed on.  And there's all these little niggling differences between one Linux distribution and another.  The niggling differences then get in the way of doing a customization, because the instructions you get don't match the system you have.

With the WiFi on this Centrino laptop ... I found the instructions for the iw2200 driver, but they were for a different Linux version than the one I have in hand (JDS3/Linux).  And for that matter I couldn't determine whether I needed the iw2100 or iw2200 drivers.  And it wasn't clear just what system mods were needed.  And it's not just installing the iw* driver, but also the underlying wifi support and some other stuff that I don't remember right now.  Which meant getting into a twisty set of tunnels almost all alike, and eventually the pirate jumped out of the inky black shadows, yelled BOO, and I ran away screaming and the laptop doesn't have wifi support activated.

Okay, maybe I spent too much time playing Adventure in the 1970's.

This time I'm thinking to avoid that whole mess ... and go with Solaris 10.  At least there's one vendor for Solaris10, and great consistency.

First thing ... I went to the Open Solaris website (http://opensolaris.org/) and downloaded the stuff there.  But the flavor of the Open Solaris site is geared to developers who want to muck with modifying/changing Solaris, and I just want to be a user.  Hmmm..  So for user documentation they suggest going to docs.sun.com.

First thing is ... install guide (http://docs.sun.com/app/docs/coll/1236.1), and hardware compatibility list (http://www.sun.com/bigadmin/hcl/).

The install guide is straightforward enough.  Though I haven't yet answered a concern in my mind - which is - will the installation ignore the existing Windows partition that I'll leave there?

The hardware compatibility list is interesting ... first is the URL says "bigadmin", and heck this is for a laptop so why should I be heading to a "big admin" context?  Next is, just what is meant by "JDS 3" on that page?  JDS applies to both Solaris and Linux versions, since JDS is supposely just the GUI/desktop configuration.  It would help if it said "JDS3/Linux" to be clear.


(2005-10-27 12:18:31.0) Permalink Comments [9]

20050809 Tuesday August 09, 2005

arsTechnica on AJAX You learn something new every day.  I thought the name Ajax came from the household cleanser, and hadn't thought about it any further than that.  Silly me.  Turns out Ajax was one of the heros in the Iliad.

AJAX: the cross-platform successor to Java (8/8/2005 5:20:23 PM, by Charles Jade)

The AJAX we're concerned with today has a capitalized name because it is an acronym: Asynchronous JavaScript and XML

I've written about it before, and coincidentally I'm writing this using an AJAX style editor embedded in a web page.  What AJAX really is often doesn't involve XML, but is the successor to the Dynamic HTML hype which happened a few years ago.

It's a way of marrying javascript with HTML elements on a web page to make interactive web pages.  Java APPLET's were supposed to give us that, and they still can do so, especially now that todays Java is much better.  However there are many interesting examples of AJAX using web sites such as Google Maps, Google Suggest, Flickr, Netflix, etc.

The arsTechnica article has a strange dual message.  On the one hand they make this sound like midnight hackers on a quest to kill Microsoft's dominance.  But the article also quotes Microsoft saying they invented this technology, and they're planning to ratchet it up a notch with ATLAS.

It's Microsoft's usual game to spin marketing vaporware isn't it?  Namely, before the release of some technology, they'll spend a couple years spinning and hyping it to the moon.  But usually when the technology reaches the market they've dropped some features, it's nowhere like the vaporhypeware that was promised, etc.

A concern lodged itself in my head reading the arsTechnica article, and that's what drove me to the keyboard to write this.

The life of javascript authors is already difficult enough with cross browser incompatibilities.  Javascript isn't just javascript, it's wildly incompatible between versions and browsers and implementations.  This leads to headaches trying to get a javascript applet working across the browsers.

So, I ask you, is it going to get any better when Microsoft releases ATLAS?

Microsoft's track record is one of leveraging proprietary features to gain advantage and split the market.  By marketing a browser that speaks ATLAS, we can expect web application authors that target ATLAS to end up forgoing compatibility with other browsers.  That's Microsoft's history, and we don't see anything in their actions to suggest they'll do otherwise in the future.

I can't help but compare that situation with what we offer with Java.  We, the Java team at Sun, bend over backwards to accomodate cross platform compatibility.  We go to great lengths to create compatibility with every Java implementation, even those coming from companies that compete with Sun.

(2005-08-09 08:42:12.0) Permalink Comments [0]

20050726 Tuesday July 26, 2005

Choices and lack of choice

Here's some interesting food for thought:  Consumerism and choice and lack of choice

While that article focuses on consumer choices ... e.g. drinks and snacks at the gas station ... it has a larger context to it that can apply here in the computer industry.

Suppose you want to buy a computer.  You want to surf the net, read email, do your taxes every year, etc.  You go to the store and all the computers run an operating system made by a specific company.  And it's kinda necessary to buy, along with that computer, some anti-viral software because there's a rampant problem with invasive nasty software infesting computers that run that operating system.  What do you do?

Suppose you want to write a computer program.  You need to lay out instructions in some computer programming language.  You go to the store or school to find instruction, and all the classes or books are for languages controlled and created by one company.  What do you do?

Well, all I can say is fortunately todays computer market isn't quite that way.  But in truth it's not far from it.

What good is freedom of choice if the range of possible choices are taken away from us by others?

In the computer industry ... if that certain software company (you know who) were truly the only provider of operating systems, then what would our collective lives be like.  Think they (you know who) don't care about fixing the security problems on their OS today?  Wait until they control everything!  I think that what's driven them to begin seriously addressing the problems in their (you know who) operating system is due to the growing competition, and the fact that their market share (e.g. in web browsers) is beginning to slip.  That shows the Mozilla, OS X, Linux, etc camps are making headway and bringing positive change to the world.

Choice, true freedom of choice, it's very important.

(2005-07-26 12:22:36.0) Permalink Comments [0]

20050624 Friday June 24, 2005

AJAX and Applets This AJAX phenomenon is interesting, but I'm seeing a few warts as I look at the details.

First, the AJAX phenomenon offers the same promise of the Java APPLET's from 10 years ago.  Namely, in a browser session, you can easily start up a useful application inside a web page.  This promises to make deploying applications as easy as telling someone to visit a web page.

Sitting in front of me is Firefox, and I am typing into a JRoller session.  Editing this posting is done with an AJAX style editor that mimics a typical simple wordprocessor (think of Word Pad that came with Windows 95).  It's nicer than editing the raw HTML, and I can easily switch to the raw HTML by clicking the "ViewSource" button below.

But, when I do, I see some really bad HTML.  Instead of <P> markers around the paragraphs, it's using "<BR>" tags to create illusory paragraphs.  Bleah.

Earlier I was copying in some URL's and was astonished that CTRL-RIGHT and CTRL-LEFT would move the cursor for the whole length of the URL.  On most text editors, CTRL-RIGHT and CTRL-LEFT move you word-by-word through each segment of the URL, but in this case you're moved past the whole URL.  Fortunately I'm flexible about editor behavior, but it's wildly different from all other editors.

In general it appears that with AJAX you have an improvement over old-style user interface on web pages, but it's still not up to snuff in terms of a full rich client user interface.

The "Rich Client" concept is what you get when using any typical GUI application such as Dream Weaver, Money Dance, Quicken, Star Office etc.  You get responsive components, that do a great job of behaving correctly as you interact with them.

With AJAX the components are responsive enough, but I'm finding they don't behave quite right in many situations.

Therefore at the current juncture it appears AJAX isn't good enough to replace all GUI applications - but it's good enough for certain situations.  It appears that over time AJAX applications will get better.

UPDATE: I forgot to put in the main thought/example I had.

Consider how web sites are built.  I've written a web site that purports to tell people how to write web sites, so this is a topic I think about a bit.

In the past we had three choices: 

  1. Raw HTML using an editor akin to NOTEPAD or Emacs.
  2. WYSIWYG editor such as Dreamweaver or Go Live.
  3. Use "templates" (prebuilt website skeletons) either in a WYSIWYG editor, or through some kind of online build-a-website-system such as Geocities.
Of those I've preferred the WYSIWYG approach, and have used both Dream Weaver and Go Live (preferring Go Live).

However, the blogging experiences have shown me a fourth approach:  Content Management Systems allow you to edit a web site from the convenience of your web browser.

Conceptually it's a lot more fun and straightforward to build a web site through the web browser.  Conceptually it's clumsy to build websites in a separate application, and treat the web browser as just a viewer.  I'm beginning to get the value that Sir Berners-Lee placed on a read-write web that was in his original vision, and in the first web browser that he implemented.

Lately I've been spending time both with Go Live and with these content management systems (JRoller here at blogs.sun.com, and on my own sites I've played with Word Press, Drupal, Blojsom, and a slew of other CMS's on the way to settling down with Drupal).  There's a tradeoff between a rich user interface experience and complete functionality, such as I get with Go Live, and the immediacy of the content management systems.

With the CMS's I can edit my web sites anywhere I can drag up a web browser.  With the Go Live approach, before I can edit a web site, I first have to be at my computer and second have to launch a separate application.

With Go Live I have complete GUI'ified control over the look of the site.  If I place a link, I can control the attributes of that link really well, and ditto for any other page element.  Further Go Live has decent CSS support so I can do strong styling.

With the CMS's the out-of-the-box experience is a Text Area into which you type raw HTML.  How 80's!  Bleah.  But, most of them let you plug in an AJAX editor such as the FCKEditor.  Those are a little better, at least it's semi-WYSIWYG, but you don't have anywhere near the level of control.

With Go Live you have to learn to use the templating facility in order to not get lost creating the navigation system.  With a CMS the CMS builds the navigation system for you.  But the CMS built navigation system probably isn't what you want, but is probably "good enough".

In other words - there's a wide range of tradeoff's.  One of them is with GUI quality - with Go Live winning hands down.  But Go Live loses to overall ease of use, as building the web site through the web browser is a lot more immediate than is the WYSIWYG website editor approach.

Probably the frenzied growth of blogging is testament to this observation.
(2005-06-24 12:29:41.0) Permalink Comments [21]

Re: What Developers Want So here's a fetching question.  What do developers really want?  We face death marches inflicted upon us by management, we face strange challenges unlike developing other kinds of products ... so what is it that would make us truly effective?

One thing to consider is that the real solution is inside us.  Namely, our wisdom and clarity.  For example, I've sometimes spent time spinning my wheels trying a zillion ways to figure out something that ended up to be obvious.  I'm sure other developers have done the same from time to time.  The solution there is to strive for clarity of self, recognizing our doubts, the power of uncertainty, and navigating through all that.

But, that's not what the above-linked article is talking about.  Instead it's talking about external solutions to the question "what do developers want".  e.g. better tools and whatnot.

1. Ease of Use and Short Learning Curves: Yeah, that would be nice.  I spent most of last year digging through the Mozilla source tree in order to do something, and that was one of the steepest learning curves I ever had.

But I think his example is flawed.  I can think of a dozen different open source tools which have inconsistent user interfaces and are hard to learn.  Actually, in this case we have to use the term "development API quality" rather than "user interface" because the "user" we are talking about in this case are developers writing software.  And we're talking about what it is they need to be more successful.

In any case, he talked about PHP and MySQL or Apache's mod_* architecture.  erm... I wonder what he's smoking.

PHP: Well, never have I seen a language that's more inconsistent.  Over and over you have similar functionality expressed through different functions with varying calling syntax.  Why are there one set of functions for using MySQL from PHP, another for using Postgres from PHP, etc?  But, let's look at regex functions:

Granted, the online manual with its ability for users to make comments is really nice.  BUT, the point is that the language itself is inconsistent.

MySQL: I don't know as much about it to gauge whether it has inconsistency or not.  One thing is that it's SQL varies somewhat from other databases SQL, but I've heard that's more the nature of SQL than a fault of any one database.

Apache mod_*: While it's simple in concept, and maybe simple in execution, the apache web site leaves some to be desired as to its clarity.  Maybe the online docs would be improved if the users could directly comment on them?  Also, the mod_rewrite documentation is a brick wall in terms of learning curve, so far as I'm concerned.

On the flip side, let me offer the Java Runtime API.  This is commercially developed by people who care about consistency and usability in API's.  Yeah, there's some warts - most of which are historical baggage that we're having to carry along as we go forward.

I don't buy that open source automatically means consistent and usable and short learning curve.

One need only look at the mess of different Linux distributions, all with their own peculiar ideas on how things should be done.  They want to say that is a model of consistency???!?  And, just how is it useful to have a slew of products that are nearly the same??  Have you forgotten the lesson of the 80's in that all the Unix vendors were so busy fighting each other trying to put together nearly-the-same systems but with maddeningly different details that Microsoft with it's abysmal consistency was able to sail right on past the battle?

2. Library Routines and Application Service Modules for Faster Implementation
:  Well, yeah, function/class libraries do speed up development.  He uses the "qsort" example, and I haven't had to write qsort in 20 years.  That's because a perfectly adequate qsort exists in the runtime library, and the only time I'd have to write a different one is if my profiling shoed the builtin qsort to be taking up too much of the applications performance.

His point here is larger though .... and it feeds into the main advantage I see for open source.

Namely, that open source allows us the opportunity to stand on the shoulders of giants.  In all the other fields of scientific or technological development, there's been a tradition of sharing discoveries with others.  That allowed following generations to leverage the discoveries of prior ones.  Otherwise the following generations have to start over from scratch.

But what's interfered with that tradition is business.  Businessmen demand proprietary advantage, which means keeping secrets.  Keeping secrets prevents us from standing on the shoulders of the secret keepers, hence we have to start over from scratch and redevelop what others have already developed.

3. Seamless Migration and Transparent Upgrades:  Yup, he's sure said a mouthful here, and I can't add to it.

4. Comprehensive Functional Modules: I think what he's talking about is what I'd call "application frameworks".  He gives the example of Lucene, which is a prebuilt application that lets you plug in a search engine into a web site.  You have to do some coding to wire it into your site, hence it's not terribly useful as a standalone thingy.

5. Plug and Play: Service-Oriented Architectures: Well, SOA is one of the current marketing buzzwords that I haven't learned as yet.  I don't quite follow his example of "accessibility" as that's a function of the GUI Toolkit layer being used, and web services are so far into the background that they don't have much if any visibility to the GUI Toolkit.

In any case, I certainly like and appreciate pluggability - to allow one to take an existing app and plug in new functionality.  But that begs a different question, namely, what's the documentation like?  If you can't make sense of how to do pluggability, then the feature is useless and might as well not exist.

6. Performance-Optimized Blueprints: Here he's talking largely about documentation, though there's a big point here about visibility into the total performance picture when you're leveraging some third party tool/app/framework/library into a larger system.  For example, I remember a long time ago trying to get decent performance out of a Motif application I was writing (I said, it was a long time ago).  Okay, so I've got "my application", "motif", "Xt" and "X11" as different layers in the application, and to get decent performance I ended up having to understand how to make best use of those GUI toolkit layers.  That meant being able to profile all of those layers, not just my application.

7. Open Standards Compliance: Yup, again, he hit the nail right on the head with this.

8. Rapid Development and Deployment Tools: Uhm, I think he's confused here.  First he talks about IDE's and tools to help rapid development, and then he talks about Emacs?  Oh well.  Oh, and he's seem to have forgotten that Netbeans has all the useful modularization and whatnot kind of architecture that Eclipse has.

9. Template Configurations: In general I like this principle, because example configurations help you learn how to use a complex system.  e.g. that the Tomcat project or Apache bundle example configuration files is what has made them successful, because both products are too complicated to get up to speed if there weren't examples.

But then he goes on to extoll "oraerror", which I've never used, but it sounds like it helps explain error messages that are otherwise too cryptic for humans to understand. 

See, that's a problem with software all the time - is that the person writing the error message is this programmer dude who spends most of his/her time communicating in non-human languages (C, C++, Java, etc), and has his/her head already wired up to understand the system they're writing.  So when it comes time to indicate errors and explain the error to an end user, the developer has several hurdles to cross - such as translating the error from computer-speak to a Human language, and second getting their head around what statement will make sense to someone who's only passingly familiar with the product.

What would be better for error messages is to involve human computer interface specialists deeply in the development process.  But you'd be running the danger of the HCI people losing track of the humans, just as the developers end up losing track of the humans, and with the resulting error messages being just as cryptic as before.

10. Probes and Debugging Tools: Uhm, the idea starts out great.  But the examples he gives are strange.




(2005-06-24 11:24:41.0) Permalink Comments [0]

20050602 Thursday June 02, 2005

Reconsidering AJAX Adam Bosworth formerly worked for Microsoft and worked on DHTML and XML over HTTP way back in 1997.  This perspective should give him an interesting place from which to analyze AJAX, since AJAX is largely the same technology as the technology he worked on for Internet Explorer.

Ajax reconsidered

What allowed AJAX to take off when the same technology barely stumbled along in 1997?  It was "physics" or simply the difference in technology. 

I remember 1997, because at the time I worked for VXTreme (before they were bought by Microsoft), a company working to send streaming video over the Internet.  Their product went on to become Windows Media Player, though I had nothing to do with that as I wanted nothing to do with Microsoft.  In any case the main memory I have of the Internet technology of that time is the battle over modem standards.  Do you remember the X2 modem technology that offered 56kbps speeds?  And do you remember the technical nitpick that kept the standard that ultimately won out over X2 from being able to use the full speed?  They had to throttle the speed slightly from 56kbps to 52kbps to keep some telephone companies happy about some or another technical nitpick.  At the time I worked, as I said, on sending video over the Internet, which was tough to do on a 28.8 kbps modem.  We did it, but at the cost of quality.  And so did Real, also at the cost of quality.

In any case, I went into that detour to remind the reader a little about the Internet environment of that time.  As Adam Bosworth says, AJAX relies on being able to ship large quantities of javascript over the wire into the browser.  Over a broadband connection the size of the javascript doesn't matter as much, but way back when all we had was 28.8kbps (or maybe, for the well off, 33.6kbps), this mattered a lot.

There was also the consideration of processor speed - with todays ultra fast processors it's easier to get good interactivity even with an interpreted scripting language running inside a web browser.

He goes on to talk about pitfalls ...

First, printing is still hard.  Hmmm, thought I, doesn't CSS offer a way to specify a stylesheet for printing that's in addition to the one used for display?   Theoretically the printing-specific stylesheet could change the colors, layout, fonts, etc, to be printer friendly.  But that does mean writing a second stylesheet, and we're still pretty early in the adoption of CSS.

Secondly, the browser isn't a good listener to external events.  Okay, this is one I know a little about having spent some time working with mozilla at this level.  The browser model is that the user is in charge, and the browser requests information from servers only in response to the users actions.  But, in truth, javascript is a nice programming language and a javascript programmer can do a lot of interesting things.  Well, I know mozilla best, and know that a mozilla javascript programmer can do a lot of interesting things with the mozilla application object model (AOM) and I presume that in Internet Explorer with all the activex controls and whatnot there must be equivalent capabilities.  In any case, you can open sockets, make requests, parse XML, diddle the XML using the W3C DOM API, and so forth.  I've also written a small HTTP server in javascript, using AOM methods, so it's quite possible to write a web page that causes the browser to contain an HTTP server that listens for requests from elsewhere, but if that sounds like a strange hack, there's a reason for that.

Third, if you want the application to run offline, you are essentially out of luck.  Well, yeah, basically so.  You could save web pages and all the assets of the web pages, it would be tedious to do so, and also not terribly useful because the javascript assets probably are going to presume the existance of a server somewhere and in Internet connection.

It sounds to me that what Mr. Bosworth wants is Java.


(2005-06-02 14:18:39.0) Permalink Comments [0]

20050531 Tuesday May 31, 2005

As Blogging Goes Corporate, It Becomes a Full-Time Job Blogging is an interesting trend.  Blogs are just a web site in a given organizational structure, so what's the big deal?  It seems that the big deal is the informality.

As Blogging Goes Corporate, It Becomes a Full-Time Job (
(2005-05-31 15:34:49.0) Permalink Comments [0]

20050426 Tuesday April 26, 2005

Cell phones as PDA's A few years ago, while Rich Green was still in charge of the Java efforts at Sun, I remember him talking to us about Java in Cell Phones, and the future of cell phones. 

The gist of the message was: Stop thinking about them as telephones, because they're really mobile computing devices with a built-in telephony applet.

Flash forward to today ... We have cell phones with pretty color displays, and we have the Virtual Girlfriend available to satisfy the, ahem, needs of (presumably) young men around the world.  You can use your cell phone to play games, look up stock quotes, do email, send text messaging, and more.  Just yesterday I was reading how the Chinese Government is worried about how text messaging over cell phones is being used to organize protesters, so they're planning a crackdown.

What's prompting this posting is an email on an internal mailing list, the person is seeking advice for the choice of a new cellphone.  He wants to decrease the number of gadgets he carries (currently a PDA and a cellphone) leaving him with just a cell phone, so therefore he wants one of the higher end phones, but not so big as the Treo's.

Looking at the question, I'm seeing my personal dance around which cell phone to use.  I want features, but I want it to be carryable.  So....?

What occurred to me is this question.... why store any data on the phone (portable-computing-device)?  Why not make the gadget-that-we-currently-name-"cell-phone" just an access device?  Why not store the data out on the network somewhere, and you access it as-needed? 

By storing the data "out there" rather than on your phone, the device you carry with you can remain small yet offer large capabilities.  Further, the service that stores your data could offer more services than your portable device can.  e.g. you could have multiple UI's, like from your work computer, your home computer, or web pages.  It could send you email reminders.  It could integrate with something like the Franklin/Covey planning system.  All this would be difficult if the data were to be stored only in your portable-computing-device.

Hmmm....
(2005-04-26 11:07:55.0) Permalink Comments [0]

20050411 Monday April 11, 2005

More on Jonathan S's GPL comments Last week I posted about Jonathan S's strange comments on the GPL.  Today he posted a clarification.

Basically he's got two things going on.  First is to show how great the CDDL is, and the second is he continues to slam the GPL.  The things he says about the CDDL are very interesting, and I like the ideas.  I've only skimmed the CDDL so I won't say more than it is rather readable.

But his posting continues to slam, needlessly, the GPL.  And to top it off he offers this story as justification.

The story is that at the 2005 CeBIT conference, an Open Source programmer was going to various companies to point out how they're delivering Linux-based products, but not following the GPL licensing requirements by disclosing their source.

Okay, this is very strange.  First he puts up this strawman of poor 3rd world countries wanting to develop software based on open source, and then he proposes Motorola and 12 other companies as concrete examples of the problem.  Motorola???  Motorola is hardly an example of a poor 3rd world country.  Heck, Motorola probably has yearly sales exceeding the GDP of most 3rd world countries.  And clearly Motorola has enough smart lawyers to be able to figure out the GPL and know how to comply with it.

Yet, apparently they did not.  (I haven't checked further ...)

Let me offer a counter example: 

Hacking the Linksys NSLU2

Linksys is selling several devices that use an embedded Linux.  They are also complying with the GPL, by distributing source code and a compiler toolchain.  This allows end users to customize the products by compiling and installing modules of their own choice.

The above product is a network attached file server box.  It lets you plug in a USB2.0 box containing a disk drive, and have the disk appear on the network.  A simple little box, easy to use, etc.  But, the geeks of the world saw that and wanted more.

e.g. out of the box it supports SMB and the Windows world, but what about those of us who use other systems?  Systems that prefer NFS over SMB?  Well, we'd be out of luck, but for these geeks who worked out how to get into the box and compile NFS support.  Now getting the box to support NFS is as simple as downloading new firmware off a website and installing it.

But wait, that's not all.  The geeks also wanted more.  Some are using these as MP3 storage in a way that lets iTunes see the files on the network attached disk.  Others are using it for other media devices.  Others are running mail servers or web sites with it.

It's the GPL that enables this flourishing of creativity and power to the people.

(2005-04-11 14:41:18.0) Permalink Comments [4]

20050406 Wednesday April 06, 2005

Jonathan S's nonsensical criticism of GPL Sigh, it would be great to have a leader I could agree with more often.  He seems like such a smart guy, full of energy, but the ideas that come out of his mouth so often seem strange.

Tuesday (April 5, 2005) he addressed the Open Source Business Conference and slammed the GPL.  The resoning is very strange.  There's a provision requiring that people who use GPL'd code to create another product must release that product under GPL as well.  His claim is this provision is an onerous burden imposing "a rather predatory obligation to disgorge all their IP back to the wealthiest nation in the world".

er....

Okay, first, nobody is requiring these people to use GPL'd code as the base of their projects.  NOBODY.  They can use other code, or write their own.

Second, the GPL is not owned by the United States.  One of the biggest GPL projects, Linux, was started by a fellow from Finland.  Thus, when someone follows the GPL and does share their code with the world, it is the WORLD they are "disgorging" their code to, not the United States.

I once heard a very smart person give a talk on open source software.  Who?  Ken Arnold, a Sun employee, and one of the Jini people.  He advised using the license for your project that fits with your purpose.  If you don't want to use the GPL then don't use that license.  And given the nature of the GPL, that means you must also eschew code based on the GPL.  In other words, the choice is up to the people running each project, and there's no need to slam the GPL.

The GPL isn't for everyone, but it's obviously suiting the purposes of a lot of people.  And, you know what?  That's a GOOD thing.
(2005-04-06 11:12:49.0) Permalink Comments [9]

20041008 Friday October 08, 2004

Disturbing thoughts on Iraq & the war

Just read this article, You Call That a Major Policy Address? and am having several disturbing ideas.

The article starts off complaining about the weakness of the Bush Administrations statements this week. As the article says, "Most presidents would want to deliver, right about now, a major address on the war against terror and the war in Iraq. In the last few days, one blow after another has struck the very foundations of Bush's policies. The fact that, under the circumstances, Bush didn't deliver a major policy address after all, despite his advance word, should embarrass not only CNN and MSNBC but, still more, President Bush."

But, wait, there's more. It's not just the recounting of this weeks blows to the Bush Administration. They are serious blows, such as Paul Bremer claiming we didn't have enough troops on the ground to do the job properly in Iraq. Nor the NY Times analysis of the aluminum-tubes-for-uranium-centrifuge claim which was a key part of the administration's justification for the war (they with their mushroom cloud rhetoric).

No, the most disturbing part of the article is discussion of Zarqawi, his al Qaeda affiliated movement in Iraq, and the U.S. plans to bomb his camps in northern Iraq. Zarqawi has been held to be the mastermind of the geurilla activity against the U.S. occupation of Iraq. In the past pattern the U.S. has followed of demonizing enemies, Zarqawi is the new demon (with Saddaam Hussein and Osama bin Laden having filled this role before).

But, wait, the article says that the U.S. had plans to bomb his camps before the invasion (NBC News, March 2004). Having removed Zarqawi from the scene early would have done two things. It would have made the current activities in Iraq easier, well, that's assuming that the administration is being truthful about Zarqawi's activities today. In any case, if his organization in Iraq had been removed early then they wouldn't have been able to do anything today. Well, except that during the invasion Hussein's special forces threw down their arms and faded into the woodwork largely uncaptured, so perhaps those special forces would have regrouped and formed a geurilla organization anyway, and as a matter of point maybe it is those special forces which have formed the current geurilla organization fighting U.S. occupation?

The second thing removing Zarqawi's organization would have done is to remove the justification for invading Iraq. See, one of the claims we presented to the world justifying the war in Iraq (Colin Powells speech to the U.N. Security Council) was that Iraq and al Qaeda were in cahoots, and had planned the 9/11 attack together. The claim was based on the presence of Zarqawi's group, Ansar al-Islam, in northern Iraq. However, as I discussed on my own web site in August 2003, that claim along with the rest of Powells claims were bunk. In particular Zarqawi's group operated in far northern Iraq, near the Iran border, in an area more controlled by Kurdish and U.S. forces than the Iraqi forces. Ansar al-Islam could hardly have been in Iraq under blessing from Saddam Hussein or his government, because his government did not control the territory that Zarqawi operated from. Further it's known that Zarqawi saw Hussein and his government as an enemy just as they view the U.S. as an enemy.

As the article says, the U.S. could have removed Zarqawi but didn't so that the justification for the war in Iraq would be preserved.

Now, here's where my thinking gets very disturbed. The refusal to do much about al Qaeda and its affiliate groups goes further back than Zarqawi and his group in Iraq.

The Bush family and other U.S. elite have long-running ties to the Saudi elite, including the bin Laden family. The ties were presented to the public in Farenheit 9/11 relying on Craig Unger and his book House of Bush, House of Saud for sourcing material. For example GHW Bush has been a lead partner with the Carlysle Group, a company in which the bin Laden family had a lot of investment. Also GW Bush was bailed out of his financial troubles while failing at various business by one or more of the bin Laden brothers.

Next, Osama bin Laden started the mujahadeen movement in Afghanistan to push the Russians out. This was covered in Richard Clarkes book Against All Enemies. Osama had approval from the highest of Saudi royalty to set up the operation in Afghanistan. The U.S. provided material and training to his troops, but had to do the supply and training activities in Pakistan to keep U.S. troops from entering Afghanistan and risking being in direct conflict with Russian troops. The funding came from the Saudi elite in general.

The Wahabi Islamic movement is the fundamentalist arm of Islam. They are kind of like the rabid Christian fundamentalists who bomb abortion clinics and the like in the U.S. The Wahabi's get a lot of funding from the same Saudi elite, and it is from the Wahabi schools which Osama draws his troops.

Most of the 9/11 activists were Saudi nationals.

The Bush administration stonewalled indepth investigation of the 9/11 tragedy. In Florida in 2000, the Bush campaign actively courted support from Islamics including Sami al-Arian who was at the time accused of being a terrorist funder and organizer, and has since been arrested and put on trial.

In other words, what's really going on here? Why are the Saudi connected terrorist organizations being given leeway and not attacked as completely as they might? Why was the U.S. invasion of Afghanistan, for which we had broad international support, so under staffed, under funded, and did not succeed in removing the Taliban nor al Qaeda from power? That is, why is Hamid Kharzai little more than the mayor of Kabul, why have the elections in Afghanistan never happened, and why is there still fighting going on there? (2004-10-08 12:23:05.0) Permalink Comments [1]

20041005 Tuesday October 05, 2004

netbeans 4.0b2 more indepth

Okay, just downloaded netbeans 4b2. Don't notice anything different from b1, though I'm sure it must be there.

What's still amazing is how responsive netbeans is - on my sunray even. Sunrays aren't known for good speed/responsiveness, but here it is.

In my previous posting I'd noted difficulty with getting the project set up right. Obviously projects are rarely simple, and you're always pulling in code from various places. But netbeans has always tried to be purist about where the source code comes from.

In netbeans 4 the purism is stronger. At the time of my previous posting I couldn't see how to get source loaded from multiple directories.

I just went through the help and found a link purporting to cover how to get source loaded from multiple directories. But following the link, the message was "not documented yet". Hmmm...

Well, I went looking a bit further. I found out one can have multiple projects open. This is a change from the old netbeans days where you could have only one project open. Okaaay... Maybe each project can have only one source tree directory, but you can have more than one project open, so that's a way to get multiple source trees open, right?

Well, yes and no. After some fiddling I found a way to do it partly. First off you have to set the projects right:

I've done this but there's a problem. If a file in one package refers to a file in another package that's stored in a different source tree / project, then netbeans isn't hooking it up so the package/class names are known, and instead I'm getting the red underlining. (2004-10-05 15:01:02.0) Permalink Comments [2]

20040930 Thursday September 30, 2004

The energy of "anybody but X"

As pointed out elsewhere in my blog, and on my politics web site (http://politics.7gen.com/) I am planning to vote for Kerry, against Bush.

I'll also point out that I work for Sun, in the group that makes Java. I joined Javasoft, as it was known then, because I was (and am) in the anybody-but-Microsoft camp, and Javasoft seemed to be the place to go for anybody-but-microsoft work.

Here's a piece of truth that governs what happens when you choose "anybody but X". There's a lot of anybodies out there who can be not-X, and you haven't done anything to specify what you want to replace X, you'll be satisfied with anything that is not X.

This begs a question: How can you know whether !X is any better than X was?

The !X anybody that shows up could, well, be anybody, right?

It's a lot better to be positive about your preferences. Instead of "not-Microsoft" you might want a reliable system, that doesn't crash, that doesn't have the virus-of-the-week problem, that is designed with security in mind, that is easy to use, that works, that has sufficient software availability, that follows open standards, that does what work you want to accomplish, that you can afford, etc.

Shoot, even though I tried a couple !X's snuck in, do you see them?

Anyway, with a list of positive requirements like that you've got a better chance of being satisfied than if you just say "!X" and pick the closest available !X.

Just a little thought for you on the eve of the first of the Presidential Debates. Happy voting! (2004-09-30 16:04:18.0) Permalink Comments [1]