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

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

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

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

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

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

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:
- Raw HTML using an editor akin to NOTEPAD or Emacs.
- WYSIWYG editor such as Dreamweaver or Go Live.
- 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
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

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

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 (By Sarah E. Needleman in Career Journal)
The article describes bloggers who are doing it as an official part of
their job. Largely the positions described are really marketing
jobs, with the only twist being that the "marketing" is done via blog
rather than the typical methods.
(2005-05-31 15:34:49.0)
Permalink

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

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

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

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

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:
- For each source directory you want, create one new project.
- In the "New Project" wizard choose "Java project with existing sources"
- In the project creation wizard, specify a directory to hold your projects that is separate from the source code directories.
- In the wizard for source directory choose the directory containing the java source tree, and then specify the project name, and the directory path will automatically fill in.
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

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