Stuff in my Facebook Profile and News Feed
You've probably noticed a few things popping up (and then often being deleted) from my Facebook feed; that's an artifact of my testing of the code I'm writing. Most of it can be completely ignored :)
BlogLines Death Watch
Rogers Cadenhead notes that BlogLines seems to be slipping beneath the waves:
Some people are getting the error "Port 80 says: Bad Gateway ... proxy server received invalid response from upstream server," which suggests that there's a load-balancing problem with the site. The Next Web reported in October that the owner of Bloglines, Ask.Com, tried unsuccessfully to sell the site and has outsourced the operation to China. An unofficial Twitter account, bloglines, has been tracking the site for a while and claims that it's now being run strictly "in maintenance mode."
This is the one large drawback to online services: if they vaporize for any reason, you can be completely dead in the water. Client side apps may not be perfect, but at least you have something to ponder :) Ultimately, I think the RIA (Rich Internet App) is the proper blend, because you have a client side cache of your stuff, even if the service dies. Kind of the best of both worlds...
Understanding Incentives
Using law to make changes in something like software development is like using a sledgehammer to drive in a tack. It works after a fashion, but it tends to leave big dents. I say this in response to this idea of software liability with an out for open source code. From the Linuxjournal column, quoting Bruce Schneier:
The key to understanding this is that this sort of contractual liability is part of a contract, and with free software -- or free anything -- there's no contract. Free software wouldn't fall under a liability regime because the writer and the user have no business relationship; they are not seller and buyer. I would hope the courts would realize this without any prompting, but we could always pass a Good Samaritan-like law that would protect people who distribute free software. (The opposite would be an Attractive Nuisance-like law -- that would be bad.)
Now, consider what might happen if that kind of liability were present (especially given the size of some of the awards given out in consumer liability cases), and where incentives would be pushed. Would it be safer for a big company - Microsoft or Oracle, for instance - to keep selling licenses, or to push their stuff out under an OSS license and start selling support services? Their biggest customers are mostly paying for support as it is; it might well be safer to move all the way over into that column.
Does this mean that having liability laws cover software is a bad idea? I don't know; I'd have to really sit down and think about all of the implications. One thing's for sure though: I doubt that the off the cuff answer given in the Linuxjournal column would work out the way they expect...
Technorati Tags: open source, software liability
Smalltalk: Our Death has been Exaggerated
So there's been a lot of buzz about Bob Martin's "What killed Smalltalk could also kill Ruby" talk. The problem is, his talk started with misconceptions, and pretty much plowed forward from there. Early on, he stated that "Squeak is pretty much an academic thing now". That's kind of amusing; it's actually pretty hard to find academic use of any Smalltalk - Squeak or otherwise. Even "back in the day", Smalltalk didn't really have that big an academic presence.
Early on, that had to do with the lack of a free implementation, and the insistence on the part of vendors (ParcPlace being very bad this way) of charging universities to use Smalltalk for teaching. That was a dumb idea, and it did an awful lot of damage.
Getting back to his assertions that Squeak (and Smalltalk in general) is isolated to academia, I think Bob needs to subscribe to the Seaside mailing list. Sure, it's not nearly as active as some of the Ruby groups you'll find out there, but there are tons of people active in that community, and there's a lot of commercial work going on using Seaside - in multiple Smalltalk dialects. The coolest thing about Seaside is that it's the first thing that's really gotten all the vendors (and the open source offerings, Squeak and GNU ST) onto the same page.
It took awhile in the talk before he got back on point (which is not to say he wasn't interesting), but then I heard something fascinating - he related a statement from Ward Cunningham such that "it was too easy to make a mess" compared to other languages, where messes would be more obvious (in terms of build time, for instance). Well. I've seen plenty of bad code in Smalltalk; heck, I've written plenty of bad code in Smalltalk. But here's the secret, and it's one that Bob - and I guess Ward - missed:
It's much easier to dig your way out of a mess in Smalltalk than it is in anything else.
I'll give you a live example: this blog server. I originally had all of the storage code sitting in a "god object" called "BlogSaver". It was convoluted. It was a pain in the neck to modify. Adding, or god forbid, refactoring anything, was a nightmare. But...
Not only did I refactor it all, I did it without taking the server down, by patching the server while it was running. And - sorry to break this to you, Bob, but no, I didn't have tests for that stuff. Sure, I should have tests, and it likely would have helped. But you know what? I was able to dig my way out of that hole, patch the server on the fly with the update, and move along... and it took me oh, I think a couple of days. In fact, it didn't come down after that until there was a major power outage in Cincinnati (since then, Cincom has installed backup generators).
I have more bad news for Bob on this theory that a lack of proper testing will kill a community. Were that true, C, C++, Java, and C# would all be failures. And no, big messes in those languages aren't prevented by lengthy compile times and pain, either. There are lots and lots of absolutely enormous systems built in those languages, and many of them were (and are) being built without TDD. Sure, it's painful - I remember my days as a C programmer well enough :) The reality is, people build messes without regard to the language, and the relevant point is which language and tools make escape from the mess easier.
Here's another thing, too - in a quick toss off, he talked about the time people spend in debuggers. Oh boy, the common "debugging is bad" thing. Just a few minutes ago, I was working on my Facebook interface. Sure, I could read the doc, write a test that expects the stuff coming back from that, and... discover that the doc is way less useful than I'd like it to be. On the other hand...
I could just not write the full code at all, let the thing break, and ponder the response in the debugger. While there, I can write the code based on what actually came back, and watch it work. Rinse, Repeat for each one of them
Yes, tests are useful. But, the debugger is not something to be feared. Rather, it's a great tool to be used in order to have the computer do all the memory work for you. I can get a lot more done by working with decent tools like the Smalltalk debugger than I can by assuming the doc is good and writing tests that just help me a whole lot less than you might think.
On arrogance, Bob has a point - back in the 90's, Smalltalkers really were arrogant - I say this as one of the people who displayed a lot of arrogance back then. Then again, C++ developers were pretty arrogant too (go search the usenet archives if you don't believe me). Trust me - the arrogance ran in both directions :)
The place Bob takes this point is truly absurd - that Smalltakers didn't want to deal with the outside enterprise back then. I know where he gets that idea from, but the reality is, Smalltalk's problem was pretty much the exact opposite: all we had were enterprise projects. There was virtually no activity going on outside the enterprise, because the Smalltalk vendors set pricing and licenising so as to keep it that way. if you were an individual developer, it was easy to get a C, C++ (later Java) set of tools - but it was well nigh impossible to get ahold of Smalltalk. It wasn't until the late 90's that Squeak came out, and VisualWorks (and later ObjectStudio) didn't come out in non-commercial versions until a year or two later.
So to summarize - I'd have to say that Bob made a number of assumptions that I just don't think hold up. Smalltalk had problems in the past (and continues to have some of them now) for a few simple reasons:
- Through the late 90's, it was just too hard to get Smalltalk unless you were an enterprise developer paying big bucks
- Smalltalk asks you to change a number of things: use our tools (not your editor), use our SCM (not things like SVN, et. al.), use a syntax that isn't C-like
- Use a non-mainstream, niche language and stack
Notably, Bob didn't bring up any of those. I'm not wearing rose colored glasses; I realize that we do ask you to try new and different things when you pick up Smalltalk. Instead, Bob focused on things that don't really have a lot to do with what caused Smalltalk grief - meaning, his points really don't have much to do with where Ruby's going, either.
Update:I rather like Giles Bowkett's response - scroll past the Twitter conversation snapshot; it's worth reading:
It's great to be a dynamic speaker who gives a thrilling presentation. But it's better if you can do it while saying things which are true.
Technorati Tags: ruby, railsconf, bob martin
Even More Work on the Facebook interface
I had a fairly unpleasant day, so it was relaxing to sit down this evening and get back to work on my interface to the Facebook API. I've cleaned up the way the API functions respond; whenever you invoke a method like friends.get, you'll either get the result documented on the API pages, or an error object (as documented there as well). If there's an error at the network level, you'll still get an error object, but it'll be generated by the Smalltalk interface itself.
That gives me a lot more predictability in the code - it's much clearer what will come back when APIs are called. So here's an example call:
connection := Connection withSecretHolder: holder. connection login. connection authGetSession. groups := connection groupsGetByGroups: #() andUID: nil.
That responds with something like this:

That's a collection of Group objects, each of which has a bunch of data stuffed into it. It's getting to the point where I can do real things with this :)
Technorati Tags: social media, facebook
Ancient Technology Discovered by the C People
And lo, the developers at Apple discovered blocks. There was much rejoicing :)
Possible Outage
There's some electrical work going on at corporate this evening, and the routers that handle traffic for this site (and all of Cincom, for that matter) may be offline briefly. If and when that happens, you may not be able to reach the sites here - but it' should be a short outage, so no worries :)
Deeper Levels of Stupid
Just when you thought that the tiny little minds at the MPAA couldn't get smaller, evidence pops up demonstrating that there's no bottom to that hole. From Engadget:
So the Copyright Office is currently in the middle reviewing proposed exceptions to the DMCA, and one of the proposals on the table would allow teachers and students to rip DVDs and edit them for use in the classroom. Open and shut, right? Not if you're the MPAA and gearing up to litigate the legality of ripping -- it's trying to convince the rulemaking committee that videotaping a flatscreen is an acceptable alternative. Seriously. It's hard to say if we've ever seen an organization make a more tone-deaf, flailing argument than this.
I'm not sure the vocabulary even exists to properly describe that...
Technorati Tags: stupidity
Render it all, or use a Component
Julian Fitzell addresses a Stack Overfow question in depth on his blog, and on Stack Overflow as well. Why not head on over to the Stack Overflow page and vote the question and answer up - and learn what the answer looks like while you're there :)
Technorati Tags: smalltalk
Smalltalk in Cologne
If you missed the Smalltalk event in Minneapolis, you can see us in Europe next month. We'll be on the road in Cologne, Germany on June 2, with a similar event. To register (free) and get venue information sent to you, head on over here. We'll have a finalized agenda online shortly; in the meantime, a few more details may be found on our seminar page.
We hope to see you there, it should be a great event!
Technorati Tags: cologne, conference
Smalltalk Daily 5/8/09: More on the Facebook Connection
Today's Smalltalk Daily looks at the progress being made on the Facebook Connection. To watch, click on the viewer below:
If you have trouble viewing that directly, you can click here to download the video directly
You can also watch it on Vimeo:
Connecting to Facebook, Part 2 from James Robertson on Vimeo.
Or on YouTube:
Technorati Tags: smalltalk, facebook, social media
Enclosures:
[http://www.cincomsmalltalk.com/casts/stDaily/2009/smalltalk_daily-05-08-09-iPhone.m4v ( Size: 15327369 )]
Even More Facebook Fun
I have the interface to Batch.run set up the way the doc says I should - and that required some refactoring on my part - and now Facebook responds with "unknown method". Got to love that. So is the problem on my end, or theirs? I have to believe it's theirs, because other interfaces work fine, and "unknown method" is a pretty specific error message...
Update: Ok, this makes me feel better - I'm not the only person running into this problem...
Technorati Tags: social media, facebook
Layers of Editors...
The supposed reason that we need mainstream media is that bloggers, left to their own, don't do enough fact checking, and the "layers of editors" at mainstream outlets catch problems. Or... not so much. From the Irish Times:
A WIKIPEDIA hoax by a 22-year-old Dublin student resulted in a fake quote being published in newspaper obituaries around the world.
Apparently, Wikipedia editors caught the problem quickly, since it wasn't sourced - and the student had to push it back into the page a number of times to see whether it would be picked up. Sure enough, the quote landed in multiple papers and blogs, and it stands uncorrected in many of them. Even with Wikipedia editors cleaning it up, the mainstream media just missed it:
"I didn't expect it to go that far. I expected it to be in blogs and sites, but on mainstream quality papers? I was very surprised about," he said. However, the hoax remained undiscovered for weeks until Fitzgerald e-mailed offending newspapers to tell them that they had published an inaccurate quote.
My point isn't some kind of triumphalist thing for Wikipedia, or for bloggers. It's more that the major media is no more careful than the average blogger is. In general, people - journalists or not - rate sites they see information on, and repeat what they see based on their level of trust in the source. The idea that an item should have multiple sources seems to be followed more in theory than in reality...
Technorati Tags: news
Smalltalk Daily 5/7/9: Random Access BOSS Files
Today's Smalltalk Daily looks at random file access in the context of BOSS - i.e., opening a BOSS file, and indexing to a specific object. To watch, click on the viewer below:
If you have trouble viewing that directly, you can click here to download the video directly
You can also watch it on Vimeo:
Random Access BOSS Files from James Robertson on Vimeo.
Or on YouTube:
Enclosures:
[http://www.cincomsmalltalk.com/casts/stDaily/2009/smalltalk_daily-05-07-09-iPhone.m4v ( Size: 6854501 )]
Duke Nukem Never
Looks like the "Duke Nukem Forever" game has finally died - as opposed to the weird zombie existence its had:
Duke Nukem Forever publisher Take-Two has confirmed to Shacknews that it was not funding ongoing development of the 3D Realms project
THe funding has apparently run out, and the development has been stopped. Of course, in zombie projects, you never know. Again from Take Two:
"In addition, Take-Two continues to retain the publishing rights to Duke Nukem Forever," he added.
So the zombie project is resting...
Technorati Tags: duke nukem
Kindle Growing Big?
If this stat (from Dan Frommer by way of Henry Blodget) is just astonishing:
Kindle sales are now 35% of book sales when Kindle editions are available. Huge jump in Feb when Kindle 2 went on sale.
That's especially amazing when you consider just how few Kindles have been sold. If that number is accurate, it means that Kindle owners are using the devices pretty heavily.
Speaking of Bad Ideas...
I'm not sure I can see this being a good idea:
Pierced glasses are a pair of prescription eyeglasses that stay affixed to your ugly mug via a piercing through the nose.
Follow the link to see pics...
Smalltalk Daily 5/6/09: Saving Parcels
Today's Smalltalk Daily looks at saving parcels, and what the various dialog options mean. To watch, click on the viewer below:
If you have trouble viewing that directly, you can click here to download the video directly
You can also watch it on Vimeo:
Saving Parcels from James Robertson on Vimeo.
Or on YouTube:
Enclosures:
[http://www.cincomsmalltalk.com/casts/stDaily/2009/smalltalk_daily-05-06-09-iPhone.m4v ( Size: 7231515 )]
Facebook API Fun
I've been plugging away at my interface this morning, going through the admin APIs listed here. Funny thing about a bunch of those - they respond with 'unknown method'. That's not an error on my end - if it were, I'd get something like a parameter error. It looks like Facebook has some issues of its own :)
Technorati Tags: facebook, social media
The Bleeding Cliff
This is where the people who only hang out with other bleeding edgers end up - so deep in the well that they can't tell how empty it really is. Steve Gillmor thinks that the "River of News" (i.e., Twitter) has won, and RSS has lost:
Twitter, Facebook, FriendFeed - whatever they grew from, they morphed into a realtime CMS for the emerging media. Twitter, not RSS, became the early warning system for new content. Facebook, not RSS, became the social Rolodex for events, casual introductions to RSSâ lifeblood, the people behind the feeds. FriendFeed, not RSS, captured the commentsphere. RSS got locked out of its own party.
Reality looks a little different. Go ask a bunch of non-tech-heads whether they use RSS - you'll get lots of blank stares. Ask about Twitter - same blank stares. Even inside the tech community, only a minority of people use either RSS readers or Twitter.
Steve is like the infamous NYC voter from 1972 Manhattan, with no idea how Nixon won the election, because "no one I know voted for him". Out in the real world, there hasn't been a battle between RSS and Twitter, because most people don't know that either one of them even exists...
Technorati Tags: rss, twitter, social media
Facebook Interface Progress
I've been plugging away at my Facebook interface, mapping the API listed here. I've got the whole Stream API covered now, and I ran into an interesting thing there. Here's the code I use to retrieve status updates:
connection login. connection getSession. statuses := connection streamGet.
The Status object has a status_id that looks like this: 103102927728. However, let's say you want to use that ID to grab all the comments to that update, or remove it, or add a new comment. Well, in that case you don't have the full ID yet - you need to prepend the user id you're using. So if your user id is 666777888, then the id to pass is '666777888_103102927728'. It took me a bit to figure that out, but now the API is working as I expect, and I was able to add comments, remove them, add posts, and remove those.
You can grab the work in progress from the public repository - package FacebookConnect.
Technorati Tags: facebook, social media
Smalltalk Daily 5/5/09: Working with Facebook
Today's Smalltalk Daily looks at an API to Facebook Connect using Smalltalk. It's easy to create, with the HTTP and Security libraries in the product. The goal is to have a Facebook API that anyone can use. To watch, click on the viewer below:
If you have trouble viewing that directly, you can click here to download the video directly
You can also watch it on Vimeo:
Connecting to Facebook from James Robertson on Vimeo.
Or on YouTube:
Enclosures:
[http://www.cincomsmalltalk.com/casts/stDaily/2009/smalltalk_daily-05-05-09-iPhone.m4v ( Size: 22579798 )]
New Prerequisites in the next release
Travis has put together a screencast showing off how pre-reqs for packages work in the next release - as interesting as the update to that is the UI for it. Check it out.
Smalltalk and Basic in NYC
The NYC Smalltalk User's Group is hosting Carl GUndel, who will be talking about RunBasic:
Please join us for our next presentation on Thursday , May 21st , 2009. Carl Gundel will present Run Basic, a web based BASIC IDE, an re-implementation of his original VisualWorks written BASIC IDE implemented using VisualWork's Seaside port.
You can get more details, including directions, at their site. If you want to hear more about RunBasic now, check out the two part podcast we did with Carl: Part 1, and Part 2.
More Facebook Work
As it happens, the Facebook API is pretty easy to work with. I've made a lot of progress since the earlier post; I can now execute simple queries against the API and get useful data back. I also abstracted things out to a Connection class and a Session class, so the raw API isn't front and center anymore. Here's the usage model (bearing in mind that I'm building a desktop interface here):
holder := FacebookSecretHolder new apiKey: apiKey; secretKey: secret. FacebookAPI new executeMethod: method withKey: holder apiKey withSecret: holder secretKey.
That sets up the necessary key information; here's the way you interact:
connection := Connection withSecretHolder: holder. connection clearSession. connection login.
At that point you have to deal with a web page; that's Facebook's API. If you're not logged in, you do that on the page. Then it's back to the app:
connection getSession. ids := connection friendsGet. connection getFriendsNamesFor: ids. connection statusGet. connection clearSession.
The friend query returns first and last names (it's getting minimal info back at the moment; the #getStatus returns the last 100 updates. Finally, #clearSession logs out. That's it - I'll do more tomorrow.
Technorati Tags: social media, facebook
The iPhone may be Cool, but...
According to Engadget, RIM still has the marketshare:
The handset might've been surpassed in functionality and looks by its Curve 8900 successor, but nothing's got an edge on the BlackBerry Curve 83XX series in smartphone sales. According to NPD, the handset overtook the erstwhile champ iPhone 3G in the category for the first quarter of 2009, while BlackBerry's own Storm and Pearl handsets took the third and fourth slots, with the T-Mobile G1 rounding out the ranks in fifth place.
It's easy to get caught up in the hype, but the folks at RIM seem to be quietly winning the game...
Technorati Tags: blackberry, iPhone
Building a Facebook Connect API
Last night I got some inspiration, and started taking a look at the Facebook Connect API. It didn't look too hard to deal with, and other than a couple of brain cramps on my part (quickly solved with help from the Smalltalk IRC channel), I got a basic interface created. Right now I can make API calls manually; I still have to actually create something useful to work with :)
Here's what I have so far, as the most basic way to make an API call:
url := 'http://api.facebook.com/restserver.php'. parms := OrderedCollection new. parms add: 'method' -> method. parms add: 'api_key' -> apiKey. parms add: 'v' -> '1.0'. ^FacebookAPI new executeAPIWithParameters: parms withKey: apiKey withSecret: secret
To work with it, you'll need to go get an API key (along with a secret key) from Facebook. From There, it's all pretty simple. I've published it into the public repository - don't expect much yet, I put the barebones interface there as a starting point.
Technorati Tags: social media, facebook
Better, Faster, Cheaper - Video
Here's Arden Thomas' Minneapolis presentation "Better, Faster Cheaper" in video. I released the audio over the weekend as this week's podcast. You can grab Arden's slides here; to watch, click on the viewer below:
If you have trouble viewing that directly, you can click here to download the video directly
Enclosures:
[http://www.cincomsmalltalk.com/video/2009/minneapolis/arden-high-level-iPhone.m4v ( Size: 270427160 )]
Smalltalk Daily 5/4/09: Getting Classes into the Right Package
Today's Smalltalk Daily looks at a small annoyance in VisualWorks - when you save a new UI using the GUI builder, it's easy to have it land in the "none" package. We look at how to deal with that problem today. To watch, click on the viewer below:
If you have trouble viewing that directly, you can click here to download the video directly
You can also watch it on Vimeo:
How to get classes to land in the right package from James Robertson on Vimeo.
Or on YouTube:
Enclosures:
[http://www.cincomsmalltalk.com/casts/stDaily/2009/smalltalk_daily-05-04-09-iPhone.m4v ( Size: 8569633 )]
Why Text Messages are 160 Characters
It's easy to think that there's some deep reason behind things like this; quite often, it's based on something like simpler:
Alone in a room in his home in Bonn, Germany, Friedhelm Hillebrand sat at his typewriter, tapping out random sentences and questions on a sheet of paper. As he went along, Hillebrand counted the number of letters, numbers, punctuation marks and spaces on the page. Each blurb ran on for a line or two and nearly always clocked in under 160 characters.
That was back in 1985. It's kind of interesting to note that texts sent now are based on the size he came up with using a typewriter to experiment with...
American Football Going Global?
This made my jaw drop:
London has launched an audacious bid to stage the Super Bowl within the next eight years, a move that would see the United States' biggest sporting event played overseas for the first time, the Sunday Telegraph has reported.
The NFL is denying this (follow the link for the denials), but they have played exhibition games there. It makes sense to me that the NFL would try to expand their horizons.
That Scream You Hear is the Cable Companies
Looks like Hulu is crossing over to the mainstream with the signing of Disney/ABC - the reporting (Slashdot story here) seems to be of the "trouble for YouTube" variety, but I think the cable companies have a bigger problem. They don't like the idea of you watching TV (Hulu, iTunes) and movies (NetFlix, iTunes) online - they want you to pop for the "On Demand" channel. I think a lot of the rationale behind the caps (both the informal ones and the formal ones they have tried to float) trace back to this. Ultimately, the cable company is becoming a pipe, offering a commodity service. That's not a high markup service though, and rolling out improvements that you can charge more for (better bandwidth) cost real money. It's a real dilemma for them.
Industry Misinterpretations 134: Better, Faster, Cheaper
This week's podcast is from Arden Thomas' "Better, Faster, Cheaper" talk at our recent (April 29) one day event in Minneapolis. You can get Arden's slides here; he spoke about how Smalltalk can help you attain your goals with less wasted time, effort, and money. To listen now, click here.
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!
Technorati Tags: smalltalk, efficiency, minneapolis
Enclosures:
[http://www.cincomsmalltalk.com/audio/2009/industry_misinterpretations134.mp3 ( Size: 14455611 )]
Annals of Stupid Bugs
I figured it was time to get rid of the "Come to the Seminar" teaser on the website; after all, it happened last Wednesday. As it happens, the text for that part of the main page is rotated in randomly - sometimes there's a VW graphic and a link to VW info, and other times there's an ObjectStudio graphic and a link to ObjectStudio info. So, I updated the pull file for that, kicked the website and... nothing.
Well, after pondering it for awhile, it turned out that I have been inadvertently caching the possible text rotations. There's supposed to be a random pick between two text snippets, but I was actually never clearing the collection to pick from - I was incrementally growing it. Once I updated the code to simply re-initialize the collection, it all worked. Dumb :)
You know you're up to late when...
When you notice that the ads for "male enhancement" and "burn fat fast" start coming on in rapid succession, it's usually a hint that it's way, way past your bedtime. Apparently, it's more than that: some of those diet pills are downright dangerous.
Hat tip Rob Fahrni
Technorati Tags: news
Twit-Squatting?
There's an actual marketplace open for selling Twitter names - check out http://tweexchange.com. Add one more thing to the list of protections a company needs to worry about beyond domain squatting.
There's also a weird side to this: people who've built up large lists of followers offering to sell their accounts. Right on the top of the page is a banner claiming that "CNN just bought CNNBRK". I don't know how much of a market there is in this, but a glance at the exchange page shows a few hopeful squatters...
Technorati Tags: social media, twitter
Facebook and Twitter Explained
Dare Obasanjo explains the key difference between Facebook and Twitter :)
Secure Environments Wander Away from the Mainstream
I don't know why, but I find this topic fascinating: how far removed from the normal web experience some environments are - specifically, secure environments. Take this Slashdot post, which says in part:
I work routinely in environments where a camera cannot physically be present (e.g., federal court), which really limits what I can carry with me. For instance, I'm a Mac guy, but there's no way to order a MacBook without a built-in webcam
A bunch of us ran into this problem during a customer meeting in Germany last year: due to (very real) concerns about industrial espionage, there was a "no camera" policy. There we all were, with out MacBooks - and no way to give a demo or presentation. We got someone to vouch for us, but it was an interesting problem.
Going back to the article, people who work in these environments do have a problem. Getting a modern phone or laptop without a camera is a hard. In some environments, people work mostly on closed networks with no internet access - can you imagine trying to attract a fresh out of college kid to deal with that? No net, no iPod, no portable devices that can record audio, video, or data, period. In other words, your work day is like a day in 1990 :)
It's an interesting divide to me, and I know it's not one I'd be able to deal with easily :)

