It looks like Apple is really closing off development choices for the next gen OS for the iPhone and iPad - John Gruber quotes the new developer agreement:
Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited
That certainly puts John McIntosh in an awkward position.
I guess they really, really want to completely control the user experience...
It would be nice if the people running telecoms had the slightest idea what people use the internet for. Here's Verizon's clueless leader:
But when we now go after the very, very high users, the ones who camp on the network all day long every day doing things that—who knows what they're doing - But those are the people we will throttle and we will find them and we will charge them something else
Awesome. Maybe he wants FIOS to just come with Pine and Lynx and be done with it?
I've been remiss in getting BottomFeeder updated (as I wrote about earlier today) - so this morning and afternoon I've been taking a real run at it. In the 7.6 based build, there were interesting rendering issues on the OS X platform - text would just disappear from the browser window. That had something to do with the VM, I think, since it's gone in the 7.7 build (and there certainly haven't been any changes to the WithStyle component).
Additionally, things just feel more responsive. Now, starting in the last release, there was some kind of odd save bug - Bf saves the position of the window on save, and that wasn't happening on the save before exiting - instead, the file holding that information was getting truncated. I've been looking at that issue today, and discovered exactly the sort of things you expect to find in old code - stuff that makes you ask yourself "Did I really write this crap?"
Here's what I mean. In the UI, there's a method called #saveAll, that invokes the save behavior that occurs after every update (assuming that setting is toggled on). However, the save on exit was using a different code path. Why, I have no idea, but I vaguely recall having various issues with proper termination a few years ago. be that as it may, I just changed the code to all use the same exit path, and now, it seems to be working properly.
Since I've been playing a lot of "Dragon Age: Origins
" lately, I'm tempted to say "Thank the Maker" :) Either way, I think I'm closing in on a stable build.
I have gone back to working on BottomFeeder a bit - I haven't pushed a 7.7 based release yet, and I figured I really ought to do that. So - I had to look at my build script, as there were a couple of interesting problems cropping up:
When my build started up, it still thought it was filing in the script
When my build started up, it was complaining about some missing source files
Neither is a good thing in the context of a runtime application :) So, I started pondering those, and redid the last part of my script, like this:
Parcel searchPathModel value: (List with: (PortableFilename named: '.')).
SourceFileManager default discardSources.
"Now save the image such that this file doesn't get looked for at startup"
[ObjectMemory permSaveAs: 'bottomFeeder' thenQuit: false] fork.
[(Delay forSeconds: 45) wait.
RuntimeSystem isRuntime ifFalse: [ObjectMemory quit]] fork
The first two lines clear the parcel search path (this is in case a VW user installs BottomFeeder - I don't need the app looking up parcels there). The second line simply discards all source pointer lookups, so that the system doesn't fuss about that at startup.
The next bit is trickier, but it's just a simpler version of what RuntimePackager does - Fork a process to save the image, and another to quit the current image. That way, the image that starts up doesn't immediately quit, and also doesn't try to save itself, or attempt to go find the filein. I've still got a lingering timing issue with saving files on quit, but that's unrelated to build stuff - once I get that sorted, I'll push a new release out.
The good news seems to be that the pitching is holding up - as the Yankees took 2 of 3 from the Red Sox. If the pen does this well all season, the Yankees will definitely make the playoffs again.
Ian Prince notes that making a scalable Seaside app on Amazon's cloud just got a whole lot easier:
It just got a lot easier to implement load balanced and fault tolerant Seaside servers on Amazon EC2 as sticky sessions have just been announced as a feature of Elastic Load Balancing.
Meanwhile, lots of social media types are talking about brands and branding as if these were new and hip things. They're not. They're heavy and old. We need to move on, folks. Think of something human instead.
I'm not sure what else Doc has in mind. A brand is nothing more than a way to remember a product or service; it's shorthand. People like shorthand; it's easier to say "I like Bud" than it is to say "I like that beer you can get at the market on 23rd".
You need more than just branding, and I think that's where Doc is going - but you aren't going to see it disappear.
Phillip Greenspun
notes that a "vanilla pc (netbook) can be had for the same price as the lowest end iPad, and has a lot more in the capability department:
During a discussion today about potential iPad sales, a friend and I got distracted by reflecting on the tremendous value delivered by a vanilla PC. Over on the Dell Web site right now, a basic 15″ laptop costs $499 and includes 320 GB of hard drive and 3 GB of RAM
However, it also has a lot more in the "personal administration" department. Plenty of my daughter's friends have PCs, bought instead of Macs for price reasons. These are all non tech folks; they are also constantly beset by problems - printers that don't work, virus infections, and then lost data due to their (mostly inept) attempts at cleanup.
This is where the phrase "time is money" comes to mind, and it's where I part company with people like Cory Doctorow who decry the iPad for not being a hackable device. Here's the thing: most people neither want or need a hackable device. What they want is a device that disappears into the background and lets them get work done. Most Apple products achieve that far, far better than their market competition
Does that mean that the iPad will win? No, because - like the PC space - price does matter. I stopped worrying about price at the point where I realized that my time had more value, but there are people for whom the differential is far more significant. I get that; I'm just (happily) not in that camp anymore
I've applied the workaround (fortunately, I use an include file for the embedded library - otherwise, it would have been hundreds of posts to script an update to, and then undo once Apple came to their senses.
In the meantime, here's a question: doesn't anyone at Apple test? It wouldn't be hard; just bring up an embedded video and watch the broken behavior, across all browsers. Someone at Apple needs a severe slapping around.
Five minutes later, my Internet stopped working. I called FiOS tech support. “You placed an order for new service, so of course we had to shut off your old service,” they helpfully explained. When would the Internet that I was already paying for be restored? “You’re scheduled for an install on April 9th.” So the upgrade process has a designed-in two-day service outage? “No. Sometimes people are cut off for a week or more.”
Ultimately, this is how all large entities - private or public - end up. The process is more important than the product, and the employees are highly incented to follow the process. Heck, sometimes the only real chance of a penalty is in not following the process.
I love this level of commentary on the court ruling against the FCC having the authority to create "net neutrality" laws - from PC World:
Some net neutrality advocates said the ruling raises broad questions about the FCC's authority to take any actions not spelled out in law.
Call me crazy, but I thought that's how regulatory agencies were supposed to operate - within the confines of the law. If not, why should we even bother having elections?
Microsoft has brought confusion to the "we allow USB devices on the XBOX" game - you can only plugin devices that range between 1 GB and 16GB. So.... none of the older things you have piled up will work, and none of the cheap hard drives you can buy, either.
The reactions to the iPad are all over the map, and fascinating. Dave Winer has a thoughtful piece, although I think he lost a bit of objectivity in looking so deeply at his personal workflow. Mark Bernstein thinks that it may well work perfectly as a book replacement, or as a digital picture frame, or - we'll figure it out. Tim Bray seem ambivalent. Lots of people are up in arms over the lack of a USB port or two.
Meanwhile, my wife has been pretty happy using it to read the same book upstairs (Kindle on her Macbook) and downstairs (Kindle on the iPad). It's early days yet; we'll see how things look in a few weeks. I haven't had any real time with it, so I don't really have any comments beyond "it looks pretty" :)
Steve Wessels makes a good point about the malleability of Smalltalk:
What I would like to say is that I love how Squeak is open under the covers, and so easy to explore and extend. All the Smalltalk tools do that. But I m also aware of how these little annoying behaviors about Squeak have more that just a few times caused me to become diverted by yet again another tools enhancement run. The temptation to personalize it, which is exactly what I think Alan Key and Dan Ingalls had in mind, can be great enough to the point of distraction. You just have to remember that.
Yeah, it's incredibly easy to get lost in a "bug hunt" at times. It's cool that you can do things like what Steve talks about in his post (modifying the browser), but then again - if it were more nailed down, would you spend less time on bug hunts and more time on your actual project? It's worth considering, I think...
Yes folks -- the world is turning upside down. Apple has announced an iPhone OS 4 event on April 8th at 10AM PT for a "sneak peek of the next generation of iPhone OS software."
I think that once Apple ships a new rev of the iPhone on the next gen of the OS, I'll be upgrading.
I just finished two books on the civil war - one on Sheridan (more properly, on him and his top commanders)
, and the other on the war in the Chesapeake Bay region
. The Sheridan book covered the last year of the war - more or less, the Shenandoah campaign and the wrapup of the siege of Petersburg. Sheridan was an interesting character, and he ended up having a lasting impact on the army - his innnovations with cavalry warfare make me wonder - he would have been an interesting guy to pair with Patton during WWII.
Another thing that comes clearly through this book, at least for me - if you're going to fight a war, fight the war. No half measures, no "proportional response" nonsense - take the war to the enemy and make them regret the decision to go to war in the first place. I often wonder how differently many modern American wars might have gone had Sheridan, Sherman, and Grant been around to run them.
Anyway - if you're interested in this period of history, it's an interesting book, and short. A good companion to a biography of Sheridan.
The second book, about the war on the riverine Chesapeake, was fascinating. It really brought home to me how messy the border region war was between 1861-1865. All along the Chesapeake, the skirmishing, smuggling, and guerilla warfare went on non-stop until the very end of the war, and it was often a nasty business. Not that war is ever not nasty, but it was smaller scale and more personal - given the divided loyalties of the region, there was a lot of the stereotypical "brother vs. brother" thing going on.
If you want to read something that gives you a view of the war away from the common "Lee vs. a parade of Union commanders" thing, this is a good one to look at.
Nick Carr makes a good point about digital records and fragility:
The problem is magnified by the speed with which old digital media and recording techniques, including devices and software, are replaced by new ones. It's further magnified by the fact that even modest damage to a digital recording can render that recording useless (as anyone who has scratched a CD or DVD knows). In contrast, damage to an analog recording - a scratch in a vinyl record, a torn page in a book - may be troublesome and annoying, but it rarely renders the recording useless. You can still listen to a scratched record, and you can still read a book with a missing page. Analog recordings are generally more robust than digital ones. As Bollacker explains, history reveals a clear and continuing trend: "new media types tend to have shorter lifespans than older ones, and digital types have shorter lifespans than analog ones." The lifespan of a stone tablet was measured in centuries or millennia; the lifespan of a magnetic tape or a hard drive is measured in years or, if you're very lucky, decades.
Carr adds a worry about cloud storage overtaking local storage, and a resulting "storage monoculture" resulting what amounts to a single point of failure. I'm not sure we'll get there, but it is possible. For things like music and books, we still like to have local copies, because we'll listen (or read) over and over. Video is something else again - beyond a few favorites, most people don't want to re-watch something they've seen already. Storage is cheap (and getting cheaper) though, so I'm not sure that the cloud monculture issue will ever truly arise.
Microsoft is ending its support for Intel's Itanium processor with the current version of its Windows Server OS; according to a Microsoft blog posting Friday.
The death throes of the iTanium have to be the slowest moton thing in the tech space ever...
This week, Michael and I got VisualWorks customers from older versions of VW up to the latest. It ended up being a wide ranging conversation; this is part 1 of 2 - part 2 will be out next week.
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.
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!
I've been asked about my impressions of the device, but at this point, I don't really have any - it's my wife's iPad, and she's been using it. IN watching her use it, I've noticed that she's had some minor issues with the UI - she hasn't looked at an iPhone/Touch, so it's all based on prior expectations from OS X and Windows. The most interesting one I've seen? The fact that double click isn't used (other than double tap for zoom). As we settle in with the device, I'll have more to say, but so far - we like it.
Okay so the iPad has a problem that lots of software has, when you finish the basic setup -- now what? There are no movies, newspapers or books on the device, and no clue as to how to get them on there. Those are the first things I want to do, see how it plays stuff. Maybe I'm wrong about that. I should disconnect and see what I get.
Dave Winer must be the only person on the planet who doesn't know that you use iTunes to get stuff onto the iPad - either directly from the iTunes app on the device, or via synching from your computer.
Doc Searls thinks that more open mobile platforms, like Android or Symbian, will end up beating Apple in the new space being created by the iPad:
The iPad will launch a category within which it will be far from the only player. Apple's feudal market-control methods (all developers and customers are trapped within its walled garden) will encourage competitors that lack the same limitations. We should expect other hardware companies to launch pads running on open source operating systems, especially Android and Symbian. (Disclosure: I consult Symbian.) These can support much larger markets than Apple's closed and private platforms alone will allow.
I'm not so sure. Part of why the iPhone and Touch are doing so well is that they provide a consistent, simple user interface. No file system to mess with, not multiple stores - one stop shopping and your apps handle all of their own details for you. Google doesn't really look at the world that way; I seriously doubt that any device they ever sponsor will be as easy to use as what Apple is coming up with.
Arguably, Android's ecosystem is more open that Apple's, but thus far, that hasn't been enough - it would have to be at least as good an end to end system. Until another vendor in the mobile space beats the iTunes/mobile device combo, Apple will lead. That's not destiny; there are plenty of ways other vendors could do better (wifi synching, anyone?). It's just that they haven't done it yet - and the open source community really doesn't have much of a track record in the "easy to use UI" space.
Update: I disagree with Cory Doctorow for all the same reasons. Here's the thing - cars used to be accessible to owners as well, and now they pretty much require an expert to do anything under the hood. And people still buy cars. Consumer goods go through a lifecycle, and they eventually exit the "anyone can get under the hood" part of it.
We'll be talking to Dave Buck about porting VisualWorks apps from older revs (as far back as the 2.5 era) up to the latest (7.7) at 1 PM eastern US time - about 10 minutes from when I'm posting this. Listen live at justin.tv
Today's screencast is a basic introduction to file handling in Smalltalk, looking at class Filename, and at basic Stream protocol.
Here's the code I used in the short examples in the screencast - The #nextLine message is part of the NetClients package - when I did the recording, I didn't notice that. To get that code, load the NetClients parcel:
"Filename is your entry point into file handling"
(Filename named: '.') directoryContents.
"Read line by line"
list := List new.
stream := 'lines.txt' asFilename readStream.
[stream atEnd]
whileFalse: [list add: stream nextLine].
stream close.
"more manually, to show stream protocol"
list := List new.
stream := 'lines.txt' asFilename readStream.
[[stream atEnd]
whileFalse: [| next|
next := stream upTo: Character cr.
list add: next]]
ensure: [stream close].
Click to Play
You can download the video directly here. If you like this kind of video, why not subscribe to "Smalltalk Daily"?
We'll be doing the podcast with David Buck tomorrow - he's recently been working on upgrading some VisualWorks users from older versions (including version 2.5.x) to the latest release. Listen live on justin.tv
For many years at OSCON we called out "web applications" as a distinct topic. This year it became a useless demarcation, as just about everything is a web application. Cloud computing is in a place similar to web applications a few years ago.
The Wall Street Journal reports (with its usual paywall shenanigans) that both CBS and ABC will be streaming TV shows to the iPad. CBS will opt for video that you can watch through Safari on the iPad--as we reported last week, the network has already been running tests of HTML5-served video. As of Saturday, when the iPad launches, CBS plans to have full episodes of popular reality show Survivor available, as well as clips from other shows. At some point in the future, however, the network is shooting for full parity between what's offered on its standard Website and on the iPad.
I suspect that the iPad we bought will get a lot of use for streaming TV...
Dave Buck reports that Dorin Sandu will be talking about Smalltalk and Cocoa in Ottawa this month:
We will provide an overview of model-view-controller as implemented by Cocoa, introduce key-value coding, key-value observing, key-value binding, and review some of the provided controllers and views. We will illustrate all these concepts through several example applications implemented in Smalltalk.
Follow the link for location details; it's happening at 6 PM April 14