Planet Smalltalk

January 14, 2018

Torsten Bergmann - Woden2 for Pharo 7

The "World Dynamic Engine 2" running on Pharo 7. Read more.

Torsten Bergmann - Pharo Sprint dates 2018

Torsten Bergmann - Moose2Model 1.1.0

Pharo Weekly - BitTrex API for Pharo

Thanks everyone who advised on Zinc, REST, NeoJSON, HMAC & Libsodium
to help me on my way to implement an interface to the Bittrex bitcoin
exchange.  I’ve got to the point where I’m happy to make an initial
0.x release.  After all my years having fun hacking around Pharo, this
is my first (tiny) product. Hopefully it may grow. 🙂

The implementation is probably closest to a Command pattern
with a class per entry-point.  All the v1.1 entry points are
implemented except a few to deposit & withdraw money from the
exchange.  These are currently infrequent events for me and left for
manual action.

I’m optimistic that I’ll add a few more exchanges so I created a
github org to group them together.  Contributions welcome.

Please see quick start instructions here…
https://github.com/Traadh/bittrex

Torsten Bergmann - Pharo and Bittrex API

A Pharo/Smalltalk interface to the Bittrex API. The project is on Github and the announcement is here.

January 13, 2018

Pierce Ng - Seaside-REST APIs for RedditSt20

I've implemented RESTful APIs for RedditSt20 using Seaside-REST. The API endpoints are accessible using Curl:

% curl -X GET -H "Accept: text/json" http://127.0.0.1:8080/redditst20-api/latestLinks
<JSON output in one long line>

The same from Zinc, using NeoJSON to pretty-print:

NeoJSONWriter toStringPretty: 
  (NeoJSONObject fromString: 
    (ZnEasy get: 'http://127.0.0.1:8080/redditst20-api/latestLinks') contents)

Output:

[
	{
		"points" : 0,
		"url" : "http://postgresql.org",
		"created" : "2018-01-13T20:03:56.405254+08:00",
		"title" : "PostgreSQL",
		"id" : 9
	},
	{
		"points" : 0,
		"url" : "http://sqlite.org",
		"created" : "2018-01-13T20:03:56.404526+08:00",
		"title" : "SQLite",
		"id" : 10
	},
	{
		"points" : 0,
		"url" : "http://pharo.org",
		"created" : "2018-01-13T20:03:56.403656+08:00",
		"title" : "Pharo",
		"id" : 11
	}
]

Voting is implemented using POST:

% curl -X POST \
    -H "Accept: text/json" \
    -H "Content-Type: text/json" \
    http://127.0.0.1:8080/redditst20-api/11/voteUp  
{"Updated":"true"}
%                                                                           

Let's check out the highest ranking links:

NeoJSONWriter toStringPretty: 
  (NeoJSONObject fromString: 
    (ZnEasy get: 'http://127.0.0.1:8080/redditst20-api/highestRankingLinks') contents)

Here's the output:

[
	{
		"points" : 1,
		"url" : "http://pharo.org",
		"created" : "2018-01-13T20:03:56.403656+08:00",
		"title" : "Pharo",
		"id" : 11
	},
	{
		"points" : 0,
		"url" : "http://postgresql.org",
		"created" : "2018-01-13T20:03:56.405254+08:00",
		"title" : "PostgreSQL",
		"id" : 9
	},
	{
		"points" : 0,
		"url" : "http://sqlite.org",
		"created" : "2018-01-13T20:03:56.404526+08:00",
		"title" : "SQLite",
		"id" : 10
	}
]

To create a new link, use PUT:

% curl -X PUT \
    -H "Accept: text/json" \
    -H "Content-Type: text/json" \
    -d '{"title":"Glorp", "url":"http://glorp.org"}' \
    http://127.0.0.1:8080/redditst20-api/putLink   
{"Created":true}
%                      

And here it is:

[
	{
		"points" : 0,
		"url" : "http://glorp.org",
		"created" : "2018-01-13T20:15:15.569197+08:00",
		"title" : "Glorp",
		"id" : 12
	},
        ... 
]

Code is on STH. I plan to move it to GH anytime now.

Smalltalk Jobs - Smalltalk Jobs – 1/12/18

  • New York, NYSoftware Engineering (Job ID 180001133) at J.P. Morgan
    • Required Skills:
      • Bachelor’s degree in Computer Science, Engineering, Mathematics, or related field of study
      • 2 years of experience in the job offered or two 2 years of experience as a Computer Systems Analyst, Software Developer, or related occupation.
      • 2 years of experience with derivatives trading businesses
      • 2 years of experience with object oriented programming.
      • Cincom Smalltalk
      • GemStone/S 64 databases
      • Experience with object databases
      • PnL and risk management as it applies to interest rate derivatives.
      • FpML as it relates to interest rate derivatives.
      • Linear algebra and numerical analysis methods such as taylor series expansion to estimate and attribute risk and PnL delivery as applicable to pricing fixed income derivatives
      • Following defined development processes with specific documentation requirements such as SOX
      • Designing software solutions to support trading desk’s needs
  • Richland, WABWR Neutronics Codes & Methods Engineer II – IV-DES02933 (Multiple positions are available) at AREVA Front End Business Group
    • Required Skills:
      • Engineer II: BS in Nuclear Engineering plus 2-3 years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Engineer III: BS in Nuclear Engineering plus 3-5 years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Engineer IV: BS in Nuclear Engineering or related field plus 5-7 years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Basic experience and capabilities with MICROSOFT Office software products (WORD, EXCEL, etc.).
      • Must have a pro-active approach to problem identification and resolution.
      • Must have ability and attitude to learn a variety of new procedures, processes, and tools, while maintaining various stages of production.
    • Wanted Skills:
      • A wide range of other skills related to the position, including Smalltalk
  • Richland, WABWR Engineer IV – Advisory Engineer (Pipeline) – DES02833-PL (Multiple positions are available) at AREVA Front End Business Group
    • Required Skills:
      • Engineer IV: BS in Nuclear Engineering plus 5 – 7 years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Principal Engineer: BS in Nuclear Engineering plus 7-10 years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Advisory Engineer: BS in Nuclear Engineering plus 12+ years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Familiarity with computer systems, e.g., personal computers, HP workstations, UNIX, LINUX or other operating systems.
      • Proficient with C/C++ and FORTRAN computer languages.
      • Must possess good verbal and written communication skills.
      • Must have a pro-active approach to problem identification and resolution.
      • Must have ability and attitude to learn a variety of new procedures, processes, and tools, while maintaining various stages of production.
      • Must be able to work well in a fast-paced team environment.
      • Proficiency with MS WORD and EXCEL.
      • Familiarity with fundamentals of light water reactor (LWR) neutronics/thermal hydraulics numerical methods.
    • Wanted Skills:
      • A wide range of other skills related to the position, including Smalltalk
Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed

January 12, 2018

Pharo Weekly - 2018 next sprints…

Hi,
For Pharo sprints for the next months, we suggest these dates:
Jan 26
Feb 23
Mar 30
Apr 20
Mai 25
Jun 29
I have added the first one already to the events page:

Cincom Smalltalk - Cincomer to Lead Workshop at Upcoming Conference

On February 5-9, the OOP 2018 Conference in Munich, Germany will take place, and Cincom’s Helge Nowak will be giving a half-day tutorial on the subject of “Collaborating Mobs”. Collaboration […]

The post Cincomer to Lead Workshop at Upcoming Conference appeared first on Cincom Smalltalk.

Pharo Weekly - Woden for Pharo 7

We do have a working version of Woden for Pharo 7.
It would be great if you could try.
https://github.com/ronsaldo/woden2

On OSX, I did:
-=-=-=-=-=-=-=-=-=
git clone https://github.com/ronsaldo/woden2.git
cd woden2
./loadWoden2.sh
-=-=-=-=-=-=-=-=-=

It takes time to install & compile (~ 10 minutes?), but it works well.

Alexandre

January 10, 2018

January 09, 2018

Torsten Bergmann - OpenSmalltalk VM Meeting

Fabio Niephaus wants to organize a meeting on OpenSmalltalk VM. The agenda is yet to be finalized, but maybe Clément and/or Eliot may give an update on their work on Sista. Read more here if you are interested or check the doodle.

January 08, 2018

Smalltalk Jobs - CAE, Nottingham, U.K.

From the ad and location, I guess this is Romax, who use their own Smalltalk system to design high-performance car bodies, gearboxes and bearings.  They seek a permanent employee.

January 04, 2018

Pharo Weekly - Python3Generator and matplotlib

Hello,

My new year main resolution: stop keeping my side-projects for me.
It’s been like 1 year that I created these two projects, one coming from a refactoring of the other.
Now it is time to take time to announce them.
I initially come from Python world and during my bachelor & master, I really liked to use matplotlib to plot data using Python.
So I wanted to be able to use this Python module from Pharo. I did it by generating Python 3 code from Pharo and making Python 3 executing it. So, first I implemented everything in MatplotLibBridge package and then I split it in two package in order to be able to eventually create bridges to other Python 3 modules.
So, Python3Generator [1] is made for generating programatically Python 3 code from Pharo. Basically, it allows you to easily build a Python 3 AST,  to serialize it in Python 3 source code and eventually to execute it. For now you can transfer data from Pharo to Python (e.g. providing arguments to functions that are Pharo’s objects) but you can not retrieve data stored in Python variable from Pharo (but it should be possible, just I don’t need to do that for my bridge to matplotlib). Some examples are provided on the github’s README.
MatplotLibBridge [2] is made for creating plots using matplotlib [3] from Pharo. There is a bunch of examples of what you can do on the README. The two features from matplotlib I like the most are: 1. You can generate your plot in a lot of file formats (png, pdf, svg, ps, etc…) 2. It allows to embed LaTeX mathematical formulae everywhere in the plot (which can be really cool). All the possible plots in matplotlib are not available in Pharo’s side because I build parts of the bridge when I need them but it is not hard to do. I someone is interested in a plot type not available yet, please tell me.
So, it is announced, if someone want to do something with those, please do it!
Happy new year.
Regards,

Torsten Bergmann - Python3Generator for Pharo

A toolkit to generate Python 3 source code from Pharo: Python3 Generator for Pharo is available on GitHub.

January 03, 2018

Pharo Weekly - Stable Marriage problem Solver

Hello,

Some time ago I implemented a solver for the Stable Marriage problem [1] in Pharo [2]. Basically, in the stable marriage problem, you have two list of n element: a list of men and a list of women. Each person rank people of the other gender according to its preferences. The stable marriage algorithm finds the best matches between men and women according to all rankings.
It can be installed using:
Metacello new
    baseline: ‘StableMarriage’;
    load
Regards,
Julien

January 02, 2018

Pharo Weekly - Workaround Pharo6.1 Sierra incompatibility

 

On sierra and high sierra pressing A for a second and immediately pressing arrows may crash the system.

There is a workaround
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false​
Stef

Pharo Weekly - PLY parser/model

Hello again,

1 year ago I created a PLY (PoLYgon file format [1] ) parser/model in Pharo [2] using PetitParser.
I took some time to remove the dust it accumulated and to create a baseline so I announce it.
To install it:
Metacello new
    baseline: ‘PLY’;
    load.
It has tests and an example of usage in the README.
Regards,

January 01, 2018

Pharo Weekly - More named colors

Hi

Since for some experiences in moose we needed more named colors
I started to gather together some old extensions and I cleaned the implementation.
Now we have emacs colors and XKCD i.e around 1600 named colors.

Gofer new
smalltalkhubUser: ‘StephaneDucasse’ project: ‘Colors’;
package: ‘MoreColors’; load.
Color initializeNames

Now I would really like to see how we can model the notion of color palettes.

Stef

December 31, 2017

Pharo Weekly - FreeCell resurrection

Hi,

I fixed the old FreeCell code from Squeak to be able to run on Pharo 6 and 7.
How to load:
Metacello new
  baseline: ‘FreeCell’;
  repository: ‘github://pavel-krivanek/FreeCell/src’;
  load.
How to run:
FreeCell open.
Cheers,
— Pavel

December 30, 2017

Pharo Weekly - Best wishes for 2018

Only a few days left for 2017. Thanks to all who helped shaping Pharos future.
May the lighthouse be with you in 2018 as well:

World backgroundImage:
(ZnEasy
getJpeg: ‘https://spotlight.it-notes.ru/wp-content/uploads/2017/08/02c48424be88ee36d5300ad89033fd82.jpg&#8217;)
layout: #scaled

Have fun!

Bye

Torsten Bergmann

December 28, 2017

Smalltalk Jobs - Smalltalk Jobs – 12/28/17

  • Buenos Aires, ArgentinaSoftware Engineering – Axiom Developer through J.P. Morgan
    • Required Skills:
      • Advanced knowledge of application, data and infrastructure architecture disciplines
      • Understanding of architecture and design across all systems
      • Working proficiency in developmental toolsets
      • Ability to collaborate with high-performing teams and individuals throughout the firm to accomplish common goals
      • Proficiency in SmallTalk
      • Understanding of software skills such as business analysis, development, maintenance and software improvement
      • Strong Knowledge of Axiom platform programming
      • Knowledge Java or Python
      • Experienced in Oracle/SQL
      • Familiar with development tools such as Jenkins, GIT, AIM, etc
      • Experience with Agile/Jira methodologies
  • Los Alamos, NMProton Radiography and Computational Physics Postdoc at Los Alamos National Laboratory
    • Required Skills:
      • Ph.D. in physics, or a related field, within the past five years (or soon to be completed).
      • Demonstrated ability to conduct independent research in one or more of the following areas: imaging science, nonlinear optimization, high performance computing, scientific computing, nuclear physics or particle physics.
    • Wanted Skills:
      • Programming in C, Smalltalk or Python
      • Technical writing and public speaking
Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed

December 23, 2017

Marten Feldtmann - PUM – Updates everywhere

Even though I have not posted anything since October – we were working hard to rollout out our CATI-application to a customer – we did this just before Christmas to stay in the project timetable.

We switched to Gemstone/S 3.4.0 as our base development/deployment system. Several changes have been done since then:

  • The Python code generator had to be rewritten to be similar to the C#, ExtJS and Java generators – so the programming model ist now very similar on each platform. We decided NOT to follow the general Python principle – but to make function names equal on all supported languages
  • The first Java application has been integrated into our Gemstone/S system and is now using the PUM API/Model. We went through two iterations until our developers accepted the generated code.
  • On the modelling tool side – we were switching to VA Smalltalk 9.0.

Now we have four languages in our project and this seems to be getting a normal approach for all developers in this project. This is a good indication.

 


Filed under: Smalltalk Tagged: C#, Gemstone/S, Java, PUM, Python, Sencha ExtJS, Smalltalk

December 21, 2017

Pierce Ng - OpenSSL for Pharo on Github

I've migrated OpenSSL-Pharo to Github.

Metacello new
  baseline: 'OpenSSL';
  repository: 'github://PierceNg/OpenSSL-Pharo:master/src-st';
  load.

December 20, 2017

Pharo Weekly - OpenSSL-Pharo in Windows

Hi all,

OpenSSL-Pharo now works on Windows. Tested on Windows 10 with a fresh 32-bit
Pharo 6.1 zip package downloaded from pharo.org. On Windows this library uses
libeay.dll which is bundled with the Pharo VM.

Metacello new
baseline: ‘OpenSSL’;
smalltalkhubUser: ‘PierceNg’ project: ‘OpenSSL-Pharo’;
load.

And now I have added #macModuleName to the library and tested it successfully
with 64-bit Pharo on my Mac that runs Sierra.

Pierce Ng


Pierce Ng - OpenSSL for Pharo on Windows

OpenSSL-Pharo now works on Windows. Tested on Windows 10 with a fresh 32-bit Pharo 6.1 zip package downloaded from pharo.org. On Windows this library uses libeay.dll which is bundled with the Pharo VM.

Metacello new
  baseline: 'OpenSSL';
  smalltalkhubUser: 'PierceNg' project: 'OpenSSL-Pharo';
  load.