about author

Previous | Next Year

2003

Computing: general thoughts about computers, software, and ...

alek blogs

insane blabbering without spelling (*)

Oh Laptop, Where Are You?

I have put together description of an ideal laptop and list of possible candidates. Still looking ....



Checking validity of server public key with OpenSSH

It was not obvious how to compare key signature when you access new host (or one that was upgraded say from SSH2 to OpenSSH). Easy way to verify keys is to compare key signatures (this assumes you have trustful channel to get those signatures) still after login you can do some simple verification:

$ ssh-keygen -l -f /etc/ssh/ssh_host_key.pub
1024 bf:b2:5c:4a:84:be:23:29:0a:aa:33:18:8f:55:f3:34 foo@newschool.cs.indiana.edu

but wait (!) there is possibly more keys:

$ ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub
1024 08:27:15:2b:d0:6b:b4:a1:c9:c4:a2:89:c9:98:a7:3a /etc/ssh/ssh_host_dsa_key.pub
$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
1024 b9:62:0d:a9:df:66:43:e4:97:3d:b8:a0:b2:63:52:8c /etc/ssh/ssh_host_rsa_key.pub

still what bothers me: why there are three separate keys and not just two?



Virus in air?

When you enter a room with your wireless windows laptop turned on, wireless card working, and with unfixed RPC vulnerability in your Windows NT/2000/XP then you may be "lucky" enough to catch a traditional virus and some of the latest Windows viruses ....



Back to Components game?

From Don Box talk on Services Oriented Architecture (SOA) presented during XML Web Services One conference (based on article from eWeek):

"Objects are to services what ICs [integrated circuits] are to devices. And we're moving into this world where we want services to be replaceable, we want services to be deployed independently from other parts of the application, and there's a lot of work to be done in this space."

If you replaced services by components in the statement above would it not sound like something familiar?

Maybe the way to look on this is that Web Services becomes uber components: components that are not only distributed but work for internet scale applications.



Memex: futuristic device?

If idea has almost sixty years and it is till interesting then there must be something in it. That is certainly true about memex.

First motivation for memex from "As We May Think" by Vannevar Bush from July, 1945 (emphasize is mine):

(...) The human mind does not work that way. It operates by association. With one item in its grasp, it snaps instantly to the next that is suggested by the association of thoughts, in accordance with some intricate web of trails carried by the cells of the brain. It has other characteristics, of course; trails that are not frequently followed are prone to fade, items are not fully permanent, memory is transitory. Yet the speed of action, the intricacy of trails, the detail of mental pictures, is awe-inspiring beyond all else in nature. (...)

So how such device would work? One organizing theme is about machine remembering and recalling anything that operator deems interesting:

(...) When the user is building a trail, he names it, inserts the name in his code book, and taps it out on his keyboard. Before him are the two items to be joined, projected onto adjacent viewing positions. At the bottom of each there are a number of blank code spaces, and a pointer is set to indicate one of these on each item. The user taps a single key, and the items are permanently joined. In each code space appears the code word. Out of view, but also in the code space, is inserted a set of dots for photocell viewing; and on each item these dots by their positions designate the index number of the other item. Thereafter, at any time, when one of these items is in view, the other can be instantly recalled merely by tapping a button below the corresponding code space. Moreover, when numerous items have been thus joined together to form a trail, they can be reviewed in turn, rapidly or slowly, by deflecting a lever like that used for turning the pages of a book. It is exactly as though the physical items had been gathered together from widely separated sources and bound together to form a new book. It is more than this, for any item can be joined into numerous trails. (...)

Finally what really matters is ability to organize, recall and share knowledge and that idea what was well captured in this example:

(...) The owner of the memex, let us say, is interested in the origin and properties of the bow and arrow. Specifically he is studying why the short Turkish bow was apparently superior to the English long bow in the skirmishes of the Crusades. He has dozens of possibly pertinent books and articles in his memex. First he runs through an encyclopedia, finds an interesting but sketchy article, leaves it projected. Next, in a history, he finds another pertinent item, and ties the two together. Thus he goes, building a trail of many items. Occasionally he inserts a comment of his own, either linking it into the main trail or joining it by a side trail to a particular item. When it becomes evident that the elastic properties of available materials had a great deal to do with the bow, he branches off on a side trail which takes him through textbooks on elasticity and tables of physical constants. He inserts a page of longhand analysis of his own. Thus he builds a trail of his interest through the maze of materials available to him.
(...) And his trails do not fade. Several years later, his talk with a friend turns to the queer ways in which a people resist innovations, even of vital interest. He has an example, in the fact that the outraged Europeans still failed to adopt the Turkish bow. In fact he has a trail on it. A touch brings up the code book. Tapping a few keys projects the head of the trail. A lever runs through it at will, stopping at interesting items, going off on side excursions. It is an interesting trail, pertinent to the discussion. So he sets a reproducer in action, photographs the whole trail out, and passes it to his friend for insertion in his own memex, there to be linked into the more general trail. (...)

It seems that linking creates such trial and good search engine is tool to recall trails and now blogs are making easier to create trials but still this is long way to go ...

There are other tools that try to do this but so far I have not found yet one that works for me ... where is my Memex? so i start forgetting what i can easily recall:

(...) Presumably man's spirit should be elevated if he can better review his shady past and analyze more completely and objectively his present problems. He has built a civilization so complex that he needs to mechanize his records more fully if he is to push his experiment to its logical conclusion and not merely become bogged down part way there by overtaxing his limited memory. His excursions may be more enjoyable if he can reacquire the privilege of forgetting the manifold things he does not need to have immediately at hand, with some assurance that he can find them again if they prove important. (...)



The Last Of the Great Indoorsmen?

Another species identified for extinction classifed and identified by Dave Johnson:

(...)This is all great and the only thing really causing any stress is the ProJSP book, but I don't think I'll have to miss a day at the beach to wrap up my changes to my two chapters. My Dad and I have our laptops setup in the kitchen and the only thing that really interferes with my works is the constant derision and calls of "hey nerd-boys" and "get a life" from our wives. This really doesn't bother me at all. I always arrange to bring a laptop along on vacation. I'm not like Raible. My idea of a vacation is tinkering with all things digital, which, coincidentally, is also my idea of work. I'm the last of the great indoorsmen.(...)

It can not be- I would consider myself another one - and I suspect there is more ...



TRANSFORM-INTO-A-GEEK FORMULA

How to become a geek effectively? Sisi Liu has now a simple answer to question . No need even for the pill (and this pill was invented before Matrix was it?).

This works kind of opposite to ACME Nerd Suppressant [cached]

Now it doe snot work on men, does it?



Time is the scarcest resource

Time is the scariest resource and it should be treated as the most important factor when considering any task. From interview with Jim Gray:

(...) You see this today. Two groups start; one group uses an easy-to-use system, and another uses a not-so-easy-to-use system. The first group gets done first, and the competition is over. The winners move forward and the other guys go home.

That situation is now happening in the Web services space. People who have better tools win.(...)

However it is also important to not simplify the problem we try to solve or we have something very easy-to-use but useless ...

He also talks about phenomenon of scale when doing software development and I find this estimate quite interesting:

David Patterson: What do you think is happening with databases in terms of open source? What is the Linux of databases?

Jim Gray: I think it's exciting. Very small teams built the early database systems. A small team at Oracle built the original Oracle, and there were small teams at Informix, Ingress, Sybase, and IBM.

Twenty-five people can do a pretty full-blown system, and ship it, and support it, and get manuals written, and test it. (...)

Now the trick is to be where action is and to be part of such team :-)



Fire And Motion

So instead of writing code i read email and surf web not unlike Joel. He captured specifics and concerns about programmers productivity quite well in Fire And Motion.

However what really struck me was this piece of his experience:

(...) When I had a summer internship at Microsoft, a fellow intern told me he was actually only going into work from 12 to 5 every day. Five hours, minus lunch, and his team loved him because he still managed to get a lot more done than average. (...)

When I had a summer internship in France lots of years ago there was this guy who was apparently very good. He was very good but he did not show up to work however as he did exactly what they wanted at the end of the internship so they really loved him...

My personal theory is that surfing web, emailing or in general reading and thinking is what really matters for programming. Writing code is just an end result, an artifact produced to capture what was created in days of hard work of thinking that may have looked like doing nothing but were required to accumulate into written code.



Resign Patterns: Real Design Patterns?

This is look on dark side of Design Patterns: Resign Patterns [local copy]:
Ailments of Unsuitable Project-Disoriented Software by Michael Duell.

Here is a short excerpt:

(...)
3.1 Chain of Possibilities

The Chain of Possibilities Pattern is evident in big, poorly
documented modules. Nobody is sure of the full extent of its
functionality, but the possibilities seem endless. Also known as
Non-Deterministic.

3.2 Commando

The Commando Pattern is used to get in and out quick, and get the job
done. This pattern can break any encapsulation to accomplish its
mission. It takes no prisoners.

3.3 Intersperser

The Intersperser Pattern scatters pieces of functionality throughout a
system, making a function impossible to test, modify, or understand.
(...)



Google And Zen

Google regarded as a nature force that is unpredictable and requires very special attitude:

(...)Others have a more a Zen-like approach to doing well in Google. "You can't control Google," says a search engine marketer who goes by the name martinibuster on Webmaster World. "Anything you do to control Google, the more you try to manipulate it, the more it will backfire on you. It's counterintuitive, but it's when you let go -- when you don't try to control Google -- then your results get better."(...)

(...)For good reason, Google doesn't talk about its ranking algorithms; if folks knew what Google was doing, the search engine would be easy to trick. But in the absence of information from the company, rumors, theories and groundless speculation run free. On the Web, Google has taken on the aura of a god -- enigmatic, arbitrary, worthy of our fear and our love. Everyone's watching it for signs of anger and of embrace; we know that whatever it does will affect us profoundly, and so people watch it, and they worry.

read more at salon.com titled The Google backlash.



Pyramids: returning magic to computing.

Picture of PYR A MAC in full glowing glory! Finally magic of computing restored - nobody can doubt that computer requires special secret skills to run machine that looks like pyramid and glows blue in dark ....




StoryBlog: tool to prototype merging blogs and story telling.

After even more emails exchanged with Jack Park (who is strong proponent of XML Topic Maps) we plan to get microBlog extended.

The aim is to explore some emerging ideas on how to use Topic Maps to facilitate merging multiple blog RSS feeds into stories.

So we call it StoryBlog. We start simply: first see what we can get by adding <dc:subject> as described in RSS To Topic Maps and go from there ...

UPDATE: StoryBlog project is now created on java.net and waiting approval.



Echo Arrives?

As soon as Echo (aka Pie) is well defined microBlog will add support for it.



Future so bright I need sunglasses?

Future so bright i need sunglasses? And it is not that summer is getting hotter but I feel that there are so many possibilities and paths to follow and so much to improve that it is so mind boggling that I need sunglasses to look into future ... as if nothing since 1998 changed :-)



Is Semantic Web for Humans Or Machines?

After somewhat long discussion with Jack Park (and lot of emails exchanged) I have come to conclusion: semantic web will work if metadata/XML/documents are easy to parse by humans and can be transformed ot from that is easy to use by machine.

I would put easy to read by humans as high priority and machine parsing ability as second requirement.

This is simply what made the difference between RSS 0.9x/2.0 and RSS 1.0 ...



How to do two way, p2p, symmetrical web using asymmetrical pull ...

In RSS: Promise and Peril Tim Bray talks about use of RSS providing notification mechanism to track state changes of Web services such as credit card transactions, weather, traffic reports, sales tracking, ...

This is very useful but what caught my attention is that by using RSS pull mechanism (or similar approaches that are asymmetrical) we may finally achieve p2p functionality (symmetry) that long time ago was promised with ubiquitous IP address (Internet enabled toaster anyone?). This makes sense for clients behind firewalls and other NATs i.e. majority of Internet users, clients that have no public IP address (asymmetrical web ?). Now the problem is really who will pay for it: how to stream commercials in RSS?

NOTE: this is how i designed event/message notification in XEvents/XMessages, to provide maximum flexibility it is based on pulling events matching filters, and application that is pulling may maintain token to allow to recover from disconnections (similar but more powerful than ETag).



Note to myself: check your dream job before you start learning it ...

This looked pretty insightful to me (from How Vienna Escaped the Cubicle) :

(...)I had also spent some time shadowing doctors. I went to Stanford Hospital and followed doctors around on their shifts. For the most part, their work consisted of a lot of bureaucracy. The everyday life consisted of filling out forms, and then filling out other forms, and then dictating forms to other people.

I know that everybody probably gets disillusioned with their career at some point, but I got disillusioned with mine before it even started.(...)



To live and die coding ...

Live to code .. code is poetry ... nice article/documentary The JBoss Group forks:

I realize there are two types of friends in this world. Normal friends and the ones you can code with.

So we see ,,,



Shaping PCs?

lara croft like molding Strange ...first look on how we may get computing done when we are better integrated?:-)

Visually it reminds me about one of my favorite movies of all time -- Ghost In The Shell ...

Anyway it is very impressive work (picture on right is when OS was installed .. looks likeWindowzebut hard to say ...) done by guy in Japan and here are specs: cool CPU: VIA C3, MOBO VIA EPIA E-533, RAM: 256MB, HD: FUJITSU MPG3409AT 40GB, DVD-ROM, and lots of POWER: whole 200W :-)

It was also fun to read some forum comments about it - only geek can write something like that to prove he is not geek ...: posted by ENDelt260:

While I did get a chuckle out of looking at those pictures, I couldn't help thinking "Man, this is kinda sad. Someone needs to get out of the house more."

Of course, when I started reading the replies, I realized just how wrong I was. The patheticness of the responses to this thread makes the kind of person who would make a woman-shaped computer seem relatively normal. I can't believe there wasn't even one humorous pot-shot taken at the creators of this case. The admiration of this creation seen here surely amounts to the largest geek circle-jerk in the history of man. I guess I should be more understanding. Perhaps the only way some of you can get a woman hot is to make her out of paper mache and stuff an overclocked cpu inside of her.

Best wishes to you gents. I'll be walking away from my boring, black-box encased, computer now to go interact with people in the real world (including women... complete with breasticles and everything). Here's hoping your sweetheart doesn't melt down or catch fire during a heated game of Doom.

and my impression was well captured in response posted by X:

The irony of ENDelt260's post is that far from come off as superior, manly, and more mature than anyone on this thread ... he managed to do just the opposite.

ENDelt260 you claim to wonder where the humorous responses are to this work of art only because you are so numb or cynical or just plain stupid that you overlook the obvious ... no one is seriously lamenting love for the electronic enclosure ... they jest. Something you are not quite so skilled at as you would like to believe. I suppose you would make the same criticisms of all the greatest sculpters and painters in history. I on the other hand am nearly certain that the Mona Lisa wasn't painted because the guy couldn't get a DATE.

This case has no place being evaluated for practicality ... as it was never intended to be so ... it's an anomoly, a purely creative venture. It is art. My first instinct was not to question the creator's labido because he sculpted a female form ... it was to admire his sculpture. To admire his skills and his creativity ... as I certainly could never craft such a thing simply because I lack the aptitude to chisel out such a sculpture be it used as a computer or not.

The artist who made this case took sculpture and combined it with a computer. Such a device would certainly not have nor should it be judged for practicality. It is a singularity ... a creative work that deserves admiration. It, and it's creator, certainly have mine.

The only person who clearly "needs to get out of the house more" is ENDelt260 ... who's ego and self-worth appear to pivot around pathetic attempts to feign social supremecy and demean others ANONYMOUSLY ON THE INTERNET.

-X

and this may be all off the tangent as the creator seems to do it fo rmoney and this particular sculpture/pcmod was done to order ...




Ethernet forever?

Another example of wining strategy KISS (Keep It Simple Stupid): Ethernet! From Economist article The big three-O:

That raises the question of whether a technology that outlived even its inventor's expectations will ever be supplanted, or whether it will continue to be upgraded indefinitely. As Dr Metcalfe quips, ?When something rises up to defeat Ethernet, it's very likely that they're going to call it Ethernet.? Now that, indeed, is adaptability.

The only problem is to know what is the right level of simplicity and adaptability: what is simple for one may be complex for another ...



AOP to make better design?

What comes out when one crosscuts AOP and design patterns? Can implementation of design patterns profits from AOP approach? Those are quations asked and answered in:

Design pattern implementation usually has a number of undesirable related effects. Because patterns influence the system structure and their implementations are influenced by it [7], pattern implementations are often tailored to the instance of use. This can lead to them ?disappearing into the code? [7] and losing their modularity [21]. This makes it hard to distinguish between the pattern, the concrete instance and the object model involved [15]. Adding or removing a pattern to/from a system is often an invasive, difficult to reverse change [4]. Consequently, while the design pattern is reusable, its implementations usually are not [21].

The invasive nature of pattern code, and its scattering and tangling with other code creates documentation problems [21]. If multiple patterns are used in a system, it can become difficult to trace particular instances of a design pattern, especially if classes are involved in more than one pattern (i.e. if there is pattern overlay/composition) [1].

Pattern composition causes more than just documentation problems. It is inherently difficult to reason about systems with multiple patterns involving the same classes, because the composition creates large clusters of mutually dependent classes [21]. This is an important topic because some design patterns explicitly use others patterns in their solution.

Now we only need better tooling so debugging of programsthat uses AOP design patterns is possible...



Google: Web services that works!

There is a bit of controversy about Web services or Web Services (WS). I believe that we should use non capitalized 'services' in Web services to describe broader set of Web related services over HTTP that existed before all hype of WS arrived and SOAP and friends should be written as Web Services to indicate that this is subset of Web services ...

There is lot that Web Services can learn from "simple" HTTP based Web services and one example is Google Clustering as described in Web Search for a Planet: The Google Cluster Architecture, IEEE Micro, March/April 2003 (Vol. 23, No. 2), pp. 22-28 (local cache)



Social Software And Tools That Shape Us

i have just read Are You Ready for Social Software? and i liked it, especially this aspect about building it:

Kenneth Boulding, the economist, humanist and social scientist, once wrote: "We make our tools, and then they shape us." That is what social software is doing. It is changing the way that we socialize.
and it looks like one idea to make whuffies work (that i am big fan of) or even older and simple reputation. what is really addressed is how to get paid when resources are (practically) unlimited and that reminds me about book i read long long time ago - Voyage From Yesteryear:
"Are you two, er . . . teachers here or something like that?" Driscoll asked.
"Sometimes," Shirley answered. "Ci teaches English mainly, but mostly down on the surface. That is, when she?s not working with electronics or installing plant wiring underground somewhere. I?m not all that technical. I grow olives and vines out on the Peninsula, and design interiors. That?s what brought me up here?Clem wants the crew quarters and mess deck refitted and decorated. But yes, I teach tailoring sometimes, but not a lot."
"I meant as a regular job," Driscoll said. "What do you do basically?"
"All of them." Shirley sounded mildly surprised. "What do you mean by ?basically??"
"They do the same thing all the time, from when they quit school to when they retire," Ci reminded her mother.(...)

now only remains to discover cold fusion, or nanotechnology, or have clean start and get it done and not get bogged down but other issues ...



RISC vs. CISC in programming languages

I have read Paul Graham's The Hundred-Year Language and somehow it reminds me arguments for RISC versus CISC:

I think the fundamental operators are the most important factor in a language's long term survival. The rest you can change. It's like the rule that in buying a house you should consider location first of all. Everything else you can fix later, but you can't fix the location.

of course that makes assumption that developers actually care about axioms. i would say that typical developer is pragmatic and just wants to get good code that does good job written quickly and to do that is willing to use any tool available and simpler (known syntax, taught in school, popular, ...) or more powerful (more libraries, more good IDEs, plugins, ...) will win!

by reading it somehow i had this strong hunch that the author is Lisp hacker ...

Most data structures exist because of speed. For example, many languages today have both strings and lists. Semantically, strings are more or less a subset of lists in which the elements are characters. So why do you need a separate data type? You don't, really. Strings only exist for efficiency. But it's lame to clutter up the semantics of the language with hacks to make programs run faster. Having strings in a language seems to be a case of premature optimization.

i think that i still want string to be string and not lists even if lists are more elegant.

finally choosing carefully user of language is important.

You're most likely to get good design if the intended users include the designer himself. When you design something for a group that doesn't include you, it tends to be for people you consider to be less sophisticated than you, not more sophisticated.
That's a problem, because looking down on the user, however benevolently, seems inevitably to corrupt the designer. I suspect that very few housing projects in the US were designed by architects who expected to live in them.

for example this from other essay seems to prove points

You can see the same thing in programming languages. C, Lisp, and Smalltalk were created for their own designers to use. Cobol, Ada, and Java, were created for other people to use.

If you think you're designing something for idiots, the odds are that you're not designing something good, even for idiots.

i like Java - it is right mix for me of interpreted and compiled language with nice simpler than C++ syntax and lot of libraries to get job done ...



why blogging? just publish and forget?

some good observation: first noise reduction and ego maintenance

Blogs have been compared to newsgroups. It is interesting. In newsgroups there is no "uber" member. Everyone is equal. At first that seems great - however it makes it hard for people to filter out the noise. In effect, a blog gives me control over the "major" content of my newsgroup. I can post anything I want on the front page... anyone can add comments, link to me, etc - but no one else gets to be on the front. In this way blogs appeal to the ego of the blog owner, but also gives people visiting a blog a built in filter.

then RSS as Web Service:

The most fundamental building block of blogs is RSS. I don't know how revolutionary RSS is compared to HTML or TCP/IP, but RSS is the heart and soul of blogs. RSS provides a crude "alpha" XML web service. It will evolve and become even better. Today, RSS gives blogs a way to publish their content in a standard way. Sounds simple. Which is what makes it great. With RSS as a standard, you can now have aggregators that troll hundreds of blogs and extract relavant information. You can extend RSS (being XML and all) and add features like full message content, Doublin Core fields, etc.

but finally is this what i think really matters: publish and forget

One reason I believe that blogs are great for corporation internal communication is the question of distribution lists. Inside of Microsoft we live and die by email. However the constant spam of email to large distribution lists ends up drowning out the important information. For many types of communication (but not all) blogs provide a better way of communicating. There are many cases where you as the publisher of a piece of information don't know who would be interested. Blogs are a way to "publish and forget" - you fire the information out there, and interested people will find it. Once I add our internal blog server to the corporate search service, suddenly I could find people that worked on products that I wanted to communicate with. Amazing.

so blogging is simply next generation of communications weapons in our arsenal (like fire and forget!)



IA, IBM, IC??

interesting serendipity: first i read Vinge thoughts about IA and automation and here is IBM doing first good step to create good automation - amazing how world works. here is one interesting scenario where autonomic computing is used:

The software can study traffic patterns to predict changes in computing demand and then automatically bring more resources online to handle the changes in computing workload. The software can also generate historical data to analyze trends over time.

Based on customer feedback from its consulting engagements, IBM will enhance the self-optimizing software, the company said.



Joke ...

some people will miss joke (local cache) even if it hits them:

Yes, we're aware that a 19" screen doesn't mean the PowerBook is physically 19" wide. It's a joke.



WS-Goodness

building on excellent work from RFC 3514 (local copy) i have jsut finished editing new WS-Goodness spec. This new naddition to WS-specs family should solve all security problems with SOAP messages as soon as it is adopted ...



How much metadata do YOU create?

or where is my s3mantic web please? If it is not built on meta data but meta crap thanr it is not semantic web but ... ?

read more on Metacrap (local cached copy)



generics with constraints

i need them NOW even though constraints are only limited to implements and extends it is still quite powerful to describe and constrain required behavior of parameterized types (as interfaces):
interface Comparable
{
        boolean equals(Object x);
        boolean less(Object x);
}

interface Set<A implements Comparable>
{
        boolean contains(A x);
        Set<A> include(A x);
}

good that codeguide supports them and there is this nice page on how to integrate generics compiler with ANT ...

but i see how it works in real programs when it is freely available and distributable in next JDK ...



should WSDL die?

Just read Why I want WSDL to die. and i think author misses point of WSDL. WSDL is remote reference with extensible format. I do not htink it ever was meant to solve all distirbuted computing problems and for sure using XSD will not make it easier either: XSD would need to be extended as author noted to be useful, example:
<s:element operations:operation="ReserveSeatVariant1" operations:direction="input" name="ReserveSeatVariant1Input" ref="ReserveSeatInput" />
and this is not XSD ...

i hardly can see (though it can change later ..) how we can get anything to interoperate when we will start to add extensions to XSD - it is already hard to use without extending it and i have serious doubts that such annotated XSD will be XSLT transformable to WSDL - just too much of expression power is in XSD to make this task challenging and if XSD+WS starts to be used people will soon start to use all features of XSD such as choice and how would one to get that transformed back to WSDL ???



Nightmare Nightware

If you stay too long into the night then nighware (software you produceduring night) may become your nightmare :-)



Computer Science or Rocket Science

The ministry of silly names or other aspects of IT specailist life:
"What is it this time? Problem with the caps-lock key? Trouble remembering how to spell your mother's maiden name? Hard disk seized under the weight of all those JPEGs?"



Lightweight Sun ...

I wonder if anything useful will come out of Back to Basics for Sun Software - interesting interview with new CTO John Fowler:

Q: How do you view the integration of Java with Web services?
Fowler: We've looked at the application server and how people use application servers and Web servers in real markets, and have found that current app-server technologies are not aimed at what most people want to do. A large segment of developers want to develop presentation logic and database-connectivity logic but don't necessarily need all the elements of EJBs. And there's no reason why this needs to be so expensive or complicated.

Will Sun be able to create something small, useful, and lightweight or will succumb to marketing and work on another big piece of J2EE machinery. There are some interesting problesm to solve like JAX-RPC that is heavily RPC and CORBA-ish bend people are now more interested with messaging (so we have JAXM) and XML schema defined types (so we have JAXB) with doc/lit encoding as WS-I wants to supersede SOAP 1.1 Section 5 with enhancements over standard XML schema - at least SOAP 1.1 encodign was self contained - so it will be interesting to see if they ca come with anything coherent that is easy to use and allows real flexibility (like AOP and interceptors) and do not finish heavy code generating and packaging just like EJB (and JSR 109 alreayd shown that this can be done for web services in EJB)...



Know Your Enemy ...

good article on How to Interview a Programmer, defintely worth reading, showing what somebody that wants to be hired should really worry about :-)

and here is my favorite part:

(...)Randy Stafford: Good citizenship is probably more important than technical prowess, because if you have people with the right kind of attitude and demeanor, you can help them gain the technical knowledge and software development habits. But if you have people who lack humility and maturity, it can be extremely difficult to get them to cooperate in reaching a goal, no matter how bright they are or what they've accomplished in the past.(...)



Stigmergy or Why Ants are superior...

I must admit I do not like those biological analogies:
Using a weblog is communcicating through stigmergy. Just like an ant, as I blog I leave a trail of information and links to other information I find interesting.
not that i have anything against ants or bees (well unless we stay away) just that I think any progress requires intelligence, will, planning, and thinking and that is much much more than just following even tasty trails - there are simply too many of them to follow ...



Open source or Open prototypes?

Russell Beattie is making excellent points about Thoughts on Open Sourcing Your Code: The OSS Prototype License. I have done some of those prototypes and i agree that marking them as such is a good idea for longer term maintenance.



New age of illuminated computing!

just thinking about increases my productivity - now i can work in complete darkness:
The EluminX Illuminated Keyboard has arrived! Be one of the first to experience the new age of illuminated computing!



Moore law for abstractions?

From A Talk With Charles Simonyi (The WYSIWYG) on Intentional Programming:
(...)So an abstraction may be looked at from one side as a compression of many instances into one generality or from the other side as a special purpose power tool that yields the solution for many problems. If one could attach a dollar sign to this power, the economies would be amazing: rivaling that of chips or application software itself.(...)



use yout tags wisely

If St. Patrick were to write DeXiderata today:
(...) Many fears are born of fatigue and loneliness. If you cannot make that XML document parse, go get a pizza and come back to it.(...)
(...)Speak your truth quietly and clearly, making liberal use of UML diagrams.(...)



mozilla and duplicated emails

it happened again! each time mozilla crashes when restarted it will get emails seen last startup (or last offline) and cheerfully inject them back into INBOX as not read but even worse: it will distribute again emails to subfolders using message filter.
could somebody add to Mozilla duplicate email filter so this can be prevented , please!!!! at minimum i should be able to run filter on whole mail account but what i really want is filter that can be set on whole mailbox that *prevents* duplicate messages form even entering mail folder! when doing this could somebody also add virtual folders too ...

UPDATE 2003/10/20: after reporting bug it was fixed in Mozilla 1.4.x ann Phoenix 0.7



Popup about popup eliminator

.. kind of logical. But who is going to eliminate popup eliminator?



Pair Programming or ... not?

Chiara wrote:
This is just one of the tiniest examples of how stupid that whole experience was. Bad programmers write bad code, whether they pair up, or not. XP is not faster , slow programmers write slow code whether they are alone or with someone else, of course, if a slow programmer pairs up with a fast programmer, the code will be written faster due to the fast programmer, then, why tag along the slowpoke?

There is no silver bullet and just maybe different people have different needs and in diversity of work approaches is the strngth and not in pairing everybody :-)



Here it comes: official WSIF release

after lot of work it is really nice to see that we have finally have Apache WSIF 2.0 :-)



Expect More

my favorite essay on web/SOAP design Expect More (posted as i always have problems to recall the title and fins it ...)



more direct XML access

interesting article about using more directly XML in Programming languages: Speaking XML
now some observations inspired by it - assume input:
<stock>
        <price>43</price>
        <revenues>10</revenues>
        <expenses>3</expenses>
</stock>
it would be nice to have XPath based locator that can convert such input into java types.

such locator would work as a bridge between XML and actual PL variables
that could be nicely combine with super lightweight iterators from XmlPull API into:

XPathFloatLocator price = XPathLocator.floatValue("stok/price");
XPathFloatLocator revenues = XPathLocator.floatValue("stok/revenues");
XPathFloatLocator expenses = XPathLocator.floatValue("stok/expenses");
// process input "somewhere" until all locators get values or throw error with exception
// close stream as soon as data is found (no need to read whole input)
XPathEvaluator.evaluate("somewhere", new XPathLocator[]{price, revenue, expenses});
float peRatio = price / ( revenues - expenses );
this could address main author conncern about DOM memory inefficency as XPathEvaluator pulls nodes into mameory only when they are used doing streaming parsing with XmlPull API and is quite easy to read IMHO ...
this could beeven better if databinding framework was used (to bind only part of XML). such framewrok shoul dallow reading and binding only parts of input so structured (described by XML schema and mapped into objects) and unstructured data can coexist
StockInfo si = (StockInfo) xmlDataBinding.bind("somewhere");
float peRatio = si.price/( si.revenues -  si.expenses);
and good xml binding framework would use streaming parser so virtually no memory overhead. however this approach requires writing XML schema for stock XML and generating StockInfo class quite lot of work for simple stock calculations.
more interesting is middle ground: we laredy have class and want to bind some XML data into it, something like this:
interesting question: can it be done dynamically: i have StockInfo class and use XPathLocator to bind existing class with XML
more general question is how different approaches such as static binding with compiled XML schema into generated classes, binding existing classes into XML fragments (schemas?), and completely schema-less free XML navigating can be all used with API that is as similar as possible for all of those cases. that should lead to very powerful XML programming API with lots of unforeseen synergies ...



The Best is just opposite of The Worst?

Shopper: How bright is INTERCAL's future? Do you see it as being a driving force in the world of language design and compiler architecture?

ESR: Yes indeed. If mainly in driving people away from those fields, screaming.

Quite funny (if you have to learn new PL) rant about INTERCAL



This blog is about:
XML, Java, and everything else (or nothing ..)

Find more about
blog author

Blogroll:
Sam Ruby
Russell Beattie
Diego Doval
Joel on Software
and some (almost) harmless entertainment: The BileBlog

Projects::
MicroLogger
Xydra
WSIF
XmlPull API
XPP3/MXP1
XSOAP
XMessages

RSS RSS 0.92
0.92 [validate]
2.0 [validate]

Filter Entries:
Life Category Specific RSS Feed
Java Category Specific RSS Feed
XML Category Specific RSS Feed
Computing Category Specific RSS Feed
Web Services Category Specific RSS Feed


Valid XHTML 1.0!


Powered by microBlog (C) Aleksander Slominski

Disclaimer: personal opinions and observations that may or may not be taken seriously, or even based on shared reality and generally are very unreliable and personal and snapshots of volatile writer mind ...

NOTE: THIS PAGE IS UNDER CONSTANT DEVELOPEMENT