Posts Tagged ‘qt’
Monday, September 28th, 2009
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
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
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!
Tags: 2009, bodom_lx free software, C++, code, cplusplus, free software, HTTP, linux, Mac Os, mac os x, page, PNG, pomodoro, pomotux, POST, pro, project, projects, qt, report, screenshot, site, software engineering, software engineering project, university, web
Posted in Free*, Programming, Unibz | No Comments »
Monday, September 28th, 2009
Summary
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.
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
Get Pomotux
Pomotux has been developed for the Software Engineering Project course at the Free University Of Bolzano by Daniel Graziotin, Riccardo Buttarelli and Massimiliano Pergher. We decided to release it under the GPL 3 license and host the code on Google Code. Everybody is free to contribute and join the project.
Pomotux is hosted on: http://code.google.com/p/pomotux/
Source code is available on: http://code.google.com/p/pomotux/downloads/list
The wiki contains more information and installation instruction, and a better description of the of the system implementation and Software Engineering outcomes

Activity Inventory Sheet
Technology Overview
The System has been developed using
- C++ programming language (coding standard)
- QT framework (4.5)
- SQLite Database library
- LiteSQL Object Relational Mapper framework
Useful tools used during development:
- CXXTEST Testing Framework
- CPPCHECK code analyzer
- Artistic Style code formatter
Project Status
The project succesfully passed the exam with a maximum degree. It has been developed under Gnu/Linux and has only been tested under Gnu/Linux (various distributions). It should be cross-platform. The only component that brakes cross-platform is LiteSQL, that should work on any *NIX system but not Windows. We are looking for testers and people to port it under Max Os X (and possibly) under Windows
Tags: 2009, C++, code, daniel, distribution, Download, google, gpl, gpl 3, graziotin, HTTP, installation, language, linux, list, page, PNG, pomodoro, pomotux, pro, Programming, project, qt, release, screenshot, site, software engineering, software engineering project, source, source code, standard, Status, summary, university, URI, web, Wiki
Posted in | No Comments »
Tuesday, May 12th, 2009
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.
Tags: aria, C++, contact, dynamic, HTTP, java, JSP, life, linux, pomodoro, pomotux, POST, pro, project, projects, qt, release, rest, scrum, Serv, servlets, site, software engineering, software engineering project, source, stability, university, web, Wiki, wikipedia
Posted in Free*, Programming, Unibz | No Comments »
Friday, March 20th, 2009
After the study of pointers versus references, the second natural question that comes in head of a ex Java developer turning to C++ is:
"What are the difference between static and dynamic memory allocation in C++?"
which can be translated as:
"When should I use the stack and when do I have to use the heap in C++?"
that can be further simplified to:
"When should I use the new operator in C++?"
I could simply summarize the answer to: "Use stack when possible", but I think that this time there is the need of more explanations. Let's have the following model for a process in the system:

A simplified model for a process
I'm not really interested in an real representation of a process (see Modern Operating Systems by A. S. Tanenbaum for a very good explanation on processes), but focus on the stack and on the heap.
In reality the heap is a software abstraction but you can also imagine it like the stack.
In C++ programs there are also several other memory areas in which objects and non-object values may be stored (see this article on GotW for further details).
Why then choose between stack or heap? Quoting my publication on object-oriented memory management in Java:
Stack-based variables have their extent determined by their scope, so the former is constrained by the structure of the code at compile-time .
Sometimes there is a need for the variables with unconstrained extent in order to cope with
problems where lifetime of a variable can only be known at run-time.
In this case heap-based variables, whose extent is strictly under control of the programmer, are used. [..]
I promise that I will update my 17 pages about OO-memory management to cover also C++ by the end of June. By the way, following some forums, wikipedia, my publication and GotW, I also summarized pros and cons of stack and heap use in C++:
| Stack |
Heap |
| Its size is determined at compile-time |
Size determined at run-time |
| Therefore, it is less expensive and quick |
Therefore, it is more expensive and slower than stack |
| The preferred way to store objects and variables if their size is limited. |
To be used only if needed: the amount of memory needed is variable and unknown, and may increase rapidly. |
| There is an AUTOMATIC CLEANUP of objects when they go out of their scope |
Objects STAY IN MEMORY even when you don't use them anymore. |
| Programmers don't have to bother to free resources |
Therefore, programmers HAVE TO CLEAN memory manually. However, all modern OS free the resources when the program exits. |
Update 2009-07-03
After 4 months of heavy GUI and Database C++ programming, here are my thoughts: if you are planning to write a program with something more than a couple of objects interacting, using associations and therefore, objects as attributes, use the heap. Every serious program, even if not really big, uses heap for object allocation. Just take care to delete the objects when you don't need them anymore. Objects on the heap are dynamically allocated and it is more comfortable to pass them through other objects using pointers. The use of the heap assures the live of objects even if the method that generated them runs out of scope ( =dies ). If you also plan to write GUIs, solid toolkits like QT recommend the use of heap to create graphical objects.
In some Operating Systems, stack is also very limited while heap is usually not.
Here are listed the sources I used for writing this article:
- http://www.velocityreviews.com/forums/t278261-stack-vs-heap.html
- http://www.computing.net/answers/programming/stackheap-c/2293.html
- http://www.codeguru.com/forum/showthread.php?p=1186307#post1186307
- http://www.codeguru.com/forum/showthread.php?t=350945
- http://www.gotw.ca/gotw/009.htm
- http://en.wikipedia.org/wiki/Process_(computing)#Representation
- http://task3.cc/object-oriented-memory-management/
Hope that this article helped you to clearly understand the differences between stack and heap allocation in C++, write me if there are other issues or you need more explanations!
Tags: 2009, abstraction, api, aria, C++, code, DELETE, differences, dynamic, dynamic memory allocation in c, HEAD, heap, how, HTTP, java, java developer, java stack, life, list, memory, memory areas, memory management, page, php, PNG, pointer, pointers, POST, pro, Programming, promise, publication, PUT, qt, reference, rest, review, run time, software abstraction, source, stack, static and dynamic memory allocation, Tanenbaum, variables, Wiki, wikipedia
Posted in Programming | 4 Comments »
Thursday, January 24th, 2008
Pomodroid
A Java/Android application that interacts with a Trac
system, retrieves developer's tasks and lets him work following the basic rules of the Pomodoro technique.
Pomotux
A task manager implementing the Pomodoro Technique
BD-review
A dynamic website to allow people to review releases (albums, demos, EPs, singles) of (young, unsigned) music bands. Written using a small subset of JavaEE technologies, without the use of web-frameworks.
BD-incollo
A dpaste/pastebin clone written using Django
BD-shell
A tiny C shell for Unix systems
BD-theme Zen
BD-blog minimalistic Wordress theme, available for free
BD-theme
Old BD-blog Wordress theme, available for free
Unipoli
A well-written Java implementation of the popular Monopoli game by Hasbro. It is a project I wrote with other 3 University mates following a software development cycle (Scrum). Unipoli was the project for our Programming Project course. Source code included, released under GPL. We also provide Javadoc, user stories, uml diagrams, binaries.
Computer Shop Warehouse IDA
A very simple, not really useful IDA (Individual Database Application) developed for the "Introduction to Database Systems" course. The documentation is really interesting
Do you think my projects are useful? Has one of my projects helped you at the University? Do you like to learn something from my experience? Are you happy to be able to download every source code?
Then, why don't you consider a small donation? Donations are useful to maintain my domains and the infrastructures that host my Projects. I'm just a student, I'm not interested to earn profits from my projects, that will always remain free. But I would be delighted to don't pay for them
Tags: BD-blog, bd-i, BD-incollo, BD-shell, BD-theme, Blog, c shell, code, django, document, domain, Download, dynamic, frameworks, gpl, HTTP, HTTPS, incollo, java, JavaEE, list, monopoli, music, pastebin, pomodoro, pomotux, POST, pro, Programming, programming project, project, projects, PUT, qt, release, rest, review, scrum, set, shell, sid, site, source, source code, theme, tiny c, tiny c shell, Unibz, university, unix, web, zen
Posted in | No Comments »
Sunday, November 5th, 2006
This page contains all my pubblications around in the Net. These pubblications are mainly how-tos, tutorials and even little thoughts that I find useful. If you find a description in Italian, you should speak Italian for understanding it.
In questa pagina elencheró tutte le mie piccole pubblicazioni in giro per la Rete. Queste pubblicazioni comprendono guide, how-to, anche piccoli, oppure pensieri ai quali dó importanza.
Introduction to Software Testing
http://task3.cc/introduction-to-software-testing/
Link to the Pubblication (PDF)
A brief introduction to Software Testing concepts and Techniques, with explanations about control-flow graphs and data-flow analysis.
Object Oriented Memory Management
http://task3.cc/object-oriented-memory-management/
Page with topics covered
Link to the Pubblication (PDF)
Modeling OO memory management (stack and heap) touching both Java and C++
Introduzione alla Logica Sfumata
Fuzzy Logic: tesina (PDF)
Fuzzy Logic: Slides Integrativi (PDF)
Installare OpenGEU su un Apple Macbook
http://opengeuwiki-it.intilinux.com/index.php?title=Macbook
Una guida su come installare Ubuntu, OpenGEU e qualsiasi altra distribuzione derivata da Ubuntu, sul Macbook
How to install OpenGEU on a Apple Macbook
http://opengeuwiki-en.intilinux.com/index.php?title=Macbook
A guide on how to succesfully install Ubuntu, OpenGEU and any other Ubuntu derivate distribution on a Macbook
How to manage a card reader and the FSFE crypto card
http://task3.cc/how-to-manage-a-card-reader-and-the-fsfe-crypto-card/
A nice tutorial on how to set up a USB card reader for using it with a GPG card (for example, the FSFE fellow card)
Some definitions for Introduction to Programming
PDF
A very little PDF document with some useful definitions for a past university course, Introduction to Programming.
Hp nx6325 (and friends) thermal problems solved
http://task3.cc/hp-nx6325-and-friends-thermal-problems-solved/
An article on how to solve the (in)famous thermal problem of all Hp notebooks with an Amd Turion 64 X2 / Sempron cpu. It contains a bash script that really works and turns on the CPU fan when the temperature rises.
Old publications, unmaintained (click the arrow)
Installare Gnome Slacky su Slackware Current
http://www.slacky.eu/wikislack/index.php?title=Gnome_Slacky_su_Slackware_Current
Un How-To su come installare e configurare Gnome Slacky su Slackware Current
Abilitare l'accelerazione 3D con schede ATI e distribuzione Ubuntu Feisty Fawn
http://wiki.ubuntu-it.org/Abilitare3DAti
Un how-to sul wiki di ubuntu-it che spiega come installare i driver proprietari Ati per linux, utilizzando la distribuzione Ubuntu Feisty Fawn
Abilitare l'accelerazione 3D con schede ATI e distribuzione Ubuntu Edgy Eft
http://wiki.ubuntu-it.org/Abilitare3DAti/Edgy
Un how-to sul wiki di ubuntu-it che spiega come installare i driver proprietari Ati per linux, utilizzando la distribuzione Ubuntu Edgy Eft
Abilitare l'accelerazione 3D con schede ATI e distribuzione Ubuntu Dapper Drake
http://wiki.ubuntu-it.org/Abilitare3DAti/Dapper
un how-to sul wiki di ubuntu-it che spiega come installare i driver proprietari Ati per linux, utilizzando la distribuzione Ubuntu Dapper Drake
Abilitare l'accelerazione 3D con schede ATI e distribuzione Ubuntu Breezy Badger
http://wiki.ubuntu-it.org/Abilitare3DAti/Breezy
un how-to sul wiki di ubuntu-it che spiega come installare i driver proprietari Ati per linux, utilizzando la distribuzione Ubuntu Breezy Badger
Abilitare l'accelerazione 3D con schede ATI e distribuzione Ubuntu Hoary Hedgehog
http://wiki.ubuntu-it.org/Abilitare3DAti/Hoary
un how-to sul wiki di ubuntu-it che spiega come installare i driver proprietari Ati per linux, utilizzando la distribuzione Ubuntu Hoary Hedgehog
Abilitare l'accelerazione 3D con schede ATI e distribuzione Ubuntu Warty Warthog
http://wiki.ubuntu-it.org/Abilitare3DAti/Warty
un how-to sul wiki di ubuntu-it che spiega come installare i driver proprietari Ati per linux, utilizzando la distribuzione Ubuntu Warty Warthog
Abilitare l'accelerazione 3D con schede ATI e distribuzione Ubuntu
http://wiki.ubuntu-it.org/Enable3DAtiRadeon(fglrx) -ora deprecata - é la pubblicazione della quale vado piú fiero: un how-to sul wiki di ubuntu-it che spiega come installare i driver proprietari Ati per linux, utilizzando la distribuzione Ubuntu. Questo testo é una delle piccole prove che lo spirito del software libero e della condivisione delle informazioni funzioni davvero, perché creato dal sottoscritto (rimango sempre il mantainer ufficiale, ed é mia la maggior parte del testo), ma modificato e migliorato dagli utenti. Soprattutto, funziona 
Ora questa guida ha avuto uno split-up, andate su http://wiki.ubuntu-it.org/AbilitareIl3D per dettagli
Installare e configurare Xgl con schede video Ati (anche serie Xxxx) e Ubuntu Dapper Drake
http://task3.cc/2006/08/04/installare-xgl-con-schede-ati - é il risultato della raccolta di una mole immensa di informazioni nella Rete, della sperimentazione di Xgl sul mio portatile, e le istruzioni per come configurarlo correttamente. Questa guida non funziona per Ubuntu Edgy Eft, perché il sistema é cambiato, non appena configureró Xgl sul portartile nuovo e su Edgy Eft, prometto di scrivere come fare
Risolvere i problemi con il wireless Intel dopo l'update a Dapper Drake
http://task3.cc/2006/06/03/ubuntu-dapper-drake-e-wireless-intel/ - Piccola guida su come far funzionare nuovamente la propria scheda di rete wireless Intel dopo l'aggiornamento a Dapper Drake. A scanso di equivoci, questa piccola guida serve solo se la propria scheda di rete risultava giá operativa prima dell'update
If you find my publications interesting, if something I wrote on the blog did help you to solve a problem, if you realize you could have paid for solving it..
Why don't you consider a donation? Donations are useful to maintain my domains and the infrastructures that host my Projects. I'm just a student, I'm not interested to earn profits from my projects, that will always remain free. But I would be delighted to don't pay for them
Tags: Analysis, Blog, brief introduction to software testing, C++, distribution, document, domain, Download, driver, Gnome, heap, how, how-to, HTTP, HTTPS, intel, introduction to software testing, italia, java, javascript, link, linux, macbook, memory, memory management, OpenGEU, page, pageTracker, PDF, php, POST, pro, Programming, programming project, project, projects, publication, publications, PUT, qt, rest, Serv, set, sid, software testing, stack, tutorial, ubuntu, Unibz, university, URI, web, Wiki
Posted in | No Comments »