Category Archives: Web

heliod web server: fast then, still fast today

Quick post – as an update to my post here, Jyri Virkki has published a comprehensive set of benchmarks, comparing heliod’s out-of-the-box performance to all the other current popular HTTP servers out there. Considering the last public comparison I could find of what was then Sun Java System Web server vs Apache was in 2007, these new results are highly interesting:

“heliod had the highest throughput at every point tested in these runs. It is slightly faster than nginx at sequential requests (one client) and then pulls away.

“heliod is also quite efficient in CPU consumption. Up to four concurrent clients it is the lightest user of CPU cycles even though it produced higher throughput than all the others. At higher concurrencies, it used slightly more CPU than nginx/lighttpd although it makes up for it with far higher throughput.

“heliod was also the only server able to saturate the gigabit connection (at over 97% utilization). Given that there is 62% idle CPU left at that point, I suspect if I had more bandwidth heliod might be able to score even higher on this machine.

“These results should not be much of a surprise… after all heliod is not new, it is the same code that has been setting benchmark records for over ten years (it just wasn’t open source back then). Fast then, still fast today.

You can read the total run of tests plus information graphs at Jyri’s blog entry: http://173.255.252.27/jyri/articles/.

 

Incidentally, I came across a blog post from someone who was also apparently on the Sun Java System Web Server group at Sun, who states:

“Since Oracle no longer offers updates to individual users, and refuses to respond to requests for information about how an individual can acquire the updates, I have elected to stop writing about the server. If the moribund Open Web Server gets branched I will happily contribute to the pool of knowledge that exists for it.”

Hmm, maybe someone should give him a heads-up about heliod…

Advertisements

heliod – Oracle iPlanet Web Server forked as open source

Prior to the Oracle acquisition, I used to be a fan of Sun Microsystems’ web server product, Sun Java System Web Server. It had serious enterprise lineage, a terrific web admin BUI which beat the pants off Apache, and was free, free, freeeee. Needless to say, that all changed once Oracle bungled onto the scene, along with a whole bunch of other stuff.

A little known fact however is that Sun had open-sourced the core of their web server prior to Oracle taking over, releasing it as the Sun Open Web Server. But other than a few headlines at the time of the announcement (such as here) everything went very quiet shortly after – and no doubt I am sure due to Oracle not wanting to advertise the zero-cost availability of the guts of their “re-branded” megabucks flagship web server, now known as Oracle iPlanet Web Server.

So, imagine my surprise to find that one of the original engineers behind Sun Open Web Server (Jyri Virkki) has forked the code open-sourced those three or so years ago and is now actively developing it. Yes, it lives, and is known as heliod web server:

http://173.255.252.27/jyri/articles/index.php/web-server/

Francois Dion has a great write-up here as well:

http://solarisdesktop.blogspot.co.nz/2012/09/netscape-sun-oracle-no-heliod-web-server.html

Attempting to launch heliod on OpenIndiana oi_151a x86, I was met with the following error:

$ ./bin/startserv 
ld.so.1: parsexml: fatal: libicui18n.so.3: open failed: No such file or directory
./bin/startserv: line 63: 12686: Killed
failure: temporary directory  is not writable by user root

This is due to the library/icu package not being present – so install it if it’s missing and it’ll start up fine:

Installing the ICU package on OpenIndiana

$ ./bin/startserv &
[1]	3692
dave@mymachine:/opt/heliod/https-testserver$ heliod Web Server 0.1 B03/08/2011 21:59
info: CORE3016: daemon is running
info: HTTP3072: http-listener-1: http://mymachine:80 ready to accept requests
info: CORE3274: successful server startup

Prevent the “List of attachments” from appearing in documents printed from JSPWiki

In a default installation of JSPWiki files attached to a JSPWiki page are printed in a list along with the rest of the document. If one has a large amount of attached files in a wiki page, this leads to needless extra printed pages:

List of attached files in a document printed from JSPWiki

I enquired about this on the JSPWiki users mailing list, and Dirk Frederickx kindly gave me the solution to this:

“Following changes to the jspwiki_print.css file, in the “templates/default” directory, will hide the attachment list:”

/* add this line to hide the List of Attachments */
#attach {display:none;}

And, it works a charm.

Google “Data Liberation”

Spied while checking out a Google Group I’m a member of (which Google has applied the “suck” setting to as well):

Google Data Liberation

Couldn’t have picked a more apt phrase than “data liberation” myself – as it implies pretty accurately that your data is captive to begin with…

“Open Source vs. Jive” – part 2

As a belated follow up to these posts, late last year looks like eBay ditched Jive Software for Drupal on their e-commerce platform, as reported by Wired:

http://www.wired.com/wiredenterprise/tag/jive-software/

“As eBay formally launched its new X.commerce business unit — a sweeping effort to bridge the worlds of online and offline payments — the company revealed it had moved the unit’s X.com website to Drupal, dropping the proprietary Jive Software platform the site previously used.

“We found that Drupal offers more tools and does so faster,” Neal Sample, chief technology officer of open commerce at eBay, told Wired.

“There were certain tools we needed built, and often, if you go to a single vendor, you just get in line with everyone else. With Drupal, we can tap into a bigger developer community to get the tools we wanted — if they weren’t there already…”

Ouch. Myself, I’ve been delighted with Drupal 7. And, if anyone has a copy of the “Jive vs. Open Source” whitepaper available for what I assume was a very brief period of time, I’d love to see it – if only to know what goes on inside the mind of a marketer 🙂

blog.davekoelmeyer.co.nz is now WordAds-enabled

Some changes to the site which you may have noticed – my blog is now displaying embedded advertising as part of WordPress’ WordAds programme. Part of the change involved choosing a new WordAds-compatible theme, which meant that my previous Premium theme had to go – but the new theme is a rather nice replacement.

Fun with JSPWiki skins

I really love JSPWiki. It’s super-easy to install, doesn’t require any additional configuration for a back-end database, the native interface is quick and fast to use, and it just runs and runs. Great software.

If there’s one area however where it’s lacking, it’s in a nice selection of bundled good-looking themes. But hey, it’s free and open source software, so one is really in no position to complain – and new skins can be created using entirely standard and familiar HTML and CSS.

It’s worth noting the difference between JSPWiki templates and skins – described at http://www.jspwiki.org/wiki/JSPWikiSkinDesign

After a bit of tinkering with CSS and the bundled “Smart” theme, I came up with this:

JSPWiki - modified "Smart" theme

Not the stuff of professional web design, but a definite improvement on the default theme, in my humble opinion.

Thunderbird RSS, QuickFolders, Sync, and other niceties

I continue to be impressed by Thunderbird which goes from strength to strength with every release. After playing around with RSS feed functionality (described here), I’m now using Thunderbird as my primary RSS feed reader: it’s particularly handy for keeping track of Twitter feeds (which the Twitter native web interface itself kind of sucks at), especially with the ability to tab your Twitter feeds with QuickFolders (below).

 

If like me you deal with thousands of mail items across multiple mail folders, then drop everything and check the QuickFolders extension out:

https://addons.mozilla.org/en-us/thunderbird/addon/quickfolders-tabbed-folders/

It’s quite simply a superb add-on with an absolute tonne of features: you can read about them here: http://quickfolders.mozdev.org/. I was very happy to donate to the developer – so if you do like the add-on, perhaps consider doing the same 🙂

 

After enabling RSS feed functionality in Thunderbird, I got to thinking how cool it would be if Mozilla could extend their Firefox Sync functionality to Thunderbird: the ability to sync RSS feeds, account and application preferences amongst multiple Thunderbird installations would be huge. Turns out (after making enquiries on the relevant mailing lists) that this is planned:

https://bugzilla.mozilla.org/show_bug.cgi?id=621198

 

Another cute addition to Thunderbird: a “Tip of the Week” feature in the Thunderbird welcome screen. Nice little touch!

Thunderbird tip of the week

Enable Nuxeo Live Edit with LibreOffice and Firefox

Following is a quick how-to, as apparently Live Edit with Nuxeo DM 5.5, LibreOffice, Firefox, and the Nuxeo-provided plugins doesn’t work that well out of the box.

My example platform is Ubuntu 10.04 x86, Nuxeo DM 5.5, LibreOffice 3.4.6 (with the LibreOffice Java support packages installed as well), and Firefox 11.

 

First, grab the Nuxeo add-ons for LibreOffice and Firefox, respectively:

http://download.nuxeo.org/desktop-integration/live-edit/nuxeo-liveedit-ooo-lateststable.oxt

https://updates.nuxeo.org/desktop-integration/live-edit/nuxeo-liveedit-ff-protocolhandler.xpi

The latter link Nuxeo refers to as the “protocol handler” for Firefox, but let’s just say that both are needed to enable Live Edit functionality.

 

The LibreOffice add-on once installed requires no configuration (and there are in fact no preferences to set). The Firefox add-on however requires manual configuration – as the default settings are inadequate.

Referring to the below screengrab, we have entered our Nuxeo user credentials for automatic server access when saving documents to Nuxeo from LibreOffice. We have set the /tmp directory as our working directory – but note that the path must have the trailing forward slash (i.e. “/tmp/” will work, but “/tmp” will not). We have retained a single default “OpenOffice.org” mapping, but we have changed the editor command to that of LibreOffice 3.4:

Nuxeo Live Edit Firefox add-on settings

That should be all that is needed. When you click the “Edit Online” icon from within Nuxeo you should observe LibreOffice launching and opening the document for editing automagically. Likewise, clicking on the “Save in Nuxeo” icon in LibreOffice should push the document back up to the server without error:

Nuxeo - edit online

LibreOffice - Nuxeo Live Edit

Enable secure LDAP container based authentication with JSPWiki

A quick follow up on my post here. I will describe below the steps needed to enable secure LDAP authentication (both LDAPS and HTTPS). This is not intended for production use, obviously.

I’m using the same platform and environment described here, and also using this as the starting point for the following.

 

Verify that the LDAPS connection handler is enabled in OpenDJ

This can be checked using the OpenDJ Control Panel GUI, and modified if necessary using the CLI dsconfig utility.

 

Switch to the secure LDAP port in the GlassFish JSPWiki security realm

Make sure you are using the ldaps:// URL prefix, and specify the secure port number (1636 in this example):

Enable LDAPS in GlassFish

 

Enable security for the relevant GlassFish HTTP network listener port

Our JSPWiki application is listening over port 8080, configured in GlassFish under http-listener-1. Enable security for this port:

Enabling security for the GlassFish http-listener-1 network listener

 

Enable HTTPS connections to JSPWiki

This is performed via modification of the JSPWiki web.xml file. In a default state, the web.xml file contains the following entries which enable the use of SSL connections:

<user-data-constraint>
           <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>

Ensure these exist in web.xml under the container managed authentication section.

 

Export the OpenDJ SSL certificate and import it into the JSPWiki JKS keystore

The keytool CLI utility is used for this step.

First, we export the OpenDJ certificate (which has a default alias of server-cert) to a file:

dave@mymachine:~/OpenDJ/config$ pfexec keytool -export -alias "server-cert" -keystore ~/OpenDJ/config/keystore -file /tmp/server-cert.cer
Enter keystore password:  

Certificate stored in file </tmp/server-cert.cer>

Next, we import the certificate file into the keystore of the GlassFish domain running our instance of JSPWiki, which in this example is at /opt/glassfishv3/glassfish/domains/domain1/config/cacerts.jks:

dave@mymachine:~/OpenDJ/config$ pfexec keytool -import -v -trustcacerts -alias "server-cert" -keystore /opt/glassfishv3/glassfish/domains/domain1/config/cacerts.jks -file /tmp/server-cert.cer 
Enter keystore password:  
Owner: CN=mymachine, O=OpenDS Self-Signed Certificate
Issuer: CN=mymachine, O=OpenDS Self-Signed Certificate
Serial number: 
Valid from: 
Certificate fingerprints:
	 MD5:  
	 SHA1: 
	 Signature algorithm name: SHA1withRSA
	 Version: 3
Trust this certificate? [no]:  yes
Certificate was added to keystore
[Storing /opt/glassfishv3/glassfish/domains/domain1/config/cacerts.jks]

 

Modify the jspwiki.baseURL value

This is required as the URL prefix will have changed from http:// to https://. This modification is performed in the jspwiki.properties file.

Assuming my existing jspwiki.baseURL value is:

http://192.168.1.1:8080/ITProjects/

This would need to be changed to:

https://192.168.1.1:8080/ITProjects/

 

Restart the GlassFish domain, and test LDAP logins…

…and if you don’t observe secure logins working as they should, leave a comment.