I'm still trying to get things going with VisualWorks and OAuth - I just realized that the timestamp needed to be in terms of GMT, not whatever my local time is. Makes perfect sense, just hadn't thought about it.
I'm still getting a 401 back from Twitter though; it's likely that my Authorization header isn't structured correctly. I'll have to take a very close look at it, after the next conference call. Later today I'll publish what I have to the public store, in the hope that maybe someone else can tell me what stupid thing I'm doing wrong :)
Update: I just replicated what I have to the public store. If you're inclined to help out, you'll need your own set of keys from an OAuth based system. Look for the OAuth package.
Today's Smalltalk Daily llooks at a package that adds code completion to VisualWorks and ObjectStudio. It's contributed code, so it could do more than it does - but it's a nice add on all the same. If you can't see the embedded video directly, you can go directly to YouTube for it. Click on the viewer below to watch it now:
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you need the video in a Windows Media format, then download that here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Ramon Leon talks about his implementation of a thread pool for Smalltalk (in the context of a Seaside app):
I had a search result page in Seaside that launched about 10 background threads for every page render and then the page would poll for the results of those computations, collect up any results found, and AJAX them into the page. Each one needs to run in its own thread because any one of them may hang up and take upwards of 30 seconds to finish its work even though the average time would be under a second. I don't want all the results being stalled waiting for the one slow result, so it made sense to have each on its own thread. This worked for quite a while with nothing but simple forking, but eventually, the load rose to the point that I needed a thread pool so I could limit the number of threads actually doing the work to a reasonable amount. So, let's write a thread pool.
It's easy to think that threads in Smalltalk are "free" - they are green threads, so what the heck - let's use more! However, you will (as Ramon writes) eventually hit a wall. I ran into one in BottomFeeder years ago, for slightly different reasons.
In BottomFeeder, I fork a Smalltalk process for each http request during an update loop. I subscribe to over 200 feeds, so that can amount to a lot of threads simultaneously clamoring for bandwidth. On my (fast) home connection, this was never a problem. However, back in the early 2000's, I was still running into dialup on the road at times, and even now, I periodically run into very slow Wifi. On slow connections, forking off that many processes just hurts more than it helps - so I wrote a thread pool into Bf.
What I should have done is what Ramon did - write a more general solution instead of burying it inside an app. However, it does show that this is something you might need, especially in the modern world of frequently (or always) connected apps.
Smalltalkers have more choices than ever in terms of platform (dialect) and framework - AidaWeb now runs on Pharo (it already supported Cincom Smalltalk and Squeak). From Janko in the Pharo mailing list:
I just made Aida ready on new and wonderful Pharo 1.1. and now Aida installs and run nicelly and even side by side with Seaside. You can even run both on the same Swazoo web server, which is also included.
Choice is good - you can now run a Smalltalk server built on a commercial grade web framework (AidaWeb or Seaside), using a standard database solution - Glorp - and have that server move pretty seamlessly between the various Smalltalk dialects.
Tim Bray would like more choices for development on the Android platform:
And finally, as a citizen primarily of the Web, I can’t help but notice that in recent years, its interesting bits (Facebook, Wikipedia, Twitter, 37 Signals, Ravelry) are largely not being built in Java. I know first-hand that there is a substantial community of really first-rate programmers, people I admire, who for one reason or another just don’t want to deal with Java; and I’d like some of them to become Android developers.
It's interesting that Apple's policies (limiting development to the C family plus Javascript) have gotten so much attention - but the situation on Android isn't that different at the moment. Sure, it's not due to any Google policy, but the end impact works out the same way. Becoming a first class citizen on these devices just isn't that easy without help from the platform vendor.
Bray thinks things will start opening up by 2011; we'll see. I think it's going to be hard for outside developers to keep up with the platform as it changes and evolves...
Valve, the company responsible for the game Modern Warfare 2, recently issued an apology to over 12,000 legitimate MW2 users who were accidentally banned from getting their first-person shooter on by the company’s DRM implementation.
The pirates manage to get around these issues easily enough; cracked games pop up on the net on or before the official release date. Which means that DRM fails miserably for the task it supposedly exists for. However, it sure does manage to irritate the crap out of legitimate users on an ongoing basis.
I wonder about the lawsuit claiming that iPads should work better (i.e., not overheat) in the sun - take this rationale from PC World:
This may actually be a very real problem, especially since the iPad is designed for e-book reading and casual computing--a very plausible time to use your iPad would be outside or at the beach.
There's one huge problem with that theory - go out in the sun and just try to read on the iPad. For good or ill, the LCD screen is just not an optimal solution for outdoor reading. Heck, the recent beach ads that Amazon is running for the Kindle play off of that reality.
Maybe the iPad shouldn't overheat as quickly as some claim it does in the sun, but seriously - you aren't going to be using it in the sun anyway.
Today's Smalltalk Daily llooks at a package that adds code completion to VisualWorks and ObjectStudio. It's contributed code, so it could do more than it does - but it's a nice add on all the same. If you can't see the embedded video directly, you can go directly to YouTube for it. Click on the viewer below to watch it now:
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you need the video in a Windows Media format, then download that here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Apparently, we're (my wife and I, that is) members of the selfish elites - and no one even gave us membership cards:
It’s not exactly official, but should also surprise no one: According to a new study the psychological profile of iPad owners can be summed up as “selfish elites” while have-not critics are “independent geeks.
Netflix is available on every major computing system - Macs, Windows, iPads - and on all the gaming systems - Wii, Xbox, and PS3. I think the on-demand thing is going to end up doing a lot of damage to pay per view on cable, and it's also going to change the way shows get created. The whole "weekly fix" thing is going to be harder to pull off as time goes by, and more and more people get sucked into the immediate gratification thing...
I decided to take a serious look at OAuth again - since I have a Twitter account and a set of application keys, I'm using Twitter as the service to test against. I had problems the last time I tried this; I spent awhile reading various websites, and this Twitter developer page has a nice sample of what you should be creating. The problem I was having?
The callback url needs to be double encoded, something I missed the first time around
In creating the signature base, I had managed to drop an ampersand from a spot where it needed to be
So now I'm writing some actual code, instead of just ramming my head against a wall in a workspace. With luck, I should have something working (and posted to the public store) later today or tomorrow.
"get the method"
method := Constructor class methodDictionary at: #determineClassToHandle:.
source := method getSource.
^source
"Insert the Probe"
CodeProbe
insertProbeIntoClass: Constructor class
selector: #determineClassToHandle:
sourceString: source
offset: 0
If you can't see the embedded video directly, you can go directly to YouTube for it. Click on the viewer below to watch it now:
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you need the video in a Windows Media format, then download that here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
Looks like the Pharo sprint at Camp Smalltalk London paid off:
Pharo 1.1 was released on July 26, 2010. This is the second release. It provides bug fixes, system cleanup, and new features. In total, 883 issues were resolved and went into this version.
Cult of Mac has the story - there's a DMCA exemption for jailbreaking a phone - specifically, circumvention is allowed for:
Computer programs that enable wireless telephone handsets to execute software applications, where circumvention is accomplished for the sole purpose of enabling interoperability of such applications, when they have been lawfully obtained, with computer programs on the telephone handset….
Today's Smalltalk Daily looks at the ProcessMonitor, a tool that's available in VisualWorks and ObjectStudio (and in a web form for WebVelocity). If you can't watch the YouTube embed below, click here to go to the video now:
You can follow the Smalltalk channel on YouTube for all the "Smalltalk Daily" videos. You can also check out the videos on Vimeo, where the quality is higher, or over on Facebook, if you are a member.
You can download the video directly here. If you need the video in a Windows Media format, then download that here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?