The best new open source software on the planet

Mike Saunders Having visited every single nook and cranny of the internet, Mike Griffon Puddletag Mobik PyHIDS Potamus Ioping knows where the best open source Dateutils Berusky UBee512 Vinterm S2png gems are hidden.

Text editor and IDE Griffon Version 1.6 Web http://griffon.lasotel.fr/en

e Brits don’t have a great horribly cluttered on low-resolution reputation for learning displays, but if you have plenty of W foreign languages, so it screen real estate, you’ll appreciate always impresses us to see so much having lots of useful panels and widgets multilingualism in the open source surrounding the main editing area. world. We mention this because Griffon is written in C with GTK, and Griffon’s lead coder, Philippe Muller, is a along with the source tarball a Deb Frenchman and although there are a package is available for Debian and few problems with the English Ubuntu-based distros. translation of his program, they’re The core component of Griffon is the Don’t like the colour scheme? Go to Themes in the menu minor and we applaud his effort. syntax highlighting, auto-completing for an alternative selection of eye-pleasing photons. Griffon is a hugely ambitious text editor with elements of an IDE editor; the latter’s implementation is a (Integrated Development Environment). “A very customisable bit strange at first, making heavy use of It attempts to cram everything you editor with a few the right-hand Shift key, but it becomes could need into a single window, second nature after a while. Syntax producing an interface that looks interface rough spots.” highlighting is available for 13 languages, and Griffon has a special focus on HTML, with a dedicated menu for creating HTML templates, inserting Exploring the Griffon interface Doctypes, and adding tags to your code. However, the editor can be used for virtually everything, thanks to a Projects Second toolbar feature which lets you associate build Use the blank space to enter a commands and working directories to line number and click the blue arrow to jump to it. source code files. Get things done File browser Griffon lets you mount SFTP servers in the right-hand panel, while the bottom A standard filesystem navigator – double-click on a section is home to a bunch of useful source code file and it will tools, such as a WebKit-based viewer open in the tabbed editor in (for previewing web page edits), a the middle. terminal and a to-do list. Ad-hoc user commands can be created by going to File > Manager configuration file > Extra tools Configuring the user menu: this opens This area contains an a new editor tab where you can add embedded terminal, web page custom commands accessible via viewer, note-taker and to-do Editing panel Yet more tools! Function > User Menu. list, switchable via tabs. The heart of Griffon. Hit the right- Another switchable area, this time containing In all, Griffon is a very customisable hand Shift key to bring up auto- auto-complete keywords, language help and editor with a few interface rough spots, complete options when typing. a place to mount SFTP shares. but plenty of neat features to pad it out.

60 LXF176 November 2013 www.linuxformat.com LXFHotPicks

Audio Puddletag Version 1.0.2 Web http://puddletag.sourceforge.net

ost music players include a If your music collection is lacking way to edit tags, the decent tags, you can create new tags Mmetadata associated with based on filenames via the Convert music files, but the implementation is menu. You can also do this the other often lacking. In many cases you have way round, creating more descriptive to open a new editing dialog box for file names based on the content of your each song, which is horribly tedious. tags. Puddletag’s Actions system is Puddletag takes a different approach by immensely versatile: you can define Scratching an itch: the author wrote Puddletag to escape presenting songs and their tags in a custom actions to modify tags based Mp3tag on Windows and free up a partition. spreadsheet-like layout – so you can on regular expressions, merge tags work on multiple files at the same time. together, remove whitespace and much Undo button if you mess up. You can It’s written in Python, and you’ll need more. These actions can be applied to even play songs from inside the various modules, such as Mutagen and batches of songs, providing an program, by default in (go to PyParsing (the full list is in the Readme automated editing system. Edit > Preferences to change to a file). Once you have these, you can run With the python-musicbrainz2 different player). the program from its own directory with module, Puddletag can retrieve song Puddletag is one of the most ./puddletag. You’ll be presented with a data from the net and tag files versatile tag editors we’ve come across, mostly blank display, so use the accordingly, and there’s a life-saving and its spreadsheet-based approach is Filesystem panel in the bottom-left to way better than the tiresome dialog-box navigate to a directory containing your system normally employed by. If you’ve songs. This will populate the main panel “One of the most used Mp3tag on Windows then you’ll with tag data, and you can scroll around versatile tag editors feel right at home here; the interfaces inside it like a typical spreadsheet – are very similar, although there are double-click on a cell to change its data. we’ve come across.” some feature differences.

Wiki engine Mobiki Version 2013-07-23 Web http://bit.ly/1488jIw

or quick document collaboration initial edits, you’ll need to input a jobs, nothing beats a wiki. password. This can be modified in the FThey’re easy to use, anyone with configuration section of index.php. a web browser can contribute, and Mobiki’s markup isn’t quite the same as admins can monitor changes to the MediaWiki’s, but it shares many content. The only problem is the setup: similarities and a pre-built Wiki-Markup many wiki engines require the admin to page is provided for experimentation. create databases, fiddle around with The template. and template. permissions and other laborious tasks. css files are used for customising the Mobiki is designed to be ultra simple wiki’s appearance; in the former you Mobiki’s default theme is targeted at mobile devices. to install – it’s a single PHP file, and it can modify the structure of pages, while writes wiki pages to individual text files, the latter lets you fine-tune fonts and comparison to the larger engines: it’s so no database is required. It’s colours. Mobiki provides a simple News not possible to do comparisons with “optimised for usage with mobile page which shows recent edits sorted earlier page versions or revert changes. devices”, hence the minimal interface by date, along with an RSS feed With a quick five-line hack (saving when compared with the likes of containing the same information. extra copies of pages with a timestamp MediaWiki, and the code is easy to hack Here’s where Mobiki feels weak in affixed) it’s possible to add a basic thanks to an abundance of comments. versioning system, and manually copy To get the wiki running, place its files older versions of pages over current in the document root of a web server “Mobiki is designed to ones if necessary. But Mobiki isn’t with PHP 5.4 (or later) support (we be ultra simple to install designed to be a high-end engine, and used Nginx in our testing) and open for a simple, low-maintenance wiki for a index.php in your browser. To perform – it’s a single PHP file.” small group of users, it does a solid job.

www.tuxradar.com November 2013 LXF176 61 LXFHotPicks

Intrusion detection system PyHIDS 0.4 Version 0.4 Web http://bit.ly/14o4vr1

f you suspect that someone has compact and easy to use example of an broken into your home, what do IDS, as its name suggests it’s written in Iyou do? Before calling the old bill, Python. To run it you’ll need Python 3.3 you’ll want to find some evidence that a and the RSA module, which are no-gooder has been inside your available in Debian/Ubuntu-based property (and they are not still there systems like so: Here we’re looking at the config file, and then running too). For instance, a window that has sudo apt-get install python3-pip PyHIDS – in this case the Iptables have changed. been forcibly opened, or a broken door sudo pip-3.3 install rsa lock. You have a similar situation when Copy conf.cfg-sample to conf.cfg of the files and commands that are your computer is compromised, and open it in a text editor. You’ll see described in conf.cfg. Then run pyHIDS. whereby system and configuration files various configuration sections marked py to see if any of them has changed – that have been changed without your in square brackets; first look at the try manually editing one of the files involvement can indicate the work of [files] section. Here’s where you specify listed in conf.cfg and run pyHIDS.py an intruder. the files that PyHIDS will keep track of, again to see what the warning output The problem is, a typical so if something changes in them, looks like. PyHIDS can be run in a Cron installation contains tens of thousands PyHIDS will let you know. Along with job each day, and you’ll be alerted by of files, and you can’t manually check all individual files you can specify mail if any of the files have changed the important ones every day. This is directories in the [rules] section, and without your knowledge. where an IDS comes in immensely under [commands] you can tell PyHIDS useful: it’s an Intrusion Detection to alert you when the output of certain System that monitors the content of commands changes. “PyHIDS is a compact your system-critical files and the output Once you have PyHIDS configured and easy to use of certain commands, and lets you to your liking, run genKeys.py and know if something changes. PyHIDS is a genBase.py. This will create a database example of an IDS.”

Audio player Potamus Version 14 Web http://offog.org/code/potamus

ome of the best open source Potamus’s interface is built with GTK projects were born out of so you’ll need the development headers S frustration. It’s a similar to compile from source, along with the situation with Potamus, which is “a development packages for libao and reaction to music players like libsamplerate. On first start, the that use complex program shows a blank playlist – drag- databases to keep track of music”. and-drop songs into it or start the Now, you could argue that these program with a directory containing databases are essential to give high- songs as a parameter. From here, it’s end players like Rhythmbox all the simple to operate: there are Play, Pause features we’ve come to expect. But and Skip buttons along the top, and a Potamus won’t every Linux system has a decent dropdown list for switching between win any beauty won’t find visualisers or album artwork database for organising songs: the various mono and stereo modes. contests – it’s downloaders here. If your music filesystem. So Potamus doesn’t try to The player supports MP3, all about the collection is lumped together in a single do anything fancy for sorting and and FLAC files, along with 24-bit functionality. directory and you rely on ID3 tags and managing your tunes – it doesn’t audio output and gapless playback. And pre-built playlists to manage it, then extract ID3 tags or move things into that’s pretty much it, feature-wise; you Potamus won’t rock your world. But if categories etc. It just shows you your you’ve carefully organised your songs songs based on their filenames, but it into directories for artists and albums, lets you rearrange them with drag-and- “Drag-and-drop, or drop and given songs descriptive filenames, drop, or drop in new songs from your in new songs from your it’s a great little player – integrate it with file manager. There’s also a Shuffle your file manager, and you can right- button to create a random playlist. file manager.” click on a directory to play an album.

62 LXF176 November 2013 www.linuxformat.com LXFHotPicks

Disk I/O latency measuring tool Ioping Version 0.7 Web http://code.google.com/p/ioping

ou’ve almost certainly heard of the disk speeds. Try this: ping before, but if not: it’s a ./ioping . Ysmall command line utility that Here, Ioping reads 4k of data from sends short messages to other the current directory every second, and machines on a network, waits for the shows how long the reading process response, and then shows the total time takes. With such a small amount of taken. For example, if you run it like this: data, the results will probably be Here we can see the effect of du / in the background ping google.com displayed in ‘µs’ on your machine – terminal – the latency jumps up from 5ms to over 30ms. Ping will send a request to that is, microseconds, or millionths of a www.google.com every second, and second. You can bump up the amount time will jump right up. And this is show how long it takes for the response of data that Ioping reads like so: where Ioping is most useful: you can to come back. Slow responses could ./ioping . -s 1M run it on different storage devices at indicate a problem with Google’s This time it reads 1MB every second. different times, and see exactly what is servers, or some congestion on the While you’re running Ioping, try happening with your disk throughput. network between your machine and opening another terminal and doing Using top, it’s easy to see how a Google’s mammoth data centres. In any something disk-intensive, like du /. particular Cron job affects CPU usage case, it’s a valuable tool for system You’ll immediately see the effect this for example, and with Ioping you can administrators, and now we have a disk has on disk-read latency – the response now see if it’s slowing down disk drive I/O equivalent in the form of Ioping. accesses for other processes as well. To compile it, extract ioping-0.7.tar. Ioping has other options (enter man gz, jump into the resulting directory and “It’s easy to see how a ./ioping.1) providing more detailed enter make. You can now run the Cron job affects CPU analysis of disk latency, and it can even program in place, but you need to generate raw data for feeding into provide a filesystem location for testing usage, for example.” another program for further processing.

Date calculating toolkit Dateutils Version 0.2.5 Web www.fresse.org/dateutils

alk about inconsistency: there system-wide, run make install as root; are 60 minutes in an hour, 24 otherwise just jump into the src Thours in a day, seven days in a directory and run them from there. week, 52 weeks in a year… and then The best way to learn how Dateutils there are the 12 months, which have works is with some examples, so here’s varying numbers of days. We’re all used how to solve the question posed earlier: to this system, but it all gets very messy dadd 2016-02-24T17:00 +6000h when you try to calculate durations As you can guess from the name, Use dgrep to between dates, or add periods of time dadd performs additions on dates and (-2m), months (+6mo) and so forth. search log files to them. For instance, off the top of your times, and in this case we’re specifying for events that Then there’s ddiff, which shows the head, what time and date is it if you add the year, month and date. It’s possible happened before duration between two dates. If you 6,000 hours to 17:00 on the 24th of to work solely with dates, but by adding or after a specific enter ddiff 2016-02-24 2016-08-15, February 2016? T we can use times as well, in 24-hour date/time. for example, you’ll get 173 (the number If you can answer that, well, you clock format. So after specifying the of days between the dates). If you add don’t need Dateutils. But this toolkit is exact moment in time, we add the exact times (eg ddiff 2016-02- a godsend for the rest of us, and it 6,000 hours – it’s also possible to add 24T12:00 2016-08-15T13:00) then features a small collection of programs or subtract days (eg +3d), minutes you’ll see the result in seconds, but you with familiar Unixy names such as ddiff can format this to something more and dgrep. It has no dependencies useful with the -f flag. Using -f ‘%m beyond the standard C library, so it will “Work solely with dates %d’ shows the result split into months compile virtually everywhere, and you or by adding T you can and days. Dateutils has other handy can build it with ./configure and make. tools for searching and converting If you want to install the programs use times as well.” times. see Readme.md for the list.

www.tuxradar.com November 2013 LXF176 63 LXFHotPicks

HotGames Entertainment apps

Bug-based puzzle game Berusky Version 1.7 Web http://anakreon.cz/?q=node/1

e thought our internet- basics. In summary: you control one or sifting capabilities made more bugs on a 2D playing field, and W the NSA look like your job is to collect five keys scattered amateurs, but somehow Berusky around before making your way to the never came under our radar. It’s a exit. On levels where you can control block-pushing puzzle game along the more than one bug, hit the Tab key to lines of Sokoban, but with heaps of switch between them. extra features and fiendishly Berusky’s challenge comes from the This is one designed levels – oh, and its only various objects that stand between you of the easier plan your progress. The level design major dependency is SDL, so it’s easy and the keys. Stones block your path levels, but it still is excellent, and you often find gave our brain a to install. Extract berusky-1.7.tar.gz (collect a pick-axe to destroy them) and yourself staring at a new level for a good workout. and build it with the usual barrels hinder progress (push dynamite while to get your bearings, before ./configure, make and make install into them). Doors close behind you and even daring to make the first move. (as root) procedure; then extract the trap you. Completing levels is rarely a Our only minor gripe is that the data tarball and run ./install inside. straightforward affair – you need to carefully crafted pixel art is tiny, so Start the game by entering the game is almost impossible to berusky, and click Play to be play on hi-res screens. A quick fix for presented with a list of level “A block-pushing puzzle this is to enable High Resolution categories. Berusky includes 120 game… with heaps of mode in the Settings – this doubles levels, and helpfully there’s a Training up each pixel, making the game look series which takes you through the extra features.” a bit blockier, but far easier to see.

MicroBee emulator uBee512 Version 5.5.0 Web www.microbee-mspp.org.au

f you’re one of our Australian code, and to get it running you’ll readers, or you have a soft spot need MicroBee ROM images. These are I for the home computers of the provided by the MSPP at www. 1980s (or best of all, both of these microbee-mspp.org.au/technology_ apply), then this is for you. The public/ – grab the BASIC, charrom MicroBee was released down under and rom1 files, and place them in in 1982, originally in kit format but ~/.ubee512/roms/. Last, you’ll need a later as a pre-built system, and boot.disk to start up the machine, The MicroBee made a minor comeback in 2011 with a sported a Z80 processor running at examples of which are available at www. limited edition (105 units) Premium Plus kit version. 2MHz along with 16k of RAM. microbee-mspp.org.au/repository. The MicroBee series was largely We tried games_demo_ds80.dsk, unknown outside of Australia and which includes various puzzlers such as copyright (download at your own discontinued in 1990, but it still has Mah Jong, dominoes and Tetris. Other risk). UBee512 includes its own mini fans. There’s even the MicroBee games can be found on the internet, toolkit and windowing system for Software Preservation Project, which such as the classic Hunt the Wumpus, configuration – right-click inside the aims to “preserve the old technology with the usual complications about emulator window to switch to full- for future generations”. Core to this screen mode, change the sound effort is UBee512, a MicroBee volume and power-cycle the system. emulator that runs on Linux, “Available in Deb and Given the MicroBee’s obscurity Windows and Amiga OS. RPM formats, along when compared to the ZX Spectrum UBee512 is available in Deb and and C64, it’s great to see an emulator RPM formats, along with the source with the source code.” for it being actively developed.

64 LXF176 November 2013 www.linuxformat.com LXFHotPicks

Vintage-style terminal emulator Also released

New and updated software that Vinterm also deserves a look... downtimed 0.6 Version 0.4.0 Web http://bit.ly/11Rm0Pn Monitor operating system downtime, uptime, shutdowns and crashes. http://dist.epipe.com/downtimed emember Terminology [LXF174, distros), Vinterm won’t source your p48], the super-snazzy terminal ~/.bashrc when you start it, leaving you storeBackup 3.4 R from the Enlightenment team? with a very bare environment – you Backup utility with compression that Well, here’s pretty much the exact won’t have your aliases for instance. stores files on other disks. opposite. Whereas Terminology spruces Just enter bash (or your normal shell) www.storebackup.org up the command line with all sorts of to fix this. Vinterm doesn’t support Giada 0.7.2 forward-looking features like image colours, but it can show bold and A minimal, hardcore loop machine for previews and video playing, Vinterm inverted text as used in man for DJs and live performers. takes you back to the 1980s, with fuzzy instance. There’s also a full-screen www.giadamusic.com monitors and green-on-black displays. mode, accessible via Shift+Ctrl+F11. It’s totally retro and we like it. And that’s it for now, but the Vinterm’s only major dependency is developer plans to introduce emulation SDL, and to compile it you just issue a of other monitor and TV types, and single make command. Then run it in more configuration options to toy with. place with ./vinterm. Straight away you’ll see how the program attempts to recreate the displays of yore, with a blurry effect added to the fading green text. To see the effect in more detail, Vinterm’s use the -s flag to increase the scaling Giaga has lots of shiny knobs retrotastic visual and buttons to play with. (zoom) level, eg: style is based on ./vinterm -s 2 the IBM 5151, as Converseen 0.6.4 Note that if your default shell is shipped with the Qt-based image converter and resizer, Bash (as is the case in most Linux original PC. supporting over 100 formats. http://converseen.sourceforge.net

Convert binary files to PNGs DOMjudge 3.4.0 An automated judgement system to run programming contests. S2png http://domjudge.sourceforge.net Aletheia 0.1.4 Version 0.05 Web http://bit.ly/16zScGW Debug web applications by sending raw HTTP requests. http://aletheia.k42b3.com teganography, the technique of To use S2png, simply run its binary embedding hidden messages followed by a file. For instance: Data Crow 3.11.0 S inside images or other media, is ./s2png myfile.txt Manage all your various collections a fascinating subject. It has been used This will generate myfile.txt.png from movie, video, book, image, throughout history for clandestine which you can now upload to an image software, and music. communication, and with modern gallery. (To decode the file use the -d www.datacrow.net digital images it’s possible to hide large switch). It’s a useful way to share data GeomSpace 0.12 amounts of data inside a seemingly on a message board which only allows Interactive geometry software for innocent file. image uploads, and by default each different geometric spaces. S2png (something to PNG) has a lot image contains a text message http://sourceforge.net/projects/ in common with steganography tools, explaining how to get the software. For geomspace but with one major difference: it doesn’t a thin layer of security, it’s possible to try to hide anything. Instead, the password protect images as well. LXF resulting images that it generates scream ‘Look at me! I contain a file.’ You can store any kind of file inside a PNG image with S2png, but the picture states that it’s a carrier for other data. The resulting To compile it, just enter make – and images look if you receive a nasty warning about like random If Euclidian space isn’t rocking missing libraries, try adding -lm to the noise, but they your boat switch to Minkowski. LIBS line of the Makefile: can be viewed LIBS = `libpng-config --libs` -lgd -lm everywhere.

www.tuxradar.com November 2013 LXF176 65