Joachim goes through some of the hassles involved in debugging a server issue in Smalltalk (specifically VA, although I think the basic issues are agnostic):
Yesterday I packaged my Seaside Application for the first time on VA Smalltalk 8.5.2 and deployed it to a staging server. And promptly as expected, I got some errors: The first few were easy to find. One of them being a missing rule in AbtXDSingleImagePackagingRule (or some superclass) to include the new EsTimeZone code. That could be fixed by hand. But this morning I spent quite some time searching for a problem in the walkback.log that didn’t exist. And this post is mostly intended for myself to remember next time. But it might also save you some time. The second purpose of this post (or, to be exact, the next one) is to underline why I think the VAST port of Glorp has a lousy adaption of error handling.
There's more, but I have a small word of advice that's made my life easier: don't package images for deployment when going to the server. I run a VW server for this blog, and it's a full dev image, simply running headless. That makes debugging it far, far simpler. I can set up the same image locally, and test things with all the tools available. For that matter, I can set up the same image on a different port on the server, and debug it headful using VNC.
Today's Smalltalk 4 You looks at the standard development process using VA Smalltalk and ENVY. 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:
We've gone over a sketch of a Case Statement object in Smalltalk, but most of the time, polymorphism is the better answer. Today we'll give a simple example. Consider three classes that hold financial data:
Each object calculates their value differently, but the idea is, we can send #currentValue to each, without needing to know the way they function internally (for an example in the base libraries, consider all of the objects that respond to #next). Here's the three implementations of #currentValue:
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.
In ObjectStudio 8.5, Cincom will add a new ODBC Wrapper Via ODBCEXDI. This new ODBC Wrapper is built upon VisualWorks’ ODBCEXDI. While the APIs at the database level are compatible with those in the existing ODBC Wrapper, all of its interactions with ODBC libraries will be handled by VisualWorks ODBCEXDI.
In general, getting rid of redundant frameworks is good. It may involve some ugrade work for anyone who's gone in and made extensions in that area though.
Welcome to episode 107 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson and David Buck.
This week we have a recording from ESUG 2012 - Andreas Hiltner of Cincom talking about some new directions for the ObjectStudio GUI. If you would rather watch the video, head on over to the STIC website.
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!
Welcome to episode 107 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson and David Buck.
This week we have a recording from ESUG 2012 - Andreas Hiltner of Cincom talking about some new directions for the ObjectStudio GUI. If you would rather watch the video, head on over to the STIC website.
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!
It's time to get ready for STIC 2013: We are putting out the call for participation for next year's conference. I'm pleased to announce that I'll be helping put together the schedule for this year's talks. This one has some added excitement - we are celebrating the 30th anniversary of Smalltalk.
STIC is a forum where Smalltalk professionals, researchers and enthusiasts can meet and share ideas and experiences. STIC is currently accepting proposals for talks involving Smalltalk technology and other areas of innovation in the software industry. We’re looking forward to an excellent conference and need your participation to maintain the high technical level of the conference!
We are also looking for academic papers for the “Smalltalk Directions” part of the conference. If you plan to submit a paper, please follow the same directions listed below for presentations. Such papers should address possible future directions for Smalltalk and/or Smalltalk-inspired dynamic languages.
The conference will take place at the Wigwam Resort in Phoenix, Arizona on June 9-12, 2013.
Presentations will have 45 minutes time slots including discussion, and they may be in the form of:
History of Smalltalk – It’s the 30th Anniversary of the language, and we would love to see presentations on this topic.
Technical presentations
Experience reports
Technology demonstrations
Panel discussions
Workshops
Describe your idea to us!
Proposals should be submitted by email to Sts_Speakers@stic.st and should include the following information:
Name
Contact information
Type of presentation
A brief abstract
A short biography for the presenter(s)
Any date/time constraints
Any other information you think we should know
If you cannot discuss the internal application you are working on due to corporate restrictions, perhaps you can discuss the application’s component usage or development process. We also plan to reserve time for short presentations in the form of Lightning Talks and short technology demonstrations, but these will be available for sign-up at the conference rather than as advanced proposals. These talks will be limited to a five- to eight-minute time window. So if you intend to volunteer for one at the conference, please be prepared for that!
Submissions should be received by February 28, 2013, and should be submitted either in PDF or Word (Microsoft) format. Note that submissions with incomplete information may be rejected (particularly if a bio or abstract information is missing).
Presenters will qualify for a discounted registration. If your talk is accepted, we’ll have full details on the specifics.
For updates and announcements about the conference, please visit us on the web at http://www.stic.st
Today's Smalltalk 4 You looks at one of the changes - keyboard shortcuts - you'll run into when upgrading from an older rev of VisualWorks to the latest. 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.
Welcome to episode 34 of "Thu'umcast" - a podcast where Michael Lucas-Smith, Scott Dirk, Austin Haley, Makahlua and I document our trials and tribulations in Elder Scrolls V: Skyrim
Today, James and Michael talk about some of the dragon/Nord lore behind the main plot in Skyrim. This came up now that we are both playing the game on Expert difficulty, and Michael has just gotten through Dawnguard. For some of the background we discussed, have a look here.
If you liked our work on That Podcast, you'll probably like this. We intend to stay with the same idea - a gameplay podcast. If you don't want spoilers, don't listen - we are going to be talking about how we play the game, and what we ran across as we played.
Welcome to episode 34 of "Thu'umcast" - a podcast where Michael Lucas-Smith, Scott Dirk, Austin Haley, Makahlua and I document our trials and tribulations in Elder Scrolls V: Skyrim
Today, James and Michael talk about some of the dragon/Nord lore behind the main plot in Skyrim. This came up now that we are both playing the game on Expert difficulty, and Michael has just gotten through Dawnguard. For some of the background we discussed, have a look here.
If you liked our work on That Podcast, you'll probably like this. We intend to stay with the same idea - a gameplay podcast. If you don't want spoilers, don't listen - we are going to be talking about how we play the game, and what we ran across as we played.
Today's Javascript 4 You looks at adding a transit layer to a Google street map with Javascript. 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.
Today's Smalltalk 4 You goesback to Polymorphism in Smalltalk for some more discussion. 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:
We've gone over a basic polymorphism example, but one point needs to be made: when you decide to add polymorphic behavior to your own objects, the API you need to cover is typically small. What if you need to cover a system class - like, say, Collection?
In the simple example we covered here, there was one method to create in each object: #currentValue. If you intend to cover something larger, you'll have more work to do.
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.
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.
Today's Smalltalk 4 You looks at the a cool - but dangerous - thing in Smalltalk - the ability to handle messages that are not understood. 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:
One of the things you'll run across in Smalltalk is the ability to handle a "Message Not Understood" exception. While there are uses for such handling (proxy development, for example) - it's often quite dangerous. Even more dangerous is implementing a catchall #doesNotUnderstand: message to your class - it can simply swallow all such MNU exceptions, leading to very bizarre behavior. Consider a simple Counter class with a one up counter, and an #addOne (but no #subtractOne) method, and this implementation:
It seems simple enough, but consider the case where that counter is meaningful. A user of the class might think #subtractOne works, and then end up with unexpected values. It can be more serious in a real application - recently, I've been upgrading a VisualWorks 7.6 application to VisualWorks 7.9.1. One of the parts swallowed exceptions like what we have above, and finding the missing methods became very difficult.
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.