Posted by Damien Pollet
Thu, 15 Mar 2007 15:05:00 GMT
Giovanni Corriga has announced that Squeak was accepted as a mentoring organization for this year’s Summer of Code:
I’d like to thank all the people who helped preparing Squeak’s submission form, and all the mentors and students that have made themselves available for this effort.
Indeed, thanks to you too, Giovanni!
If you are motivated to have fun hacking with Squeak and getting paid for it, there is a list of project ideas on the Squeak.org wiki, and of course you can propose your own.
James Robertson and Serge Stinckwich also relayed the announce. And GNUstep is in too.
Posted in Coding | Tags google, squeak | no comments
Posted by Damien Pollet
Fri, 05 Jan 2007 17:51:40 GMT
Tim Burks recently announced RubyObjC, a new binding between the Ruby and Objective-C programming languages. Tim previously documented the other Ruby/Objective-C binding, RubyCocoa, through the rubycocoa.com website.
To get started with RubyObjC:
- install the gem:
sudo gem install rubyobjc --source http://www.rubyobjc.com
- generate an application:
rubyapp myapp
- build it:
cd myapp; rake
- run it:
rake run
Then follow the tutorial.
On the implementation side, the docs mention that RubyObjC directly inserts handlers for Ruby methods in Objective-C method tables and adds handlers for Objective-C methods to the Ruby method tables, so the bridging overhead should be minimal.
I would really like to have such a bridge for Squeak…
Update: RubyCocoa 0.10.0 was just released too (via lrz).
Posted in Coding | Tags objc, ruby | 4 comments
Posted by Damien Pollet
Wed, 13 Dec 2006 02:15:54 GMT
James Robertson already nicely answered this guy about Cees’ comments on Java, so I…must…not…troll…further…phew.
But I couldn’t ignore this:
6 months isn’t really enough to get properly comfortable with all aspects of a language.
OK, so let’s make my timeline of things with Smalltalk:
- getting over the, hmm, aesthetics of Squeak… not sure I’m done with that :-)
- learning the whole syntax, 30min.
- starting to get my way using the tools and write simple stuff, 1 day.
- knowing the basic stuff in the library, like iterations, conditionals, understanding that the debugger is really my best friend: 1 week
- getting used to the image, exploring the system, reading the source, and starting to get what object-orientation really was about: 1-2 months. At this point, reading code really becomes an opportunity to learn interesting new stuff from others.
It’s been a little bit more than six months now and think I can say I’m properly comfortable with all aspects of the language. In fact I’ve also looked into all this machinery that looked like a mysterious black monolith before: the metaclass hierarchy, what exactly is a virtual machine doing, how are exceptions and continuations implemented, at the runtime objects like CompiledMethod, the bytecodes, etc.
Even with Python or Ruby I wasn’t drawn in the language like with Smalltalk. Both have really weird design decisions, like meaningful spaces, and the general procedural-with-OO-afterthought feeling for Python, or the inheritance and interpreter kludges in Ruby. Smalltalk and in particular Squeak does have ugly code (Morphic anyone?), but it’s just library code. The language itself has a beautiful ideal and it’s so light and fast while being so dynamic, you just have to go and look how that miracle happens.
Posted in Coding | Tags praise, python, ruby, smalltalk | no comments
Posted by Damien Pollet
Wed, 01 Nov 2006 23:42:57 GMT
Here is a cool hack with the exceptions of Smalltalk that Lukas Renggli just explained to me.
Sometimes the code needs access to an object that is well-known but whose actual identity depends on the context. A global variable or a Singleton pattern would be justified because the role is global, but that can’t work directly if the actual object playing this well-known role changes in some parts of the control flow.
Read more…
Posted in Coding | Tags smalltalk, trick | no comments
Posted by Damien Pollet
Fri, 29 Sep 2006 18:53:34 GMT
…well, you extend it, of course :-)
This afternoon Stéphane showed me the Object haltIf: method in Squeak. The boring part of the code goes like this:
haltIf: condition
"... here be fun stuff (see below) ..."
(condition isBlock
ifTrue: [condition valueWithPossibleArgument: self]
ifFalse: [condition])
ifTrue: [Halt signal]
When the condition argument is a block, haltIf: will spawn the debugger only if condition evaluates to true. So instead of adding a self halt. in your code, you can put self haltIf: [ "hmm do I really want to halt here?" ].
The funnier part goes like this:
Read more…
Posted in Coding | Tags smalltalk, trick | 1 comment
Posted by Damien Pollet
Thu, 07 Sep 2006 21:09:00 GMT
Besides getting more faces to put on mailing-lists posts, meeting Squeak and VisualWorks hackers during this whole week has been very motivating:
While Stef wrote tests for Regex, Oscar Nierstrasz and I started porting some good ideas from the string manipulation methods of Ruby to Squeak: and here is RubyShards.
I contributed my share of bugs to Damien Cassou’s ImageForDevelopers that will install a bunch of stuff from SqueakMap and SqueakSource and make a nicer base image.
Philippe Marschall from the Berne group spent quite some time with me trying to add static URLs for the main menu of SqueakSource, but it uses an ancient release of Seaside, so the patch would end up duplicating functionality (better help upgrading SqS to the latest Seaside I guess).
We also saw also some quite interesting talks during the research session, in particular from the team at ULB which is planning to record object histories (yes, execution traces with full state) or Romain Robbes from Lugano who wants to spy all actions the developer makes to make meaningful versioning systems.
Finally I think anyone will remember Plopp developed by the team at Impara, and winner of this year’s ESUG Awards ;-)
Posted in Coding | Tags conference, esug, smalltalk, trip | no comments
Posted by Damien Pollet
Thu, 23 Feb 2006 22:49:00 GMT
This weekend I’ll be attending the Fosdem in Bruxelles.
Between two beers, I’ll most probably spend most of my time with the Étoilé guys, getting started with GNUstep, hacking on the Nokia 770 or doing Smalltalk stuff.
See you there!
Posted in Coding | Tags beer, conference, fosdem, gnustep, libre, n770, trip | no comments
Posted by Damien Pollet
Sun, 18 Sep 2005 00:49:00 GMT
I’ve put together a small script to help creating the patches when packaging software for DarwinPorts. Nothing really clever but it’s all in shiny red Ruby code, so I thought it would be pretty on my green blog :-)
DarwinPorts’ packaging conventions for the patch phase are to make one patch named patch-<filename>.diff for each modified file in the upstream sources. Also, those patches will be applied with patch -p0, so either you have to call diff from the modified sources tree, or you have to go in each patch file and tweak stuff and it’s really tedious and I’m too lazy to do that by hand repeatedly.
Read more…
Posted in Coding | Tags automation, DarwinPorts, ruby, script | no comments
Posted by Damien Pollet
Sun, 14 Aug 2005 01:53:58 GMT
Aqsis is a powerful open-source 3D renderer that implements Pixar’s Renderman specification and Reyes algorithm (remember BMRT?).
I’ve written a Portfile for it but it’s based on a CVS snapshot so I can’t submit it to DarwinPorts yet. In the meantime, those of you curious enough to try will find the necessary files and instructions here.
Posted in Coding, Graphics | Tags 3D, aqsis, porting | 4 comments
Posted by Damien Pollet
Fri, 05 Aug 2005 20:22:51 GMT
Tobias just released Typo 2.5! You can get it from the wiki or on rubyforge. If you want to see what it looks like, Justin wrote a review of the changes with many screenshots of the new admin interface.
I’m quite proud of this because that’s the first time I contribute real stuff to an open-source project — parts of the static caching system — but Scott is probably the one to blame for more than doubling the number of changesets since the last release :-)
Posted in Coding | Tags release, typo | 1 comment