Recent Articles

Google Blog Converters »

Google Blog Converters provides Python libraries and runnable scripts that convert between the export formats of Blogger, LiveJournal, MovableType, and WordPress.

Popularity: 1% [?]

Java: Ensure Code Quality with Open Source Tools »

There are many tools available for Java to check and ensure different aspects of your code, e.g. code coverage, coding standard, duplicate code, etc.

However, each of these tools, e.g. FindBugs, PMD, Simian, JavaNCSS, Cobertura, etc are only checking certain aspects of your code.

Below are some open source tools that integrate all these tools together to give you a unified view on different aspects of your code.

QALab

QA Tools like checkstyle, pmd, pmd-cpd, findbugs, cobertura (cobertura-branch and cobertura-line) and simian are great build tools but they only take a snapshot of the state of your project. You do not get a sense of the trend of your project.

QALab collects and consolidates data from several QA tools and keeps track of them overtime. This allows developers, architects and project managers alike to be presented with a trend of the QA statistics of their project.

The following tools are currently supported:

  • Checkstyle: code style validation and design checks. QALab keeps track of number of violations per file and overall.
  • PMD: Code checks (possible bugs, dead code, sub-optimal code, etc). QALab keeps track of number of violations per file and overall.
  • PMD CPD: Duplicate code (always a bad idea) detection. QALab keeps track of number of the overall number of duplicated lines.
  • FindBugs: fantastic tool to detect potential bugs (really!). QALab keeps track of number of violations per file and overall.
  • Cobertura: Coverage tool. QALab keeps track of percentage of branch and line coverage.
  • Simian: excellent duplicate code detection (non-open source). QALab keeps track of number of the overall number of duplicated lines.

QALab can be used via ant or Maven. There are three main steps to using QALab:

  1. Collect Data from QA Tools into a generic qalab.xml format. This is a necessary step to consolidate data. Refer to the documentation from Checkstyle, PMD, PMD CPD (Copy Paste Detector), FindBugs, Cobertura and Simian in order to generate the xml reports.
  2. Generate Charts from qalab.xml for each file; these will show the trends over time for each file and the overall project.
  3. Generate a summary xml and html pages with the files that have seen a change in their QA statistics over the last n days. This is particularly useful for developers who can see the impact of the latest code checked in.

Sonar

SONAR is a code quality management platform, dedicated to continuously analyze and measure technical quality, from the projects portfolio to the class method.

It leverages well-known tools such as Checkstyle, PMD, Findbugs, Cobertura, Clover and JavaNCSS to provide an integrated and easy to use quality management platform.

Panotipcode

Panotipcode is a project dedicated to making code metrics so widely understood, valuable, and simple that their use becomes ubiquitous, thus raising the quality of software across the industry. It provides a set of open source tools for gathering, correlating, and displaying code metrics.

It packages

  • Emma – Unit test code coverage. By changing one line in your build file this can be switched to Cobertura.
  • CheckStyle – Validates that your code follows Sun’s standards for Java. If you want to use a different set of rules you only need to change one parameter in your build file.
  • JDepend – Sophisticated OO quality metrics and package dependency checking.
  • JavaNCSS – Cyclomatic Complexity and size (NCSS) metrics.
  • Volatility – Measure change within your projects. Currently this only works with Subversion, but support for other SCM repositories is planned.
  • Duplicate Code – Using Simian.
  • Panopticode Aggregator – Generates an XML file that integrates ALL of the information gathered above
  • Panopticode Reports
    • Powerful visualizations, such as TreeMaps, that allow you to see the overall picture and an amazing amount of detail in a single view.
    • Metric Correlation
    • Historic Data

Popularity: 1% [?]

Useful Hosts File for Ad Blocking »

Every day, millions of people browse the web. They think they are doing so in private. They aren’t. What advertisers don’t want you to know, I will tell you. You are being tracked as you surf the web, right now. Not by me, but by some of the advertisers.

They think they have a right to track your surfing habits, under the veil of providing a “better” browsing experience. They claim that, by knowing everything that you look at while you are surfing, they can give you “better” ads.

What they don’t tell you is that they also sell information about your habits to third-parties. What they don’t tell you is that they could easily match your browsing profile with your identity. What they don’t tell you, in essence, is that they are violating your privacy.

What they don’t tell you, is that you can do something about it. Use the Hosts file!

Popularity: 2% [?]

Java: Open Source MMS Library »

jMmsLib is Java implementation of binary Multimedia Messaging Services (MMS) encoding/decoding.

It supports creation and encoding of send_request messages and decoding of send_conf responses. To see jMmsLib in action look at SendMMS. This is a working simple MMS client that builds messages from texts and images, encode them, and deliver them to a MMSC via a WAP connection.

Popularity: 2% [?]

Web Service Basic »

REST

The Representational State Transfer (REST) is a web architectural style presented by Roy Fielding back in 2000 in his doctoral thesis.

  • The basic idea of REST is the full exploitation of the HTTP protocol, in particular:
    It focuses on Resources, that is, each service should be designed as an action
    on a resource.
  • It takes full advantage of all HTTP verbs (not just GET and POST, but also
    PUT and DELETE)

Below are the HTTP Verb

  • POST – CREATE (Save new resources)
  • GET -  READ (Read resources)
  • PUT -  UPDATE (Modify existing resources)
  • DELETE – DELETE (Delete resources)

Rules

  • The State can be modified by verbs POST, PUT, and DELETE.
  • The State should never change as a consequence of a GET verb.
  • The verb POST should be used to add resources to the State.
  • The verb PUT should be used to alter resources into the State.
  • The verb DELETE should be used to remove resources from the State.
  • The communication protocol should be stateless, that is, a call should not
    depend on the previous ones.

SOAP

The Simple Object Access Protocol (SOAP) is a web service standard communication protocol defined by the W3C. It basically defines the structure of  the exchanged message, which is composed of an “envelope” with a “header” and a “body”.

  • Automatic generation of classes involved in the communication process
  • Automatic generation of the web service descriptor (WSDL)
  • Automatic generation of client classes starting from the service WSDL
  • Ability to be used with network protocols other than HTTP (for example, SMTP or JMS)
  • Ability to encapsulate authentication mechanisms
  • Ability to establish a stateful conversation

Binding style

  • RPC / literal
  • Document / literal (bare or unwrapped)
  • Document / literal wrapped

Remote Procedure Call (RPC) is a generic mechanism throughout which is a procedure that resides on a computer (or a virtual machine) can be called by a program running on a different computer (or virtual machine). This paradigm has been around for decades and was implemented by several technologies, among which, the most popular are CORBA, DCOM, and RMI.

An RPC call is always characterized by:

  • A remote address
  • A method (or operation) name
  • A sequence of parameters
  • A synchronous response

Document / Literal unwrapped requires one child in the document and you may need to wrap your parameters in one single object.

Document / Literal wrapped is the default for most SOAP implementations. It does not impose the constraint of one single child in the document.

Major SOAP implementations

  • JAX-WS2 available starting JDK 6.
  • AXIS 2
  • Spring WS
  • CXF

Others interesting modules

  • Kandula – implements WS-Coordination, WS-AtomicTransaction and WS-BusinessActivity protocols based on Apache Axis and Axis2.
  • Rampart – WS-Security module for Axis 2
  • Sandesha – WS-ReliableMessaging implementations for Axis and Axis2
  • Muse – an implementation of the WS-ResourceFramework (WSRF), WS-BaseNotification (WSN), and WS-DistributedManagement (WSDM) specifications.
  • jUDDI – an implementation of the Universal Description, Discovery, and Integration (UDDI) specification.

Popularity: 1% [?]

Open Source Audio Software »

Audacity is free, open source software for recording and editing sounds. It is available for Mac OS X, Microsoft Windows, GNU/Linux, and other operating systems.

You can use Audacity to:

  • Record live audio.
  • Convert tapes and records into digital recordings or CDs.
  • Edit Ogg Vorbis, MP3, WAV or AIFF sound files.
  • Cut, copy, splice or mix sounds together.
  • Change the speed or pitch of a recording.

audacity-linux-small

Popularity: 1% [?]

Open Source Genealogy Software »

PhpGedView is a revolutionary genealogy program which allows you to view and edit your genealogy on your website. PhpGedView has full editing capabilities, full privacy functions, can import from GEDCOM files, and supports multimedia like photos and document images. PhpGedView also simplifies the process of collaborating with others working on your family tree. Your latest genealogy information is always on your website and available for others to see.

Popularity: 2% [?]

Open Source Front-End for MPlayer »

SMPlayer intends to be a complete front-end for MPlayer, from basic features like playing videos, DVDs, and VCDs to more advanced features like support for MPlayer filters and more.

One of the most interesting features of SMPlayer: it remembers the settings of all files you play. So you start to watch a movie but you have to leave… don’t worry, when you open that movie again it will resume at the same point you left it, and with the same settings: audio track, subtitles, volume…

video_en

Other additional interesting features:

  • Configurable subtitles. You can choose font and size, and even colors for the subtitles.
  • Audio track switching. You can choose the audio track you want to listen. Works with avi and mkv. And of course with DVDs.
  • Seeking by mouse wheel. You can use your mouse wheel to go forward or backward in the video.
  • Video equalizer, allows you to adjust the brightness, contrast, hue, saturation and gamma of the video image.
  • Multiple speed playback. You can play at 2X, 4X… and even in slow motion.
  • Filters. Several filters are available: deinterlace, postprocessing, denoise… and even a karaoke filter (voice removal).
  • Audio and subtitles delay adjustment. Allows you to sync audio and subtitles.
  • Advanced options, such as selecting a demuxer or video & audio codecs.
  • Playlist. Allows you to enqueue several files to be played one after each other. Autorepeat and shuffle supported too.
  • Preferences dialog. You can easily configure every option of SMPlayer by using a nice preferences dialog.
  • Possibility to search automatically for subtitles in opensubtitles.org.
  • Translations: currently SMPlayer is translated into more than 20 languages, including Spanish, German, French, Italian, Russian, Chinese, Japanese….
  • It’s multiplatform. Binaries available for Windows and Linux.
  • SMPlayer is under the GPL license.

Popularity: 1% [?]

Open Source Movie Player »

MPlayer is a movie player which runs on many systems (see the documentation). It plays most MPEG/VOB, AVI, Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT, NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files, supported by many native, XAnim, and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, DivX 3/4/5, WMV and even H.264 movies.

Another great feature of MPlayer is the wide range of supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, DirectFB, but you can use GGI, SDL (and this way all their drivers), VESA (on every VESA compatible card, even without X11!) and some low level card-specific drivers (for Matrox, 3Dfx and ATI), too! Most of them support software or hardware scaling, so you can enjoy movies in fullscreen. MPlayer supports displaying through some hardware MPEG decoder boards, such as the Siemens DVB, DXR2 and DXR3/Hollywood+.

gui-preview-02

MPlayer has an onscreen display (OSD) for status information, nice big antialiased shaded subtitles and visual feedback for keyboard controls. European/ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic and Korean fonts are supported along with 12 subtitle formats (MicroDVD, SubRip, OGM, SubViewer, Sami, VPlayer, RT, SSA, AQTitle, JACOsub, PJS and our own: MPsub). DVD subtitles (SPU streams, VOBsub and Closed Captions) are supported as well.

Popularity: 1% [?]

Open Source Computer Algebra System »

Maxima is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, and tensors. Maxima yields high precision numeric results by using exact fractions, arbitrary precision integers, and variable precision floating point numbers. Maxima can plot functions and data in two and three dimensions.

The Maxima source code can be compiled on many systems, including Windows, Linux, and MacOS X. The source code for all systems and precompiled binaries for Windows and Linux are available at the SourceForge file manager.

xmaximawindows

Maxima is a descendant of Macsyma, the legendary computer algebra system developed in the late 1960s at the Massachusetts Institute of Technology. It is the only system based on that effort still publicly available and with an active user community, thanks to its open source nature. Macsyma was revolutionary in its day, and many later systems, such as Maple and Mathematica, were inspired by it.

Popularity: 1% [?]

Open Source Audio Player and Manager »

aTunes is a full-featured audio player and manager, developed in Java programming language, so it can be executed on different platforms: Windows, Linux and Unix-like systems.

Currently plays mp3, ogg, wma, wav, flac, mp4 and radio streaming, allowing users to easily edit tags, organize music and rip Audio CDs.

aTunes1.11.0RC_thumb

Popularity: 1% [?]

Free NAS Server »

FreeNAS is a free NAS (Network-Attached Storage) server, supporting: CIFS (samba), FTP, NFS, AFP, RSYNC, iSCSI protocols, S.M.A.R.T., local user authentication, Software RAID (0,1,5) with a Full WEB configuration interface. FreeNAS takes less than 32MB once installed on Compact Flash, hard drive or USB key.
The minimal FreeBSD distribution, Web interface, PHP scripts and documentation are based on M0n0wall.

Popularity: 2% [?]

Interesting Time System – JIKANKEI »

JIKANKEI is a software of Art Project.  The word JIKANKEI is the Time System in Japanese. JIKANKEI does not express scientifically accurate data. It is only an Art work. Linger in the morning brightness, in the afternoon glow, and enjoy the gradually changing seasons on this globe. JIKANKEI is like fictions or poems. It is useless in this pursuit of profitable computer society. The author makes no warranties to your physical and/or mental damages.

orangeL

JIKANKEI displays angles of the SUN and local times of cities and places on the Earth. Sunrise and sunset data are taken from US Naval Observatory Date Services through Internet.

Popularity: 1% [?]

Java: Open Source Inversion of Control Framework »

PicoContainer is a highly embeddable, full-service, Inversion of Control (IoC) container for components honor the Dependency Injection pattern. The project started in 2003 and pioneered Constructor Injection auto-wiring. It is also Open Source and free to use. The license is BSD and thus you can safely use this with commercial or other open source software.

You could use it as a lightweight alternative to Sun’s J2EE patterns for web applications or general solutions.

What is Dependency Injection? Martin Fowler has a good article from 2003, but here is another view: It is a good design pattern that, for large enterprise applications, facilitates:

  • easy best practice unit testing vs little and difficult unit testing.
  • component reuse vs rewriting through ignorance or perceived needs
  • centralized configuration vs components reading their own config (scattered)
  • clean & declarative architecture vs a nest of singletons that nobody can make sense of
  • maintainability vs developers having difficulties fixing bugs
  • adaptability vs developers not knowing where to start to add features
  • transparency vs lots of framework code, with consequential lock in

Dependency Injection is quite often, but not exclusively, used by Agile practitioners. It counters situations where enterprise applications:

  • have grown to be thousands of classes, with dozens if not hundreds of Singletons
  • draw similarities to Spaghetti, Hairballs or Balls of Mud
  • has made development staff looking after it miserable, and wanting to quit
  • suffers repeated allegations of “it cannot be further developed without complete rewrite”

Despite it being very compact in size (the core is ~260K and it has no mandatory dependencies outside the JDK), PicoContainer supports different dependency injection types (Constructor, Setter, Annotated Field / Method) and offers multiple lifecycle and monitoring strategies.

If you’re trying to understand the difference between PicoContainer and similar libraries, then its best to think of PicoContainer as a map that where add() is for types and implementations, and get() is for instances.

PicoContainer has originally been implemented in Java but is also available for other platforms and languages. These are detailed here.

Popularity: 1% [?]

Java: Open Source Quality Management »

SONAR is an open source quality management platform, dedicated to continuously analyze and measure technical quality, from the project portfolio to the class method.

It is a web application and a maven plugin, meaning most users interact with it through web browsers from any computer.

Using Sonar throughout the whole development project life cycle drastically improves visibility for every stakeholder. This gained visibility allows to manage risks, reduce maintenance costs and improve agility by implementing a real quality first approach.

Sonar enables navigation through the latest measures to enable thorough analysis, to increase quality. But not only that, Sonar keeps historical data in order to see the evolution of measures throughout time.

SONAR leverages the existing ecosystem of quality open source tools (ex. Checkstyle, PMD, Maven, Cobertura …), to offer a fully integrated solution to development environments and continuous integration tools.

It also has a Hudson plugin available.

Popularity: 2% [?]

Open Source Clone System »

Diskless Remote Boot in Linux (DRBL) provides a diskless or systemless environment for client machines. It works on Debian, Ubuntu, Mandriva, Red Hat, Fedora, CentOS and SuSE. DRBL uses distributed hardware resources and makes it possible for clients to fully access local hardware. It also includes Clonezilla, a partitioning and disk cloning utility similar to Symantec Ghost®.

Clonezilla, based on DRBL, Partition Image, ntfsclone, partclone, and udpcast, allows you to do bare metal backup and recovery. Two types of Clonezilla are available, Clonezilla live and Clonezilla SE (server edition). Clonezilla live is suitable for single machine backup and restore. While Clonezilla SE is for massive deployment, it can clone many (40 plus!) computers simultaneously. Clonezilla saves and restores only used blocks in the harddisk. This increases the clone efficiency. At the NCHC’s Classroom C, Clonezilla SE was used to clone 41 computers simultaneously. It took only about 10 minutes to clone a 5.6 GBytes system image to all 41 computers via multicasting!

Features

  • Free (GPL) Software.
  • Filesystem supported: ext2, ext3, reiserfs, xfs, jfs of GNU/Linux, FAT, NTFS of MS Windows, and HFS+ of Mac OS (testing feature provided by partclone). Therefore you can clone GNU/Linux, MS windows and Intel-based Mac OS. For these file systems, only used blocks in partition are saved and restored. For unsupported file system, sector-to-sector copy is done by dd in Clonezilla.
  • LVM2 (LVM version 1 is not) under GNU/Linux is supported.
  • Multicast is supported in Clonezilla SE, which is suitable for massively clone. You can also remotely use it to save or restore a bunch of computers if PXE and Wake-on-LAN are supported in your clients.
  • Based on Partimage, ntfsclone, partclone, and dd to clone partition. However, clonezilla, containing some other programs, can save and restore not only partitions, but also a whole disk.
  • By using another free software drbl-winroll, which is also developed by us, the hostname, group, and SID of cloned MS windows machine can be automatically changed.

If you haved already be familiar with Clonezilla or DRBL, you might be interested in Live USB Helper. It can help you deploy the clonezilla’s image file to the flash drive. Furthermore, it can make the flash drive bootable and it’s multilanguage support.

Popularity: 1% [?]

HP USB Format Tool »

HP  USB Format Tool help formatting any USB flash drive, with your choice of FAT, FAT32, or NTFS partition types.

Optionally you can also make the disk BOOTABLE by specifying a file location. Use the Windows 98 system files available here.

Popularity: 2% [?]

Open Source Partition Manager »

GParted is the Gnome Partition Editor application.

A hard disk is usually subdivided into one or more partitions. These partitions are normally not re-sizable (making one smaller and the adjacent one larger). The purpose of GParted is to allow the individual to take a hard disk and change the partition organization therein, while preserving the partition contents.

GParted is an industrial-strength package for creating, destroying, resizing, moving, checking and copying partitions, and the file systems on them. This is useful for creating space for new operating systems, reorganizing disk usage, copying data residing on hard disks and mirroring one partition with another (disk imaging).

Among all, it supports FAT32, NTFS and Linux ext2 and ext3 file systems.

gparted_1_small

GParted Live is a small bootable GNU/Linux distribution for x86 machine.

It enables you to use all the features of the latest versions of GParted.

GParted Live can be installed on CD, USB, PXE server, and Hard Disk then run on an x86 machine.

Popularity: 2% [?]

Subversion on HP-UX »

Subversion depots can be downloaded from

http://hpux.connect.org.uk/hppd/cgi-bin/search?term=subversion.

Popularity: 1% [?]

Network Performance Benchmark »

Netperf is a benchmark that can be used to measure the performance of many different types of networking. It provides tests for both unidirecitonal throughput, and end-to-end latency. The environments currently measureable by netperf include:

  • TCP and UDP via BSD Sockets for both IPv4 and IPv6
  • DLPI
  • Unix Domain Sockets
  • SCTP for both IPv4 and IPv6

Popularity: 2% [?]