"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)
Showing posts with label Eclipse. Show all posts
Showing posts with label Eclipse. Show all posts

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.

Friday, 25 September 2015

The quest for new languages: Python

It happens, sometimes, that I download a “new” programming language or a framework or library in order to give it a try. Of course the word “new” is relative to my personal or professional experience, mostly orbiting around the Java galaxy. This time the “new” programming language is Python. Python is, of course, a widely used and far from being a new programming language but I never had the thought of giving it a try before.

Python on Eclipse: PyDev

I'm willing to learn new languages but I'm not so eager to install and use a new IDE while doing it. I so went looking for a Python development Eclipse plug-in and the choice fell on PyDev. Installing PyDev on Eclipse has been quite simple, just matter of selecting it on Eclipse Market Place and completing the installation wizard.
Before creating the first project PyDev plug-in needs to know where python interpreter is. There is a handy automatic search feature but I preferred the manual configuration in order to have more meaningful configuration names.

Saturday, 15 November 2014

The quest for new languages: Scala

As a programmer I try to keep track of the new tools are continuously made available to my work. It's a hard task, almost impossible, since every day new languages, framework or libraries are proposed on the Internet. I usually follow a conservative strategy by leaving novelties to “grown up” a little in order to see it they are more or less widely used.
I've been recently reading this article, among the many languages and technologies cited one particularly awakened my interest: Scala.

Why Scala?

Three things about Scala caught at my attention: first it runs on a standard Java virtual machine this means an easier integration with the programming ecosystem I'm mostly used to work with. Then I learned that Scala implements the functional programming paradigm. I really know little about functional programming but the idea of learning a new programming paradigm really enticed me. Last, but not least, Scala is nowadays widely used in big and complex software projects like Twitter or LinkedIn.

Scala on Eclipse (Luna)

A good Eclipse plug-in is available for Scala named Scala IDE for Eclipse. I fist tried downloading the one available at Eclipse Marketplace but I soon discovered it didn't work with Eclipse Luna. After some searching in the Internet I discovered the only working version for Eclipse Luna is version 4.0 release candidate 2. Installing the plug-in has been only matter of copying the update address into Eclipse “Install new software” window, agreeing to licenses and following instructions.

Wednesday, 4 December 2013

Fun programming: Andengine


Here I am back on the “Fun programming” theme: finding ways to have some fun while programming. A way I use to detach myself from daily routine while seeking for new techniques or languages to learn. While visiting back this blog I noticed many articles about Andengine: a promising 2D games engine for Android developed by Nicolas Gramich.

Setting-Up Andengine

The starting point so set-up a working Andengine environment is to have a working Android development set-up based on Eclipse and Android SDK. I had prepared it before during my previous Android experiments. Also is needed a Git plug-in for Eclipse, like EGit.

Andengine is available as a Android library project it can be easily downloaded from its GitHub page by selecting Eclipse import wizard (Choosing the “File → Import …” menu first then the “Git → Projects from Git” option).
After copying the project URI in the wizard request …
The project branch must be selected, I did choose the GLES2 branch the latest and the one currently under develop.

Wednesday, 14 August 2013

Mercurial and Mercurial-server : playing with DVCS (part 2)

In my previous post I moved my first steps with Mercurial DVCS, now I'll install a Mercurial server implementation and configure both my computers to access it using SSH protocol.

Mercurial-server

With DVCS you don't have to use a central server, repositories could be shared over LAN using shared folders, but this doesn't mean you can't have one. Various mercurial server side implementations exists, using different protocols. May be I'm too server-client minded but I didn't feel satisfied by just sharing repositories over a shared folder so I decided to install Mercurial-server.
Installing Mercurial-server is an easy task the command
sudo apt-get install mercurial-server
complete the installation process and the creation of the application user (hg). A bit more complex is configuring SSH for accessing the server, I mainly followed instructions from here and from Mercurial-server documentation.
Mercurial-server uses public-key authentication and SSH-Agent in order to grant access to its clients, so the first step has been to generate a keys couple for SSH. The ssh-keygen command does this interactively.
maxx@VeritonS661:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/maxx/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/maxx/.ssh/id_dsa.
Your public key has been saved in /home/maxx/.ssh/id_dsa.pub.
I then copied the public key in mercurial-server keys configuration path and told mercurial-server to refresh its authentication files, using the following commands:
ssh-add -L > maxx.key
sudo mkdir /etc/mercurial-server/keys/root/maxx
sudo cp maxx.key /etc/mercurial-server/keys/root/maxx /veritons661
sudo -u hg /usr/share/mercurial-server/refresh-auth
the usual path for mercurial-server keys is (for root users)
/etc/mercurial-server/keys/root/<user-name>
but if the same user must be accessed from different machines a different path is used:
/etc/mercurial-server/keys/root/<user-name>/<machine-name>
since I was going to add the maxx user from the EEEPC too I had to use, of course, the second from. On the EEEPC side I generated SSH keys at the same manner then, after logging to the desktop computer (the server) with:
ssh -A veritons661
and I eventually registered EEEPC's maxx user like this
ssh-add -L > eeepc900.key
sudo cp eeepc900.key /etc/mercurial-server/keys/root/maxx/eeepc900
sudo -u hg /usr/share/mercurial-server/refresh-auth

Wednesday, 31 July 2013

Mercurial and Mercurial-server : playing with DVCS (part 1)

Version control systems (VCS) are an indispensable tool when programming and sharing code even for small groups. Even while programming alone, but on different computers, a version control system could easily prove useful for securely sharing code between desktop and laptop computer. I use daily SVN, as version control while at work. For my homely experiments, instead, I decided to install something different: Mercurial, a distributed version control system (DVCS). Distributed version control systems, most famous are Git and Mercurial, do not rely on a central server to keep the code repository, in DVCS every developing computer keeps its own copy of the repository. What interested me in DVCS was the capability to do version control also when off-line and also, of course, the chance to learn something new.

Installing Mercurial (command-line and plugged-in)

Installing Mercurial command-line version it's quite trivial:
sudo apt-get install mercurial
Both Eclipse and Netbeans offers their plug-ins to interface with Mercurial. Netbeans plug-in is already provided with version 7.3.1 I have installed on the EEEPC. On Eclipse, desktop-side, installing the MercurialEclipse plug-in has been as simple as selecting it from the Eclipse Marketplace and following installation wizard.

Thursday, 25 April 2013

Fun programming: Java and Slick2D


Many may not believe me but programming can be fun. If you really love programming even watching a XML file going to, or coming, from a remote server can be fun but, of course, if your program produces something funny then programming is also more fun. So, while looking for something to relax after watching too much XML files, I decided to experiment with some 2D game engine. 2D gaming has been for many years confined to the Adobe Flash or J2MEmini game” context. More recently , with the ever wider smart-phones diffusion, 2D games have known a real revival.
Among the many 2D games engines available I first restricted my choice to the Java-based ones. After a short examining of available features and documentation I decided to try first the Slick2D engine.

Slick2D

Slick2D is a Java game engine mostly based on the LWJGL (Light-Weight Java Game Library) library. The aspect of Slick2D the more appealed to me, and triggered my interest, is the ability to begin coding a simple game by just extending a class and writing three methods.
Slick2D offers in fact an abstract class BasicGame, once this class is extended just three methods have to be implemented:
  • init() : is called once when the game is started
  • render() : is called every time the screen is refreshed
  • update() : is called when controls (keyboard, mouse, joystick, ...) are read
The programmer can mostly ignore the other aspects of the game and concentrate on these three events.
Of course writing a complete game will still be a complex task but, Slick2D makes very simple the initial approach to game programming easing a lot the learning curve at the beginning.

First project

To prepare my first project I first downloaded Slick2D jar file and LWJGL zip archive, I then extracted it in a convenient folder in my home directory. In Eclipse I first made a standard Java application project

Saturday, 29 September 2012

The many steps of an Android Hello-World


As I promised on my last post, I couldn't resist not to write at least a hello-world application on my new phone. I went so through the, a bit long, task of installing the Android developer tools and writing my first program with it. I followed, step-by-step, instructions provided from Google Android SDK how-to pages. As a start I installed on my desktop computer but, soon, I'll try installing Android SDK on the EEEPC too.

Installation

The first step I took has been, of course, installing Eclipse IDE, a quite plain install from the software centre apart from some compatibility problem with Oracle Java 7. I had to revert to OpenJDK as default JVM in order to make Eclipse start.
The second step has been downloading and extracting Google's Android SDK. I though, at the beginning, about installing on a system folder like “/opt”, until I discovered that Android's Eclipse plug-in takes care of downloading and upgrading files on the SDK folder. I so went back to installing it on my home folder since running Eclipse as root user every time you have to do an upgrade is far from being advisable. By the way installing the SDK has only matter of extracting the downloaded file:
tar -xf android-sdk_r20.0.3-linux.tgz
Then I started Eclipse and selected the “Install new software” option from the “Help” menu opening the plug-in installation form. Here I added Google plug-in update URL (with the “Add...” button) and selected all the “Developer tools” items.