GNU Smalltalk 3.2 Out
Looks like the 3.2 release of GST is out - follow the link for details
Technorati Tags: gst, gnu smalltalk
. .
The author of this blog, James Robertson, passed away in April 2014. This blog is being maintained by David Buck (david@simberon.com).
Looks like the 3.2 release of GST is out - follow the link for details
Technorati Tags: gst, gnu smalltalk
This week's podcast is part one of our 2 part podcast with John Maloney, one of the members of the Scratch project at MIT, and John Mcintosh, the long time Smalltalker who's been developing the Squeak port to the iPod/iPhone/iPad. Recently, John's port ran into issues with Apple, and Scratch has been removed from the app store. As you'll find out in the podcast, that's not due to the new language restrictions - although those do raise a different bar. In any event, it was a fun podcast, and we learned a lot about Scratch, which is a great environment for teachin kids about software.
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. Starting with Episode 186, you can also download the podcast in ogg format.
To listen immediately, use the player below:
If you like the music we use, please visit Josh Woodward's site. We use the song Effortless for our intro/outro music. I'm sure he'd appreciate your support!
If you have feedback, send it to smalltalkpodcasts@cincom.com - or visit us on Facebook or Ning - you can vote for the Podcast Alley, and subscribe on iTunes. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!
It looks like Apple has been quietly winning the battle against Flash:
As the chart [link above] shows, in the past four quarters, the H.264 format went from 31 percent of all videos to 66 percent, and is now the largest format by far. Meanwhile, Flash is represented by Flash VP6 and FLV, which combined represent only 26 percent of all videos. That is down from a combined total of 69 percent four quarters ago. So the native Flash codecs and H.264 have completely flipped in terms of market share (Flash also supports H.264, however, but you don’t need a Flash player to watch H.264 videos)
Wow, I had no idea. I thought Flash was still the biggest player - but it looks like Apple has already won that battle. As one of the folks on the Smalltalk IRC channel pointed out: "h.264 won the day that youtube started using it"
It looks like the iPad is a semi-mobile device in the "video streaming on the go" side of things:
The iPad’s built-in YouTube application strips both standard and HD videos to a dramatically lower resolution over the cellular data connection, something that iTunes Store video previews notably do not do, instead staying at a higher quality and consuming a greater amount of data. Other third-party applications, such as the ABC Player, refuse to work at all over the cellular connection, producing a notification pop-up that states, "Please connect to a Wi-Fi network to use this application. Cellular networks are not supported at this time."
So... if you had a Netbook and one of the 3G cards you can slap into a USB port, does this happen? I suspect not. Steve Jobs might want to hop on this, as it's clearly a bigger part of the experience than whether Flash supports touch well or not...
Dvorak gets this right - what if Microsoft played the mobile game the way they played the PC game twenty years ago?
Microsoft's key to success with a Zune Phone would be the addition of all sorts of screwball features. An easy way to do this is to do what Microsoft has always done: copy other people's work. In this case, the handset should come preloaded with 100 apps. It wouldn't take a lot of time to find out the top 100 iPhone apps. Clone them and pre-install them on the Zune Phone—or make them a part of the phone's basic functionality.
It's not as if they lack the resources to do that - they have money galore, and tons of talent. What they apparently lack is leadership.
Apple is shutting down Lala at the end of May - that's awfully close to their June announcements. Does this mean that we can expect a rollout of a streaming service from Apple? It's hard for me to understand why they would have bought Lala if that isn't planned....
Looks like people are ceding the tablet field to Apple:
HP has conceded the tablet war before it even engaged in battle by terminating the HP Slate project.
This device was supposed to be one of the major Windows based answers to the iPad - now it's a non-answer. Whatever you think of Apple's moves on Flash and language development restrictions, it looks like they'll win the early stages of that battle - simply due to the fact that they'll be the only ones playing the game.
Engadget notes that Microsoft is echoing Apple's lines about the future of video on the net. Cast your mind back a decde and ask yourself whether things would have progressed from Apple to Microsoft that way:
Where Steve Jobs leads, Microsoft follows -- how's that for shaking up the hornet's nest? It's said in jest, of course, but we've just come across a post from the General Manager for Internet Explorer, Dean Hachamovitch, and the perspective expressed by him on the subject of web content delivery broadly agrees with the essay penned by Jobs yesterday on the very same subject. Echoing the Apple CEO's words, Hachamovitch describes HTML5 as "the future of the web," praising it for allowing content to be played without the need for plug-ins and with native hardware acceleration (in both Windows 7 and Mac OS X).
No, Microsoft isn't banning Flash from IE - but further down Hachamovitch did single it out as a security and reliability problem that needed attention. It's been a bad week for Adobe.
Adobe's CEO has responded (in an interview) to Steve Jobs' smackdown:
Narayen didn't offer much we haven't heard Adobe say before, but his frustration with Apple is palpable even in summary form: he called Jobs' points a "smokescreen," said Flash is an "open specification," and further said Apple's restrictions are "cumbersome" to developers and have "nothing to do with technology." What's more, he also said Jobs' claims about Flash affecting battery life are "patently false," and suggested that any Flash-related crashes on OS X have more to do with Apple's operating system than Adobe's software.
The market will figure this out - it's Apple's way, Google's way, RIM, and whatever HP does with Palm. I'd include Microsoft, but they've been fumbling the ball in this space for more years than I can count.
The semantic web is apparently a sponsored thing:
Facebook has just given us an idea of how quickly these widgets are being adopted: a week after f8, 50,000 websites now feature the Like button and the other new plugins.
There were plenty of people who thought that it would happen some other way - but what was really needed was a critical mass of social users (all the Facebook users) who could be encouraged to start using simple "semantic web" stuff such as the "like" button. I'm part of that 50k - look at the bottom of this post :)
Technorati Tags: facebook, semantic web
While Apple has unloaded on Flash, YouTube has quietly unveiled a new flash player for the site:
YouTube has started to roll out a new Flash video player across its site that features not only a completely new design, but also offers some nifty bits of information about the performance of the current video.
However this plays out, it is not going to be a quick thing...
Today's Smalltalk Daily looks at reusing column buffers with Oracle (version 9 and up) with VisualWorks. This is an upcoming feature of VisualWorks, scheduled for VW 7.7.1. If you're looking for a particular topic, you can find it with the Media Search application on our site.
The code used is below; To watch, click on the viewer:
"Connect to an Oracle database." conn := OracleConnection new. conn username: 'username'; password: 'password'; environment: 'ORACLEDB'. conn connect. sess := conn getSession. "The default is false meaning not to reuse." sess reuseColumnBuffers: false. t1 := Time millisecondsToRun:[ " | conn sess ansStrm |" 100 timesRepeat: [ sess prepare: 'select * from sys.all_tables where TABLE_NAME=''DUAL'''. sess execute. ansStrm := sess answer. res := ansStrm upToEnd. ]. ]. Transcript cr; show: 'Time spent without reusing row buffers: ', t1 asFloat printString. "Set to reuse the column buffers." sess reuseColumnBuffers: true. t2 := Time millisecondsToRun:[ " | conn sess ansStrm |" 100 timesRepeat: [ sess prepare: 'select * from sys.all_tables where TABLE_NAME=''DUAL'''. sess execute. ansStrm := sess answer. res := ansStrm upToEnd. ]. ]. Transcript cr; show: 'Time spent with reusing row buffers: ', t2 asFloat printString.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Technorati Tags: video, visualworks, database, oracle, reuse buffers
You might have noticed that I used the VisualWorks workspace in a few recent ObjectStudio screencasts; now Andreas has addressed the issue that drove me to that:
What are Workspace Variables? Well, a Workspace Variables is just like any other variable, except that it is defined in the context of the current Workspace. This way you can get always the content of the variable, if you use the same Workspace.
That's what's cool about Smalltalk - want a feature? You can add it, whether you're an expert like Andreas or not.
Technorati Tags: objectstudio, workspace
For example, to access the Google Spreadsheets APIs and Tools, you need to download the Java client libraries and all its dependencies. The paths to there Jars must be known to the JVM and can be set through JNIPort. For easy deployment, I put together a single jar using an Ant build script
That's pretty cool - there are tons of Java libraries that connect to tons of things and JNIPort opens up that world to Smalltalk. It's all about reuse :)
Michael has pushed out some new info on Xtreams - check it out.
Interesting video site for Smalltalk tutorials - the Smalltalk Medicine Show, run by Chris Cunnington. Chris does a new video every week - the Medicine Show has some interesting video up on HttpView2.
Geert Claes has set up a new "World of Smalltalk" site - I'll be setting up a podcast calendar so he can include that.
Looks like there won't be a climb down for Apple - Steve Jobs has released a public letter on Flash - and why he doesn't want it on Apple's mobile devices. He went through a whole set of points, building up to this last one: Jobs doesn't want cross platform tools being used to build apps:
Flash is a cross platform development tool. It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps. It is their goal to help developers write cross platform apps. And Adobe has been painfully slow to adopt enhancements to Apple’s platforms. For example, although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5. Adobe was the last major third party developer to fully adopt Mac OS X.
Maybe there was some kind of compromise possible before this, but - not so much now. Apple has - from the very top - told Adobe (and every other non-native toolset, for that matter) to "go fish". That means the lines are drawn now: there's the bright lines of Apple's app store, and the less well drawn ones for Android. Meanwhile, HP sounds like they intend to invest real money in WebOS, so there's going to be real competition in this space. Game on.
Alexandre Bergel organizes a new Pharo sprint in Argentina (Buenos Aires or Rosario).
Good luck with this - from a New Jersey Middle School Principal:
"It is time for every single member of the BF Community to take a stand! There is absolutely no reason for any middle school student to be a part of a social networking site! "Let me repeat that - there is absolutely, positively no reason for any middle school student to be a part of a social networking site! None."
Right.... just like there was no reason for his generation to use a phone. When this guy joins the 21st century and reality, he should let the rest of us know.
If your slides look like this:
Then you lost your battle, or war, or sale - whatever it was you were attempting. Based on the graphic, it's not entirely clear what was being attempted :)
Technorati Tags: slides
Today's Smalltalk Daily looks at using Statement Caching against Oracle (version 9 and up) with VisualWorks. If you're looking for a particular topic, you can find it with the Media Search application on our site.
The code used is below; To watch, click on the viewer:
"The following are two examples, one uses statement caching, the other does not." conn := OracleConnection new. "Verify whether the loaded OCI supports Statement Caching." conn supportStatementCaching. "Set to use statement caching." conn useStatementCaching: true. conn environment: 'ORACLEDB'; username: 'username'; connect: 'password'. "Get Statement Cache Size, the default is 20." conn getStatementCacheSize. "Set Statement Cache to desired size." conn setStatementCacheSize: 30. "Verify the new Statement Cache Size." conn getStatementCacheSize. t1 := Time millisecondsToRun:[ " | conn sess ansStrm |" 100 timesRepeat: [ sess prepare: 'select * from sys.all_tables where TABLE_NAME=''DUAL'''. sess execute. ansStrm := sess answer. res := ansStrm upToEnd. ]. ]. Transcript cr; show: 'Time spent when using Statement Caching: ', t1 asFloat printString. conn := OracleConnection new. "Set to use statement caching." conn useStatementCaching: false. conn environment: 'ORACLEDB'; username: 'username'; connect: 'password'. t2 := Time millisecondsToRun:[ " | conn sess ansStrm |" 100 timesRepeat: [ sess prepare: 'select * from sys.all_tables where TABLE_NAME=''DUAL'''. sess execute. ansStrm := sess answer. res := ansStrm upToEnd. ]. ]. Transcript cr; show: 'Time spent without using Statement Caching: ', t2 asFloat printString.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Technorati Tags: oracle, database, statement, caching, visualworks
If an unmanned Apache gunship makes your boots quake, you're not alone, but you won't truly have reason to fear until 2025. That's when the government estimates half of all Army aircraft will be OPV, and those bots will learn the more deadly behaviors, like swarming.
Thisis a combination of awesome and terrifying, all at the same time. The idea of a swarm of Apache choppers with aAI driven chain guns is sort of nightmare thing.
Technorati Tags: AI, military, robot, terminator
HP and Palm, Inc. (NASDAQ: PALM) today announced that they have entered into a definitive agreement under which HP will purchase Palm, a provider of smartphones powered by the Palm webOS mobile operating system, at a price of $5.70 per share of Palm common stock in cash or an enterprise value of approximately $1.2 billion. The transaction has been approved by the HP and Palm boards of directors.
Why? What on earth is HP going to do with a failing phone business? Didn't they learn anything from the Compaq deal?
The Boy Scouts of America have finally recognized that most important of modern children's pastimes with the creation of a "Video Games" belt loop and pin.
Just in case you had any doubts about what the relevant survival skills were for a modern boy...
Technorati Tags: console, boy scouts
Android is progressing - Firefox for the Android is coming along:
Early adopters, it’s time to rejoice: Mozilla has officially released the “pre-alpha” of Firefox for Android — aka Fennec. It is available now for testing.
I think we can say "game on". It's going to be an interesting competition between Apple and Google in the mobile space. A lot of people think it'll play like Windows vs. Mac, but - there's a huge differerence now. The App store and iTunes puts Apple in a much better place than they were circa 1990.
Andreas is one of the most active guys doing Squeak development - now he's got a new forum for telling us what he's up to
Technorati Tags: squeak
Apparently, corporate IT shops are keeping IE6 alive - during work hours, it's the 4th most common browser in use - after hours, usage drops in half:
"It almost looks like individual Internet users are more tech-advanced at home than the IT departments where they work," said Alden DoRosario, Chitika's CTO, in a statement. "It's crazy to think that people whose job description revolves around employees having secure ways to browse the Web would keep IE6 alive, while these same employees go home to more secure browsers."
It's an amazing thing. The intranet I hit at work is usable in IE7 and 8, but only after I set compatibility mode. We have met the enemy, and he is us...
Looks like my theory on transcoder use in order to support the iPad wasn't off - that's exactly what Facebook has started to do:
As ReadWriteWeb notes, this implementation is not HTML5, which is what YouTube, Vimeo, Brightcove and a host of other video services are starting to support. Instead, Facebook is doing device-based transcoding (something that SaaS companies like Encoding.com provide) and converting the video so that it plays back in a QuickTime-compatible format within the iPad’s native video player.
As time goes by, I expect more sites to move to HTML5 or use Transcoding - and I also expect Flash usage to start dropping. Flash was the video standard for the web, but I think these sorts of moves prove that it's being dethroned....
Today's Smalltalk Daily looks at using Oracle's pre-fetch capability with VisualWorks. If you're looking for a particular topic, you can find it with the Media Search application on our site.
The code used is below; To watch, click on the viewer:
"Connect to an Oracle database." conn := OracleConnection new. conn username: 'username'; password: 'password'; environment: 'ORACLEDB'. conn connect. sess := conn getSession. "Drop the test table if existed." sess prepare: 'DROP TABLE TESTTABLE'; execute; answer; answer. "Create a test table." sess prepare: 'CREATE TABLE TESTTABLE( NUMMER int , BEMERKUNG varchar2 (30) )'; execute; answer; answer. "Set the number of recrods being inserted." loopCount := 1000. "The SQL used to do insert." sql := 'INSERT INTO TESTTABLE VALUES (?, ?)'. "Insert: Using array binding." insertTime2 := Time millisecondsToRun: [ |bindArray numArray stringArray | numArray := Array new: loopCount. stringArray := Array new: loopCount. 1 to: loopCount do: [ :i| numArray at: i put: i. stringArray at: i put: 'test'. ]. bindArray := Array with: numArray with: stringArray. sess prepare: sql. sess bindInput: bindArray; execute; answer; answer. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent using array binding: ', insertTime2 asFloat printString. "Set times to repeat." loopCount := 1. "Set the SQL to do the fetch." sql := 'SELECT * from TESTTABLE'. "Default value of prefetch rows is 1." sess setPrefetchRows: 1. selectTime1 := Time millisecondsToRun: [ 1 to: loopCount do: [ :i| sess prepare: sql; execute. ans := sess answer. res := ans upToEnd. ]. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent when prefetch rows is 1: ', selectTime1 asFloat printString. "Set prefetch rows to 100." sess setPrefetchRows: 100. selectTime2 := Time millisecondsToRun: [ 1 to: loopCount do: [ :i| sess prepare: sql; execute. ans := sess answer. res := ans upToEnd. ]. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent when prefetch rows is 100: ', selectTime2 asFloat printString. "Set prefetch rows to 500." sess setPrefetchRows: 500. selectTime3 := Time millisecondsToRun: [ 1 to: loopCount do: [ :i| sess prepare: sql; execute. ans := sess answer. res := ans upToEnd. ]. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent when prefetch rows is 500: ', selectTime3 asFloat printString.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Technorati Tags: visualworks, database, oracle, prefetch
We will be live on justin.tv with John McIntosh and John Maloney - talking about Scratch - at 9 PM (10 minutes from this postingig)
I just spotted another Smalltalk implementation:
ChocoSmallTalk is a hybrid SmallTalk/Lisp implementation in Common Lisp. The purpose of this project is an embedded SmallTalk in Lisp, known as a meta-circular implementation of lisp as an add-on. As time permits this project should be usable on ARM based processors on handhelds to make a real lisp-smalltalk machine.
Is it just me, or does it appear that California law enforcement has hopped all over the Gizmodo/iPhone thing in a way that the average homeowner who spots his stolen stuff at a flea market can only dream about?
Well, it looks like we're about to find out just how secure (or not) the iPad is - it's big enough that hackers are starting to target it:
Sabina Datcu, technology writer for anti-virus firm BitDefender, wrote in a blog post today that the threat arrives via an unsolicited email urging the recipient to download the latest version of iTunes as a prelude to updating their iPad software.
"A direct link to the download location is conveniently provided. As a proof of cyber crime finesse, the web page the users are directed to is a perfect imitation of the one they would use for legitimate iTunes software downloads," Datcu said.
And we're off to the races. I wonder whether anti-virus apps for the iPad (once non-Apple background apps are allowed in OS 4) are the next step?
Today's Smalltalk Daily looks at using LOBs with Oracle (version 9 and up) with VisualWorks. If you're looking for a particular topic, you can find it with the Media Search application on our site.
The code used is below; To watch, click on the viewer:
"The following are examples to demonstrate performance improvement when setting the right size of LOB buffers." "Connect to an Oracle database." conn := OracleConnection new. conn username: 'username'; password: 'password'; environment: 'ORACLEDB'. conn connect. sess := conn getSession. "Drop the test table if existed." sess prepare: 'DROP TABLE TestLob'; execute; answer; answer. "Create a test table." sess prepare: 'CREATE TABLE TestLob (A CLOB, B BLOB, C INTEGER)'; execute; answer; answer. conn begin. insertSQL := 'INSERT INTO TestLob (a, b, c) VALUES (?, ?, ?)'. sess prepare: insertSQL. clobLength := 2097152. "2MB" blobLength := 2097152. "2MB" clob := String new: clobLength withAll: $a. blob := ByteArray new: blobLength withAll: 1. sess lobBufferSize: 32768. "32KB is the default buffer size for read/write Large Objects." insertTime1 := Time millisecondsToRun: [ sess bindInput: (Array with: clob with: blob with: 1); execute; answer; answer. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent for insert when lobBufferSize is 32KB ', insertTime1 asFloat printString. "Set lobBufferSize to 1MB" sess lobBufferSize: 1048576. "1MB" insertTime2 := Time millisecondsToRun: [ sess bindInput: (Array with: clob with: blob with: 2); execute; answer; answer. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent for insert when lobBufferSize is 1MB: ', insertTime2 asFloat printString. conn commit. conn begin. sess := conn getSession. selectSQL := 'SELECT * FROM TestLob'. sess answerLobAsValue. "Get LOBs back as values." sess defaultDisplayLobSize: 2097152. "We want every byte of the LOBs returned." sess lobBufferSize: 32768. "32KB is the default buffer size for read/write Large Objects." selectTime1 := Time millisecondsToRun: [ | ans1 | sess prepare: selectSQL; execute. ans1 := sess answer. ans1 upToEnd. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent for select when lobBufferSize is 32KB ', selectTime1 asFloat printString. "Set lobBufferSize to 1MB" sess lobBufferSize: 1048576. "1MB" selectTime2 := Time millisecondsToRun: [ | ans2 | sess prepare: selectSQL; execute. ans2 := sess answer. ans2 upToEnd. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent for select when lobBufferSize is 1MB: ', selectTime2 asFloat printString. conn rollback.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Technorati Tags: oracle, database, LOB, visualworks
Scott Adams hits it out of the park :)
Seriously, Apple - it's 2010 now:
Following Opera's script in building grassroots hysteria to goad Apple into approving a contentious app, developer Greg Hughes is teasing a video of his Wi-Fi Sync app to the peoples of planet internet. As the name implies, the app promises a complete sync of your iPhone or iPod touch with iTunes without having to tether and looks pretty straightforward
Can we get this out of the box?
For the upcoming Google "Summer of Code" projects, four of the five projects are being led by people from the Argentinian Smalltalk community. Looks like the Smalltalks conference series has been doing good things down there :)
Technorati Tags: argentina, gsoc, open source
Most NFL teams have a sucky strategy at selecting their draft picks. Why? They're not looking at the numbers and crunching the data.
A few years ago Moneyball
showed up, and soon thereafter, it wasn't just teams with less money (like the Oakland A's) that were zeroing in on "the stats that matter". Heck, the Red Sox suddenly became a team that could win a World Series after their new ownership bought into the idea.
Wired thinks it's high time that the NFL followed suit. I'm sure that the long suffering fans of the Detroit Lions would agree :)
Now Apple is finding out about the kind of distrust their new "our languages only" policy is setting up with developers - witness the rumor that flew around the internet yesterday, ultimately ending in an email that Steve Jobs felt compelled to answer personally:
We heard a rumor last week about Apple making some big changes to the Mac OS X platform, let’s say to 10.7, in order to make it similar to iPhone OS and introduce an App Store for Mac applications that should be approved by Apple first. People started complaining about it, and I guess this would be the worst thing that could happen to a Mac developer, indeed. There are entire business built on top of the open nature of Mac OS X, and Apple just can’t change it anymore
It's a fairly absurd rumor, but - ponder the fact that it started to gain traction. That's the hole Apple has dug itself with some developers. As I've said before, it's too early to tell whether enough developers are angry enough to impact Apple... but this was an interesting data point.
This Tuesday at 9 PM EDT we'll be doing the podcast - Listen live as we talk to John McIntosh and John Maloney about Scratch.
I'm sure the topic of the new Apple language regime for the iPod and iPhone will come up, but we'll primarily be focused on what Scratch is, and what kind of reception it's had in the educational community
Today's Smalltalk Daily looks at using Array Binding against Oracle (version 9 and up) with VisualWorks. If you're looking for a particular topic, you can find it with the Media Search application on our site.
The code used is below; To watch, click on the viewer:
"The following Workspace examples will show the performance improvements when using array binding and array fetching in VisualWorks." "Connect to an Oracle database." conn := OracleConnection new. conn username: 'username'; password: 'password'; environment: 'ORACLEDB'. conn connect. sess := conn getSession. "Drop the test table if existed." sess prepare: 'DROP TABLE TESTTABLE'; execute; answer; answer. "Create a test table." sess prepare: 'CREATE TABLE TESTTABLE( NUMMER int , BEMERKUNG varchar2 (30) )'; execute; answer; answer. "Set the number of records being inserted." loopCount := 1000. "The SQL used to do inerst." sql := 'INSERT INTO TESTTABLE VALUES (?, ?)'. "Insert: not using array binding." sess prepare: sql. insertTime1 := Time millisecondsToRun: [ 1 to: loopCount do: [ :i| sess bindInput: (Array with: i with: 'test'); execute; answer; answer. ]. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent without using array binding: ', insertTime1 asFloat printString. "Insert: Using array binding." insertTime2 := Time millisecondsToRun: [ |bindArray numArray stringArray | numArray := Array new: loopCount. stringArray := Array new: loopCount. 1 to: loopCount do: [ :i| numArray at: i put: i. stringArray at: i put: 'test'. ]. bindArray := Array with: numArray with: stringArray. sess prepare: sql. sess bindInput: bindArray; execute; answer; answer. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent using array binding: ', insertTime2 asFloat printString. "Set times to repeat." loopCount := 1. "Set the SQL to do the fetch." sql := 'SELECT * from TESTTABLE'. "Default value of blockFactor is 1." sess blockFactor: 1. selectTime1 := Time millisecondsToRun: [ 1 to: loopCount do: [ :i| sess prepare: sql; execute. ans := sess answer. res := ans upToEnd. ]. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent when blcokFactor is 1: ', selectTime1 asFloat printString. "Set blockFactor to 100." sess blockFactor: 100. selectTime2 := Time millisecondsToRun: [ 1 to: loopCount do: [ :i| sess prepare: sql; execute. ans := sess answer. res := ans upToEnd. ]. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent when blcokFactor is 100: ', selectTime2 asFloat printString. "Set blockFactor to 500." sess blockFactor: 500. selectTime3 := Time millisecondsToRun: [ 1 to: loopCount do: [ :i| sess prepare: sql; execute. ans := sess answer. res := ans upToEnd. ]. ]. "Print out the miliseconds spent." Transcript cr; show: 'Time spent when blcokFactor is 500: ', selectTime3 asFloat printString.
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Technorati Tags: video, oracle, database, visualworks, array binding
In a brief press release buried within Sony Japan's website, the company announced that they would be ending sales of the classic 3.5 inch floppy disk in the country in March of 2011. Sony introduced the size to the world in 1981, which saw its heyday in the 1990s. Sony has been one of the last major manufacturers to continue shipments of the disk type they helped develop, but had ended most worldwide sales in March of this year. The company's production of the 3.5 inch floppy ceased in 2009
I had no idea that you could still buy those things. On a slightly more serious note: "back in the day", lots of people did backups on floppies (I well remember the multi-disk flip operation). If you actually have data from that era that you need to access, it's well past time to fire up any old PC's you still have in working condition and transfer the data :)
Technorati Tags: floppy disk
This week's podcast is part 2 of our conversation with Julian Fitzell, about cross dialect Smalltalk code - the approach taken with Grease and Slime for Seaside, and how that might help in other projects.
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. Starting with Episode 185, you can also download the podcast in ogg format.
To listen immediately, use the player below:
If you like the music we use, please visit Josh Woodward's site. We use the song Effortless for our intro/outro music. I'm sure he'd appreciate your support!
If you have feedback, send it to smalltalkpodcasts@cincom.com - or visit us on Facebook or Ning - you can vote for the Podcast Alley, and subscribe on iTunes. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!