JEE application with Docker + Glassfish + JavaDB (Derby)

With Docker it’s easy to develop applications in an isolated, deterministic and secure environment. So let’s see how we can leverage Docker features to develop JEE applications.

We will see how to create a container that features Glassfish (the reference implementation for JEE application servers) and it’s default database JavaDB (Derby).

To simply test how it works on a sample project you can use this one:
Continue reading “JEE application with Docker + Glassfish + JavaDB (Derby)”

Design and Implementation of a MPPT algorithm for photovoltaic panels based on neural networks

Bachelor thesis in computer science and engineering at Universit√† degli Studi Roma Tre with title “Design and Implementation of a MPPT algorithm for photovoltaic panels based on neural networks”.
Supervisor: Francesco Riganti Fulginei


Lightweight and multipurpose list data structure in C

In the last C project I needed a versatile list data structure.

The needs for this list where:

  • lightweight on memory
  • easy to use
  • support for every kind of information I wanted to store

Given those premises, I decided to create a classic list data structure that instead of using the correct data type, it uses (void *) as the information holder.
Using a void pointer gives you a lot of flexibility because in this way you can store every kind of information you need. You can even obtain a list that holds different element types!
However the use of (void *) requires a bit of a consideration. In fact, deleting a node from the list becomes difficult because the information that is being held by the list node needs an appropriate deallocator function. Another reason of concern is that when you get the info from a node list, you have to cast it as the element type that you know it is.
Continue reading “Lightweight and multipurpose list data structure in C”

CMake tutorial for novices

I really struggled to find a decent and simple tutorial on CMake. For this reason I decided to write this one for novices like me and just get started. I’m quite sure it’s not the right way of doing things, but it’s simple and it works.

I’m more than open to suggestions and best practices of more experienced developers of course!

I’ll try, as I learn new things, to update this tutorial (pinky swear :P).
Continue reading “CMake tutorial for novices”