. .

st4u

ST 4U 106: Getting Started With WindowBuilder Pro

July 13, 2011 7:56:16.859

Today's Smalltalk 4 You looks at WindowBuilder Pro - one of the two main ways to build a user interface in VA Smalltalk. Today we'll paint a simple user interface for the Counter application we built previously; next time, we'll hook it up to that domain object. 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:

WB Pro.

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:


Today we'll start looking at WindowBuilder pro in VA Smalltalk. It's one of two ways to build a UI in VA, the other being the PARTS tool. If you're an experienced Smalltalketr, WB Pro will probably be the best choice for you - it produces Smalltalk code that is easily worked with in the browsers, while PARTS is mostly an environment unto itself. Today we'll take an overview of the tool, building a UI that we'll use with the CounterApp demo - we'll hook the UI and domain model up in the next tutorial.

First, import WB Pro into ENVY - you can see a screencast that goes over how to import a library here - WB pro comes as a separate, loadable component from Instantiations. Once you have that in ENVY, just go to the Load Features tool and bring it in:

Load Features

You should notice a new WindowBuilder menu on the launcher. Select New from that to start a new UI project:

New UI

What you are looking at now is the blank canvas (which will hold your UI. On top are a selection of options for editing and controlling the layout of the widgets you place; on the left is a palette of widgets. It looks smaller than it is, because the left-most list is a category listing of widget types, while the right-most list holds the widgets for the type selected:

Edit the UI

Now you can place widgets. Select a category - We've selected Text Widgets - and then a specific widget type. Then place the widget somewhere on the canvas. In this tutorial, we aren't going to worry about the layout, but you do have full control over that. Double click on the widget you placed to bring up the settable properties:

Set Widget Properties

From the same category of widgets, select the Enhanced Text input field, place it, then double click to get its properties. Note that we can give it an initial value, and an editing type:

Edit Input Field

Do the same for the button, setting just the label - we'll cover callbacks in another tutorial, when we hook this UI up to a domain object. Finally, note that by double clicking on the window you are editing, you can set its properties:

Edit Window Properties

Now you need to save your work. You'll need to specify a class name and an application; pull down Save from the file menu in WB:

Save Your Work

Now set the class and application name:

Class and Application

Now open up a browser, and select your new application. Select All in the protocol pane to see the generated methods. addWidgets is where all of your widgets get defined. You might think its odd that none of these are cached in instance variables, but it turns out (as we'll see in the next tutorial) that grabbing one of these widgets by name is easy - note the name in the second image below:

Browse the New Class

Widget Name

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.

Technorati Tags: , , ,

Enclosures:
[st4u106-iPhone.m4v ( Size: 7676815 )]

posted by James Robertson

 Share Tweet This

smalltalk

StOMP Ported to VA

July 13, 2011 15:00:23.000

StOMP - an object serializer for network communications - has been ported to VA Smalltalk. Get all the details here.

Technorati Tags:

posted by James Robertson

 Share Tweet This

js4u

JS 4U 73: Another JQuery Plugin Example

July 14, 2011 7:45:36.826

Javascript 4 U

Today's Javascript 4 You. Today we look at another JQuery plugin example. 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:

Plugin

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: , ,

Enclosures:
[js4u73-iPhone.m4v ( Size: 2041284 )]

posted by James Robertson

 Share Tweet This

smalltalk

Charts With Cairo and Smalltalk

July 14, 2011 9:37:46.000

Travis Griggs explains how he created the charts that he posted awhile back - using Cairo.

Technorati Tags: cairo, visualworks

posted by James Robertson

 Share Tweet This

music

Spotify Lands in the US

July 14, 2011 10:11:30.101

The music labels had a (probably transient) fit of sanity, and did a deal letting Spotify launch in the US.

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

Syntax Highlighting your Blog with highlight.js

July 14, 2011 14:39:25.000

Spotted in Objology

Go to Software Maniac's download page. Turn off the languages you're not interested in. Check the checkbox for Smalltalk. And hit the download button. You'll get a new customized highlight.js file for your efforts. You need this customized version because it doesn't support Smalltalk in the stock version.

Then just insert that javascript file into your page, and start using it. If you need directions for Blogger specifically, they're in Travis' post.

posted by James Robertson

 Share Tweet This

copyright

When Everyone is a Criminal...

July 15, 2011 10:32:05.998

When everyone is a criminal, the net effect is that no one is. Consider France's 3 strikes law - in a nation of 65 million people:

The volume of alleged infringement is even higher than earlier reports suggested. More than 18 million complaints have been submitted so far, and Hadopi hasn't been able to keep up. So far, only 470,000 initial warning e-mails have been sent to French Internet users. Only a small fraction of those—about 20,000—have received second notices, and around 10 French Internet users have received their third "strike" and are now facing possible penalties.

Now, imagine that the RIAA or MPAA got what they wanted, a law like that here? How many people would the feds have to employ to keep up?

Technorati Tags:

posted by James Robertson

 Share Tweet This

jobs

Looking for a Smalltalker

July 15, 2011 11:16:10.391

The place I work is looking for an experienced Smalltalk hand - we use VisualWorks 7.6, but we plan to migrate up to the latest Cincom release later this year. It's a long term project, based out of Dallas Texas. Interested? Contact me, and I'll put you in touch with the right people.

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 107: Using StOMP for Serialization

July 15, 2011 12:03:48.536

Today's Smalltalk 4 You looks at StOMP, an object serializer for Smalltalk that works across Pharo, Squeak, VisualWorks, and VA Smalltalk. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. For more information on StOMP, visit the website. To watch now, click on the image below:

StOMP

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: , , ,

Enclosures:
[st4u107-iPhone.m4v ( Size: 4511336 )]

posted by James Robertson

 Share Tweet This

smalltalk

GemStone/S 64 Bit 3.0 Released

July 15, 2011 12:13:07.846

Spotted in Programming Gems (on GemStone)

VMware vFabric GemStone/S  3.0.0 is now live on vmware.com.

Technorati Tags:

posted by James Robertson

 Share Tweet This

gadgets

LTE - a Step Backwards?

July 15, 2011 16:36:19.000

I don't call this progress:

Several companies are hopping on the LTE bandwagon, but it's turning out to be more isolating an experience than we hoped. According to PCMag, a Verizon spokesperson confirmed that its fourth-generation broadband network won't be compatible with other carriers in the US. As it turns out, Big Red and AT&T each own a separate block of 700MHz spectrum with only a fraction of overlap, leaving little room for phones on both networks to mingle with one another. There's not much hope for roaming on MetroPCS or LightSquared, either, as their waves of LTE run at 1700MHz and 1500MHz, respectively. This smattering of frequencies means it'll be near impossible to get roam on other companies' 4G networks nationally. What's worse, the ITU has approved twelve bands for LTE use around the world, so don't count on a wide selection of global devices -- and you thought sorting through international 3G was bad, didn't you? We're still a long way from learning our LTE roaming fate, but it appears the largest carrier in the US won't make the journey any easier on us.

Fortunately, most of these devices will keep their 3g radios (at least in the short term), and they'll roam at that level. Even there though, your Verizon phone (if you are on their network) is a brick overseas - and it looks like it'll stay that way. This is not the mobile future most of us were joping for...

posted by James Robertson

 Share Tweet This

law

Just Kill Patents

July 15, 2011 22:14:11.000

They are now doing more harm than good - notice the patent for "one and two way messaging", applied for in 2005. Seems to me that IRC (at a minimum) is a prior application. The larger point is, patents are now causing harm, not good. They either need massive reform, or they should be eliminated outright.

Technorati Tags:

posted by James Robertson

 Share Tweet This

education

Software and Education

July 16, 2011 12:54:27.256

It's taken until now - and the advent of Khan Academy - to see how software can really be used in education. I suspect there will be massive resistance, since the pattern illustrated below blows away the traditional "lecture model" that is used now:

Initially, Thordarson thought Khan Academy would merely be a helpful supplement to her normal instruction. But it quickly become far more than that. She’s now on her way to “flipping” the way her class works. This involves replacing some of her lectures with Khan’s videos, which students can watch at home. Then, in class, they focus on working problem sets. The idea is to invert the normal rhythms of school, so that lectures are viewed on the kids’ own time and homework is done at school. It sounds weird, Thordarson admits, but this flipping makes sense when you think about it. It’s when they’re doing homework that students are really grappling with a subject and are most likely to need someone to talk to. And now Thordarson can tell just when this grappling occurs: Khan Academy provides teachers with a dashboard application that lets her see the instant a student gets stuck.

The funny thing is, any educator who considered this would realize that it makes them invaluable. The students can get the lecture from the internet, but what they can't get there is a walkthrough on a specific problem - the hints and "aha moments" that come from working through a problem together.

posted by James Robertson

 Share Tweet This

podcast

IM 38: Polycephaly at StS 2011

July 17, 2011 12:20:26.289

Welcome to episode 38 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck.

This we have another session from Smaltalk Solutions 2011 - Cincom's Arden Thomas talking about Polycephaly, their solution to utilizing multi-core systems more fully. For more information on where Polycephaly is going, have a look at Michael's recent post on the topic.

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!

Technorati Tags: , , ,

Enclosures:
[im38.mp3 ( Size: 15522380 )]

posted by James Robertson

 Share Tweet This

podcastAAC

IM 38: Polycephaly at StS 2011 (AAC)

July 17, 2011 12:20:59.518

Welcome to episode 38 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck.

This we have another session from Smaltalk Solutions 2011 - Cincom's Arden Thomas talking about Polycephaly, their solution to utilizing multi-core systems more fully. For more information on where Polycephaly is going, have a look at Michael's recent post on the topic.

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!

Technorati Tags: , , ,

Enclosures:
[im38.m4a ( Size: 21395945 )]

posted by James Robertson

 Share Tweet This

st4u

ST 4U 108: Finishing the CounterView UI in WB Pro

July 18, 2011 9:27:21.648

Today's Smalltalk 4 You continues the brief tutorial on WindowBuilder Pro, by hooking up a domain object to the UI we painted last time. 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:

WB Pro.

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:


Today we'll continue our introduction to WindowBuilder pro in VA Smalltalk. Last time we painted the UI - today, we'll hook the UI we painted up to the simple Counter application we built awhile ago.

To refresh a bit, here's the simple UI we built - an input field for the current value, and a button to increment the value:

Simple UI

One thing we didn't do is hook the button up to any behavior. To do that, we need to define a callback - a SMalltalk method that will be invoked when the button is pressed:

Define Callback

You can doa number of things in the callback definition UI, but we're going to take the simplest tack: hook up a callback for when the button is pressed:

Defining the Callback

Go back to the browser and look at the code that got generated again - you should notice a new section for the callback:

Callback specified

Now we'll getinto hooking the UI up to a domain object. We'll define an instance variable in the UI to hold the domain object, and instantiate it in the initialize method:

Set up the domain

Next, we'll set up the callback method to use the domain object when the button is pressed. To update the input field, we need to grab it by name using #widgetNamed:, and then use the #value: message to set the value into it:

Set up the Functionality

Finally, we can test the UI. Open it up and you should see the input field incrementing when you press the button:

Working UI

That's it - we've created a simple UI that hooks up to a domain object, and updates the state of the domain based on UI actions. With that, you should be able to get started building more useful things with WindowBuilder Pro!

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.

Technorati Tags: , , ,

Enclosures:
[st4u108-iPhone.m4v ( Size: 8948589 )]

posted by James Robertson

 Share Tweet This

smalltalk

ESUG 2011 Schedule

July 18, 2011 10:24:21.033

The initial schedule for the ESUG 2011 conference is now online - the talks look interesting, making me wish my schedule made going possible!

Technorati Tags:

posted by James Robertson

 Share Tweet This

js4u

JS 4U 74: JQuery Parent/Child Relationships

July 19, 2011 10:05:04.440

Javascript 4 U

Today's Javascript 4 You. Today we start looking at how you can use JQuery to walk the parent/child relationships in the DOM tree of a page. 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:

Parent/Child

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: , ,

Enclosures:
[js4u74-iPhone.m4v ( Size: 2292030 )]

posted by James Robertson

 Share Tweet This

books

End of an Era

July 19, 2011 11:05:43.372

Borders is liquidating - all I can say is wow. I spent many a happy hour browsing there, but Amazon has replaced them for me. It's not about e-books (although that accelerated the trend) - it's really about two things:

  • Amazon's "shelf" is infinitely bigger, and includes things (independent publishers) that Borders never had
  • Amazon's recommendation engine is far, far better than scanning shelves or asking an employee

That latter point is what tipped me. At the store, I really only saw what they had in stock. At Amazon, I see things I never would have thought of, based on other books I've read or am looking at. Add in the instant gratification of an ebook download, and it's the deathknell of physical bookstores for me.

posted by James Robertson

 Share Tweet This

smalltalk

How About a Unified Browser Model?

July 19, 2011 16:13:58.000

Spotted in The Hitchhiker's Guide to Smalltalk:

Veronica Uquillas is currently working on Ring - a unifying and foundational model infrastructure for Pharo. The goals of the project are:
  • Provide a common API at structural and runtime level
  • Allow tools to interact and integrate directly with the host environment (Pharo)
  • Support history analysis
  • Sounds like a good idea to me - having a bunch of duplicate models running around for each tool is a bit much :)

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

FizzBuzz with Non-Smalltalkers

July 19, 2011 20:36:32.000

Randal Schwartz got some oohs and ahs recently at the Rio de Janeiro Dojo:

To rehearse, I had done the exercise earlier in the day, so I had a sense of where the code was going, although the actual solution from the group effort was a bit different. We finished in about 45 minutes, and with the remaining time, we tackled the second stage (decimal values containing a 3 digit, not just numbers that are multiples of 3). After completing that, I showed that we could put the logic for #isFizz and #isBuzz over in the Integer class, which was pretty amazing unless you've seen it before, and even got the protocol category right so that the MCZ package contained the monkeypatches. Finally, I loaded the MCZ into a new image, and ran the tests. All green. It was a fun experience, and they later told me that they'd never even started the second stage question before with other languages, let alone getting it to a place where a file could easily be handed around with the solution (including tests).

He also visited the LA Smalltalk User's group - follow the link for that report.

Technorati Tags:

posted by James Robertson

 Share Tweet This

fnvdiary

That Podcast 20: Old World Blues First Impressions

July 19, 2011 23:27:16.720

That Podcast: FNV Diary

Welcome to episode 20 of "That Podcast: An FNV Diary" - a podcast where Michael Lucas-Smith and I document our trials and tribulations in Fallout: New Vegas.

On today's podcast, Michael and James give their first impressions of "Old World Blues" - the latest DLC for Fallout: New Vegas. So far - it's a big thumbs up!.

This just covers our first take on the DLC - we'll be back with more soon. Also on the podcast this week - audio feedback from a listener, and some feedback we took from our iTunes reviews. Speaking of which, we really appreciate all of the reviews - keep them coming!

You can subscribe in iTunes (or any podcatcher) using this feed, or this one for the AAC edition. You can get to the podcast directly in iTunes via this link. You can also go to the iTunes store and leave a comment, or join the Facebook Group and discuss the podcast.

If you want to download the podcast directly, I've provided it in three formats:

Got feedback? Send it to James. We'd really appreciate it if you head on over to iTunes and leave a comment - enjoy the podcast, and we'll see you in the wastelands!

Technorati Tags: , ,

Enclosures:
[fnvdiary20.mp3 ( Size: 7954177 )]

posted by James Robertson

 Share Tweet This

fnvdiaryAAC

That Podcast 20: Old World Blues First Impressions (AAC)

July 19, 2011 23:27:53.310

That Podcast: FNV Diary

Welcome to episode 20 of "That Podcast: An FNV Diary" - a podcast where Michael Lucas-Smith and I document our trials and tribulations in Fallout: New Vegas.

On today's podcast, Michael and James give their first impressions of "Old World Blues" - the latest DLC for Fallout: New Vegas. So far - it's a big thumbs up!.

This just covers our first take on the DLC - we'll be back with more soon. Also on the podcast this week - audio feedback from a listener, and some feedback we took from our iTunes reviews. Speaking of which, we really appreciate all of the reviews - keep them coming!

You can subscribe in iTunes (or any podcatcher) using this feed, or this one for the AAC edition. You can get to the podcast directly in iTunes via this link. You can also go to the iTunes store and leave a comment, or join the Facebook Group and discuss the podcast.

If you want to download the podcast directly, I've provided it in three formats:

Got feedback? Send it to James. We'd really appreciate it if you head on over to iTunes and leave a comment - enjoy the podcast, and we'll see you in the wastelands!

Technorati Tags: , ,

Enclosures:
[fnvdiary20.m4a ( Size: 10943360 )]

posted by James Robertson

 Share Tweet This

smalltalk

A Haskell Parser in Smalltalk

July 20, 2011 7:00:50.642

LShift explores the PetitParser by using it to create a Haskell parser - it's a nice example usage that should give you an idea as to how it works.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

st4u

ST 4U 109: Loading Seaside Support into VA

July 20, 2011 8:13:39.227

Today's Smalltalk 4 You starts a Seaside tutorial in VA Smalltalk. Today we'll get Seaide support loaded, and start a local server. 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:

Seaside.

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:


Today we'll start looking at Seaside in VA Smalltalk - this is a multiple part tutorial. In today's segment, we'll start at the beginning, by loading support into our image, and making sure it all works. To start, open the Load/Unload Features tool:

Load Support

Scroll down and select Seaside Core. Move it to the right side of the tool with the arrow button, and then click Ok:

Load Support

With Seaside loaded, we need a local server to test against. Go back to the Tools menu in the launcher, and select Open Seaside Control Panel:

Set up Server

Select the Manage menu, and then select Add Adaptor. In that tool, just go with the default:

Set up Server

Set up Server

Now go to your web browser, and browse localhost:8080. You should see the default Seaside UI

Seaside Running

By following the links from Examples, you should be able to test out the stock Counter example application:

Seaside Running

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.

Technorati Tags: , ,

Enclosures:
[st4u109-iPhone.m4v ( Size: 3447939 )]

posted by James Robertson

 Share Tweet This

music

Evocative

July 20, 2011 14:47:21.351

I've had the song "Now we are Free" in my iTunes collection for awhile - after I saw a Celtic Women concert on TV, I went ahead and bought a bunch of their stuff, and that song was part of the mix. I liked it a lot at the time, but recently we rented "Galdiator" - and it was like having the rest of the puzzle pieces suddenly snap into place. The song is so incredibly perfect for the end of that movie...

posted by James Robertson

 Share Tweet This