Posts Tagged ‘publication’
Thursday, October 8th, 2009
While I am waiting for my wiki to be setup, I'm updating here my first week of work. I read lots of papers regarding dynamic car pooling and friends. Most of them are listed on this MIT website and on dynamicridesharing.org. The second site is maintained by Dan Kirshner, the author of three (unlucky) experiments regarding dynamic car pooling.
I actually selected 13 publications for my scope. I'm going to publish the list as soon as I've got my wiki. What I'm going to do is to review them, comparing my work with the excellent one done by Hannes Zimmerman and Yann Stempfel (Current Trends in Dynamic Ridesharing, identification of Bottleneck Problems and Propositions of Solutions).
Tags: dynamic, dynamic carpooling, dynamic ridesharing, Experiment, FBK, HTTP, internship, list, OSI, paper, papers, php, position, pro, publication, publications, reference, research, review, set, site, web, Wiki
Posted in Carpooling Research | 1 Comment »
Sunday, July 19th, 2009
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.
(more...)
Tags: 2009, Analysis, aria, beginning, brief introduction to software testing, bugs, CFG, change, code, CONNECT, contact, control flow graph, daniel, data flow analysis, data flow testing, definitions software testing, Design, DFG, document, Download, elements of, fix, functionality, graziotin, how, how-to, howto, HTTP, intel, introduction to software testing, java, javascript, Jeff, list, memory, mind, models, OSI, page, pageTracker, paper, PDF, PNG, POST, pro, Programming, project, projects, publication, PUT, reference, repository, research, rest, Serv, set, sid, sito, software engineering, software engineering project, software testing, source, source code, summary, Text, tutorial, university, URI, variables, version, Wiki, wikipedia
Posted in Activism?, Free*, Programming | No Comments »
Tuesday, June 16th, 2009
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.
Tags: 2009, data structures, Design, Download, freemind, functional programming, HTTP, java, javascript, language, mind, mindmap, page, pageTracker, PNG, pro, Programming, programming paradigm, programming paradigms, publication, rest, source, summary, Wiki, wikipedia
Posted in Programming, Unibz | No Comments »
Friday, April 10th, 2009
It took about a year for a major revision of my document about memory management in object oriented programming languages.
This major revision adds C++ in addition to Java.
The paper is about a model for memory management during the execution of programs written in Java and C++.
The number of pages grew from 17 to 28.
You can see more information and download the pdf on this page.
I hope you will find it useful to model your programs and know how memory is handled.
Tags: activation record, C++, document, Download, heap, how, HTTP, java, language, memory, memory management, page, paper, PDF, pro, Programming, publication, stack, static and dynamic memory allocation, URI, year
Posted in Activism?, Programming | 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 »
Sunday, September 21st, 2008
As I previously announced, I purchased a brand new domain for my stuff.
The blog is changing during the months, becoming more than a blog but less than a site.
That's because I decided to buy the domain BD-things.net, because this site contains all of my things, files, thoughts, projects, publications.
The old address daniel.graziotin.net now redirects permanently here and every link should have been updated/rewritten. Please contact me if you encounter problems.
I also took BD-blog.net which points here, too, but I won't renew it the next year.
Some things are different now, but you won't notice it 
I obviously lost my decent position at Netcraft's Most Visited Web Sites rank list, but I don't care. It will be funny to advance with the new domain and reach a even better position!
I hope there will be a new beginning and a brand new life with BD-things!
Tags: address, BD-blog, beginning, Blog, brand, contact, daniel, decent position, domain, graziotin, HTTP, life, link, list, most visited web sites rank, Netcraft, OSI, position, pro, project, projects, projects publications, publication, publications, rank, site, Sites, stuff, URI, Visited, web, year
Posted in Activism?, Blog, My Life | No Comments »