ST 4U 385: Pharo Browser Tools

In Pharo 2.0, a few useful browsing tools are easily accessible on the right hand side of the code pane - today we'll explore them

Pharo by Example Spanish

 A Spanish translation of the Pharo by Example book is available.

- PDF: here
- http://pharobyexample.org

Malinglist Move

The Pharo users and development lists have been moved to a new (and hopefully more stable) server.

pharo-dev: this is the development list discussing the development of Pharo itself.

pharo-users: This is for everyone who uses Pharo to develop Software and for those who want to learn Pharo.

The most comprehensive archive can be found on Nabble (users, dev).

Web with Pharo Conference 6 June 2013 @ Lille

Inria is organizing a conference around the web and pharo the 6 June 2013 at Euratechnologies, Lille.

https://www.inria.fr/centre/lille/agenda/web-3.0-avec-pharo

Great speakers (J. Brichau from Yesplan, N. Petton from Amber and objectfusion, N Hartl from 2Denker,...) will present their business and products as well as some of the technology they use.
Do not miss this key event!

https://www.facebook.com/events/534073843317751/

Register at: http://bit.ly/16ahf7f

Pharo3: The Power of the AST

Pharo3 development is rapidly progressing. One of the plans for Pharo3 is to use a high level code model based on the the AST (Abstract Syntax Tree) of the Refactoring Engine.

We will use it in many contexts, here are two examples.

Navigation. When selecting code or navigating expressions, the editor can do better then just using word boundaries:

Suggestions. When we want to do an actions on a selection, why not just show those that make sense? Why do I need to carefully highlight a  selector to browser implementors? The AST model can do much better!

This work is done by Gisela Decuzzi and available in the last Pharo3 builds. More to come! e.g. better shortcuts, AST based syntax highlighting, and much more.

ST 4U 383: Pharo Command Shell

Using Pharo 2.0, you can get a unix style command shell within the environment.

Videos of PharoConf 2013

The Videos of PharoConf 2013 (held in Bern, Switzerland) are now available.

- Youtube Playlist

Video: Fuel and Tanker demo session

Demo of the object serializer "Fuel" and the experimental package loader "Tanker" which uses Fuel.

BabyMock 1.0

BabyMock is a visual mock object library for Pharo Smalltalk, that supports test-driven development. Like other mock object libraries, BabyMock helps you design and test the interactions between the objects in your programs.

BabyMock makes these interactions visible, which may help you identify test smells easier.

You can read more about BabyMock at the following address:
http://smalltalkhub.com/#!/~zeroflag/BabyMock

Seaside, Pharo, and JQuery

Nick Ager reprising an ESUG presentation on developing mobile apps using Seaside, Pharo, and JQuery.

Pharo File Server: files.pharo.org

The Pharo File Server has been renovated:

            http://files.pharo.org

Here one can find anything Pharo: VMs, Images...

For easy dowload of Pharo in a server setting (e.g. for coninuous integration), there is

           http://get.pharo.org

We thank Inria for hosting the new File Server!

Pharo from the CommandLine

Talk from PharoConf 2013

Sqnappy - a fast compressor wrapper

Masashi Umezawa announced Sqnappy:
Recently I've developed Sqnappy - Squeak/Pharo binding of the snappy
compressor library
.

About snappy: https://code.google.com/p/snappy/

Sqnappy is easy to use. You can just send #compress:, #uncompress to SnappyCore:

  compressed := SnappyCore compress: data.
  uncompressed := SnappyCore uncompress: compressed.

With a simple test, Sqnappy was 10.8x faster than the existing
GZipWriteStream/GZipReadStream.

Additionally, Sqnappy implements snappy framing format, so that it can treat big data with a small memory allocation.

Tested from a workspace, 1.3 GB pg_dump file was compressed in around 10 seconds and decompressed in 6.5 seconds . No annoying GCs. It was comfortable.

Enjoy!
--
[:masashi | ^umezawa]

Using CSV in Pharo (2)

Today we'll continue looking at CSV in Pharo - focusing on how to easily export objects out of Pharo and into CSV format.

Pharo by Example Japanese Translation

Pharo by Example の日本語版です。

PDF: PBE1-ja.pdf

GitHub レポジトリ: link

Translators: link

Creating Time-based One-time Passwords with Pharo

Richard J. Prinz writes:
"Large service providers like Google are already offering two way authentication for their services. Others like Microsoft will follow. This authentication mechanism is based on One Time Passwords OTP combined with a timing factor resulting in Timebased One Time Passwords TOTP specified in RFC-6238."

... Read how to calculate OTP with Pharo.

Using CSV in Pharo

Comma delimited files are quite common in business applications; exports from Excel (et. al.) are often produced as CSV. Today we'll look at using such files in Pharo

Handling Motion JPEG video streams with pharo

Richard J. Prinz writes:
"Playing around with Zinc’s streaming entities I looked for a source of streaming data. A never ending streaming source are video streams. So I implemented a very simple Motion JPEG reader using Pharo Smalltalk. It does not use any plugins. Just plain smalltalk and a stock pharo image."

Pharo Sprint Lille May 3rd

RMoD is planning a sprint the 3rd of May:

http://rmod.lille.inria.fr/web/pier/blog/2013-04-17

When? Friday May 3
Where? Inria Lille Building B, RMoD Offices

If you want to join, please send a mail so we can plan and open the
door for you.

Using JSON in Pharo (2)

Smalltalk 4 You continues looking at the usage of JSON in Pharo. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube.

Pharo VM package and PPA for Ubuntu

We are proud to announce an Ubuntu package for the
Pharo Virtual Machine. The installation of this package has been made very easy.

With this package, you get:

- the latest pharo vm as a 'pharo' binary in the PATH
- all plugins and libraries (native boost, freetype, ssl, opengl…)
- file association so you can just double-click on Pharo images
- pharo icons visible everywhere (on image files, on Alt+tab…)
- PharoV10.sources and PharoV20.sources

Please fill bug reports on http://bugs.pharo.org under the 'Ubuntu packaging (ppa:cassou/pharo)' project.

Interactive Code Execution Profiling

This video demonstrates of Spy, the code execution profiling framework we have designed for the Pharo programming language. Spy offers efficient means to easily record particular information about a program execution. A profile may then be graphically rendered using the Roassal visualization engine. Such a visual representation of the program execution may exhibit relevant patterns indicating opportunities for improvement.

Using JSON in Pharo

Smalltalk 4 You looks at using JSON in Pharo Smalltalk. If you have trouble viewing it here in the browser, you can also navigate directly to Youtube.

Pharo at Google Summer of Code 2013

ESUG (the European Smalltalk Association) has been accepted at Google Summer of Code 2013!

This means that students can work on Smalltalk related projects (payed by google) this summer.

A list of projects and general information can be found on the ESUG site: http://gsoc2013.esug.org/

Pharo Consortium reaches 10 Member Companies

The Pharo Consortium has now 10 Members!

The Pharo Consortium is a way for companies to support the ongoing development and maintenance of the Pharo language and environment. It complements the Pharo Association which is a user association supporting Pharo. Together the association and the consortium invest in the future of Pharo.

Information about how to join the Pharo Consortium can be found on the website.

More about..

  -  Pharo: http://pharo.org
  -  Pharo Association: http://association.pharo.org
  -  Pharo Consortium: http://consortium.pharo.org

Short Video: Using Athens

Smalltalk 4 You looks at the Athens vector graphics package for Pharo - more specifically, at the nice tutorial that comes with it.

Catch the balls, a small mini game demo

A demo of how to create a small mini-game using the immediate feedback experience provided by Pharo.

Creating bindings with TalkFFI

Video about TalkFFI: automatically generate the Smalltalk bindings for FFI.

New Member Pharo Consortium: netstyle.ch

The Pharo Consortium welcomes a new member company:

-  netstyle.ch

More about...

- Pharo: http://pharo.org
- Pharo Consortium: http://consortium.pharo.org

Google Summer of Code

The application for "ESUG (European Smalltalk User Group)" in Google Summer of Code 2013 has been accepted!
ESUG coordinates GSoC for all Smalltalk dialects.

If you are a student, more inforation is available at: http://gsoc2013.esug.org about how to participate.

Pharo Association reaches 50 Members

The Pharo Association has reached 50 Members!

The Pharo User Association is a way for individuals to support the ongoing development and maintenance of the Pharo language and environment. It complements the Pharo Consortium which is a consortium of companies supporting Pharo. Together the association and the consortium invest in the future of Pharo.

Information about how to join the Pharo Association can be found on the website.

More about..

  - Pharo: http://pharo.org
  - Pharo Association: http://association.pharo.org
  - Pharo Consortium: http://consortium.pharo.org

Fuel Serializer 1.9 Released

We are happy to announce version 1.9 of the object serialization framework Fuel.

The default set of packages of this version already comes in Pharo 2.0, so you it's not necessary to install it there. However, Fuel also works out-of-the-box in Pharo from 1.1 up to 2.0, as well as in Squeak 4.1 up to 4.4. You can see our documentation for complete installation and use guides.

A complete list of changes can be found here.

We want to thank developers of the community that enrich the project with code, issue reports and ideas.

Have fun!

    Martin (on behalf of Mariano and Max, who worked a lot
    on this version!)

Two new Members Pharo Consortium

The Pharo Consortium has two new Members:

- Sensus
- High Octane SPRL

See http://consortium.pharo.org

Development of Pharo 3 Started

After shipping Pharo 2.0 last week, work has started on Pharo 3.

CI Server: https://ci.inria.fr/pharo/
Issue Tracker: http://bugs.pharo.org
Download: here.

- Build server now uses staging: only tested updates are made public
- We now have individual downloads for the three platforms:
   Mac, Win, Linux instead of the combined "OneClick".
- Issue tracking moved to FugBugz. As Google is discontinuing API
   support for Google code, we needed an alternativ solution. Thanks
   to Fog Creek Software, we are now using FogBugz. All 400 open
   issues have been migrated.

Pharo 3 has seen already 14 updates, with more than 30 Issues fixed.
We will post a description of what is planed for Pharo 3 soon.
(In the meantime, have a look at the FOSDEM Talk here)

PharoConf | MooseDay | 2013

The conference will take place at the University of Bern during April 2-4:

http://scg.unibe.ch/wiki/events/pharoconf-mooseday-2013

The conference will be free and will even include a free lunch. Yes, free lunch. No trick. We only kindly ask you to register online for each event as soon as possible.

Moose 4.8 Development Started

From Moose News:

"We worked over the last couple of weeks on several infrastructural changes in Moose.

First, the Moose code was relocated to SmalltalkHub, the new cool place to be in the Pharo world. Most of the projects are now placed under the blessing of the Moose team. If you want to participate, just let us know.

Second, and perhaps most important, we have moved to Pharo 2.0, the soon to be released version of Pharo. With this move, a part of the code pioneered in Moose could simply be dropped because it is already present in Pharo 2.0. The transition was mostly smooth and it is highly recommended for anyone developing in Pharo.

Third, Moose 4.8 now builds on a new Jenkins infrastructure offered by INRIA. There are still a few red tests, but we are working on greening them. With the move to Pharo 2.0, we also simplified dramatically the build jobs by using the ZeroConf infrastructure."

Learn more about Moose at http://www.moosetechnology.org

Pharo 2.0 Release

We are proud to announce the release of Pharo 2.0!

You can find information about Pharo at:
http://www.pharo-project.org

About this release
------------------
All in all, there were over 1600 issues treated in the issue tracker
and 1350 improvements integrated into 2.0.

Read it again, yes 1350 is huge, take two minutes and have a look at the list of improvements! Now you got the feel of the effort. And this was a true community effort. It is possible because people worldwide helped! We want to deeply thank them.

We want to thank Inria for its constant support, in particular for the salary of Igor Stasenko and Esteban Lorenzano, and for the help in the infrastructure.

We have accomplished this huge task for a better system because we were together. Do not forget that we are working on a consortium to support our system:

- http://consortium.pharo.org (for companies and organizations)
- http://association.pharo.org (for individuals)

Our goal is to build a system so that we can make a living with our creativity and programming skills.

You can find information about Pharo on http://www.pharo-project.org. In particular, you may be interested in:

- Joining us and getting help
- Getting the Pharo By Example book (available as a free PDF)
- Watching the screencasts
- Reporting problems
- Reading the forth coming book
- Reading the Pharo vision document

Thanks a lot for your participation, energy and fun.

                        -- The Pharo Team

Writing books with Gutemberg

We are proud to announce the first alpha version of Gutemberg. This
alpha version has a nearly-complete PDF exporter and a
basically-working HTML exporter.

http://www.smalltalkhub.com/#!/~DamienCassou/Pier-Gutemberg

Gutemberg is a tool that converts books written using the Pier syntax to PDF documents and HTML pages.

This project is partially supported by ESUG.

We use Inria infrastructure to build one example book.

The long term goal is to facilitate collaborative book editing. We
don't want to impose a web browser and an active Internet connection.

Moose 4.7 Released

We are happy to announce the Moose Suite version 4.7:

            http://moosetechnology.org/download

What is new:
• Integration of the Roassal visualization engine
• New PetitParser browser with integrated refactorings
• Improved Glamorous Toolkit for Pharo including the Glamorous
   Inspector and Debugger
• Several features in Glamour including Watcher support
   (similar to OS X preview)
• Significant improvements in FAMIX
• Improved external VerveineJ parser for Java
• Based on Pharo 1.4

A list of issues addressed in this release can be found here.

Have fun,
                 The Moose Team

Pharo Consortium Site is Online

After some efforts, we are proud to announce the consortium around Pharo. With such consortium companies and academic partners will be able to collaborate and sustain the development of the Pharo environment and ecosystem. Today we announce the release of the beta version of the official consortium website.

http://consortium.pharo.org

Invest in your future, participate to the consortium.

Our goal is to be able to pay a couple of full-time engineers to build a bright future for everyone.

PhyloclassTalk Preview

PhyloclassTalk, an application for phylogenetics analysis using the BioSmalltalk environment with Pharo 1.4.

screen_main.jpg

Grammar Complexity Pharo vs. Java vs. C++

Yuriy write on his blog:

"Lately I was working with ASTs a lot. After completing full Smalltalk AST meta-mode with ease, upcoming work on Java's abstract syntax tree looks like a big pain in the ass. So I decided to do some fun stuff for a while like generating dependency graphs of language grammars and comparing them." read more...

chart_1-2.png

Osmocom Libraries for Pharo

Holger Hans Peter Freyther has released an interesting stack of libraries for mobile communications.

- OsmoLogging is another logging framework modeled after the
   framework we developed for C. Besides having multiple backends
   (Transcript, syslog) and log levels there are some unique features.

- OsmoCore is a collection of utility classes.

- OsmoNetwork is a collection of network related utility classes. They
   help me working with sockets and provide some encoding/decoding
   classes for SCCP, ISUP, M2UA. This code is the oldest and some parts
   could make better use of Streams.

- OsmoSIP contains most of the SIP grammar described using
   PetitParser and code to create SIP Dialogs, deal with re-transmission.

- OsmoMGCP contains most of the MGCP grammar described using
   PetitParser and code to create MGCP Transactions, deal with the re-
   transmission.

- OsmoGSM contains classes related to the GSM specification 04.08
   and 08.08. I can easily create and parse the wire messages for this
   specification.

For more information, see here.

Call for PostDocs

The RMoD Research group at Inria Lille has two calls for PostDoc positions related to Pharo

1) Infrastructure for new generation IDEs. More infos...

2) Architectural Design Exploration. More infos...

more about...
- RMoD: rmod.lille.inria.fr
- Inria:  inria.fr

PharoConf 2013

During April 2-4 we will organize a PharoConf and a MooseDay in Bern, Switzerland. Mark the day and join us. The participation will be free of charge.

The conference will focus on interactivity and exchange, and will feature experience report talks, tutorials, show-us-your-project sessions and open discussions.

We are looking for speakers:

TUTORIAL
These sessions will walk the audience through a piece of technology.
Target duration: 30min - 60min.

Example topics:
- ZeroConf continuous integration builds
- Building vectorial interfaces with Athens
- Building UIs with Spec
- New development tools (Fuel/Tanker, Glamorous Debugger,
    Nautilus ...)
- Manipulating databases in Pharo (Riak, MongoDB ...)
- Visualizing data (Roassal, EyeSee ...)

TALK
These sessions expose a topic that is not necessarily technical.
Target duration: 30min - 60min.

Example topics:
- Experience of using Pharo to solve business problems
- Experience of using Pharo and Moose to solve various technical
    problems (not necessarily related to Smalltalk)
- Successes in marketing Pharo-based solutions
- Future directions for Pharo or Moose

SHOW-US-YOUR-PROJECT
These sessions will feature short presentations of the projects (7-10 minutes) followed by open-space demos.

Example topics:
- The Glamorous Debugger
- Nautilus
- Analysis tools like Softwarenaut or Carrack
- Fuel/Tanker
- ...
Please send us your submissions by email at tudor@tudorgirba.com.

Cheers,
Doru on behalf of the organizers

Slides Fosdem 2013

The slide for this years Fosdem talk is online:

       Pharo - 2.0 Update

PDF, SlideShare

Marea: An Efficient Application-Level Object Graph Swapper

Now available online:

Mariano Martinez Peck, Noury Bouraqadi, Marcus Denker, Stéphane Ducasse, and Luc Fabresse. Marea: An Efficient Application-Level Object Graph Swapper. In Journal of Object Technology 12(1) p. 2:1-30, January 2013. PDF

Abstract
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 they actually need. We claim that relying on the operating systemm(OS) virtual memory is not always enough since it cannot take into account the domain and structure of applications. At the same time, applications have no easy way to parametrize nor cooperate with memory management. In this paper, we present Marea, an efficient application-level object graph swapper 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. 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 23% and 36%.

Moving to SmalltalkHub

Göran Krampe has published a guide how to move project to SmalltalkHub:

"As a long time Squeak/Pharo (Smalltalk) developer I have accumulated a set of packages that I have written or co-written and that have been published open source for others to use. Since quite a few years SqueakSource has been the natural hosting place, but it has reached the end of the road and it’s high time to move on."  more...

More about...
- Blog Post "Moving to SmalltalkHub"
- SmalltalkHub: http://smalltalkhub.com
- Göran Krampe: http://goran.krampe.se

Progressing with Pharo: an Interview with Stephane Ducasse

"We start the fresh year 2013 with an interview with Stephane Ducasse from Inria, who started the Pharo Smalltalk project with a bunch of Smalltalkers […]
Aside from the product evolution of Pharo, we cover the new Pharo Consortium and Pharo Association, two organizations that were founded last year"  more...

more about...
- The Interview "Progressing with Pharo"
- Pharo: http://pharo.org
- Pharo Consortium
- Pharo Association
- Stephane Ducasse

Mocketry 2.1

Mocketry is smalltalk mock object framework based on specifications.

It is available on smalltalkhub http://www.smalltalkhub.com/#!/~dionisiy/Mocketry .

Changes:

1) All code now migrated to smalltalkhub repository. New
    configuration with version 2.1 implemented accordingly.
2) State specs extracted to separate project "StateSpecs" with
    separate configuration. This project contains all object state
    specifications and validation stuff. Mocketry depends on it
    and only implements behaviour specs and mock objects.
    StateSpecs can be used in different projects. I use it in
    Presenty to describe data fields validness.
3) Main new feature is stub behaviour.
4) Few state specs like
          dictionary should include: item at: #key

PharoBoids

Martin Walk adopted a Ruby implementation (taken from Exploring Everyday Things with Rand Ruby by Sau Sheong Chang) of Craig Raynolds Boids Simulation in Pharo Smalltalk using Athens Canvas.

Have a look:
http://smalltalkhub.com/#!/~MartinWalk/Boids

pharoboids.png

Headless support for Cog Cocoa VM

Mariano Martinez Peck has announced headless support for the Cog Cocoa VM, he writes:

"For a long time, Pharaoers and Squakers have been asking for headless support in the Cocoa VMs just as we have with Carbon VMs.
Carbon is becoming a legacy framework so people needed this.
I wanted to take this opportunity to thanks Square [i] International for sponsoring me to implement such a support. Not only have they sponsored the development but they have also agreed to release it under MIT license for the community. This headless support will be included in the official Pharo VM and will be, therefore, accessible to everybody. You can read more details in the ANN email.
So…thanks Square [i] International for letting me work in something so much fun and needed." more..

More about...
- Blog Post: Headless support for Cog Cocoa VM
- Mariano Martinez Peck
- Square [i] International: http://www.square-i.net

SerialPlugin for Pharo

Luc Fabresse posted how to get the Serial Port to work on current Pharo:

"While working on robots, we needed to work with a sensor that
  uses a serial communication protocol. However, we also needed
  UDP sockets to work with other parts of the robot."   more...

More about...
- Blog Post SerialPlugin in the Pharo VM
- Research Group CAR: Components, Agents, and Robots

Pharo Sprint Feb 8th

Friday, 8th of February, there will be the first Pharo Sprint of 2013. The goal of this Sprint is to make Pharo 2.0 ready for a release.

The Spring will be at Inria Lille, Building B, Room B31 starting at 9am.

More about...
-Pharo: http://www.pharo-project.org
- RMoD: http://rmod.lille.inria.fr

SmalltalkHub 0.9 Online

SmalltalkHub just got upgraded to version 0.9. This version includes a
lot of changes under the hood, as well as new features and bug fixes:

New major features:

- You can now register teams (see the RMoD team
 http://smalltalkhub.com/#!/~RMoD)
- Projects can now be private
- The homepage and header have been updated
- SmalltalkHub now includes an (unfinished) "explore" page
- and... SmalltalkHub has a new 404 page :-)

Updates:
- Mongo has been updated to version 2.0
- The production image is a Pharo 1.4

Important bug fixes:
- "disappearing" projects from user dashboard
- mcz files larger than 6Mb could not be uploaded

Live demo Zinc-WebSockets

Yesterday I deployed a live demo of Zinc-WebSockets

                         http://websocket.stfx.eu

Since most proxies and load balancers, most notably Apache, don't handle the WebSocket protocol very well, the only solution is to arrange for direct connections to the Smalltalk image.

Deploying and running this code in your own image is pretty easy:

 ConfigurationOfZincHTTPComponents project
             latestVersion load: 'WebSocket'.
 ZnServer startDefaultOn: 1701.
 ZnWebSocketDelegate installExamplesInDefaultServer.

Then open http://localhost:1701/ws-demo with your browser.

This demo, like the standard Zn and SSO demos run in the very latest Pharo 2.0 version

http://zn.stfx.eu/status
http://sso.stfx.eu/status
http://websocket.stfx.eu:9999/status
http://websocket.stfx.eu:9999/ws-status-client

Sven
PS: You can read more about Zinc-WebSockets here.
--
Sven Van Caekenberghe
http://stfx.eu
Smalltalk is the Red Pill

 Zinc-SSO update: OAuth1/2 and OpenID

Here is another update regarding the Zinc-SSO project.

http://lists.gforge.inria.fr/pipermail/pharo-project/2012-December/072658.html

Jan has been porting his earlier CloudforkSSO work to Zinc-SSO so that we now have support for both OAuth1 and OpenID. Both are considerably more complex than OAuth2 that was implemented earlier. The codebase was cleaned up a bit and more test/demo code was added.

Some basic documentation and loading instructions can be found at

https://github.com/svenvc/docs/blob/master/zinc/zinc-sso-paper.md

Basically you should be able to get all the bits (preferably in Pharo 2.0) by doing

(ConfigurationOfZincHTTPComponents project version: '2.2') load: 'SSO'

This is not a subject where loading some code gives you a working demo since there is some setup to be done. Therefor we orginanized two live demos:

http://sso.stfx.eu
http://sso.doit.st

There is now support for Google, Microsoft, Facebook, Twitter & Yahoo. The second demo is slight more extensive: it even allows you to do Twitter posts !

Although the code is not yet production quality, we could use some feedback from early adopters to help use shake out remaining problems.

Jan & Sven

PS: We would like to thank Andy Burnett of Knowinnovation Inc and ESUG for sponsoring this open source work.

--
Sven Van Caekenberghe
http://stfx.eu
Smalltalk is the Red Pill

TalkFFI: automatic FFI generation for NativeBoost

Ciprian Teodorov announced today the initial release of TalkFFI

TalkFFI enables automatic FFI generation for Smalltalk.
It uses libclang to parse unmodified C header files and generate FFI bindings to c libraries.
For now it supports the generation of NativeBoost FFI bindings.

The project is released under MIT license, and you can find it on the smalltalkhub site.
http://smalltalkhub.com/#!/~CipT/TalkFFI


As a demo, this video shows generating NativeBoost binding for LLVM using TalkFFI: http://www.youtube.com/watch?v=y_zfgUh27m0

BioSmalltalk: New Release

A new version of BioSmalltalk has been released. BioSmalltalk is the Smalltalk environment for doing bioinformatics with Pharo. The list of features, status and to do's are in http://code.google.com/p/biosmalltalk/


A new installer for Windows and tarball for GNU/Linux are included now. Installation instructions are in: http://code.google.com/p/biosmalltalk/wiki/Installing

Pharo 2.0 enters BETA

Esteban writes on the Mailinglist:

"Today I finished the pending integrations for move to Pharo 2.0. There is still a problem with the VMs (for NB), but that's not a stopper for moving on.

What does this means? Starting now, no new changes of API will be allowed, just bug fixes and minor enhancements that does not change the system behavior. We still have a long stabilization path until we can release, but we hope a couple of months will put us in shape :) "

NativeBoost: Today and Tomorrow

Igor Stasenko at Smalltalks 2012

Bootstrapping A Smalltalk With Hazelnut

Guillermo Polito gave a presenation at Smalltalks 2012 about bootstrapping Pharo

Pharo Internship CEA

There is a Pharo internship opportunity at CEA:

"I'm looking for some help in parsing C files (and the opportunity to use Petit Parser) so I'm looking for an internship candidate (Master level).

The objective is to do a C preprocessor with a targeted integration in an existing C parser, and, in particular, provide high-level information about applied macros/defines for the tokens provided to the C parser itself. Platform should be Pharo 2.0.

Place is Saclay, SW of Paris. The lab has a strong team on compilation tool chains for embedded manycores, from programming language design down to micro-kernel and mapping, and is able to select good interns for further work opportunities."

More infos...

Athens + Chipmunk

Esteban has build a demo using Athens (Graphics) combined with Chipmunk Physics engine (via NativeBoost FFI):

Pharo User Association

We are happy to announce the Pharo User Association:

              http://association.pharo.org

The goal of the Pharo User Association is to support Pharo development and promotion.

There are two individual memberships

- Individual Pharo Association Member: Yearly fee 40 Euros
- Golden Individual Pharo Association Member: Yearly fee 99 Euros

You will get
- reduction access to pharo conferences,
- reduction for training and access to teaching material,
- be part of the pharoAssociation-individual-members mailing-list,
- an account at the pharo association web site.


This Association is complementary to the Pharo consortium managed by Inria. The Consortium is for entities  such as companies, research teams, or institutes.
For more information about the consortium, check here.

The funds collected by the Association will be used in coordination with the Consortium to support the development of Pharo.


New Pharo CI infrastructure

We are experiencing some stability issues with https://ci.lille.inria.fr/pharo/

But the good news is: people here have been busy, and there will be a completely new ci infrastructure soon.

https://ci.inria.fr

This is right now in Beta, so please do not yet request accounts without checking with us first (and in general, it makes only sense to have an account if you need to do something like changing the configuration, not for normal use like downloads or checking the status of a build).

This setup is for inria-wide deployment, and inria is a bit larger then RMoD... there are over 170 teams with over 4500 employees... so this installation needs to  be tested well before
it can be rolled out.

The good news is that RMoD (and thus Pharo) is part of the beta test!

TimeLine
--------

- Beta test started 31/10
- We will recreate the whole setup of the old jenkins there for testing
  (possibly simplified using the new command line options)
- The installation will go in production in January

What will it give us?
----------------

-  We can create whole Jenkis setups by pressing a button.
    (e.g. we will create a private RMoD ci server for internal things,
    we could think about splitting the VM builds into it's own Jenkins,
    or a jenkins installation for every version of Pharo...)
-> Slaves can be created easily (uses CloudStack behind)
-> external guest users can connect to the slaves via SSH
     (or remote Desktop for Win)
-> much better infrastructure and support
-> *Much* more resources. Disk size for Slaves, space for keeping
      artefacts

So, the ci infrastructure of Pharo will see a very big boost soon.

Pharo Consortium is Getting Real

Here is the result of the work we did around the consortium for Pharo for about 2 years. We took into account all your remarks over the years and we think that the result is good and corresponds to what the community can support.

This consortium is important for Pharo's future and it will help us to deliver a system to help you making business.
Our goal is to be able to collect fundings to pay at least one full time engineer.

The idea is that all the consortium members will sign the same agreement. We will not handle modifications per partners. Now since we are starting the process if you spot some glitches on the form let us know.

We will launch soon two web sites:
        - one for the Pharo user association and
        - one for the Pharo consortium.

We really want to thank Inria for the constant support and the work of S. Karpf, P. Moreau and S. Perin.

For more information (and the legal document), see
 http://www.pharo-project.org/community/consortium

FOSDEM 2013

Call for Participation in the Smalltalk Devroom at FOSDEM 2013.
http://www.fosdem.org

" A devroom for the Pharo, Squeak, Amber, GST, Etoilé, Seaside,
Moose Smalltalk projects & Newspeak as derived language.
Smalltalk environments offer a very high development productivity,
unmatched by their successors. Come do some pair programming
with us and experience yourself the advantages of a real OO
environment"

The meetup will take place Sunday, February 3, 2013,
from 9AM until 5PM, building AW. This room has 72 seats,
a VGA video projector and wireless internet.
More information will be available later.

Proposals on content and format are welcome.

People interested in running a session should announce that
on the smalltalk-devroom mailing list, with the following
information:

- Their name
- The project they are associated with
- A short bio, to be put on the website along with their speaker name
- (optionally) a picture of themselves
- The title of their session (which will go on the website and in the    
    booklet)
- A abstract describing the session in further detail.
- The desired length of the session.
- The desired time slot in which they want to hold the session.

Suggested values for the duration are 55min, 25min, 6m40 (Pecha Kucha).
The desired time slot is meant to help you prevent conflicts with other dev
rooms in which you might have a talk or your travel arrangements.

There are alternative, non smalltalk-specific tracks available:
lightning talk and the main track

The deadline for submissions is December 31, 23:00 GMT+1.

Discussion takes place on the
smalltalk-devroom@lists.fosdem.org
mailing list. Please subscribe if you are interested:
https://lists.fosdem.org/listinfo/smalltalk-devroom

The local VUB/ULB Smalltalkers have been asked to organize
a sprint/BSUG meeting/Camp Smalltalk on Saturday February 2.

Devroom related URLs:
http://www.pharo-project.org
http://www.squeak.org/
http://etoileos.com/
http://www.seaside.st/
http://smalltalk.gnu.org/
http://www.moosetechnology.org
http://amber-lang.net
http://newspeaklanguage.org/
http://www.esug.org

Report Pharo Sprint Lille

François Stephany, has written a short blog post about the Sprint:

"The RMoD team held a sprint in their new office in Inria Lille last Friday. It was the occasion to meet in real life and to smash some bugs."

.... read more here.

Updated VM Build

Hi there,

There are new updated Cog VMs built by Jenkins. The changes are mostly related to Windows builds:

[1] Cog VM includes SSL plugin which uses OpenSSL library. (Tested
versus Zodiac , seems working fine).

[2] A new version of Cog+NativeBoost for windows also bundled with
Cairo library.

Here the list of all extra dll's which you can find in .zip file:

"freetype library + freetype plugin"
FT2Plugin.dll
libfreetype-6.dll

"FFI"
SqueakFFIPrims.dll

"openSSL library + SqueakSSL plugin"
SqueakSSL.dll
libeay32.dll
ssleay32.dll

"cairo library and its dependencies"
libcairo-2.dll
libpixman-1-0.dll
libpng-3.dll
zlib1.dll


Please, also note new downloads location:

[1] http://pharo.gforge.inria.fr/ci/vm/cog/
[2] http://pharo.gforge.inria.fr/ci/vm/nbcog/

While you can still download VMs directly from jenkins server
(https://ci.lille.inria.fr/pharo/view/Cog/),
the new location is _recommended_ place for downloading artefacts
built by Jenkins server:
- first, the interface is simple and straightforward
- second, it is not going to disappear with a puff of smoke (in case
of any problems related to jenkins & other build infrastructure)

The new artifacts will appear in archive, every time jenkins
successfully finish corresponding job(s).
You can look at (http://pharo.gforge.inria.fr/ci/) to see what else is
stored there.

Pharo Events Lille: Sprint and Workshop

There are two Pharo Events in Lille:

- 2 Nov: Pharo Sprint
       More Infos here.

- 5 Dec: Pharo Workshop and Tutorial (as part of fASSa 2012):
       More Infos here.


Shampoo: Pharo and Emacs

Dmitry Matveev has released the first verion of Shampoo, a set of tools for remote Smalltalk development with Emacs.

With Shampoo you can:

- Connect to your Smalltalk image and browse its classes and
   methods;
- Modify existing classes and methods and add new ones;
- Evaluate Smalltalk code and examine its results;
- View everything printed on Transcript.

Obviously, to achieve this functionality the Emacs mode is not enough. Shampoo is bundled with the Smalltalk server applications that actually provide the access to an image. Servers are available for GNU Smalltalk and Pharo.

Shampoo is inspired by the awesome Common Lisp development tools SLIME and SWANK.

More information: http://dmitrymatveev.co.uk/shampoo/

CfP: Pharo Workshop fOSSa 2012

There will be a Pharo workshop at the fOSSa Open Source conference this year:

http://fossa.inria.fr/en
4-5-6 December, Lille, at Euratechnologies.

We plan to have a small workshop with one part short presentations,
plus the rest  hands-on (and maybe a small Pharo sprint for fixing bugs).

=> You are very welcome to attend (there will be another call).
=> We need talks... so if someone wants to come for a short
      presentation, please contact Marcus Denker. Deadline is Friday,
     19th October.

Phobos - A XULRunner Framework

Pavel Krivanek announced Phobos:

I would like to introduce you Phobos - the XULRunner based Smalltalk
framework for development of native GUI with standard look&feel for
Linux, Mac OS X and Windows.

It is based on Zinc, WebSockets and Seaside continuations. For more
information including more screenshots see the project page:

http://code.google.com/p/phobos-framework/

You should pay attentions to FAQ too:
http://code.google.com/p/phobos-framework/wiki/FAQ

Phobos has Seaside-like components and rendering style, can combine
XUL with HTML or SVG, supports printing etc.

01.png

Pharo Sprint Lille 2nd November

RMoD is organizing a Pharo Sprint

When?  Fr, Nov 2nd. Starting at 9am
Where? INRIA Lille.

The plan is to push together to evaluate which bugs need to be fixed
before a release (and of course fix as many as possible).

A list of all issues tagged for 2.0 is here.


Roassal, an Agile Visualization Engine

Roassal graphically renders objects using short and expressive Smalltalk expressions. A large set of interaction are offered for a better user experience. Painting, brushing, interconnecting, zooming, drag and dropping will just make you more intimate with any arbitrary object model.

More at PharoCasts.

New VMs with NativeBoost

Igor writes:

After spending a whole day, fighting with Jenkins monster it was finally able to produce the successful build.

...lets talk about changes:

- the NativeBoost plugin, which built into VM, contains additional
   primitive, which was needed for callback support. This makes VMs
   callback-ready.
- for the first time, the Mac VM is built from scratch, bundled with
   Cairo graphics library. That means a new VM is ready for use by
   Athens with Cairo backend
- Another important thing is encapsulating the different
   settings/defaults which was residing in ever-growing shell script on
   jenkins job into single class.

Read more on Igor's VM Blog

The vm can be downloaded from the Jenkins server:

https://ci.lille.inria.fr/pharo/view/Cog/job/NativeBoost-Cog-VM/

 Dr. Geo for iPAD

Dr. Geo (aka Dr. Geometry) 12.10 for iPad is available on AppStore. It
comes in two versions: gratis and paid.

Link to the AppStore.

Compare to the desktop versions, it is almost feature complete: only the script and programmed figure can not be created or edited with this version. However, sketches including scripts are interpreted and
rendered correctly on the tablet.

img_1079.jpg

Possible after all?

So it is possible after all to release software on the App-Store using more than Objective-C?

This is awesome.

Congratulations to the Pharo and Dr.Geo teams!

Zinc WebSockets Released

I am pleased to announce the first public release of Zinc WebSockets, an implementation of client and server RFC 6455 regular (ws://) and secure (wss://) WebSockets on top of Zinc HTTP Components and Zodiac TLS/SSL Streams.

High level documentation can be found here.
The code can be found in the regular Zinc repositories, or can be loaded using Metacello:

 ConfigurationOfZincHTTPComponents project latestVersion load: 'WebSocket'.

Three examples are included and explained in the high level documentation:

1. a trivial echo service
- each incoming message is simply echoed back to the client

2. a simple chatroom
- each client opens a web socket to the chatroom service running
   on the server
- the server keeps track of all connected client web sockets
- when a message comes in from any client it is distributed to all
   clients
- each client shows all incoming messages

3. a simple, continously updated status view
- a client connects and listens for incoming messages containing a
   status report
- the server streams status reports to each connected client every
   second
- in the web browser you get to see the Smalltalk image's clock,
   memory and process stats

Tested and approved on 2.0 #281. Portability to 1.3 and 1.4 should be OK.

The implementation of Zinc WebSockets was made possible in part through financial backing by Andy Burnett of Knowinnovation Inc. and ESUG. Thanks!

Questions, remarks, feedback ?  Please use the Pharo Smalltalk mailing lists.

Sven Van Caekenberghe
http://stfx.eu
Smalltalk is the Red Pill

Very welcome feature

This feature is a very welcome addition. Thanks!!! :-)

Looking forward to its inclusion in Seaside.

 GSoC - Package Management with Fuel

Martin Dias writes:

This week has ended Google Summer of Code program 2012. I have to thank Marcus and Carlos Ferro, my mentors, as well as Mariano, Guille Polito, Camillo Bruni, and others, who collaborated in different ways during these three months. Also thank, of course, to Carla and Janko... and Google ;)

The main purpose of this mail is to summarize the work done for my project, named "Package management with Fuel" [1][2].

Tools for managing code in Pharo export classes, traits, and methods as series of source definitions, which then import by evaluating them with the compiler. This is basically how FileOut/FileIn or Monticello works. This is slow on large pieces of code, so if you want to install a big package, you need a lot of time compiling it. Why should you compile it again, given that it was all compiled when you exported the package? The bytecodes will be the same again, you know... If you just could load the Classes and Compiled Methods instead of compiling it all again, you can save time.

With this goal in mind, I started working in FuelPackageLoader[4] (now Tanker[3]), a prototype we wrote last year, which already exports and imports packages without using any compiler. But it has two important issues: it wasn't capable of export source code, and it wasn't able to tolerate class-shape changes in hierarchies (ie, a change on inst vars in a external superclass). So, we decided to start from scratch with a new prototype, code name Carbono. The idea was to reify how FileOut and FileIn are done, but storing binary information so that compilation can be avoided.

In a nutshell, Carbono stores a package into two files:
   - A sources file, imitating the traditional FileOut chunk format.
   - A binary file, where uses Fuel[5] to serialize a series of code
     definitions.

Each of them knows the position in the sources file where its source code counterpart is. For example, a class definition  knows the position of its comment (in the case it exists), and a method definition knows the position of its source code.

A basic example, to export a couple of classes:

        TAExport new
                binariesOn: aBinaryStream
                sourcesOn: aTextStream;
                behaviors: {ClassA. ClassB};
                methods: {};
                initializeClasses: true;
                run.

which then you can import with:

        TAImport new
                binariesFrom: aBinaryStream
                sourcesFrom: aTextStream;
                run.

Anyway, you can also choose to:
- export only binaries or only sources
- import only binaries (source code can be decompiled)
- import only sources (via #fileIn)

Mariano Martinez Peck worked a lot on it, fixing bugs, and especially
optimizing it A LOT, so I hope you will enjoy his demonstration this
Monday on ESUG Innovation Awards. Seems that he could export Seaside, Pier and Magritte, and import them in another image, with source code, and just in a few seconds ;) Also, some ultra confidential WikiLeaks revealed that he could export almost all Pharo packages, and import them in a kernel image, all with source codes but without using the compiler :)

Note1: Tolerating class-shape changes in hierarchies is not yet done, but it should in some days. So far, the only strategy when a change is detected will be to recompile methods, but it may be more sophisticated in a not-so-far future.

Note2: Although finally it was not strictly necessary, Guillermo Polito and me wrote tests for a new ClassBuilder. It is part of Slot, a kind of reification of objects layout made by Toon Verwaest and Camillo Bruni. It is too long to explain it here, but the thing is that was not an easy job, and we hope it will be integrated in Pharo.

This is a work in progress, but you can install and try it on latest Pharo 2.0, evaluating:

        Gofer it
                squeaksource3: 'PharoTaskForces';
                package: 'Slot';
                package: 'SlotTests';
                load.
        (Smalltalk at: #SlotVirus) perform: #spread.
        Gofer it
                squeaksource3: 'PharoTaskForces';
                package: 'SlotsClassBuilderIntegration';
                load.
        Gofer new
                smalltalkhubUser: 'marianopeck' project: 'Tanker';
                package: 'ConfigurationOfTanker';
                load.
        (Smalltalk at: #ConfigurationOfTanker) loadBleedingEdge.
        Gofer new
                squeaksource: 'FuelExperiments';
                package: 'Carbono';
                package: 'CarbonoTests';
                load.

Cheers,
Martín

[1]: http://gsoc2012.esug.org/projects/fuel-packages
[2]: https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2012/tinchodias/1
[3]: http://marianopeck.wordpress.com/2012/08/11/tanker-transporting-packages-with-fuel/
[4]: http://marianopeck.wordpress.com/2011/09/24/importing-and-exporting-packages-with-fuel/
[5]: http://rmod.lille.inria.fr/web/pier/software/Fuel

 Pharo Usage Poll

Esteban created a small poll to know which versions of pharo are you using and with which purpose... It is really small and can provide some insights about further directions.

Link to Poll.

Tanker: transporting packages with Fuel

Mariano writes:

"Tanker is a project that Martin and I have been developing for a while and we are going to submit it this year to ESUG Innovation Technology Award. Therefore, I thought it would be interesting to explaining what it is, its current status, its goals, etc."

read more...

Pharo passes 6000 closed issues

The Pharo issue tracker:


        http://code.google.com/p/pharo/issues/list


says 411 open out of 6426 issues on July 20th, 2012.


This means we crossed the line of 6000 reports being closed last week.

We crossed 5000 just this March 6th. We even have less open issues than back then (411 intead of 436).

Pharo 1.4 "Summer" Release

We are proud to announce the summer release of Pharo 1.4!
You can find information about Pharo at: http://www.pharo-project.org

About this release.

We integrated 30 fixes (the rounded number is completely casual) and integrated some tools that users feedback showed as necessary, specially the inclusion of OmniBrowser as part of the core for 1.4.  As a result of all this changes and fixes, the stability of this version is a lot better and we are really happy with it.

Structural changes to the image:

- Backport configurations browser from 2.0. This will easy the
   loading of packages for everybody, specially newcomers.
- Integrated ProfStef. Again, useful for newcomers.
- Integrated Spotlight. Easy to find classes and methods.
- Integrated OmniBrowser. Nautilus will wait to 2.0 to be core,
   but it is still loadable.
- Integrated Keymapping. This is in fact a sub-product of the
   inclusion of Spotlight, but the framework is powerful and it
   deserves its inclusion too :)
- Updated Zinc to latest version.

Complete list of bugs fixed:

- 5665: bug on new ecompletion/ocompletion
- 5773: Have access to the original event in PLuggableButtonMorph,
- 5584: File Browser not recognizing cs and st if filename has more
             than one point
- 5667: Renaming a file just deletes it due to missing
             #fileNameFromFormattedItem:
- 5445: Broken command-line arguments in 1.4
- 5679: Removing a trait does not remove trait methods from class
- 5722: Be able to remove traits from class definition
- 5858: DateAndTime >>#hash
- 5833: More robust allSuperclassesIncluding:
- 5966: DropListMorph do not pop the list when the text field is
             clicked
- 5627: "MessageNotUnderstood: receiver of "displayWorld" is nil"
             on clicking the red Menu-Halo.
- 5742: BallonMorph shows flyover help using an extra line
- 6150: During snapshot: Send cr after Transcript message for 1.4
- 6147: Code completion in all tools for 1.4
- 6189: [BUG]: Port to Pharo 1.4 - stdin hangs until EOF
- 6143: MIME decoding and Unicode not working
- 6188: [BUG]: (1.4) Put back the correct order in #asert:equals:
- 6187: [Bug]: (1.4) Mouse down events are being processed twice
- 6117: SimplifiedChineseEnvironment should implement leadingChar
- 6082: Missed translated selector for the dialog title in the
             ColorChooserMorph
- 6231: FileList revert
- 6303: [BUG]: Completion DNU in Inspector/Object Explorer for 1.4
- 6305: StartupPreferences "run once" broken
- 6324: For Pharo 1.4 disable StartupPreferences only for Windows
- 6313: failing test: testKeyStrokeFromMorph,
- 6352: StartupPreferences loads non-st files in 1.4
- 6373: Add #version to OSPlatform
- 6366: [Bug]: In 1.4, Finder UI DNU guessTypeByName:
- 6343: move Windows on screen should take in account the task bar
- 6386: [BUG]: [1.4]: New ProcessSpecificVariables & Running

Not bad, isn't?

Thanks a lot to all who contributed with fixes, reports and suggestions.

The Pharo Team

Athens Flake Demo

This demo is very basic, demonstrating a rendering speed of Athens using Cairo backend.

Pharo 2.0 Progress

Torsten writes on his blog:

"If you grab the latest Pharo 2.0 version from the CI server you will see that it has some countless new features"

For his list, have a look at the blog post.

Pharo breaks 600 followers on Twitter

@pharoproject crossed the 600 followers mark last week!

You can follow on twitter for all Pharo related news here:
https://twitter.com/pharoproject

Pharo can be found on Google+ in addition.

Pharo Association and Consortium

After taking into account feedback from companies and pharo users in different occasions and discussing with the INRIA lawyers and the team in charge of the administrative aspect of the consoritum here is the setup we finally want for the consortium. We will have two separated entities:

- one french law 1901 association for individuals and
- one consortium for institutions (companies, research groups,
   laboratories, universities...) managed by INRIA

For more in-depth information, see this email.

ESUG 2012: 27-31 August

The 20th ESUG conference will be held in Ghent, Belgium 27-31 August 2012, with a Camp Smalltalk 25-26 August.

ESUG is the International Smalltalk Conference, for more information see http://esug.org/Conferences

- Early registration ends June 30th! more...
- A first version of the schedule is available.

For up-to-date information, see http://esug.org

NeoCSV and NeoJSON

Sven Van Caekenberghe has released two new libraries for Pharo:

- NeoCSV: a fast .csv parser more
- NeoJSON: a flexible and efficient json parser more

A Discussion with Igor Stasenko

Smalltalk Inspect, the podcast about the programing language Smalltalk, has a discussion with Igor Stasenko:

Hello? Smalltalk calling! Igor Stasenko on FFI, Alien and NativeBoost

Update on the Bootstrap Project

Guillermo Polito writes:

Finally I'm making the progress public *officially*  :P
I've written some posts in my blog about the bootstrap progress:

- Chapter 1 – Preparing the soil
- Chapter 2 – Do not mess with the VM
- Chapter 3: It’s Alive!

The last post is probably the most interesting one, telling how you can try the code (at your own risk).

If you do not like reading long posts, here is a summary:

- code is available to bootstrap a pharo image.
- the bootstrap takes a sample on the current running pharo  
   image.  It does not start from source code yet.
- the bootstrapped image doe some nice reporting like space
   tally and a list of broken references and not initialized stuff.  
   This list is a point to start improving the pharo core
   packaging, to make the core not dependent on external
   packages.
- the size of the bootstrapped image fluctuates between 1.1
   and 2 megabytes depending on the initialization and sample
   you take to bootstrap. This is a point to attack using the
   spacetally and some other reports probably.

You can also see a jenkins job at Ecole des Mines where that report is printed as a Junit report. As long as that list has items to fix, the job will remain yellow :).

- Project Seed Broken References Report
- Test Result

My next steps are making the bootstrap start from a source code specification and work a bit on modularization.

Enjoy,
Guille

PharoConf: Slides and Pictures

PharoConf was held at Inria Lille the 24 and 25 of May 2012. Two days of Pharo, lots of talks, discussions and short presentations of companies using Pharo. Lots of new people, we had two exhausting but fun days. (Some even continued Saturday and even Sunday with hacking Pharo).

Pictures of Day 1
Pictures of Day 2

All slides are available online at:

     http://rmod.lille.inria.fr/web/pier/Events/PharoConf2012

New Blog: Playing with Objects

Guillermo Polito has started a new blog: Playing with Objects.
The first post is about Object Formats in CogVM:

This post is about how our nice Smalltalk objects are seen by our VM, and a little of code to understand it.  At the end of the post I present a little project which aims to reify the object vm formats.  

Read more...

Documentation for Zinc HTTP

Now that I have recovered from the intensive Pharo Conference, I found the time to publish the Zinc and Zodiac documentation.
The two main websites have been updated:

http://zn.stfx.eu
http://zdc.stfx.eu

My slides are here

http://zn.stfx.eu/zn/zn-talk-pharo-conference.pdf
http://zdc.stfx.eu/zdc-talk-pharo-conference.pdf

The documentation (as Pharo Conference paper and draft chapter for Pharo By Example 2) are here

http://zn.stfx.eu/zn/zinc-http-components-paper.html
http://zdc.stfx.eu/zodiac-paper.html

For some inexplicable reason, Google Chrome is extremely slow doing the syntax highlighting on the long Zn paper/chapter, so here is an alternative version

http://zn.stfx.eu/zn/zinc-http-components-paper.no-js.html

Enjoy! Sven

--
Sven Van Caekenberghe
http://stfx.eu
Smalltalk is the Red Pill

Fuel 1.8 Released

We are proud to announce Fuel 1.8 with a lot of new features and documentation. Of course, we don't stop working but it was time to freeze a stable version.

Fuel is an open-source general-purpose object serialization framework developed in Pharo Smalltalk environment.
More information on our website

Fuel works out of the box in Pharo from 1.1 up to 2.0 and is an official part of Pharo as of 2.0 #098. Please check our documentation for complete installation and use guides.

Below, there are some remarkable changes.

- Much more complete user guides.
- Improved API for customizing how graph is traced.
- FuelMetalevel: serialization of stuff like classes and compiled
    methods moved to an optional package.
- Customize objects to be treated as globals.
- Migrations: declare at materialization time class and variables    
    renames.
- Weak references properly managed. Thanks to Juan Vuletich and
    Levente.
- Thanks Pavel for helping us improving FuelPackageLoader with
    wonderful ideas and bug reports.
- Serialization speed up on large graphs by using specialized
    collections. Thanks Levente.
- Encoder and Decoder: new reifications that clarify the design.
     Thanks Colin Putney.
- Optimized serialization of "clean" BlockClosures, which don't need
    the whole stack of contexts. Thanks Juan Vuletich and Eliot Miranda.
- Added a clear error hierarchy.
- Debug facilities, including graph visualization using Roassal.
    Thanks Alexandre and Doru.
- Many more new tests. Including those from extension packages, we
    have almost 600 tests.
- Repository moved from 'http://www.squeaksource.com/Fuel' to
'http://ss3.gemstone.com/ss/Fuel'.

If you are a Fuel user we are not aware of, please let us know!

Best regards, Martin and Mariano

More about...
- Fuel
- RMoD: http://rmod.lille.inria.fr
- Pharo: http://www.pharo-project.org

Pharo: Tips and Tricks

Mariano has a new blog post up:

Hi guys. It is going to be 4 years since I have started to develop with Squeak/Pharo. In the last months, talking with people or by reading the mailing list, I noticed that I may know some tricks and tips of Pharo that not everybody know. If you are an advanced Pharaoer, you probably won’t learn anything new but, if you are a beginner or so, this post may help you.

read more...

Nagare - a new flexible logger for Smalltalk

Masashi UMEZAWA has developed a new logging library called Nagare.

Nagare is designed to be simple and scalable.

Contrary to other logging frameworks which provide rich set of log
output methods (file, socket, DB, etc.), Nagare just connects to fluentd. And Fluentd does the various log processing jobs.

Features:
- Simple log interfaces with reliable backend
- Semi-structured logging (Not only String, you can store
   structured records in log)
- Flexible - you can easily customise log-tags, log policy, etc.
- Portable (runs on Squeak, Pharo, VisualWorks)

More at http://code.google.com/p/nagare-logger/.


StartupLoader: running startUp scripts in Pharo

Blog post by Mariano about StartupLoader:

Hi. Some time ago, I wrote a post about how I build images for my projects. I am downloading new images all the time and because of that I used to have 2 problems: 1) I needed to load several external packages to thestandard Pharo image; 2) I needed to set my own settings and preferences. Today, Pharo 2.0 (which is in development and unstable state) includes most of the packages I always needed to install: shout, code completion, nice browser (Nautilus or OB), refactoring integration, spotlight, etc.  So nowadays I only had problem 1).
In this post, I will show you how I solve that problem using StartupLoader, a nice utility present in Pharo (since Pharo 1.4). IMPORTANT: Everything I mention in this blog is taking into account the “new version” I did of StartupLoader. Before writing this post I have improved it and therefore you need at least a Pharo 2.0 version 20071.

read more...

Building Pharo from PharoKernel in Seconds

Mariano and Pavel did some nice experiments about loading packages using Fuel. From a 2MB headless core to full Pharo in (latest numbers) under 3 seconds...

Mariano write on his blog:

"Last week I was playing with Pharo kernel images and I thought it could be interesting to document here what we (I am not alone!) were doing...."

Read more...


[JOB] Young VM Engineer

Inria RMoD is looking for a full-time young engineer for helping with
developing our research infrastructure. Young engineer means
someone who finished with a degree (Master or Engineer) not longer
than 2 years ago. Duration of the position is 2 years.

The engineer position is focussed on virtual machine related work. As researchers, we need a system to explore new ideas with. The job of the engineer is to help us by improving the infrastructure we use for our daily work.

What this of course means is that it's kind of a cool job: work in a research lab, but no paper writing, no teaching, no administration.

In addition:

- live in France (one hour from Paris, 1h20 from London,
   35 min from Brussels)
- try a lot of good beers (our office is just 10km from the
   border to Belgium)
- Smalltalk! (in the form of Pharo)

For more information, see the original call.

Athens: a vector-based canvas for Pharo

This video is an introduction to Athens: a vector-based graphics framework for Pharo.

External Page: athens.png

No Audio?

Is there really no audio for that whole thing? Or is my everyday safari browser just really broken?

Audio should be fixed

We uploaded a new version in Monday (23/04) with fixed audio. (the old version had two tracks with the first empty)

Development of Pharo 2.0 started

The next iteration of Pharo development has started! The integration server has been configured and the latest downloads are available from

We are using Trello for coordination. The 2.0 Trello board is here.

Pharo 1.4 Released

We are proud to announce the release 1.4 of Pharo!

You can find information about Pharo on
                          http://www.pharo-project.org

In particular, you may be interested in:

- How to join us and get help
- Getting the Pharo By Example book (also available as a free PDF):
- Watching the screencasts
- Reporting problems on the issue tracker.
- Read the forthcoming book (yes we love and value documentation)
- Read the Pharo vision document and plans for the consortium.


About this release
---------------

All in all, there were over 860 issues treated in the issue tracker.

Read it again, yes 860 is huge, take two minutes and have a look at the list of improvements! Now you got a feeling for the effort. And this not our own work but the work of our community! It is possible because people worldwide helped! We want to deeply thank them.


We want to thank in particular Inria for its constant support, in particular for the salary of Igor Stasenko and for help in the  infrastructure put in place.


We have accomplished this huge task for a better system because we were together. Do not forget that we are working on a consortium to support our system. Do not forget that our goal is to build a system so that we can make a living with our creativity and programming skills.

Read the Pharo vision document and join!

Thanks ***a lot*** for your participation, energy and fun.

                The Pharo Team


Some Items of 1.4
----------------
Not all the changes are reported here, but this is to give you an impression.

Changes

- New code model: Ring
- Support for startUp preference script
- #class message is not a byte code anymore
- Better union and intersection methods
- Better primitive simulation
- Better headless support
- Better support for error at startup
- Introduction of FileSystem
- Less dependencies: Color, Scrollbar do not depend on
    Compiler anymore
- Cleaning tests
- Unload hostSystemsMenus
- More consistent API for browser opening
- No event pulling anymore
- More class comments
- Announcement driven system notification
- Better API for sharedPool


Zinc Improvement

- New mechanism for Zinc servers start/stop handling
      after system startUp/shutDown
- and a lot a lot and a lot more.


Tools

- Support Cherrypicking when merging
- Better timeProfilerBrowser
- Better MC commit error
- MC handles better dependencies
- Better Debugger
- Better Inspector
- Search in tools
- New Finder tool
- Cmd-Click for senders and implementors
- Senders and implementors deals with class
- Better tool registry
- Improvements for the FlatBrowser
- Better Transcripter
- Faster diffBuilder
- MetacelloConfigurationBrowser to browse published configurations
- New version of OCompletion and Ecompletion that can play
    together and without code duplication.

UI

- Support grouping windows as tab
- Better search
- MultiSelection improvements
- Drag and drop in multi selection list
- PluggableListMorph improvements
- PluggableListMorph selection on drag
- Iconic Button improvements
- PharoTheme
- Better CheckBox
- Enhanced PluggableButtonMorph
- Polymorph enhancements
- Deprecate PluggableListMorphOfMany
- Merged NewParagraph  and MultiNewParagraph
- New Widget: Ticking list and widget
- LazyListMorph  cleaning
- NewTextMorph  and TextComposer  improvements
- Improve behavior of MorphTreeMorph
- Removing NewTextMorph  and related
- StringMorph


Cleaning

- Object
- Old HTTP code
- No references to Utilities
- Removed toolbuilder
- Restructure packages
- Canvas hierarchy
- MorphicModel
- Deprecate recentMessageSet
- Deprecate ImageSegment
- Deprecate MessageNames
- Deprecate TimeProfileBrowser
- Really cleaning messageSet and subclasses
- SystemChangeNotifier
- Removed Project
- Removed BlockContext , blue book old closure encodings
- Font downloading
- HandMorph cleaning

Some Fixes

- Set growth with nil
- Better weak finalization
- isPrime fixed
- Compiler Fixes
- Russian characters in editor
- More class comments
- Fix drawing shadow morphs
- Trait support
- Fixed syntax hilighting
- Better pointersTo:
- Speedup MethodDictionary  #rehash
- Compiler enhancements.
- Stream should not print its contents
- Progress bar
- InputSensor
- CombinedChar
- BytexTextConverter fixes

Trello Board for 1.4

We are testing Trello for synchronizing work between multiple people working at the same time... for now just for 1.4 to see if it is good to use for 2.0.

The 1.4 Trello board is here.

Success Story: Lawsuite Tracker

Lawsuit tracker is a desktop application to follow trials and do reporting/liquidation over them. It has a customer designed DSL for querying and it exports data to PDF and CSV.
It is being used actively by around 20 users and build using Pharo, Glamour, Magritte and MongoDB.

More about..
- smallworks: http://smallworks.com.ar
- Lawsuite Tracker
- Pharo Success Stories

Please Test: Pharo 1.4 to be released soon!

After over resolving over 860 issues, Pharo 1.4 will soon be released.

The latest build (VM and Image) is available from the integration server for testing. For the first time, we have a completely automated build process from the VM sources to the release artifact.

See the download page for links and infos how to download:

http://www.pharo-project.org/pharo-download/beta-1-4

13 Slots at GSoC 2012!

ESUG got 13 slots for Smalltalk projects at this years Google Summer of Code!

More information, see the http://gsoc2012.esug.org

 Dr. Geo 12.04 Released

Hilaire Fernandes is pleased to announce you Dr. Geo release 12.04, based on Pharo 1.4, for GNU/Linux, Windows, Mac OSX and OLPC XO laptop.

It can be downloaded an tested from http://drgeo.eu.


New features
* Numerous improvements for a better experience with tablet
   and interactive board.
* Sketches can be deleted from the preview dialog
* Removed windows decorations and borders grip in the Sugar theme
* Remanaged menus
* Improved canvas view for programmed sketches
* Various optimizations
* Handle connection error for remote sketches
* Sketches can be loaded and saved on a server (FTP only now)
* Dr. Geo settings to set the server account for remote sketch
* Animated loader for time consuming operation

Bugs fixes
* A few messages from the Pharo Smalltalk are also localized now
* Uninitialized segment mark caused a save error
* Fixes when creating middle point
* #13787 Macro construction player, order mater

Pharo at Google Summer of Code

ESUG (http://esug.org) has been accepted at the 2012 Google Summer of Code!

This means there are general Smalltalk related (and specific Pharo related) projects that students can work on this summer. And get payed for it.

More information at http://gsoc2012.esug.org

Deadline for Student applications is Friday 6. April at 19 UTC.

Pharo passes 5000 closed issues

The Pharo issue tracker:

    http://code.google.com/p/pharo/issues/list

passed 5000 closed entries on 6th of March. (436 open out of 5437 issues)

With the first report from damien.cassou on Jun 5, 2008, this translates
to 3.65 reports being taken care of *every* day.

Nautilus Browser

Mariano has an article about the Nautilus System Browser on his blog

Read it here.

Pharo and Arduino

If you happen to be a Pharo developer and a proud owner of an Arduino board, this might be of interest to you.
Given the recent mails related to Arduino in the Pharo mailing list, I decided to make a Metacello configuration to help the poor souls in need.

... read more here.

Pharo Conference 24/25 May

http://pharoconference.eventbrite.com/

The Pharo core team organises a Pharo Conference hosted at INRIA Lille Nord Europe located at Villeneuve D'ascq (close to Lille).

The goals of the conference is to bring companies, developers and users together.

You are invited to propose a talk on

       - your business with pharo
     - a technical presentation of a framework or solution you built with pharo
     - experience reports


Please contact stephane.ducasse@inria.fr and marcus.denker@inria.fr for possible presentations.

Slides Fosdem

The slides of the Pharo talk at FOSDEM 2012 (Bruessels) are online:

- Slides SlideShare
- PDF File Download

Adriaan van Os posted some photos here

Zodiac Alpha Release 2012-01-26

Sven Van Caekenberghe announced an alpha release of Zodiac, an open-source, cross-smalltalk implementation of regular and secure socket streams.

Features:
- ZnSecureSocketStream
- HTTPS client access
- HTTPS server (not on Mac OS X though)
- ZdcSecureSMTPClient
- ZdcSecurePOP3Client

Read the announcement here.



Pharo Sprints in February

There will be two sprints in February

1) Brussels on Feb 4th: Link...

2) Bern on Feb 18. (with moose dojo Feb 19): Link...

Moving debuggers between images with Fuel

Mariano writes: ... and suddenly I thought: “What happens if I try to serialize a living debugger and materialize it in another image?” After 5 minutes, really, you will see it takes only 5 minutes, I notice that such crazy idea was working OUT OF THE BOX.

read more...

Some Resources to Learn Smalltalk

Pat Maddox writes:

If you want to learn Smalltalk, you can get started easily. First head over to Learn Smalltalk with ProfStef where you can learn Smalltalk syntax in about five minutes using Amber Smalltalk, a Smalltalk that runs in your browser via Javascript.
...
Read more here

Francois Stephany writes:

After my previous post about the Pharo ecosystem, some people asked me more about a comparison of Smalltalk and Ruby. And how a Rubyist could leverage his knowledge when learning Smalltalk.

The two languages are class based, dynamic and their supporters like their clean and easy syntax. Actually, Smalltalk is sometimes considered as one of the father of Ruby. They share quite a lot and most of the patterns used in one can be easily expressed in the other.

Read more here...

Command Line AWS S3 Upload/Download Tool using Pharo Smalltalk

This is a little story about a tool that I needed and that I finally implemented in Pharo Smalltalk. I think it is quite nice and elegant and might be useful to others too. Also, I think it is important to share little hacks like this to show that what you can do is almost unlimited (as many others have shown in all kinds of projects).
....
Read the story here

Zodiac

Zodiac is an open-source, cross-smalltalk implementation of regular and secure socket streams. The primary goal of the project is to offer TLS/SSL streams that can then be used to implement for example HTTPS when combined with a suitable client such as Zinc HTTP Components.

More information: http://zdc.stfx.eu/

Pharo 1.3

We are proud to announce the release of 1.3 of Pharo. This new release is the result of active development from the community and
it is composed of:
       - Cleaning architectural dependencies
       - More cleanups directed by applying code critics on the system
       - Support for server and headless images. Pharo has
          now a support for stdin, stdout and stderr.
       - More robust and better startup/shutdown
       - Improved look and feel
       - Better widgets
       - Improved tools
       - Weak Announcements
       - Stratified Proxy
       - More class comments
       - Network improvements based on Zinc

And a lot more.  
A more detailed list of changes is available here.
On the issue tracker, over 700 issues where handled.

Pharo 1.3 is available on the pharo website:
http://www.pharo-project.org/pharo-download/release-1-3

Slides Smalltalk 2011

The slides from the Pharo presentation at Smalltalks 2011 are now available online:
- Download PDF
- SlideShare: slideshare.net/MarcusDenker/pharo-one-year-later

TextLint

TextLint is a ruled-based tool to check for common style errors in English texts. TextLint allows non-native English writers to improve the quality of their texts and their writing skills at the same time. TextLint implements various stylistic rules and more can easily be added. Various interfaces allow you to use TextLint in multiple situations: you can use the web interface, a cross-platform desktop application, or you can use TextLint directly from your favorite text editor (currently Emacs, TextMate, and Vim are supported).

Watch two screencasts and a presentation to get an overview of TextLint.

JQueryMobile for Seaside

Nick Ager integrated JQuery Mobile with Seaside

You can try it out at: http://jquerymobile.seasidehosting.st 

This work has been sponsored by Louis Andriese at "Delta Lloyd Online Innovations" and made available under the MIT licence. For more information, see Nick's post on the Seaside list here

Language of Languages


Unifying Concepts Across Different Notations

Maintaining the consistency of multiple notations used in large projects is daunting. Language of Languages(LoLs) is our experimental language workbench that fulfills a frequently overlooked but important role: unify the different notations so developers can better understand and evolve a project. Due to the impossibility of anticipating all the notations that may be used in a project, LoLs adopts a language agnostic view and supports different notations from free-form text to graphical forms and shapes.

LoLs is the work of Jamie Douglass, Nicholas Chen and Ralph Johnson
at University of Illinois (UIUC)

http://www.languageoflanguages.org


Pharo 1.3 and 1.4 status

Pharo 1.3 is in release candidate mode. The last action needed for release is to package the OneClick image with the right Cog VM. On this side Igor is working on a few critical fixes that should be ready in a couple of days. So you can put the Champagne in the fridge now.

Pharo 1.4 is in alpha mode. Note that starting from 1.4 only one image will be released. Releasing two images actually needs too much effort for our community. Furthermore the core developers usually work on PharoCore and it's hard for them to follow bugs on a image (Pharo) they don't use.
So one small image with easy package loading (and unloading) seems a better way to go. Only one Pharo.

About infrastructure, continuous integration server is moving from Hudson to Jenkins. The Hudson server will be stopped when the migration is finished. For Cog VMs, Pharo 1.4 and current projects, check the Jenkins server.

Want to know more about Pharo's future ? Read the roadmap that has been presented at ESUG conference - among other nice presentations.

Moose 4.4 release

The Moose platform for software and data analysis has reached version 4.4:
http://moosetechnology.org/download

What is new:

Based on Pharo 1.2.1

New EyeSee engine for scripting visual charts

New Kumpel importer for SVN repositories

New Metanool engine for supporting dynamic annotations of models

Simplified look and feel

Improved VerveineJ compatibility for Java parsing

Improved FAMIX support for Java systems

Improved support for complex shapes in Mondrian

Improved RPackage engine support for the Smalltalk importer

A list of issues addressed in this release can be found at:
http://code.google.com/p/moose-technology/issues/list?can=1&q=status=Fixed%20milestone=4.4

Mailing list weekly summary #7

Woaw long time since the last weekly summary. I should rename it as a Monthly summary. As usual *a lot* happened since last time.
As I've cut a lot of discussions, comment if I forgot something important.

Events

A sprint was oragnised in Brussels the 15th April.

Announcements

Not directly Pharo related but Nicolas Petton released JTalk, a smalltalk implementation implemented in Javascript (as Clamato). Very interesting and promising. full thread

Pharo 1.2.1 is out. The process was quite painful. The infrastructure will probably change for 1.3. As discussed earlier, the next releases of Pharo won't come in two flavours: Core and Dev but only in one. full thread and other

Mariano has started a blog where he shares his experiments with the Pharo VM. Very interesting topics so far.

German released the first beta of XMLRPC. full thread

Doru wrote a Morphic tab widget which looks promising. Gary is reviewing it. Hopefully it will be included in Pharo 1.3. full thread

Sven shared two classes that can be interesting for your project: IPAddressCountry and Iso3166CountryLongitudeLatitude. Their name are clear enough I guess... full thread

A new chapter about Metacello is out. Very interesting read. full thread

Laurent is now a freelance. If you need the services of a great Pharoer do not hesitate to contact him. full thread

MetacelloBrowser 1.59.1 beta is out. Dale uses it for his daily tasks and it seems to be pretty usable now. Tell him what you think about it. full thread

Discussions

Sean asked if a middleware à la Rack/WSGI/Plask is available in Pharo. This middleware would provide a uniform handling of HTTP messages. So far, every HTTP library has its own classes. full thread

Toon is working on Opal, a new compiler (I guess it will be integrated in a future pharo release). If you're interested in Smalltalk compilation, subscribe to the Opal mailing list.

Mariano asked what are the methods that are never executed (those inlined by the compiler for example). full thread

Martin asked how to find a good pattern to display a progress bar. The bar should of course be as decoupled as possible from the actual algorithm. full thread

There were some discussions about user interface themes. Some people still use the colored windows from Squeak. A possible solution would be to be able to load new themes from a central place. full thread

Discussions about the inclusion of SimpleMorphic. Fernando is working on it. full thread

Some work is done on a new browser: Nautilus. See the thread to get more details.

Torsten asked about the state of SqueakDBX on Pharo 1.2. Apparently, it works like a charm ;) full thread

Javier is writing a C parser with PetitParser. full thread

Pharo release 1.2.1

The Pharo Project is proud to announce the release of Pharo 1.2.1, the third major release of this clean, innovative, open-source Smalltalk environment.

 

Update #12345

On Tuesday, March 29th 2011, update #12345 was issued to Pharo's 1.2 development line, a line that started back in June 2010 and was frozen in January 2011. Next, Pharo's continuous integration machinery successfully started building various artifacts based on this 'Pharo Core 1.2', the most important one being 'Pharo 1.2' proper, the full featured development image.

Pharo Core 1.2.1 passes 7.836 unit tests, Pharo 1.2.1 no less than 10.760. A large, international community of developers worked hard for several months to iron out all problems and to make Pharo compatible with various Smalltalk libraries and frameworks, among them Seaside 3.0.3 which passes its 1.599 tests.

Pharo Core Changes

True to the Pharo philosophy, this release contains numerous small changes, refactorings, cleanups and bugfixes improving the overall quality. Important changes include:

– Cleaned the Pluggable hierarchy
– Added new undo framework
– Cleaned Morph and PasteUpMorph
– Added DummyUIManager, a UIManager for operating without a UI
– Added NewTextMorph
– Removed left overs from MVC: PopUpMenu, SelectionMenu and CustomMenu
– Cleaned Utilities, Preferences and TheWorldMenu
– Included SimpleMorphic preview
– Removing empty classes
– Added new TextEditor and SmalltalkEditor
– Added new, clean and simple Glamorous, Glamorous Orange GUI Themes

– Added new Pro GUI Theme
– Added Cog compliant behavior
– Added better blocks debugging
– Better support for separating SmalltalkImage and SystemDictionary
– Fixed package dependencies, providing a good platform for kernel images
– Removed old JIT experiments
– Migrated to MethodReferenceWithSource and friends

– Added more pages under the Help system
– Improved the number of commented classes

– New Finder tool (replacing Messages Names and Method Finder)
– New Recent Changes tool (replacing Recent Submissions)
– Improved SpaceTally
– Fixed pointer finders tools
– Integrated SUnit 4

Started Continuous Integration: use Hudson/Jenkins to automatically build images, run tests, and compile VMs

For the Core 1.2 Image development line, 693 issues were resolved.

Pharo Changes

The full featured Pharo development image is built automatically by loading the Metacello configuration aptly called ConfigurationOfPharo. Important changes include:

– Updated to latest Metacello and all configurations used to use symbolic versions
– New tools: Metacello Configuration Browser, Memory Monitor, and Autotest
– Updated versions of Shout, RoelTyper, OCompletion, OmniBrowser, AutomaticMethodCategorizer, RefactoringBrowsers, Nile, ProfStef
– Added XML-Support, and more Help
– Removed NewInspector

For the Full Dev 1.2 Image development line, 57 issues were resolved.

Downloads

You can obtain Pharo 1.2.1 through various downloads:

Pharo 1.2.1 One-Click is the easiest to get started: it includes all needed components (image, change and source file as well as the VM) in one package that requires no installation

Pharo 1.2.1 the primary developer image, changes and sources file

Pharo Core 1.2.1 just the core image, changes and sources file

Success Stories

Pharo has a large user base spread all over the world. Hence there is a growing collection of success stories, projects using Pharo that choose to go public with this. Recently, the following were added:

DrGeo - an award winning interactive geometry application also used for teaching primary and secondary level students

Issys Tracking - a workflow platform to support authorization procedures for the medical practice for a large social organization/health insurance in Argentina

Inceptive's Custom ERP - an application for the event planning and resource management administration of a large cultural centre in Flanders

Sven Van Caekenberghe, April 5, 2011

Mailing list weekly summary #6

As planned the mailing summary has a new host; the official Pharo website. Past week was quite busy (920 emails !). As usual do not hesitate to comment if I forgot something important ;)

This summary starts the 13 March 2011 and finishes 23 March.

Events

Last week Sprint in Lille was successful. Igor and Henrik left the office at 10pm when everybody else had left since 5pm. (full thread)

Announcements

Pharo Core 1.2 is out ! (full threads here and there)

Patrick released Sandcastles themes for Pharo 1.2. (full thread)

Stefan created a benchmarking framework for Smalltalk called SMark. (full thread)

The configuration of SandstoneDB has been updated to work in Pharo 1.2. (full thread)

University San Martin in Argentina now teaches Pharo. (full thread)

SqueakDBX 1.3 is available and changed its name for DBXTalk. More on this later. (full thread)

Vijay started to work on ZeroMQ bindings for Pharo. I don't know where to find the code though... (full thread)

Runar announced a Riak interface for Pharo. (full thread)

Miguel cleaned RFB a little bit to make it work in Pharo 1.2. He released a Metacello configuration. (full threads here and there)

Pharogenesis. Very cool project. (full thread)

Native Boost and CogVM are now working together :) (full thread)

Not directly Pharo related but Nicolas (behind the Iliad web framework) released JTalk. A Smalltalk implemented in Javascript. (full thread)

Discussions

If you have a tool that runs on Pharo please update the Pharo book. It will help newcomer to know the packages that are available. (full thread)

Designing Test Case has always been hard. Traits can help. (full thread)

Esteban published a blog post explaining the current state of Mars. I guess a lot of MacOS X users are waiting for it.

Marcus created explained how to use and retag issues in the bug tracking system with the *FixProposed* and *FixToInclude* status. (full thread)

nullPointer asked about the current status of OSProcess. In any case, everybody agrees that it is a crucial package. (full thread)

Henrik and Igor worked on announcements and made a small report of their progress. (full thread)

Camillo had some trouble with fonts with the CogVM on MacOS. He copied the `FT2Plugin.bundle` in his Cog.app. (full thread)

Bill want to use Lumiere on Linux. It does not work so far but Ricardo and Alexandre are working on a 3D engine without external dependencies. Igor deplored the lack of people who can do assembly, VM hacking and OpenGL hacking. We are not all like you Igor :p (full thread)

Good thread about building Native Boost on Linux. (full thread)

Why Ward Cunningham stopped doing Smalltalk and went to Ruby. I haven't listened the podcast yet but Hwajong Oh did. (full thread)

The introduction of Namespaces is discussed in a thread about GSOC 2010. (full thread)

Please have some love for your bug reports. A lot of open bugs are actually fixed in the system but their owner did not close them. Please comment on bug entries if you are working on it or have something to share about it. Marcus is crashing his head on the wall because of that. (full thread)

Discussion about base64 encodings and linebreaks. If you need to use base64 the thread could interest you. (full thread)

See you next week !

Wrong links

The "full thread" links point to rss feed of the article, not to the topics as expected.

Ooops

Hi Chaetal,

It should be fixed now ;)

Hapao Testing

Test coverage is about assessing the relevance of unit tests against the tested application. It is widely acknowledged that a software with a “good” test coverage is more robust against unanticipated execution, thus lowering the maintenance cost. However, insuring a coverage of a good quality is challenging, especially since most of the available test coverage tools do not discriminate software components that require a “strong” coverage from the components that require less attention from the unit tests.
Hapao is an innovative test coverage tool, implemented in the Pharo Smalltalk programming language. It employs an effective and intuitive graphical representation to visually assess the quality of the coverage. A combination of appropriate metrics and relations visually shapes methods and classes, which indicates to the programmer whether more effort on testing is required.

http://hapao.dcc.uchile.cl/

Zoom: home_3.png

Marcus Denker, January 23, 2011

IRC meeting notes

This was our first IRC meeting, which we plan to repeat once a month. The complete log is at pastebin.com/Y7MFaddK.

* Next meeting
We want to rotate the time so that people in other timezones can more easily join.
Next meeting takes place on January 4, 2011. Time to be decided (please let us know what a good time for you is)

* List of potential projects/topics to discuss: http://code.google.com/p/pharo/wiki/Projects

* Source code management and history to track all versions and all changes. Current representation of source in the .changes and .sources files is very weak. What we would like to have is a proper code model. ESUG is paying a small company to rewrite from scratch SqueakSource. INRIA is looking into providing Webdav access on their infrastructure. Another missing area is descriptions of the external packages to answer where the code is stored, who the maintainer is, etc.

* Comments: we need more and better comments. We have HelpSystem but it is not used so far. The main obstacle is that one needs to subclass from CustomHelp, which creates an unnecessary dependency on the help package. This can be solved using the builder/pragma approach like done for Settings.
-> suggest this change to Torsten

* How can we make more people, especially newcomers, involved?
-> Separate issues by apparent difficulty and make a more detailed casts how to contribute.
-> attribute the contributions, e.g., on the website like we did for http://pharo-project.org/pharo-download/release-1-0, or via a dedicated twitter feed.
-> ask people to more often hang around on IRC

Adrian Lienhard, December 7, 2010

Pharo 1.1 released

We are excited to announce our second release of Pharo!

This release contains many bug fixes, improvements, performance optimizations, and new features that didn't get into version 1.0.

Specific information about what is new in this release can be found on http://www.pharo-project.org/pharo-download/release-1-1.

Thanks everyone who has contributed and helped to bring Pharo one step further!

Adrian Lienhard, July 26, 2010

Pharo News #2

Pharo Sprint in Bern on March 13

The main goal of the sprint is to reduce the number of open issues for Milestone 1.1. The sprint is hosted by the Software Composition Group of the University of Bern. For details and registration please see the sprint wiki page.

Pharo 1.0 RC2

End of last month the release candidate 2 was announced. As feedback for RC2 has shown, there are still a few open todos and one unresolved problem (IPv4 vs. v6 network implementation).

Seasidehosting support for Pharo

As announced in another blog post, www.seasidehosting.st now supports Pharo.

There's also a Screencast that demonstrates how to deploy a Seaside/Pharo application on Seasidehosting.

New Seaside book

The PDF version of the new book “Dynamic Web Development with Seaside” is available for download now.

Nabble interface to Pharo mailing lists

The links to the Nabble sites can be found on the Community page. Also many other related mailing lists, such as Seaside, GemStone/S, and Metacello, are on Nabble now.

Adrian Lienhard, February 20, 2010

Pharo News #1

Metacello Configurations for Pharo

Mariano Martinez Peck announced Metacello configurations for Pharo. The goal is to define a catalog of packages that are stable and known to work in Pharo. The Pharo 1.0 and forthcoming versions can be built automatically from these configurations, which are stored in a dedicated repository on SqueakSource.

Pharo Screencasts

Laurent Laffont created a blog to publish Pharo screencasts. Contact Laurent if you want to share a screencast or if you have an idea for a new screencast that Laurent can produce.

New Productivity Tool

Romain Robbes announced WorkingSet, a small tool that helps you navigate your code in Pharo. It tracks the entities you've changed recently, and lets you access them quickly.

Companies using Pharo

We started collecting companies that are using Pharo. 20 are already on the list – certainly more to come soon! If your company is missing or if you have an interesting project to share, let us know!

New Pharo Mailing List

Since the traffic on the pharo-project mailing list is quite high and often related to the development of the Pharo core system, we created a new mailing list, pharo-users, targeted to users of Pharo.

Adrian Lienhard, January 16, 2010