"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." (Robert A. Heinlein)

Saturday, 24 December 2016

Saturday, 26 November 2016

Blog-Birthday Eight (a bit late)

Here we are, again, another year of blogging is passed. In spite of my last year promise of being more proficuous blogger my post writing rate has been even lower. Doing things and writing about them takes time and I'm not having a lot of spare time ultimately. On the other hand doing things in Linux is becoming every day easier so there is also less to explain. So ... no more promises for next year just stay tuned!

Monday, 17 October 2016

LibGDX: The “Swiss Army Knife” of Java Games Programming

My few readers might remember I sometimes explore, and play with, game engines and libraries. I suppose it's a sort of “compensation” for my everyday work with not-so-exciting middle-ware and web-services projects. I already posted about Slick2D libraries for Java games but I was looking for something more complete and, most of all, that would allow me to develop also Android applications.
LibGDX is a Java game-engine that provide a vast variety of features for developing games. It's mostly aimed to 2D games development but it even provides some 3D features. In addition LibGDX can deploy games on different platforms like Java desktop or Applet, Android, HTML5 and IOS (with some extra requirement due to peculiar Apple developing policies). Last but not least a LibGDX project can include additional extension libraries helping to develop different aspects of game programming like AI, physics or networking (and this is the why of this post title).

First project creation

You don't have to download the whole LibGDX project in order to start to develop. LibGDX people suggest using the handy utility they provide, LibGDX Project Setup, in order to generate a skeleton project. The generated project will be based on the Gradle building tool that will think about downloading from the Internet all needed libraries and their dependencies.

Wednesday, 21 September 2016

Netbeans 8.1 on the EEEPC 900

It's quite recent in the news that Netbeans, the Oracle Java IDE, is going to pass under the Apache wing. The immediate effect of this news has been to remind me to upgrade my EEEPC Netbeans installation.

Installation and first run

Netbeans for Linux is provided in the form of an auto-installing executable script, once downloaded I started it from shell:
chmod +x netbeans-8.1-javase-linux.sh
sudo ./netbeans-8.1-javase-linux.sh
when started with the “sudo” command the installation script install Netbeans into the “/usr/local” directory otherwise the script will install in your home directory.

Thursday, 28 July 2016

Test Drive: Linux Mint 18 “Sarah” on the EEEPC

It has been some time since my latest “test-drive” of a linux distribution on the EEEPC. I must be honest about it: the EEEPC is getting everyday older and I’m slowly loosing interest in improoving its use. By the way afrer reading of the newly released Linux Mint version, powered by Cinnamon 3.0, I’ve been tempted to write a live disk on my USB stick and try how it performs on my old netbook.

First impressions

After boot Linux Mint starts with the usual, “good-old” fashioned, Cinnamon desktop
Cinnamon applications menu offers a modern interface to start applications with all features a good application launcher need

Sunday, 3 July 2016

Natron: Open source video compositing

I often use my desktop computer to edit family videos. I'm far from being en expert or even en advanced amateur, my needs usually are limited to cutting out bed scenes, stitching the good ones with some effect and, sometimes, add head titles and a little of music. I usually use OpenShot for video editing and AviDemux in case my source video needed some simple processing before editing. These tools are more than enough for my limited needs but, while browsing around into the Internet, I read about a tool that appeared very promising to me: Natron, I so decided to install it and give it a try.

What Natron is

Natron is a compositing software. Its main function is mixing together different sources: video, pictures and text with addition of various filters and effects. Let's also point out what Natron is not: Natron isn't an editing software. Natron is not suited in cutting and stitching videos together even though, reading community forums, I understand it isn't impossible using it that way.

Natron user interface

Natron is a “node basedcompositing software, the process applied to source video is graphically described by a graph where every node represent an elaboration step like, for example, an effect or a filter. May be it’s because I’m very “graph-minded” because of my work, but I felt at home with Natron suer interface from the very beginning. I started by trying to correct a very dark and noisy night scene:

Friday, 27 May 2016

Upgrading (the EEEPC) with low disk space

When, while installing Xubuntu, I decided EEEPC disk partitioning I based my decision on previous installation typical disk usage worrying mostly about “/home” and “/usr” partitions. I never would have thought about running out of space in the root “/” partition.
Then, the first time I tried to upgrade to latest Xubuntu distribution I got an error message about disk free space on partition being not enough to download distribution files (that usually take a little less than 1GB of disk space). Examining disk free space I discovered that very little free space was left on the root partition even if it was more then enough after my post-installation check.
Fortunately AskUbuntu came quickly at recover: here I quickly found a question asked from who had the same problem. To be precise the question was about problems with “/boot” partition low disk space bat I suppose it was because of a different partitioning schema, by the way solution worked for me.

Cleaning “apt-get” leftovers

As I learned from AskUbuntu question some of the “lost” disk space might be occupied by unused files or apt-get temporary files. So simply by executing the following commands …
sudo apt-get autoremove
sudo apt-get clean
some disk space can be set free.

Removing old Linux kernel images

If free space gained from the previous operation isn't enough some more space can be obtained by removing old Linux kernel images. Every time Ubuntu upgrade to e new kernel release the old one is kept available in to be used to solve possible compatibility issues. Such feature is scarcely user and is of no use at all in the eve of a major distribution upgrade.
First the currently used Linux kernel must be identified the command …
uname -a
does the job, here is the current output
Linux eeepc900 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:34:49 UTC 2016 i686 i686 i686 GNU/Linux
while the command …
dpkg -l 'linux-image*'
lists all Linux kernel images currently installed, here is a sample output:
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
un linux-image <none> <none> (no description available)
un linux-image-3. <none> <none> (no description available)
rc linux-image-3. 3.19.0-15.15 i386 Linux kernel image for version 3.
rc linux-image-3. 3.19.0-28.30 i386 Linux kernel image for version 3.
rc linux-image-3. 3.19.0-33.38 i386 Linux kernel image for version 3.
rc linux-image-3. 3.19.0-43.49 i386 Linux kernel image for version 3.
ii linux-image-3. 3.19.0-56.62 i386 Linux kernel image for version 3.
ii linux-image-4. 4.2.0-34.39 i386 Linux kernel image for version 4.
ii linux-image-4. 4.4.0-21.37 i386 Linux kernel image for version 4.
rc linux-image-ex 3.19.0-15.15 i386 Linux kernel extra modules for ve
rc linux-image-ex 3.19.0-28.30 i386 Linux kernel extra modules for ve
rc linux-image-ex 3.19.0-33.38 i386 Linux kernel extra modules for ve
rc linux-image-ex 3.19.0-43.49 i386 Linux kernel extra modules for ve
ii linux-image-ex 3.19.0-56.62 i386 Linux kernel extra modules for ve
ii linux-image-ex 4.2.0-34.39 i386 Linux kernel extra modules for ve
ii linux-image-ex 4.4.0-21.37 i386 Linux kernel extra modules for ve
ii linux-image-ge i386 Generic Linux kernel image
eventually older kernel images can be removed with an “apt-get” command like the following, changing of course the version number
sudo apt-get -y purge linux-image-x.yy.z-tt-generic linux-image-extra-x.yy.z-tt-generic linux-headers-x.yy.z-tt linux-headers-x.yy.z-tt-generic
If you look deeper in AskUbuntu answer you'll see that more complex scripts can be used to make the operation faster. I stopped here, I don't like automating too much when deleting things and, after all, this it's I problem I get into at most twice a year. So … I can do it manually

Wednesday, 4 May 2016

Place the Raspberry PI at the centre of your network

My recent problems with Internet providers, followed by the need to change my ADSL modem-router made me think if it would be wiser to make my home network less router dependent. Local network at my home, like most home networks, relies on the ADSL modem-router for the Dynamic Host Configuration (DHCP). Every time I changed the router I had so to reconfigure its DHCP server in order to restore my network configuration, often not being able to access to some network devices, like the NAS disk, until the DHCP was properly configured.
While looking for a Raspberry DHCP configuration how-to I literally stumbled into this page about using the Raspberry PI as a wireless router. This also inspired me about using the Raspberry also to provide a backup or private WI-FI access.
Hardware set-up
First things first: I already had a Wi-Fi dongle wandering in my drawers, I installed in the Raspberry PI USB port and checked it worked. Not all the wireless interfaces are able to be used in “access point mode”, to check if the one I had was compatible I installed the “iw” utility:
sudo apt-get install iw
executing the command:
iw list
I got a detailed list of the network interface features, among them in the the supported interfaces modes:
Supported interface modes:
* managed
* AP
* monitor
* mesh point
i got confirm that the interface could work as access point.

Monday, 28 March 2016

Test Drive: Ubuntu Mate 16.04 on the EEEPC

Here I am, again, doing some “test-drive” on the EEEPC 900 and some newly released Linux distribution. Even thought I found, with Xubuntu, a stable lightweight solution for my old netbook still I'm looking curiously to what other lightweight solutions have to offer. After reading about the soon to be released Ubuntu-Mate 16.04 and its new so called “Mutiny” desktop layout, I so decided to download and give it a try.

A quick look ...

After boot Ubuntu Mate 16.04 welcomes you with the usual reassuring old styled desktop. In addition a handy welcome application is started too.

Saturday, 27 February 2016

Monitoring the Raspberry PI with RPI-Monitor

My Raspberry PI is, ,silently and tirelessly, doing its work as a headless server, mostly working as media-server thanks to MiniDLNA and SFPG gallery. Thanks to all this working silent and without asking maintenance I sometimes even forget about the Raspberry PI this is because I felt the need of looking for a tool that allowed me to check the Raspberry status trough a simple web interface.


RPI-Monitor is a web-based monitoring application developed by RPI-Experiences. I got informed about it by reading its description on eLinux.org page. On the same page I also found detailed information on how to set-up repository and install RPI-Monitor package so that installing it has been a mere copy-and-paste exercise.
sudo apt-get install apt-transport-https ca-certificates
sudo wget http://goo.gl/rsel0F -O /etc/apt/sources.list.d/rpimonitor.list
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2C0D3C0F
sudo apt-get update
sudo apt-get install rpimonitor
Once installed RPI-Monitor is available at port 8888 of Raspberry PI address
The “Start” button brings to RPI-Monitor status page where monitoring information is neatly exposed

Wednesday, 6 January 2016

Ubuntu 15.10: Some post installation fix

After upgrading my desktop computer to Ubuntu-Gnome 15.10 I went on with installing software packages I needed and it took me a while to notice there were problems in my network disk mounts. I had the configuration copied from the previously backed-up “fstab” configuration file. Everything was working fine before upgrading but in the new installation the system started with the configured Samba shares unavailable. Manually re-executing the mount sequence (with command “sudo mount -a”) solved the problem until next reboot.
I checked the system log and got the following error message:

Jan 3 11:15:05 veritons661 kernel: [ 20.826880] CIFS VFS: Error connecting to socket. Aborting operation.
Jan 3 11:15:05 veritons661 kernel: [ 20.827770] CIFS VFS: Error connecting to socket. Aborting operation.
Jan 3 11:15:05 veritons661 mount[680]: mount error(101): Network is unreachable
Jan 3 11:15:05 veritons661 mount[680]: Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Jan 3 11:15:05 veritons661 kernel: [ 20.828593] CIFS VFS: cifs_mount failed w/return code = -101
Jan 3 11:15:05 veritons661 systemd[1]: media-nas.mount: Mount process exited, code=exited status=32
Jan 3 11:15:05 veritons661 systemd[1]: Failed to mount /media/nas.
Jan 3 11:15:05 veritons661 systemd[1]: Dependency failed for Remote File Systems.
Jan 3 11:15:05 veritons661 systemd[1]: remote-fs.target: Job remote-fs.target/start failed with result 'dependency'.
Jan 3 11:15:05 veritons661 systemd[1]: media-nas.mount: Unit entered failed state.
Apparently, during the boot process, the system tried to mount network drives before the network was up and ready. I quickly discovered I wasn't alone with my problem, AskUbuntu pages offered some solutions. The first I tried, using the “_netdev” mount option in order to force the system to wait for the network to be ready, didn't work for me. The second solution has been configuring the network shares to be mounted only at the first access using “noauto” and “x-systemd.automount” mount options.
Here is how my “fstab” configuration looks like:

// /media/nas cifs noauto,x-systemd.automount,x-systemd.device-timeout=3,uid=maxx,credentials=/home/maxx/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0777,dir_mode=0777 0 0
# Public
// /media/public cifs noauto,x-systemd.automount,x-systemd.device-timeout=3,guest,uid=maxx,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
The network shares are now correctly mounted and there is no noticeable delay at first access. Only Nautilus seems to have been driven a little crazy about it since it shows drive icons doubled.