Monthly Archives: August 2014

Flickr API Wrapper

Sean started a little wrapper. It does a few basic things. Enjoy!

Gofer it
	smalltalkhubUser: 'SeanDeNigris' project: 'Flickr';
	configuration;
	loadDevelopment.

"Global setup"
Flickr
	userID: myUserID;
	apiKey: myApiKey.

"Generic usage"	
Flickr new
	set: 'photo_id' to: '4975793876';
	get: 'flickr.photos.getInfo'.

"Smalltalk model"	
(FlickrUser named: 'Rebel Shea') id.

"This won''t work because we need to exclude our user_id... not sure how to
proceed"
(FlickrUser fromUrl: 'https://www.flickr.com/photos/rebelshea/4975793876'
asUrl) id.
Advertisements

Teapot: a micro web framework for Pharo

Hello,

I'd like to announce a new micro web framework called Teapot. It follows a
similar philosophy than other lightweight frameworks like
Sinatra/Bottle/Flask/Spark. Teapot is built on top of the Zn HTTP
components, and less than 500 lines long.

More info:

http://smalltalkhub.com/#!/~zeroflag/Teapot
Gofer it
  smalltalkhubUser: 'zeroflag' project: 'Teapot';
  configuration;
  loadStable.

Attila

Another weekly iteration: The power of doing at work

40181
13898 RBBlockNode>>#equalTo:withMapping: uses #to:do: instead of #with:do: (Coding Idiom Violation)
https://pharo.fogbugz.com/f/cases/13898

13901 move DoubleLinkedListTests, LRUCacheTests and TTLCacheTests from Tests
https://pharo.fogbugz.com/f/cases/13901

13896 RBBlockNode>>#= uses #to:do: instead of #with:do: (Coding Idiom Violation)
https://pharo.fogbugz.com/f/cases/13896

13900 move TextDiffBuilderTest to ToolsTest
https://pharo.fogbugz.com/f/cases/13900

13892 Example methods should be runnable in Nautilus
https://pharo.fogbugz.com/f/cases/13892

40180
13899 RBCascadeNode uses #to:do: instead of #with:do: (Coding Idiom Violation)
https://pharo.fogbugz.com/f/cases/13899

13895 #hasReportableSlip should call #containsHalt
https://pharo.fogbugz.com/f/cases/13895

13271 inconsistent behaviour when debugging
https://pharo.fogbugz.com/f/cases/13271

13893 Lint rule for checking block argument assignment.
https://pharo.fogbugz.com/f/cases/13893

40176
13878 Better comment in Date(class)>>fromString: and test
https://pharo.fogbugz.com/f/cases/13878

13870 Spotlight: small enhancement for resolving symbols
https://pharo.fogbugz.com/f/cases/13870

13862 Merge OCompletion into Ecompletion
https://pharo.fogbugz.com/f/cases/13862

40175
13877 Clean up Settings related to Code Browsing
https://pharo.fogbugz.com/f/cases/13877

13855 Small critique cleanup of Tool-Base
https://pharo.fogbugz.com/f/cases/13855

40174
13859 replace two uses of OCKeyedSet with Dictionary
https://pharo.fogbugz.com/f/cases/13859

13856 Trivial cleanup in DebuggerModel
https://pharo.fogbugz.com/f/cases/13856

13857 temporary fix old Browser to allow access to class organization protocol
https://pharo.fogbugz.com/f/cases/13857

13819 Remove Check for Slips Preference
https://pharo.fogbugz.com/f/cases/13819

40173
10146 Semantic analysis: TempVars should not have index
https://pharo.fogbugz.com/f/cases/10146

10144 Improve Comments Opal
https://pharo.fogbugz.com/f/cases/10144

13853 GroupWindowMorph does not use themed background color.
https://pharo.fogbugz.com/f/cases/13853

40172
13848 EyePatch for inspectors eye
https://pharo.fogbugz.com/f/cases/13848

13820 Move #useAstColoring setting to the Shout settings group
https://pharo.fogbugz.com/f/cases/13820

13852 MNU on ChangeSorter fileOut
https://pharo.fogbugz.com/f/cases/13852

40171
13526 System Browser Add Class menu item does not offer current class as a superclass
https://pharo.fogbugz.com/f/cases/13526

40168
13825 MNU: receiver of protocolsFor: is nil
https://pharo.fogbugz.com/f/cases/13825

13835 Small cleanup in System-Changes
https://pharo.fogbugz.com/f/cases/13835

13836 Clean up RecentSubmissions more
https://pharo.fogbugz.com/f/cases/13836

13834 Small Completion Cleanup
https://pharo.fogbugz.com/f/cases/13834

40167
13838 Update Zn+Zdc August 2014
https://pharo.fogbugz.com/f/cases/13838

40166
13817 remove setting for showing diffs in change list
https://pharo.fogbugz.com/f/cases/13817

13807 nil protocol and unclassified in ValueLink
https://pharo.fogbugz.com/f/cases/13807

13805 mustBeBooleanMagicIn: can crash the vm
https://pharo.fogbugz.com/f/cases/13805

40165
13773 implement drawOnAthensCanvas on MenuItemMorph and MenuLineMorph
https://pharo.fogbugz.com/f/cases/13773

13754 cleaning strings API
https://pharo.fogbugz.com/f/cases/13754

13815 Finder: remove non-needed preference
https://pharo.fogbugz.com/f/cases/13815

13826 Extended search… fooled by block arguments
https://pharo.fogbugz.com/f/cases/13826

13789 AthensWrapMorph can not paint gradient fill
https://pharo.fogbugz.com/f/cases/13789

13806 Remove ThreadSafeTranscriptPluggableTextMorph
https://pharo.fogbugz.com/f/cases/13806

40164
13787 Implement SequenceableCollection >> reverseWithIndexDo:
https://pharo.fogbugz.com/f/cases/13787

13526 System Browser Add Class menu item doesn t offer current class as a superclass
https://pharo.fogbugz.com/f/cases/13526

13814 DiffMethodReferenceConverter not needed
https://pharo.fogbugz.com/f/cases/13814

13816 Unify default method templates + Shout critique clean
https://pharo.fogbugz.com/f/cases/13816

13813 Nautilus Refactoring 7: rename methods
https://pharo.fogbugz.com/f/cases/13813

40163
13821 Concentrate tools shortcuts in a single class
https://pharo.fogbugz.com/f/cases/13821

13097 Keymapping: Cmd-n Cmd-c gives error message
https://pharo.fogbugz.com/f/cases/13097

13027 KeyCombination pretty printing is broken
https://pharo.fogbugz.com/f/cases/13027

40162
13801 BlockClosureTest failing
https://pharo.fogbugz.com/f/cases/13801

13799 Forward port 4: 13796 DNU ReadWriteStream>>fileIn in SmalltalkEditor>>fileItIn
https://pharo.fogbugz.com/f/cases/13799

13804 #acceptBasic leads to #mustBeBoolean error (which is catcher by an on: Error do:[]]
https://pharo.fogbugz.com/f/cases/13804

13803 Inspecting a Dictionary is broken
https://pharo.fogbugz.com/f/cases/13803

13802 failing test: testLocalMethodsOfTheClassShouldNotBeRepeatedInItsTraits
https://pharo.fogbugz.com/f/cases/13802

40161
13795 Browsing certain classes takes several seconds
https://pharo.fogbugz.com/f/cases/13795

13800 another small SystemNavigation cleanup
https://pharo.fogbugz.com/f/cases/13800

13798 empty package UI can be deleted
https://pharo.fogbugz.com/f/cases/13798

40160
13639 RealEstateAgent
https://pharo.fogbugz.com/f/cases/13639

13797 RecentMessages: remove useAsSet Preference
https://pharo.fogbugz.com/f/cases/13797

40159
13775 Move two methods from SystemNavigation to AbstractTool
https://pharo.fogbugz.com/f/cases/13775

40158
11709 remove old ObjectExplorer
https://pharo.fogbugz.com/f/cases/11709

40157
13770 Restore Menu Item to Add accessors for anInstVar
https://pharo.fogbugz.com/f/cases/13770

13771 User Permission cannot be read from User
https://pharo.fogbugz.com/f/cases/13771

13794 Make Tools-Explorer unloadable
https://pharo.fogbugz.com/f/cases/13794

40156
13793 Enable new Pointer Explorer
https://pharo.fogbugz.com/f/cases/13793

13764 Simplify RecentSubmissions
https://pharo.fogbugz.com/f/cases/13764

40155
13774 EyePointerExplorer
https://pharo.fogbugz.com/f/cases/13774

13792 remove #callers
https://pharo.fogbugz.com/f/cases/13792

13784 Color>>#asColorref ignores blue
https://pharo.fogbugz.com/f/cases/13784

40154
13777 remove empty package Settings-Monticello
https://pharo.fogbugz.com/f/cases/13777

13780 Wrong compilation context in mustBeBooleanInMagic:
https://pharo.fogbugz.com/f/cases/13780

13762 OCInstanceVariable not needed
https://pharo.fogbugz.com/f/cases/13762

13788 Unused method in StringMorph
https://pharo.fogbugz.com/f/cases/13788

13776 EyeSyntaxTreeInspector
https://pharo.fogbugz.com/f/cases/13776

13759 Small Code critique pass over 3 tools packages
https://pharo.fogbugz.com/f/cases/13759

13760 Continue remvoving RGFactory
https://pharo.fogbugz.com/f/cases/13760

40153
13763 SyntaxErrorNotification: errorMessage ivar not needed
https://pharo.fogbugz.com/f/cases/13763

13782 add preference the DEBUG menu entires of Nautilus
https://pharo.fogbugz.com/f/cases/13782

13767 packagetree changes visible selection even if okToChange is false
https://pharo.fogbugz.com/f/cases/13767

13778 Workspace: fix non-declared temp vars
https://pharo.fogbugz.com/f/cases/13778

13781 class Refactor not needed
https://pharo.fogbugz.com/f/cases/13781

40152
13752 4 tests failing on main build due to the decompiler
https://pharo.fogbugz.com/f/cases/13752

13766 DictionaryValueHolder>>#at:ifAbsentPut: always use a caught DNU
https://pharo.fogbugz.com/f/cases/13766

13768 EyeInspector BasicIndexedEyeElement hash is too slow
https://pharo.fogbugz.com/f/cases/13768

SXSoundEx for Pharo

Hi all

As part of a recent project I was asked to create a small soundex thingy.
http://en.wikipedia.org/wiki/Soundex

I told the company that I’d do it but it’d be opensource and I’d give it to the community.
They agreed so here it is!
You can find it here http://www.smalltalkhub.com/#!/~riverdusty/SXSoundEx
Hope it’ll be useful for someone.

Regards

Gareth Cox
IT Manager/Developer
Inspired Org (PTY) Ltd
tell: +27 (0)21 531 5404
cell: +27 (0)78 374 9035

Jasny bootstrap

Hi,

The Bootstrap wrapping project for Seaside now has also support for the Jasni Bootstrap 
extension (see http://jasny.github.io/bootstrap).

Seaside Examples can be found on the following URL's

http://pharo.pharocloud.com/bootstrap/browser/Jasny%20-%20Button%20Label
http://pharo.pharocloud.com/bootstrap/browser/Jasny%20-%20Input%20Mask
http://pharo.pharocloud.com/bootstrap/browser/Jasny%20-%20Navmenu

Hope this is useful.

Thanks
T.

New Woden Video

Hello,

In a previous email I presented an early video of Woden, my new graphics engine written in Pharo. Here I have a new video in which I show some of the features of Woden: https://www.youtube.com/watch?v=1Nze9tnwYxY&feature=youtu.be

 

With Alex, we started rewriting Roassal 3D using Woden, which can be seen in the second half of the video.

I will try to show many more demos in ESUG.

It also should be possible now to load Woden using the following script:

Gofer new smalltalkhubUser: ‘ronsaldo’ project: ‘Woden’; package: ‘ConfigurationOfWoden’; load. (Smalltalk at: #ConfigurationOfWoden) loadBleedingEdge

Later I will make a stable configuration version.

Greetings,
Ronie

Live Robot Programming

Hi all,

it’s with great joy that I can announce the project that my PhD student Miguel and I have been working on recently: Live Robot Programming, or LRP for short.

LRP is a live programming language designed for the creation of the behavior layer of robots. It is fundamentally a nested state machine language built with robotics applications in mind, but it is not bound to a specific robot middleware, API or OS. Have a look at one minute of LRP programming to get an idea of what it is like:http://youtu.be/4Ma8ZapBUqA

Live programming is fun, and live robot programming even more so, as it brings all the advantages of live programming to programming a robot. You get direct manipulation of a running robot, and that’s just cool beyond words. As an example of LRP on a robot, this guy was programmed in LRP: http://instagram.com/p/pEhm0Oj837/ Note that you can use LRP ‘just’ for live programming nested state machines as well.

More information on LRP is available on its website: http://pleiad.cl/LRP where you can also find download instructions. 

LRP is implemented in Pharo, and uses Roassal2 for the visualization of its state machines. We currently can steer the Lego Mindstorms EV3 and ROS robots, thanks to a small layer on top of the cool Pharo support that Jannik, Luc, Santiago and Noury are implementing at Douai. I am going to look into support for the Parrot AR.Drone 2.0esug in a few weeks. 

Miguel will be at ESUG next week (I cannot make it), and has a talk at the IWST workshop about LRP, in the morning session. I am sure that he will also be happy to give demos of LRP if you ask him to (but sadly without a robot).

All feedback is welcome, and … have fun!

Johan Fabry   –   http://pleiad.cl/~jfabry

HelloPharo: Smooth deployment of Pharo Web Apps

Hello,

At Ta Mère, we are used to deploy Ruby/Rails application with Heroku or on VPS with Capistrano. Almost everybody uses the same tools and techniques in the Rails community so deployment is quite easy once you grasp the process.

The same process was quite frustrating with Pharo. To solve that, we’ve built HelloPharo. It is a tool to deploy small apps to a Linux VPS/VM.

It is heavily inspired by Capistrano, it prones convention over configuration and it wants to be full stack (e.g., serve the assets, restart the processes). It is built with Ansible.
We haven’t released a fixed version yet but the tool starts to be in a good-enough shape to be shown. We want to grab some feedback and fix the most obvious limitations (see the README for more) before releasing version 0.1.0.
If you or your company uses a well defined process to deploy pharo webapps, we are all ears. We think that having a canonical way to deploy simple apps is a must if we want to see wider Pharo adoption for small web companies. This process *must* be Unix friendly if we want to attract Python or Ruby people. Most of them are Devops anyway, the command line is their friend, NOT something they want to avoid.
Pull requests (for code or instructions in the README) are more than welcome. The code and the documentation are MIT licensed.

https://github.com/fstephany/hello-pharo/

Cheers,
Francois

[ANN] TinyMCE for Seaside

Hi,

if you want to use the TinyMCE Editor in your web application
with Seaside then you should/could use this one:

Project + Documentation
http://smalltalkhub.com/#!/~TorstenBergmann/TinyMCE

Simple Demo:
http://pharo.pharocloud.com/tinymce

Nothing special, just a simple file library and an
example on how to use it. But maybe it safes others some
time.

Bye
T.

Bootstrap 0.10.0 with Twitter Bootstrap v3.2.0 and Lighthouse sample app

Hi,

the Bootstrap project (http://smalltalkhub.com/#!/~TorstenBergmann/Bootstrap)
was updated to include the latest Twitter Bootstrap library v.3.2.0
from http://getbootstrap.com

Also you can now use:
 - an RTL/LTR version included for BIDI language applications 
   (see #bootstraprtlminCss and #bootstraprtlCss

 - #tbsContainerFluid beside #tbsContainer.

How to try out:
===============
 1. load "Bootstrap" from Configuration browser in Pharo 3.0
 2. evaluate   

       ZnZincServerAdaptor startOn: 8080

 3. point browser to http://localhost:8080/bootstrap

Side note:
As the config also loads newer seaside you may also notice the return
of the "Seaside Control Panel" in the Tools menu aftwards where you
can also control the server as described in the regular Seaside docu.

Enjoy!

Bye
T.