Archive

Posts Tagged ‘wikipedia’

Internship: Dynamic Carpooling

October 2nd, 2009 bodom_lx No comments

I’ve just started an internship for my University. I’m working at the Fondazione Bruno Kessler, a research organization of the Autonomous Province of Trento that promotes research in the areas of science, technology, and humanities. In particular, I’m at the Center for Information Technology – Irst, in the SoNET explorative unit.
My research activity will last until the end of January and hopefully continue during the second semester, if the collaboration will be fruitful enough for a thesis.
The internship activities will focus on Dynamic Carpooling. I’m going to use my blog and the new category /carpooling-research to publish updates about the status of my research. We are going to purchase a domain that will also contain the outcomes of the research activities, available to the general public.
Here is a quick overview of the contents of my internship:

1. Dynamic Ridesharing Reviews

  • Review of existing papers
  • Review of existing web and mobile applications
  • Review of protocols
  • Research about the motivations of failure/success of existing realities

2. Release of Prototypes

  • API definition for Dynamic Carpooling
  • Implementation of a web application for Dynamic Carpooling
  • Implementation of a mobile application for Dynamic Carpooling
  • Possible integration with FBK systems

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

Introduction to Aspect-Oriented Programming

June 16th, 2009 bodom_lx No comments

Like I did for Functional Programming, this post contains the mindmap that covers the basic elements of Aspect-Oriented Programming.
This is just a tiny summary of the most important points of AOP, and uses AspectJ in the examples.

Topics covered:

  • Definition
  • Response to Object-Oriented crosscutting concerns
  • Aspects
  • Advices
  • Inter-Type Declarations
  • Join Point Model: Join Points, Pointcuts, Advices
  • AspectJ tiny example

You can reach a browsable HTML export of the mindmap
You can download a PNG export of the MindMap.
You can download Freemind sources of the MindMap

Related posts

Introduction to Functional Programming

June 16th, 2009 bodom_lx No comments

For the Programming Paradigms course we had to study the concepts of Functional Programming.

So here is my usual mindmap regarding the topic. This is just a summary of the most important concepts of functional programming. It also summarizes the very well-written Functional Programming for the Rest of us publication, and uses its pseudo-Java language.

Topics covered:

  • Definition
  • Basic Units
  • Symbols
  • Concurrency
  • Higher Order Functions
  • Functional Programming and Design Patterns
  • Currying
  • Lazy Evaluation
  • Abstract Control Structures
  • Infinite Data Structures
  • Continuations
  • Pattern Matching

You can reach a browsable HTML export of the mindmap
You can download a PNG export of the mindmap.
You can download FreeMind sources of the mindmap.

Related posts

What is taking me busy – Pomotux!

May 12th, 2009 bodom_lx No comments

I’m currently pressed by my University life, that’s because I don’t post often.
There are 3 big projects for this semester: a C compiler, a dynamic website using Java Servlets and JSP and the most interesting one: a C++ program for Software Engineering Project course.
I’m working with other two collegues on a task manager for people using the Pomodoro Technique by Francesco Cirillo.
The project is called Pomotux and is under development following strong software engineering methodologies (Scrum@Xp). Pomotux is under construction since 2 months and uses technologies such as SQLite to store and play with tasks. The interesting fact regarding our data structure choice is that we are also using a framework for obtaining ORM, called LiteSQL.

LiteSQL is a C++ library that integrates C++ objects tightly to relational database and thus provides an object persistence layer

LiteSQL is still young and immature but powerful enough for our scope. We are also happy to provide feedback to their developers, that are ready to help us. They even wrote a patch for us!
Pomotux is reaching an unexpected stability. Unexpected because it is written by 3 young people that come from a light Java experience and saw C++ 3 months ago. It works under Linux and its graphical interface uses QT 4.5.0. It should work on any *NIX variant that meets dependencies, but also under Windows with some light modifications.
It will support just the basic features of the technique (unfortunately we don’t have the time to fully work on it) but it’s ready for expansions such as team support and statistics.
We will be happy to release the sources as soon as we finish the course, hoping that people will find it useful and that some serious programmers take it and make it the perfect tool for Pomodorians :) I will also contact the author of the Pomodoro Technique when we release it.

Related posts