I’m happy to announce the arrival of a new colleague: Dr. Jannik Laval.

Officially, Jannik started working for our team since Friday 2nd november 2012. That was a Pharo sprint day hosted by our partner the RMoD INRIA Lille team. This was the opportunity to revive our dormant project: OCEAN. Luc Fabresse, Jannik Laval and my self are the main contributors of this new network library for Pharo. We worked a on it while Jannik was doing his PhD. An now that he is back, we have new energy to get this project done.

However, the main effort that we all concetrate on is Robotics. With the rest of the CAR team, we target models, software infrastructures and tools to ease the development of control architectures for robots. We expect to produce soon some cool demos.

As a response to a question in the Pharo-dev mailing list, Esteban Lorenzano explains how to make an iOS app that makes use of Pharo. There should be soon a web page on the Pharo web site that summarizes this and provides other details. In the meanwhile, I would like to share with you this solution. Note that Esteban also announced that  in a couple of weeks there will be a jenkins job to build iOS VMs.

Assuming that you already has in your system:

1) Xcode (I’m using version 4.4)
2) CMake (I’m using version 2.8.8)

And assuming also that you already has an iOS development user.
For use pharo in your iPad you need to follow the following steps:

1) clone https://git.gitorious.org/~estebanlm/cogvm/cog-osx.git
2) in ./image dir prepare a VMMaker image (using pharo 1.4):

Gofer it
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfCog';
(Smaltalk at: #ConfigurationOfCog) project lastVersion load.

3) Generate sources for iPhone:

StackIPhoneConfig new
generateSources; generate.

4) Generate your iPhone image (follow the instructions in iosbuild/resources/README), which is the place where iOS images need to be placed.

5) In dir ./build

build$ ../codegen-scripts/extract-commit-info.sh
build$ cmake -G Xcode .
build$ open iStackVM.image

5.1) you probably need to add your own development profile, the default one is named “iPhone Developer”

6) run

To run in Simulator:
Replace in Step 3 from StackIPhoneConfig to StackSimulatorConfig

Leading Banking Services in Luxembourg is seeking : a Smalltalk Software Developer.

Qualifications/required skills :

  • Software engineer with advanced SMALLTALK development skills.
  • Experience in smalltalk development is required.
  • If possible, experience in financial industry and ability to coach people.
  • English is the working language.


Other info:

  • Starting date : ASAP.
  • Estimated duration of the mission : until June 2013, serious extension options every 6 months.
  • Location : LUXEMBOURG.
  • Salary : negotiable.

Please send me your resume if you’re interested in that offer.

Bertrand Wunderlich
Recruitment officer

4, Place de Strasbourg
T : +352 20 40 80 42
P : +352 661 500 151

On Monday 29th october 2012 at 10am will be held the defense of the PhD of Mariano Martinez-Peck. This work is part of our partnership with  the INRIA RMoD team and proposes Marea an Application-Level Virtual Memory for Object-Oriented Systems. His experiments were obviously made using Pharo and result into  byproducts that are interesting for the community, namely: Fuel fast serializer and Ghost universal proxies.

The defense jury will be composed of:

  • Pr. Christophe Dony, Lirmm, Univ. Montpellier, France (Reviewer)
  • Pr. Robert Hirschfeld, HPI, Postdam, Germany (Reviewer)
  • Dr. Jean-Bernard Stéfani, DR Equipe SARDES, INRIA Grenoble-Rhone-Alpes, France
  • Dr. Roel Wuts, Principal Scientist at IMEC et Professeur à l’universté catholique de Leuven, Belgium
  • Dr. Stéphane Ducasse, DR Equipe RMod, INRIA Lille Nord Europe, France (Director)
  • Dr. Marcus Denker, CR Equipe RMod, INRIA Lille Nord Europe, France (co-supervisor)
  • Dr. Luc Fabresse,  Ecole des Mines de Douai, Université de Lille Nord de France (co-supervisor)
  • Dr. Noury Bouraqadi,  Ecole des Mines de Douai, Université de Lille Nord de France (co-supervisor)

You’ll find below a summary of the thesis:

Application-Level Virtual Memory for Object-Oriented Systems

During the execution of object-oriented applications, several millions of objects are created, used and then collected if they are not referenced. Problems appear when objects are unused but cannot be garbage-collected because they are still referenced from other objects. This is an issue because those objects waste primary memory and applications use more primary memory than what they actually need. We claim that relying on operating systems (OS) virtual memory is not always enough since it is completely transparent to applications. The OS cannot take into account the domain and structure of applications. At the same time, applications have no easy way to control nor influence memory management.

In this dissertation, we present Marea, an efficient application-level virtual memory for object-oriented programming languages. Its main goal is to offer the programmer a novel solution to handle application-level memory. Developers can instruct our system to release primary memory by swapping out unused yet referenced objects to secondary memory.

Marea is designed to: 1) save as much memory as possible i.e., the memory used by its infrastructure is minimal compared to the amount of memory released by swapping out unused objects, 2) minimize the runtime overhead i.e., the swapping process is fast enough to avoid slowing down primary computations of applications, and 3) allow the programmer to control or influence the objects to swap.

Besides describing the model and the algorithms behind Marea, we also present our implementation in the Pharo programming language. Our approach has been qualitatively and quantitatively validated. Our experiments and benchmarks on real-world applications show that Marea can reduce the memory footprint between 25% and 40%

After an experiment with MediaWiki, we chose to switch to WordPress. We prefer this latter because we get quickly a nice look and feel. Even if WordPress is not a wiki, we can still collaboratively fill it with contents. One can easily create and edit pages. The blog part of it eases sharing our team’s news, and other stories about our experiments especially the cool ones with robots. Stay tuned!

Santiago Bragagnolo joined the team since the beginning of the month, as we announced during our talk on Smalltalk for robotics last ESUG conference (see slides below). Santiago is working full time on the RoboShop project where we aim at building an infrastructure for service robotics in the context of a shopping mall. We are using ROS (Robot Operating System) as a middleware. Currently, we are focusing on RoSt a framework to bridge Pharo Smalltalk with ROS. The end of the tunnel is becoming closer. We can call services provided by ROS nodes and we can send ROS topic messages. We are currently making tests with the ROS turtle simulator. We hopefully will soon start experimenting with our human size robots.

Two weeks ago, I thought that it’s more than time to revive the work started by my former PhD student Van Tuan Le. His algorithms for on multi-robot cooperation were validated using Bot Grid Simulator (BGS). I posted a while ago a simulation that illustrates our ICTAI2009 paper (Distributed constraint reasoning applied to multi-robot exploration) that relies on the connectivity awareness as introduced in our ICRA2009 paper (Making networked robot connectivity-aware). However, the simulator was just a prototype and the code was mixed with other unrelated stuff. My goal is to make it clean enough so it can be reused by other people. I started a dedicated repo on SqueakSource with the latest version (number 13) of BGS as left by Serge Stinckwhich (co-supervisor of Tuan’s PhD) in fall 2009. Then, I started cutting off parts, refactoring others, and writing tests. Progress at the beginning was slow, but things keep getting better. By the 13th of november 2011, I had a first relatively clean and tested version (number 29) of the kernel. I made a youtube video to celebrate it. One week later, I improved the design and the GUI (version 37). Now, each robot has a heading and a range sensor that are represented graphically as shown on the new video. More to come soon hopefully :-)