Hacker News new | past | comments | ask | show | jobs | submit login
Teaching Apple Cyberdog 1.0 new tricks (featuring OpenDoc) (oldvcr.blogspot.com)
131 points by classichasclass on Oct 15, 2023 | hide | past | favorite | 60 comments



I loved Cyberdog - I had one window that contained something like bookmarks for 'everything internet' (usenet newsgroups, email, web sites, ftp sites). It was in list mode, and my recollection is that you could just click the disclosure triangles to see, for example, what was in the email inbox, or whether there were new posts in rec.games.roguelike.

I also owned WAV (an OpenDoc word processor). I was way too far ahead of the curve.


That sounds right to me. If one spent a lot of time using the internet apps it was an all in one application with a single memory footprint. There was even gopher.


One thing the article doesn't talk about is RAM prices in 1997. The computer used by the author has 56 MB. But before the great RAM price crash, most users were lucky to have 16 MB, and too many still had 8 MB. Most of that was being used by Netscape. The gorgeous Apple Dylan IDE also required 24MB to run well, and most developer machines couldn't handle it.

I remember those numbers, because I worked for a company that was trying to ship a browser plugin that would have required 24MB itself. Our project plan was totally infeasible.

I think a lot of ambitious projects died around 1997, because RAM prices stubbornly refused to drop.

The "select versus activate" distinction mentioned in the article also made for an absolutely miserable user experience. It's the only thing I remember about OpenDoc, trying to get components to activate.

Developers spent those years learning HTML and JavaScript and how to run a Linux server. The internet was obviously the main show, and weird semi-proprietary document formats were the last thing anyone cared about.


>The gorgeous Apple Dylan IDE also required 24MB to run well

I had no idea there was even such a thing, and can't even find any screenshots online (I'm sure there will be somewhere).

Nice bit if history here though: https://en.wikipedia.org/wiki/History_of_the_Dylan_programmi...


Many screenshots with explanations: https://opendylan.org/history/apple-dylan/screenshots/index.... and linked pages.

Release CD-ROM with a few more screenshots: https://www.macintoshrepository.org/1358-apple-dylan-technol....


At least some of the Dylan content of the second link (and maybe other stuff, I didn't look too closely) also appears to be available more directly here:

* https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve...

A description of at least some of the included content is available here:

* https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve...

(Discovered these Dylan-related items while I was looking for the CyberDog/OpenDoc items that I listed here: https://news.ycombinator.com/item?id=37905359)


honorable mention should also go to SK8, just to keep memory of it alive:

https://en.wikipedia.org/wiki/SK8_(programming_language)

the interface was unusual (definitely violating Apple's own HIG) and "futuristic":

https://www.macintoshrepository.org/2625-apple-sk8

as it was hard to obtain free IDEs on the Mac back then, this was my first introduction to programming in the mid 90s.


The famous rant that Jobs responds to was regarding OpenDoc vs Java.

https://m.youtube.com/watch?v=oeqPrUmVz-o

It was a different world, one that the CEO of Apple would respond to any question whatsoever, an open mic in a small theater.


Minor correction —- Jobs was a living legend at that point, but wasn’t CEO again, yet.

Not sure that it was a different world in the way you mean. Back then, as today, leaders of leading tech giants wouldn’t be in that setting taking questions from developers. It was a different Apple; one whose prospect of survival was in question, which needed developers not to abandon the platform, and needed employees not to abandon the company.


You’re right, not even iCEO yet.

But it was certainly a different Apple. Can you imagine Cook, Federighi or Ternus on a theater taking any random question? I’d love that, but it’s not going to happen.


> Despite Apple's efforts to seed the technology, OpenDoc didn't get a lot of traction with developers and arguably even less with users, who didn't understand what it was good for.

I remember feeling exactly like that back then. I was enthusiastic about the "new thing" but whenever I tried installing and using it, I could never achieve anything.

I'm a little bit relieved now, because even after reading this well-written article, I still don't understand what it was supposed to do, what problem it was supposed to solve, and how it was supposed to be used.

I guess what it really needed was an initial bundle/collection of actually useful examples showing how to tap its potential, because I remember the technology sounding interesting at least.


> I'm a little bit relieved now, because even after reading this well-written article, I still don't understand what it was supposed to do, what problem it was supposed to solve, and how it was supposed to be used.

Microsoft has OLE, where you can paste an excel sheet in a word document (or vice versa), and third parties can similarly provide components that can be pasted inside word or excel documents.

OpenDoc tried to be that cross-platform without having applications such as word or excel having the special status of being able to host such components. Instead, you got a blank document. If you wanted to write a text document, you dragged in a word processor component.

The various ‘Works’ suites (Microsoft Works, ClarisWorks) worked like that, but weren’t extensible.

OpenDoc wanted to do it better, making it easier for third parties to get a piece of the pie (for example, adding new chart types should be trivial to do for users: buy/download the part (OpenDoc’s name for a component), and drag it into your Excel or ClarisWorks spreadsheet)

So, for end users, it would make it easier to combine everything they needed in a single document. A bit like Eclipse, but that only does rectangular tiles, and doesn’t, for example, allow text to flow around an illustration or web components, if there were a GUI that allowed you to build web pages by dragging them around on a blank page (who’s busy writing that?)

OpenDoc also tried to improve on OLE by not requiring users to click to activate a part so that you could interact with it.

Now, why didn’t it work out? It’s more complex than an office suite that’s not extensible, requires cooperation between competitors, hardware was too slow even for an implementation in C++ (which, apart from efficiency of compiled code, is the wrong language for implementing such a thing, but we didn’t have better), and the benefits for end users weren’t that large ¿yet?


There never was even a good compelling demo for OpenDoc was there?

Hard to blame the users for not getting it.


Biggest issue was that the tech never really worked cross platform and interoperability was supposed to be the whole point of OpenDoc


Also, OpenDoc required several megabytes! of RAM on top of the OS ram.


Cyberdog was the demo.


I worked with Apple to get Cyberdog opensourced. One of the hangups was the freaking GIF patent. Damn Compuserve. Never ended up happening.


(author) Excellent! A valiant effort. What were the other hangups? Was there any third-party code present?


Yes, and that was another issue, but they didn’t seem too worried about that at the time, though I can’t rule that out as a blocker.


I see Kantara in your bio. Anything interesting there at the time, other than things like PartBank?


I’m surprised I have Kantara listed anywhere, lol.

I had a few utilities. A window manager, for example. And PartBank was the registry and online store for software. Important, because if you open the document and you are missing software, it was impossible to view. But since I had a registry of viewers and how to install them, it solved a few problems. I spoke at WWDC and MacWorld about these things. This was the App Store I wanted bundled into the OS.

I had another utility called Kantara Internet Search Service (KISS). My young baby self had gotten a deal to sell 1 million copies of it to Apple to include on the install for education. Steve Jobs killed that deal too. Sigh.


My favorite Cyberdog hack is embedding the MSIE engine: https://web.archive.org/web/19990302062719/http://www.kantar...


> Designed to leverage the feature set and performance of Internet Explorer

It's hard to believe it, but there was a time when this statement wasn't a joke.


Wow, corba wrapper around an OLE/COM embedded object. Actually pretty cool.


It's like a digital turducken!


Like most webservices these days, your app runs in a Linux instance in a Docker container in a VM running another OS running on a physical server running another OS.


That was a nice walk down memory lane. I worked for CI Labs for about a year and published a book on OpenDoc that was released just as the project was canceled. C'est la vie!


(author) What did you do at CI Labs? How big was that shop?


I worked on things like the standardization of the naming registry, and a bunch of behind-the-scenes coordination with Apple. The team was pretty small; I had worked on CORBA when I was at Sun, so I also did some work with SOM.


It just struck me that much of my fondness for Cyberdog was in its icon.

It’s a bit surprising that we don’t use pets in icons and app names as much given how much people love them.

The other one I remember was Fetch, an FTP application with a dog. Transmit tiny truck icon was also cute. Icons were more creative back then.


More creative, and more whimsical. Modern icons are in comparison quite sterile.


Modern icons are mostly useless. I remember old apple design guidelines recommending to design icons with recognizable shapes. iPhone icons are all square making impossible to identify the right one at a first glance. Same for the MacOS dock.


I get emotional every time ChatGPT sends me the hugs emoji after I thank it for some gnarly SQL query.


I know now that it’s a dog (the fetch icon), but I thought it was a koala for more than 20 years!


Oh my. I was Kantara's Part Merchant / PartBank / etc

I even pitched Gil Amelio and later Steve Jobs on the idea of the online store in the OS. Gil was kinder than Steve in his no, lol.


Post the story to folklore.org?


“he's really funny about ideas. If you tell him a new idea, he'll usually tell you that he thinks it's stupid. But then, if he actually likes it, exactly one week later, he'll come back to you and propose your idea to you, as if he thought of it."[1]

Yeah, he said the built-in software store was stupid alright, but it was a decade later that the App Store came out.

[1]https://www.folklore.org/StoryView.py?project=Macintosh&stor...


Oh wow, what a treat that site is!


This takes me back to 1996. It was a dark time for fans of the Mac, but there was some really cool stuff they were doing. HyperCard wasn’t quite dead yet either.

On a complete tangent I lost a fair bit of that summer to the online multiplayer tank game Bolo.


> dark time for fans of the Mac

can't agree. yeah you were expecting them to go under each day, and OS-development slowed to a crawl (7.5.x releases seemingly dragged on forever).

but things were moving in the right direction, technology was exiting and the future even more so.

compare that to now, where things have been moving in the wrong direction for decades now and each day there is more lockdown, surveillance and user/consumer-hostile nonsense.

the past's future didn't turn out freeing and exciting, but boring, depressing, restricting and homogeneous.


HyperDoc could have been such a force multiplier for Apple and the web.


i remember when these compound documents with embedded objects were all the rage in the 90s. in microsoft land it was all ole and activex (which seems like it ultimately only saw real use as a browser plugin standard).

seems the most interesting one was the japanese system that recently graced these pages, can't remember the name now...


It’s hard not to think this 90s “document turducken” trend was driven by engineers, rather than coming out of any real user need. We still don’t work this way, though it would be easier than ever now with web technology. It turns out, links work just fine and are dramatically simpler on both a conceptual and technical level.


I agree. Though the “spreadsheet table in a document” use case was always the first demo, and is still a common use case. It was probably also the only real use case with any staying power.


Having the full power of an image editor on any picture anywhere was the second.

Sometimes I think there was something to that architecture. Sometimes it just seems overly complex.


"Chart based on a spreadsheet that you can update later" is the real place it shines. If you try to have two documents, the spreadsheet always gets lost.


I was an idealist at the time and was very much on board with SOM (system object model by IBM COM was Microsoft model). The people who truly knew what they were doing always had turnsout position.

Cyberdog was the only application I used as my daily drivers for all things internet. None of the other exampls ended up being useful in anyway.

My guess is that SOM and COM are the type of tech only a behemoth could love.


turnsout position?

Cyberdog was the only good use of OpenDoc I ever saw, and it was never interesting as a part of OpenDoc. It was just really good set of internet apps that happened to be implemented as OpenDoc parts. If the developers had implemented them as regular Mac apps, Apple would have been ahead of the game.


Turnsout stated in the earlier post that it wasn't practical. I was responding that I remember disregarding the same sentiment from people trying to teach me.

I thought cyberdog was great and definitely used until as my mine internet app for mail and browsing until at IE 5 on Aqua and Mail.app.


links?! lol have you ever actually seen the modern web front end tech planet up close?

i mean, i agree i'm with ya. links are all you really need, but you know...


That was my point—you can do all kinds of things on the web now, but people don’t really create these multi source meta-documents. Unless you count a TikTok embed or something.


looks like there's some limited cross application embedding support in google docs, so i'd argue you're right except for one glaring exception....

jupyter notebooks and donald knuth's literate programming dream.

duh duh dunnnnn. crash

buut. to your point, maybe there's a fable in there. existing large systems should be coupled in interface and presentation, but not necessarily in implementation!


Well a lot of custom controls worked using this technology, including Internet Explorer and the Windows Shell and Explorer themselves.

Ultimately though it was the web that implemented the end goal of interactive, linked documents and components though.


Only sort of. <iframe> can embed arbitrary web content, but this power is only available if you're writing bare HTML. Apps like Google Docs which ordinary users can actually use don't actually give you this power. Their internal document models aren't HTML and they don't even render to DOM anymore, they render to canvas.

Furthermore there's a growing movement to slowly deprecate certain embedding use cases. Embedded sites could always pop themselves out of the current page, but there's now also HTTP headers that let you explicitly forbid embedding on either end. This is actually considered a security best practice[0] as there are crafty XSRF attacks that could be enabled by, say, layering an invisible iframe in front of your cursor that just so happens to be open and scrolled to the "send all my money to someone" button on your bank account. Timing attacks apparently also rely on embedding, so anyone who wants to use, say, shared-memory multithreading for WASM[1] has to also opt out of both being embedded and being allowed to embed other sites.

[0] According to people begging for bug bounty money

[1] i.e. Ruffle


Agreed. Also, IFrames don't really compose well, or give easy communication between parent and child IFrames in the same way that components can set attributes and call methods on each other


Present tense, a lot of custom controls work using this technology. COM has had the spotlight of Windows APIs since Windows Vista took the .NET ideas for Longhorn and re-did them in COM/C++.


My guess is that the name is from the Preston character in the 1995 Wallace and Gromit short A Close Shave, which would have premiered a couple of months before the first beta.


No need to guess, the article states that it was named after a New Yorker cartoon: https://en.wikipedia.org/wiki/On_the_Internet%2C_nobody_know...


The Cyberdog email client featured the first appearance of the Advanced Technology Group's V-Twin indexed search engine. We take instantaneous search for granted today, but back then it was a game changer.

Technical mailing lists were the most common way new information about technologies were shared, and instantaneous search was very handy.


Since the author (classichasclass) seems to be reading the comments, I'll mention this here...

The article mentions "The OpenFileService part provided a menu option which would dynamically generate a Cyberdog item to a file reference using the Standard Open dialogue [...] to the best of my knowledge is now lost".

A file containing the OpenFileService part does seem to be available here, as part of Cyberdog 2.0 browser install[0][1]:

* https://archive.org/download/cyberdog-evolt_browsers/2.0/Sup...

When it extracted it contains a folder named "OpenFileService 1.0.1 ƒ" which contains `OpenFileService` and a README file.

I found this while investigating some other related items and will attempt to update/edit this comment with some links (but wanted to at least mention this now in case I disappear down some other rabbit hole :) ).

Edits:

[0] Overview page: https://archive.org/details/cyberdog-evolt_browsers

[1] File/directory listing: https://archive.org/download/cyberdog-evolt_browsers/2.0/

Other CyberDog versions on CD found on archive.org (unverified due to online viewer seemingly not able to handle Mac-compatible ISOs) which may also have other relevant content:

* CyberDog v1.1: https://archive.org/details/Macworld_Presents_Top_CD-ROMS_15...

* CyberDog v1.0: https://archive.org/details/cyberdog-integrating-the-interne...

* Unknown version: https://archive.org/details/AppleClubCD2.0.smi

The Internet Archive also has a CyberDog datasheet, "Getting Started" manual and couple of other items.

I found the above items on archive.org after initially looking on https://ftpmirror.your.org/ and http://bitsavers.org which I've had success with in the past when looking for historical info/binaries, especially from archived FTP sites.

While neither site appears to have specific archives of the CyberDog FTP site, I did find a number of OpenDoc & CyberDog related items (including SDK-related) which I'll aim to add links for below.

* CW CyberDog Stubs & Includes: https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve...

* MPW CyberDog Stubs & Includes: https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve...

The above are under the "OpenDoc Development Framework" directory which contains a large amout of other related OpenDoc content which may be of interest: https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve...

There are also CyberDog & OpenDoc assistants & other items here: https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve...

Also:

* CyberDog v1.2.1: http://ftpmirror.your.org/pub/misc/apple/Apple_Software_Upda...

* OpenDoc v1.2.1: https://ftpmirror.your.org/pub/misc/apple/Apple_Software_Upd...

* Misc OpenDoc items #1: https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve...

* Misc OpenDoc items #2: https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve...

And, apparently even the Mac port of "IBM's SOMobjects technology" :D, with which I'll conclude this link dump: https://ftpmirror.your.org/pub/misc/apple/ftp.apple.com/deve... (The relevant binary file is in the parent directory of the `.txt` file.)

Hope the results of my research is of use to you or some future archaeologist!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: