. .

st4u

ST 4U 146: Deleting from a Table using VA Smalltalk

October 17, 2011 8:21:56.897

Today's Smalltalk 4 You looks at deleting rows from a database using VA Smalltalk. We'll look at the "object" level interface to that today, and get to general use of SQL in a future screencast. 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:

Delete.

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 look at deleting data from a database using VA Smalltalk - to see how to connect, please go back to this tutorial, as we are building on it here. You can do this sort of thing directly via SQL, and we'll be getting to that in another screencast. Today we'll be looking at the "object" interface for this.

Once you have a connection to your database set up (with a user who has permissions to make changes), you can delete data pretty easily. First, query the data out of the database:


"delete a row"
table := connection openTableNamed: 'PEOPLE'.
querySpec := (AbtQuerySpec new)
	statement: 'SELECT * from PEOPLE where PEOPLE.ZIPCODE = 12345';
	hostVarsShape: (nil).
rowToDelete := (connection resultTableFromQuerySpec: querySpec) first.
table deleteRow: rowToDelete.

Next, commit the work:

"commit it" connection commitUnitOfWork

Now, before we executed the delet, here's what we had from the query:

queried data

And here's what we had after the commit:

queried data

That pretty much wraps it up for today - we'll look at some more examples next time.

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

posted by James Robertson

 Share Tweet This

travel

Sometimes the Journey Stinks

October 18, 2011 3:59:23.111

When you travel as much as I do, you're bound to hit bad weather every so often - and tonight I hit the jackpot. A line of storms diverted us to Houston for fuel, and then a second line kept us circling DFW for a bit. Then I had to wait in a long line at Avis - I hadn't updated my card with them, so even though I was on the "Preferred" board, I had to go talk to them.

One of those days....

posted by James Robertson

 Share Tweet This

js4u

JS 4U 100: The offsetParent() Function in JQuery

October 18, 2011 9:22:37.829

Javascript 4 U

Today's Javascript 4 You. Today we look at the offsetParent() function in 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:

offsetParent

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

posted by James Robertson

 Share Tweet This

smalltalk

Cog VM Updates

October 18, 2011 15:17:41.000

Eliot is still making progress on Cog; he's pushed out another update.

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

Cog on Android

October 18, 2011 15:19:01.000

Speaking of Cog, there's been progress on the Android front as well.

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 147: Using SQL Directly with VA Smalltalk

October 19, 2011 8:54:10.736

Today's Smalltalk 4 You looks at direct SQL access from VA Smalltalk. It's pretty simple, so long as you remember that the API differs when you use select (as opposed to any other SQL operator). 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:

SQL Access.

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 look at accessing a relational database using direct SQL statements in VA Smalltalk - to see how to connect, please go back to this tutorial, as we are building on it here. You'll want to take a look at class AbtQuerySpec if you intend to work at this level with your database accessing. The main thing to know is this: if you are querying (using select), then you use #resultTableFromQuerySpec: If you are using any other kind of SQL statement, use #executeQuerySpec: instead. The way you utilize this is pretty simple. To query, use the following kind of code:


"using AbtQuerySpec"
resultCollection := OrderedCollection new.
querySpec := AbtQuerySpec new.
querySpec statement: 'select * from people'.
result := connection resultTableFromQuerySpec: querySpec.
result do: [:eachRow | resultCollection add: (eachRow)].
^resultCollection.

It will look the same with a where clause:


"with a where clause"
resultCollection := OrderedCollection new.
querySpec := AbtQuerySpec new.
querySpec statement: 'select * from people where zipcode = 12345'.
result := connection resultTableFromQuerySpec: querySpec.
result do: [:eachRow | resultCollection add: (eachRow)].
^resultCollection first asDictionary

To use any other SQL statement:


"insert with a query spec"
querySpec := AbtQuerySpec new.
querySpec statement: 'insert into people values (''Fred Flintstone'', ''Rubble Way'', ''Old Town'', ''PH'', 23456, ''456-7890-1234'')'.
connection executeQuerySpec: querySpec.

"commit it"
connection commitUnitOfWork

"delete with a query spec"
querySpec := AbtQuerySpec new.
querySpec statement: 'delete from people where zipcode = 23456'.
connection executeQuerySpec: querySpec.

"commit it"
connection commitUnitOfWork

That pretty much wraps it up for today - we'll look at some more examples next time.

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

posted by James Robertson

 Share Tweet This

advertising

DLC For Deus Ex?

October 19, 2011 22:36:28.619

I'm a bit skeptical - the game has a defined beginning, middle and end - so I'm skeptical about how well DLC will fit into the narrative. Still, I liked the game, and the DLC is supposed to slot in during a failry obvious interstitial in the game. I downloaded the DLC while I was visiting my sister; we'll see how it goes :)

posted by James Robertson

 Share Tweet This

js4u

JS 4U 101: The position() Function in JQuery

October 20, 2011 8:59:55.285

Javascript 4 U

Today's Javascript 4 You. Today we look at the position() function in 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:

position()

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

posted by James Robertson

 Share Tweet This

smalltalk

Newer Newspeak

October 20, 2011 21:20:05.560

Dart may be the new shiny, but it looks like Newspeak is still getting some love.

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 148: Automated Loads in VisualWorks

October 21, 2011 8:56:02.141

Today's Smalltalk 4 You looks at automated loads (from Store) using VisualWorks. I've been doing a lot of work in this area on the project I'm on at work, and I thought it might be worth sharing. 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:

Automated Loads

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

posted by James Robertson

 Share Tweet This

smalltalk

GLASS Beta Moves Ahead

October 21, 2011 22:34:36.253

Dale has been busy:

GLASS 1.0-beta.8.7 has been released. I’ve been pretty busy since the last GLASS release in March: there are almost 50 bugfixes included in this release.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

smalltalk

Metacello Moves Ahead

October 22, 2011 8:36:35.000

Spotted in (gem)Stone Soup

Metacello 1.0-beta.31 has been released. The primary motivation for the release is support for GLASS 1.0-beta.8.7

Technorati Tags:

posted by James Robertson

 Share Tweet This

books

A Dance With Dragons

October 22, 2011 19:15:24.687

I just finished A Dance with Dragons: A Song of Ice and Fire: Book Five - and as per usual, he's thrown a few curveballs at us. Here we are in book five, and we are still being introduced to new characters. There's also a shocking (to me, at least) death near the end of the book - someone who I was sure was going to be a player all the way to the end bought the farm.

I'm still not pleased with what he's doing with Arya - I'd like to see her come back into the main story somehow. At least Tyrion is still a major player - I like that character quite a bit, and he keeps managing to land on his feet (although I'm curious to see how the deal he makes towards the end of this book plays out; his cards seem really weak at this point.

My one complaint was that the book was hard to get back into. Like the Wheel of Time books, the gap between installments has just been too long, and by the time a new one comes along, I've forgotten where the story was. At least winter has finally arrived :)

Technorati Tags:

posted by James Robertson

 Share Tweet This

podcast

IM 51: The Pharo Roadmap

October 23, 2011 14:16:33.125

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

This week we have a presentation from ESUG 2011: Marcus Denker presenting the roadmap for Pharo. If you would like to see the slides used in the talk, they are available here. If you would rather watch the video, you can get that here.

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

posted by James Robertson

 Share Tweet This

podcastAAC

IM 51: The Pharo Roadmap (AAC)

October 23, 2011 14:16:58.975

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

This week we have a presentation from ESUG 2011: Marcus Denker presenting the roadmap for Pharo. If you would like to see the slides used in the talk, they are available here. If you would rather watch the video, you can get that here.

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

posted by James Robertson

 Share Tweet This

general

Why Do Modern Buildings Look Awful?

October 23, 2011 19:43:15.363

It seems that in a very real way, many architects see the world differently than the rest of us do:

There are many such confirming studies. For example, Gifford et al. (2002) surveyed other research and noted that “architects did not merely disagree with laypersons about the aesthetic qualities of buildings, they were unable to predict how laypersons would assess buildings, even when they were explicitly asked to do so.” The researchers traced this disagreement to well-known cognitive differences in the two populations: “Evidence that certain cognitive properties are related to building preference [was] found.”

I wonder if this has now reached the self selection stage where the problem is reinforcing itself....

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

How to Build a Browser

October 24, 2011 8:36:26.930

Glamour makes it pretty easy - watch the video, and follow the link for the code.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

st4u

ST 4U 149: Parameterized Statements in VA Smalltalk

October 24, 2011 10:04:59.523

Today's Smalltalk 4 You looks at parameterized queries against a database using VA Smalltalk. 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:

Parameterized Access.

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 look at parameterized queries against a relational database using VA Smalltalk - to see how to connect, please go back to this tutorial, as we are building on it here. As you probably expect, you'll need to set up a connection, and then a mapping dictionary:


"Example - insertFromScript - parameter markers"
queryStatement := 'INSERT INTO PEOPLE (NAME, STREET,CITY,STATE,ZIPCODE,PHONE) VALUES (:PNAME, :PSTREET,:PCITY,:PSTATE,:PZIPCODE,:PPHONE)'.
qSpec := AbtQuerySpec new
statement: queryStatement;
yourself.
dict := Dictionary new.
dict
	at: 'PNAME'  put: 'Fred Flintstone';
	at: 'PSTREET'  put: 'Paleozoic Way';
	at: 'PCITY'  put: 'Rubble City';
	at: 'PSTATE'  put: 'AN';
	at: 'PZIPCODE' put: 23456;
	at: 'PPHONE' put: '890-123-4567'.


If you think about that for a moment, it will become clear how easy it would be to set up a "mini framework" that maps simple objects to database tables; we have one that follows this pattern (using VisualWorks, but it's the same idea) where I work. Make sure you commit the statement:


"commit it"
connection commitUnitOfWork.

Next, look at the two screen captures - we have a query before the code above ran, and then another one after it:

Table before

Table after

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

posted by James Robertson

 Share Tweet This

windows

On Running as Admin in Windows

October 24, 2011 17:32:50.000

There's no doubt that Windows 7 is an improvement over Windows XP; there is some doubt (at least in my mind) as to how far MS has gone in the "don't run as Admin" direction.

Why do I say that? Well, I use a Windows VM for playing games on my Mac when I travel. I went back to Mass Effect (I played that and ME 2 on the Xbox; I wanted a playthrough on Steam before ME 3 comes out). Anyway - it kept crashing on load screens in my XP VM. So I tried it in Windows 7. One long download later... it crashed on startup.

Which is where I went to the all powerful Google and discovered that the answer was... run Steam as Admin. The more things change....

Technorati Tags: ,

posted by James Robertson

 Share Tweet This