Saturday, October 19, 2002
Syntax is All That Matters
Syntax that isn't understandable by humans is worse than worthless, it's cruel. At that crucial moment when things go wrong, it taunts them with the knowledge that something important is being said, but they're too fucking stupid to figure out what it is.
Thank. You. Mark. I couldn't have said it any better. It really irritates me when people say syntax doesn't matter (as opposed to features). It's such an idiotic thing to say. Syntax is all that matters. Everything else is just frosting on the cake. Any standard that even wishes to approach the popularity and ubiquity of HTML must be view-sourceable -- a user must be able to grasp at an example document and immediately know what's going on. I really can't emphasize enough and it shocks me that people haven't grasped this basic fact yet. . I'd gladly toss the away 30% of the functionality of any given spec for a simpler syntax that truly was human readable. (This is why I am so not surprised when I hear that tool vendors don't want to upgrade to the monstrosities that are many of the new 2.0 specs (XSLT, XPointer, XPath). I myself never plan to upgrade if it means having to deal with the abortion that is XML-Schema.)
Side note: The whole 'syntax is all that matters' principle is derived from an even more important (perhaps the most important) design principle that all these people creating new technologies need to take to heart:
50 XSLT Tips
Cool. XSLT rocks. #
Winfessor: .NET Jabber SDK
Winfessor’s .NET Jabber SDK frees the developer from the detailed inner workings of the Jabber protocol by providing an addition layer that improves communication with Jabber. Developers new to the Jabber protocol can quickly and easily create robust messaging applications for both desktop and mobile environments.
This looks awesome but I can't figure out whether it's free and if it's not free what the price is. #
Getting Java applications to network on small devices
If you've been following Soma Ghosh's articles here on the Wireless zone, you've learned how to use your Java skills to build simple applications for handheld devices. Now how do you link those devices to the outside world? In this article, Ghosh discusses the javax.microedition.io and java.io classes that lie at the heart of J2ME networking. You'll learn how J2ME applications handle URLs and accept input, and even be taken through a sample program that downloads currency exchange information to any network-accessible, J2ME-compatible device.#
Build your stock with J2ME
Be on top of your stocks, and get an education on building a J2ME app based on the Connected Limited Device Configuration and on Mobile Information Device Profiles. In the end, you'll know quite a bit about interface and server-side design, networking, application optimization and deployment, RMS, and overcoming general limitations posed by J2ME.#
An SCJP 1.4 Ceritification Primer
The Sun Certified Java Programmer (SCJP) examination has recently been updated for J2SE 1.4, which means you'll have to jump through some new hoops to get a passing score. In this primer to SCJP certification, Pradeep Chopra, cofounder of WHIZlabs Software, outlines some of the most important changes to the SCJP 1.4 exam, suggests several ways to prepare for it, and offers some sample questions to get you started.#
Coding for accessibility: Use JFC/Swing to build accessibility into your Java applications
All Java applications should be accessible to users who have disabilities. Special care is required to achieve this with GUI applications. This article shows you how to achieve the maximum level of accessibility with a minimum level of effort, using a JFC/Swing-based accessibility toolkit.#
Friday, October 18, 2002
A Brand-New Treo
As for applications, I had everything from my old Visor transferred in short order, including my body of data whose history went all the way back to my first blocky Palm Pilot. After that, I went out and snagged a large blob of net apps and synced them up. AIM, SMS, IRC, SSH, VNC, ICQ, email (via IMAP!), and most importantly Google via Blazer all worked great.
Wow. I had no idea you could do so much with a Palm and a net connection. VNC! Man, makes me think. Of course, it's kind of worthless because you pay so much for data connections but with wifi... #
JXTA v1.0 Protocols Specification
The JXTA protocols defines a suite of six XML-based protocols that#
TB lets people 'ping' your server and say that they have written something that is related to a particular post on your blog. Your server takes a summary of their blog comment and posts it along with the comments on your post.
This probably isn't a good idea. The potential for abuse is massive. #
liveTopics adds to Radio the ability to associate topic metadata with each weblog posting. What are topics? Briefly a topic is a named represenation fo a subject that may have occurrences. Each occurrence of the topic is "about" the same subject. Topics describe posts in a very granular way, much more so than categories. Topics and topic mapping (associating related topics together to form larger data structures likes indexes and glossaries) are important ways of organizing and categorizing knowledge that you publish on your weblog.
It's difficult to believe that people are making a big deal out of this. You're just associating keywords with your posts. It does show how hungry people are though. #
Creating password-protected directories
There are various ways to create password-protected directories on a hosted server, some of them more secure than others. Here are a few alternatives, ranging from a do-it-yourself solution that's suitable for low-cost shared-server hosting, and ending up with a fully prepackaged solution from Xara Online, which can be plugged into any website.#
Creating Applications with Mozilla
This book is primarily aimed at programmers (and would-be programmers) interested in exploring this brand-new platform-the Mozilla development framework. However, you do not need to be a professional programmer to create your own cross-platform Mozilla-based applications.
Thursday, October 17, 2002
An Introduction to WSIL
The Web Service Inspection Language (WSIL) is an XML document format to facilitate the discovery and aggregation of Web service descriptions in a simple and extensible fashion. While similar in scope to the Universal Description Discovery and Integration (UDDI) specification, WSIL is a complementary, rather than a competitive, model to service discovery.#
Tuesday, October 15, 2002
Next Generation Email Clients, Some Ideas
It would have to be client-server. I don't want to try and rethread a 15,000 message folder back and forth over the net. The server should do that and just show me the results.
Very interesting. More and more, things have got to be client-server. #
Mobile file sharing: The scoop on RockyRoad
Get a taste of RockyRoad, an open-source, peer-to-peer framework designed to exploit the strengths of P2P: excellent scalability, ease of deployment, and robustness. RockyRoad allows both mobile and stationary peers to communicate with one another directly through a common language, and lets applications subsist on little RAM and few CPU cycles. This article describes RockyRoad's unique features and demonstrates how to write a simple file-sharing application with one of its reference implementations, Java RockyRoad API, Micro Edition (JRRA ME).#
Introduction to Xindice
This article is an introduction to an Open Source Native XML Database System, called Xindice (pronounced zeen-dee-chay). It is also an introduction to Native XML Database concepts.#
Custom SSL for advanced JSSE developers
JSSE brings secure communications to Java applications, by using SSL to encrypt and protect data as it travels across a network. In this advanced look at the technology, Java middleware developer Ian Parkinson delves into the lesser-known aspects of the JSSE API, showing you how to program your way around some of the restrictions of SSL. Learn how to dynamically select the KeyStore and TrustStore, relax JSSE's password-matching requirements, and build your own customized KeyManager implementation.#
Using ASP.NET to Create Multi-Page Custom Reports
Describes a way to use the existing Microsoft ASP.NET infrastructure of designers, data binding and other runtime functionality to generate simple and complex multi-page HTML reports. (7 printed pages).#
Summary Rows in DataGrid Controls
The DataGrid control is great for data reporting and flexible enough to let you build complex, professional looking tables of data in which functionalities like pagination and sorting are free. Instead, other functionalities, such as drill-down and master/details, only require a little effort. In this month's column, I'll tackle one function that the control itself does not provide, but that many people would heartily welcome. So, let's examine how to automate the production of complex reports in which you have to show summary rows with partial totals.#
Monday, October 14, 2002
.NET Localization, Part 1
ASP.NET uses a class called System.Resources.ResourceManager for localizing text. This is similar to the resource bundle support under the Java platform. The documentation for the ResourceManager class is a little spotty. There are a few noteworthy points to make about the interaction of Visual Studio IDE and the resource files. This short article will cover these issues and should serve as a quick reference guide if you are looking to use the ResourceManager class.#
Top Ten New Things You Can Do with NIO
There's nothing wrong with the classes in the java.io package; they work just dandy -- for what they do. But it turns out there are quite a lot of things the traditional Java I/O model can't handle. Things like non-blocking modes, file locks, readiness selection, scatter/gather, and so on. These capabilities are widely available on most serious operating systems today (and a few comical ones, as well). They're not just nice to have; they're essential for building high-volume, scalable, robust applications, especially in the enterprise arena.
Using Castor JDO for SQL Mapping
The primary function of Castor is to perform data binding. Data binding is a process that facilitates the representation of one data model in another. For example, an XML data model, described by an XML schema document, can be approximately represented by Java classes. Castor helps by generating these classes from the XML schema document. Object instances of these classes are then able to store XML document data, so long as such documents conform to the XML schema.#
Java Persistence Frameworks, again
I'd like to understand the available tools a little better, so I've started looking at the tools mentioned in the above posts. I found the feature comparison on the Cayenne project's Wiki to be helpful and I also found a very nice set of Java persistence framework development scenarios on the Hibernate website. The Hibernate folks have outlined four development scenerios for using a Java persistence framework: top-down, bottom-up, middle-out, and meet-in-the-middle. Here is my generalized description of these four scenarios...
Speed up your Swing GUI construction with better building blocks
Developing a Swing-based user interface with many dialogs can be slow and tedious if each dialog has to be hand coded or hand constructed using an IDE's screen designer. This article presents a quicker alternative using two helper classes, LabelledItemPanel and StandardDialog, that handle the common layout of dialogs when most of the dialogs have similar layouts. With these helper classes, the authors reduced dialog development time by up to 80 percent.#