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.
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:
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
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.
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.
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.
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.
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.
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.
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.
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.
Even though it's the weekend, I'm on the road - it's time for the kid to start visiting colleges. That means a road trip instead of a good night's sleep for me :)
Today's Smalltalk 4 You looks at starting the Seaside server up in a Squeak 41 image after having loaded it from scratch. 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.