. .

smalltalk

MethodWrappers Find Their Way to Squeak

22 September 2011 7:44:27 PM

Torsten notes that Method Wrappers have been ported to Squeak:

Eliot ported Method wrappers to Squeak 4.2. If you know VisualWorks you may already know that Method Wrappers can add hidden behavior to a method without recompiling it. It is a very useful package for implementing coverage and tracing tools.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

smalltalk

Dolphin on the Mac?

22 September 2011 2:22:17 PM

Ported via Wineskin, and it looks good. Take a look at the screencast.

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

Smalltalk Superpowers

22 September 2011 8:09:17 AM

Spotted in ObjologyTravis found another one:

lk is like a gun, that "with great power comes great responsibility." Some times, some of the tricks tempt me, and if I know no one's looking (read: I'm not going to be putting this in any production code), I find myself looking around for opportunities to flex a little bit of language super power muscle. Just for the grins. Just because I can.

If you want to see a "don't try this at home" example, follow the link :)

posted by James Robertson

 Share Tweet This

smalltalk

Seafox Gets Updated

21 September 2011 8:57:34 PM

Via Torsten:

There is an updated version of Seafox for Seaside, now with an HTML to canvas translator. It's helps you building real Seaside apps from existing HTML templates. You can read more about it here

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

smalltalk

What is Moose?

21 September 2011 5:43:55 PM

If you've heard about the Moose project, but haven't been able to wrap your head around it - maybe this video presentation from Doru will help. Hat tip Torsten

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

Macro Expansion and Smalltalk

20 September 2011 2:11:42 PM

Travis has been working on a few ideas to change this sort of code:


<1s> ^self <2s> <3s>'     
	expandMacrosWith: aVariableName     
	with: aBasicAccessingMethod     
	with: sizeof + 1

To something more like this:


<1s>At: anOffset     
	^self <2s> anOffset * <3p> + <4p>'     
		_1: aVariableName     
		_2: aBasicAccessingMethod     
		_3: aByteSize    
		 _4: sizeof + 1

I see what he's trying to do, and you should read his explanation. I do have some nervousness about how it will be used in application code though. This is the sort of thing that's highly useful in tooling, but often quite scay in application code....

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

Smalltalk in Bangalore

19 September 2011 9:31:50 AM

There's a meetup in Bangalore next month

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

smalltalk

Smalltalks 2011 Call for Participation

16 September 2011 1:08:33 PM

The Smalltalks conference - held in Argentina each year - is making a call for participation:

The Fundación Argentina de Smalltalk (FAST, http://www.fast.org.ar) invites you to the 5th Argentine Smalltalk Conference, to be held on November 3, 4 and 5, 2011 at the Quilmes University located in Buenos Aires. Everyone, including teachers, students, researchers, developers and entrepreneurs, are welcome as speakers or attendees. Registration is free and now open

Technorati Tags: , ,

posted by James Robertson

 Share Tweet This

smalltalk

Interesting VW 7.8 Build Problem

15 September 2011 7:19:59 PM

Today I was in the last bit of an update from VW 7.6 to VW 7.8 (the last bit of the major work; I'm sure there will be small stuff popping up for weeks yet). The thing I ran into was in my build tool - it just wouldn't build a working runtime. I assumed it was a problem with my script, so I tried RTP to see if things went differently for me (even though I really dislike RTP...). Lo and behold, it failed the same way, but I managed to get an error log (no idea why my build didn't spit one out, but there it is). This method caused me fits, in SystemEventInterest:


notifyStoreBrowser
	"StoreRefactoringBrowser has an interest in #earlySystemInstallation.   When that event occurs,
	 it will clear out any open browsers."

	

	Store.Glorp.StoreRefactoringBrowser cleanUpObsoleteInstances

I have no idea why that doesn't have an "isRuntime" check in it - and after speaking to some people at Cincom, I learned that it's probably the eventual answer. In any case, I changed it to look like this:


notifyStoreBrowser
	"StoreRefactoringBrowser has an interest in #earlySystemInstallation.   When that event occurs,
	 it will clear out any open browsers."

	

	DeploymentOptionsSystem isRuntime
		ifFalse: [Store.Glorp.StoreRefactoringBrowser cleanUpObsoleteInstances].

Which prevents the message from being sent to the (deleted in a runtime) class. It's always something :)

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

smalltalk

Deep Thoughts on SUnit

15 September 2011 4:19:27 PM

Joachim has some ideas for cleaning up the differences between assert:/should: and deny:/shouldnt: in SUnit. Since the latter messages take blocks (while the former take boolean expressions), he wants to add (or assume it's been added) #value to object and put all of the functionality in the first set of messages.

I recall many a debate over having #value in Object, and I know that it was removed from VisualWorks a few releases ago (although every project I've ever seen has added it back). Joachim's ideas seem reasonable to me; Simpler is usually better.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

Previous Next (1106 total)