You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Today's Smalltalk Daily looks at basic Smalltalk syntax. This is part 4. Today we look at operators in Smalltalk. If you can't watch the YouTube embed below, click here to go to the video now:
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Today's Smalltalk Daily looks at basic Smalltalk syntax. This is part 3 of at least 4 parts. Today we look at variables in Smalltalk. If you can't watch the YouTube embed below, click here to go to the video now:
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Today's Smalltalk Daily looks at adding error handling (for the runtime) via the build script. We're adding the basic stuff from RuntimePackager, but you can customize from there. The build script is just below; You can also just skip to the video
"build a simple app"
"load all my needed parcels - including RTP"
[#( '$(VISUALWORKS)/packaging/RuntimePackager.pcl'
'SampleApp.pcl') do: [:each |
Parcel loadParcelFrom: each]]
on: MissingParcelSource
do: [:ex | ex resume: true].
"turn change log off, so that we can ship patches reasonably"
'ChangeSet.BroadcastChanges' asQualifiedReference
ifDefinedDo: [:flag |
'ChangeSet.BroadcastChanges' asQualifiedReference value: false].
"Set herald string"
ObjectMemory setHeraldString: 'This is an Example Application in VisualWorks'.
"reset parcel path"
Parcel searchPathModel value removeAll.
"set up runtime state"
DeploymentOptionsSystem current startInRuntime: true.
"set up runtime state (NOTE: This block is commented out
so that we can see the results in the example.
UI.WindowManager noWindowBlock: [:windowManager | ].
stream := WriteStream on: String new.
stream nextPutAll: 'changeRequest'; cr; cr; tab.
stream nextPutAll: '^true'.
VisualLauncher compile: stream contents.
VisualLauncher allInstances do: [:each | each closeAndUnschedule. each release]."
"Install Error Handling - This is the new segment"
Notifier current: RuntimePackager.RuntimeEmergencyNotifier.
RuntimePackager.RuntimeEmergencyNotifier imageDumperClass: RuntimePackager.RuntimeFullDumper.
RuntimePackager.RuntimeManager errorLogPath: 'error.log'.
Notifier logToFile: true.
ObjectMemory garbageCollect.
Workbook allInstances do: [:each | each closeRequest].
(Delay forSeconds: 20) wait.
Parcel searchPathModel value: (List with: (PortableFilename named: '.')).
SourceFileManager default discardSources.
"Now save the image such that this file does not get looked for at startup"
[ObjectMemory permSaveAs: 'sample' thenQuit: false] fork.
[(Delay forSeconds: 45) wait.
RuntimeSystem isRuntime ifFalse: [ObjectMemory quit]] fork
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Today's Smalltalk Daily looks at a simple runtime scripting example. I've covered this topic before, but used the (more complex) BottomFeeder application as my example. Here, we take a simple "application" (a class with one method) and a simple subsystem to start it - along with the script to do the build. The script is reproduced below; if you would rather just watch the video, then just go here. I posted all of the code and steps for this yesterday if you would rather take this in textual post form. You can download the example code here.
"build a simple app"
"load all my needed parcels"
[#('SampleApp.pcl') do: [:each |
Parcel loadParcelFrom: each]]
on: MissingParcelSource
do: [:ex | ex resume: true].
"turn change log off, so that we can ship patches reasonably"
'ChangeSet.BroadcastChanges' asQualifiedReference
ifDefinedDo: [:flag |
'ChangeSet.BroadcastChanges' asQualifiedReference value: false].
"Set herald string"
ObjectMemory setHeraldString: 'This is an Example Application in VisualWorks'.
"reset parcel path"
Parcel searchPathModel value removeAll.
"set up runtime state"
DeploymentOptionsSystem current startInRuntime: true.
"set up runtime state"
UI.WindowManager noWindowBlock: [:windowManager | ].
stream := WriteStream on: String new.
stream nextPutAll: 'changeRequest'; cr; cr; tab.
stream nextPutAll: '^true'.
VisualLauncher compile: stream contents.
VisualLauncher allInstances do: [:each | each closeAndUnschedule. each release].
ObjectMemory garbageCollect.
Workbook allInstances do: [:each | each closeRequest].
(Delay forSeconds: 20) wait.
Parcel searchPathModel value: (List with: (PortableFilename named: '.')).
SourceFileManager default discardSources.
"Now save the image such that this file does not get looked for at startup"
[ObjectMemory permSaveAs: 'sample' thenQuit: false] fork.
[(Delay forSeconds: 45) wait.
RuntimeSystem isRuntime ifFalse: [ObjectMemory quit]] fork
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Today's Smalltalk Daily looks at immutable literals in Smalltalk - and how to deal with legacy code that does not know about immutability. You can watch it on YouTube right now, or follow this link to the video.
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?