Planet Smalltalk

April 17, 2015

Benoit St-Jean - Pharo 4.0

Pharo 4.0 est arrivé!  Tous les détails ici!


Classé dans:Pharo, Smalltalk Tagged: Pharo, Pharo 4.0, Smalltalk

Benoit St-Jean - Iliad 0.9.4

La toute dernière version du serveur web Iliad est maintenant disponible!  L’annonce en a été faite ici!


Classé dans:Pharo, Smalltalk Tagged: Iliad, Pharo, serveur, Smalltalk, web

Benoit St-Jean - Cog 15.15.3311

La toute dernière version de la machine virtuelle Cog est arrivée!  Téléchargez-la ici!


Classé dans:Cog, Machine virtuelle, Pharo, Smalltalk, Squeak Tagged: machine virtuelle, Pharo, Smalltalk, Squeak, VM

April 16, 2015

Torsten Bergmann - Iliad 0.9.4 is out

Iliad web framework version 0.9.4 is out. Read more here.

Torsten Bergmann - Pharo 4.0 is now released

Pharo 4.0 is now released, one step closer to the future:

http://pharo.org/news/pharo-4.0-released

Pharo News - Pharo 4.0 Released!

<p>Dear World,</p> <p><a href="http://www.pharo.org">Pharo 4.0</a> is here!</p> <p><strong>Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.</strong></p> <p><figure><img src="/files/posts/pharo40-screenshot.png" width="800px"></img><figcaption></figcaption></figure></p> <p>Many things have changed in Pharo. Here are some highlights:</p><ul><li> Inspector/Playground/Spotter are new moldable development tools for inspecting, coding and searching objects.</li><li> Slots model instance variables as first class entities and enable meta-programming on this level.</li><li> ShoreLine reporter introduces a way to report system errors and collect statistics, that we will use for future improvements</li><li> Dark theme.</li></ul><p>These are just the more prominent highlights, but the details are just as important. We have closed 1700 issues in Pharo 4. Take a moment to go through a more detailed recount of the progress: <a href="https://github.com/pharo-project/ChangeLogs/blob/master/Pharo40ChangeLogs.md">ChangeLogs</a>.</p> <p>Pharo is improving on many fronts, but one of the most prominent changes is the addition of moldable tools for inspection and search. These tools provide extension mechanisms that allow every object to define ways in which it can be understood effectively. To provide an idea of the impact of the already existing extensions, the map below shows the Pharo classes grouped in packages, highlighting in red those parts of the system that have at least one such custom view coming with the main distribution. The spread of these extensions shows that moldability is powerful mechanism that can be used in many contexts.</p> <p><figure><img src="/files/posts/pharo40-gtools.png" width="700px"></img><figcaption></figcaption></figure></p> <p>Remember that Pharo is your platform. We thank all the contributors of this release:</p> <p>Clara Allende, Jean-Baptiste Arnaud, Jean-Christophe Bach, Philippe Back, Clement Bera, Alexandre Bergel, Torsten Bergmann, Vincent Blondeau, Noury Bouraqadi, Santiago Bragagnolo, Johan Brichau, Sven Van Caekenberghe, Damien Cassou, Nicolas Cellier, Guido Chari, Dimitris Chloupis, Andrei Chis, Ben Coman, Bernardo Contreras, Tommaso Dal Sasso, Jan Van De Sandt, Christophe Demarey, Sean DeNigris, Marcus Denker, Martin Dias, Stephane Ducasse, Stephan Eggermont, Luc Fabresse, Johan Fabry, Hilaire Fernandes, Jerome Garcia, Tudor Girba, Thierry Goubier, Jigyasa Grover, Kris Gybels, Norbert Hartl, Dale Henrichs, Pablo Herrero, Nicolai Hess, Pavel Krivanek, Juraj Kubelka, Jan Kurs, Laurent Laffont, Jannik Laval, Kevin Lanvin, Max Leske, David Lewis, Diego Lont, Esteban Lorenzano, Tim Mackinnon, Attila Magyar, Esteban Maringolo, Stefan Marr, Max Mattone, Martin Mc Clure, Eliot Miranda, Alain Plantec, Guillermo Polito, Damien Pollet, Stefan Reichhart, Mark Rizun, Udo Schneider, Ignacio Sniechowski, Henrik Sperre Johansen, Igor Stasenko, Aliaksei Syrel, Ciprian Teodorov, Camille Teruel, Sebastian Tleye, Yuriy Tymchuk, Peter Uhnak, Andres Valloud, Sven Van Caekenberghe, Thomas Vincent, Jan Vrany, Martin Walk, Richard Wettel, Dmitri Zagidulin</p> <p>And all those who contributed indirectly, by reporting bugs, participating in discussion threads and providing feedback.</p> <p>Pharo 4.0 is another big step. And, the best is yet to come.</p> <p>Enjoy!</p> <p><em>The Pharo Team</em></p>

Pharo News - Pharo 4.0 Released!

<p>Dear World,</p> <p><a href="http://www.pharo.org">Pharo 4.0</a> is here!</p> <p><strong>Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.</strong></p> <p><figure><img src="/files/posts/pharo40-screenshot.png" width="800px"></img><figcaption></figcaption></figure></p> <p>Many things have changed in Pharo. Here are some highlights:</p><ul><li> Inspector/Playground/Spotter are new moldable development tools for inspecting, coding and searching objects.</li><li> Slots model instance variables as first class entities and enable meta-programming on this level.</li><li> ShoreLine reporter introduces a way to report system errors and collect statistics, that we will use for future improvements</li><li> Dark theme.</li></ul><p>These are just the more prominent highlights, but the details are just as important. We have closed 1700 issues in Pharo 4. Take a moment to go through a more detailed recount of the progress: <a href="https://github.com/pharo-project/ChangeLogs/blob/master/Pharo40ChangeLogs.md">ChangeLogs</a>.</p> <p>Pharo is improving on many fronts, but one of the most prominent changes is the addition of moldable tools for inspection and search. These tools provide extension mechanisms that allow every object to define ways in which it can be understood effectively. To provide an idea of the impact of the already existing extensions, the map below shows the Pharo classes grouped in packages, highlighting in red those parts of the system that have at least one such custom view coming with the main distribution. The spread of these extensions shows that moldability is powerful mechanism that can be used in many contexts.</p> <p><figure><img src="/files/posts/pharo40-gtools.png" width="700px"></img><figcaption></figcaption></figure></p> <p>Remember that Pharo is your platform. We thank all the contributors of this release:</p> <p>Clara Allende, Jean-Baptiste Arnaud, Jean-Christophe Bach, Philippe Back, Clement Bera, Alexandre Bergel, Torsten Bergmann, Vincent Blondeau, Noury Bouraqadi, Santiago Bragagnolo, Johan Brichau, Sven Van Caekenberghe, Damien Cassou, Nicolas Cellier, Guido Chari, Dimitris Chloupis, Andrei Chis, Ben Coman, Bernardo Contreras, Tommaso Dal Sasso, Jan Van De Sandt, Christophe Demarey, Sean DeNigris, Marcus Denker, Martin Dias, Stephane Ducasse, Stephan Eggermont, Luc Fabresse, Johan Fabry, Hilaire Fernandes, Jerome Garcia, Tudor Girba, Thierry Goubier, Jigyasa Grover, Kris Gybels, Norbert Hartl, Dale Henrichs, Pablo Herrero, Nicolai Hess, Pavel Krivanek, Juraj Kubelka, Jan Kurs, Laurent Laffont, Jannik Laval, Kevin Lanvin, Max Leske, David Lewis, Diego Lont, Esteban Lorenzano, Tim Mackinnon, Attila Magyar, Esteban Maringolo, Stefan Marr, Max Mattone, Martin Mc Clure, Eliot Miranda, Alain Plantec, Guillermo Polito, Damien Pollet, Stefan Reichhart, Mark Rizun, Udo Schneider, Ignacio Sniechowski, Henrik Sperre Johansen, Igor Stasenko, Aliaksei Syrel, Ciprian Teodorov, Camille Teruel, Sebastian Tleye, Yuriy Tymchuk, Peter Uhnak, Andres Valloud, Sven Van Caekenberghe, Thomas Vincent, Jan Vrany, Martin Walk, Richard Wettel, Dmitri Zagidulin</p> <p>And all those who contributed indirectly, by reporting bugs, participating in discussion threads and providing feedback.</p> <p>Pharo 4.0 is another big step. And, the best is yet to come.</p> <p>Enjoy!</p> <p><em>The Pharo Team</em></p>

Hernán Morales Durand - Iliad 0.9.4 is out

Installation

I have updated the Iliad Web Application Server to load properly in Pharo 4 (good tutorials here and here). All tests passes. As usuall you can load it from the Configuration Browser or by evaluating the expression:

Gofer it
smalltalkhubUser: 'hernan' project: 'Iliad';
configuration;
loadStable

Usage

Start the Iliad Web Application Server in port 8888 using the Comanche/Kom Web Server adapter:

IliadKom startOn: 8888.
And point your browser to: http://localhost:8888/Stop all servers:

IliadKom stop.
If things go bad you can start Iliad in Debug Mode:

IliadKom startDebugOn: 8888.
and enjoy the opened Debugger in the signaler method when an exception is signaled.

Changes

  • Use the Grease latest stable version which includes a fix of the #next: method in GRPharoUtf8CodecStream (thanks Benoit Astruc)
  • Added ILTempFile helper methods (#printOn: and #extension).
  • Added ILCaptionElement and ILDatalistElement (thanks Benoit Astruc).
  • Added methods to start Comanche in debug and verbose mode.
  • Changed HttpService name to be more descriptive in the Process list.
  • Removed versions for GemStone and Squeak in ConfigurationOf (will add later after check)
  • Use convertToEncoding: instead of #decode: to patch the Invalid UTF-8 bug.
  • Replaced Pharo 4 deprecated TimeStamp with DateAndTime.
  • Replaced senders of Pharo 4 deprecated #displayString with #asString.
  • Updated acknowledgements windows and text.

Smalltalk Jobs - Smalltalk Jobs – 4/15/15

  • Saint Petersburg, FLSoftware/Controls Engineer II at Plasma-Therm
    • Required Skills:
      • B.S. in Computer Science or Computer Engineering.
      • Five to ten years software engineering experience.
      • SmallTalk programming capabilities.
      • Graphical User Interface design/development (ease of use, ergonomics, etc.)
      • Model, View, Controller (MVC) software architectures
      • Understanding of development of multi-threaded applications
      • Controls and automation systems development
      • Distributed computing environment application development
      • Client/server programming concepts
      • Database implementation and usage concepts
      • Software engineering (all phases of software lifecycle)
      • Agile development model/environment
      • Networked Application development
      • Object Oriented application design and development
      • Reading/writing software requirements/specifications
      • Embedded control for automation and robotics
      • Knowledge of SCADA Systems
      • Software Development for Semiconductor Processing Equipment and SECS standards
      • Supporting end users (both capturing feature requests, as well as fixing deficiencies)
      • Supporting software for manufactured equipment
Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed


Filed under: Employment Tagged: jobs, Smalltalk, Smalltalk jobs

April 15, 2015

Pharo Weekly - Testing unsafe operations

Originally posted on Clément Béra:

For the runtime optimizer (Sista) I am working on, Eliot Miranda and I added new operations (we call them unsafe operations) in Cog’s interpreter and JIT compiler. Before testing them directly by running the optimizer and looking for crashes, I wrote tests to check that each unsafe operation works as expected. I’d like to discuss a bit the design of those tests in this post.

I’ll discuss a specific operation in the post, but all the unsafe operations are handled in a similar way. The operation I chose to described is called USmiLessOrEqual. This operation corresponds to <= but assumes the 2 operands are SmallIntegers, else the behavior of the instruction is undefined. The optimizer uses it only when it can ensure that the two operands are SmallIntegers.

What to test

To test USmiLessOrEqual, one could think I’m going to take an important range of integers and…

View original 2,352 more words


Pharo Weekly - Pillar based rendered class comments

pillar-in-nautilus-view

Kasper Østerbye has just finished a proof-of-concept that renders Pillar
text inside a class comment pane.

April 14, 2015

Benoit St-Jean - D4D Sénégal

C’est dans le cadre du challenge Data for Development (édition 2015) qu’une courageuse équipe utilisant Pharo et Roassal s’est démarquée en remportant le prix d’honneur.  Bravo à Clémence Douard, Onil Goubier, Alvaro Peralta, Aurélie Thouron et Serge Stinckwich pour le projet RÉSILIENCE.  La liste des autres prix est ici.

Le compte-rendu de l’équipe RÉSILIENCE est disponible ici.

Fait intéressant à noter, ce challenge a permis de mettre en lumière certaines limitations de Pharo, notamment en ce qui a trait à la taille des fichiers pouvant être manipulés (ce qui s’est avéré être un simple problème de flag lors de la compilation de la VM).

Ça a aussi permis de redécouvrir un outil fantastique pour les fichiers CVS : NeoCSV.

 


Classé dans:Pharo, Smalltalk Tagged: NeoCVS, Pharo, RÉSILIENCE, Roassal, Sénégal, Smalltalk

Benoit St-Jean - Lego Mindstorms et Phratch

Un projet qui réunit le meilleur des deux mondes : Smalltalk (Phratch) et Lego Mindstorms!


Classé dans:Pharo, Smalltalk Tagged: Lego Mindstorms, Pharo, Phratch, Scratch, Smalltalk

Benoit St-Jean - NBSQLite3 et les dates

April 13, 2015

Cincom Smalltalk - The 23rd International Smalltalk Joint Conference − Call for Contributions

The 23rd International Smalltalk Joint Conference will be held in Brescia, Italy on July 13-17, 2015, and conference organizers are seeking conference contributions.

Pharo News - Success Story: Quuve

<p>Quuve is a portfolio management and research platform for securities investors. It is a virtualized, scaleable, web application developed with Pharo and deployed on GemStone/S. More information at <a href="http://pharo.org/success/Quuve">http://pharo.org/success/Quuve</a>.</p>

Pharo News - Success Story: Quuve

<p>Quuve is a portfolio management and research platform for securities investors. It is a virtualized, scaleable, web application developed with Pharo and deployed on GemStone/S. More information at <a href="http://pharo.org/success/Quuve">http://pharo.org/success/Quuve</a>.</p>

April 12, 2015

Benoit St-Jean - Qui et où êtes-vous?

Il y a une mèche que ça n’a pas été fait : allez mettre à jour vos informations (ou vous ajouter!) sur la page des Squeakers si vous en êtes un et dites-nous où vous êtes!


Classé dans:Smalltalk, Squeak Tagged: Smalltalk, Squeak, Squeakers

Benoit St-Jean - Graphiques et cartes géographiques

Un exemple simple qui montre comment intégrer des graphiques à des cartes géographiques avec Roassal.


Classé dans:Pharo, Smalltalk Tagged: carte, cartes géographiques, géographie, Pharo, Roassal, Smalltalk

Benoit St-Jean - GTSpotter à l’oeuvre

Un exemple des possibilités qu’offre GTSpotter.


Classé dans:Pharo, Smalltalk

Benoit St-Jean - RSqueak/VM

On annonce des progrès significatifs et très intéressants du côté de RSqueak/VM, cette machine virtuelle pour Squeak écrite en Python!  Les derniers résultats ici!


Classé dans:Python, Smalltalk, Squeak, VM Tagged: machine virtuelle, Python, Smalltalk, Squeak, VM

April 11, 2015

Torsten Bergmann - RSqueak/VM - A research VM for Squeak/Smalltalk

Noury Bouraqadi - Writer Robot Using Lego Mindstorms EV3 and Phratch

A group of our students implemented this nice Writer Robot as part of a project where they learn programming using Phratch.

Smalltalk Jobs - Smalltalk Jobs – 4/10/15

  • Warren, NJSmalltalk developer developer through Exlarate LLC
    • Required Skills:
      • Bachelor’s degree in a computer related field or equivalent experience
      • 5+ years of experience developing using Smalltalk
      • Excellent planning/organizational, problem-solving, and analytical skills
      • Excellent communication skills
      • Basic presentation skills
      • Basic decision-making skills
      • Basic leadership skills
      • Must be able to maintain a high degree of accuracy and confidentiality
      • Some travel may be required, including overnight stays
    • Wanted Skills:
      • Basic knowledge of insurance and financial services products
      • Basic knowledge of business unit applications preferred
      • Excellent time management skills
    • Additional listings: Net2Source, Avance Consulting, Concept Software & Services
  • Omaha, NESmalltalk Analyst Programmer through Compunnel Software Group
    • Required Skills:
      • 5+ years of experience working on VisualAge Smalltalk
      • Excellent knowledge on OOPS
      • Good knowledge on Unix Shell Scripting – Korn Shell
      • Excellent knowledge on XML
      • An understanding of Webtechnology and know how to build web forms using Smalltalk
      • Very good analytic skills and should be a quick learner
      • Would be required to write Unit Test cases and Acceptance test cases
    • Wanted Skills:
      • Exposure to Test driven development
      • Exposure to Java and C
    • Additional listings: Ordusion Technologies, IDC, ISL Techsolutions, Compunnel Software Group, Compunnel Software Group, XDuce, EApps Tech, Kutir
  • Tualatin – near Portland, OregonSr Software Engineer at Lam Research
    • Required Skills:
      • A minimum of 8 years of related experience with a Bachelor’s degree or equivalent; or 6 years and a Master’s degree; or a PhD with 3 years of experience; or equivalent experience.
      • At least one year experience of software development with SmallTalk software language.
      • Experience of software development on semiconductor equipment
      • Experience with Linux administration
      • Real-time platforms (RT Java in particular)
      • Strong written and verbal skills are a strict requirement. Members of the team are expected to write prolifically and write well.
      • This position involves travelling to various sites supporting customers.
    • Wanted Skills:
      • Software development on ALD semiconductor equipment
      • Multiple OO languages (and large-scale systems designed in said languages)
      • Distributed control systems
      • Factory automation interfaces highly preferred
      • Creating and evolving software frameworks
      • Well-written technical blog or project documentation on GitHub is a strong plus
    • Additional listings: Lam Research
  • Sydney, AustraliaSoftware Engineer at Suncorp
    • Required Skills:
      • Highly experienced in Smalltalk Development
      • Excellent Object Oriented Programming
      • Excellent Business Communicator
    • Wanted Skills:
      • Commercial experience in Financial Industry

Updates on 4/11/15, 4/15/15, 4/16/15: Added listings for the position in Omaha, NE.

Updates on 4/15/15, 4/16/15: Marked out listings for the position in Omaha, NE.

Updates on 4/15/15: Marked out listings for the position in Warren, NJ.

Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed


Filed under: Employment Tagged: jobs, Smalltalk, Smalltalk jobs

April 10, 2015

Torsten Bergmann - NBSQLite3 Date Time Handling

April 09, 2015

Pierce Ng - NBSQLite3 Date Time Handling

SQLite does not support date/time as a built-in data type. Instead, SQLite provides date and time functions to deal with ISO 8601-format strings, floating point values representing Julian days, and Unix epoch time integers.

I’ve added date/time handling to NBSQLite3, so that storing a DateAndTime object results in an ISO 8601 string in the database, and reading such a string from the database, provided the column type is declared as DateTime, yields a DateAndTime object.

Here’s an example using the low-level API:

| dt db stmt |

dt := DateAndTime year: 2015 month: 4 day: 1.

db := NBSQLite3BaseConnection openOn: ':memory:'.
[
    db basicExecute: 'create table x (xv datetime)'.
    db basicExecute: 'begin'.
    stmt := db prepare: 'insert into x values (?)'.
    stmt at: 1 putDateTime: dt.
    stmt step. stmt finalize.
    db basicExecute: 'commit'.

    stmt := db prepare: 'select xv from x'.
    stmt basicExecute: [ :row |
        | v |
        v := row dateTimeAt: 0.
        Transcript show: v year asString; cr.
        Transcript show: v month asString; cr.
        Transcript show: v dayOfMonth asString; cr ].
    stmt finalize.
] ensure: [ db close ]

And here’s the example using the high-level API:

| dt db rs v |

dt := DateAndTime year: 2015 month: 4 day: 1.

db := NBSQLite3Connection openOn: ':memory:'.
[
    db basicExecute: 'create table x (xv datetime)'.
    db basicExecute: 'begin'.
    db execute: 'insert into x values (?)' with: (Array with: dt).
    db basicExecute: 'commit'.

    rs := db execute: 'select xv from x'.
    v := (rs next) at: 'xv'.
    Transcript show: v class asString; cr.
    Transcript show: v year asString; cr.
    Transcript show: v month asString; cr.
    Transcript show: v dayOfMonth asString; cr.
    rs close
] ensure: [ db close ]

Pharo Weekly - Pharo beautiful explanation

http://www.slideshare.net/StephanEggermont/pharo-devnology20150401

And a narrative:

Pharo, the Immersive Programming Experience

Why do we choose to use Pharo? We feel that Pharo
provides the best way to combat complexity in
software development.

As long as the number of software developers paid to
make software smaller and throw away code is a lot
smaller than the number of developers paid to add
code, the software we deal with on a daily basis will continue
to grow.  This inevitably leads to an increase in the
complexity of the systems we build. This complexity is
problematic because decision making in difficult
situations is biased (1), using first fit heuristics instead
of best fit.

An interesting observation (2)  is that successful software
tends to have technical debt. If a software system is
successfull, the market pressure to deliver more and faster
than technically advisable is difficult to resist. When growing
very fast, it can make sense to make choices that enable
short-term growth that will need refactoring later. Additionally,
an architecture that is optimal for a small system is not
ideal for a large system and vice-versa.

So, what can we do? There are several interesting models dealing
with complex software systems. Let’s check a few of them, and
see what Pharo has to offer there.

The Cynefin framework (3) categorizes the problem space into
5 domains:
– Obvious, where the relationship between cause and effect is obvious
to all;
– Complicated, where the relationship between cause and effect requires
analysis and/or the application of expert knowledge;
– Complex, where the relationship between cause and effect can only be
perceived in retrospect;
– Chaotic, where there is no relationship between cause and effect
– Disorder, where the type of causality is unknown.
Each domain needs a different approach. In the complex domain
the approach is Probe, Sense, Response, or run multiple safe-to-fail
experiments simultaneously and see how the system responds.

Pharo is well-suited to doing experiments and prototyping.

It offers fast feedback with instantaneous compilation of the
currently edited method, optionally running an autotest on the
changed code.

The system contains all the source code of all the tools, and they are
designed to be quickly customizable by the individual developer.
A stated goal is to be able to build a custom tool in 10 minutes.

Pharo immerses you in a sea of objects and provides you with
lots of different ways of looking at them.
The late binding allows manipulating these objects at runtime,
even modifying the runtime stack.

Real Options (4) provides a decision model based on
– Options have Value
– Options Expire
– Never commit early unless you know why

Pharo embraces this model. Code is compiled as late as
possible, in the running system. This makes it possible to
use information available only then to customize behaviour

Behaviour is triggered only by message passing, and the
receiving object decides what to do with a message.
Sending an object a message it does not understands
is caught at runtime and can be dealt with in several ways.
It makes it easy to create proxies and can be used to
learn objects new behaviour.

Debugger-Driven-Design is an approach unique to smalltalk systems.
It makes it possible to design the way objects communicate while
implementing it. It supports a superior way of doing
test driven development.

Small is Beautiful (5) is something that is very much applicable
to software. Software systems suffer from diseconomies of scale.

Pharo uses a very simple and orthogonal language, using a
very small set of constructs.

But this very small set of constructs contains all the needed
features for building highly complex, understandable and reusable
software architectures.

This reduces the cost of building
custom tools and makes it possible to cost-effectively  provide
such an advanced environment. The systematic refactoring
applied over many years pays off in a very “dense” library
that makes it possible to solve problems writing a very low
number of lines of code.

The state of the art in mainstream software development
to battle complexity is reuse at the application level, building
systems out of large-grained components (database, web server).

Pharo supports reuse at a much lower granularity.
It has lots of small domain specific languages to deal
with specific problems. Because smalltalk has so little
syntax and supports fluent interfaces, these languages
support describing problems and their solutions in a
language near to that of the domain expert.

All software development environments support
programming yourself into a corner. Making  decisions
that turn out to be bad is inevitable when building
complex systems. Being able to program yourself out
of that corner again makes it possible to approach
a problem without fear.

Pharo offers easy meta programming and a code
rewriting engine to help undoing bad design decisions
and and cleaning up large amounts of code in a controlled
way.

The choices made by the Pharo project put it on the
left hand side on the value chain map (6). suitable for
innovation, focusing on effectiveness instead of
efficiency.

Pharo is an open source project, supported by the
Pharo Consortium. It is both a research vehicle and a
platform for commercial software. We use continuous
integration to make sure that the innovations from
research don’t destabilize commercial developments.
Next week we hope to release Pharo 4, and in a few
months the much faster new “Spur” vm with support
for 64 bits.

This was an introduction presentation for the Devnology
workshop of April 1. 2015. Devnology is a Dutch
group of people interested in improving software
development, organizing a monthly meetup.

(1) Gary Klein (1999) Sources of Power: How People Make Decisions.

(2) @meekrosoft, Mike Long (Long Life Software), 2013,
Cleaning Code – Tools and Techniques for legacy restoration projects

(3) Dave Snowden
http://cognitive-edge.com/

(4) Chris Matts and Olav Maassen, Committment, the Book.
Expands on the ideas articulated by Kent Beck in
“Extreme Programming Explained, Embrace Change”
http://commitment-thebook.com/

(5) E.F. Schumacher, (1973) Small is beautiful: A Study of Economics
As if People Mattered.

(6) Simon Wardley, http://blog.gardeviance.org/


Pharo Weekly - Preparing the release…

40598
15315 Inspecting Slots raises an error
https://pharo.fogbugz.com/f/cases/15315
40597
15308 Bugfix and test for BooleanSlot
https://pharo.fogbugz.com/f/cases/15308

40596
15306 EyeInspectorTest pollutes world with left open windows
https://pharo.fogbugz.com/f/cases/15306

15282 Cannot run the image with the new bytecode set.
https://pharo.fogbugz.com/f/cases/15282
40595
15287 RBNamespaceTest>>#testModelImplementorsSenders
https://pharo.fogbugz.com/f/cases/15287
40594
15278 Filtering on a Dynamic Group throws a DNU
https://pharo.fogbugz.com/f/cases/15278

15295 TickDialogWindow open invokes not existing method
https://pharo.fogbugz.com/f/cases/15295

40593
ConfigurationOfRubric

40592
15280 issue grabber should use new tracker app
https://pharo.fogbugz.com/f/cases/15280

15234 monticello is not showing right status when working with branches
https://pharo.fogbugz.com/f/cases/15234

40591
15275 Small cleanup in Slot examples
https://pharo.fogbugz.com/f/cases/15275

40590
15269 a simple BooleanSlot example
https://pharo.fogbugz.com/f/cases/15269

15234 monticello is not showing right status when working with branches
https://pharo.fogbugz.com/f/cases/15234

40589
15268 Categorise some uncategorized methods in Slot examples
https://pharo.fogbugz.com/f/cases/15268

15261 Generator: Move example from comment to method
https://pharo.fogbugz.com/f/cases/15261

15266 browser version in nautilus without a method selected throws a DNU
https://pharo.fogbugz.com/f/cases/15266
40588
15253 URL to book in Tutorial is wrong
https://pharo.fogbugz.com/f/cases/15253

14974 failing test testScrollToLargeX
https://pharo.fogbugz.com/f/cases/14974

15241 Nautilus does not display catalogDescrption help text for many packages when moused over/clicked
https://pharo.fogbugz.com/f/cases/15241
40587
ConfigurationOfRubric

– 15219 #testClassDescriptionRespectsPolymorphismWithTraitDescription fails due to GT Extension
https://pharo.fogbugz.com/f/cases/15219
– 15137 Remove Morphic Halos for Bricks
https://pharo.fogbugz.com/f/cases/15137
– 15201 Darktheme default cursor color is black. Unreadable.
https://pharo.fogbugz.com/f/cases/15201
– 15226 spotter: preview for items without a preview only shows “Loading…”
https://pharo.fogbugz.com/f/cases/15226
– 14541 Editing the default inspector window size
https://pharo.fogbugz.com/f/cases/14541/
– 15214 Playground does not have window menu
Playground does not have window menu
– 14569 GTInspector should do live updates of objects and their slots
https://pharo.fogbugz.com/f/cases/14569/
(inspect ‘World activeHand’ and move mouse for a quick demo)

40586
13201 Hard to start a tutorial in Pharo
https://pharo.fogbugz.com/f/cases/13201

15240 Stuck SHTextStyler semaphores
https://pharo.fogbugz.com/f/cases/15240

15238 Add an assertion to check if a collection has same elements as another collection
https://pharo.fogbugz.com/f/cases/15238
40585
15232 ByteString and WideString dont agree on isAsciiString
https://pharo.fogbugz.com/f/cases/15232

14319 Ctrl + shift + F in the text pane does not work on mac (but on windows)
https://pharo.fogbugz.com/f/cases/14319
40584
15233 Inspecting objects yields MessageNotUnderstood: MorphTreeColumnButton>>isDefault error
https://pharo.fogbugz.com/f/cases/15233

15234 monticello is not showing right status when working with branches
https://pharo.fogbugz.com/f/cases/15234
40583
14344 Delay refactoring (part 3) – changeout mutex scheduling for semaphore scheduling
https://pharo.fogbugz.com/f/cases/14344

15180 Update Pharo Help topic about spotlight shortcut
https://pharo.fogbugz.com/f/cases/15180

40582
13761 Fraction floating pointer cannot be debugged
https://pharo.fogbugz.com/f/cases/13761

15215 Prevent the World locking due to multiple modal dialogs open
https://pharo.fogbugz.com/f/cases/15215

40581
13017 Class renaming does not update textual class definition
https://pharo.fogbugz.com/f/cases/13017

15156 remove AST Interpreter
https://pharo.fogbugz.com/f/cases/15156

40580
15210 load new configuration of Athens 3.1
https://pharo.fogbugz.com/f/cases/15210
40579
15221 PropertySlot: Tests for removing PropertySlots
https://pharo.fogbugz.com/f/cases/15221

15215 Prevent the World locking due to multiple modal dialogs open
https://pharo.fogbugz.com/f/cases/15215

40578
15222 Integrate GTools
https://pharo.fogbugz.com/f/cases/15222

40577
15190 Nautilus incorrectly flags Error classes as “missing class comments”
https://pharo.fogbugz.com/f/cases/15190

14924 Failing tests: testClassDescriptionRespectsPolymorphismWithTraitDescription
https://pharo.fogbugz.com/f/cases/14924

15189 “Extended search” vs. “Code search”
https://pharo.fogbugz.com/f/cases/15189

40576
12569 TextModel should not move scroll when accepting text
https://pharo.fogbugz.com/f/cases/12569

15141 More Cleanup after case 14353 Delay refactoring (part 2)
https://pharo.fogbugz.com/f/cases/15141

15207 Undo compiler change from case 15196
https://pharo.fogbugz.com/f/cases/15207

40575
15206 PostScript was not executed for issue 15182?
https://pharo.fogbugz.com/f/cases/15206

15203 Failing test: PackageTreeNautilusTest>>#testFullBrowseOnClass
https://pharo.fogbugz.com/f/cases/15203

14470 ReleaseTes>>#testObsoleteClasses failiing due to AnObsoleteClassForObsoleteTest
https://pharo.fogbugz.com/f/cases/14470
40574
15192 revert 14890
https://pharo.fogbugz.com/f/cases/15192

15151 TextInputFieldModel creation is slow
https://pharo.fogbugz.com/f/cases/15151

15196 Simple before and after links with minimal disturbance
https://pharo.fogbugz.com/f/cases/15196

15086 Ctrl + Arrow Behaviour
https://pharo.fogbugz.com/f/cases/15086

40573
15145 Spec TabManager selectedTab returns nil after first opening
https://pharo.fogbugz.com/f/cases/15145

15182 add basic inspector option
https://pharo.fogbugz.com/f/cases/15182

15195 test for redefined Slots on class side
https://pharo.fogbugz.com/f/cases/15195

15188 Color ariphmetical operations are broken
https://pharo.fogbugz.com/f/cases/15188
40572
15187 Endless loop on catching ZeroDivide for floats
https://pharo.fogbugz.com/f/cases/15187

13523 MNU protocolsFor: when show hierachy, show groups, click on a class
https://pharo.fogbugz.com/f/cases/13523

15186 revert 15171
https://pharo.fogbugz.com/f/cases/15186
40571
15097 Monticello repository UI not bolding unloaded packages after Lazy MCVersionInfo integrated
https://pharo.fogbugz.com/f/cases/15097

15179 Be able to browse dependent projects with Versionner
https://pharo.fogbugz.com/f/cases/15179
40570
14890 Browsing a different class should select by default the previously browsed method
https://pharo.fogbugz.com/f/cases/14890

15171 MNU: receiver of “getClass” is nil
https://pharo.fogbugz.com/f/cases/15171

15168 add DelayNullScheduler
https://pharo.fogbugz.com/f/cases/15168
40569
13295 Integrate Versionner 2.8
https://pharo.fogbugz.com/f/cases/13295
40568
15167 Fix: Class level should know about visible slots, layout knows all
https://pharo.fogbugz.com/f/cases/15167

15166 More tests for Slots
https://pharo.fogbugz.com/f/cases/15166

15172 Add String>>#allRangesOfSubstring:
https://pharo.fogbugz.com/f/cases/15172

15175 Add FindReplaceService>>#findNextSubstring:inTextMorph:
https://pharo.fogbugz.com/f/cases/15175

15165 Number>>#percent shouldnt force to Float
https://pharo.fogbugz.com/f/cases/15165

15169 add some GT views to ReflectiveMethod
https://pharo.fogbugz.com/f/cases/15169

40567
15115 Spotter should appear in the World menu
https://pharo.fogbugz.com/f/cases/15115

15163 #instVarNamed: mixed up
https://pharo.fogbugz.com/f/cases/15163
40565
15160 Move all deprecated Methods in Spec to Deprecated40 package
https://pharo.fogbugz.com/f/cases/15160

12991 navigation enhancement Path>>parentUpTo: aParentDirName
https://pharo.fogbugz.com/f/cases/12991

15110 Cleanup after case 14353 Delay refactoring (part 2)
https://pharo.fogbugz.com/f/cases/15110

40564
ConfigurationOfRubric

40563
13333 MCWorkingCopyBrowser>>addSlice references ScriptLoader
https://pharo.fogbugz.com/f/cases/13333

15158 Move deprecated Methods to Deprecated40 package
https://pharo.fogbugz.com/f/cases/15158

15083 We should have senders/implementors in the code menu
https://pharo.fogbugz.com/f/cases/15083

40562
15124 Move String>>#lastIndexOfPKSignature: to Compression
https://pharo.fogbugz.com/f/cases/15124

15147 change class comment template
https://pharo.fogbugz.com/f/cases/15147

14885 Cant change name of a Spec tab after it has been opened
https://pharo.fogbugz.com/f/cases/14885
40561
15126 NBExternalEnumeration needs to respect slots
https://pharo.fogbugz.com/f/cases/15126

14873 Morph>>#boundingBoxOfSubmorphs is sometimes too large
https://pharo.fogbugz.com/f/cases/14873

40560
14383 VersionnerProjectBrowser>>example does not work
https://pharo.fogbugz.com/f/cases/14383

15133 #downloadSources references PharoV30.sources
https://pharo.fogbugz.com/f/cases/15133
40559
15139 Update Zn+Zdc March 2015
https://pharo.fogbugz.com/f/cases/15139

40558
15122 resuming Delay failing under certain condition
https://pharo.fogbugz.com/f/cases/15122
40557
15128 Class comment and #open on TxWorkspace
https://pharo.fogbugz.com/f/cases/15128

14834 I cant add classVariable to context
https://pharo.fogbugz.com/f/cases/14834

40556
15064 DynamicSpecExample should use #label: instead of deprecated #text:
https://pharo.fogbugz.com/f/cases/15064

15125 PharoCommonTools>>#cleanUp changes collection while iterating
https://pharo.fogbugz.com/f/cases/15125

15045 GTPharo4Extensions should be merged into GT-SpotterExtensions-Core
https://pharo.fogbugz.com/f/cases/15045
40555
15057 Split command line support and command line handling support
https://pharo.fogbugz.com/f/cases/15057

15120 PropertySlot: test for installing two proportySlots. Make sure the share the same baseSlot
https://pharo.fogbugz.com/f/cases/15120
40554
14829 Spec MenuModel submenu not working
https://pharo.fogbugz.com/f/cases/14829

14972 SpecWindow: AboutText always shows WindowModels class comment
https://pharo.fogbugz.com/f/cases/14972

6488 DropListModel>>whenSelectionChanged:
https://pharo.fogbugz.com/f/cases/6488

15067 TestReviver open does not work in Pharo4.0 Latest update: #40535
https://pharo.fogbugz.com/f/cases/15067


April 08, 2015

Torsten Bergmann - Graphs on Maps

Need to map charts and graphs on top of a geographical maps? Then read here and look at the screenshot.

April 07, 2015

Smalltalk Jobs - Tester, Glasgow, UK

JPMorgan seek someone with experience in Smalltalk, UNIX and above-all, testing. They should be a good communicator and able to document test plans. Details are here.

I deduce this is to support the Kapital application.


Filed under: Employment