I remember the first time I heard the term Public Domain software and Shareware somewhere between the late 1980′ and early 90’s. Towards the end of the Commodore C64 era, where software was almost solely commercial (and not affordable for the average secondary student) creating the vivid software “sharing platform” at the schoolyard as a solid first release of software piracy, I got my hands on my first IBM compatible PC running DOS. Soon after data CD-ROM’s appeared with Shareware, a legal way to use software. Magazines were published with CD-ROM’s attached and I remember regular visits to shareware shops selling nothing but legal CD-ROM’s, years before the internet was available to public. While Public Domain Software was totally free of any license and Shareware was more like a free-to-use model (sometimes under certain conditions or restrictions similar to today’s lite/free versions), it laid the foundation of what we know as Open Source today, in my opinion one of the most important elements of our software landscape. I recommend the title “The Cathedral and The Bazaar” by Eric S. Raymond, the 25 year old book describing the inner parts of open source, a lot of it still applies.
The Cathedral and The Bazaar – 1999 Book by Eric S. Raymond
If you are keen to go on a time travel you can download the ISO image of a couple of these shareware CD’s from archive.org and have a hands-on session with 25 year old software, though I doubt you can execute all of them on current hardware and OS.
Shareware CD anno 1992 (archive.org)
Once the internet was in place platforms emerged where hobbyists could store the software repositories and releases of their software. One of the early ones I remember was Sourceforge which was launched in 1999, it still exists today (after changing ownership 3 times last few years). Few others were coming and going in the same space (BerliOS, Launchpad, java.net, Javaforge, Tigris.org, ..). Though not so dominating today anymore, due to number of alternatives, one of the most prominent is Github, Sourceforge still hosts a huge number of software, some of them quite prominent, it also was the starting platform of some rather known solutions (Pentaho, Firebird, Wireshark, Nagios, Notepad++,..). Over the years I created accounts for some of the platforms, and even forgot some of them, now I solely use Github. Recently I came across a simple tool that I created in 2008 to experiment with repositories in Java and noticed the tool is still there and it was downloaded over 2.300 times in the last nine years. Not that the tool does anything more magic than creating UUID’s and copy them to clipboard. It is just amazing to see, as long the platform does not disappear, the code lives on, no expiry attached.
Do you have some old forgotten software treasures too?
I love visualization of data. It is fantastic what and how you can visualize data and make it accessible and understandable. Specifically I like tree, radial trees and graphs . While the tools some years back were rather restricted to thick clients and Flash applications, we can transport great visualizations with the means of a simple (recent) browser.I recommend this book ‘Beautiful Visualization’ by Julie Steele, Noah Iliinsky (link)
For a while I worked wth prefuse and flare (2 nice but more or less defunc projects), now I start to implement some real life applications with d3.js (link). The features are awesome but the documentation is still rather short, the API doc is complete, but not much hello world stuff to get started with, other than dissecting some of the sample in the download.
What do we need to get started ?
A browser and a web server (for Linux users: there is one build in your machine, just start python -m SimpleHTTPServer 8888 and the current path becomes ‘server’)
Download d3.js (comes with plenty of samples, some of them will NOT run when you open the html files as file, use the webserver instead!)
Text editor (Kate, vi,..)
What is the most simple visualization sourcecode ?
Create a html file and place the d3.js in the same or lib folder.
Lets draw a circle (I took this from one of the get-started blogs by Christophe Viau, link)
Kenai.com (link) is dead (shot by the Sheriff, but he didn’t shoot no deputy, ooh, ooh,..) and by April 30th you better backup your belongings, otherwise they go /dev/null. (The domain will be removed as well). Unfortunately it was well integrated with Netbeans and this level of collaboration you wouldn’t achieve with another OS code repositories. No choice, so here a comparison of services on wikipedia (link).
My personal choice: I will select one with a public API, potentially could create a plugin (if it is not available yet). Maybe Launchpad or Github.
I believe strongly in testing. I saw companies and products without any automatic test frameworks and the slightest change to the codebase (often in the urgent ‘we-need-to-fix-it-now-and-give-to-the-customer-in-1hr’ mode) made parts of the product or modules prone to crashes because no one could test the changes against the complete application. In my current endevour to create a new product we embrace testing, though we dont practice TDD (test-driven-development), but at least we maximize the amount of automatic testing with tools/frameworks like Netbeans, Hudson, Cobertura and others. If you dont practice TDD, how can you judge how much of your codebase is really tested, even you assume all you business testcases are covered ?
The other day Code Coverage crossed my way (Thanks Chris!). Eager to find out how to “do it” or to “use it” I found a few tools suitable for the Netbeans environment. It actually drilled down to only one tool: Cobertura. It fits exactly into our landscape using Netbeans and Hudson and it is opensource.
To get started with Cobertura you should be familiar (a bit) with Netbeans, JUnit and Ant. The Cobertura website offers sufficient reference for all functions and introduction to get you started. But what I missed is a tutorial the start from the scratch using Netbeans and Cobertura. I found 3 references (I will add them at the end,) which are not complete or just not working for me), so let me share the most basic getting-started steps with you.
Please note: This is how I get started, it might not be complete, foolproof or even correct in all details. Please feel free to comment, correct or give other feedback !
OSSPAC 2009 – The first (of its kind in Singapore?) conference attracts developers, adopters and companies from Singapore and the neighboring countries to follow a diverse string of sessions, talks and labs for 3 days this week.
From some very general talks and keynotes to very specific technical sessions and labs everyone should have found his cup of tea. I was surprised by the small number of participants, despite Singapore being a technology hub (not in terms of OS..) and attending the SUN TechDays (blog entry) some 2..3 weeks back with a overwhelming number of people (a commercial roadshow at the fraction of the price, I know).
The conference reflects the OSS landscape in Singapore: Small and not very vivid (yet) as in other countries and cities around the world. Still a way to go ! It lives by participation ! I try to add to it.
I like to compare OS communities a bit with the arts scene, it starts very small, usually by individuals or small groups without any professional or commercial backing, eventually it would pick up pace and more people join in and ultimately companies to sponsor or finance it. It (the initial spark) cannot be engaged, enforced or bought.
Joining last years OS conference in Sydney Australia (blog entry), I found a very vivid and colorful event, some of that spirit could be injected here.
I really welcome the organizers effort to get this conference started, hoping this will be a regular event in the OSS community of Singapore. So far it was worth attending, some very good speakers and I get to know some new people, companies and products.
A simpler conference location could bring down the price and allow more individuals to join.
Try to inject more interaction. (QA for keynotes)
Maybe you need a moderator for the individual tracks.
Where are the lightning talks ?
OSS conferences are not a place to wear ties.
The light (and sometimes the sound) setup was crap. But thats a general conference problem.
Conclusion (for me):
I will join again. OS is based on community and particpation.
Gonna hava mor detailed look at Jaspersoft BI and Ingres DB.
I will evaluate these 3 and report about the results here. While Icefaces and ZK are clearly enterprise enabled frameworks, JMaki is a rather consumer application orientated framework. I might be wrong with this statement, but this is my first tast bitting on it. ZK seems closer to Spring and Tomcat than Netbeans and Glassfish.
I downloaded the LiveCD already a while ago, but only after the last SUN TechDays here I was inspired to finally install it.
Requirements: OpenSolaris LiveCD and any Mac or PC.
Before starting: Dont waste your time and bandwidth downloading the CD image. FIRST check if your hardware gonna work with OpenSolaris ! SUN offers a smart Java tool (link here) to check your hardware and available driver.
Get Started: Fairly easy Get the ISO file (link here), create a CD and start on any desktop or notebook up. It is a LiveCD, so it starts up from CD and you can play around with it until you decide to install it (there is a desktop shortcut!) or trash it. Note that all application need to be loadd from CD, so this does not refelct the real performance of an installed system.
Out of 2 desktops and 2 notebooks only 1 works fine, or better all drivers were available:
Notebook Dell Vostro 1500 with Intel 8400, 4GB, NVDIA 8600,..
On 2 desktops there was no lan driver available.
On a Notebook Compaq CQ40 during starting from CD the loudspeaker creates a extreme loud squeeching noise which you cant switch of, after hearing this for 1 minute you wont go further.
Extra Software I installed so far:
Netbeans 6.5 with Python addon
Problems so far (with my hardware!):
Switching on all desktop special effects and flipping between desktops makes desktop freeze und you only can close windows that are already open.