B4A

martes, julio 08, 2008

Smalltalks 2008 - Buenos Aires - Argentina


Announcement

First invitation to participate in the second conference.

Place
This year, the site chosen was the Universidad Abierta
Interamericana
.

Dates
November 13 through November 15.

Costs
Once again, entry, coffee and pastries will be completely free.

Talks
The conference will be divided into two modules, Scientific Research and Software Industry.

Contest
A coding contest will be held this year.

Keynotes
Guest lectures by outstanding personalities.

Hands-on
Tutorial sessions.

Scope
This is an international conference; smalltalkers from everywhere will be attending.

Important Dates

Conference: November 13 through November 15.

Paper submission deadline (research): August 31.

Presentation submission deadline (software development): September
30.

Contest registration deadline: September 30.

Conference registration deadline: November 7.

REGISTRATIONS CAN ONLY BE MADE THOUGH THE CONFERENCE WEB PAGE (NOT AVAILABLE YET)

Important Addresses

Universidad Abierta Interamericana: Av. Montes de Oca 745.

Conference site:
http://neuquina.lifia.info.unlp.edu.ar:8001/Smalltalks-2008

sábado, junio 28, 2008

ESUG 2008 International Smalltalk Conference


Dear software engineer,

End of August, a unique conference will take place in Amsterdam, The Netherlands. This conference is organized by the European Smalltalk User Group (ESUG).

Smalltalk (http://en.wikipedia.org/wiki/Smalltalk) is a dynamic and reflective language exercising a continuing influence on historic and current developments in programming languages and software technology.

This year celebrates the 16th edition of the ESUG conference, which features more than 40 presentations on, among others, the following subjects:

Programming Language Platforms:
- Newspeak (New open source dynamic language focusing on modularity,
security and interoperability)
- Cog (New highly optimized open source Squeak VM)
- Maglev (Highly scalable Ruby VM)
- OpenCroquet (Deeply collaborative, multi-user online Smalltalk
development environment)

Web Frameworks:
- Seaside (The continuation & component-based web framework)
- WebVelocity
- AidaWeb (Smalltalk Web Application Server)
- WebTerminal

Model Driven Engineering:
- The Meta Environment Language Workbench
- ObjectStudio ModelingTool
- Fame; Meta-modeling Framework
- MBA Smalltalk; to manage your objects

Additionally, the winners of the ABN Amro sponsored Innovation Awards
will be presented.

Are you interested in the latest developments in dynamic languages and
Web development, be sure to register as soon as possible at http://www.esug.org.

Important information:

Conference website:
http://www.esug.org/conferences/16thinternationalsmalltalkjointconference2008/

Time: Augustus 25-29, 2008
Venue: Centrum voor Wiskunde en Informatica (CWI), Kruislaan 413,
Amsterdam, Turing Zaal.
Directions: http://www.cwi.nl/about/directions.html

Hope to see you at ESUG'08!

Kind regards

ESUG 2008

sábado, marzo 15, 2008

Monticello Backport to Squeak 3.4

To the work I'm doing to BluePlane, the company of Tansel Ersavas and John Magnifico I backported Monticello to run on a Squeak 3.4 image.

The easy way to have it running is download the .cs and install it on a clean stock 3.4 Squeak image.

When installing, you must respond with "yes" when ask to create the pool dictionary MCMockClassPoolRepository and press "ok" when inform about an "Erased Method".

If all goes ok, then you will have Monticello running on your 3.4 image (On the World Menu --> open --> Monticello Browser), as in the pic:


If you are interested in the details of the backport, they are:

1. Filein the source code from PackageInfo (Taken from PackageInfo-Base-avi.18.mcz).

2. When the walback with the DNU error of the TheWorldMenu appear, go to the #initialize method in the debugger, erase the line:

TheWorldMenu registerOpenCommand: {'Package List'. {self. #open}}

and replace it with something as self inform: 'Erased Method' (just a flag).

3. Filein PluggableButtonMorph (Taken from a stock 3.4 image).

4. Modify FileList of 3.4 image:

a- Adding FileReaderRegistry class variable
b- Adding on the class category "file reader registration", the method:

registeredFileReaderClasses

FileReaderRegistry ifNil: [FileReaderRegistry _ OrderedCollection new].
^ FileReaderRegistry

c- Adding on the class category "file reader registration", the method:

registerFileReader: aProviderClass
"register the given class as providing services for reading files"

| registeredReaders |
registeredReaders := self registeredFileReaderClasses.
(registeredReaders includes: aProviderClass)
ifFalse: [ registeredReaders addLast: aProviderClass ]

5. Filein the sources from from Monticello-avi.59.mcz
(Press close if a warning appear)

6. Add at CompileMethod "source code management" category, the method:

getPreambleFrom: aFileStream at: position
| writeStream |
writeStream _ String new writeStream.
position
to: 0
by: -1
do: [:p |
| c |
aFileStream position: p.
c _ aFileStream basicNext.
c == $!
ifTrue: [^ writeStream contents reverse]
ifFalse: [writeStream nextPut: c]]

7. Add at CompileMethod priting category, the method:

timeStamp
"Answer the authoring time-stamp for the given method, retrieved from the sources or changes file. Answer the empty string if no time stamp is available."

"(CompiledMethod compiledMethodAt: #timeStamp) timeStamp"

| file preamble stamp tokens tokenCount |
self fileIndex == 0 ifTrue: [^ String new]. "no source pointer for this method"
file _ SourceFiles at: self fileIndex.
file ifNil: [^ String new]. "sources file not available"
"file does not exist happens in secure mode"
file _ [file readOnlyCopy] on: FileDoesNotExistException do:[:ex| nil].
file ifNil: [^ String new].
preamble _ self getPreambleFrom: file at: (0 max: self filePosition - 3).
stamp _ String new.
tokens _ (preamble findString: 'methodsFor:' startingAt: 1) > 0
ifTrue: [Scanner new scanTokens: preamble]
ifFalse: [Array new "ie cant be back ref"].
(((tokenCount _ tokens size) between: 7 and: 8) and: [(tokens at: tokenCount - 5) = #methodsFor:])
ifTrue:
[(tokens at: tokenCount - 3) = #stamp:
ifTrue: ["New format gives change stamp and unified prior pointer"
stamp _ tokens at: tokenCount - 2]].
((tokenCount between: 5 and: 6) and: [(tokens at: tokenCount - 3) = #methodsFor:])
ifTrue:
[(tokens at: tokenCount - 1) = #stamp:
ifTrue: ["New format gives change stamp and unified prior pointer"
stamp _ tokens at: tokenCount]].
file close.
^ stamp

8. Add commentStamp accessor to class ClassOrganizer.

And in the the WorldMenu now exist the "Monticello Browser" option.

If not, may be some differences between images, that may generate other behaviours, and the need of patch some code from a stock 3.9 image.

If the World Menu don't have the option, you can open the Monticello Browser evaluating on a workspace: "MCWorkingCopyBrowser open".

Idioma de este blog

La verdad es que no he tenido mucho tiempo de publicar nada últimamente, pero tengo ahora algunas cosas del motivo original de este blog, es decir Squeak, que voy a publicar en inglés para evitar tener que hacerlo también en el blog de SqueakPeople.

Quien necesite alguna clarificación en español, sobretodo teniendo en cuenta que mi inglés está muy lejos de ser perfecto, me pregunta y trataré de aclarar.