. .

smalltalk

Pharo and Seaside Get Faster

February 26, 2012 8:16:06.000

Phillippe Marschall posted some interesting numbers on Seaside optimation work:

After some optimizations in both Seaside and AJP I managed to break 8000 requests / sec with a single Pharo 1.3 image. Thanks to SystemProfiler I knew where to look. This is with a single request handler that just returns a two byte response. It doesn't involve any rendering, sessions, continuations or whatsoever but it kicks on the full Seaside request handling machinery with a request context and everything.

It would be interesting to see how many requests a more "normal" set of pages could handle, but this sounds pretty cool.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

podcast

IM 67: Have Objects Failed Us?

February 26, 2012 11:23:18.974

Welcome to episode 67 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson and David Buck.

This week Dave and I talked to Dave Thomas (of OTI fame) on the broad topic of whether "objects have failed us". That came up based on a thread floating between the Squeak and VWNC mailing lists recently. After the chat, Dave sent us a PDF presentation he's given on this topic.

You can subscribe to the podcast in iTunes (or any other podcatching software) using this feed directly or in iTunes with this one.

To listen now, you can either download the mp3 edition, or the AAC edition. The AAC edition comes with chapter markers. You can subscribe to either edition of the podcast directly in iTunes; just search for Smalltalk and look in the Podcast results. You can subscribe to the mp3 edition directly using this feed, or the AAC edition using this feed using any podcatching software. You can also download the podcast in ogg format.

If you like the music we use, please visit Josh Woodward's site. We use the song Troublemaker for our intro/outro music. I'm sure he'd appreciate your support!

If you have feedback, send it to jarober@gmail.com - or visit us on Facebook - you can subscribe in iTunes using this iTunes enabled feed.. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!

Technorati Tags: ,

Enclosures:
[im67.mp3 ( Size: 12096411 )]

posted by James Robertson

 Share Tweet This

podcastAAC

IM 67: Have Objects Failed Us? (AAC)

February 26, 2012 11:23:51.964

Welcome to episode 67 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson and David Buck.

This week Dave and I talked to Dave Thomas (of OTI fame) on the broad topic of whether "objects have failed us". That came up based on a thread floating between the Squeak and VWNC mailing lists recently. After the chat, Dave sent us a PDF presentation he's given on this topic.

You can subscribe to the podcast in iTunes (or any other podcatching software) using this feed directly or in iTunes with this one.

To listen now, you can either download the mp3 edition, or the AAC edition. The AAC edition comes with chapter markers. You can subscribe to either edition of the podcast directly in iTunes; just search for Smalltalk and look in the Podcast results. You can subscribe to the mp3 edition directly using this feed, or the AAC edition using this feed using any podcatching software. You can also download the podcast in ogg format.

If you like the music we use, please visit Josh Woodward's site. We use the song Troublemaker for our intro/outro music. I'm sure he'd appreciate your support!

If you have feedback, send it to jarober@gmail.com - or visit us on Facebook - you can subscribe in iTunes using this iTunes enabled feed.. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!

Technorati Tags: ,

Enclosures:
[im67.m4a ( Size: 16610418 )]

posted by James Robertson

 Share Tweet This

smalltalk

Craig Latta on Spoon

February 26, 2012 17:11:58.000

Craig Latta has posted a presentation/demo on Spoon:

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 199: HTTP in Pharo

February 27, 2012 10:33:43.866

Today's Smalltalk 4 You looks at using HTTP in Pharo Smalltalk. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To watch now, click on the image below:

HTTP

If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.

You can also watch it on YouTube:

Technorati Tags: , ,

Enclosures:
[st4u199-iPhone.m4v ( Size: 2976117 )]

posted by James Robertson

 Share Tweet This

smalltalk

The Bleeding Edge: Nautilus in Pharo

February 27, 2012 16:50:12.000

Mariano has a nice step by step discussion of how and why to give the Nautilus browser a try in the leading edge Pharo environments

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

js4u

JS 4U 135: JQuery Find Part 1

February 28, 2012 9:43:34.708

Javascript 4 U

Today's Javascript 4 You looks at the find() function in JQuery. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube.

Join the Facebook Group to discuss the tutorials. You can view the archives here.

To watch now, click on the image below:

find()

If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.

You can also watch it on YouTube:

Technorati Tags: , ,

Enclosures:
[js4u135-iPhone.m4v ( Size: 2317145 )]

posted by James Robertson

 Share Tweet This

copyright

Stupid is as Stupid Does

February 29, 2012 8:31:23.090

I see that it's not just the RIAA and MPAA that have terminal stupidity - there are artists out there who are afflicted as well. Consider what Spotify calls "windowing" - releasing music to iTunes (and other digital sales sites) prior to letting them play on streaming services. The theory is that this amplifies sales. That theory is just stupid, as John Irwin of Spotify explains:

Certainly it's not supported at all by data and facts. There's no data to suggest that it does [negatively affect] sales. To the contrary, our indicators point out that if you want to increase sales, you ought to be increasing access to your music. People want to listen to music--they don't want a 30-second sample. It's kind of wrongheaded to think you're creating scarcity by withholding [music from Spotify]. When you withhold a record on Spotify, it is available on torrent sites, on Grooveshark, as well as on YouTube likely. You're not creating any kind of scarcity.

The reality is this: everything you could download is available for free if you spend a couple of minutes looking. Most people are willing to pay if you make it simple enough. Make it hard, and you'll just increase piracy. That then generates idiocy like SOPA and ACTA, as a response to the eariler stupidity. It becomes a really vicious circle, in which no one wins....

posted by James Robertson

 Share Tweet This

st4u

ST 4U 200: A Case Statement in Smalltalk

February 29, 2012 10:59:24.463

Today's Smalltalk 4 You looks at implementing a case statement construct in VA Smalltalk. If you would like to download the code, links are below, in the walkthrough section. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To watch now, click on the image below:

Case Statement.

If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.

You can also watch it on YouTube:


Today we'll build a simple case statement class in VA Smalltalk. Why? People are often surprised that Smalltalk does not have one, so building one is a good way of showing how Smalltalk works to a new user, while implementing a concept that's familiar to them. To get started, define a new class:


Object subclass: #CaseStatement
    instanceVariableNames: 'cases defaultCase '
    classVariableNames: ''
    poolDictionaries: ''



The cases will be stored in a dictionary, and the default case will be held in the defaultCase variable. In this example, we'll default that to a simple Transcript write. Next, let's add the instance creation code:


addAll: associationsOrDictionary
	^self addAll: associationsOrDictionary default: self simpleDefaultCase.

addAll: associationsOrDictionary default: default
	^self new addAll: associationsOrDictionary default: default

Here we allow for the definition of a default case, and for the inbound cases to be either a dictionary or a collection of associations. We'll see how that gets handled in the instance code:


addAll: associationsOrDictionary default: default
	|associations |
	
	associations := associationsOrDictionary isDictionary
		ifTrue: [associationsOrDictionary associations]
		ifFalse: [associationsOrDictionary].
	associations do: [:each | self addCase: each].
	defaultCase := default

Note the conversion of string keys to symbols - that ensures that we have unique keys. For the values, we simply assume any object that responds to #value. It'll probably be a block, but that's not all that could be done there. Now let's look at the execution:


caseAt: keyName
	"execute the corresponding value"
	
	| key val |
	
	key := keyName isString
		ifTrue: [keyName asSymbol]
		ifFalse: [keyName].
		
	val := self cases at: key ifAbsent: self defaultCase.
	^val value

Again, we convert the key if necessary, then do a lookup. If that fails, we simply use the default case. Finally, we send #value to the looked up case. That's it - we now have a case statement in Smalltalk.

Want the code? Download it here.

Need more help? There's a screencast for other topics like this which you may want to watch. Questions? Try the "Chat with James" Google gadget over in the sidebar.

Technorati Tags: , ,

Enclosures:
[st4u200-iPhone.m4v ( Size: 5173702 )]

posted by James Robertson

 Share Tweet This

smalltalk

Learn Amber

February 29, 2012 14:33:34.000

There's a YouTube channel full of screencasts

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

VisualWorks Can Make Pretty Apps

February 29, 2012 16:16:00.000

It might take some effort on your part, but have a look at what Cognitone has done

Technorati Tags:

posted by James Robertson

 Share Tweet This

js4u

JS 4U 136: JQuery Find Part 2

March 1, 2012 8:16:54.248

Javascript 4 U

Today's Javascript 4 You continues our look at the find() function in JQuery. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube.

Join the Facebook Group to discuss the tutorials. You can view the archives here.

To watch now, click on the image below:

find()

If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.

You can also watch it on YouTube:

Technorati Tags: , ,

Enclosures:
[js4u136-iPhone.m4v ( Size: 1442801 )]

posted by James Robertson

 Share Tweet This

smalltalk

Summer Of Code Ideas?

March 1, 2012 11:45:32.276

Spotted in comp.lang.smalltalk Google Group

Let we apply this year again for the Google Summer of Code, which as you know is a Google's stipendium program for students to encourage them working on open-source projects [1]. Ok, our first step as community is to collect ideas for possible projects and to apply to the GSoC as an organization.

Follow the link to get involved in the conversation.

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 201: Using the Case Statement

March 2, 2012 11:09:21.915

Today's Smalltalk 4 You looks at using our simple case statement class from last time. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To watch now, click on the image below:

case statement.

If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.

You can also watch it on YouTube:


Today we'll make use of the case statement code we built last time. Here's the workspace we'll use:


dict := Dictionary new.
dict at: 1 put: [Transcript show: 'This is One'].
dict at: 2 put: [Transcript show: 'This is Two'].

case := CaseStatement new.
case addAll: dict.
case caseAt: 1.
case caseAt: 2.
case caseAt: 3.

case removeCase: 2.
case caseAt: 2.


That creates a simple case statement with two cases (and at the end, removes one of them). Try the first three lines after defining the dictionary and adding it to the CaseStatement - you should see this in the Transcript:

Case Statement

Now execute the removal, and try the last line:

Case Statement

After removing the second case, we get the default case when trying it (as expected). That's it - we now have a working Case Statement object in Smalltalk. Next time you run into someone asking about one, you'll have it

Need more help? There's a screencast for other topics like this which you may want to watch. Questions? Try the "Chat with James" Google gadget over in the sidebar.

Technorati Tags: , ,

Enclosures:
[st4u201-iPhone.m4v ( Size: 3579475 )]

posted by James Robertson

 Share Tweet This

news

Is Anyone Surprised By The Volt Fail?

March 3, 2012 10:29:04.934

I'm not surprised by the failure of the Volt:

GM, which is based in Detroit, announced to employees at one of its facilities that it was halting production of the beleaguered electric car for five weeks and temporarily laying off 1,300 employees.

I suspect that the production shutdown will be more prolonged than that. Electric cars are a luxury status item, not a useful transit option. Why do I say that? Well, consider: if you live in the suburbs, the range problem makes them highly impractical. If you live in the city, where that's less of an issue, there's the charging problem. Where, pray tell, do you charge one for the multiple hours you need if you usually park it on the street?

Hybrids make perfect sense to me; pure electric vehicles? Not so much. They've been "the car of the future" for a century now, and they'll still be "the car of the future" for a very, very long time.

Update: To clarify - yes, the Volt has a gas tank, so it has the range of a regular car. The fact remains though: the battery is an expensive brick for most people. If you live in the city and use street parking, you'll never get to charge it. If you live in the suburbs, you'll only get to charge it at home (and based on the charge time using a standard 110 outlet, never enough). This car solves no problems, but it sure gives the owner new ones to deal with.

Technorati Tags:

posted by James Robertson

 Share Tweet This

podcast

IM 68: There is so a Spoon

March 4, 2012 10:28:19.761

Welcome to episode 68 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson and David Buck.

This week I interviewed Craig Latta about Spoon - his technology for making Smalltalk systems small and modular. It's a lot more than that, as you'll hear on the podcast - his approach also brings the ability to use general development tools (i.e., text editors) for development. If you want to see more about Spoon, check out Craig's screencast on it.

You can subscribe to the podcast in iTunes (or any other podcatching software) using this feed directly or in iTunes with this one.

To listen now, you can either download the mp3 edition, or the AAC edition. The AAC edition comes with chapter markers. You can subscribe to either edition of the podcast directly in iTunes; just search for Smalltalk and look in the Podcast results. You can subscribe to the mp3 edition directly using this feed, or the AAC edition using this feed using any podcatching software. You can also download the podcast in ogg format.

If you like the music we use, please visit Josh Woodward's site. We use the song Troublemaker for our intro/outro music. I'm sure he'd appreciate your support!

If you have feedback, send it to jarober@gmail.com - or visit us on Facebook - you can subscribe in iTunes using this iTunes enabled feed.. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!

Technorati Tags: ,

Enclosures:
[im68.mp3 ( Size: 12390016 )]

posted by James Robertson

 Share Tweet This

podcastAAC

IM 68: There is so a Spoon (AAC)

March 4, 2012 10:29:02.571

Welcome to episode 68 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson and David Buck.

This week I interviewed Craig Latta about Spoon - his technology for making Smalltalk systems small and modular. It's a lot more than that, as you'll hear on the podcast - his approach also brings the ability to use general development tools (i.e., text editors) for development. If you want to see more about Spoon, check out Craig's screencast on it.

You can subscribe to the podcast in iTunes (or any other podcatching software) using this feed directly or in iTunes with this one.

To listen now, you can either download the mp3 edition, or the AAC edition. The AAC edition comes with chapter markers. You can subscribe to either edition of the podcast directly in iTunes; just search for Smalltalk and look in the Podcast results. You can subscribe to the mp3 edition directly using this feed, or the AAC edition using this feed using any podcatching software. You can also download the podcast in ogg format.

If you like the music we use, please visit Josh Woodward's site. We use the song Troublemaker for our intro/outro music. I'm sure he'd appreciate your support!

If you have feedback, send it to jarober@gmail.com - or visit us on Facebook - you can subscribe in iTunes using this iTunes enabled feed.. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!

Technorati Tags: ,

Enclosures:
[im68.m4a ( Size: 17157626 )]

posted by James Robertson

 Share Tweet This