"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)

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