ST 4U 143: insert and Query in VA Smalltalk
Today's Smalltalk 4 You looks at inserting data into tables, and querying data from tables, in 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 inserting and querying data from a database in VA Smalltalk - to see how to connect, please go back to this tutorial, as we are building on it here.
Once you have a connection to your database set up (with a user who has permissions to make changes), you can insert data pretty easily. Get a reference to the table (as we did for creating it), and then create a new row object:
table := (connection openTableNamed: 'PEOPLE'). newRow := table emptyRow.
Now that you have a row, add data (as you would using a dictionary), and then tell the table to add the row. Don't forget to commit the changes:
newRow at: #name put: 'James Robertson'; at: #street put: 'River Run'; at: #city put: 'Columbia'; at: #state put: 'MD'; at: #zipcode put: 12345; at: #phone put: '123-456-7890'. table addRow: newRow. "commit it" connection commitUnitOfWork
Next, we'll query the database for the data we just inserted. Set up a query spec. For simple "select *" type queries, there's a convenience method:
"query" resultCollection := OrderedCollection new. querySpec := AbtQuerySpec forEntireTable: table. result := connection resultTableFromQuerySpec: querySpec. result do: [:eachRow | resultCollection add: (eachRow)]. ^resultCollection first asDictionary
There are a number of things going on there. First, we create a query spec. Then we take the results and gather them into a collection. The results are a collection of AbtRow objects - which is where the #asDictionary API comes from:
You should take a bit of time to browse that class and look at the APIs. What if you want to use arbitrary SQL, and not an implied "Select *"? Use something like this:
resultCollection := OrderedCollection new. querySpec := (AbtQuerySpec new) statement: 'SELECT * FROM PEOPLE'. result := connection resultTableFromQuerySpec: querySpec. result do: [:eachRow | resultCollection add: (eachRow)]. ^resultCollection first asDictionary.
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: smalltalk, va smalltalk, database
Enclosures:
[st4u143-iPhone.m4v ( Size: 6430069 )]
The Tyranny of C Style Syntax
Dart has been previewed today, and it's, not suprisingly, yet another C-Style programming language. I'll have a look at the language, but I really wish we could get away from curly braces :)
Technorati Tags: dart
IM 49: Upgrading a Large VW Application, Part 2 (AAC)
Welcome to episode 49 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck.
This week James and David wrap up their conversation about upgrading a large Smalltalk application - specifically, a VisualWorks 7.6 application being upgraded to VisualWorks 7.8. While the conversation hones in on a number of things specific to that upgrade path, the issues are similar to those any Smalltalk developer will face in an upgrade.
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: smalltalk, upgrade, visualworks
Enclosures:
[im49.m4a ( Size: 12335602 )]
IM 49: Upgrading a Large VW Application, Part 2
Welcome to episode 49 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck.
This week James and David wrap up their conversation about upgrading a large Smalltalk application - specifically, a VisualWorks 7.6 application being upgraded to VisualWorks 7.8. While the conversation hones in on a number of things specific to that upgrade path, the issues are similar to those any Smalltalk developer will face in an upgrade.
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: smalltalk, visualworks, upgrade
Enclosures:
[im49.mp3 ( Size: 8970408 )]
Monticello for Amber
Dale Henreichs talks about the Kaliningrad project, which brings Monticello to Amber.
Technorati Tags: amber, monticello
Ignoring the Thumper Rule
Wow, it turns out that Stallman is a bigger ass than I thought he was - and I've never thought all that highly of him to begin with. He needs to go watch this video - it's only 11 seconds long, but I expect that he'll need to repeat a few thousand times for it to sink in.
ST 4U 142: Using SQL in VA Smalltalk
Today's Smalltalk 4 You looks at using VA Smalltalk to interact with a relational database. Today, we add a new table from Smalltalk - to see how to connect, please go back to this tutorial. 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 creating a table in VA Smalltalk - to see how to connect, please go back to this tutorial, as we are building on it here.
Once you have a connection to your database set up (with a user who has permissions to make changes), set up your SQL to create a table:
"connects with the alias" connection := conSpec connectUsingAlias: 'winlocalSpec'. "define sql" sqlDef := '(NAME varchar(30) NOT NULL,', ' STREET varchar(20) null,', ' CITY varchar(20) null,', ' STATE varchar(2) null,', ' ZIPCODE int null,', ' PHONE varchar(13) null)'.
This sets up the SQL to create a simple table. Now we need to tell the connection to send it to the database:
"create a table" table := connection createTableNamed: 'PEOPLE' definition: sqlDef.
At this point, you aren't quite done. Since this is a database change rather than just a query, we need to commit the change:
"commit it" connection commitUnitOfWork
Finally, after working with your database, make sure you close the connection:
"disconnect" connection disconnect.
We'll look at querying and binding query results in a future tutorial.
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: smalltalk, va smalltalk, database
Enclosures:
[st4u142-iPhone.m4v ( Size: 4475151 )]
ESUG Videos at YouTube
The videos from 2008 on up are appearing on ESUG's YouTube channel.
Technorati Tags: esug
Instantiations News
Spotted this on the ESUG mailing list, from Mike Taylor (Instantiations CEO):
Instantiations is very pleased to announce that Smalltalk veteran John O'Keefe has been promoted to Chief Technical Officer of the company. In reality this is a role that John has been successfully filling for a number of years and we decided it was about time to officially recognize his contributions!
Congratulations to John!
JS 4U 97: Indexing into JQuery Selector Results
![]() |
Today's Javascript 4 You looks at how you can work with collections of JQuery selector results. 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.
You can also watch it on YouTube:
Technorati Tags: javascript, jquery, tutorial
Enclosures:
[js4u97-iPhone.m4v ( Size: 1804995 )]
RIP, Steve Jobs
Sad news tonight - Steve Jobs has died. I guess it's not a huge shock, given that he stepped down from Apple a bit over a month ago. It seemed pretty clear that running Apple was what he wanted to do more than anything else, and he only left when the universe intervened.
There's a huge hole in Silicon Valley with his departure, and, in my opinion, in the world in general. I'd go so far as to say that Steve Jobs brought more joy to more people than just about anyone. He'll be missed.
Technorati Tags: apple, steve jobs
Don't serve WAFileLibrary subclasses from Seaside
James Foster explains how to make the static parts of your Seaside app actually static:
Most of us recognize that static files do not need to be served from Seaside, but it is a step that can be easily overlooked. I was recently helping someone analyze performance for a Seaside application and we found that serving the initial page made 20 Seaside requests, all but one of them for something in /files (i.e., a subclass of WAFileLibrary). In this case it was Scriptaculous, but it could be anything.
Read the whole thing for details.
Technorati Tags: seaside
ST 4U 141: Unit Testing in VW
Today's Smalltalk 4 You looks at SUnit (SUnitToo, actually) testing in VisualWorks. 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:
Technorati Tags: sunit, visualworks, testing
Enclosures:
[st4u141-iPhone.m4v ( Size: 5495128 )]
Running Dolphin on OS X
The Object-Arts people have put up a very detailed post on the subject, and some videos.
iPhones for All?
Sprint just got into the iPhone game:
For Sprint, the iPhone could be its savior, or its doom. The company has arranged to buy at least 30.5 million iPhones over the next four years, a deal worth around $20 billion today, the Wall Street Journal reports.
Here's where I'm confused though:
- ATT "4G" is one variant of LTE
- Verizon "4G" is another (not necessarily compatible with ATT) variant of LTE
- Sprint "4G" is WiMax
Meanwhile, the 3G story is CDMA (Verizon, Sprint) and GSM (ATT). So... does Apple wait on 4G, or start slapping a huge number of radios in the phones (or have multiple SKUs, which they hate)? This doesn't give consumers as much choice as it sounds like, either - given the disparate networks in play, your phone is probably a brick if you decide to switch vendors....
JS 4U 96: Url Encoding in JQuery
![]() |
Today's Javascript 4 You. Today we look at some complex elements selections 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:
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:
Enclosures:
[js4u96-iPhone.m4v ( Size: 1408088 )]
Patent Trolls Subtracting Value
Patent Trolls aren't just an annoyance - they cost us real money:
Lawsuits from non-practicing entities, or NPEs -- better known as patent trolls -- have cost innovators $500 billion in lost wealth from 1990 through 2010, the BU study found. The study arrived at that figure by observing patent defendants' stock prices following a lawsuit, excluding general market trends and random stock movements.
I'm so pleased that Congress just made trolling easier...
ST 4U 140: Connecting to a Database with VA Smalltalk
Today's Smalltalk 4 You looks at basic database connectivity in VA Smalltalk - what to load, and how to connect. In future screencasts, we'll look at using the connection for things like queries. 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 basic database connectivity in VA Smalltalk. Rather than using the parts based connector technology, we'll be diving into the code. To get started, you'll want to load the database support into VA; in the screen capture below, we show the ODBC connectivity (and example) packages loaded. Note that you need to define an ODBC connection, and have a database locally accessible:
Next, you'll need to set up the connection, using code like this:
"Create the Connection Specification" conSpec := AbtDatabaseConnectionSpec forDbmClass: #AbtOdbcDatabaseManager dataSourceName: 'winlocal'. dict := (Dictionary new). dict at: 'winlocal' put: (conSpec dataSourceName); at: 'DBManager' put: (conSpec dbmClass); at: 'Prompt?' put: (conSpec promptEnabled).
That sets up a connection specification, saving it under the logical name winLocal. We can then refer to this connection specification by name in our code. Next, if you want to login with a prompt, simply do this:
"prompts" connection := conSpec connect.
You should see this:
If you want to save your login information in the same way you stored the connection information, that's simple enough as well:
"Create the Logon specification" logonSpec := AbtDatabaseLogonSpec id: username password: password server: nil. AbtDbmSystem registerLogonSpec: logonSpec withAlias: 'winlocalSpec'.
Make sure you pass in the proper username and password. To connect using connection and login spec (and thus, getting no login prompt), do the following:
"connects with the alias" connection := conSpec connectUsingAlias: 'winlocalSpec'.
Finally, after working with your database, make sure you close the connection:
"disconnect" connection disconnect.
We'll look at actually using the connection for things like querying in a future tutorial.
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: smalltalk, va smalltalk, database
Enclosures:
[st4u140-iPhone.m4v ( Size: 5089211 )]