Planet Smalltalk

March 31, 2015

ESUG news - Spring CampSmalltalk at Nanaimo, Columbia, Canada

Last Camp in Nanaimo was amazingly successful and everyone had much fun. If you’re in the general pacific north-west region do consider coming along.

  • When: Saturday & Sunday April 25-26th
  • Location: Makerspace Nanaimo, 2221 McGarrigle Rd, Nanaimo

their website: http://makerspacenanaimo.org

Schedule/Presentations:

Non! We have the Space all weekend long and do not need to leave the place this time!

If you are interested in

  • any kind of ScratchOnPI projects
  • combining your Smalltalk project with any other peripheral device
  • would like to try a different Smalltalk out
  • just want to chat and meet old and new friends

....then this should be the perfect weekend to do this and come over to Makerspace in Nanaimo.

Please contact us directly if you have questions regarding travel or accomodationa. We got some valuable feedback from last CampSmalltalk's participants.

Please let us also know if you’re interested. Tim and Sebastian

David Buck (Simberon) - Canadian Smalltalk Programming Competition

I'm working with the Smalltalk Renaissance Program to run a Smalltalk coding competition to start in January 2016.  The competition is open to high school students across Canada with prizes of university scholarships we're calling the "James Robertson Memorial Scholarships".

The competition itself will run over 10 weeks in 5 rounds.  The challenge is to write a program to play a game we devise (details to be provided later).  At the end of each round, we produce a video of the top 30 scoring programs.  For the next round, we throw in a twist to the game.  The scholarships are awarded based on the scores of the final round.

This competition will be a lot of fun to play and to follow.  All materials and videos produced will be available for anyone to download.  Only student teams can actually compete.

We will be producing introductory videos to get the students familiar with Smalltalk, the development environment and the starting code we provide.

For this to work, we need the funding for the scholarships so we're running a Kickstarter project.  Come join us to help make this competition a success.

https://www.kickstarter.com/projects/1520902870/canadian-smalltalk-competition

Torsten Bergmann - Dr. Geo 15.04

Torsten Bergmann - Code as a Crime Scene

Noury Bouraqadi - 10th National Conference on Control Architectures of Robots (CAR 2015) Call for Papers

This conference is aimed at addressing important aspects of robot control architectures, with a specific emphasis on distribution, verification and validation, languages and modeling, and implementation of control architectures. It brings together researchers and practitioners from universities, institutions and industries, working in this field. It intends to be a meeting to expose and discuss gathered… Continue reading

Benoit St-Jean - Smalltalk en vrac (15)

Smalltalk

Dram 242 est en nomination aux Belgian Whisky Awards 2015 dans la catégorie Whisky Shop of the Year! Leur site web a été construit, vous l’aurez deviné, avec Smalltalk!

Pharo

Sondage : vous utilisez Pharo sur quelle plate-formes?

SmallWorlds, un jeu d’aventure en mode texte, a été porté de la version Dolphin à Pharo !

DynaCase : un outil pour faire de la modélisation et des diagrammes UML. Quelques exemples (ici et ici) de ce que l’outil peut faire.

Vous désirez générer des noms de fichiers avec un incrément comme extension de façon à avoir des noms uniques et ordonnés?  Il existe VersionedFile!

De nouveaux chapitres pour les divers livres reliés à Pharo sont disponibles!

 


Classé dans:Dolphin, Pharo, Smalltalk Tagged: Belgian Whisky Awards, Belgique, diagrammes, Dolphin, Dram 242, DynaCase, extension, fichiers, livres, modélisation, OS, Pharo, plate-formes, Smalltalk, SmallWorlds, sondage, UML, VersionedFile, whisky

Torsten Bergmann - Poll: Which OS do you use for Pharo

Which OS do you use for running Pharo. Here is the poll.

Torsten Bergmann - Smalltalk and Whisky

Dram 242 is nominated for the Belgian Whisky Awards 2015 in the category Whisky Shop of the Year! The online shop is powered by Smalltalk.

Torsten Bergmann - DynaCase modelling for Pharo

DynaCase, UML modelling in Pharo with ROASSAL. Look at the project on GitHub or the pics in Twitter.

Torsten Bergmann - Quality Assistant for Pharo

A quality assistant run SmallLint rules on the code that you modify, and notify about the critics right in the system browser of Pharo. Read more.

March 30, 2015

Torsten Bergmann - Versioned files in Pharo

Nice project from Norbert to provide versioned files:  

'test.text' asVersionedFile writeStreamDo: [:s | s nextPutAll: 'HelloWorld' ]

will create files:

  •      test.txt.1 
  •      test.txt.2 
  •      ... 


 anytime you run it. And a test.txt.seq with the current number. Useful.

March 29, 2015

Torsten Bergmann - Pharo - some new book chapters

Some new book chapters on Pharo projects: Teapot, Mustache and TinyChat as well as more on ZincClient

Torsten Bergmann - SmallWorlds

SmallWorlds is a framework for Text Adventure Games In Smalltalk originally from Dolphin Smalltalk. Looks like it is now ported to Pharo.

Benoit St-Jean - QualityAssistant

Benoit St-Jean - iBizLog

iBizLog : un autre succès Pharo!

La liste complète des « Success Stories » de Pharo est ici.


Classé dans:Pharo, Smalltalk Tagged: Pharo, réussites, Smalltalk, Stories, succès, Success

ESUG news - Moose at Breathing Code Conference (May 5th)

What is Breathing Code?

Breathing Code is a conference at the intersection of art, performance and computer programming.

Time & Place

The conference will take place in Frankfurt, Germany. It will start with an pre-event party on May 4, 2015. All conference sessions will happen on May 5, 2015.

What’s the conference about?

We aim to bring together a diverse set of presenters who all have one thing in common: They will change program code live on stage!

Be it that they show their approach on how they solve a particular problem and maybe showcase a specific set of tools while doing so.

This conference showcases diverse aspects of live programming. We want to explore what live coding means as an interface between humans and computers.

Smalltalk at Breathing Code: Live Data Analysis with Moose

Developers are data scientists. Or at least, they should be.

In this talk, I'll show live examples of how software engineering decisions can be made quickly and accurately by building custom analysis tools that enable browsing, visualizing or measuring code and data. All shown examples make use of the Moose analysis platform.

http://breathing-code.de/program.html#data-analysis-moose

Pharo News - Moose and Pharo at Breathing Code Conference

<p><strong>What is Breathing Code?</strong></p> <p><a href="http://breathing-code.de">Breathing Code</a> is a conference at the intersection of art, performance and computer programming.</p> <p><strong>Time &amp; Place</strong></p> <p>The conference will take place in Frankfurt, Germany. It will start with an pre-event party on May 4, 2015. All conference sessions will happen on May 5, 2015.</p> <p><strong>What’s the conference about?</strong></p> <p>We aim to bring together a diverse set of presenters who all have one thing in common: They will change program code live on stage!</p> <p>Be it that they show their approach on how they solve a particular problem and maybe showcase a specific set of tools while doing so.</p> <p>This conference showcases diverse aspects of live programming. We want to explore what live coding means as an interface between humans and computers.</p> <p><strong>Smalltalk at Breathing Code: Live Data Analysis with Moose</strong></p> <p>Developers are data scientists. Or at least, they should be.</p> <p>In this talk, I'll show live examples of how software engineering decisions can be made quickly and accurately by building custom analysis tools that enable browsing, visualizing or measuring code and data. All shown examples make use of the Moose analysis platform.</p> <p><a href="http://breathing-code.de/program.html#data-analysis-moose">http://breathing-code.de/program.html#data-analysis-moose</a></p>

Pharo News - Moose and Pharo at Breathing Code Conference

<p><strong>What is Breathing Code?</strong></p> <p><a href="http://breathing-code.de">Breathing Code</a> is a conference at the intersection of art, performance and computer programming.</p> <p><strong>Time &amp; Place</strong></p> <p>The conference will take place in Frankfurt, Germany. It will start with an pre-event party on May 4, 2015. All conference sessions will happen on May 5, 2015.</p> <p><strong>What’s the conference about?</strong></p> <p>We aim to bring together a diverse set of presenters who all have one thing in common: They will change program code live on stage!</p> <p>Be it that they show their approach on how they solve a particular problem and maybe showcase a specific set of tools while doing so.</p> <p>This conference showcases diverse aspects of live programming. We want to explore what live coding means as an interface between humans and computers.</p> <p><strong>Smalltalk at Breathing Code: Live Data Analysis with Moose</strong></p> <p>Developers are data scientists. Or at least, they should be.</p> <p>In this talk, I'll show live examples of how software engineering decisions can be made quickly and accurately by building custom analysis tools that enable browsing, visualizing or measuring code and data. All shown examples make use of the Moose analysis platform.</p> <p><a href="http://breathing-code.de/program.html#data-analysis-moose">http://breathing-code.de/program.html#data-analysis-moose</a></p>

March 28, 2015

Benoit St-Jean - Chord Keyboard

Benoit St-Jean - Quuve

Un autre succès Pharo : Quuve.


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

ESUG news - [Job] Buenos Aires: Developer at JP Morgan

Job Description: Kapital Financial Developer - Associate, based in Buenos Aires.

JP Morgan is looking for Smalltalkers working on the Kapital project.

More information here

March 27, 2015

Benoit St-Jean - Division et bits

Un excellent article sur les méandres et les subtilités de la division et des opérations de « bit shift« .


Classé dans:Pharo, Smalltalk, Squeak Tagged: arithmétique, bit, division, Pharo, shift, Smalltalk

Pharo Weekly - Quality Assistant

Dear Pharo users,

As you already know I am working on providing better code quality support in Pharo. You can use Code Critics in Pharo to detect bad practices and potential bugs. But launching the Critics Browser and running it on your code every now and then requires additional effort which demotivates many people in doing it.

I want to present you a compact tool called Quality Assistant
https://github.com/Uko/QualityAssistant#quality-assistant-𝑏𝑒𝑡𝑎-

It runs SmallLint rules on the code that you save and provides you with a critic feedback directly in the place where you code: the Nautilus Browser.

Quality Assistant is available for Pharo 4 from the Configuration browser. Please read about how to set it up here: https://github.com/Uko/QualityAssistant#set-up

I plan to introduce more features in the future and your feedback is much appreciated.

Cheers!
Uko

Nicolas Cellier - Is bitShift: equivalent to division in Smalltalk? And in Slang?

Let's try it in Squeak/Pharo:

(1 to: 8) allSatisfy: [:shift |
    (-255 to: 255) allSatisfy: [:e | (e//(1<<shift) ) = (e >> shift)]]

-> true

Isn't it surprising? It is well known that arithmetic shift for negative numbers is NOT equivalent to integer division (quotient of Euclidean division). See Non-equivalence_of_arithmetic_right_shift_and_division

Let's see. Above article assumes that:
  • negative are represented in 2-complement. We can assume that in Smalltalk for every bit operation (in fact large integers are represented as sign-magnitude, and we emulate two-complement but that's a detail) ;
  • bitShift: is well defined for negative and is propagating the sign bit. Oh yes it is, integers are not bounded and we assume an infinite sequence of 1 left of negatives, so what else would be propagated ;
  • the quotient is rounded toward zero.
Ah the last point is explaining the difference with common knowledge: // is not rounding toward zero, it's rounding toward negative infinity.

If we use quo: instead, then the answer is false and matches wikipedia's answer.

What about Slang? Slang is a subset of Smalltalk which can be translated to C code and which is used for generating the Squeak/Pharo Virtual Machine.

We must have a look at initializeCTranslationDictionary method in CCodeGenerator from the VMMaker package. It maps // to C operation / and \\ to C operation %. Ouch, but / is rounding toward zero as quo: does, and % behaves like rem:.

So what is true in Smalltalk is NOT in Slang. Too bad that we did not use quo: and rem: in Slang, we did not even map them!

This kind of mismatch gave us a famous bug once upon a time. Since right shift was for historical reason translated as a logical shift ((unsigned) a >> b), we thought we could just use // for arithmetic shifts, and the worse thing is that when simulating the Slang code, all was working as expected... Alas not in the VM once compiled.

Today, for the purpose of eliminating false positive warning in dead branches, I was about to generalize constant folding like bindVariableUsesIn:andConstantFoldIf:in: of TSendNode... This method is evaluating the constant in Smalltalk and is generating the value in C. This will work as long as no one mix a negative constant expression with //, \\ or >>. Otherwise, the same expression might well lead to two different results in the generated code, depending on the inlining level! For example, self minSmallInteger + 1 // 2 might well lead to a tricky variant of this bug.

The right thing would be to write slang exclusively with quo: and rem: and to change the generation of >> since we can allways force the logical one by sending a asUnsigned >> b. We can catch all the senders at runtime with a halt, but it's tedious... And there is more than a branch of VMMaker.

If we really insist on using a//b, it translates as:
(a/b)-(int)(a & (((unsigned)a)>>(sizeof(int)*8-1))
 But adopting the C philosophy, we ain't gonna pay for what we don't buy ;)


March 26, 2015

Ricardo Moran - Gifts from Sweden!

Hola, amigos! Espero que anden bien.

Quiero agradecer a Tobii (la compañía líder en captura de movimientos oculares) por obsequiarme un kit de desarrollo Tobii EyeX. Planeo agregar este dispositivo a Physical Etoys. Creo que va a traer un nuevo mundo de posibilidades a nuestra plataforma. Estén al tanto para más noticias. Que se diviertan!

Hi, friends! I hope you are doing good.

I am thanking Tobii (the world’s leader eye tracking company) for giving me a Tobii EyeX Dev Kit. I am planning to add this device to Physical Etoys. I believe that it would bring a new world of possibilities for our platform. Stay tuned for more news and have fun!

 

Tobii_Eye_Experience_EyeXBox_460x300

Pierce Ng - One Time Passwords

I bought a Yubikey device and am going to write a Pharo library for it. Meanwhile, I discovered that Richard Prinz has an implementation of RFC 6536 Time-based One Time Passwords for Pharo.

Benoit St-Jean - Time-based One-time Password

Si vous avec besoin d’une implémentation de Time-based One-time Password (TOTP), il y a ce package pour Pharo. Les spécifications de l’algorithme sont décrites dans le RFC 6238.


Classé dans:Pharo, Smalltalk Tagged: mot de passe, Pharo, RFC 6238, Smalltalk, Time-based One-time password, TOTP

Pharo News - Event in Bern on March 31: Bloc + working session on Pharo IDE

<p>Choose event in Bern on March 31: alain plantec on Bloc and working session on Pharo IDE.</p> <p>On March 31, we will have a one day of Pharo in Bern:</p> <ul><li> 10:15 - 11:00 Talk by Alain Plantec on Bloc: Reinventing Morphic (<a href="https://www.eventbrite.com/e/bloc-reinventing-morphic-choose-talk-tickets-5790681083">Registration</a>)</li><li> 11:00 - 17:00 Working session on the Pharo IDE (<a href="https://www.eventbrite.com/e/pharo-ide-choose-working-session-tickets-16283404100">Registration</a>)</li></ul> <p>The event will be held at the Software Composition Group: Schützenmattstrasse 14, Room 107, Bern</p> <p>The event is sponsored by CHOOSE a subgroup of the Swiss Informatics Society and hosted by the Software Composition Group at the University of Bern. They are primarily organized for CHOOSE and SI members, but the events are open for other students and professionals as well.</p>

Pharo News - Event in Bern on March 31: Bloc + working session on Pharo IDE

<p>Choose event in Bern on March 31: alain plantec on Bloc and working session on Pharo IDE.</p> <p>On March 31, we will have a one day of Pharo in Bern:</p> <ul><li> 10:15 - 11:00 Talk by Alain Plantec on Bloc: Reinventing Morphic (<a href="https://www.eventbrite.com/e/bloc-reinventing-morphic-choose-talk-tickets-5790681083">Registration</a>)</li><li> 11:00 - 17:00 Working session on the Pharo IDE (<a href="https://www.eventbrite.com/e/pharo-ide-choose-working-session-tickets-16283404100">Registration</a>)</li></ul> <p>The event will be held at the Software Composition Group: Schützenmattstrasse 14, Room 107, Bern</p> <p>The event is sponsored by CHOOSE a subgroup of the Swiss Informatics Society and hosted by the Software Composition Group at the University of Bern. They are primarily organized for CHOOSE and SI members, but the events are open for other students and professionals as well.</p>

March 25, 2015

Pharo Weekly - Changing the wheels on the car at 100km/h

Ben Coman refactored a core part of Delay and Delay are really central to a system like Pharo. His testimony highlights how we can be close to the system heart and improve it.

“One of the things that drew me to do the Delay refactoring, is simply that I could. That is, I was amazed that I could dig so deep so easily, see a path to improvement and effect change at a fundamental level. Excepting complexities with the Continuous Integration due to “changing the wheels on the car at 100km/h” (and one slip), it seems to have gone reasonably smoothly.  That sense of mastery is seductive.”