Planet Smalltalk

March 28, 2017

Smalltalk Jobs - Smalltalk Jobs 3/28/17

Two, count them, two jobs in Germany.

The first is somewhere in Germany.  They want 3-12 years of experience and needs data modeling.  This is finance related.

The second is close to Munich and the email is as follows:

Actually now we are still looking for more Smalltalker again.

Therefore today I turn to You and want to ask, it You know anybody, who has at least 2-3 Y. ST-experience (no matter which system) and wants to work for longer time in Germany, beginning in next 4-10 weeks.

I thank You for Your help in advance and look forward to interesting news from You.

Have a nice week!

Viele Grüße 

Best Regards

Pozdravy

Richard v. Lavante

Tomcat® GmbH IT·Consulting·Management

Tomcat® GmbH

Flughafen Oberpfaffenhofen

Friedrichshafener Str. 1

82205 Gilching

Tel. +49-(0)8105-771801-0

Fax. +49-(0)89-849544

Mobil: +49-(0)172-9778982

Mail: richard.v-lavante at the domain of tomcat.de.  You could also contact christian.mann at the same place.

www.tomcat.de 

Geschäftsführer: Dipl.-Ing.(univ.) Richard von Lavante

Firmensitz: D-82205 Gilching

Register: München HRB 85435

Tomcat® ist eingetragenes Warenzeichen der Tomcat® GmbH


Filed under: Employment

Pharo Weekly - Fossil and FileTree

Hi all,

I have written a simple integration of FileTree with Fossil to avoid the 2-step
Pharo- and shell-level work to add/delete/commit files.

At the operating system command prompt, init a new Fossil project:

os% mkdir ~/repo
os% cd ~/repo
os% fossil init myproject.fossil
project-id: 3c05c3016eeabf8e87816ee218c6a86d3c87b950
server-id: ff42bc86dba1a26b1d94b64685f7c09d02581617
admin-user: laptop-user (initial password is “1fe2ff”)

Open the repository:

os% mkdir ~/myproject
os% cd ~/myproject
os% fossil open ~/repo/myproject.fossil

In a fresh Pharo 6 image – I used v60411 – install FossilFileTree:

Metacello new
baseline: ‘FossilFileTree’;
repository: ‘github://PierceNg/FossilFileTree’;
load.

Write code in Pharo. Open Monticello Browser. Add a “fossilfiletree”
repository, using ~/myproject as the directory. Save to said repository
from within Monticello Browser. Done.

Full blog post here:

http://www.samadhiweb.com/blog/2017.02.28.fossil.filetree.html

Pierce


Torsten Bergmann - Google Summer of Code - Pharo

You are invited to contribute to Pharo - the amazing OpenSource immersive programming experience: Read more here.

March 27, 2017

Pharo Weekly - Smalltalk jobs in Germany

Hi guys

Tomcat is looking for Smalltalkers in Germany.

Requirements:

2-3 Y. ST-experience (no matter which system) and wants to work for longer time in Germany, beginning in next 4-10 weeks.

Contact them not me 🙂

richard.v-lavante@tomcat.de

christian.mann@tomcat.de

Stef


Pharo Weekly - [Consortium] 20 – 26 march 2017

Hello!

This is my weekly ChangeLog, from 20 March 2017 to 26 March 2017.
You can see it in a better format by going here: http://log.smallworks.eu/web/search?from=20/3/2017&to=26/3/2017

ChangeLog
=========

23 March 2017:
————–

*    Fixed (again!) build process for linux (libssh2 version was not correct).

22 March 2017:
————–

*    I made another pass to some problems on *icebeg>* : added a new “branch browser” to compare sources from remote
branchs and added a couple of fixes to make the system a bit stronger… still working on this 🙂

*    I spent some time again on VM building, where a couple of issues arised:

=== Build windows VM with cygwin instead mingw
[Nico Cellier](https://github.com/nicolas-cellier-aka-nice) moved the [OSVM](https://github.com/OpenSmalltalk/opensmalltalk-vm)
to cygwin as part of his effort to produce Win64 VMs (and to align PharoVM with the other VMs flavours built).

This was a cool work, but it requires some work for our side to properly build the [PharoVM](https://github.com/pharo-project/pharo-vm).

=== Fix a problem with SDL2 and linux
SDL2 version was upgraded, but there was a remaining problem when building it, so I needed to track down the
problem and fix it.

Overall, the process are ok now… nevertheless I cannot merge the changes to make them available for users
because with latest VM sources there are some problems here and there (not all tests pass). So I’m waiting
for Eliot 🙂

20 March 2017:
————–

*    I added edit of repositories to [Iceberg](https://github.com/npasserini/iceberg) 🙂

This is usefull when you make a mistake and do not locate sources properly when cloning or when you want to
re-locate repository after moving it in your disk.

cheers!
Esteban


Marten Feldtmann - PUM – Adding Java to the supported languages

This weekend was a Java weekend. Never really worked before with that language, but a customer wanted a Java interface for our product, so I had to implement a Java-8 generator to PUM.

More or less three days were needed (including learning all that Java usual stuff). I decided to use gjson as the JSON support library and on Saturday the first test application could be coded and it worked – and lot of time was needed to persuade gjson to do its job.

The structure is pretty simple – one need a base runtime jar file offering the needed http support and json support. PUM generates the code for another jar file containing the model and the main ApiClass.

Still more work is needed to make exception handling more comfortable and add more documentation to the source code.

After that success I started to rewrite the C# generator part to remove all the swagger code I generated and needed and make the C# part actually a clone of the Java part in terms of the structure. Here I use Json.Net as the supported Json library.

The main idea behind that is to get a proof of concept, that we would be able to write apps for Android or iPhones – using the Xamarin framework now available with VisualStudio 2015.

 

 


Filed under: Smalltalk Tagged: Gemstone, Java, Oracle, PUM

Smalltalk Jobs - Smalltalk Jobs – 3/26/17

  • Sungnam, South KoreaSoftware Engineer 3 at Lam Research
    • Required Skills:
      • B.S or Masters in Computer Science, Computer Engineering, Electronics or related field
      • Knowledge of embedded software development and design
      • Knowledgeable with communication protocols such: I2C, SPI, UART etc.
      • Excellent knowledge of Object Oriented Software implementation and design e.g.: Design Patterns and Finite State Machines
      • Strong software engineering skills: modular design, data structures and algorithms
      • Experience with Source Control and Development life cycles
      • Analytical approach to root cause analysis
      • Knowledge of multithreading is a must (preemptive thread scheduling)
      • Understanding of Networking/TCPIP
      • Ability to travel within USA, Europe, and Asia (total is less than 10%)
    • Wanted Skills:
      • Background in electronics and electrical engineering
      • Smalltalk experience
      • Experience with real-time operating systems
      • Experience in distributed embedded controls systems
  • Fremont, CASoftware Engineer 6 (72843) at Lam Research
    • Required Skills:
      • B.S or Masters in Computer Science, Computer Engineering, Electronics or related field
      • Knowledge of embedded software development and design.
      • Knowledgeable with communication protocols such: I2C, SPI, UART etc.
      • Knowledge of Object Oriented Software implementation and design e.g.: Design Patterns and Finite State Machines
      • Strong software engineering skills: modular design, data structures and algorithms.
      • Experience with Source Control and Development life cycles.
      • Analytical approach to root cause analysis
      • Knowledge of multithreading is a must (preemptive thread scheduling)
      • Understanding of Networking/TCPIP
      • Ability to travel within USA, Europe, and Asia (total is less than 10%)
    • Wanted Skills:
      • Background in electronics and electrical engineering
      • Smalltalk experience
      • Experience with real-time operating systems
      • Experience in distributed embedded controls system
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

March 24, 2017

Pharo Weekly - Enhancements for coming release

60427
18207 Breakpoints still held after a method/class with breakpoints is removed
https://pharo.fogbugz.com/f/cases/18207

19669 FastTable jumps to the selected element when its resized
https://pharo.fogbugz.com/f/cases/19669

19775 Bootstrapped image does not contain class comment of the Context class
https://pharo.fogbugz.com/f/cases/19775

60426
19788 sometimes external structures does not initialise properly OFFSET fields before use
https://pharo.fogbugz.com/f/cases/19788

19221 Rub Find And Replace can not search for “?”
https://pharo.fogbugz.com/f/cases/19221

19789 CI tests often fail on Windows
https://pharo.fogbugz.com/f/cases/19789

60425
19717 FileSystem workingDirectory wrong after image moved to a new folder
https://pharo.fogbugz.com/f/cases/19717

18578 MetacelloValidationError(MetacelloValidationIssue) printOn: rasies Warning #name
https://pharo.fogbugz.com/f/cases/18578

60424
19787 Athens crashes the VM
https://pharo.fogbugz.com/f/cases/19787
60423
19780 Announcer has bad class comment which reference dead link
https://pharo.fogbugz.com/f/cases/19780

17728 Integrate Travis Griggs TAG-SortFunctions
https://pharo.fogbugz.com/f/cases/17728

60422
19785 Athens crashes the VM
https://pharo.fogbugz.com/f/cases/19785
60421
19779 BaselineOfMorphic compiles own version of SystemSettingsPersistence class>>#updateSettingNodes
https://pharo.fogbugz.com/f/cases/19779

19784 code loss when cancelling during save
https://pharo.fogbugz.com/f/cases/19784

19776 BaselineOfMorphic and BaselineOfUI both specify Polymorph-TaskbarIcons
https://pharo.fogbugz.com/f/cases/19776
60420
19777 BaselineOfUI compiles own version of RubScrolledTextMorph>>#font:
https://pharo.fogbugz.com/f/cases/19777

19772 BaselineOfIDE compiles own version of EpLostChangesDetector>>#startUp:
https://pharo.fogbugz.com/f/cases/19772

18784 FileList selected directory entry is not cleared after selecting a new directory
https://pharo.fogbugz.com/f/cases/18784

18871 DNU after showing about box of QA annotation question mark icon
https://pharo.fogbugz.com/f/cases/18871

19774 BaselineOfUI is compiling own version of Pragma>>#methodSelector
https://pharo.fogbugz.com/f/cases/19774
60419
19781 callback with return of void* leads to an invalid return
https://pharo.fogbugz.com/f/cases/19781

19783 prepare SDL2 for 64bits
https://pharo.fogbugz.com/f/cases/19783

19782 prepare Athens for 64bits
https://pharo.fogbugz.com/f/cases/19782

60418
19778 NaturalLanguageTranslator contains a class variable AllKnownPhrases in bootstrapped image
https://pharo.fogbugz.com/f/cases/19778

19773 BaselineOfMorphic compiles own version of Character>>#characterSet
https://pharo.fogbugz.com/f/cases/19773

19667 After removing of a package by Nautilus the empty extension protocols are still there
https://pharo.fogbugz.com/f/cases/19667

18252 debugit on “self” causes endless loop
https://pharo.fogbugz.com/f/cases/18252
60417
19770 FFIExternalStructurePlatformTests>>#testStructureHasCorrectOffsets32bits is failing on the bootstrapped image
https://pharo.fogbugz.com/f/cases/19770

19761 Debugger wrong temp var value after multiple step through block
https://pharo.fogbugz.com/f/cases/19761
60416
19732 Reenable Catalog loading in Spotter and fix confusing/hidden setting for it
https://pharo.fogbugz.com/f/cases/19732

19769 BaselineOfIDE needs update
https://pharo.fogbugz.com/f/cases/19769

19771 remove debugging “Alive” report during the bootstrap initialization
https://pharo.fogbugz.com/f/cases/19771
60415
19763 TabManagerMorph do not respect multipleContents mode when tabs are built in background
https://pharo.fogbugz.com/f/cases/19763

19762 Optimize small Dictionary and Set creation
https://pharo.fogbugz.com/f/cases/19762

19459 add #empty instance creation method
https://pharo.fogbugz.com/f/cases/19459

19502 Starting Pharo creates a .ston file in appdata directory
https://pharo.fogbugz.com/f/cases/19502
60414
19759 after UFFI update, SDL2 has unbound global class ExternalForm
https://pharo.fogbugz.com/f/cases/19759

19760 MorphTreeNodeMorph>>canExpand should accept the nil value of complexContents
https://pharo.fogbugz.com/f/cases/19760

19742 Some system baselines needs update
https://pharo.fogbugz.com/f/cases/19742

19402 NNavNavigateTest should be in separate package
https://pharo.fogbugz.com/f/cases/19402
60413
19733 update UFFI to allow 64bits structures
https://pharo.fogbugz.com/f/cases/19733

60412
19756 Usage of #name in NautilusRefactoring
https://pharo.fogbugz.com/f/cases/19756

19752 Object>>#name deprecation in SpecDebugger>>#session:
https://pharo.fogbugz.com/f/cases/19752

19758 prevent surface GC when using it to draw a form
https://pharo.fogbugz.com/f/cases/19758

19739 MCFtpRepository for Komitter
https://pharo.fogbugz.com/f/cases/19739
60411
19747 ClassRename refactoring is not working anymore
https://pharo.fogbugz.com/f/cases/19747

19750 catalog does not create meta repository for Pharo 50
https://pharo.fogbugz.com/f/cases/19750

19751 Rename Copy to Clipboard to Copy Stack to Clipboard
https://pharo.fogbugz.com/f/cases/19751
60410
19749 FFICallbackTests needs to be skipped for now
https://pharo.fogbugz.com/f/cases/19749

60409
19748 new VMs allow enabling of WriteBarrierTests
https://pharo.fogbugz.com/f/cases/19748

60407
19736 Catalog should use Metacello API instead of Gofer for Configuration installation
https://pharo.fogbugz.com/f/cases/19736

19446 Extract Method is broken
https://pharo.fogbugz.com/f/cases/19446
60406
19731 secondary selection color should be not modified
https://pharo.fogbugz.com/f/cases/19731

19538 When replacing a slot in class by WeakSlot, it fails to migrate existing instances
https://pharo.fogbugz.com/f/cases/19538

19603 composition mapping should be initialized on bootstrapped image
https://pharo.fogbugz.com/f/cases/19603
60405
19730 RubPrimarySelectionMorph>>#selectionColor does not respect theme style
https://pharo.fogbugz.com/f/cases/19730

19735 Desktop color issue in the bootstrapped image
https://pharo.fogbugz.com/f/cases/19735

19658 Red in Dark Theme is plain bad
https://pharo.fogbugz.com/f/cases/19658

19734 Sublimish theme menu text selection should be not black
https://pharo.fogbugz.com/f/cases/19734
60404
18915 Kernel depends on Reflectivity
https://pharo.fogbugz.com/f/cases/18915

19654 Tooltips with description of the over and through debugger buttons actions
https://pharo.fogbugz.com/f/cases/19654

19724 Inspecting socket can produce PrimitiveFailed
https://pharo.fogbugz.com/f/cases/19724

60403
Moose
This actually is a merge for GT… with:

The version moves the inspector to FastTable. More precisely it moves the Raw presentation and the presentations for collections to FastTable. For that it adds a tree datasource that has columns. More details here: http://forum.world.st/inspector-performance-improvement-td4933944.html

There are still two issues that need to be fixed after integrating this version:
– sorting in the Raw presentation does not preserve expanded elements
– editing should be done using SHIFT+double click (in place) or using a popup window for larger expressions.
This fixes:
– case 19645 Enabling search triggers error in the FastTable renderer for Glamour
– case 19560 The Glamour renderer for FastTable should offer a DataSource that combines a table and a tree presentation
– case 19648 Collection>>gtInspectorItemsIn: should use FastTable

Also fixes:
– case 17578 GTInspector recognizes a mouse click only after moving the mouse
– case 19423 Collection*gtInspectorItemsIn: defines the same helpMessage twice
– case 17644 Header rows in the Inspector can be “dragged”
– case 19676 We miss closeAllInspectors in Smalltalk tools inspector to close all inspectors, like we do for debuggers
– case 19712 GTInspector should not sort variables by name

60402
19728 Integrate Sublimish theme
https://pharo.fogbugz.com/f/cases/19728

18460 FileLists “more…” menu item in preview panes context menu does not work
https://pharo.fogbugz.com/f/cases/18460

60401
19488 STONWriterTests>>#testDictionaryWithComplexKeys is order dependent
https://pharo.fogbugz.com/f/cases/19488

18584 DNU on showing menu in PointerExplorer
https://pharo.fogbugz.com/f/cases/18584

18459 FileList calls unimplemented method allRegisteredServices
https://pharo.fogbugz.com/f/cases/18459

18724 DNU EyeTreeInspector workspace pane context menu
https://pharo.fogbugz.com/f/cases/18724
60400
19723 Nuke SequenceableCollection>>#checkedAt:
https://pharo.fogbugz.com/f/cases/19723

19722 Move setMultipleSelection to FTTableMorph
https://pharo.fogbugz.com/f/cases/19722

60399
19721 fix #name send in Slot tests
https://pharo.fogbugz.com/f/cases/19721

60398
15303 rename MethodContextTest to ContextTest
https://pharo.fogbugz.com/f/cases/15303


Pharo Weekly - MaterialDesignLite for Seaside

Hello everyone,

Today I released the version v1.1.0 of MaterialDesignLite for Seaside.
(https://github.com/DuneSt/MaterialDesignLite)

Since this is a minor version it shouldn’t break anything existing, but
nobody can avoid bugs. If you encounter a regression, feel free to open
an issue and I’ll try to commit a hotfix soon.

Thanks to Philippe Back, Paul Debruicker, Sabine Mana, Tobias Pape,
Guillaume Larcheveque and Yann Lesage for the contributions and the
feedback. Also thanks to everyone using this project.

You can now find an image with the project on pharo-contribution’s
Jenkins and on PharoLauncher.
(https://ci.inria.fr/pharo-contribution/job/MaterialDesignLite) You can
find more detail on the README.md to start with the project.

One of the future goal would be to add Functional tests with Parasol.

Here is the changelog. You can find a more readable version at:
https://github.com/DuneSt/MaterialDesignLite/blob/v1.1.0/CHANGELOG.md

#
[v1.1.0](https://github.com/DuneSt/MaterialDesignLite/compare/v1.0.2…v1.1.0)
(2017-03-22)

## Bug Fixes

* **SelectWidget: Do not upgrade the dom at all node insertion**
([59c2534](https://github.com/DuneSt/MaterialDesignLite/commit/59c2534))
* **MDLDialog>>openButtonId: missing .close eventListener**
([262e6f3](https://github.com/DuneSt/MaterialDesignLite/commit/262e6f3))
* **Chips: Use #ensureId rather than overriding #id & #id:**
([40fcca5](https://github.com/DuneSt/MaterialDesignLite/commit/40fcca5))
* **SortableTable: Visible page might end up out of bounds**
([b1833e8](https://github.com/DuneSt/MaterialDesignLite/commit/b1833e8))
* **NestedList: Tooltips are unusable**
([5ef2a08](https://github.com/DuneSt/MaterialDesignLite/commit/5ef2a08))

## Features

* **Anchors as buttons** This add the possibility to have links with the
style of buttons to not break semantic
([ba3f0f7](https://github.com/DuneSt/MaterialDesignLite/commit/ba3f0f7))
* **Sliders: New features** This add a label with MD style, possibility
to add an icon, possibility to add an output, show the bounds and a demo
([b203a1f](https://github.com/DuneSt/MaterialDesignLite/commit/b203a1f))
* **Dialog: Multiple opening buttons for a dialog**
([209d49a](https://github.com/DuneSt/MaterialDesignLite/commit/209d49a))
* **SelectWidget: Allow to customize the field**
([ace3e31](https://github.com/DuneSt/MaterialDesignLite/commit/ace3e31))
* **SelectWidget: Add tooltips on entries**
([14466d2](https://github.com/DuneSt/MaterialDesignLite/commit/14466d2))
* **SortableTable: Allow to have no pagination**
([aaa6c19](https://github.com/DuneSt/MaterialDesignLite/commit/aaa6c19))
* **SortableTable: Allow to personalize the style**
([69284d7](https://github.com/DuneSt/MaterialDesignLite/commit/69284d7))
* **NestedList: Add way to customize style + add some default styles**
([5f5088c](https://github.com/DuneSt/MaterialDesignLite/commit/5f5088c))
* **NestedList: Ajax actions on clic**
([feaba43](https://github.com/DuneSt/MaterialDesignLite/commit/feaba43))
* **NestedList: possibility to customize an entry**
([9421917](https://github.com/DuneSt/MaterialDesignLite/commit/9421917))
* **NestedList: Possibility to have an icon to the right of the list**
([27fa1fa](https://github.com/DuneSt/MaterialDesignLite/commit/27fa1fa))
* **NestedList: Add a filter**
([9ecffad](https://github.com/DuneSt/MaterialDesignLite/commit/9ecffad))
* **NestedList: Dynamically load children**
([5ef2a08](https://github.com/DuneSt/MaterialDesignLite/commit/5ef2a08))
* **NestedList: Search and loading should add a spinner while
executing**
([5ef2a08](https://github.com/DuneSt/MaterialDesignLite/commit/5ef2a08))
* **Tooltip: API should let choose the position of the tooltip**
([de33e68](https://github.com/DuneSt/MaterialDesignLite/commit/de33e68))

## Cleaning

* **Dialogs** Clean javascript
([262e6f3]https://github.com/DuneSt/MaterialDesignLite/commit/262e6f3))
* **NestedList** Extract the javascript into a file and use dataset
instead of ids
([21c0535](https://github.com/DuneSt/MaterialDesignLite/commit/21c0535))
* **Extract Material Colors in another project** New repositories to get
only the MDLColors:
[https://github.com/DuneSt/MaterialColors](https://github.com/DuneSt/MaterialColors)
([2efac41](https://github.com/DuneSt/MaterialDesignLite/commit/2efac41))
* **Improve Chips loading scripts**
([b366ddd](https://github.com/DuneSt/MaterialDesignLite/commit/b366ddd))

## Infrastructure

* **Travis and Appveyor CI**
([1afa628](https://github.com/DuneSt/MaterialDesignLite/commit/1afa628))

## Compatibility

### Squeak

* **`MDColor` has a lowercase class variable**
([888fb39](https://github.com/DuneSt/MaterialDesignLite/commit/888fb39))

### Gemstone

* **Use string in baseline and remove #asString**
([868f71b](https://github.com/DuneSt/MaterialDesignLite/commit/868f71b))


Cyril Ferlicot

http://www.synectique.eu

2 rue Jacques Prévert 01,
59650 Villeneuve d’ascq France


Pharo Weekly - News from Lowcode

Hi,

With the experimental Lowcode backend for the UFFI, it is possible to call functions with almost arbitrary calling conventions. For some of the special assembly instructions that are required by this project, I could add the following extra instruction:
– storeIntoSpecialRegister: {CR0, CR1, CR2, CR3, CR4, CR5, GDT, LDT, IDT)
– loadFromSpecialRegister:
– loadFromIOPortU?Int{8,16,32}:
– storeIntoIOPortU?Int{8,16,32}:

As for the interruptions, there are far trickier because they can be triggered in any time. They probably would require some special trampoline for storing/restoring the VM state, something similar to the callbacks.

Currently I am finishing a refactoring of the Lowcode register allocator, so the Lowcode VM is out of service for this week 🙂 .
For GPU compilation, I implemented a SSA based intermediate representation very similar to the one used by LLVM. As a experiment, I did a very basic machine code generator which can produce relocatable ELF32 and ELF64 object files, which can be linked with any C library or program. With this I managed to implement a basic ahead of time compiled Smalltalk runtime.

Before starting that backend, I took a look on AsmJit and the VirtualCPU and I did not like the dependencies and some details about the stack. However, now I do not like the low level backend so I started refactoring into a separate package, but I still think that I should take yet another look to AsmJit and the VirtualCPU, so I am wondering where is actually located the latest version of these two projects.

Best regards,
Ronie


Pharo Weekly - QCMagritte

QCMagritte can be found on smalltalk hub ( http://smalltalkhub.com/#!/~DiegoLont/QCMagritte/ ) and pharo CI ( https://ci.inria.fr/pharo-contribution/job/QCMagritte/ ).

So download a fresh pharo image, open it and perform the following:

Gofer new url: ‘http://smalltalkhub.com/mc/DiegoLont/QCMagritte/main’; package: ‘ConfigurationOfQCMagritte’; load.
((Smalltalk at: #ConfigurationOfQCMagritte) project version: #’development’) load: #( ‘All’ ).
(Smalltalk at: #ZnZincServerAdaptor) startOn: 8080

Doing this should give you a working QC Magritte tutorial hosted on your own pc. You can also download a pre build image from the pharo ci server.

When you have an running image with QCMagritte: start a browser on http://localhost:8080/ and the tutorial should pop up.


March 23, 2017

Suslov Nikolay - Virtual World Framework & A-Frame



In this post I want to share the details about the latest project being done on Krestianstvo SDK.
Virtual World Framework provides a robust decentralised architecture for building virtual world apps based on replicated computation model. It's JavaScript version is strongly based on ThreeJS ibrary for programming apps with 3D visualisation and deep interaction support. So, for building such apps, the developer should be aware of ThreeJS internals, not to mention the knowing of the VWF component's architecture. But, actually VWF is working just with any programmable elements whatever simple they are. The A-Frame framework solves the problem of ThreeJS сomplexity for developing Web apps for Virtual Reality. It provides the component-based architecture for that. A-Frame incapsulates ThreeJS, hiding the internals, and providing high-level interface for describing web app declaratively.
So, I have developed a model and view drivers for VWF, that provides basic support for using A-Frame components in Virtual World Framework apps. That allows to build a VWF collaborative apps with 3D visualisation, WebVR, HMD, trackers and mobile devices support easily.

Source code at GitHub

Here is a small video demonstration, that shows the interaction within collaborative Virtual World Framework app, which is composed by the A-Frame components.


In the video three Google Chrome web-browsers are directing to the same VWF app instance's URL. Every browser shows the replicated A-Frame scene with components in it. The users are represented with small cubes and are visible to each other. The cube on the right is holding the simulation, which is staying the same on all browsers.

Try online demo here: http://demo.krestianstvo.org

Simple scenario for collaboration:

  • Open in Web-browser the given URL (http://demo.krestianstvo.org)
  • Copy the generated URL and open it in another browser window
  • or direct Web-browser to http://demo.krestianstvo.org/app,
  • where you could find all running VWF app instances to join to.
  • Open the generated URL at your phone or tablet.
  • Move in space with arrows or WASD and point objects with a cursor in the centre of the screen (this will generate Click event).
  • You could create any number of isolated VWF app instances, but for connecting to them you will need to know the generated URL.

So, how a simple VWF app with A-Frame is look like?
Here is a simple code of index.vwf.yaml:
---
extends: http://vwf.example.com/aframe/ascene.vwf
properties:
children:
  spaceText:
    extends: http://vwf.example.com/aframe/atext.vwf
    properties:
      value: "Virtual World Framework & A-Frame"
      textColor: "#b74217"
      position: [-2, 2.5, -2]
  sphere:
    extends: http://vwf.example.com/aframe/asphere.vwf
    properties:
      position: [1, 1.25, -4]
      color: "#e0e014"
      radius: 1
      wireframe: true
    children:
      box2:
        extends: http://vwf.example.com/aframe/abox.vwf
        properties:
          position: [2, -1.25, 0]
          color: "#2167a5"
          depth: 1
  sky:
    extends: http://vwf.example.com/aframe/asky.vwf
    properties:
      color: "#ECECEC"
  camentity:
    extends: http://vwf.example.com/aframe/aentity.vwf
    properties:
      position: [0, 0, 0]
    children:
      camera:
        extends: http://vwf.example.com/aframe/acamera.vwf
        properties:
          look-controls-enabled: true
          forAvatar: true
        children:
          cursor:
            extends: http://vwf.example.com/aframe/acursor.vwf 

March 22, 2017

Torsten Bergmann - Smalltalk is the (second) most loved programming language

Smalltalk is the second most loved programming language - it ranks number 2 on Stack Overflow's most loved language. Check the survey yourself.

Torsten Bergmann - MaterialDesignLite for Seaside v1.1.0

Cincom Smalltalk - Smalltalk Digest: March Edition

Breaking News Cincom® ObjectStudio® 8.8.1 and Cincom® VisualWorks® 8.2.1 Are Here! Latest News and Updates Prize-Winning Project — How One Cincom Engineer Got Over 450 Programmers to “Bite” on Smalltalk […]

The post Smalltalk Digest: March Edition appeared first on Cincom Smalltalk.

Pharo Weekly - New consortium agreement

Multiple companies asked for it and we made it. We are happy to announce that now the Pharo consortium offers a platinium level

    http://consortium.pharo.org/web/Membership

In a nutshell

  • 10 days per Year of Support or of Specific development or Consulting;
  • a dedicated space on PHARO Consortium Website allowing the member to broadcast its news which will be published by the Inria PHARO Team prominently on the frontpage of the website.
  • Possibility to ask and pay an internship supervised by RMOD team.
  • Four individual Pharo Association memberships.

The pharo consortium.


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> <img src="/web/files/posts/pharo40-screenshot.png" width="800px"/> </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> <img src="/web/files/posts/pharo40-gtools.png" width="700px"/> </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 5.0 Released!

<p> Dear World, </p> <p> The time has come for <a href="http://pharo.org">Pharo 5.0</a>! </p> <p> <strong>Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.</strong> </p> <p> <img src="/web/files/posts/pharo50-screenshot.png" width="800px"/> </p> <p> This is our most significant release yet. Here are some highlights: </p><ul> <li>The PharoVM is now based on Spur, the new memory management, and it brings with it a 35% speedup!</li> <li>A new unified foreign function interface (UFFI) replaced NativeBoost to provide a strong Spur-compatible framework for interfacing with the outside world.</li> <li>The Glamorous Toolkit now includes the GTDebugger to offer a moldable infrastructure that allows the developer to customise the debugger deeply.</li> <li>The underlying Reflectivity mechanism has reached maturity with multiple pieces coming together to empower developers to instrument their own systems. For example, we now have breakpoints implemented as just a simple extension of this mechanism.</li> <li>QualityAssistant is now part of the image to provide live feedback during development.</li> </ul> <p> These are just the more prominent highlights, but the details are just as important. We have closed 2446 issues in Pharo 5.0. Take a moment to go through a <a href="https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo50ChangeLogs.md">more detailed recount of the progress</a>. </p> <p> While the technical improvements are significant, just think of getting 30% faster out-of-the-box, still the most impressive fact is that the new code that got in the main Pharo 5.0 image was contributed by 100 people. Together we have touched 43% of the classes, and 20% of the methods. The following visualisation rendered with Roassal in Pharo 5.0 is dedicated to this effort. The picture shows the touched classes and packages in gray, the authors and the links to the changed classes in red, and, using an automatically generated visual id, you can spot authors that have worked on similar projects. </p> <p> <img src="/web/files/posts/pharo50-contributors.png" width="800px"/> </p> <p> Pharo is more than code. It is an exciting project involving energetic people. We thank all the contributors of this release: </p> <p> Abdelghani Alidra, Clara Allende, David Allouche, Nicolas Anquetil, Thibault Arloing, Jean Baptiste Arnaud, Mangesh Bendre, Clement Bera, Alexandre Bergel, Torsten Bergmann, Usman Bhatti, Vincent Blondeau, Johan Brichau, Camillo Bruni, Miguel Campusano, Damien Cassou, Nicolas Cellier, Danny Chan, Andrei Chis, Christopher Coat, Ben Coman, Bernardo Contreras, Gabriel Omar Cotelli, Tommaso Dal Sasso, Paul De Bruicker, Sean De Nigris, Christophe Demarey, Simon Denier, Marcus Denker, Martin Dias, John Dougan, Stephane Ducasse, Stephan Eggermont, Johan Fabry, Sergio Fedi, Cyril Ferlicot, Holger Hans Peter Freyther, Joshua Gargus, Tudor Girba, Thierry Goubier, Kris Gybels, Norbert Hartl, Thomas Heniart, Dale Henrichs, Nicolai Hess, Alejandro Infante, Henrik Johansen, Goran Krampe, Pavel Krivanek, Juraj Kubelka, Denis Kudriashov, Matthieu Lacaton, Laurent Laffont, Kevin Lanvin, Jannik Laval, Alexander Lazarević, Skip Lentz, Max Leske, Dave Lewis, Esteban Lorenzano, Sheridan Mahoney, Mariano Martinez Peck, Max Mattone, John McIntosh, Rene Meusel, Eliot Miranda, Henrik Nergaard, Marion Noirbent, Merwan Ouddane, Nick Papoulias, Nicolas Passerini, Alain Plantec, Guillermo Polito, Damien Pollet, Baptiste Quide, Andreas Raab (RIP), Alain Rastoul, Stefan Reichhart, Lukas Renggli, Mark Rizun, Michael Rueger, Valentin Ryckewaert, Ronie Salgado, Udo Schneider, Boris Spasojevic, Igor Stasenko, Roger Stebler, Serge Stinckwich, Aliaksei Syrel, Camille Teruel, Pablo Tesone, Yuriy Tymchuk, Peter Uhnak, Masashi Umezawa, Dion Stewart, Sven Van Caekenberghe, Jan Van De Sandt, Benjamin Van Ryseghem, Toon Verwaest, Franck Warlouzet. </p> <p> (If you contributed with Pharo 5.0 development in any way and we missed your name, please send us a mail and we will add you). </p> <p> Enjoy! </p> <p> <em>The Pharo Team</em> </p> <ul> <li>Try Pharo: <a href="http://pharo.org/download">http://pharo.org/download</a></li> <li>Learn Pharo: <a href="http://pharo.org/documentation">http://pharo.org/documentation</a></li> </ul>

Torsten Bergmann - UK Smalltalk User Group meeting - Monday, March 27th

UK Smalltalk - UK Smalltalk User Group Meeting - Monday March 27th

The next meeting of the UK Smalltalk User Group will be on Monday, March 27th.

We'll meet at our usual venue, the Counting House, from 7pm onwards.

If you'd like to join us, you can show up at the pub. You can also sign up in advance on the meeting's Meetup page.

March 21, 2017

Torsten Bergmann - Smalltalk Meetup London

There is a Smalltalk meetup Chequers Tavern Duke St London Friday March 24th from 6pm according to this Redline Smalltalk tweet

Torsten Bergmann - Real PharoNOS

A few years back there was a Squeak project called "SqueakNOS" about a Squeak Smalltalk system that did not require an underlying operating system. The idea was that you can boot into the Smalltalk image without an underlying separate OS. So that means that nearly anything is based on/implemented in Smalltalk (drivers, etc) and Smalltalk becomes the OS itself. I was fascinated by this idea when an initial SqueakNOS system was available and if you follow my blog regulary you may remember that I also reported about it's resurrection in 2006.

For Pharo Smalltalk later there was a similar project (at least with a similar name and idea) called "PharoNOS" by Mike Filonov (from pharocloud.com) to boot a Pharo system in seconds. Mike provided an ISO that you could easily boot on a machine or in a virtual environment like VirtualBox or other.
 
But Mikes approach was not like the original "do it all in Smalltalk" project for Squeak as his "PharoNOS" variant used a TinyCore Linux with pure X server underneath and Pharo was running on top in fullscreen. Nonetheless I liked it too as I was able to boot a Pharo in seconds now without having to install a separate operating system. Nice for kiosk systems and others.


But meanwhile also the original SqueakNOS (the Squeak system with no operating system) was ported to Pharo as "PharoNOS" and you can really have a "Pharo with No Operating System": Read more if you are interested as it was announced this week.

While all this is primarily x86 based work one could think about an ARM solution. Some pieces are already there: remember that Pharo had NativeBoost allowing to generate and run machine code in Smalltalk.

For the general Pharo release Native Boost required lots of knowledge and was hard to maintain as a general FFI interface - so it was replaced by a unified solution already (UFFI) in Pharo 5.

But NativeBoost was based on AsmJIT for Pharo which if I remember correctly already had some support for ARM assembly. So maybe this work could be resurrected too and be used as a base to boot a Pharo on an ARM machine without any OS underneath. So let the ideas flow...

Torsten Bergmann - Music composed in Squeak

Torsten Bergmann - OopluCon 2017

OopluCon 2017 is a new event for Smalltalk: http://www.ooplu.com

Sunday April 9 2017, 11am-6pm in San Francisco

Marten Feldtmann - Gemstone/S – A Dead Item in a SortedCollection – What the hell is going on …

In our main product – in progress of development – we had a situation, where items in a SortedCollection could not be removed. From time to time we had these instances and I was not very happy about them.

The instance of SortedCollection had a sort block like: [:a :b | a getDoubleValue < b getDoubleValue ] – that means, that the sorting is based on an attribute of those elements hold in that collection.

The reason why the elements could not be removed was pretty soon clear: the attribute values (which the sorting is based on) had changed and the rules are pretty clear: if you change an attribute which is used as the sorting attribute somewhere you should remove the item from the SortedCollection. Change the attribute value and add it again to the SortedCollection instance.

Actually I was surprised to see, that these errors never popped up with an exception, but the PUM generator generates “remove:ifAbsent:[]” in the Topaz based server source code statements, so this error has been catched. Actually the question remaining was: “Who changes this value ?”. The attribute value was a double value and it was never intended to change very often or at all.

The structure of the application we developed here was an API driven application. The Browser-Frontends call the API, send some data (via JSON) and change them. The exchange of the update-API calls were done in that way, that ALL attributes were send to the database – regardless if they have changed or not.

The values of the attribute values therefore were also send from the server to the client and back to the server again – and we found the error: Gemstone/S prepared the string representation of the double value and put that string into the JSON representation, which was sent to the client.

The cliented presented the data, the user did some changes and the values got back to the server – and from time to time, the string-presentation changed (the user had no chance to change this value) , when the client (Javascript float -> string) sent back the data to the server. Not always, but sometimes and NOT very much – perhaps only the last digit changed.

But for Gemstone/S the little change was enough – the item could not be removed from the SortedCollection again. One could trigger a resort, but with 500.000 elements in that Collection this is not a nice way to go …

Another way to get rid of this error was to mark this attribute in the PUM editor as “client-readonly” attribute, which generates code in the server in that way, that changes of that attributes are never transferred to the stored domain object from the API transfer object.


Filed under: Smalltalk Tagged: Gemstone/S, PUM, Smalltalk

Torsten Bergmann - ESUG 2017 Call

25rd ESUG conference in Maribor, Slovenia in September 2017

March 20, 2017

ESUG news - 25rd International Smalltalk Joint Conference - Call

  • Maribor, Slovenia
  • from 4-8 September 2017

http://www.esug.org/Conferences/2017/

This call includes:

You can support the ESUG conference in many different ways:

  • Sponsor the conference. New sponsoring packages are described here
  • Submit a talk, a software or a paper to one of the events. See below.
  • Attend the conference. We'd like to beat the previous record of attendance (170 people at Amsterdam 2008)!
  • Students can get free registration and hosting if they enrol into the the Student Volunteers program. See below.

Developers Forum: International Smalltalk Developers Conference

We are looking for YOUR experience on using Smalltalk. You will have 30 min for presentations and 45-60 min for hand-ons tutorial.

The list of topics for the normal talks and tutorials includes, but is not limited to the following:

Teaching Pearls and Show us Your Business

We expect to have several 10 to 15 min sessions aggregated.

How to submit?

Pay attention: the places are limited so do not wait till the last minute to apply. Prospective presenters should submit a request to

	Stephane.Ducasse at inria.fr AND damien at cassou.me 
	AND USE THE following header ESUG 2017 Developers].

Please follow the template below the email will be automatically processed!

 Subject: [ESUG 2017 Developers] + your name
 First Name:
 Last Name:
 Email where you can always be reached:
 Title:
 Type: Tutorial/Talk/Teaching Pearl
 Abstract:
 Bio:

Any presentation not respecting this form will be discarded automatically

International Workshop on Smalltalk Technologies

Read the page: http://www.esug.org/wiki/pier/Conferences/2017/International-Workshop-IWST_17

Technology Award Competition

The top 3 teams with the most innovative software will receive, respectively, 500 Euros, 300 Euros and 200 Euros during an awards ceremony at the conference. Developers of any Smalltalk-based software are welcome to compete.

More information at http://www.esug.org/wiki/pier/Conferences/2017/Innovation-Technology-Awards

Student Volunteer Program

If you are a student wanting to attend ESUG, have you considered being a student volunteer? Student volunteers help keep the conference running smoothly; in return, they have free accommodations, while still having most of the time to enjoy the conference.

Send an email to stephane.ducasse at inria.fr and serge.stinckwich at gmail.com with:

More information at http://www.esug.org/wiki/pier/Conferences/2017/Student-volunteers

We hope to see you there and have fun together.

March 19, 2017

The Weekly Squeak - 25rd International Smalltalk Joint Conference – Call for Contributions

25rd International Smalltalk Joint Conference – Call for Contributions
         Maribor, Slovenia
             from 4-8 September 2017
 This call includes:
         Developer Forum
         Smalltalk Technology Award
         International Workshop
 Student Volunteer
 ———————————————————————-
 You can support the ESUG conference in many different ways:
 * Sponsor the conference. New sponsoring packages are described at
 * Submit a talk, a software or a paper to one of the events. See below.
 * Attend the conference. We’d like to beat the previous record of
        attendance (170 people at Amsterdam 2008)!
 * Students can get free registration and hosting if they enrol
       into the the Student Volunteers program. See below.
 Developers Forum: International Smalltalk Developers Conference
 ————————————————————————
 We are looking for YOUR experience on using Smalltalk. You will have
 30 min for presentations and 45-60 min for hand-ons tutorial.
 The list of topics for the normal talks and tutorials includes, but
 is not limited to the following:
       * Micro Services, Container, Cloud, Big Data,
       * XP practices,  Development tools,  Experience reports
       * Model driven development, Web development, Team management
       * Meta-Modeling,  Security, New libraries & frameworks
       * Educational material, Embedded systems and robotics
       * SOA and Web services, Interaction with other programming languages
Teaching Pearls and Show us Your Business
—————————————–
– Show your business 10 min session (Get prepared!!)
– Teaching pearls : we want some session on how to teach some design
aspects. We want your tip and tricks to teach Smalltalk or OOP.
We expect to have several 10 to 15 min sessions aggregated.
!! How to submit?
 ————–
Submissions deadline is 15 of June 2017
Notification of acceptance will be on done on the fly.
Pay attention: the places are limited so do not wait till the last minute to apply.
Prospective presenters should submit a request to 
Stephane.Ducasse at inria.fr AND damien at cassou.me 
AND USE THE following header ESUG 2017 Developers].
Please follow the template below the email will be automatically processed!
 Subject: [ESUG 2017 Developers] + your name
 First Name:
 Last Name:
 Email where you can always be reached:
 Title:
 Type: Tutorial/Talk/Teaching Pearl
 Abstract:
 Bio:
Any presentation not respecting this form will be discarded automatically
International Workshop on Smalltalk Technologies
————————————————————————
Technology Award Competition
————————————————————————
 The top 3 teams with the most innovative software will receive,
 respectively, 500 Euros, 300 Euros and 200 Euros during an awards
 ceremony at the conference. Developers of any Smalltalk-based
 software are welcome to compete.
 Student Volunteer Program
 ————————————————————————
 If you are a student wanting to attend ESUG, have you considered
 being a student volunteer? Student volunteers help keep the
 conference running smoothly; in return, they have free
 accommodations, while still having most of the time to enjoy the
 conference.
Send an email to
stephane.ducasse at inria.fr and serge.stinckwich at gmail.com with:
– title: [ESUG 2017 Student]
– name, gender, university/school, country, email address
– short description of you and why you are interested in participating
 More information at
 We hope to see you there and have fun together.
——————————————–
Stéphane Ducasse
03 59 35 87 52
Assistant: Julie Jonas
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse – Inria
40, avenue Halley,
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d’Ascq 59650
France

_______________________________________________
Esug-list mailing list
Esug-list@lists.esug.org
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org

Pharo Weekly - PharoNOS for Pharo40

Hi,
I successfully ported SqueakNOS to Pharo, and want to share it with you!
It works with Pharo 4.0 image, networking included, ping works!

http://smalltalkhub.com/#!/~JanStruz/PharoNOS/

What is different:
– I use my own CMake build file, with “out-of-tree” build support, instead of “build.xyz” directories inside source tree + some template scripts to build any VM type, but it is not complete…
– I use MUSL instead of GlibC, cross-compiling GlibC statically on 64bit for 32bit seems impossible, but anyway I use 32bit environment to build it
– It works with pre-opensmalltalk-vm migration directory structure, so the “sync” with latest trunk remains #TODO, or maybe start a new branch again from the latest upstream commit should work too
– freetype is included, but will not load any fonts, since the filesystem driver is image-side… so you will need to make new fonts embedded, if you want them
– known issues: image snapshot and fileout are not working, current date+time hacked to make fat32 timestamps work
– revision needed: timer (heartbeat) vs. GC vs. interrupts enable/disable
– there are even some hacks to image-side methods

PharoNOS platform directory sources: [pharonos branch]
SRC: https://gitlab.com/johnnyzz/pharonos

VM sources: [dev branch]
SRC: https://gitlab.com/johnnyzz/pharo-vm
– added platform directory, build scripts and CMake templates
– added VMMaker configs

Build Environment (32bit) – Docker image repository, with CI:
https://gitlab.com/johnnyzz/dev-build

PharoNOS CI (uses previous Docker image):
CI: https://gitlab.com/johnnyzz/pharo-nos-build

How to run it:
You can download fresh disk image from CI and then run:
(sudo) kvm -hda build/NOS.img -enable-kvm -cpu kvm32 -vga qxl -m 256 -netdev tap,id=user.3,ifname=tap2,vhost=on -net nic,model=rtl8139,netdev=user.3 -global isa-fdc.driveA= -serial stdio

One more thing:
Statically linked Pharo Spur32 (headless) VM, with only one dependency – Linux kernel:
CI: https://gitlab.com/johnnyzz/pharo-build-static
Size: 2,4MB (too big?, but Freetype included too!)

enjoy

Jan

 


March 17, 2017