Archive

Posts Tagged ‘how’

Announcing Dycapo 0.0.2

January 10th, 2010 bodom_lx 1 comment

As promised, Dycapo 0.0.2 is out.

Dycapo will be an open client (mobile)/server system that will improve travel experiences of users in a city. The system will let people to define a destination on their mobile phone. DyCaPo will suggest and arrange trips by either using the Public Transport Service or Carpooling volunteers.
That is, DyCaPo will implement full Dynamic Carpooling functionalities as well as static approaches.

More information and download on the official page.

Here are the release notes and the changes since 0.0.1:

RELEASE NOTES
***************
2010-01-10 Daniel Graziotin 
Dycapo 0.0.2 is just for _showing_out_some_functionalities_ of the system and testing the underlying technologies. Dycapo 0.0.2 incorporates and shows:
* OpenTrip Core adoption and OpenTrip Dynamic data structures proposal (in Django Model format)
* Use of XML-RPC with Django (rpc4django over HTTP and HTTPS)
* (Sort of) integration of Dycapo models with Django and rpc4django
* Authentication
* Insertion of a trip by a driver
* Start of a trip by a driver
* Search of a trip by a rider
* Send a ride request to a driver
* Let the driver accept the ride request
No one exported XML-RPC function will surely be included in the final API! No one exported XML-RPC function is either optimized or completely working!
Code is (somewhat) documented. Expect a completely better work for 0.1.0 :)
CHANGES SINCE 0.0.1
***************
Some refactoring to make the code cleaner.
Lots of bugs fixed.
Test suite rewritten and (finally) fully working.

models.py:
- added utility methods (i.e. __unicode__ and to_xmlrpc)
- use of OpenTrip id proposal instead of Django id
- addition of fields to Participation model, regarding a ride request and a request accepted

trip.py:
this module has been splitted in four files:
- driver.py - holds all the XML-RPC methods that a Driver needs.
- rider.py - holds all the XML-RPC methods that a Rider needs.
- commin.py - will hold all the XML-RPC methods shared by Rider and Driver
- utils.py - holds some utility functions.

driver.py (formerly trip.py):
- added check_ride_requests(trip) - checks for ride requests
- added accept_ride_request(trip, person) - for accepting a Rider

rider.py (formerly trip.py):
- added request_ride(trip) - sends a ride request to a trip

tests/:
- Cleaner code and better organization
- Added test_all_simple.py - creates a Driver and a Rider with the same destination as target
- test_all.py - creates 3 drivers and 5 riders with random locations as target

Related posts

Announcing Dycapo 0.0.1

December 29th, 2009 bodom_lx No comments

It’s a pleasure for me to announce Dycapo-0.0.1, the very first release of the project.
Dycapo-0.0.1 is part of the pre-alpha-dontuse releases, to only illustrate some functionalities.
Here are the release notes:

2009-12-26 Daniel Graziotin <daniel DOT graziotin AT gmail DOT com>

Dycapo 0.0.1 is just for showing out some functionalities of the system and
testing the underlying technologies.
Dycapo 0.0.1 incorporates and shows:

  • OpenTrip Core adoption and OpenTrip Dynamic data structures proposal (in Django Model format)
  • Use of XML-RPC with Django (rpc4django over HTTP and HTTPS)
  • (Sort of) integration of Dycapo models with Django and rpc4django
  • Authentication
  • Insertion of a trip by a driver
  • Start of a trip by a driver
  • Search of a trip by a rider
  • Accepting a ride

No one exported XML-RPC function will surely be included in the final API!
No one exported XML-RPC function is either optimized or completely working!

Code is (somewhat) documented. Expect a completely better work for 0.1.0 :)

You can read much more about Dycapo and download it at Dycapo official project page. Project page also hosts installation instructions and configuration steps.

The research behind Dycapo (Dynamic Carpooling system) is illustrated here.

Related posts

Network Manager on Slackware 13.0, the dirty and easy way

December 4th, 2009 bodom_lx 2 comments

I love to be back to Slackware, my very first distribution. However, there are a couple of things that I’m missing from the other more comfortable distributions. From among them, I totally miss Network Manager.
I saw many people asking in forums on how to install Network Manager in Slackware 13.0. There is Wicd, already present in Slackware “repositories”. Every Slackware maniac will tell you that it does the same job of Network Manager, but I don’t agree. It does not always work and is more complicated to be configured than NM.

Anyway, I’m going to explain to Slackware newbies the dirty way to have a fully working Network Manager on Slackware 13.0. This method is totally against Slackware philosophy and will also replace some important libraries of the system! Anyway, the packages being replaced are prepared from the guys behind GNOME SlackBuild, a project to bring Gnome in every Slackware release.
You have two way to have Network Manager in your Slackware: either install the entire Gnome from them (or any other similar project) or use slapt-get against their repositories and just install Network-Manager. Here are the instructions. All the following actions must be performed as root user:

  1. Download, install and configure slapt-get. Instructions are provided on their website.
  2. Update your system with:

    slapt-get –update
    slapt-get –dist-upgrade

  3. Add GNOME SlackBuild repository in /etc/slapt-get/slapt-getrc:

    SOURCE=http://mirror.switch.ch/ftp/mirror/gsb/gsb-current/

  4. Update the list of available packages and replace some system packages:

    slapt-get –update
    slapt-get –add-keys
    slapt-get –install –reinstall alsa-lib bluez glib2 gtk+2 libwnck

  5. Now install Network Manager and its GTK applet:

    slapt-get –install NetworkManager network-manager-applet

  6. Be sure that dbus, hal and NetworkManager daemons will be loaded at boot time:

    chmod +x /etc/rc.d/rc.messagebus /etc/rc.d/rc.hald /etc/rc.d/rc.networkmanager

  7. Add your user to the plugdev group. Edit /etc/group, find the line

    netdev:x:86:root

    Add your username after root (bodom_lx is my case)

    netdev:x:86:root,bodom_lx

  8. You are quite finished now! Log back as normal user and create a startup script for network-manager-applet:

    cd ~/.kde/Autostart/

    Create a file called nm-applet.sh with the following content:

    #!/usr/bin/bash
    nm-applet –sm-disable &

    Give it execution permission:

    chmod +x nm-applet.sh

    .

Reboot your system. Everything should work fine now.

To uninstall Network Manager and restore the system as it was before the installation follow these instructions, as root::

  1. remove any GNOME SlackBuild package using:

    removepkg /var/log/packages/*gsb

  2. Comment GNOME SlackBuild entry in /etc/slapt-get/slapt-getrc:

    #SOURCE=http://mirror.switch.ch/ftp/mirror/gsb/gsb-current/

  3. Update your slapt-get sources and re-install the replaced Slackware packages:

    slapt-get –update
    slapt-get –reinstall –install glib2 libwnck alsa-lib gtk+2

  4. Toggle execution permission to the auto-started network-manager-applet. Log back as normal user and type:

    chmod -x ~/.kde/Autostart/nm-applet.sh

Feel free to comment any suggestion.

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

Intel Graphic cards, Linux, Xorg and UXA performance boost

June 21st, 2009 bodom_lx 5 comments

For people having Intel graphic chipset under Gnu/Linux, performance using 3D applications or Compiz-* window manager effects has always been a problem. Intel drivers for Xorg never gave problems but have also never been brilliant. I always looked around searching for xorg.conf tuning configuration entries.
Today I was simply browsing Ubuntu Wiki and discovered the UxaTesting page. I wanted to know something about UXA and Intel drivers, so I found a Wikipedia definition:

In computing, UXA is the reimplementation of the EXA graphics acceleration architecture of the X.Org Server developed by Intel. Its major difference with EXA is the use of GEM, replacing Translation Table Maps.

Yeah cool, the official Xorg Wiki Intel Graphics Driver page Gives also some more information, so if you’ve got one of these chipsets (you can verify using lspci | grep VGA ):

  • i810 and variants thereof
  • i815
  • i830M
  • 845G
  • i852GM
  • 855GM
  • 865G
  • 915G and variants (GMA 900)
  • E7221
  • 945G and variants (GMA 950)
  • 946GME
  • G33
  • Q33
  • Q35
  • 965G/Q
  • G35
  • G41
  • G43
  • G/GM/Q45

You may want to try out the new acceleration method by adding this line


Option "AccelMethod" "uxa"

To your /etc/X11/xorg.conf file, in section “Device”.

Please note that:

  1. UXA is not yet stable as EXA. Try it out, signal your experience on the Ubuntu wiki page and fill out a bug if necessary
  2. You will need at least Xorg server 1.6.0
  3. You will need at least xf86-video-intel-2.6.2 drivers
  4. I don’t think this is mandatory, but please tell me if you encounter differences when updating to 2.6.30.x kernel. I already have 2.6.30.0 on Sid so I don’t know if with a previous version this is working

On Debian Sid I just had to add the Option line to my xorg.conf file.
The performance differences are noticeable and incredible. Everything runs faster and smoother.
My glxgears output went from 60 FPS (using EXA) to 425 FPS (using UXA).
This is a 700% performance improvement!

Related posts

Unipoli

June 11th, 2009 bodom_lx No comments

Unipoli is a simple simulation of the very popular board game Monopoly by Hasbro. Unipoli is the Java outcome of the Programming Project course I followed in Academic Year 2007 – 2008.

I don’t know for how long the official project page will stay on Unibz servers, therefore I’m keeping this page on task3.

Project Members

  • Riccardo Buttarelli
  • Daniel Graziotin
  • Martin Leitgeb
  • Massimiliano Pergher

Mission Statement

This document was the first step made in facing the project:
The project will provide a simple simulation of the very popular board game Monopoly. Unipoli will allow a multiplayer experience (up to 8 human players) on the same machine but not over a network.
We will implement the classical Standard (Atlantic City version) Monopoly game board layout, produced by Charles Darrow, and later by Parker Brothers.
However, by virtue of being a virtual implementation of the real game, Unipoli will overtake some aspects of the real Monopoly game, giving to the players unique visual experiences. As example, we will highlight owned lands with the color associated to their owners. When a player decides to sell a property, the board will be obscured, leaving the lands owned by the player well visible.
Like in the original game, the purpose is to dominate the competition against the opponents, and be the last to survive. Due to time problems, we will not implement all the rules and game features. For example, hotels will not be included in our game version.

The GUI will consist of two main components:

  • A 2D top view of the game-board, that will occupy about the 80% of the window.
  • A sidebar containing information on players and the dice.

Players will be able to buy lands and build houses in case of monopoly. The opponents have to pay rents if a land is owned. There will be both factories and railroads.
Our game implementation will also feature the so-called Chance Cards.
There wonʼt be the possibility to play as the Bank. Money will just be considered as a number which increases and decreases. Therefore, a graphical representation of paper money is not scheduled.

Screenshots

Unipoli - Board Overview

Unipoli - Board Overview


Unipoli: user choices

Unipoli: user choices

Documentation

Source code and Javadoc

Binaries

License

Unipoli is released under the GPL v. 3

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http ://www.gnu.org/licenses/>.

Related posts