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....
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:
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:
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:
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.
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....
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!
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!
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 :)
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.
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:
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.
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.
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 :)
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:
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.
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:
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.
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.
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:
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:
And here's what we had after the commit:
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.