Archive

Archive for the ‘Free*’ Category

On the automation of API writing and XML-RPC serving for Python Django

November 10th, 2009 bodom_lx No comments

While searching for solutions on adopting Django for the server side of our Dynamic Car Pooling system, I found two very interesting projects:

  • WAPI – a framework which abstracts the details involved in publishing an API and translates class methods to API methods, serializing the objects returned when possible. WAPI handles authentication, too, and other advanced functions. It’s an amazing, fully Django compatible system that currently works over ReST (JSON, XML, YAML) but not with XML-RPC. Therefore, I contacted the author to have some information about the status of the project. It would be very interesting in our system, to provide API and XML-RPC services just by using his layer
  • RPC4Django – provides XML-RPC and JSON-RPC support to an existing Django project. It promises a XML-RPC interface by just adding the decorator @rpcmethod to an existing python function. It also fully integrates with Django authentication framework

I’m going to experiment with these two tools. Obviously the first one is the most interesting because of its ability to “export” services in more formats. But the most important protocol for us is missing. Let’s hope it will be added soon!

Related posts

Announcing Pomotux, a free Task Manager implementing the Pomodoro Technique

September 28th, 2009 bodom_lx No comments

Pomotux is  a C++ activity manager for the Pomodoro Technique created by Francesco Cirillo, a member of the XPlabs crew. The program focuses on the basic features of the technique. It does not focus on advanced techniques, such as the prediction of the number of pomodoros needed for an activity.

Activity Inventory Sheet

Activity Inventory Sheet


About the Pomodoro Technique

The Pomodoro Technique is a time management method that can be used for any kind of task. For many people, time is an enemy. The anxiety triggered by “the ticking clock”, especially when a deadline is involved, leads to ineffective work and study habits which in turn lead to procrastination. The aim of the Pomodoro Technique is to use time as a valuable ally in accomplishing what we want to do in the way we want to do it, and to enable us to continually improve the way we work or study.

The Technique is heavily explained on a 60+ pages book published on the website. Please visit the official website for more explanations.

A running Pomodoro

A running Pomodoro

We implemented Pomotux for the Software Engineering Project course, and it currently works under Gnu/Linux. Project page is located here. We are looking for coders to port it under Mac Os X, *BSD and Windows!

Related posts

Announcing BD-review, a free platform for music reviews written using JavaEE

July 29th, 2009 bodom_lx No comments

BD-review is a dynamic website to allow people to review releases (albums, demos, EPs, singles) of (young, unsigned) music bands. The project is the outcome of the Internet Technologies course at the Faculty of Computer Science of the Free University of Bolzano. The requirements of the project were to build a website using a small subset of JavaEE technologies, without the use of web-frameworks.

A screenshot of a Review

A screenshot of a Review

The project is not really meant for production use. It was made as a strong, working and correct base for studying JavaEE academically. It should be useful for every student (also non-student) willing to have an overview on JSP and study it. The code is well-written, uses MVC, and the whole project is documented in detail in a 20+ pages report.

Read more on the project page, download the sources and play with it! Please let me know about your experience with BD-review code.

Related posts

BD-incollo 0.9 is out!

July 26th, 2009 bodom_lx No comments

It took me about one year to find some time to enhance my project BD-incollo. I worked hard for 5 days and to add new features and fight the (huge) amount of spam that was wasting my database space. Now I’m very proud to announce bd-incollo 0.9, a free, light, speedy, anonymous Pastebin clone written in Python Django. This version introduces a lot of new features, including the possibility to make diffs between pastes, and fights spam using Akismet. Read more about the features on the project page and on the new News section on the website that makes use of BD-incollo, incollo.com .

BD-incollo 0.9 is free software as always, under the Gnu Affero General Public License 3.

Currently, you can:

  • Copy, Paste and store a text / source code snippet to the system
  • NEW! Give other people the possibility to discover your Paste (make a Paste either public or private)
  • Decide to colorize the syntax of the Paste
  • Share it using its URL
  • NEW! Enhance Pastes! Create a Paste starting from an old one
  • NEW! View differences! Makes use of the powerful diff-match-patch by Neil Fraser to see differences between two Pastes
  • NEW! Antispam protection using Akismet and akismet.py by Michael Foord
  • Download it as plain text
  • View it as plain text
  • Search something interesting through other pastes!
  • Report abuses to site admins

It also uses a very smart hash system that automatically re-computes a hash key in case of collision.

Here is an example of Paste: http://incollo.com/f341e6a4b
Here is an example of enhancement of the Paste: http://incollo.com/ba22929ac
Here is a full-screen diff of the Pastes: http://incollo.com/compare/f341e6a4b/ba22929ac

Play with them! Use incollo.com, spread it!

Road to 1.0

1.0 development will start after my next examination session (on September) and will surely include:

  • Some asynchronous improvements
  • The possibility to teach Akismet about Spam and Ham in Pastes (when admin user is logged in)
  • More cleaner code
  • The possibility to associate a user to its Pastes via a Cookie (always anonymous) and let him delete them
  • Comments to snippets?
  • What else? Contact me if you’ve got ideas!

Related posts

Gnome on Debian Sid and ekiga+libpt problem solved

July 22nd, 2009 bodom_lx No comments

If you are running Debian Sid (i386) and are trying to install Gnome using

apt-get install gnome

You will probably might be disappointed because of problems regarding gnome-desktop-environment, ekiga, ptlib (libpt2.6.4) and opal (libopal3.6.4). Everything seems related to a missing 386 version of libpt2.6.4 on Debian Sid. Also libpt2.6.4-plugins is missing. Packages are also reported to be broken.

Well, I was tired to wait for the right solution of Debian’s Gnome maintainers (respect to all of them!) and have just built my version of ptlib with built-in plugins. If you download it, install it and try again to install gnome, everything works fine.
Obviously, there are reasons behind the absence of a i386 version of libpt2.6.4 and libpt2.6.4-plugins from Debian Sid repositories. My workaround is surely not the right way to fix the problem, as I don’t know the reasons of the blocks on those packages. It may be either serious technical reasons or “simpler” political reasons. You might prefer to wait for the heroes to fix the problem in the Debian way. You are advised, anyway.

If you feel brave and just want to see your Gnome Desktop Environment appear on your Sid box then follow these steps:
1) Download my libt2.6.4 Debian Sid package. It provides libpt.2.6.4 and libpt2.6.4-plugins required by Ekiga, which is required by gnome-desktop-environment
2) Install it:

dpkg -i libpt2.6.4_2.6.4-1_i386.deb

3) Try again to install gnome:

apt-get install gnome

Stop here if everything is fine!

If it doesn’t work:
4) Try first to install libopal3.6.4:

apt-get install libopal3.6.4

If it works, go back to step 3.

If it doesn’t:
a) Try first to install Ekiga:

apt-get install ekiga

If there are still problems with libopal:
b) Download my libopal3.6.4 Debian Sid package. It provides libopal3.6.4, which is also required by Ekiga.
c) Install it:

dkpg -i libopal3.6.4_3.6.4-1_i386.deb

Go back to step 3.

Good luck!

Related posts

Introduction To Software Testing

July 19th, 2009 bodom_lx No comments

Elements and Concepts – A brief overview


Download PDF version of the whole document. You can browse the article online but I encourage the download of the PDF since it is written with accuracy.


Introduction

This document contains some basic concepts and definitions about software testing. It has been written for studying a part of the Software Engineering Project course at my University. It is composed by a summary of the intersection of more than 10 different sources, all of which are cited. If you feel that some contents of this publication belong to your intellectual property and it is not cited, please contact the author who is willing to correct any mistake.

The first part of the paper focuses on the definition of the most important key aspects of software testing. Then some information about input partitioning are given. What follows is a research about code coverage and two useful and famous tools, Control-flow coverage and Data-flow analysis. A complete example on using those tools is then given. The second half of the document also contains the definition of the most important software testing practices.

The goal of this tiny document is to clarify key terms and therefore become a base start for the reader to go in deep with the interested topics. Another goal is to give a simple but clear example about data flow analysis, as I realized that not all the people understand the examples around the Net.

Software Testing

Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs. It can also be stated as the process of validating and verifying that a software program/application/product meets the business and technical requirements that guided its design and development, so that it works as expected and can be implemented with the same characteristics. 1

Read more…

Related posts