Main

January 02, 2010

My PCM System

I just finished the first release of my PCM (personal content management system). The system I built uses CouchDB, SimpleDB, and a few servlets written in Java to listen, store, aggregate, and publish all the content I produce on Twitter, delicious, NyTimes People, this blog, and other sites. The nice thing, I can still use the regular interface of all those sites to enter content, while in the background my system is gathering that content automatically. That content then gets stored twice, in a local database and in the "Amazon cloud". From where the content then gets published to the ticker page in my new blog: Neuhäusler Weekly.

.. and of course I already have a ton of ideas how I could improve the system :-) ..

November 24, 2009

eZ430-Chronos

eZ430-Chronos: "The world's first customizable development environment within a sports watch ... Priced at $49, Chronos is designed to provide all of the hardware and software needed to immediately begin development of wireless applications.."

.. the ultimate gift for a geek ..

November 21, 2008

CouchDB

"Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. Among other features, it provides robust, incremental replication with bi-directional conflict detection and resolution, and is queryable and indexable using a table-oriented view engine with JavaScript acting as the default view definition language.

CouchDB is written in Erlang, but can be easily accessed from any environment that provides means to make HTTP requests. There are a multitude of third-party client libraries that make this even easier for a variety of programming languages and environments."

.. bye-bye RelationalDBs ..

.. by the way, an interesting approach: "ElasticDB - (Elasticdrive + CouchDB)" ..

June 10, 2008

A History of Erlang

A nice presentation and the corresponding paper about the history of Erlang from Joe Armstrong.

December 02, 2007

SymmetricDS

"SymmetricDS is web-enabled, database independent, data synchronization/replication software. It uses web and database technologies to replicate tables between relational databases in near real time. The software was designed to scale for a large number of databases, work across low-bandwidth connections, and withstand periods of network outage."

.. pretty impressive tool, functionality .. and it's open source ..

November 01, 2007

jSLP and Concierge

"jSLP is a pure Java implementation of SLP, the Service Location Protocol, as specified in RFC 2608. The API is derived from RFC 2614 with some modifications. The implementation runs on every Java2 VM, for instance, also on a J2ME CDC Profile. The footprint of less than 80 kBytes for the full version with SA, UA, and Daemon makes it very feasible for small and embedded devices."

"Concierge is an optimized OSGi R3 framework implementations with a file footprint of about 80 kBytes. This makes it ideal for mobile or embedded devices. Typically, these devices have VMs that are more focused on compactness and less optimized. For instance, purely interpreting VMs often kill the performance of existing OSGi framework implementations. The design of Concierge has been developed with respect to such platforms. Concierge uses resources in a very careful way and is able to provide significantly better performance in resource-constrained environments."

.. an interesting lightweight platform for small networked appliances .. projects from the "Information and Communication Systems Research Group" at the ETH in Switzerland ..

July 26, 2007

Running Hadoop MapReduce on Amazon EC2 and Amazon S3

"AWS and Hadoop developer Tom White illustrates how to use Hadoop and Amazon Web Services together using a large collection of web access logs."

.. a powerful combination .. and an excellent article .. by the way, an AMI is available including instructions for the installation on EC2

July 01, 2007

Enunciate

"Enunciate is a Web service deployment framework. It is not another Web service stack implementation. Rather, Enunciate leverages existing Web service technologies to provide a mechanism to build, package, deploy, and to clearly, accurately deliver your Web service API on the Java platform."

.. looks promising ..

March 15, 2007

Mounting Amazon S3 as a File System in Amazon EC2

"This tutorial discusses how to mount Amazon Simple Storage Service (Amazon S3) as a file system in an Amazon EC2 instance. If you use the mounted file system to store your data, it is automatically saved to Amazon S3. This gives the Amazon EC2 instance the permanent storage it needs, and it does so transparently. Applications that use the mounted file system work in the usual way and see the mounted file system as though it were the local hard drive. Behind the scenes, however, all the data is stored on Amazon S3."

.. as always with EC2, good idea, but quite a few steps to get it up and running .. but the communication between EC2 and S3 is free :-) ..

December 10, 2006

Tutorial Terracotta DSO Slider

"This Tutorial shows how to create a plain and simple Swing application with Eclipse and then cluster it declaratively using Terracotta DSO Eclipse Plugin."

..what nicer way to start with Terracotta than with a pretty simple but powerful example .. enjoy ! ..

September 22, 2006

Social networks and phishing

Social networks and phishing:

"This 'Social Phishing' paper (PDF) that will appear in an upcoming issue of Communications of the ACM is frightening. It describes very successful phishing attacks using information pulled off social networking sites.

From the paper:
The question we ask here is how easily and how effectively a phisher can exploit social network data found on the Internet to increase the yield of a phishing attack. The answer, as it turns out, is: very easily and very effectively.

Our study suggests that Internet users may be over four times as likely to become victims if they are solicited by someone appearing to be a known acquaintance.

To mine information about relationships and common interests in a group or community, a phisher need only look at any one of a growing number of social network sites, such as Friendster (friendster.com), MySpace (myspace.com), Facebook (facebook.com), Orkut (orkut.com), and LinkedIn (linkedin.com). All these sites identify 'circles of friends' which allow a phisher to harvest large amounts of reliable social network information.

The experiment spoofed an email message between two friends, whom we will refer to as Alice and Bob. The recipient, Bob, was redirected to a phishing site with a domain name clearly distinct from Indiana University; this site prompted him to enter his secure University credentials. In a control group, subjects received the same message from an unknown fictitious person with a University email address.

The 4.5-fold difference between the social network group and the control group is noteworthy. The social network group's success rate (72%) was much higher than we had anticipated.
When they received the e-mail to go to this non-University website, 349 of the 487 students targeted provided their University username and password. Remarkable and frightening.

The paper contains other interesting details such as differences in success rates according to field of study and gender of sender and receiver.

See also a Google Tech Talk on Google Video, 'Badvertisements: Stealthy Click Fraud with Unwitting Accessories', by Markus Jakobsson, one of the authors of the paper, that discusses this phishing study and some of his other work on click fraud.

Update: If you liked this, don't miss Markus' demonstration of a crafty CSS/Javascript hack that reveals parts of your browser history. To see it, click on the 'View' link on the right side of his page."

(Via Geeking with Greg.)

.. once again an interesting posting by Greg .. thanks! ..

September 04, 2006

Google Research Publication: BigTable

OSDI'06 Paper: BigTable: "Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size: petabytes of data across thousands of commodity servers. Many projects at Google store data in Bigtable, including web indexing, Google Earth, and Google Finance. These applications place very different demands on Bigtable, both in terms of data size (from URLs to web pages to satellite imagery) and latency requirements (from backend bulk processing to real-time data serving). Despite these varied demands, Bigtable has successfully provided a flexible, high-performance solution for all of these Google products. In this paper we describe the simple data model provided by Bigtable, which gives clients dynamic control over data layout and format, and we describe the design and implementation of Bigtable."

.. extremely interesting paper .. it provides insight about Googles technology .. just read it! ..

August 24, 2006

Amazon EC2

"Amazon Elastic Compute Cloud / EC2 is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers."

"...Amazon EC2 allows you to set up and configure everything about your instances from your operating system up to your applications. An Amazon Machine Image (AMI) is simply a packaged-up environment that includes all the necessary bits to set up and boot your instance."

.. I know, again Amazon, but they are doing quite fancy stuff .. I definitely have to check this out, the whole concept of deployable "AMI"s sounds pretty interesting .. technical documents can be found here ..

August 04, 2006

Amazon: monetizing Web 2.0 with … money

Monetizing Web 2.0: "I've often complained that the business model of most companies publishing Web 2.0 APIs — even Google — is generally, 'Let's put it out there, we'll figure out how to make money from it later on.' The exception is Amazon Web Services. All its API services are designed from the outset to make money."

.. I probably repeat myself .. but I just like that business model just better than some fancy advertisement based model or some everything is free thinking .. but unfortunately that doesn't necessarily mean, that it will be successful ..

March 14, 2006

Amazon Web Services Store: S3

"Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers.

Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites. The service aims to maximize benefits of scale and to pass those benefits on to developers."

.. that is a pretty cool thing .. a platform for innovation .. you can store up to 5 GByte per object .. it even offers Bit-Torrent access .. pay as you go .. offered by Amazon Digital Services ..

December 19, 2005

Are you a Minipreneur?

Are you a Minipreneur?: "According to Trendwatching.com, a minipreneur is a consumer-turned-entrepreneur, taking advantage of resources that were, just a short time ago, available only to large multinational organizations, including cheap hardware and software, access to global design, production, and manufacturing skills, payment systems, online marketplaces, and more."

(Via Amazon Web Services Blog.)

December 07, 2005

Simple Sharing Extensions for RSS and OPML

"SSE: The objective of Simple Sharing Extensions is to define the minimum extensions necessary to enable loosely-cooperating apps

  • to use RSS as the basis for item sharing – that is, the bi-directional, asynchronous replication of new and changed items amongst two or more cross-subscribed feeds.
  • to use OPML as the basis for outline sharing – that is, the bi-directional, asynchronous replication of outlines, such as RSS aggregators subscription lists"

.. interesting .. but probably a little bit too open source for Microsoft ..

October 13, 2005

User-Centric Web Addressing

User-Centric Web Addressing: "The User-Centric Web makes this distinction (between location-aware and location-agnostic resources) very clear so as to take advantage of swarming (or pooling) of resources. Take, for example, a document or blog posting published in a Shared Space. It would be too limiting to restrict the document source to a single URL (pointing to the originator) when perfectly good copies of the document probably exist on other member nodes. This is where a location-agnostic URI that is resolved in real time to one or more physical nodes makes a lot of sense. Decentralized file sharing networks already do this type of swarming through the use of magnet URIs."

.. good idea .. but who will set the standard? ..

September 07, 2005

fac.etio.us

fac.etio.us a search engine / portal based on del.icio.us.

.. good idea .. cool starting point for daily surf-tours ..

June 30, 2005

Google Maps API Documentation

Google Maps API Documentation:   The Google Maps API lets you embed Google Maps in your own web pages.

June 17, 2005

"Hannover" screen shots

Screenshots of the next version of Lotus Notes, code-named "Hannover" .. pretty cool looking and all built based on the Eclipse/SWT platform

June 13, 2005

Choosing a Java scripting language

This article describes some of the issues that come with supporting a scripting language in your Java application and compares Groovy, JudoScript, Pnuts, JRuby, Jacl, Jython, Rhino, and BeanShell in a variety of ways to help you make the right choice.

June 03, 2005

Socialtext Appliance

.. I like appliances ..

Socialtext -- Enterprise Social Software: "The Socialtext Appliance provides all of the capabilities of the Socialtext Workspace in a hardware appliance designed for minimum administration and maximum security."

June 02, 2005

SWT custom widgets summary

SWT custom widgets summary:

There are a few SWT custom widgets available over there. Not as much as Swing, but the number is increasing as the number of developers that adopt SWT is growing. Here are some of them:

  • Novocode SWT controls: Includes a balloon toolip, hyperlinks, internal frames, and dragabble separators. Open source.
  • SWTworkbench controls: Data aware controls and a powerful virtual table that claims to be better than SWT's one. Open Source.
  • KPrint: Print layouts on SWT.
  • KTable: Powerful SWT table replacement.
  • SWTCalendar: Calendar widget. Free.
  • SWT Date Picker: Another calendar widget. Open Source.
  • SWT/AWT Layouts: Layouts based on Swing's ones.
  • Eclipse Colorer custom components: Including a custom table, calendar and splitter. Open Source.
  • SWTPlus components: Custom expandable groups and hyperlinks. Free but not Open Source.
  • Mathias Muller gives some more links:

  • SWTForms, jGoodies forms layout manager. Free, source available.
  • SWT Binding. Not just a custom component but a binding framework for jGoodies. It could be also helpful.

Not very sure if I have forgotten something. Please, let me know about it and I'll update the summary.

(Via Martin Perez's Weblog.)

June 01, 2005

Web Application Solutions: A Designer’s Guide

..nice presentation comparing the different client approaches..

Web Application Solutions: A Designer’s Guide: "Web Application Solutions is a guide that helps designers, product managers, and business owners evaluate some of the most popular Web application presentation layer solutions available today."

May 27, 2005

Haystack, the universal information client

Haystack: "Haystack is a tool designed to let individuals manage all their information in ways that make the most sense to them. By removing arbitrary barriers created by applications that handle only certain information 'types' and that record only a fixed set of relationships defined by the developer, we aim to let users define whichever arrangements of, connections between, and views of information they find most effective. Such personalization of information management will dramatically improve everyone's ability to find what they need when they need it."

May 25, 2005

AJAX encapsulation with TIBCO General Interface

..check the screencast, pretty impressive, but I'm still not convinced that AJAX is the next major UI-technology..

AJAX encapsulation with TIBCO General Interface: " With all the recent AJAX buzz, there's renewed interest in toolkits that can abstract away the inherent nastiness of that style of development. TIBCO's General Interface is one such toolkit, and today's 8-minute screencast excerpts highlights from a demo shown to me yesterday by Kevin Hakman. He's a founder of General Interface, which TIBCO acquired last fall. ..."

(Via Jon's Radio.)

May 18, 2005

Backpack becomes a web service

..that's the way to do it..

Backpack becomes a web service:

Backpack is not just for you to love, but for machines too. The brand new Backpack API makes it possible for other programs to easily talk to your backpack. That opens the door to Dashboard widgets, weblog integration, command-line tools, and much more.

We’ve created a forum to go with the API, too. Let us know of your creations and share them if you can. The API is not all finalized, so hold off with the nuclear reactor integration for a couple of weeks. But have fun experimenting today.

If you’re working with Ruby, have a look at this sample wrapper for the API.

(Via Backpack Weblog.)

May 15, 2005

Backpack Examples

An excellent list of use-cases for the Backpack service .. quite fancy .. perfect for borrowing some ideas.

May 14, 2005

How To Roll Out An Open API

How To Roll Out An Open API:

I've met a lot of companies working on web services APIs while I've been working on Where 2.0. These companies want to reach programmers like me, the ones who will play with something, build a cool app or two, then promote it within their company if they like it. They want to know how to make their service attractive to these Internet programmers.

I always tell them, 'Make it useful and easy.' All too often the company is so tied up in its existing business that its idea of an 'open API' is 10 hits/day, strictly non-commercial use, SOAP-only, with fax-in paperwork only downloadable with the latest version of IE on Windows. They're looking at the API purely from the point of view of the provider. But if you want me to use this API, you'd better start thinking about it from my side: I want something that's easy to start using and that will scale with the coolness of the apps I build.

(Via O'Reilly Radar.)

May 06, 2005

Effective desktop applications

Effective desktop applications:

Some months ago I wrote an article in Spanish called Aplicaciones de escritorio eficientes, that could be translated as Effective Desktop Applications. I wrote this article because this is a very important topic forgotten by the common biliography. It's very easy to found information about EJB best practices, Servlet/JSP/JSF best practices, persistence best practices, web services bestpractices, interoperability best practices, but what about the desktop?

Even it seems that Sun is planning with Mustang some type of swing blueprints - correct me if I'm wrong, I think I have read this somewhere just today. That would be a great thing!

Well, in this article I talk about different best practices I found during my last +5 years of Swing programming and =2 years of SWT programming. I planned to translate it to English, but it's very very difficult to find some time to translate -my English isn't specially good, so I need a lot of time :-). But today I decided to post here the best practices summary. You can contribute and if people is interested, we could talk about some point in a different weblog entry.

So here we go:

  • 1 - Leverage UI frameworks. Take in count frameworks like jGoodies, Foxtrot, JNDC, or even rich client platforms like Spring RCP, Eclipse RCP or NetBeans Platform
  • 2 - Show your UI interface as fast as possible. If your applications starts in few seconds, then you have earned a point to success.
  • 3 - Use threads extensively. The key is asynchronous operation. The user shouldn't wait for long running tasks. Here SwingWorker or Foxtrot have a key rol.
  • 4 - Always show progress feedback to the user. Do you like when you push a button in a program and there is no messages, no status bar text, no progress bar, ... ?
  • 5 - Don't load information that it won't be needed. Lazy load all the information that won't be used.
  • 6 - Prefetch all the useful information as soon as possible. Eager load all the information that will be used. This load is related with item (3) as should be performed with background tasks.
  • 7 - Avoid to load huge amounts of data. Do you know any person able to digest a 10.000 rows table? Restrict queries. Show information in pages, or in structures easy understabke.
  • 8 - Minimize external resource access. The network doesn't come at zero cost. Every remote access has cost in terms of time and CPU compsumption.
  • 9 - Know your framework as you know yourself. Are you sure that your framework doesn't have any memory leaks? Do you know that with option XXX you can get a 50% performance boost? ...
  • 10 - Leverage operative system resources, if possible. If you don't have platform compatibility as a mandatory requisite, then probably you can leverage operating systems tools and resources, like embedding internet explorer in your UI, leveraging system tray, using JNI calls, etc.

I think that to work developing healthcare systems has helped me a lot to understand the great importancy of the items above. For example, when a cardiologist is doing some operation, and has to check some information on the patient clinical history, the last thing he want to do is waiting some minutes for that information to be downloaded. So in this job, you're encouraged to do very responsive UIs; to lazy and eager load data in a smartly way; to offer the possibility of offline working - imagine, that you're being operated, and suddenly the network adapter goes down, etc.

Well, do you have any other suggestion to this list? Do you like to talk about any special item?

(Via Martin Perez's Weblog.)

April 25, 2005

Migration: Eclipse RCP 3.1

Migration: Eclipse RCP 3.1:

This is part of the Eclipse 3.1 migration series that I have put up on my blog. The previous blog post on 3.1 migrations can be found at

Hope you have found those information useful.

In Eclipse 3.1, the WorkbenchAdvisor has been refactored to move out window-level responsibilities to a new window advisor - WorkbenchWindowAdvisor, and further division is the new ActionBarAdvisor to handle actionbar related functionalities. These changes lead to a cleaner and easier implementation.

(Via nice3z -.)

April 23, 2005

jLibrary, your desktop CMS (1.0 beta2 released)

jLibrary, your desktop CMS (1.0 beta2 released):

Yes, finally jLibrary 1.0 beta2 has been released. jLibrary is a new kind of CMS tool. Based on Eclipse Rich Client Platform, jLibrary is a rich client application that allows you to work with your documents, and media, in a very easy way, allowing categorization, export/import operations, cut/copy/paste, drag&drop, favorites, security constraints, etc. etc. etc.

-martin

(Via Martin Perez's Weblog.)

April 20, 2005

Inventor's Handbook

Inventor's Handbook:

'This Handbook was created by the Lemelson-MIT Program to address the independent inventor's and aspiring entrepreneur's most frequently asked questions regarding United States patents...

Chapter 1: What Is Intellectual Property?
Chapter 2: What Can Be Patented?
Chapter 3: Is My Idea Patentable?
Chapter 4: How Do I Conduct a Patent Search?
Chapter 5: Is My Invention Worth Patenting?
Chapter 6: How Do I Apply for a Patent?
Chapter 7: How Do I Prove the Idea Is Mine?
Chapter 8: What Are Some Options to Commercialize My Patent?
Chapter 9: How Do I License My Invention?
Chapter 10: What Are Some Guidelines in Developing a Business Plan?
Chapter 11: How Do I Raise Capital?
Resources for Inventors'

(Via Venture Chronicles by Jeff Nolan.)

April 03, 2005

The Best Kept Secret : NetBeans' Successful (Rich Client) Platform

The Best Kept Secret : NetBeans' Successful (Rich Client) Platform: "Alot of the focus has been on the IDE portion of NetBeans, but there is a powerful NetBeans Platform framework that many have used to create rich client applications."

(Via cld.blog-city.com.)

March 29, 2005

JotSpot Is Free for Open Source Projects

JotSpot Is Free for Open Source Projects: "JotSpot is now free for open source projects! We've been wanting to offer this for a while now, but we've been waiting for guest user (i.e. anonymous) support, which just arrived with the latest update. Jot benefits greatly from open source software, and this is one way we can give back. And because a JotSpot wiki is provided as a hosted service, open source projects not only get the bits free, they get the server hosting and management free as well -- the whole enchilada. (Note that we're still in beta, but this offer is through GA and beyond... ) You can go here and get your site in a minute or two. Just be ..."

(Via JotBlog.)

March 11, 2005

Peer-to-peer movies with Peerflix

Peerflix, a young Menlo Park company that we profile in today's Mercury News. It's a valley start-up that is hoping to build a business around the idea of peer-to-peer DVD sharing.

(Via SiliconBeat.)

March 07, 2005

Speirs.org :: Appcasting

Speirs.org :: Appcasting

using RSS 2.0 enclosures to deliver application updates.

(Via Venture Chronicles by Jeff Nolan.)

March 02, 2005

Day 3: Packaging, Deploying and Running Rich Client Apps

Day 3: Packaging, Deploying and Running Rich Client Apps: "Thanks to everyone who came to my talk this morning. The final slides and examples now available. Slides: http://www.eclipsepowered.org/files/presentations/EclipseCon2005 Examples: http://www.eclipsepowered.org/files/presentations/EclipseCon2005_6.2.zip"

(Via eclipsepowered.)

February 28, 2005

Eclipse RCP Slides at EclipseCon 2005

Eclipse RCP Slides at EclipseCon 2005: "EclipseCon 2005 will be without any doubt the Eclipse event of the year, and also one of the most important Java events this year. But the greatest thing is that those of us that cannot be there, there is some slides available.

You can check the full program in the main event page. In the Eclipse RCP section, there are several very interesting slides:

  • End-to-end Rich Client Platform Solutions, by David Orme (download)
  • Developing for the Rich Client Platform, by Nick Edgard and Pascal Rapicault (download)
  • Developing Eclipse Rich-Client Applications, by Frank Gerhardt, Christian Wege (download)
  • Creating, Packaging, Testing and Deploying Features in Eclipse 3.0, by Pat McCarthy, Sandy Minocha (download)
  • Workbench and JFace Foundations, by Tod Creasey, Michael Van Meekeren (download)
  • Introduction to SWT, by Grant Gayed, Carolyn MacLeod (download)
All are very interesting, but I must say that Nick Edgard and Pascal Rapicault's one is really, really great!"

(Via Martin Perez's Weblog.)

February 17, 2005

RCP Installer

RCP Installer: "I've created an example RCP Installer using NSIS and the RCP Mail example from the most recent 3.1 Integration build. Give it a try, see if it installs ok on your Windows box, and give me your feedback. This will be one of the examples used in my EclipseCon2005 presentation. ..."

(Via eclipsepowered.)

February 15, 2005

DEMO: The Launchpad for Emerging Technology

DEMO continues its unrivaled reputation for attracting and introducing technology's most promising new products. Hundreds of innovative companies from around the world pitch to debut at DEMO, but only the few very best are chosen... Additional info on BloggingDemo.com

February 14, 2005

Nomad PIM

Nomad PIM: "Nomad PIM is an Eclipse rich client platform based personal information manager (PIM). Currently, there are modules for notes, diary, money management, and contacts, in addition to a basic workarea where a text can be written. All data is automatically saved and internally available in an 'object space'. The intention is to make all 'space objects' available to other plugins, so extensions of modules themselves will be easy, too. The personal data is stored in several (unicode) xml files and can be used in all supported operation systems, so it will be easy to work with the same data in Linux and Windows, for example. This is important if multiple operation systems are installed on one pc and the user often switches between them."

(Via EclipsePlugins: new and updated plugins.)

February 10, 2005

First Look: Ubergroups

First Look: Ubergroups: "I was turned onto Ubergroups yesterday (having completley missed other commentary on the product). In a nutshell, it is a social tools space for team-based project work, supporting real-time (IM, Chat, file transfer) and slow-time (blogs, file repository, Chat history,..."

(Via Get Real.)

February 03, 2005

jDBI 1.2.3

jDBI 1.2.3: "

Just pushed jDBI 1.2.3. Much thanks to Patrick and Robert for prodding me make a couple big changes, and for prodding me to not make those changes until I found the right way, respectively (for 1.2.2 (transparently handling different transactional contexts) and 1.2.3).

The biggest change is making externalized SQL pluggable. It was something that had been itching for a while (previously it could only pulled named statements from the classpath, though pretty smartly), and Patrick's need for sticking the SQL in the database prodded me to finally support that explicitely. He's not using it, I don't think, but you'd better bet I will before too long =) Maybe stick them in a JNDI or an LDAP instead, or whatever. It's all good.

Speaking of the classpath approach, what I did on the last new thing I used jdbi for was to take advantage of Java's nice resource loading and bundle all the sql into its own jar, under an sql/ directory, so you'd have:

sql/
    find-foo-by-id.sql
    find-foo-by-name.sql
    
...

Map foo = handle.first('sql/find-foo-by-id', Args.with('id', new Long(fooId)));
Map same_foo = handle.first('sql/find-foo-by-name', foo); // gets 'name' from map

The hack here is that the named statement is fetched correctly, and if you unzip the sql.jar to tweak the sql, it's in its own dir, not the working dir. This is minor, but I have things that untar (zip|jar) into the working directory =)

Anyway, the release is up on Codehaus. Have fun!

"

(Via Waste of Time.)

February 02, 2005

Eclipse RCP installer tools

Eclipse RCP installer tools: "A good thread about installers on RCP applications has been started at Eclipse RCP newsgroup.

In addition to known products like NSIS, izpack or BitRock InstallBuilder, the one which called my attention was XtremeJ RCP Builder

XtremeJ RCP Builder, based on SIS, it's integrated on your Eclipse environment as a plugin, and it seems that automatizes very well the installer creation task. There is a free edition available as an Eclipse feature. These are the steps:

1. Select the menu 'Help > Software Updates > Find and Install'.
2. Choose 'Search for new features to install'
3. Click 'New Remote Site', and enter the XtremeJ update site URL 'http://www.xtremej.com/updates/'
4. Select the 'XtremeJ RCP Builder Feature' and proceed to finish the installation.

And here is the User's guide.

It seems interesting."

(Via Martin Perez's Weblog.)

February 01, 2005

Creating EJB clients using the Eclipse Rich Client Platform

This article shows how to build a sample EJB client using the Eclipse Rich Client Platform (RCP), which has become increasingly popularity due to its extensible nature. Besides focusing on how to use IBM® Rational® Application Developer to build an RCP application, this article also details how to configure an Eclipse RCP application to act as a J2EE application client.

The Approved Licenses

A list of copies of the licenses approved by OSI. If you distribute your software under one of these licenses, you are permitted to say that your software is "OSI Certified Open Source Software."

January 28, 2005

RCP security work underway

RCP security work underway: "The Equinox team has created a Security work area in order to further discussion and development of Eclipse and the Eclipse RCP as a secure application platform. See the overview and related topics for more information. Of particular interest is a class-by-class analysis underway of the RCP core plug-ins."

(Via eclipsepowered.)

January 27, 2005

Apache DS 0.8 (Incubated) Released

24 January 2005 - Apache DS 0.8 (Incubated) Released: "The Apache Directory team is pleased to announce the release of Apache DS 0.8, a pure-Java LDAP server (Incubated).

Our primary vision is to build an enterprise directory server platform and its components where other Internet services snap in to store their data within the directory so they may be managed using LDAP. Those services include LDAP itself, DNS, DHCP, SLP, UDDI, NTP, and most importantly Kerberos, which can integrate with the services to provide full-featured network authentication service.

Features:

  • Designed as an LDAP and X.500 experimentation platform.
  • The server exposes all aspects of administration via a special system backend.
  • Both the backend subsystem and the frontend are separable and independently embeddable.
  • Provides a server side JNDI LDAP provider which directly interacts with the backend storage.
  • Powered by Staged Event Driven Architecture (SEDA) which can handle large amounts of concurrency.

Coming soon:

  • Remote management via JMX.
  • Java-based triggers and stored procedures.

The Apache Directory team is looking for developers and users to work with the server and give feedback. Mailing list information is at: http://incubator.apache.org/directory/mailing-lists.html

Please note that the Directory Project is an effort undergoing incubation at the Apache Software Foundation (ASF). While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Check ApacheDS at: http://incubator.apache.org/directory/

The Apache Software Foundation provides organizational, legal, and financial support for a broad range of open source software projects. The Foundation provides an established framework for intellectual property and financial contributions that simultaneously limits contributors potential legal exposure. Through a collaborative and meritocratic development process, Apache projects deliver enterprise-grade, freely available software products that attract large communities of users.

----

-- The Apache Directory Team

"

(Via Apache News Blog Online.)

.Mac SDK

Taking advantage of .Mac within your application starts with the .Mac SDK. Unveiled at WWDC, the.Mac SDK includes the DotMac Kit—an embeddable framework that allows you to tightly integrate the Internet-based .Mac services with your application—all without any network programming... interesting!

January 26, 2005

Eclipse RCP knowledge links summary

Eclipse RCP knowledge links summary: "Due to my work with jLibrary, an Eclipse Rich Client Application based application, normally, each week, I get some emails asking me if I know some articles, books, URLs, related to Eclipse RCP development. I'm tired of rewriting everytime the same, so I'll condense here all the Eclipse knowledge links that I have.

Downloads:

Websites:

Newsgroups and email lists

Books

Articles

Presentations

Weblogs:

Code samples

"

(Via Martin Perez's Weblog.)

January 20, 2005

The wiki wars

Palo Alto wiki company JotSpot leaked news today that it had signed up Walt Disney as a paying customer, stealing it away from its Palo Alto competitor, Socialtext. Disney is JotSpot's first major customer. Though Socialtext's Ross Mayfield doesn't seem fazed.

See full story here.

More here on the (former) relationship between Socialtext and Disney.

[SiliconBeat]

January 14, 2005

IBM Integration plug-in for Derby

Version 10.0.2

The IBM Integration plug-in for Derby provides a seamless integration between Eclipse and Apache Derby. It enables the use of the Derby database JAR files as an installable component to Eclipse. Additionally the ij SQL scripting tool and the Apache Derby Network Server can be run from the Eclipse console.
[EclipsePlugins: new and updated plugins]

January 10, 2005

Flow 1.5

Flow 1.5 - Peer to peer collaborative content/knowledge manager.
[MacUpdate - Mac OS X]

January 05, 2005

Faster, Easier Product Development: Delicious Library Takes Advantage of Cocoa Bindings

Their personal approach with Delicious Monster has already made the product a resounding success. With a small but talented development team (we started with one and one-eighth programmers, says Wil), the company designed and implemented Delicious Library, an innovative visual card-catalog program for keeping track of all your books, movies, music CDs, and computer games. The company's web site started selling Delicious Library on November 8, 2004. One month later, it had amassed sales totaling nearly $250,000.
[Studio Log]

January 02, 2005

RCP Community Site

The Eclipse Foundation has created a new web page to showcase RCP Applications. Do you have a commercial or open source application based on the Rich Client Platform? It's easy to get yours listed to generate interest in the technology (not to mention get a little free publicity).
[eclipsepowered]

December 29, 2004

Tor anonymous Internet communication system

The Tor anonymous Internet communication system has an oniony, user-friendly new Web site to go along with their EFF funding. Besides hiding from government and big business snoops, Tor is also great when using open wireless networks.
[Hack the Planet]

November 27, 2004

Ibis

Ibis, a Java library for Grid computing.

November 19, 2004

IDE for Laszlo

You can download a new IDE for Laszlo technology preview from the Alphaworks site. Laszlo is based on LZX, a XUL-like language for Rich Internet Applications (RIAs), and the IDE is a set of Eclipse plug-ins that let you edit, preview, and debug these applications. There is a demo, written ...
[eclipsepowered]

October 28, 2004

Aramova CoreWorks Smart Client Framework

The CoreWorks Architecture is an extensible modular framework that allows support for multiple access media (Wireless, Dial, DSL, Cable) within a single Smart Client Framework. The solution is optimized for mobile services.

In addition to service activation and connection management, the platform supports the deployment of customer service applications such as, Self Care, Messaging and QoS reporting. The framework is also a mediation platform that also allows to plug in third-party solutions such as content filters, data accelerators, or VPN access.

[richclients.org - Rich Internet Applications]

October 27, 2004

Stock trading RCP application

Even if you are not into stock trading (maybe you're like me and bought CMGI at 300 right before the pop :() you should check out a new SourceForge project called Eclipse Trader.

[eclipsepowered]

October 08, 2004

Plugging in a logging framework for Eclipse plug-ins

Eclipse lacks a configurable logging facility with rich features like the ones found in J2SDK Logging Utilities or Apache's Log4j. This article proposes a logging framework for Eclipse plug-ins that is itself a plug-in. The article explains how the log can be used and configured and how it was developed. Complete source code for a logging framework based on the Apache's Log4j is provided. The code can be freely used and extended.
[IBM developerWorks Open source projects]

September 27, 2004

MBX

MBX offers appliances with interesting branding options.

September 01, 2004

Software maker launches remote-access tools

Among new products from 3am Labs is a free tool for accessing a PC via any device with a browser.
[CNET News.com]

August 24, 2004

Jakarta Commons Launcher 1.1 Released

The Jakarta Commons team is pleased to announce the release of version 1.1 of the Jakarta Commons Launcher component. Commons-Launcher eliminates the need for a batch or shell script to launch a Java class. Launcher 1.1 is the first official Jakarta Commons release of launcher after it was migrated from the tomcat project almost 2 years ago. (see release notes for more info) The latest binary release is always available on the Jakarta Binary Downloads page, its source is available...
[Apache News Blog Online]

August 16, 2004

security and privacy in clevercactus share

As share spreads, we’ve been getting more specific questions about how it works: for example, what do we mean when we say that share is a “private and secure environment” to share files, or what kind of chat infrastructure or protocols we are using. These are important topics since we want share to be useful in both personal and work environments. So I wanted to take some time to explain the basics without getting lost in technical details (maybe there isn’t much chance of that, but I’ll try).
Private? Secure? Really?
“Private and secure” are terms that are widely over- and mis-used in a variety of contexts and that can concievably be spun pretty much whichever way you want. The most obvious way to spin their meaning is by attaching conditions to them. Take this imaginary excerpt from the imaginary press release of an imaginary product:

“BoondogleGadget™ is fully secure.
**Support note: BoondogleGadget™ is fully secure only if you disable half the services and enable the security functionality that we ship built-in, but forgot to turn on for the release.”

Ok, maybe this is not so “imaginary,” as it would describe a good number of applications and environments, and I’m sure one or two come to mind more easily than others.
That last bit might appear to be a digression, but it’s not. Why? Because security cannot be optional.
In share, if you can see a contact as online, then it means that a) you have them in your contact list and have approved their contact, and b) that a secure (read: encrypted, one-to-one) connection has been established between you and your contact, in many cases a direct connection (a relayed connection is possible, I’ll get to this in a moment).
All the information (and I mean all the information) transferred through share goes through that encrypted, authenticated channel. Connections made to our servers for authentication or data retrieval purposes (such as obtaining your contact list) are made over HTTPS. As far as connections between you and your contacts, encryption is negotiated on a user-to-user basis: someone talking to you would have no way of reading what you are telling someone else, even if they could intercept the connection (which is possible, although extremely difficult to do). Finally, your personal share network is by default private. You have to go into your preferences in your share account and explicitly share your contact list with others, and even then they could only see who you know, but they wouldn’t have a way of knowing what you are exchanging with them (actually the “share your network with your friends” feature isn’t enabled yet, but it will be soon).
Let’s say, though, that you were half asleep and let someone you don’t know into your network. They are online, and connected to you. Eventually you’ll realize this, and remove them from your contact list. But in the meantime? In the meantime, nothing will happen, because share only gives access to data that you have explicitly shared with a contact. (Now, if you’re consciously sharing your personal files with strangers, that’s another matter entirely, there isn’t much we can do about that).
Encryption is not optional, it can’t be turned off, it can’t be disabled from the application or any of the preferences. One-to-one channels can’t be turned off. You can’t see the folders or files that haven’t been explicitly shared with you by others, and viceversa.
This isn’t to say that it is impossible to break into the system: not only that’s a negative that can’t be proven; I’d be foolish to say that’s the case even if I hoped that was true. But the nature of the application (small groups in closed circles, no broadcast capabilities, secure one-to-one channels) means that at a minimum it is extremely difficult to do so. And even if you do get in, somehow, somewhere, what could you see?
The answer is: not much, since they would be constrained by the way information propagates in share, and, more specifically on how connections are handled.
The connection sequence
When it connects, share attempts to open connections using a fallback sequence, attempting first to establish direct communication, then relayed. This means that if you are behind a closed firewall and want to share with, say, your coworkers, you can, as long as HTTPS connections out are allowed. If the network is completely disconnected from the Internet or does not allow HTTPS access, you will not be able to connect (we are looking at ways to improve this of course, but that’s the situation at the moment).
The default port for share is TCP 7001 (this can be changed in the Preferences). If you are at home, and, say, map port 7001 from your firewall to your machine, every person that connects to you will do so directly. If no direct connection can be established, a relay will be used (if possible–this isn’t guaranteed either, after all, your access to the Internet might be highly restricted). As mentioned above, communications are encrypted, and, since the encryption is user-to-user, the relay can’t “see” what’s being transferred, it simply passes packets along. The information is only accessible on the sender and receiver end.
Direct connections are also crucial for speed on local networks. See it for yourself: load up share on two machines (you’ll need two identities for now, eventually you won’t, but that’s a topic for another day) on the same intranet, and transfer a few big files (try setting the “maximum simultanous uploads” and “max uploads per user” to a relatively high number—say, 10). On intranet connections, we have seen aggregate transfer rates that routinely max out an Ethernet LAN.
You own your data
“But you have servers right?” Would be the logical question to follow the above. And it’s a fair question. What do we store? How do we deal with what we store?
To a large degree, we have a server-side infrastructure to make the service easy to use and reliable: to backup your contact list and some of your preferences, to provide enough to the clients so that they have the best chance of communicating directly, and so on.
But, specifically, what do we store? We store your email address and name, and preferences, and whether you are online or not (not the specific status, such as “Busy"—that is communicated directly between you and your contacts), as well as your contact list. No information is public, and once we enable the “sociable” (read: social software) features, not only they will all be optional, but the settings will default to maximum privacy. You will have to turn things on explicitly to share information with others.
What we do not store is any information whatsoever related to data transfers, communications, chats, and so on. In fact, we really have no way of knowing any of that, since connections are (one more time, all together now) one-to-one, encrypted, and typically direct between participants.
As to the data we do store (or even know about) we have a pretty strict privacy policy.
In short: We do believe “that you own your data” and share has been designed so that it stays that way. We have done our best to make share as secure as we can, and we’ll continue looking for ways to improve it.
This ended up being a bit longer than I intended originally, but hopefully it wasn’t completely boring. Anyway, that’s it for now.
And as always, comments, questions, and suggestions will be appreciated!
[the cactus log!]

August 09, 2004

InterComm

"InterComm™ is next-generation instant messaging software that makes communication more productive for team-based projects. InterComm offers a level of functionality beyond currently available IM products through its workgroup organization."

The State of Social Tools

"The core benefits of all social tools are very similar, which means
we are going to see (and in fact are seeing) a lot of convergence.
It's good for your swarmth."
... an interesting article.

July 30, 2004

IBM to make Java database open source

Big Blue is creating an open-source project around Cloudscape, a niche Java database, CNET News.com has learned.
[CNET News.com]

July 29, 2004

PasteboardPeeker

PasteboardPeeker demonstrates the use of pasteboards for copy&paste and drag&drop. The Pasteboard is also utilized for Service support and providing a PasteboardPeeker service to other applications. It also contains a small example of the Translation Services client API and provides a filter service.

July 27, 2004

Spike

Spike, the network clipboard, makes sharing not only secure, but as simple as cutting and pasting, for Windows and OS X.

ClipboardSharing

ClipboardSharing is a Mac OS X application that allows you to share clipboard contents on the network. You can transfer almost anything that can be copied to a clipboard, including formatted text and images.

July 02, 2004

Excellent New Personal Content Manager

Near-Time has released a powerful new information management and distribution application called Flow. It is almost enough, all by itself, to make me want to switch to the Mac.
[O'Reilly MacDevCenter.com]

June 30, 2004

Dan Bricklin Launches RSS Application

Dan Bricklin, one of the truly great talents and people in the technology field, has been busy on a new project, and he released it into the wild today. It's called ListGarden 1.0, and it "creates and maintains RSS feeds."

Dan's aiming at the many folks whose software doesn't automatically create RSS files, and he's onto something useful with this. I'll be playing with it in the next few days.

[Dan Gillmor's eJournal]

June 28, 2004

more links about Java and IM

can be found here.

June 22, 2004

some links about im java

  • Hamsam
    http://hamsam.sourceforge.net/
  • JMsn
    http://sourceforge.net/projects/jmsn
  • iChat
    http://www.zeroconf.org/Rendezvous/
  • Jaimlib
    http://sourceforge.net/projects/jaimlib/
  • Ooimlib
    http://sourceforge.net/projects/ooimlib/
  • Jabber
    http://www.jivesoftware.com/xmpp/smack/
  • Yahoo [Eimp blogs]
  • June 17, 2004

    Pocketster

    Pocketster is a wireless personal web server for the PocketPC that advertises itself to other Pocket PCs in the neighbourhood using ad-hoc WiFi networks and Rendezvous.

    Pocketster also allows you to browse for nearby devices running Pocketster and view the content published by the Pocketster server on those devices. You can also browse for regular Rendezvous services published on your network.

    June 14, 2004

    MultipleDesktops

    In the last few months I've changed an important aspect of my
    working life. In the past I tried to work on only one computer (or
    more strictly only one hard drive). All my working files were kept
    on my laptop hard drive. If I used a desktop machine I used those
    files through file sharing facilities.

    This changed last year when I bought my powerbook. Now I swap
    regularly between three computers: mac powerbook, windows laptop,
    and linux/wintel desktop. My main work is done on either the mac
    or the windows laptops - I'm using the linux desktop mainly as an
    experiment to see how worthwhile it is.

    All of this means I need to keep multiple machines up to date
    with each other - at least as far as my working files are
    concerned. I've been greatly helped by the fact that just as I
    went to multiple desktops, my main email service shifted from POP
    to IMAP. Despite some hiccups, I can say that IMAP (I use
    Thunderbird as my client) works very well across multiple
    machines.

    Most of my working files are coordinated by CVS. Any time I
    switch machines I commit my working directory and do an update on
    my new machine. Everything keeps nicely synced, and I get full
    version control too. Of course CVS does have its irritations, and
    I really ought to try subversion as soon as I get around to
    installing it on my server.

    Some synchronizations aren't as good as I'd like. Keeping my
    address books straight is awkward. Thunderbird insists on putting
    them in a particular place, which puts them out of the CVS check.
    Furthermore it's binary, which makes merging harder. This is
    particularly annoying as I like the fact that Thunderbird works
    with textual files for email - which adds to my comfort when
    hiccups do happen. And then the sync with the PDA is awkward
    too. I could really do with a decent way to sync up all my
    contacts and calendar stuff across these platforms. Another area
    is news aggregators. They can share feeds through OPML (at least
    in theory) but not keep track of what I've read and what I haven't.

    Keeping to text files as much as possible is useful. As I do all
    my writing in XML, all I need is a text editor to keep my writing work
    in sync. Diagrams are more of an issue, as there isn't anything
    that works for me on all platforms. But of course part of the
    advantage of the multiple computer setup is that I can use any
    application that's particular to one system.
    [Martin Fowler's Bliki]

    June 08, 2004

    JDesktop Integration Components API (JDIC)

    The JDesktop Integration Components (JDIC) project aims to make Java™ technology-based applications ("Java applications") first-class citizens of current desktop platforms without sacrificing platform independence.

    JDIC provides Java applications with access to facilities provided by the native desktop such as the mailer, the browser, and registered document viewing applications. Additionally it provides the mechanisms by which Java applications can integrate into the native desktop such as registering Java applications as document viewers on the desktop and creating installer packages.

    June 04, 2004

    Preclipse

    Preclipse is an Eclipse plugin providing extensive support for the Java prevalence layer Prevayler during the development phase of prevalent systems.

    Formation offers OS X personal info organizer

    Mekanica Software has released Formation 1.0 for Mac OS X, a US$29.95 personal information organizer that combines lists, notes, contacts, calendar, media browsers, scrapbook, smartlinks and more with a customizable interface...
    [MacMinute.com: Up-to-the-Minute Apple Mac News]

    May 06, 2004

    Desktop Transporter 1.0

    Desktop Transporter makes it possible to share Mac desktops over a network, with Rendezvous for shared display discovery.
    [MacInTouch]

    April 20, 2004

    spurl.net

    spurl.net a "better" del.icio.us? .. anyway I still like the concept of both these products.

    March 29, 2004

    tunA

    tunA is a mobile wireless application that allows users to share their music locally through handheld devices. Users can "tune in" to other nearby tunA music players and listen to what someone else is listening to. Developed on iPaqs and connected via 802.11b in ad-hoc mode, the application displays a list of people using tunA that are in range, gives access to their profile and playlist information, and enables synchronized peer-to-peer audio streaming.

    clevercactus

    clevercactus is a private and secure environment to share files with people you know.

    March 25, 2004

    Bryan Bell

    Bryan Bell's Portfolio of icons he designed.

    mini-itx.com

    Nice hardware based on the VIA motherboard.

    March 15, 2004

    Onfolio launched

    Onfolio, a.k.a. Project 31, has gone live. Congratulations to JJ Allaire and the team! A great day for rich client innovation. [Ray Ozzie's Weblog]

    March 12, 2004

    Gumstix

    A real tiny computer..

    Xfire

    Xfire an Instant Messenger for gamers .. interesting idea, especially the integration with the local game software.

    February 09, 2004

    Model Financing Documents

    A template set of model legal documents put together by a group of leading venture capital attorneys.

    February 08, 2004

    Some links about IM java

    http://hamsam.sourceforge.net/
    http://sourceforge.net/projects/jmsn
    http://www.zeroconf.org/Rendezvous/
    http://sourceforge.net/projects/jaimlib/
    http://sourceforge.net/projects/ooimlib/
    http://www.jivesoftware.com/xmpp/smack/
    http:/ [Eimp blogs]

    December 18, 2003

    Pepper

    The Pepper Keeper introduces a new class of software, designed specifically for consumers, for instant sharing and collaboration via IM (instant messaging) or e-mail.

    December 11, 2003

    hello

    Hello is a new program that lets you connect directly with your friends to share your digital pictures. If you’ve used an instant messenger program before, you’ve already got the idea—Hello is special because it lets you share your pictures along with your messages.

    Renaissance

    Renaissance from GnuStep is a window runtime for OS X based on XUL.

    m0n0Wall, m0n0BSD

    Cool stuff for embedded systems.

    December 10, 2003

    Agent Frank

    "The goal of Agent Frank is to be a personal intelligent intermediary and companion to internet infovores during their daily hunter/gatherer excursions."

    December 09, 2003

    Kaffe

    Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment.

    December 05, 2003

    JLicense

    WEBSina has released JLicense 2.6.1, a simple Java library for creating and validating license keys.
    The binary is free beer. Source code will cost you $50.
    [Cafe au Lait Java News and Resources]

    December 04, 2003

    Java P2P sockets

    p2psockets is a reimplementation of the standard Java sockets on top of JXTA !
    They already have JSPWiki, Jetty and other stuff running on top of it.

    I'm looking forward to give it a try.
    [Codito ergo sum]

    December 03, 2003

    Eclipse's Upcoming Microkernel

    There's been a lot of microkernels and component frameworks popping up on the radar screen lately. The ones I've read about include: Shocks, Keel Framework, Spring, PicoContainer, and HiveMind. All have a lot in common (usually at least IoC a la Avalon) but are still quite different in some respects. But I think it's a very interesting movement which will certainly prove to have a great impact on how many Java applications are developed in the future.

    In a way Eclipse also has its own microkernel, which basically constitutes of the simple, yet very powerful plugin mechanism and a set of core plugins. Unfortunately this microkernel has not been very accessible as such, as trying to base an application on it requires a whole bunch of other IDE specific Eclipse plugins as well as a workspace to store data and metadata.

    This is to change with the forthcoming (and now already as M5 build available) version 3.0 of Eclipse. They call it the Rich Client Platform, or RCP for short. It is a stripped down Eclipse platform to be used by general purpose (non-IDE) applications with facilities for:

    • storage of user settings (e.g. preferences)
    • storage for configuration state of plugins
    • product updates

    As has been noted by several others Eclipse 3.0 will also have a reworked core runtime as explored by the Eclipse Equinox subproject. This new core will also be the core of RCP and will ultimately allow both the Eclipse platform and the RCP to dynamically load and unload plugins, which up until now only has been possible during startup (i.e. statically). The OSGi standard implemented by Equinox should also provide Eclipse and RCP with a sophisticated security model. Read more about the RCP here.

    I wonder how useful this RCP will be for CLI based (or headless) applications. I really look forward to testing this new RCP.

    [Knut's Weblog]

    November 26, 2003

    VIA Arena

    The VIA Arena site contains a lot of information about VIA's motherboard and it's usage in embedded systems.

    November 18, 2003

    Eimp

    Eclipse Instant Messenger Plugin is a plugin for Eclipse. It integrates some popular im protocols(MSN,YAHOO,ICQ,AIM,etc.).

    November 07, 2003

    Build Desktop Applications with Java-Based Web Technologies

    A new development and application-packaging model can be a bit intimidating, but it is potentially very powerful. It's easy to imagine using this model to build a digital-hub-style application, one that serves the other systems in your household, regardless of the OS, by accessing the web applications living on other systems in the house, perhaps using Rendevous/ZeroConf to dynamically discover services at runtime. You can add support for document handlers to achieve closer desktop integration, or integrate a database such as hsqldb to provide for a complete database-driven web platform. Or, use this in conjunction with web services for new collaboration and cooperation capabilities. The possibilities abound.

    November 04, 2003

    The inter-personal information manager (iPim)

    With 40% of the online population now having always-on, broadband connections, new types of tools are needed for consumers to better manage the online information that flows through such connections. This blog discusses the attributes of one such tool, which I call an inter-personal information manager, or iPim for short. [O'Reilly Network Weblogs]

    November 03, 2003

    Collaborative Analytic Computing

    Interesting topic at Bedarra's research site:

    "There is an acute need for better facilities to seamlessly and efficiently collect, analyze, annotate, filter and store semi-structured information from multiple sources, such as documents, presentations, diagrams, numerical data, images, and maps."

    Open Source Agent Systems Written In Java

    A list of Agent Systems written in Java.

    October 13, 2003

    EJBCA 2.1

    EJBCA 2.1, an open source, Java 2 Enterprise Edition (J2EE) Certificate Authority, has been released.
    EJBCA can be used standalone or integrated into other J2EE application.
    It supports multiple levels of certificate authorities, individual enrollment and batch production of certificates...

    September 21, 2003

    Deploy an SWT application using Java Web Start

    The marriage of SWT with Java Web Start provides powerful tools to deploy great-looking client-side Java applications.

    September 19, 2003

    Quotient

    Divmod Quotient brings together your email, IM/IRC and IP telephony. Having not tried it yet, it looks a little like Zoe. [Hack the Planet]

    August 15, 2003

    IBM Community Tools

    IBM Community Tools is a suite of plug-ins that enhance community interaction through instant and broadcast messaging.

    CVSTrac

    CVSTrac is a Web-based issue tracking tool that integrates with the CVS version control system, popular among Mac OS X and Unix users.

    August 14, 2003

    Howl

    Rendezvous for Windows and Linux. Cool. [ranchero.com]

    August 13, 2003

    FileUpload

    The Commons FileUpload package makes it easy to add robust, high-performance, file upload capability to your servlets and web applications.

    July 24, 2003

    Rendezvous across the Internet

    MultiCast Tunnel Creation, or Rendezvous across the Internet

    —by Joel Rennich, mactroll@afp548.com

    5 June 2003

    Rendezvous is cool.

    There just isn't any other way about it.

    If you haven't been convinced about how cool it is, just open up iChat or turn off your DHCP server and realize that you can still communicate with your local network.

    Rendezvous, also known as ZeroConf, encompasses three major ideas.

    First off, Rendezvous machines will assign themselves an IP address in the 169.254.0.0-169.254.255.255 range, if they can't get an address any other way. This allows machines to communicate with each other with no configuration on the client side. Additionally, other Mac OS X machines that have a configured IP address will be able to communicate with the Rendezvous machine. That's really cool.

    The second feature that Rendezvous brings to the table is ".local" DNS names. Every Rendezvous enabled machine will respond to its host or Rendezvous name ending in ".local." For example my laptop knows itself as "mactroll.local." which means I can ping it on my local network using that address.

    Finally Rendezvous allows services to broadcast their existence and respond to queries. When you open up the "Connect to Server…" menu on your machine, you send out a Rendezvous query that looks for file servers on the network. Rendezvous services will respond back and fill up the window with file servers.

    All of this magic happens through multicast packets. A multicast packet is sent to a specific IP address. Machines that understand the multicasted packet will be listening for traffic going to that IP and then respond accordingly. With Rendezvous those multicast packets are sent to 224.0.0.251, regardless of what network you are on.

    The problem with multicast packets is that routers will typically not pass those packets on to other networks. This means that the users in your New York office won't be able to browse the file server in your San Francisco office.

    Being a good system administrator, you've read our articles on IPSec. You enjoyed them so much that you set up a full IPSec VPN between your two locations. Packets fly back and forth like crazy, snuggly wrapped in massive amounts of encryption. Life is pretty good, but you'd still like to see those remote servers show up in the menu when you connect to them.

    Have no fear—multicast tunneling is here.

    Using a Java app from a few years ago—originally set up for IPV6 session information—we can pass the Rendezvous packets from one network to another. Cruise on over to mTunnel and download the UNIX version that you find there. You'll need this application running on both sides of the tunnel. After it has been download and uncompressed you'll need to edit two lines at the top of the mTunnel file itself.

    Change the JAVA_HOME entry to 'JAVA_HOME="/usr/"'. Then edit the HOME entry to the path of the folder that contains the mTunnel application.

    Now you need to start up both sides and get them communicating to each other. In our examples here I'll use 10.0.37.10 for the server in New York and 192.168.223.40 for the server in San Francisco. These two machines can see each other through the IPSec VPN that you set up, so no worries there.

    On the NY machine, start mTunnel with "./mTunnel -v 192.168.223.40/10000". This will start up the server on the first machine which will build a tunnel to the second machine over the udp socket on port 10000. On the SF server start it up with "./mTunnel -v 10.0.37.10/10000"

    Now that both ends of the tunnel have been set up, you will need to actually set up the Rendezvous tunnel. Pick which machine is closest to you and use a web server to connect to port 9000 on them. This will bring up a web interface. You want to create a new private tunnel. Click on "Add a new tunnel", then click on "Tunnel a private session". Select one channel. You can give this tunnel a name, perhaps "Rendezvous." Select any "Media" type that you want. I haven't found this to matter. For group you'll need to enter "224.0.0.251." And set the Baseport to "5353." Hit the Create button at the bottom of the screen.

    Now, "View all tunnels" and you should have an entry for the tunnel you just created. Hit the "No" entry under the Tunneling header and you'll actually kick this tunnel off.

    Now walk over to the soda machine and grab something cold. Casually walk around the office for a minute or two before sitting down in front of the boss' machine. Open up the "Connect to Server…" menu and look with confidence at the remote servers that have magically appeared.

    This won't work for all services. For example, iChat won't show you the users on the remote network. I haven't cracked that nut yet, but I'm assuming that iChat actually filters out those users that live in a separate IP range, even if it can see them. However, a lot of other Rendezvous services might work for you. Give it a whirl and see what happens.

    If you like the application, drop the author a note. I have and he says he likes to hear from people. You can find his contact info in the readme file for mTunnel, or on his site.


    July 08, 2003

    File Sharing Still Annoying

    TidBIT's Article about MacHack and FileSharing:

    **File Sharing Still Annoying** -- Amazingly, despite all the
    advances of the past decade, moving a file from one computer
    to another still proved to be more difficult than it should be.
    The internal MacHack network was plagued by what may have been
    a bad switch, and as a result, Rendezvous, as helpful as it is
    for displaying TCP/IP network resources, didn't always show
    shared computers. And then there were the user mistakes - people
    who hadn't turned on file sharing, or who, for some reason, had
    incorrect permissions on their Drop Box folders, or other
    problems. In some cases, switching to a Computer to Computer
    Network (Apple's name for ad hoc networking, appropriately enough
    for the future name of this conference) solved the problem. The
    moral of the story is that even though file sharing is getting
    better all the time, there's still room for improvement.

    July 03, 2003

    IzPack

    IzPack is an installers generator for the Java platform. It produces lightweight installers that can be run on any operating system where a Java virtual machine is available.

    June 30, 2003

    Business Tips

    Great business tips for shareware developers.

    June 24, 2003

    Commons VFS

    Commons VFS provides a single API for accessing various different file systems. It presents a uniform view of the files from various different sources, such as the files on local disk, on an HTTP server, or inside a Zip archive.

    June 13, 2003

    Share a directory using Schroedinger's WebDAV ability

    Over the Internet, or sometimes even in your LAN an AFP, SMB or NFS share can be improper or insecure. However, the JSP development tool Schrödinger from Micromata can share each directory over WebDAV.Read the rest of the hint for the steps to create WebDAV shares...

    After a directory is deployed by Schrödinger, Schrödinger creates a file WEB-INF/web.xml. Modify this file with a text editor like this:
    <?xml version="1.0" ?>
     <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" 
       "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
     <web-app>
       <servlet>
         <servlet-name>webdav</servlet-name>
    
         <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>
         <init-param>
           <param-name>debug</param-name>
           <param-value>0</param-value>
    
         </init-param>
         <init-param>
           <param-name>listings</param-name>
           <param-value>true</param-value>
    
         </init-param>
         <init-param>
           <param-name>readonly</param-name>
           <param-value>false</param-value>
    
         </init-param>
       </servlet>
        <servlet-mapping>
         <servlet-name>webdav</servlet-name>
    
         <url-pattern>/</url-pattern>
       </servlet-mapping>
        <welcome-file-list>
         <welcome-file>index.jsp</welcome-file>
    
         <welcome-file>index.html</welcome-file>
       </welcome-file-list>
     </web-app>
    
    Now, after the Web application is restarted in Schrödinger, the directory is available under WebDAV. You can observe each access to the directory in Schrödinger's HTTP Inspector.

    Mount a WebDAV share under MacOS X ... Select from the Finder of the remote Mac Go -> Connect to server (or hit Command-K). Now in the appearing dialog, fill in the address field the URL under which Schrödinger makes the web application available (ie http://computer_name:8080 in the LAN or http://your-ip:8080 over the Internet). Now a new drive will appear on your desktop. Assure that your firewall does allow access to port 8080. If you want to add access control with passwords, read further information at Jakarta or Sun.

    June 11, 2003

    Rendezvous Beacon

    Rendezvous Beacon is a Mac OS X application that enables you to publish Rendezvous services on a computer or to serve as a proxy for Rendezvous services on other computers or devices.

    June 03, 2003

    Trepia

    Trepia is a revolutionary networking application that lets you instantly meet other people in your vicinity. Other people will simply appear on your contact list automatically, allowing you to communicate with them.