. .

news

Chargers are Coming?

August 22, 2011 9:19:24.618

Anyone reading this blog knows that I'm an electric car skeptic, and this Wired article about how "chargers are coming" doesn't change that. Consider this, near the end of the piece:

So the cars are coming. The infrastructure will follow. There’s no way of knowing at this point just what it will look like, but it almost certainly won’t look like the fueling infrastructure we’re using now. There are nearly 160,000 gas stations in the United States. We simply cannot match that, EV advocates said, nor do we need to. EV advocates say we need to move beyond our habit of driving until the tank is empty. Driving an EV means plugging in at night and topping off when you can during the day. It’s called “opportunistic charging,” and it is second-nature for EV owners.

I've been doing that with laptops for years, and it's not terribly enjoyable. Second nature or not, it's still a pain to wander around looking for a plug. It would be more than a pain to add an hour to a trip because I had to hunt for a plug. Sure, airports are adding plugs, and the thought is, car chargers will proliferate the same way. Here's the problem, as I see it, taken from personal experience:

I travel to Dallas regularly now. My morning commute (hotel to worksite) is usually in the 18-20 mile range (Grand Prarie is kind of a hotel desert). That's well within the range of an EV you say, so renting one should be a no brainer. Except... I drive out to visit my sister once a week when I'm there, and that's a 70 mile round trip. That starts getting to be a problem range-wise, especially when you factor in the need to run AC full blast for many, many months in the Dallas area - the normal range of an EV is going to drop like a rock when you have to run AC constantly. Sure, I can plug the car in at her house, but: am I expected to make my stay a few hours longer than planned just so that I can drive back to my hotel? What if I need to drive to the local Apple store - I have Apple Care, and I could have a transient issue crop up. That's not a short haul, either.

Now consider urban driving - especially given the new urbanist desire to have less parking, and to have whatever parking there is be street parking. How do you charge in that situation? Retailers are going to start happily adding charge stations in the parking lots? For one thing, see this article about Costco. For another, consider what services like Amazon are already doing to big box retailers - margins in retail have always been slim, and I expect the only change in that space will be negative. Borders will not be the last, or only, big box vendor to get hammered out of existence by online shopping.

I could be wrong, but I see EVs as a niche application. For urban (or near urban) dwellers who need to drive a little, they might make sense (then again, a Smart Car makes even more sense for that need).

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

JTalk Moves Forward

August 22, 2011 9:21:32.278

JTalk (Smalltalk on Javascript) seems to be moving forward nicely - you can try the browser yourself now.

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 123: Reusing the Post Editor

August 22, 2011 9:51:43.118

Today's Smalltalk 4 You continues the VA Smalltalk Seaside tutorial by reusing the post tool to edit existing posts. 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:

Edit Posts.

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:


In this section we'll reuse the posting tool we've already built to edit existing posts.

First, we'll modify the #renderPostOn: method in BlogListView - we want an edit link to appear for logged in users:


renderPost: post on: html
	html div
		class: 'post';
		with: [html strong: [html text: post title].
				html break.
					self session currentUser 
						ifNotNil: [self renderEditLinkOn: html for: post.
										html break].
					html
						html: post content;
						break;
						text: 'Posted on: ', post timestamp printString;
						break]

We check the session, and if there's a logged in user, we drop in an edit link. Next, we need that #renderEditLinkOn:for: method in BlogListView:


renderEditLinkOn: html for: post
	html anchor
		callback: [self openEditorOn: post];
		with: 'Edit'

That creates our link - we still need to write the code for using the link:


openEditorOn: post
	| editor |
	editor := BlogPostView new.
	editor post: post.
	(self 
		show: editor)
		onAnswer: [:ans | ans ifTrue: [BlogStorage default updatePost: editor post]]

Here we again see the #show:OnAnswer: control flow in VA Seaside use - but we are using the answer. recall that the post editor answers true or false - we use that in this code to determine whether or not to save the post. Since the view used in #show:onAnswer: is done at the end of that, we revert back to the main view in either case. Finally, the #updatePost: method in BlogStorage is a placeholder - in this example, all storage is in memory only:


updatePost: aPost
	"no op, since it's all in memory"

	^self

That's it - we are now reusing the post tool for editing.

That about wraps it up for today - next time, we'll get into the posting tool itself. To see that in action, let's login:

login

Note the new Edit link - try going through the blogView link - you won't see it:

edit

Follow the edit link for one of the posts - you'll see something like this:

edit post

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:
[st4u123-iPhone.m4v ( Size: 5792419 )]

posted by James Robertson

 Share Tweet This

advertising

SeaBreeze 5.0 Announced at ESUG 2011

August 22, 2011 16:20:10.000

Georg Heeg is announcing SeaBreeze 5.0 at ESUG 2011:

Unlike other software products, web applications are visible world-wide by default. To be beneficial for users world-wide, especially for the increasing number of users from non-English speaking countries, companies involved in the internationalization of their business have to consider website localization. Website localization is indispensable to make the webside a global success. However, base Smalltalk systems, Seaside and previous versions of seaBreeze are minimally prepared for localization. The presentation explains fundamentals of Internationalization (I18N) and Localization (L10N) and deduces an Internationalization and Localization Model in Smalltalk, implemented in SeaBreeze. Concepts of localization processes and tools are demonstrated, including Machine Translation (MT) and Translation Memories (TM). A demo of seaBreeze 5.0 concludes the presentation.

Technorati Tags: , ,

posted by James Robertson

 Share Tweet This

smalltalk

Glamorous Inspector

August 23, 2011 9:46:41.000

Tudor Girba has announced some interesting enhancements to the Glamour toolset:

I am happy to announce the first release of the Glamorous Inspector, a new browser for inspecting objects based on Glamour.

Technorati Tags:

posted by James Robertson

 Share Tweet This

js4u

JS 4U 84: The empty() Function

August 23, 2011 9:55:53.152

Javascript 4 U

Today's Javascript 4 You. Today we look at the empty() function in JQuery - which lets us select a page element and empty out its child element(s). 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:

empty

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:
[js4u84-iPhone.m4v ( Size: 2006764 )]

posted by James Robertson

 Share Tweet This

smalltalk

STIC Conference 2012

August 23, 2011 13:02:50.186

Smalltalk Solutions is being renamed to the "Smalltalk Industry Conference" (STIC), and the 2012 show will be in Biloxi, Mississippi. Georg Heeg just announced the following at ESUG 2011:

I just made this announcement at ESUG in Edinburgh:

  1. Smalltalk Solutions has been renamed to Smalltalk Industry Conference (STIC)
  2. STIC 2012 will be in Biloxi, Mississippi
  3. STIC 2012 will open Sunday March 18th, 2012 in the evening
  4. STIC 2012 conference days will be Monday to Wednesday March 19th to 21st, 2012
  5. STIC 2012 will be followed by a Camp Smalltalk on Thursday and Friday
  6. There will be program for Student Volunteers
  7. Call for papers is open
  8. STIC will continue to collaborate with ESUG

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

news

A Real Earthquake on the East Coast

August 23, 2011 14:07:02.597

Wow - we just had an actual earthquake here in Maryland - house shook, startling us all. According to the USGS, it was a 5.8, centered in Virginia

It was noticeable here - a few things fell, and the whole house vibrated - I felt it on my concrete steps leaving the house during it. Short - only lasted something like 30 seconds, but very startling for this part of the country. I see tweets saying it was felt as far north as Toronto, so I hope it's not a precursor to the New Madrid fault waking up...

Update: This was pretty big news - front page of Drudge right now. USA Today has an update stream.

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

ESUG 2011 Slides

August 24, 2011 8:18:10.607

The slides for the ESUG 2011 talks are starting to pop up up:

We are starting to upload the Slides of ESUG 2011:
SlideShare
Archive (PDF)
Tweet Stream

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 124: Using Scriptaculous with Seaside

August 24, 2011 8:18:54.967

Today's Smalltalk 4 You continues the VA Smalltalk Seaside tutorial with Ajax. We'll change the filtering links on the main view to update using Javascript rather than a full page submit. Today we'll do that using Scriptaculous; in the next tutorial, we'll use JQuery. 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:

Ajax.

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:


In this section we'll add Ajax to our Seaside application. Today we'll use Scriptaculous - in the next tutorial, we'll use JQuery. The configuration and code for both are largely the same, and so far as the end user of your applications is concerned, things behave the same way.

First, we need to go back into the configuration screens (as we did for the custom session work). We'll need to do the same thing for both the blogView and blogLogin entry points we've defined. Scroll down in the configuration section to libraries, and select configure. In the image below, I've already added the two libraries in question; your listbox will be blank:

Configure

Select PTGoogleLibrary (Prototype) and SUGoogleLibrary (Scriptaculous) on the left - use the arrow button to move them to the right:

Libraries

Now scroll down to the Ok button to apply the change, and then repeat the process for the other entry point:

Libraries

Now we need to get into the code that will use these libraries that we just ensured will be loaded. First, we'll redefine BlogMenuView to hold a reference to the list component - so that when links are clicked, we can direct the list component to re-render without forcing a full page submit:



WAComponent subclass: #BlogMenuView
    instanceVariableNames: 'entries listComponent '
    classVariableNames: ''
    poolDictionaries: ''


We'll also need to change the #initializeMenuComponent method in BlogServerView to set that up:


initializeMenuComponent
	menuComponent := BlogMenuView new.
	self session currentUser ifNotNil: [menuComponent addEntry: 'New Post' withAction: [self addPost]].
	menuComponent addEntry: 'All Posts' withAction: [self allPosts].
	menuComponent addEntry: 'Today''s Posts' withAction: [self todaysPosts].
	menuComponent listComponent: listComponent

Now we'll change the way #renderContentOn: works, so that it renders the filtering links as ajax enabled links:


renderContentOn: html

	self entries 
		do: [:each |
			(each key = 'New Post')
				ifTrue: [self renderStandardLinkOn: html for: each]
				ifFalse: [self renderAjaxLinkOn: html for: each]]
		separatedBy: [html space]

The #renderStandardLinkOn:for: method looks a lot like the above method used to look; the changes are in #renderAjaxLinkOn:for:


renderStandardLinkOn: html for: entry
	"Render this component"

	html anchor
			callback: entry value;
			with: entry key

renderAjaxLinkOn: html for: entry
	"Render this component"

		html anchor onClick:
			(html updater
				id: 'listid';
				callback: [:renderer | self listComponent updateFilterFrom: entry key.
							renderer render: self listComponent]);
			url: '#';
			with: entry key

Note the #onClick: method - it sets up the link to use Javascript. The #updater method is how we hook in Scriptaculous. The callback here is a block, and that's where we take advantage of the link to the list component - we tell it to re-render within the named div on click. The last thing we need to do is add #updateFilterFrom: to the BlogListView class, so that the updater can reset the filter just before it re-renders:


updateFilterFrom: filterName
	filterName = 'All Posts'
		ifTrue: [self setAllPostsFilter]
		ifFalse: [self setTodaysPostsFilter]

That's all the code we need - now just open the blogView interface in your browser, and switch between the two filters (all and today) - you should see them updating without a full page submit. Next time, we'll redo this to use JQuery

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:
[st4u124-iPhone.m4v ( Size: 7010457 )]

posted by James Robertson

 Share Tweet This

itNews

The Post-Jobs Era begins at Apple

August 25, 2011 2:13:04.077

Steve Jobs is stepping down - probably due to his ongoing health issues. Apple has been a really interesting company under his leadership; let's hope that we don't see a return to the first post-Jobs era.

And in the meantime, best wishes to Steve Jobs.

Technorati Tags:

posted by James Robertson

 Share Tweet This

esug11

ESUG 2011 Notes

August 25, 2011 8:18:45.000

Goran Krampje has been taking stock of the goings on at ESUG 2011.

Technorati Tags:

posted by James Robertson

 Share Tweet This

js4u

JS 4U 85: The remove() function

August 25, 2011 10:01:55.188

Javascript 4 U

Today's Javascript 4 You. Today we look at text replacement using JQuery. 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:

JQuery remove()

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:
[js4u85-iPhone.m4v ( Size: 1858186 )]

posted by James Robertson

 Share Tweet This

esug11

Visuals from ESUG 2011

August 25, 2011 14:14:27.298

Adriaan van Os has been taking a lot of photos at ESUG 2011 - take a look

Technorati Tags:

posted by James Robertson

 Share Tweet This

weather

Goodnight Irene

August 25, 2011 15:20:38.533

Looks like I'm in for an exciting weekend:

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

st4u

ST 4U 125: Using JQuery with Seaside

August 26, 2011 8:11:12.352

Today's Smalltalk 4 You continues the VA Smalltalk Seaside tutorial with Ajax. We'll change the filtering links on the main view to update using JQuery rather than Scriptaculous. 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:

Ajax.

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:


In this section we'll change our ajax usage from Scriptaculous to JQuery - this will require a small configuration change, and then the modification of one method. First, go back to the configuration screens for your Seaside system. We'll have to modify both the blogView and blogLogin we set up. ONce you get into the configurations screens for the first of those, scroll down to libraries and open that section up. Move PTGoogleLibrary and PTSTLibrary out, and add in JQGoogleLibrary. If you've forgotten how to get to those screens, then go back to this earlier tutorial

JQuery

With that out of the way, we need to make one change in class BlogMenuView - #renderAjaxLinkOn:for: needs to have the link callback set up for JQuery:


renderAjaxLinkOn: html for: entry
	"Render this component"

		html anchor onClick:
			((html jQuery: #listid) load
				html: [:h | 
					self listComponent updateFilterFrom: entry key.
					h render: self listComponent]);
				url: '#';
			with: entry key

That's it - if you test the application, it should behave exactly as it did when using Scriptaculous.

Next time we'll look at adding CSS to our application

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:
[st4u125-iPhone.m4v ( Size: 4253300 )]

posted by James Robertson

 Share Tweet This

smalltalk

The Pharo Roadmap

August 27, 2011 2:12:22.782

posted by James Robertson

 Share Tweet This

podcast

IM 43: Fluid Positioning for VisualWorks Part 2

August 27, 2011 11:13:46.059

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

This Dave Buck and I finish our conversation about the automated layout tools he's been working on for VisualWorks. The podcast is being posted in two parts; episode 42 was out last week. If you want a visual idea as to what we're talking about, Dave posted a video update recently

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:
[im43.mp3 ( Size: 12815269 )]

posted by James Robertson

 Share Tweet This

podcastAAC

IM 43: Fluid Positioning for VisualWorks Part 2 (AAC)

August 27, 2011 11:14:40.139

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

This Dave Buck and I finish our conversation about the automated layout tools he's been working on for VisualWorks. The podcast is being posted in two parts; episode 42 was out last week. If you want a visual idea as to what we're talking about, Dave posted a video update recently

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:
[im43.m4a ( Size: 17301489 )]

posted by James Robertson

 Share Tweet This

weather

Here Comes Irene

August 27, 2011 12:19:52.023

Game on:

The big question: will our power go out, and - if it does - for how long?

posted by James Robertson

 Share Tweet This

smalltalk

Podcast Updated

August 27, 2011 21:15:34.830

If you downloaded the podcast early today, you might want to grab it again - I got Squeak News from Randal after I posted, so I merged that in and pushed new audio files.

Why did I go so early? This:

posted by James Robertson

 Share Tweet This

weather

Less Bad than Isabel

August 28, 2011 11:23:56.639

As bad as the storm sounded last night (and I woke up to some howling winds) - things didn't go so badly here in my neighborhood. The power went out at midnight, but just came back on. The freezer is still frozen, so it looks like we caught a break that way. There are still a lot of people on the east coast without power though, so I count myself lucky.

Oh, the title - after the last big storm (Isabel) that hit us, we were out of power for four days. That was a lot more exciting, but not the good kind :)

Update: I have no idea whether it's related, but maybe a data center somewhere had a problem. My Xbox Live profile had to be recovered - which meant resetting my password, as I had no idea what it was. As much of a pain as that was, if that's the most damage we took, it's all good.

posted by James Robertson

 Share Tweet This

smalltalk

Monkeying in the Meta

August 28, 2011 20:51:27.525

Michael van der Gulik has some interesting notes on playing around at the meta levels of Smalltalk:

I want to add more instance variables to Class. How difficult is this? Pretty. I suspect that for vanilla Squeak or Pharo, you'd need to carefully remake every single Metaclass instance and Class instance. For me, my Packages architecture means I only need to recompile my own private Metaclasses and all its instances which can be done safely.

Read the whole thing; Michael is working where angels fear to tread :)

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 126: Adding Style to a Seaside Application

August 29, 2011 0:53:08.656

Today's Smalltalk 4 You continues the VA Smalltalk Seaside tutorial with CSS. Today we'll add that support directly in the image (application code) - next time, we'll look at external file resources. 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:

CSS.

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:


In this section we'll add some CSS to our application, directly in the image. IN a future tutorial, we'll look at adding external file resources (images, CSS files, etc) as well. To start with, go to class BlogServerView and add the following method:


style
	'h1 {color: green; }'

You can put arbitrary CSS in that method - the CSS you add will apply to the component you add it to. Now, refresh the view in the browser:

Styling

That's it - this method is useful when you want to hand a prototype over to someone else with a minimum amount of fuss - you simply give them the image and the VM, and off they go. Next time we'll look at adding external file resources to our application

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:
[st4u125-iPhone.m4v ( Size: 2830029 )]

posted by James Robertson

 Share Tweet This

esug11

Photos from Edinburgh and ESUG 2011

August 29, 2011 10:34:50.568

James Foster has a nice assortment of photo links from ESUG 2011.

Technorati Tags:

posted by James Robertson

 Share Tweet This

esug11

Scripting with Pharo

August 29, 2011 12:08:01.968

Damien Pollet's ESUG 2011 slides for Coral are online.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

smalltalk

VA Smalltalk 8.5 Released

August 29, 2011 12:10:06.918

Instantiations has pushed out VA Smalltalk 8.5:

We're very happy to announce the availability of Version 8.5 of VA Smalltalk. This latest release is available now and includes a number of powerful new capabilities and enhancements.

Follow the link to see what's new!

Technorati Tags:

posted by James Robertson

 Share Tweet This