Planet Smalltalk

March 01, 2015

Torsten Bergmann - TrashCan of removed methods

Torsten Bergmann - Teapot 0.9 for Pharo

A new version of Teapot was released: Teapot 0.9

     http://smalltalkhub.com/#!/~zeroflag/Teapot

It still less than 700 Lines of code and a nice micro web framework for Pharo. You need to load "ConfigurationOfTeapot-AttilaMagyar.6", if you are on Pharo 4 you can directly load it from the configuration browser.

 As this framework is very easy to use (it bases on the concept of URL routes): you can serve dynamic or static HTML pages, JSON and other web related stuff easily from Pharo. It is nice especially if frameworks like Seaside are too heavy for your web application needs.

Torsten Bergmann - AST Link Annotation Infrastructure

Pharo 4.0 also includes some more AST Link Annotation Infrastructure. Read more.

Torsten Bergmann - Language Detection using Pharo

Language Detection API is a service to query the language of a given input text. You can use it from Pharo. Read more.

Pharo Weekly - A simple AST-transformer plugin architecture for Opal…

A simple AST-transformer plugin architecture for Opal…

-> subclass OCCompilerASTPlugin
-> implement #transform e.g.

transform
| rule |
rule := RBParseTreeRewriter replaceLiteral: 42 with: ‘meaning of life’.
rule executeTree: ast.
^ast

The plugin can be activated *per class hierarchy* by overriding #compiler

compiler
“the example plugin is active for this class”
^super compiler addPlugin: ASTPluginMeaningOfLife.

or of course for a single compilation:

(Smalltalk compiler addPlugin: ASTPluginMeaningOfLife) evaluate: ’42’

For review here:

https://pharo.fogbugz.com/f/cases/15019/Compiler-AST-transformation-Plugins

Marcus


Smalltalk Jobs - Smalltalk Jobs – 3/1/15

  • Leinster, Ireland (possibly Dublin) – Software Developer Advisor at Dell
    • Required Skills:
      • Unix/Linux
      • Excellent knowledge in GEMSTONE and Oracle databases. (Please do not forward any CVs with no experience in GEMSTONE and Smalltalk)
      • Smalltalk
      • Excellent SQL and/or PL/SQL knowledge
      • Good MQ series and SFTP knowledge
      • Java, HTML & JavaScript Knowledge
      • Good understanding of ITIL practices
      • Fluency in English language
    • Wanted Skills:
      • Familiar with various application architecture, from client-server to multi-tier web application architecture
      • Working with large scale transaction and reporting applications
  • Buenos Aires, ArgentinaKapital Financial Developer – Associate (Job ID 150021865) at J.P. Morgan
    • Required Skills:
      • Application development using Object Orientated technology (Smalltalk, Java, C#, Python etc), preferably on large scale systems.
      • Previous experience of Financial Services, preferably in Investment Banking.
      • Good communication and organizational skills, build good client relationships and takes ownership of issues.
      • Self motivated to learn and ask questions to produce the best technology solutions
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

Benoit St-Jean - C’est une langue belle…

LanguageDetection : un outil Pharo pour détecter la langue !


Classé dans:Pharo, Smalltalk Tagged: détection, langue, Pharo, Smalltalk

Pharo Weekly - Language Detection API available in Pharo

Hello,

Language Detection API is a service to query the language of a given input text. You will need to register an API key in the web site http://detectlanguage.com to use the service.

This client enables to use the service from Pharo Smalltalk. The output is an object containing the language code, a confidence score and a ‘is reliable’ boolean value.

Installation and usage details in the following post:

http://80738163270632.blogspot.com.ar/2015/02/languagedetection-api-client-in.html

Cheers,

Hernán


February 28, 2015

Hernán Morales Durand - LanguageDetection API Client in Smalltalk

Introduction

Language Detection API is a service to query the language of a given input text. You will need to register an API key in the web site http://detectlanguage.com to use the service. This client enables to use the service from Pharo Smalltalk. The output is an object containing the language code, a confidence score and a 'is reliable' boolean value.

Installation

Inside Pharo, open the Configuration Browser and select LanguageDetection, then Install. Or evaluate the following expression:

Gofer it
smalltalkhubUser: 'hernan' project: 'LanguageDetection';
configurationOf: 'LanguageDetectionAPI';
loadStable.

Usage


| ldClient |
ldClient := LDApiClient new.
ldClient
query: 'Des perles de pluie venues de pays où il ne pleut pas';
detectedLanguageCode.
ldClient
query: 'Een enkele taal is nooit genoeg ';
detectedLanguageCode.
ldClient
query: 'buenos dias señor';
detectedLanguageCode.
Enjoy

February 27, 2015

Torsten Bergmann - Twins in Pharo

Torsten Bergmann - FOSDEM

If you were not able to participate in FOSDEM here is something to look at:

http://mirrors.dotsrc.org/fosdem/2015/devroom-smalltalk/

Torsten Bergmann - Videos and Slides from PharoDays

If you were not able to participate in PharoDays here is something you should look at:

http://pharo.org/news/video-pharo-days

ESUG news - Camp Smalltalk Ottawa June 2015

"Join us at Camp Smalltalk Ottawa 2015

If you enjoy programming Smalltalk or you're interested in promoting Smalltalk, come join us in Ottawa from June 12th to 14th for Camp Smalltalk Ottawa. Present your latest projects in lightning talks and chat with other Smaltalk developers.

The theme of this Smalltalk is "Send a Message". We'll be doing things to tell the world about Smalltalk and why we use it. All talks will be recorded and posted on YouTube. We'll interview Smalltalk developers for the Smalltalk Reflections podcast. We'll be developing frameworks for Smalltalk contests. More information will be available soon as we finalize the details.

On Friday June 12, we'll meet at the Ottawa Public Library to mingle and chat. Saturday and Sunday will be at the Shopify headquarters on Elgin Street."

http://www.simberon.com/campsmalltalkottawa2015/

Pharo Weekly - CompiledMethod got a Twin

Hi,

In 40516 there is now a strange, but rather powerful mechanism for CompiledMethod: the Twin.

What does that do?

you can call on a method #createTwin

(ReflectivityExamples>>#exampleMethod) createTwin.

after this, the CompiledMethod has a high-level representation (the AST) attached that itself references the CompiledMethod
(they form a twin).

(ReflectivityExamples>>#exampleMethod) reflectiveMethod

The fun thing is now that one can install either in the class. Call #invalidate to make sure the reflective method is installed.

ReflectiveMethod implements #run:with:in: which calls a compilation hook (too re-create from the AST) and then installs that in the
method dict and then executes the method:

(ReflectivityExamples>>#exampleMethod) createTwin.
(ReflectivityExamples>>#exampleMethod) invalidate.
self assert: (ReflectivityExamples>>#exampleMethod) class = ReflectiveMethod.
self assert: ReflectivityExamples new exampleMethod = 5.
self assert: (ReflectivityExamples>>#exampleMethod) class = CompiledMethod.

Which means that this gives us an in-image, on-demand JIT compiler AST->Bytecode. In 50 lines of code.

e.g. try on Morph:

Morph methods do: #createTwin.
Morph methods do: #invalidate.

Counting which twin is installed shows us the working set of Morph:

(Morph methods select: [ :each | each class = CompiledMethod ]) size

some 330 method out of nearly 900….

So what can one do with this? In essence this turns the AST into a reflective representation for Methods
(if you care to set up twin creation + invalidation correctly).

What will this allow us to do? stay tuned…

Marcus


Pharo News - Slides and Videos Pharo Days 2015

<p>The slides and videos for Pharo Days 2015 are now online:</p> <ul><li> <a href="http://www.slideshare.net/pharoproject/presentations">Slides on SlideShare</a></li></ul> <ul><li> <a href="http://files.pharo.org/conferences/2015PharoDays/Slides/">Slides (PDF)</a></li></ul> <ul><li> <a href="https://www.youtube.com/playlist?list=PL4actYd6bfnz98ngrKALwwStl3C3odEKG">Videos</a></li></ul>

Pharo News - Slides and Videos Pharo Days 2015

<p>The slides and videos for Pharo Days 2015 are now online:</p> <ul><li> <a href="http://www.slideshare.net/pharoproject/presentations">Slides on SlideShare</a></li></ul> <ul><li> <a href="http://files.pharo.org/conferences/2015PharoDays/Slides/">Slides (PDF)</a></li></ul> <ul><li> <a href="https://www.youtube.com/playlist?list=PL4actYd6bfnz98ngrKALwwStl3C3odEKG">Videos</a></li></ul>

Torsten Bergmann - Roassal visualization on VisualWorks

The Roassal visualization engine not only works on Pharo but also VisualWorks:


February 26, 2015

Pharo Weekly - The essential: many improvements daily

40512
14990 MonitorDelay>>#signalLock:afterMSecs:inMonitor:queue: should return MonitorDelay object

https://pharo.fogbugz.com/f/cases/14990

14984 Improve protocol names in ComposableModel and subclasses

https://pharo.fogbugz.com/f/cases/14984

14996 LinkedList>>#select:thenCollect: is slow

https://pharo.fogbugz.com/f/cases/14996

14995 script: Pragma is also acceptable for non-unary methods

https://pharo.fogbugz.com/f/cases/14995

40511
14991 ExampleSlotWithDefaultValue: allow default to be set in definition

https://pharo.fogbugz.com/f/cases/14991

14992 ScriptLoader: code path of Integrator needs to delete scripts, too

https://pharo.fogbugz.com/f/cases/14992

14982 Improved support for unknown bytecode

https://pharo.fogbugz.com/f/cases/14982

40510
– Scriptloader test

40509
14868 Unbound Globals (XBytecodeGenerator)

https://pharo.fogbugz.com/f/cases/14868

14989 Improve and simplify BlockClosure benchmarking

https://pharo.fogbugz.com/f/cases/14989

40508
14901 Matrix>>extent is missing

https://pharo.fogbugz.com/f/cases/14901

14359 ScriptLoader linesOfCode ==> 108740

https://pharo.fogbugz.com/f/cases/14359

14981 Fixes for SistaV1 bytecode set (part 2)

https://pharo.fogbugz.com/f/cases/14981

40507
14987 ShoreLine Reporter version 0.1.2

https://pharo.fogbugz.com/f/cases/14987

40506
14983 MorphicEventDispatcher>>#dispatchEvent:with: needs to nil morph instance

https://pharo.fogbugz.com/f/cases/14983

14862 /is/this/possible? asFileReference size

https://pharo.fogbugz.com/f/cases/14862

13004 Key Mapping should have a GUI interface to show all definitions

https://pharo.fogbugz.com/f/cases/13004

14965 #class:instanceVariableNames: not needed in OldClassBuilderAdapter

https://pharo.fogbugz.com/f/cases/14965

40505
14980 Method missing to decode bytecode set

https://pharo.fogbugz.com/f/cases/14980

14979 Fixes for SistaV1 bytecode set

https://pharo.fogbugz.com/f/cases/14979

40504
14964 deprecated #anonymousSubclassOf:

https://pharo.fogbugz.com/f/cases/14964

14975 Generate initialize methods should be in initialization protocol

https://pharo.fogbugz.com/f/cases/14975

14967 MCFileTreeRepository does not implement #versionInfoFromVersionNamed: correctly

https://pharo.fogbugz.com/f/cases/14967

40503
14954 load new configuration 2.9 (more morphic support)

https://pharo.fogbugz.com/f/cases/14954

14955 load new TxText configuration 2.8.3 (more morphic support)

https://pharo.fogbugz.com/f/cases/14955

40502
14960 Extend Duration with a human readable print option and some related accessors

https://pharo.fogbugz.com/f/cases/14960

14963 addInstVarNamed: should use addSlot:

https://pharo.fogbugz.com/f/cases/14963

14970 TheManifestBuilder>>removeManifestOf:(manifest is shadowed)

https://pharo.fogbugz.com/f/cases/14970

14914 #initializeSlots: should not skip hidden slots

https://pharo.fogbugz.com/f/cases/14914

40501
14942 Delay refactoring (part 2b) – clean out newCodeEnabled wrappers

https://pharo.fogbugz.com/f/cases/14942

40500
14631 DNU GLMThemeIcons >> overlayModificationIconContents

https://pharo.fogbugz.com/f/cases/14631

14941 isObsolete returns true for anonymous classes

https://pharo.fogbugz.com/f/cases/14941

14728 NBFFICalloutAPI option WinUnicode is not prefixed with opt, as all the other options

https://pharo.fogbugz.com/f/cases/14728

40498
14961 instantiation is misspelled in PharoSyntaxTutorial

https://pharo.fogbugz.com/f/cases/14961

14947 Missing allChildrenMatching:

https://pharo.fogbugz.com/f/cases/14947

14971 MorphicTransform: Better Argument Names

https://pharo.fogbugz.com/f/cases/14971

40497
14949 String>>asPackage

https://pharo.fogbugz.com/f/cases/14949

14957 Number>>#percent

https://pharo.fogbugz.com/f/cases/14957

14958 DateModel>>#initializeWidgets error

https://pharo.fogbugz.com/f/cases/14958

40495
14934 Load new Athens configuration 2.8

https://pharo.fogbugz.com/f/cases/14934

This fixes the following issues

case 14723 Make StrikeFonts working in Athens (font size related)
case 14710 AthensCairoCanvas setAA not implemented
case 14799 AthensCairoCanvas draws in empty rectangles

40496
14935 Load new configuratoin of TxText 2.8.2

https://pharo.fogbugz.com/f/cases/14935

with the following fixes
case 14778 TxAthensLayoutView should not impose a x offset minimal value
case 14774 TxHighlightRenderer shapes badly computed when scrolling horizontally
case 14719 TxTextLayout startPosition and TxTexLayoutView scrolling management
case 14715 TxTextEditorMorph modifies dragged morph position
case 14687 TxTextPosition moveDown: can only move one line down

40494
14940 timeToRunWithoutGC broken

https://pharo.fogbugz.com/f/cases/14940

14946 Replace senders of String>>#subStrings: in Tool-Finder

https://pharo.fogbugz.com/f/cases/14946

14937 better comments and test for Matrix

https://pharo.fogbugz.com/f/cases/14937

14060 MNU: receiver of “stepToCallee” is nil

https://pharo.fogbugz.com/f/cases/14060

40493
14943 really deprecated #leap

https://pharo.fogbugz.com/f/cases/14943

14897 Date isLeapYear equally defined in Dates superclass

https://pharo.fogbugz.com/f/cases/14897

14483 Extract the PragmaCollector into its own package

https://pharo.fogbugz.com/f/cases/14483

40492
14064 Improvements to checking termination of processes

https://pharo.fogbugz.com/f/cases/14064

40491
2649 dont let an empty Rectangle #intersects:

https://pharo.fogbugz.com/f/cases/2649

14938 missing addModelItemsToWindowMenu: in WindowModel

https://pharo.fogbugz.com/f/cases/14938

14939 example for SearchableList does not work (MNU)

https://pharo.fogbugz.com/f/cases/14939

40490
4795 Horizontal wheel events

https://pharo.fogbugz.com/f/cases/4795

14905 Missing test and clean code for SmalltalkImage>>#extractMinusParameters

https://pharo.fogbugz.com/f/cases/14905

40488
14852 TTLCache should allow for custom TTLAssociation that can compute their own expiration

https://pharo.fogbugz.com/f/cases/14852

14869 Repeated methods in Trait Composition

https://pharo.fogbugz.com/f/cases/14869

40486
14904 Slot: hand the correct class to slot in #buildNewClass

https://pharo.fogbugz.com/f/cases/14904

14899 add addSlot in testClassRespectsPolymorphismWithTrait

https://pharo.fogbugz.com/f/cases/14899

14874 WorldState>>#interCyclePause: failed

https://pharo.fogbugz.com/f/cases/14874

14895 Class Variable Refactoring -> Add produce error when pressing escape on dialog

https://pharo.fogbugz.com/f/cases/14895

40485
14892 Slots: when class is created, #installingIn: is not called

https://pharo.fogbugz.com/f/cases/14892

14893 Slots: allSlots should filter hidden slots

https://pharo.fogbugz.com/f/cases/14893

14888 Matrix>>rows:columns arguments are unclear

https://pharo.fogbugz.com/f/cases/14888

40484
14894 SimpleSwitchMorph lost onColor: aColor

https://pharo.fogbugz.com/f/cases/14894

14891 Slots: add #addSlot and #hasSlots

https://pharo.fogbugz.com/f/cases/14891


Pharo Weekly - How Far We’ve Come!

Sean De Nigris (an early pharo adopter) wrote the following:

It was so much fun watching the Pharo Days videos! Thanks for recording them
and I hope to be there next time :)

(note videos are here https://www.youtube.com/channel/UCp3mNigANqkesFzdm058bvw/videos)

Somewhere halfway through the playlist, it hit me how easily I was
downloading all the projects and images being talked about. I was
copy/pasting one-line Metacello scripts out of github READMEs, clicking in
the Configuration Browser, or downloading the latest code from CI – and it
all “just worked”!!!

Remember not too long ago when we were passing around custom scripts to load
multiple dependent packages, and explaining to outsiders that “we don’t need
github because Smalltalk invented SCM” (or whatever) while we created the
future invisibly, hidden away from the rest of the world?

After laying down so many building blocks (like FileSystem) that take the
system out of the way of creative expression, it is exciting to finally be
tackling some of the high-impact things… you know the ones we’ve been
avoiding… like Morphic, development tools, and the text editors.

And the steady streams of new talent and funding seem likely to keep the
successes coming.

So CONGRATULATIONS, Pharo Community!!!! We deserve it.

Now get back to work – we’ve got a future to create ;)


Pharo Weekly - GADM package for Pharo

I am pleased to announce the release of the GADM package for Pharo. GADM is a high-resolution spatial database of the location of the world’s administrative areas for use in Geographical Information Systems (GIS) and similar software.

The following post contains details about the release:

If anyone wish to extend it with the polygon data included in GADM, please feel free to request repository permission to upload changes.

Cheers,

Hernán


Pharo Weekly - Pharo interface to the Stanford Named Entity Recognizer

Hello,

I am announcing the release of StNER. StNER provides a Pharo interface to the Stanford Named Entity Recognizer (NER). (http://nlp.stanford.edu/software/CRF-NER.shtml)

Installation and usage details are described in the following post:

http://80738163270632.blogspot.com.ar/2015/02/stner-interface-to-stanford-named.html

Cheers,

Hernán

PS: Only tested in Windows 8.1


February 25, 2015

Hernán Morales Durand - StNER: Interface to the Stanford Named Entity Recognizer

Introduction

StNER provides a Pharo Smalltalk interface to the Stanford Named Entity Recognizer (NER). The Stanford NER recognizer is an implementation of a Named Entity Recognizer, used for tagging raw text which is a central task in Information Retrieval and Natural Language Processing. The input is a sequence of words in a text, and the NER classifier - using already trained data - try to recognize typically three types of "Named Entities" (NEs) : NAME, LOCATION and ORGANIZATION (more classes exists). The output is the tagged text in some common tagging format for tagging tokens. This recognizer works better on input more similar to the already trained labeled data sets (muc6, muc7, conll2003), however there are reports to use it with tweets, and you can retrain to recognize entities for your particular needs.

To recognize text in other languages, for example, Chinese, German, or Spanish, a different classifier (in this context a .tgz file) can be used (see NLP Stanford Demo).

Installation

  • Java is required to run the server locally.
  • Download the Stanford NER packages.
  • Inside Pharo, open the Configuration Browser and select StNER, then Install. Or evaluate

    Gofer it
    smalltalkhubUser: 'hernan' project: 'StNER';
    configurationOf: 'StNER';
    loadStable

Launch the server

  • Start (from Smalltalk) the (Java) server using the StNER Smalltalk server interface. For example, to start the server with default parameters in Windows:

    StSocketNERServer new
    stanfordNERPath: 'c:\stanford-ner-2015-01-30\';
    startServer.
  • Query an input text using the StNER Smalltalk client interface.

Server Settings

Providing path location is mandatory. If no host or port is supplied, defaults to:
  • localhost (127.0.0.1),
  • port 8080
  • JVM memory 1000m.
  • output format: inlineXML

You can configure the server with the following taggers:
  • 3 class NER tagger that can label: PERSON, ORGANIZATION, and LOCATION entities. (#setEnglish3ClassTagger)
  • 4 class NER tagger trained on the CoNLL 2003 Shared Task training data that labels for PERSON, ORGANIZATION, LOCATION, and MISC. (#setEnglish4ClassTagger)
  • 7 class NER tagger trained only on data from MUC (#setEnglish7ClassTagger): TIME, LOCATION, ORGANIZATION, PERSON, MONEY, PERCENT, DATE.

Client Usage

To tag text you can use the #tagText: method as follows:

StSocketNERClient new
tagText: 'University of California is located in California, United States'
and the output will be:

'University of California
is located in California,
United States' "
Another example including PERSON tagging:

StSocketNERClient new
tagText: 'Argentina President Kirchner has been asked to testify in court on the death of Alberto Nisman the crusading prosecutor who had accused her of conspiring to cover up involvement of Iran'
which results in:

'Argentina President Kirchner has been asked to testify in court on the death of Alberto Nisman the crusading prosecutor who had accused her of conspiring to cover up involvement of Iran'
Parse text to in-line XML

StSocketNERClient new
parseText: 'University of California is located in California, United States'
results in a Dictionary of Bag's with occurrences of tagged classes.

Francois Stephany - Android Google Study Jams Brussels

audience at the Study Jam

The Google Developer Study Jams Android Fundamentals is a worldwide study group organised by Google and Udacity. The principle is quite simple: people follows an online course on Udacity to become Android developers. Events are locally organized weekly so participants can share their problems, ideas and solutions.

The official website describes it perfectly:

Study Jams are an opportunity for students to receive free, in-person guidance and tutoring on the Udacity course in a fun classroom environment. Study Jam sessions are designed around the Udacity course structure, with a weekly session following each lesson (6 lessons), plus two additional weeks for completing and sharing course final projects. Students are expected to come to the Study Jam sessions having completed that week’s Udacity lesson online, so that the Study Jam time may be used to review key concepts, address questions, and work on individual projects. The live community atmosphere and tutoring is designed to help students achieve deeper learning around the concepts taught in the course.

The Google Developer Group of Brussels is organising the local event in Belgium in the beautiful working space Co.Station, next to the central station.

Friedger Müffke and I are the two tutors for the Brussels local group. We try to expand the content of the online course with some of our experiences. We also try to give the student a feeling of the Android ecosystem.

audience at the Study Jam

The Android fondamental course does not use any external libraries. Even for HTTP calls. Instead they ask the students to copy/paste a huge gist containing the code doing the call. I thought that it would have been nice to show the students how to include an external library.

We started to follow that path and we talked quite a lot about libraries that I find useful. Here are some of them:

  • OkHTTP, HTTP calls should be easy.
  • GSON, JSON manipulation.
  • Retrofit, Ideal if you want to interact with a REST+JSON webservice. Beware that it can feel a little bit magic, it's hard to know what's going on. It relies on OkHTTP and GSON to do its job.
  • EventBus, an EventBus for your application. It lets you send event throughout your application. *Otto, basically the same as EventBus. Try both and keep the one you prefer.
  • Timber, small librarie that makes it easier to deal with logs.

You can find all those library in the jcenter maven repository.

Many of those libraries are edited by Square. Check their open source listing for more goodness.

Another small tool that we covered (but that I haven't tested in real life yet) is Retrolambda. You integrate it into your build chain and it lets you write lambda expressions with java 7. Nobody knows when (or even if) Java 8 will be available on android, so this tool can come handy if you really want to use those lambdas.

We also mentioned Genymotion, a fast android emulator based on VirtualBox.

Someone has a question about Context last week. This article is quite good to grasp the differences between the different available contexts.

Last but not least, we talked about Android Weekly, a very nice newsletter that collects all the news from the Android ecosytem. It is a great way to discover new libraries and tools.

Thanks a lot to Anne Collet from Le Wagon Brussels to host us in Co.Station.

If you're interested and want to participate, join the Google Developer Group Brussels on Meetup!

Benoit St-Jean - GADM

GADM est une base de donnés spatiales de grande précision renfermant des informations spatiales, géographiques et de géolocalisation.  Au plus grand plaisir de tous, GADM est maintenant accessible à partir de Pharo!

Sur un tout autre sujet, savez-vous ce que représente le nombre 80738163270632 dans l’adresse du blogue de Hernan (80738163270632.blogspot.ca) ?  La réponse dans quelques articles!


Classé dans:bases de données, Pharo, Smalltalk Tagged: base de données, GADM, géographie, géographique, géolocalisation, GIS, Pharo, Smalltalk, spatial, spatiales

Torsten Bergmann - GADM: Access to Global Administrative Areas in Pharo

Hernán Morales Durand announced the release of the GADM package for Pharo Smalltalk. GADM is a high-resolution spatial database of the location of the world's administrative areas for use in Geographical Information Systems (GIS) and similar software. Read more and try out here.

Hernán Morales Durand - GADM: Access to Global Administrative Areas in Smalltalk

Introduction

GADM is a high-resolution spatial database of the location of the world's administrative areas for use in GIS and similar software. GADM is freely available for academic and other non-commercial use. The data contained in GADM was collected from spatial databases provided by NGO, National Governments, and/or maps and list of names available on the Internet (e.g. from Wikipedia).

Administrative areas include: countries, provinces, counties, departments, etc. up to five sublevels, which cover most boundaries in the world. For each level it provides some attributes, foremost being the name and in some cases variant names. GADM can also be used to extract polygon shapes for visualization, for example to build choropleth maps for regions. The GADM package includes the raw data in CSV format, which I parsed to build a browseable GADM world tree, allowing off-line access to the GADM database in a hierarchical fashion with objects, without need to perform on-line queries for basic requests. A hierarchical tree can be used to build a toponym browser for example.

Installation

From within Pharo 3, or Pharo 4 you can use the Configuration Browser, or evaluate the following expression:

Gofer it
smalltalkhubUser: 'hernan' project: 'GADM';
configurationOf: 'GADM';
loadStable.

Usage Examples


" To access to the whole World (as seen by GADM), evaluate "
GADMWorldTree root.

" Access country Lithuania "
GADMWorldTree @ 'Lithuania'.

" To acces the Part (Partido: spanish) where I am living:"
GADMWorldTree @ 'Argentina' @ 'Buenos Aires' @ 'La Plata'.

" You want to know which type of region is Los Angeles "
(GADMWorldTree @ 'United States' @ 'California' @ 'Los Angeles') typeName " 'County' "

" You wish to list all subregions in San Marino "
(GADMWorldTree @ 'San Marino') nodeNames
" a SortedCollection('Acquaviva'
'Borgo Maggiore'
'Chiesanuova'
'Domagnano'
'Faetano'
'Fiorentino'
'Montegiardino'
'San Marino'
'Serravalle') "
Enjoy

February 24, 2015

Torsten Bergmann - PharoCloud now with new appliance Pharo + MongoDB

PharoCloud added another starter appliance that is easy to use: "Pharo + MongoDB".

Basically an embedded MongoDB runs locally in this appliance and you can use Mongo or other packages in Pharo to access it. Maybe you already know that when loading the Voyage project is very easy to do persistence in Pharo with MongoDB. To get started with Voyage use this or this.

You can read more details on this new PharoCloud offer here.

Torsten Bergmann - PhyloclassTalk video

A video on PhyloclassTalk (GenBank Browser & PhyloclassTalk Classifier demo) (which is written in Pharo) is on Vimeo. Read more about the PhyloclassTalk project here and here.

PhyloclassTalk is a phylogenetics analysis platform which includes several modules to perform different workflows related with bioinformatics analysis.

Another video on the Blast Query Builder is on Youtube:

Benoit St-Jean - Smalltalk en vrac (11)

Pharo

PharoCloud offre maintenant une solution Pharo+MongoDB.

PhyloclassTalk est un outil d’analyse phylogénétique et bioinformatique.  Un vidéo montrant le GenBank Browser et le PhyloclassTalk Classifier et un autre montrant le Blast Query Builder.  Pour plus d’informations sur la biogénétique, il y a BioSmalltalk.

Présentation sur les slots dans Pharo 4.0.

Comment arrêter une image à partir d’une notification du système d’exploitation.

Présentation du Prague Lambda Meetup de janvier 2015.

MathsOntologie est un outil aidant à la résolution de problèmes en mathématiques.  Le manuel de référence est ici.

PlagueDoctor gère vos fenêtres inutilisées automatiquement!  Une description de l’utilitaire ici.

Squeak

Kyma est un langage de programmation avancé pour les sons et la musique.  Développé par Symbolic Sound, la version 7 est maintenant disponible et en vedette dans ce court vidéo.  Vous trouverez facilement sur Youtube ou sur le site de Symbolic Sound plus de vidéos, plus d’exemples, de tutoriels ou de pièces de musique composées avec Kyma.

 


Classé dans:Pharo, Smalltalk, Squeak Tagged: analyse phylogénétique, bioinformatique, BioSmalltalk, BLAST, Classifier, GenBank, Kyma, mathématiques, MathsOntologie, MongoDB, musique langage, OS, Pharo, PharoCloud, PhyloclassTalk, PlagueDoctor, Prague Lambda, programmtion, shutdown, slots, Smalltalk, sons, Squeak, Symbolic Sound, système d'exploitation

Torsten Bergmann - Gittingers Kosmos

German lectures from Claus Gittinger (author of Smalltalk/X and VM expert) on LISP (and also Smalltalk).