Today's Smalltalk 4 You looks at VA Smalltalk - how do you load Seaside support and get started with it? 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.
We are proud to invite submisssions to the International Workshop on Smalltalk Technologies which is held as part of the ESUG 2011 joint event at Edinburgh. The goals of the workshop is to create a forum around advances or experience in Smalltalk. We welcome contributions on all aspects, theoretical as well as practical, of Smalltalk related topics
I paused my DA2 download this morning, because it was proceeding way too slowly - at the rate it was going, it might have finished before I check out on Thursday.As it happens, I'm heading to my sister's house for dinner this evening, and my plan is to take advantage of their broadband to finish the job. I'll be able to play the game on my flight home this week :)
Today's Javascript 4 You. Today we take a look at using Javascript to replace an entire document. 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.
After grabbing the FIOS powered bandwidth at my sister's house, I got Dragon Age 2 downloaded and installed. I started playing last night, and ended up staying up later than I should have. The game is gorgeous - it looks so much better than DAO.
Now, I don't have a lot iof thoughts on gameplay yet - I've only just gotten past the "one year later" in Kirkwall part, when you start to see the quests that are more related to the main game plot.
I decided to play a mage - I like mages, and it seemed like a fun way to get started with some of the updates. The spell progression system is organized differently, but was easy enough to get into. Playing a mage seems more fun in this game - I'm not sure I can really put my finger on it, but it just feels like there's more going on, even when I'm just using the basic staff power. Maybe it's the updated animations; in any event, it's pretty fun. I'll get further with it on my flight home, and then I'll start playing on the XBox this weekend - I think I'll try a Rogue there, just to do something different.
I'm not sure when Michael and I will launch the new DA2 oriented podcast - it might be next week, since we'll both be at Smalltalk Solutions :)
Currently, I am porting QuickSilver from ExtJs 3.3 to ExtJs 4.0. There has been a complete rewrite of much of the library and this has resulted in a great deal of work in migrating the Smalltalk widget libraries.
The battery pack is far and away the most expensive single component in the car and the thought is that a reduction of the pure EV range to just 20 miles (down from its current 30 - 50) could have a whopping $10,000 reduction in cost.
The trouble is, the price tag isn't the only problem - the range is. Why would anyone want a car with a 20 mile range (extended some by a small gas tank) instead of a regular car that gets 35 mpg, or a hybrid that does better than that? My 1989 clunker gets between 30-35 mpg right now, so I just can't see the point. And mind you, this is from someone who drives less than 5000 miles a year....
Today's Smalltalk 4 You looks at versioning objects when you use BOSS in VisualWorks. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube.
The code used in the screencast for BOSS is below:
person := Person new.
person first: 'James'.
person last: 'Robertson'.
bos := BinaryObjectStorage onNew: 'people.bos' asFilename writeStream.
bos nextPut: person.
bos close.
bos := BinaryObjectStorage onOld: 'people.bos' asFilename readStream.
person2 := bos next.
bos close.
^person2.
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'm heading to Smalltalk Solutions tomorrow, so the screencasts will be on hiatus for a week. The good news is that I expect to return with a fair amount of audio for the podcast. Wish me luck on my presentation, and I hope to see you in Vegas!
Welcome to episode 21 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck. This week I have another presentation from ESUG 2010 - Stephanne Ducasse talking about patterns in open source software development.
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 21 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck. This week I have another presentation from ESUG 2010 - Stephanne Ducasse talking about patterns in open source software development.
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!
Florin Mateoc is talking about the "Zen of Smalltalk Algorithm Coding" here at StS - starting off with the difficulties he's run across in terms of comparing code changes over time. Everything is being recorded, and STIC says they'll be releasing the video (no idea what the schedule for that is). I'll be recording the audio for the talks I attend, and I'll be releasing those as part of the podcast over time.
After years of mediocrity and weak sales, Microsoft is finally killing off its Zune media player, Bloomberg reports.
I always wondered why they created the Zune, and then had a completely different group working on phones. It's not as if the Apple example was hard to see :)
Georg just officially "opened" the conference, and now Avi is talking about Big Data, the web, and Smalltalk. Kind of amusing that I got quoted based on something I said at StS 2004 - truly, nothing you say in public dies now :) Anyway, here's Georg:
In the early 1990's ParcPlace failed to license Smalltalk to Sun Microsystems. Thus Java was born (of flames of carelessness) and instead of the world turning into a green paradise of Smalltalk everywhere, it descended into a rocky brittle non-reflective torture pit where the traditional C procedure of banging heads against the wall to make headway prevailed
Well, I'm not entirely sure that the Jedi Knight thing works for an entire presentation, but it was funny when they started:
Heh - James Ladd and Sean Allen started giggling about 10 minutes in. The audience does like the slides. I'll have to see about getting access to the slides when I release the audio in podcast form :) They have a site and a Twitter handle
Next up - Martin Kobetic and Michael Lucas-Smith talking about Xtreams - a new streams library (MIT license, in Google Code) they've been working on. It's already ported to multiple Smalltalk implementations (to Gemstone last weekend at Camp Smalltalk).
Why Xtreams? Simplicity and Consistency, mostly. Streams were implemented at a time when computing looked very different than it does now, and they thought it might be useful to revisit the entire idea.
So here's an interesting read example using Xtreams - try the second line of code a few times after you get the stream and see what you get :)
AT&T claims their average DSL customer uses around 18GB a month, and these changes will only impact about 2% of all DSL customers -- who the company states consume "a disproportionate amount of bandwidth."
That sounds reasonable until you consider increased use of things like iTunes movie rentals, Netflix, Hulu (et. al.). If you grab a few HD movies, you can start running into those limits faster than you might think.
Of course, the providers would rather have you use their "free" on demand services....
First talk of the morning - Stephen Baker's "What Smalltalk can learn from Ruby". He's starting with a brief overview of how we got from the state of the industry in the early 90's to where we are now. I have my own notions on this topic, as many of you already know :)
Anyway, here he is getting started:
So if Smalltalk is so great, why do we have so many problems getting traction? Here's what Ruby has:
Low barriers to entry
A blog in 15 minutes
Community - so screencasts (etc) got immediate traction
I think the main take away from this talk is that we have great tools and web frameworks in Smalltalk, but we don't make it easy enough for people to get into the community.
We're continuing on the Rails and Seaside topic with Pat Maddox:
Pat started with a basic comparison of how Rails and Seaside manage workflow in a web app. I'm recording this talk; it will appear in the podcast stream at some point.
John McIntosh is delivering the second keynote - he's talking about Scratch and the iPad (the first public discussion of this, as it happens). We did talk to John and John on the podcast about this awhile back - part 1 and part 2
Funny start - John wanted to talk from the iPad, but ran into issues getting video out to the projector :)
I got into John's talk a bit late - Michael and I were recording a chat with John McIntosh, contrasting IOS development and Smalltalk development. I'm here now, and John is talking about what's up with the latest edition (8.0.3) of VA Smalltalk. Here he is:
What's coming down the road after the summer release?
Full Unicode
Seaside 3.x
SST Improvements
I missed a few things on the slides there :) - below are candidate items for future releases - meaning no time scales for this stuff:
GTK 2.x on Linux
Monticello Importer
New Settings framework
More and better GLORP support, including ActiveRecord
TCP/IP V6
Full SSL wrapper
Incremental GC
64 bit support
Some integration of various goodies for VA, like KES/Stats
Windows Services control moved from external to Smalltalk
Interfaces to .NET/C#
Better install/repair/uninstall tools
Better hashing and sorting in Collections (policy mechanism)
And you can download the eval free, or buy a license. There's now a developer program as well, where you can get in-process development builds. The schedule is "irregular" :)
You can also get a perpetual NC license by committing to an open source project (VAStGoodies.com is a good starting point)
I had to take a phone call after the last session, so I got in too late to record the audio for Paul Baumann's talk. The good news is that STIC is recording video, so it'll be out eventually. In the meantime, Paul is talking about a library to create Views (like relational database views) in Gemstone, and he's giving examples of how you achieve the kinds of results you get with various SQL statements in his GS View library. I don't really use Gemstone much (the shop I'm in now is an Oracle shop), but it sounds quite useful. Here's Paul:
I just finished my talk, which seemed to be well received. Right now I'm listening to Don MacQueen (Now with Instantiations) talking about the now cancelled JWars project. It was a system to model military conflicts for planning purposes. Here's Don:
One of the pleasant surprises here at StS 11 was running into Dorin Sandu and finding out about a little project he's been working on. He's been creating an interface between Smaltalk and Lucene, and he's been using BottomFeeder as a testbed for that.
As I did things, the search facilities in Bf are a pretty simple linear search through the item space. Dorin has replaced that with Lucene. To help with that, I really only needed to do a couple of things:
Change the item GUIDs to the link if the link is there (nearly always the case now)
Report a few new events when feeds add items or delete them
Welcome to episode 1 of "The Hawke Files" - a podcast where Michael Lucas-Smith and I document our journey through Dragon Age 2.
On today's podcast, Michael and I kick things off with a discussion of all of the quests that flare up before you do the Deep Roads expedition. There are a lot of them, and you should finish them off - because once you head into the Deep Roads, that part of the game transitions into act 2.
You can subscribe in iTunes (or any podcatcher) using this feed, or this one for the AAC edition. We should have something set up with iTunes directly soon; check the site for more info on that, or join the Facebook Group and discuss the podcast.
If you want to download the podcast directly, I've provided it in three formats:
Welcome to episode 1 of "The Hawke Files" - a podcast where Michael Lucas-Smith and I document our journey through Dragon Age 2.
On today's podcast, Michael and I kick things off with a discussion of all of the quests that flare up before you do the Deep Roads expedition. There are a lot of them, and you should finish them off - because once you head into the Deep Roads, that part of the game transitions into act 2.
You can subscribe in iTunes (or any podcatcher) using this feed, or this one for the AAC edition. We should have something set up with iTunes directly soon; check the site for more info on that, or join the Facebook Group and discuss the podcast.
If you want to download the podcast directly, I've provided it in three formats:
Riak is a scalable database (written in Erlang, C and a little bit of JavaScript) that is being used in production by companies like Mozilla and Comcast. It is based on Amazons Dynamo using key-value storage (bucket-keys to be exact). It has peer-to-peer replication without a specific master - this allows for a fault-tolerant system.
It's Wednesday morning, and MIke Hales is telling us about TeaTime - an efficient messaging system (implemented originally for Croquet) that he ported to VisualWorks for use in the application that he's working on. It sounds pretty cool - here's Mike:
TeaTime is a scalable real-time multi-user architecture that is the basis for Croquet's object-object communication and synchronization. It is designed to support multi-user applications that can be scaled to massive numbers of concurrently interacting users in a shared virtual space.
I missed the first 10 minutes or so of Martin McClure's talk - I suddenly developed a cough, and it looked like I was going to disturb his talk. So, I grabbed coffee while he started doing his demo. Here's Martin:
His first demo showed the way they used to do things (largely by hand), which worked, but was tedious. Now he's showing the newer, less ad-hoc code. It looks like they can parse a standard C header file, and extract out the available functions and create a wrapper class (an awful lot like DLLCC, but he's doing it from a workspace as opposed to a tool). One nice thing - you can filter to limit the plethora of things such a thing might try to wrap if you just let it go on its own.
What comes out of that is a wrapper class with a ton of Class Variables, each of which represents an interface to one of the generated functions. Absent the pragmas, the methods that get generated look a lot like what DLLCC generates in VW. One nice thing - the wrapper includes the segment of the header file that became the interface in question, so you can see how you ended up where you are. That makes it a bit easier to hack on things that it doesn't get quite right.
James Savidge works in Cincom support, and he's talking about ways to make your life easier when you need to debug problems that crop up. The first thing he did was a gentle - and funny - request for people to Read the Fine Manual :)
First tip: Remember the file browser, which can give you a quick view of either bytes or formatted source (depending on what you're looking at) of files. Next, he's going through the profiler (and the multi-allocation profiler), which a lot of people forget. I can attest to that - I don't know how many times I've been helping someone track a problem, and had them be surprised when I pulled out the profiler.
There's also the Memory Monitor (contributed), which can help quite a bit. It includes extensive logging facilities. Back when I was at Cincom, I covered this next bit pretty deeply in my screencasts - the various kinds of probes you can insert for information or debugging using the debugger.
Now a newer tool that I'm not familiar with - the benchmarking tool, which originated in ObjectStudio, but now also works in VW. Since it's a UI driven tool, it won't work headless.
Next, he's going over a tool that I've found to be very helpful - the logging for the various network protocols. When you don't know why your protocol requests are failing, this will let you see the traffic exchanges in detail.
As basic as it sounds, don't forget the Transcript (or the new #out message, which came from ObjectStudio). It's highly useful in server apps, because you'll typically toss the Transcript to a file. I've used that a lot.
Need to watch message sends - the Spy Tool (VW and OS) does that. It does not work in Web Velocity yet.
This next bit is something a lot of people are unaware of - command line options for the VM and image.
James is recommending my screencasts (the ones I did at Cincom). Those are still quite useful, but they aren't being updated now - so as time goes by and new releases of the Cincom products go out, they'll get more and more dated.
That first link above goes through what Polycephaly is - a way to use multiple Smalltalk images to take advantage of multi-core systems - I'm not going to go into detail here.
Last talk of the day and of the conference - Dorin Sandu is talking about integrating Lucene with Smalltalk, so that he didn't have to create his own search tools for the large amounts of data that he deals with on a regular basis.
He wanted something small and fast, but also mature with a community to interact with - which is how he got to Lucene. Rather than reproduce the bullet points about Lucene, I'll send you to the website.
The demo is cool - he replaced the existing search facilities in BottomFeeder (which are pretty basic) with Lucene. The kinds of queries that Lucene supports are way, way better than the simple stuff I did :)
The conference is ending - Georg is sending us off with a few closing remarks. It was a fun conference, and I've recorded most of it on my H2 Zoom (I think the audio quality is fairly good). Additionally, STIC has been shooting video, although I have no idea how long it will take to get that online. I do know from experience that video editing is very time consuming :)
Good conference, and I hope to see people again next year!