Why Smalltalk
Andy Berry explains why he has used - and continues to use - Smalltalk as his software development platform of choice.
. .
The author of this blog, James Robertson, passed away in April 2014. This blog is being maintained by David Buck (david@simberon.com).
Andy Berry explains why he has used - and continues to use - Smalltalk as his software development platform of choice.
Today's Smalltalk 4 You looks at the Process Monitor in Squeak. 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:
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: smalltalk, squeak, process, process monitor
Enclosures:
[st4u67-iPhone.m4v ( Size: 3476022 )]
The development process where I work treats bundles as configurations - manifests for all the proper (for that trunk/branch of development) that will go into a release. Given that, individual developers generally don't publish a bundle. A build is created, and part of that process spits out an associated development image. From there, the developer works (and publishes) the package(s) he or she is responsible for.
So... one of the things I got tired of was "let's see what packages have been updated inside the bundle" - so I added a method like this to the browser:
updatePackagesInBundle "add menu item to RB" <menuItem: 'Update Packages in Bundle...' icon: nil nameKey: #mesPackagesUpdate enablement: #isBundleSelected indication: nil menu: #(#pundleMenu) position: 200.1> | pundle stream version match | (self pundles size > 1 or: [Store.DbRegistry isConnected not]) ifTrue: [^Dialog warn: 'Select one bundle and/or establish a Store Connection']. pundle := self pundles first. stream := pundle versionString readStream. stream skip: 1. version := stream upTo: $,. match := version size
I have a class that handles the actual updating, BundleDef. The relevant code there looks like this:
getRecordsAndUpdatePackages self getMatchingRecord. self allContainedPackagesAndBundles. self updateAllPackages.
That gets any newer published package in the same branch (based on the version string passed in), and then iteratively updates each package (including those in contained bundles). The work is in the last two methods above:
allContainedPackagesAndBundles "get the full collection of contained packages and bundles" self allContainedPackagesAndBundlesFor: pundle. containedBundles add: pundle. allContainedPackagesAndBundlesFor: aBundle "answer a collection of all the packages I have, regardless of bundles in the middle" | items | items := aBundle containedItems. items do: [:each | each isBundle ifTrue: [self allContainedPackagesAndBundlesFor: each. containedBundles add: each] ifFalse: [containedPackages add: each]].
And finally, the check and update:
updateAllPackages "iterate over the packages and update them" containedPackages do: [:each | | all newerMatch | all := Store.Package allVersionsWithName: each name newerThan: each. newerMatch := all detect: [:each1 | versionFragment match: each1 version] ifNone: [nil]. newerMatch ifNotNil: [Transcript show: 'Updating: ', each name; cr. newerMatch loadSrc]].
I just verified that this works in the upcoming 7.8 release of VW; it probably does use the (soon to be deprecated) Store objects though. I'll have to investigate that soon
Technorati Tags: visualworks, store, bundle
![]() |
Today's Javascript 4 You. Today we look at using JQuery selectors in conjunction with events. 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:
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: javascript, jquery, events
Enclosures:
[js4u45-iPhone.m4v ( Size: 2876014 )]
A new Smalltalk hosting environment (code repository) is in the process of bootstrapping:
We've been working on a new code repository & project management application for Smalltalk with ESUG named SmalltalkHub. If everything goes fine, the app should be in public beta in a week. The source code of SmalltalkHub will be available at the same moment (the project itself is hosted by SmalltalkHub).
Nicholas Petton has posted a screen shot of the work in progress.
Technorati Tags: squeak, pharo, monticello
Today's Smalltalk 4 You looks at the XML Parser that comes with Squeak 4.2. 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:
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: smalltalk, squeak, xml, xml parser
Enclosures:
[st4u66-iPhone.m4v ( Size: 7814156 )]
The Pharo Project is proud to announce the release of Pharo 1.2.1, the third major release of this clean, innovative, open-source Smalltalk environment.
Follow the link for more details and download info.
Technorati Tags: pharo
Instantiations has a really detailed migration guide online - looks like it has all the information about upgrading that you could possibly need.
Technorati Tags: va smalltalk, instantiations
Looks like Thomas Koschate is going to be exploring the topic of packaging VA Smalltalk apps. I've done a lot of work on the equivalent process in VW; I'll be interested to see what he has to say for comparison purposes.
Technorati Tags: va smalltalk, deployment
![]() |
Today's Javascript 4 You. Today we focus in a little more on how to use JQuery selectors to locate and operate on specific page elements. 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:
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: jquery, javascript, tutorial
Enclosures:
[js4u44-iPhone.m4v ( Size: 6359177 )]
WebQA interviews Nicholas Petton about the various Smalltalk projects he's been involved with - including JTalk, his latest.
Technorati Tags: jtalk, javascript
Last week my Mac starting having bizarre errors - games wouldn't run, apps started crashing. A trip to the Apple store diagnosed the problem - 4 GB of my 8 went bad. I contacted Crucial (the company I bought it from), they gave me an RMA, and shipped me a replacement. I just got the memory back in, and everything is back to the way it should be:
Today's Smalltalk 4 You looks at the Installer framework in Squeak 4.2 - which makes it a whole lot easier to install large packages (like Seaside). 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:
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:
Enclosures:
[st4u65-iPhone.m4v ( Size: 6792026 )]
I had intended to put this week's podcast out today, but I think I'll just push it to next weekend, with this week being open. The people who provide the extras - Squeak News, Design Minute, and Jobs Report - were also unable to get me anything, so we'll just wait a week. Stay tuned, and the podcast will return on Sunday. In the meantime, just go grab something from the archives :)
That phrase really hit home with me in a personal way this weekend. I'm taking my daughter to visit colleges she's gotten accepted into (this is SUNY weekend - we hit Binghamton and Albany). I graduated from Albany back in 1984, so I was interested in seeing how the place has changed.
The biggest change I've seen thus far is how the move of the drinking age from 18 to 21 has impacted the place. There's no Rathskeller at the campus center anymore; it's a food court now. The "Across the Street Pub" is still here, but instead of an open floor plan, they now have booths and a restaurant - we ate dinner there last night.
Then there's the building boom. The Albany campus used to be pretty compact, with everything in the center, surrounded by the 4 quads. Now there's a ton of stuff on the periphery, with new buildings still going up (that last part is kind of ironic, given the wave of budget cuts that have hit SUNY over the last couple of years).
The "culture" of the place has probably shifted as well, although that would be harder for me to see. The drinking age change alone will have seen to that, never mind anything else that's happened since I left here.
All in all, it's a bit strange coming back after so much time. I haven't been on campus since 1985 or so - I visited once after I graduated. The past really is a different country - we did things differently there :)
The podcast will be out on Monday instead of Sunday this week - I'm taking my daughter on college visits, and I just don't have time to get it edited this weekend.