Patent number 7,945,653 is titled Tagging digital media. If you added “with someone’s identity,” this would be one of the rare cases where the title would reasonably describe what the patent covers.
Tagging followed by an automated email is now owned by Facebook. Can we just close down the patent office now, and declare everything they've done since, oh, about 1985, invaild?
Build it in Smalltalk, or hook up to a standard service? As Travis discovers with respect to Regex, it depends on a number of things - there's no simple "yes/no" answer that covers all cases....
Today's Smalltalk 4 You starts looking at how ENVY (the source code control system) for VA works. To do that, we'll go back to the example used in the debugger screencasts - an example that we didn't version of, or save an image for. Never fear though - ENVY keeps track of everything for you. If you prefer a written walkthrough to video, then skip down to it. 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 start looking at how ENVY (the source code management system) works in VA Smalltalk. To do that, we'll go back to the simple Counter application that was used in the debugger screencasts. When we did that, you might recall that the code wasn't specifically published in the repository, nor was the image saved. Like other Smalltalk systems, all of that work was saved. Unlike the ones that use a change log type system, it's all integrated in VA with source code control. What you see below is a view of the Applications browser - you'll note that the CounterApp is not there. That's because we're only looking at what's in the image now:
What we need to do is look at all of the Application Editions in the source code repository. Pull down that menu item from the launcher:
Scrolling down, we find CounterApp. Notice the version is just a timestamp; try clicking on some of the other Applications, and you'll notice normal version strings. That's because those were specifically published (by Instantiations), while our application was simply checkpointed by ENVY. That checkpoint does let us recover, however.
Now select the edition, right click, and pick Load from the menu. This will load the checkpointed edition into the image:
To complete this, select the class(es) on the right, right click, and select Load again. In this example, there's only one class to load:
Now open up an Application Browser (on the image, not on the repository) to look at what you recovered:
There's your code - now ready to be moved forward (and published with an actual version string). Next time we'll take a look at how to publish an edition with complete version information
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.
Via Torsten comes some great news out of the ESUG community:
With the support of ESUG there is a new ESUG SummerTalk 2011 project called SmallHarbour. It wants to provide a simple platform to host smalltalk web applications (similar to seasidehosting.st but also for commercial projects.
Welcome to episode 18 of "That Podcast: An FNV Diary" - a podcast where Michael Lucas-Smith and I document our trials and tribulations in Fallout: New Vegas.
On today's podcast, Michael returns to talk about "Honest Hearts" with James. We covered the first act of the DLC - i.e., not the endgame, where you have to go in one of two directions. We'll be back to talk about that after Michael finishes his playthrough.
Got feedback? Send it to James. We'd really appreciate it if you head on over to iTunes and leave a comment - enjoy the podcast, and we'll see you in the wastelands!
Welcome to episode 18 of "That Podcast: An FNV Diary" - a podcast where Michael Lucas-Smith and I document our trials and tribulations in Fallout: New Vegas.
On today's podcast, Michael returns to talk about "Honest Hearts" with James. We covered the first act of the DLC - i.e., not the endgame, where you have to go in one of two directions. We'll be back to talk about that after Michael finishes his playthrough.
Got feedback? Send it to James. We'd really appreciate it if you head on over to iTunes and leave a comment - enjoy the podcast, and we'll see you in the wastelands!
The ESUG 2011 site - for the upcoming conference in Edinburgh - is live now. You can register there for the conference, the link for that is in the first paragraph. I wish I was going, but I'll be driving my daughter off to her freshman year of college right in the middle of the event - timing just didn't work for me.
Lots of websites go in for complex designs that make use of Ajax, CSS, and things like Flash to animate content, hide it behind expanding sections, and otherwise "prettify" things. Om Malik points out that there's still a place for simple and to the point - witness the Drudge Report, which drives more traffic to news sites than Facebook and Twitter combined:
He also set a paradigm for web design that still stands to this day. Critics who call his site ugly miss the point. It’s easy to navigate, doesn’t hide important information under sub-sections, and has a minimalist approach to layout. It’s also data-driven. Visit the Drudge Report several times in a day and you’ll see how he tweaks headlines and moves articles around to get the optimal configuration.
Another site that does something similar - Real Clear Politics (and their associated sites that cover other topics). Pretty is fine, but if people can't find your content, then you've made a very basic mistake. Food for thought...
Today's Javascript 4 You. Today we look at using the JQuery load() function to update content on a page. Note that to do this, we need to use a web server (here the example uses the built in Apache server on the Mac). This is due to the browser based security against cross-site scripting. 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.
Welcome to episode 19 of "That Podcast: An FNV Diary" - a podcast where Michael Lucas-Smith and I document our trials and tribulations in Fallout: New Vegas.
On today's podcast, Michael and James cover the three possible endgames for "Honest Hearts":.
Side with Joshua, kill the White Legs. This upsets Daniel
Side with Daniel, lead the Sorrows out of Zion. Joshua helps
Kill Joshua and Daniel, siding effectively with the White Legs
That wraps up the podcast for the next little while - we'll be back when the next DLC is released!
Got feedback? Send it to James. We'd really appreciate it if you head on over to iTunes and leave a comment - enjoy the podcast, and we'll see you in the wastelands!
Welcome to episode 19 of "That Podcast: An FNV Diary" - a podcast where Michael Lucas-Smith and I document our trials and tribulations in Fallout: New Vegas.
On today's podcast, Michael and James cover the three possible endgames for "Honest Hearts":.
Side with Joshua, kill the White Legs. This upsets Daniel
Side with Daniel, lead the Sorrows out of Zion. Joshua helps
Kill Joshua and Daniel, siding effectively with the White Legs
That wraps up the podcast for the next little while - we'll be back when the next DLC is released!
Got feedback? Send it to James. We'd really appreciate it if you head on over to iTunes and leave a comment - enjoy the podcast, and we'll see you in the wastelands!
The guys from FAST (organizers of the Smalltalk conference in Argentina) uploaded the video of the last talk I gave there. The audio is in English, and the quality is quite good. Thanks, FAST!
Today's Smalltalk 4 You looks at the process of releasing an application version in ENVY. If you prefer a written walkthrough to video, then skip down to it. 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 release an application into ENVY with a formal version. We'll be starting with the same CounterApp we worked with last time, so we are starting with the recovered code. The process is the same whether you've followed along, or have a new application that you want to release. First, open Tools>ManageApplications from the launcher:
Right click on the application in the middle pane. Scrolling down, you'll see Version/Release All and Version/Release Selected. We only have one application, so both will work the same way here:
This will pop up a releasing dialog. You can enter a version string (ENVY will provide a new one based on any release history this application has), and a comment:
After some brief activity - the code is already in ENVY, all you're really doing here is updating the version tagging for the loaded edition - the applications browser will update. If you look at the status bar at the bottom, you'll see your new version information:
To see what's changed, quit the image without saving, and launch it again. Now let's go back to the Tools menu in the launcher, and select Browse Application Editions:
Scroll down to CounterApp, and load the 1.0 edition that you just released:
There's your code - so you can now see how the entire process works:
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.
Looks like E-Books are headed in the same direction that MP3's did a long while ago - dominance over the dead tree format. Amazon just released this:
By July 2010, Kindle book sales had surpassed hardcover book sales, and six months later, Kindle books overtook paperback books to become the most popular format on Amazon.com. Today, less than four years after introducing Kindle books, Amazon.com customers are now purchasing more Kindle books than all print books - hardcover and paperback - combined.
The publishing houses are about to go all RIAA on us, I expect.
The proposal (SB 2120) requires Florida public schools to adopt digital-only textbooks by the 2015-16 school year, and spend at least 50 percent of their textbook budget on digital materials by that time.
The first thing I thought of is the backpack full of books my daughter has been carrying for years. I guess kids will finally stop risking a back injury while taking their books back and forth :)
The next meeting of the UK Smalltalk User Group will be on Monday, May 23rd.
Tim Mackinnon has recently started looking at JTalk - and how it translates Smalltalk to JavaScript as well as providing the familiar Smalltalk browsers in your web page. It's still a new project, but how does this approach compare to staying native? Come and join us for some interesting smalltalk on this topic.
In addition to this, Niall Ross will briefly update us on the upcoming ESUG conference 2011, in Edimburgh. Don't forget that the early registration is now open!
We'll meet in our usual venue - the Counting House, close to Bank Station, from 18:30 onwards.
Welcome to episode 29 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck. yes, the sequence number is off - for some reason I lost count last week, and skipped 29. So out of order, here it is.
I spoke to Stef Ducasse this week, about where the Pharo project is headed, and especially about his ideas for a consortium around Pharo. It's an idea similar to what has grown up around the Apache and Eclipse projects - but you can hear Stef explain it himself in the podcast. I'd like to thank Stef for his patience with this episode - we botched a recording attempt with him a few weeks ago, and he was kind enough to come back and do it again.
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!
Welcome to episode 29 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck. Yes, the sequence number is off - for some reason I lost count last week, and skipped 29. So out of order, here it is.
I spoke to Stef Ducasse this week, about where the Pharo project is headed, and especially about his ideas for a consortium around Pharo. It's an idea similar to what has grown up around the Apache and Eclipse projects - but you can hear Stef explain it himself in the podcast. I'd like to thank Stef for his patience with this episode - we botched a recording attempt with him a few weeks ago, and he was kind enough to come back and do it again.
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!
Today's Smalltalk 4 You shows you how to get started with Squeak and SQLlite - perhaps the simplest database that you could possibly set up. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To give full credit where it's due, I found all the necessary instructions on the Smalltalk Impressions blog. 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.
Apple has told patent troll Lodsys to take their claims elsewhere. The only troubling bit left is the fact that Apple - in a completely understandable cost/benefits decision process - paid Lodsys off in the first place. Ideally, Lodsys' "innovation" would have been deep sixed.
Nothing gets your attention like a midday trip to the emergency room. I've had a slight bit of chest pain (left side) for a few days now, and this morning it started to really hurt - my boss took me down to the nearest emergency room, and then waited the process out with me. They strapped me in, took some blood, ran a few tests - and apparently, I managed (no clue how) to strain a muscle in that spot (exacerbated last night, it looks like, when I helped a woman with a back problem put her bag in the overhead bin).
Alls well that ends well - my ekg, blood pressure, and pulse checked out fine, and the blood work didn't show anything ominous.
There was one upside - I managed to miss a meeting that would almost certainly have been dull :)
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.
No hail, but the sky got dark very fast, and we are getting a lot of lightning and wind right now. North of here, TV is reporting really nasty hail:
... And TV weather is telling me that rotation is headed straight at Arlington. This week has had way too much excitement for me...
Update: Well, that was exciting. Tornado warning here a few minutes ago, hotel sent someone door to door. Danger seems to have passed for the most part, but - there's another line of cells west of here. So it looks like it's not over yet.
Today's Smalltalk 4 You shows you how easy it is to grab an arbitrary VA Smalltalk process and load it into the debugger. This can be useful a few different ways - exploring the system, or killing a runaway process that you didn't keep a variable reference to. If you prefer a written walkthrough to video, then skip down to it. 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 debugging arbitrary processes in VA Smalltalk, which is easy using the debugger. To show that off, we'll create a Smalltalk process in the workspace, and then grab it with the debugger. Here's the code to kick off a simple process:
And here's a look at the Transcript, which shows that the process is, in fact, running:
Going back to the launcher menu, select Tools, go all the way to the bottom, and open the debugger:
You haven't opened the debugger on a specific process, so it's empty. That's something we'll fix in a moment. Under the Processes menu, select the first option, Debug Other:
What you'll see now is a small window with a list of processes in it. These are Smalltalk processes, controlled by the VA Smalltalk environment:
You can select any of them and start debugging them in the debugger, including main system processes. This is a great way to see how things work in any Smalltalk environment, but here we've selected the process we forked off above. One of the other things you can do with this feature is select a process so that you can terminate it - useful if you've forked one off, and haven't maintained any direct access to it. Here's the process in question in the debugger:
Now that you've grabbed the process in the debugger, it's easy to kill it. Simply go back to the Processes menu, and select Terminate:
In this example, we held a reference to the process in the workspace, so we can inspect it (as seen below). If you didn't, simply repeat this process, and you'll see that the list of processes is one smaller:
Looking below, you can see in the inspector that the process is dead. That solves the problem of grabbing an arbitrary process we don't want or need any longer and killing 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.
This afternoon I had to export part of a tree of objects from one UI to a smaller one (to allow for end user editing of those objects). This all backs to a database, so I didn't want the AspectAdaptors (this is VisualWorks) I was hooking up to make changes to the actual domain objects; I wanted copies. Using #copy and #postCopy is pretty straightforward, but I wanted to check to make sure that I was doing it correctly
As part of our development toolset, we have some mods that add a little "inspect it" button to every window. That's highly useful, and got me most of where I wanted to go. The last step was simply using base functionality of VW that a lot of people probably aren't aware of - you can drag objects from an inspector and drop them on a workspace, creating a workspace variable that points to that object. Doing that from each piece of the UI, I was then able to run a simple #== check on the objects, and verify that my copy operation was working correctly. Kind of a cool thing to be able to do, that drag/drop between tools.
BOSS is one of the more useful pieces of VisualWorks, so I'm interested to see that the Pharo project is acquiring a modern equivalent. Via Torsten:
Fuel - a new project to implement binary object serialization for Pharo is part of the ESUG SummerTalk. It's work in progress but already usable, there is a ConfigurationOfFuel metacello config to easily load it.
The existence of a Metacello configuration is key - it makes it very, very easy to load (and thus much easier to contribute to the project). Good stuff!
As announced in an earlier blog-post, i implemented a RemoteRunner for the jtalk-server (based on the jtalk-project). It's very simple: if you implement a Method runRemote in your class, e.g. RemoteTest, then by executing:
RemoteRunner new runClass: RemoteTest
will execute the Smalltalk-Code implemented in the runRemote-Method on the server. The example prints out the date and time of the server.