HyperCard: What Could Have Been (2002) - <AUTHOR> https://www.wired.com/2002/08/hypercard-what-could-have-been/ <comment><USER2> The game _Myst_ was originally written in HC, and a game engine (Mohawk) had to be written for Windows to provide similar functionality in order to port it. There's a documentary about it: [https://youtu.be/EWX5B6cD4_4](https://youtu.be/EWX5B6cD4_4) Definitely one of the rare indie game success stories. They really poured themselves into making it as awesome and expansive as technology would allow. IIRC, they're still writing games for fun.

<comment><USER3> Such a great documentary. Really recommend it to anyone considering. Myst / Riven were both awesome games.

</comment></comment><comment><USER4> I maintain the 'HyperCard Online' collection[1] at the Internet Archive, where over 3,500 stacks are able to be run directly within the browser.

We're always looking for more stacks, and have an upload form[2] for stacks to be added to the collection. If you've got some old stacks lying around, they'd be a great addition to the collection.

Extracting stacks off old Macs, floppy disks and SCSI hard drives from the 80s / 90s isn't always the easiest, but I'm always happy to help people with this - my email is email@example.com .

[1] [https://archive.org/details/hypercardstacks](https://archive.org/details/hypercardstacks)

[2] [http://hypercardonline.tk/](http://hypercardonline.tk/)

<comment><USER5> Do you have the first commercial HyperCard stack ever released: the HyperCard SmutStack? Or SmutStack II, the Carnal Knowledge Navigator, both by Chuck Farnham?

SmutStack was the first commercial HyperCard product available at rollout, released two weeks before HyperCard went public at a MacWorld Expo, cost $15, and made a lot of money (according to Chuck). SmutStack 2, the Carnal Knowledge Navigator, had every type of sexual adventure you could imagine in it, including information about gays, lesbians, transgendered, HIV, safer sex, etc. Chuck was also the marketing guy for Mac Playmate, which got him on Geraldo, and sued by Playboy.

[https://www.zdnet.com/article/could-the-ios-app-be- the-21st-...](https://www.zdnet.com/article/could-the-ios-app-be-the-21st- century-hypercard-stack/)

>Smut Stack. One of the first commercial stacks available at the launch of HyperCard was Smut Stack, a hilarious collection (if you were in sixth grade) of somewhat naughty images that would make joke, present a popup image, or a fart sound when the viewer clicked on them. The author was Chuck Farnham of Chuck's Weird World fame.

>How did he do it? After all, HyperCard was a major secret down at Cupertino, even at that time before the wall of silence went up around Apple.

>It seems that Farnham was walking around the San Jose flea market in the spring of 1987 and spotted a couple of used Macs for sale. He was told that they were broken. Carting them home, he got them running and discovered several early builds of HyperCard as well as its programming environment. Fooling around with the program, he was able to build the Smut Stack, which sold out at the Boston Macworld Expo, being one of the only commercial stacks available at the show.

[https://archive.org/stream/MacWorld_9008_August_1990/MacWorl...](https://archive.org/stream/MacWorld_9008_August_1990/MacWorld_9008_August_1990_djvu.txt)

Page 69 of [https://archive.org/stream/MacWorld_9008_August_1990](https://archive.org/stream/MacWorld_9008_August_1990)

>Famham's Choice

>This staunch defender was none other than Chuck Farnham, whom readers of this column will remember as the self-appointed gadfly known for rooting around in Apple's trash cans. One of Farnham 's myriad enterprises is Digital Deviations, whose products include the infamous SmutStack, the Carnal Knowledge Navigator, and the multiple-disk set Sounds of Susan. The last comes in two versions: a $15 disk of generic sex noises and, for $10 more, a personalized version in which the talented Susan moans and groans using your name. I am not making this up.

>Farnham is frank about his participation in the Macintosh smut trade. "The problem with porno is generic," he says, sounding for the briefest moment like Oliver Wendell Holmes. "When you do it, you have to make a commitment ... say you did it and say it's yours. Most people would not stand up in front of God and country and say, 'It's mine.' I don't mind being called Mr. Scum Bag."

>On the other hand, he admits cheerily, "There's a huge market for sex stuff." This despite the lack of true eroticism. "It's a novelty," says Farnham. Sort of the software equivalent of those ballpoint pens with the picture of a woman with a disappearing bikini.

[https://archive.org/stream/NewComputerExpress110/NewComputer...](https://archive.org/stream/NewComputerExpress110/NewComputerExpress110_djvu.txt)

Page 18 of [https://archive.org/stream/NewComputerExpress110](https://archive.org/stream/NewComputerExpress110)

>"Chuck developed the first commercial stack, the Smutstack, which was released two weeks before HyperCard went public at a MacWorld Expo. He's embarrassed how much money a silly collection of sounds, cartoons, and scans of naked women brought in. His later version, the Carnal Knowledge Navigator, was also a hit.

</comment></comment><comment><USER6> When young 13-year old me discovered hypercard, it gave me a feeling of awesomeness, and HyperTalk, the programming language of HyperCard, was a lot of fun.

I think that if hypercard had been the engine of the web instead of html/css, we would have had the current state of the web (ie. with client-side dynamic applications) a lot sooner.

Wether Hypertalk would have been a better choice than javascript to program the web, this is another story :)

For the curious, the Hypertalk entry in wikipedia contains a lot of code examples: [https://en.wikipedia.org/wiki/HyperTalk](https://en.wikipedia.org/wiki/HyperTalk)

<comment><USER7> ViolaWWW (at least in version 3.0) was much like this (mostly thanks to an object-based, entirely scriptable layout engine based on vertically and horizontally spreading, nested panels). An alternative history opportunity for the Web, but probably also a security nightmare.

[http://www.viola.org/](http://www.viola.org/)

<comment><USER5> Apple's OpenDoc based browser, CyberDog, was also quite amazing and flexible, because it was completely component based and integrated with OpenDoc. But that plane never got off the ground, because Steve Jobs rightfully focused on saying "No" and "put a bullet in OpenDoc's head".

[https://en.wikipedia.org/wiki/Cyberdog](https://en.wikipedia.org/wiki/Cyberdog)

>Cyberdog was an OpenDoc-based Internet suite of applications, developed by Apple Computer for the Mac OS line of operating systems. It was introduced as a beta in February 1996 and abandoned in March 1997. The last version, Cyberdog 2.0, was released on April 28, 1997. It worked with later versions of System 7 as well as the Mac OS 8 and Mac OS 9 operating systems.

>Cyberdog derived its name from a cartoon in The New Yorker captioned "On the Internet, nobody knows you're a dog."

[https://medium.com/@donhopkins/focusing-is-about-saying- no-s...](https://medium.com/@donhopkins/focusing-is-about-saying-no-steve- jobs-wwdc-97-ff0174c171d0)

>"Focusing is about saying no." -Steve Jobs, WWDC '97. As sad as it was, Steve Jobs was right to "put a bullet in OpenDoc's head".

As was Sun's original "HotJava" browser, implemented in Java of course, which was less formally component based than OpenDoc (since Java didn't have a comparable user interface component system like OpenDoc at the time, but it was at least very object oriented, modular, and extensible). HotJava served the purpose of opening a lot of people's eyes to the possibilities of Java and the web, but, like CyberDog, it was ahead of its time, and wasn't fully developed into a viable product, and served more as a technology demonstration and source of inspiration.

[https://en.wikipedia.org/wiki/HotJava](https://en.wikipedia.org/wiki/HotJava)

>HotJava (later called HotJava Browser to distinguish it from HotJava Views) was a modular, extensible web browser from Sun Microsystems implemented in Java. It was the first browser to support Java applets, and was Sun's demonstration platform for the then-new technology. It has since been discontinued and is no longer supported. Furthermore, the Sun Download Center was taken down on July 31, 2011, and the download link on the official site points to a placeholder page saying so.

Unfortunately, neither CyberDog nor HotJava (nor Netscape, until JavaScript finally arrived on the scene) had scripting languages built in, which I believe is an essential ingredient to the success of web browsers and component systems (and text editors like Emacs, and user interface editors like HyperCard or HyperLook or Bongo, or content management systems and blogging tools like Frontier and Radio Userland, etc). Even something as terrible as Microsoft OLE, which evolved from Visual Basic VBXs, was successful because it was built around a scripting language (Visual Basic for VBX, but OLE opened it up to any language via COM/IDispatch/ActiveX/IScriptingEngine/etc).

</comment></comment></comment><comment><USER8> [https://stacksmith.org/](https://stacksmith.org/)

[https://github.com/PierreLorenzi/HyperCardPreview](https://github.com/PierreLorenzi/HyperCardPreview) See HyperCard stacks in Mac OS X

[https://news.ycombinator.com/item?id=19253435](https://news.ycombinator.com/item?id=19253435) HyperCard Users Guide (1987) [pdf]

[https://news.ycombinator.com/item?id=14985604](https://news.ycombinator.com/item?id=14985604) HyperCard On The Archive

[https://news.ycombinator.com/item?id=19237052](https://news.ycombinator.com/item?id=19237052) HyperCard Adventures

[https://en.wikipedia.org/wiki/ResEdit](https://en.wikipedia.org/wiki/ResEdit)

macintosh font manager

[https://news.ycombinator.com/item?id=16550308](https://news.ycombinator.com/item?id=16550308) Is there an open-source hypercard equivalent?

[https://www.luna-lang.org/#Features](https://www.luna-lang.org/#Features)

[https://scratch.mit.edu/studios/198036/](https://scratch.mit.edu/studios/198036/) [https://scratchx.org/](https://scratchx.org/) [https://email@example.com/how-to-develop-your- own-b...](https://email@example.com/how-to-develop-your-own-block- for-scratch-3-0-1b5892026421)

[http://www.kogics.net/sf:kojo](http://www.kogics.net/sf:kojo)

<comment><USER9> [https://livecode.com/](https://livecode.com/)

<comment><USER10> don't forget [https://livecode.org](https://livecode.org) which is the GPL version. ;-)

<comment><USER9> Ah! I did not know they were on different domains, but I should've mentioned there is an open source version yes!

</comment></comment></comment></comment><comment><USER11> From all of the interviews I've read of Atkinson, he seems like one of the most humble programmers of all time.

 _" I have realized over time that I missed the mark with HyperCard," he said from his studio in Menlo Park, California. "I grew up in a box-centric culture at Apple. If I'd grown up in a network-centric culture, like Sun, HyperCard might have been the first Web browser. My blind spot at Apple prevented me from making HyperCard the first Web browser."

"If I thought more globally, I would have envisioned (HyperCard) in that way," he said. "You don't transfer someone's website to your hard drive to look at it. You browse it piecemeal.... It's much more powerful than a stack of cards on your hard drive._

No pussyfooting around it, no "My idea was so much better, it should have taken off," no "It has been demonstrated repeatedly that what _has_ happened was bad," just flat out: "I messed up, and missed the boat."

So much better than almost everyone who _also_ nearly struck the same gold mine as Berners-Lee.

<comment><USER12> I got to see Bill Atkinson at a guest lecture for a class I took last year (recording available online [1]), and this is so true.

He talks about General Magic, which shipped basically an early smartphone in 1994:

 _I co-founded a company called General Magic, we wanted to make personal communicators that would be intimate devices, with you all the time... we wanted to do something smaller that would be in your pocket and with you all the time, and we failed. We really couldn't - the components were too expensive, there wasn't a good capacitive touch sensing that you could do gentle swipe...

And the meteoric rise of the Internet drew the attention away from it and all our partners kinda went to work on the Internet. And yeah, they were right to do so.

We were just ahead of our time. I'm pleased to see some of the ideas that we had bore fruit in the long run, and that's really what I saw, and the first iPhone was hey - somebody's finally done the personal communicator._

The lecture also has one of my favorite lines from any lecture I've attended: _You know, I'm not like advocating that every software designer should go out and take LSD, but it worked for me._

[1] [https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=...](https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=25053106-2187-4cde-9981-a9eb002aa4e8)

<comment><USER5> Thanks for posting that! Also, here's a link to scans of Bill Atkinson's photos that he showed in the guest lecture for Brad Myer's UI class:

[http://www.cs.cmu.edu/~bam/uicourse/05440inter2019/Bill_Atki...](http://www.cs.cmu.edu/~bam/uicourse/05440inter2019/Bill_Atkinson_Photos/)

And here are some more links to the original interview with Leo Laporte, the Mondo 2000 article, and some other stuff about his talk, that I posted to a previous HN discussion:

[https://news.ycombinator.com/item?id=21779399](https://news.ycombinator.com/item?id=21779399)

Bobbie: Was Brad really serious when he said "no hands" were raised in response to Bill's question??! Kids these days, sheez! ;)

>Then at 1:03:15 a student asked him the million dollar question: what was the impetus and motivation behind HyperCard? He chuckled, reached for the transcript he had off-camera, and then out of the blue he asked the entire class "How many of you guys have done ... a psychedelic?" (Brad reported "No hands", but I think some may have been embarrassed to admit it in front of their professor). So then Bill launched into reading the transcript of the LSD HyperCard story, and blew all the students' minds.

>See video of Bill's talk:

[https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=...](https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=25053106-2187-4cde-9981-a9eb002aa4e8)

>The next week I gave a talk to the same class that Bill had just traumatized by asking if they'd done illegal drugs, and (at 37:11) I trolled them by conspiratorially asking: "One thing I wanted to ask the class: Have any of you ever used ... (pregnant pause) ... HyperCard? Basically, because in 1987 I saw HyperCard, and it fucking blew my mind." Then I launched into my description of how important and amazing HyperCard was.

>See video of Don's talk:

[https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=...](https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=f0600d9d-282e-4b83-a6f4-a9f2003ad407)

>Here is an index of all of the videos from Brad Myers' interaction techniques class, including Rob Haitani (Palm Pilot), Shumin Zhai (text input and swipe method), Dan Bricklin (spreadsheets, Demo prototyping tool), Don Hopkins (pie menus), and Bill Atkinson (Mac, HyperCard):

[https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.a...](https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%2250285cc6-431b-4b7e-af35-a9eb00287eec%22)

<comment><USER11> Thank you so much for sharing, Don!

</comment></comment></comment></comment><comment><USER13> TIL Bill Atkinson has an app in the iOS App Store! [https://apps.apple.com/app/bill-atkinson- photocard/id3332084...](https://apps.apple.com/app/bill-atkinson- photocard/id333208430)

<comment><USER14> He's looking to offload it to someone else: [https://news.ycombinator.com/item?id=17911573](https://news.ycombinator.com/item?id=17911573).

</comment></comment><comment><USER15> Must read (with plenty of Bill):

[https://folklore.org](https://folklore.org)

<comment><USER16> Yeah I love this site! So much to take inspiration from.

</comment></comment><comment><USER17> I think the first thing I ever coded was a simple game in Hypercard. It was a racetrack and you moved your mouse around the track.

While your mouse was hovering over the track it was an icon of a race car.

I used 4 different icons so that the car was pointing in the right direction as you moved around the track.

If you moved out of bounds you lost.

To be honest I didn't even know that it was "programming" as far as I was concerned Hypercard was just another app I was using like paint etc.

In retrospect it was very intuitive and might be the best version of "zero code" I have seen to date!

</comment><comment><USER18> Concerning the Sun/networked remark: There was a later networked HyperCard- influenced system in the SunOS4 world -- HyperNeWS (calling Don Hopkins!). I can't remember how structurally similar it was to HyperCard, to the extent I knew HyperCard, but probably not very.

The WWW before it had escaped from CERN, and you weren't on a NeXT system, looked terribly primitive when you already had networked hypermedia like NeWS, particularly when you didn't understand the significance of the WWW protocol and addressing.

<comment><USER5> Thank you! Here's an article I wrote about HyperLook (nee HyperNeWS (nee GoodNeWS)) [as it went through several revisions over the years, and the name kept changing each time]. The article is actually just an early draft that I haven't had time to finish and polish, and is kind of rambling, meandering, incoherent, and unfocused, but I hope you'll get the drift.

[https://medium.com/@donhopkins/hyperlook-nee-hypernews- nee-g...](https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee- goodnews-99f411e58ce4)

>SimCity, Cellular Automata, and Happy Tool for HyperLook (nee HyperNeWS (nee GoodNeWS))

>HyperLook was like HyperCard for NeWS, with PostScript graphics and scripting plus networking. Here are three unique and wacky examples that plug together to show what HyperNeWS was all about, and where we could go in the future!

[...]

>The Axis of Eval: Code, Graphics, and Data

>We will return to these three important dimensions of Code, Graphics and Data as a recurring theme throughout this article. But which way to go from here?

>Alan Kay on NeWS:

>"I thought NeWS was 'the right way to go' (except it missed the live system underneath). It was also very early in commercial personal computing to be able to do a UI using Postscript, so it was impressive that the implementation worked at all." -Alan Kay

It was indeed deeply inspired by and indebted to HyperCard, but of course had networking built in thanks to NeWS, and used PostScript as the data format and networking protocol (like XML and JSON are now used), and as the scripting language (which is more like Lisp than HyperTalk), and as the imaging model instead of pixels (including a nice built-in structured graphics editor component that supported EPS and raster images too, which you could use to build your own apps, property sheets, and editors, like the editable Clock component the article shows).

Another significant difference between HyperCard and HyperLook is that HyperLook used its own "stacks" to implement its own user interface for property sheets, etc. HyperCard just used the traditional Mac Toolbox for its user interface, instead of property sheets and dialogs being stacks. So you could edit and customize HyperLook property sheets and dialogs, and define new classes of HyperLook widgets, and then build your own seamlessly integrated property sheets for them (or just customize the property sheets of existing components). For example, I defined some NeWS Toolkit OPEN LOOK components like sliders and buttons and menus to support SimCity, all configurable with their own property sheets. The property sheets could use as many PostScript graphics editor components as they needed: for example, the editable clock component's property sheet let you edit its clock face, minute hand, and hour hand, which it rotated and drew around the clock. ...But it was just too slow to practically redraw a second hand once per second, so I left that out! Then you could copy and paste your custom clocks into any HyperLook stack, in case you cared what time it was.

However, this feature did enable "user interface vandalism", so HyperLook has a non-editable runtime system with the editors stripped out, that you could ship with apps:

[http://www.art.net/~hopkins/Don/hyperlook/TalkRunTime.gif](http://www.art.net/~hopkins/Don/hyperlook/TalkRunTime.gif)

In case you don't like PostScript as much as I do, Arthur van Hoff also wrote "PdB", an object oriented C to PostScript compiler that you could use to write classes and scripts. Later, after working on Java at Sun and leaving to found Marimba, Arthur wrote Bongo in Java, which was inspired by HyperCard (and called the Java compiler he wrote at Sun to dynamically compile scripts), and Danny Goodman wrote the book on Bongo! (He also wrote the book on HyperCard.) Arthur's working at Apple, now.

[https://en.wikipedia.org/wiki/Arthur_van_Hoff](https://en.wikipedia.org/wiki/Arthur_van_Hoff)

[https://www.amazon.com/Official-Marimba-Guide-Bongo- Goodman/...](https://www.amazon.com/Official-Marimba-Guide-Bongo- Goodman/dp/1575212544)

[https://books.google.nl/books?id=NToEAAAAMBAJ&pg=PA47&lpg=PA...](https://books.google.nl/books?id=NToEAAAAMBAJ&pg=PA47&lpg=PA47&dq=arthur+van+hoff+bongo+barimba&source=bl&ots=5mHIQrcNKM&sig=ACfU3U1igsKV7s-djUU9ulwdd- apAtx4xA&hl=en&sa=X&ved=2ahUKEwiiytqq6cTnAhUFCuwKHc- pCNoQ6AEwAXoECAwQAQ#v=onepage&q=arthur%20van%20hoff%20bongo%20barimba&f=false)

I've included links to a bunch of brochures, articles, product info, documentation, and SimCity README and manual at the end of the article. Here's the link to the HyperLook product info, which summarizes it pretty well, and the HyperLook SimCity manual, which has a lot of screen snapshots and shows what it can do.

HyperLook Product Info:

[http://donhopkins.com/home/HyperLook-Product- Info.pdf](http://donhopkins.com/home/HyperLook-Product-Info.pdf)

HyperLook SimCity Manual:

[https://donhopkins.com/home/HyperLook-SimCity- Manual.pdf](https://donhopkins.com/home/HyperLook-SimCity-Manual.pdf)

Also here's an illustrated transcript of a HyperLook SimCity demo (that shows all kinds of other HyperLook and NeWS stuff too, and includes a link to the original video):

[https://medium.com/@donhopkins/hyperlook-simcity-demo- transc...](https://medium.com/@donhopkins/hyperlook-simcity-demo- transcript-17f627eab14a)

Imagine a window manager built on top of something like HyperLook, where users can not only edit the "chrome" in the window frames to make them look and behave any way they prefer, but also compose custom task-oriented interfaces by copying and pasting components from different parts of the same app, or even different apps, and integrating them by scripting, so you don't have to flip between different windows and navigate to different parts of multiple apps, and you just have all the controls you need together in one place, without any unnecessary junk. For example, SimCity came with an audio mixing server that other apps could use by sending messages to it, which would be mixed with SimCity's sounds, so you could make a button that went "PING" whenever you pressed it, then copy and paste it into any other HyperLook stack, and it would work! Or you could make a custom "SimCity Surveillance" window by copying three different map views into the same window:

[https://miro.medium.com/max/556/0*XknyNX0FMotAR7y_.gif](https://miro.medium.com/max/556/0*XknyNX0FMotAR7y_.gif)

>The neat thing is that this view here itself is just another user interface component, and I can copy and paste that, and have multiple views. Each one of these animated scrolling SimCity editors, once I've made one, I can put them anywhere. This window, you can click here to get three of them.

<comment><USER5> For another interesting approach to sampling, customizing, and remixing existing user interfaces, check out Morgan Dixon's PhD thesis on "Prefab"!

[https://news.ycombinator.com/item?id=15327767](https://news.ycombinator.com/item?id=15327767)

>Morgan Dixon's and James Fogarty's work is truly breathtaking and eye opening, and I would love for that to be a core part of a scriptable hybrid Screen Scraping / Accessibility API approach.

>Screen scraping techniques are very powerful, but have limitations. Accessibility APIs are very powerful, but have different limitations. But using both approaches together, screencasting and re-composing visual elements, and tightly integrating it with JavaScript, enables a much wider and interesting range of possibilities.

>Think of it like augmented reality for virtualizing desktop user interfaces. The beauty of Morgan's Prefab is how it works across different platforms and web browsers, over virtual desktops, and how it can control, sample, measure, modify, augment and recompose guis of existing unmodified applications, even dynamic language translation, so they're much more accessible and easier to use!

[https://news.ycombinator.com/item?id=11520967](https://news.ycombinator.com/item?id=11520967)

Web Site: Morgan Dixon's Home Page. [http://morgandixon.net/](http://morgandixon.net/)

Web Site: Prefab: The Pixel-Based Reverse Engineering Toolkit.

[https://web.archive.org/web/20130104165553/http://homes.cs.w...](https://web.archive.org/web/20130104165553/http://homes.cs.washington.edu/~mdixon/research/prefab/)

Video: Prefab: What if We Could Modify Any Interface? Target aware pointing techniques, bubble cursor, sticky icons, adding advanced behaviors to existing interfaces, independent of the tools used to implement those interfaces, platform agnostic enhancements, same Prefab code works on Windows and Mac, and across remote desktops, widget state awareness, widget transition tracking, side views, parameter preview spectrums for multi-parameter space exploration, prefab implements parameter spectrum preview interfaces for both unmodified Gimp and Photoshop:

[http://www.youtube.com/watch?v=lju6IIteg9Q](http://www.youtube.com/watch?v=lju6IIteg9Q)

PDF: A General-Purpose Target-Aware Pointing Enhancement Using Pixel-Level Analysis of Graphical Interfaces. Morgan Dixon, James Fogarty, and Jacob O. Wobbrock. (2012). Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. CHI '12\. ACM, New York, NY, 3167-3176. 23%.

[https://web.archive.org/web/20150714010941/http://homes.cs.w...](https://web.archive.org/web/20150714010941/http://homes.cs.washington.edu/~mdixon/publications/mdixon- prefab-chi2010-final.pdf)

Video: Content and Hierarchy in Prefab: What if anybody could modify any interface? Reverse engineering guis from their pixels, addresses hierarchy and content, identifying hierarchical tree structure, recognizing text, stencil based tutorials, adaptive gui visualization, ephemeral adaptation technique for arbitrary desktop interfaces, dynamic interface language translation, UI customization, re-rendering widgets, Skype favorite widgets tab:

[http://www.youtube.com/watch?v=w4S5ZtnaUKE](http://www.youtube.com/watch?v=w4S5ZtnaUKE)

PDF: Content and Hierarchy in Pixel-Based Methods for Reverse-Engineering Interface Structure. Morgan Dixon, Daniel Leventhal, and James Fogarty. (2011). Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. CHI '11\. ACM, New York, NY, 969-978. 26%.

[https://web.archive.org/web/20150714010931/http://homes.cs.w...](https://web.archive.org/web/20150714010931/http://homes.cs.washington.edu/~mdixon/publications/mdixon- content-hierarchy-chi2011-final.pdf)

Video: Sliding Widgets, States, and Styles in Prefab. Adapting desktop interfaces for touch screen use, with sliding widgets, slow fine tuned pointing with magnification, simulating rollover to reveal tooltips:

[https://www.youtube.com/watch?v=8LMSYI4i7wk](https://www.youtube.com/watch?v=8LMSYI4i7wk)

Video: A General-Purpose Bubble Cursor. A general purpose target aware pointing enhancement, target editor:

[http://www.youtube.com/watch?v=46EopD_2K_4](http://www.youtube.com/watch?v=46EopD_2K_4)

PDF: Prefab: Implementing Advanced Behaviors Using Pixel-Based Reverse Engineering of Interface Structure. Morgan Dixon and James Fogarty. (2010). Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. CHI '10\. ACM, New York, NY, 1525-1534. 22%

[https://web.archive.org/web/20150714010936/http://homes.cs.w...](https://web.archive.org/web/20150714010936/http://homes.cs.washington.edu/~mdixon/publications/mdixon- general-purpose-target-chi2012-final.pdf)

PDF: Prefab: What if Every GUI Were Open-Source? Morgan Dixon and James Fogarty. (2010). Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. CHI '10\. ACM, New York, NY, 851-854.

[https://web.archive.org/web/20141024012013/http://homes.cs.w...](https://web.archive.org/web/20141024012013/http://homes.cs.washington.edu/~mdixon/publications/mdixon- prefab-workshop-chi2010-final.pdf)

Morgan Dixon's Research Statement:

[http://morgandixon.net/morgan-dixon-research- statement.pdf](http://morgandixon.net/morgan-dixon-research-statement.pdf)

Community-Driven Interface Tools

Today, most interfaces are designed by teams of people who are collocated and highly skilled. Moreover, any changes to an interface are implemented by the original developers and designers who own the source code. In contrast, I envision a future where distributed online communities rapidly construct and improve interfaces. Similar to the Wikipedia editing process, I hope to explore new interface design tools that fully democratize the design of interfaces. Wikipedia provides static content, and so people can collectively author articles using a very basic Wiki editor. However, community-driven interface tools will require a combination of sophisticated programming-by- demonstration techniques, crowdsourcing and social systems, interaction design, software engineering strategies, and interactive machine learning.

</comment></comment></comment><comment><USER19> I have and maintain a retro computing collection, and have had a minor public exhibit of it in 2019. I have a lot of machines from the 70's to the 21st century, and have made it a bit of a passion to demo these things to folks.

I'm now unpacking and trying to work out how to proceed with further interaction in 2020, and the one machine that keeps crossing my scope is an old Macintosh Powerbook, the first with a trackball, which has indeed been loaded up with HyperCard stacks.

Now, one thing I must add to this discussion, as someone who has had to demo these things to a modern audience, is that the person you are showing it to should _always_ be the one doing the driving. Never try to show someone a stack - always just describe them doing it for themselves.

Stacks are delightful. Get yourself an emulator, and explore them. Its a pretty good way to get some context on your newly-gained modern chops.

</comment><comment><USER20> > Atkinson still uses HyperCard every day. His address book is a big HyperCard > stack, and he has written a number of custom programs to help him with his > photography and to maintain his website.

I wonder if he still does in 2020? Or if not, when did he stop?

<comment><USER21> SuperCard would be a kind of replacement:

[https://supercard.us/index.html](https://supercard.us/index.html)

<comment><USER22> Unfortunately, that one doesn't have 64-bit support (requires a full rewrite to get off of carbon). So no Catalina, but it is very impressive it works on Tiger through Mojave with no hitches! That's 10 versions of the OS.

<comment><USER20> Just as an interesting technical note, MacDraw Retro is another one that supports Tiger through Mojave.

And of course, there's a lot of small programs that support the range as well, sometimes just by chance (a Tiger-era program just happens to work), but you're right it's rare for bigger, more-complex stuff.

</comment></comment></comment></comment><comment><USER5> 1987 Computer Chronicles: HyperCard

An introduction to Apple's Hypercard. Guests include Apple Fellow and Hypercard creator Bill Atkinson, Hypercard senior engineer Dan Winkler, author of "The Complete Hypercard Handbook" Danny Goodman, and Robert Stein, Publisher of Voyager Company. Demonstrations include Hypercard 1.0, Complete Car Cost Guide, Focal Point, Laserstacks, and National Galllery of Art. Originally broadcast in 1987. Copyright 1987 Stewart Cheifet Productions.

[https://archive.org/details/CC501_hypercard](https://archive.org/details/CC501_hypercard)

</comment><comment><USER23> A thread from 2008: [https://news.ycombinator.com/item?id=730997](https://news.ycombinator.com/item?id=730997)

</comment><comment><USER24> Hyperview is a mobile framework inspired in part by HyperCard:

[https://hyperview.org](https://hyperview.org)

</comment><comment><USER25> In what way does the original web architecture (HTTP/URL/HTML) not supersede and mostly independently improve on Hypercard?

<comment><USER26> Anyone who can click a mouse could make a HyperCard stack. You could draw like in MacPaint, and create connections between cards almost as easily. You could create template pages, and save data in the stack itself. You could send it to your friend, or back it up, simply by copying one file.

These days Apple is promoting "progressive disclosure" as a feature of Swift. HyperCard was an excellent example of that!

The web isn't. Doing these with the web requires at least a server, a programming language, and a database. Anyone can easily view a webpage, but you need a separate editing system to be able to easily create. Even then, there's probably no "View Source" for most of it. Without a big fancy editing system, there's a _huge_ learning curve between "hello world in HTML" to sharing with your friend, creating a template shared between pages, or saving data between sessions.

Of course, that's _modern_ web architecture. The " _original_ web architecture" had no XHR, or even JS. It was 5 years before you could click somewhere on the screen and have it do anything other than "go to another HTML page".

<comment><USER25> Well, I still think that allowing Javascript onto the web was a fatal mistake. HTTP/URL/HTML and eventually also CSS was a fantastic combination. This stack was progressively learnable via self-discovery.

Once the Javascript-coders infected the web it almost immediately turned into a write-only medium.

I worked at a browser vendor whilst all of this was happening. I was busy with the mechanics of building a particular browser. Couldn't make sense of the javascript/webstandards stuff in detail, but I trusted these people were smart enough. I did notice the people who were running this stuff (they were making the formerly kinda static html/css web standards dynamic by defining vast amounts of javascript API:s) were all _very_ young people. Probably a median age of 21 or so. (Some "wunderkids" around 17 or so.) The average age of the people actually implementing stuff was closer to 28-30 in this company. Nothing against young people in general.. they can bring new thoughts etc.. but.. they do tend to lack experience.

In retrospect I regret that I didn't engage with this young crowd more. In general I wish there had been more discussion between these two camps.

</comment></comment></comment><comment><USER27> I never "got it" (hypertalk). Tried to write an app to put up some menus, get some input, read and write some files. Could never figure out how to get off the ground.

</comment><comment><USER28> hehe;</comment>


Software Sea Change - <AUTHOR> http://kickingbear.com/blog/archives/67 <comment><USER2> _Also, I spell potatoe with an 'e', as God intended, so you know I'm right about this._

Wait, Dan Quayle writes iPhone Apps?</comment>


German govt proposes law to force WhatsApp Gmail etc to hand over user passwords - chupa-chups https://www.heise.de/newsticker/meldung/Justizministerium-WhatsApp-Gmail-Co-sollen-Passwoerter-herausgeben-muessen-4615602.html <comment><AUTHOR> I changed the URL from [https://translate.google.de/translate?sl=de&tl=en&u=https%3A...](https://translate.google.de/translate?sl=de&tl=en&u=https%3A%2F%2Fwww.heise.de%2Fnewsticker%2Fmeldung%2FJustizministerium- WhatsApp-Gmail-Co-sollen-Passwoerter-herausgeben-muessen-4615602.html) to the original source, as the site guidelines request.

I know this is a tradeoff that leaves something on the table, but HN is an English-language site, so articles here need to be in English. We don't allow machine translations as a workaround. I could imagine exceptions for topics of particuar intellectual curiosity—something that is so obscure that it only exists in one form and hasn't been translated. But articles on current affairs are the opposite—in those domains, if a story is important enough to be covered here, it will certainly appear in the English-language media.

Put conversely: in popular domains like current affairs, if there's no English-language article worth submitting on a topic, mostly likely that's because the topic isn't significant enough yet. When it comes to politicians proposing bills, that's certainly the case. Most bills go nowhere ([https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=by%3Adang%20bills&sort=byDate&type=comment)), and if anything comes of this one, it will surely receive much closer attention.

<comment> chupa-chups You're right.

<comment><AUTHOR> > _Yeah. You 're totally right, anything outside of US doesn't matter :)_

I was just in the process of replying to your comment and question when you replaced it with that snarky one-liner.

HN is a highly international community. Plenty of international stories appear here. Nor does HN being an English-language site imply any disrespect for other languages, including the wonderful German language. Quite the contrary.

In this case the language issue is secondary anyhow, since "politician is working on drafting a bill" is an even less substantive story than "politician introduces bill", which is one of the classics of off-topicness for HN ([https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=by%3Adang%20bills&sort=byDate&type=comment)). We would have demoted the story regardless of the language it was written in.

In cases like this, we've learned that there's no harm in waiting for a story to actually become real before having a thread about it. [https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=by%3Adang%20%22harm%20in%20waiting%22&sort=byDate&type=comment)

<comment><USER2> In spite of the draft status this already makes some waves in the german mainstream press, not only some computer magazine.

[1] [https://www.faz.net/aktuell/wirtschaft/digitec/hassrede- bund...](https://www.faz.net/aktuell/wirtschaft/digitec/hassrede- bundesregierung-will-an-e-mail-passwoerter-16535665.html)

Though the last paragraph cites a politcian saying something along the lines of this can't stand as it is and needs further discussion and changes, otherwise it would be contested in germanys highest court and canceled there.

edit: 2nd link [2] [https://www.stern.de/politik/deutschland/hetze-und- drohungen...](https://www.stern.de/politik/deutschland/hetze-und-drohungen- haertere-strafen--gesetzentwurf-gegen-hass-im-netz-9047530.html)

edit: 3rd link [3] [https://www.spiegel.de/netzwelt/web/facebook-twitter-co- mill...](https://www.spiegel.de/netzwelt/web/facebook-twitter-co-millionen- bussgeld-wenn-drohungen-ignoriert-werden-a-1301168.html)

</comment></comment></comment></comment><comment><USER3> One problem with this kind of debate today is that fewer lawmakers than in the past have direct knowledge of communication systems and how to keep them secure.

For example, in the 80's there was concern about 'bugging' in the UK. But at the time, there was actually informed debate in parliament about the technical details. This could happen because since there was so much labour involved in maintaining the old systems, large numbers of people actually knew how they worked. There were MPs who had formerly been telecom linemen, and followed the trade->union official -> Labour party -> MP route into parliament.

Nowadays I can't think of an MP who would actually have the background to know that this is a bad idea, themselves.

<comment><USER4> I'd have thought that Germany would have enough representatives from the DDR to know why this is a bad idea. Which is why they're usually one of the most anti-surveillance countries in Europe and leaders of GDPR campaigning.

<comment><USER5> Even though we are fairly anti-surveillance as a whole, a lot of fairly radical surveillance laws get proposed all the time. Most die early, some die after push-back from the population, some get voted in and are thrown out by the constitutional court, and a few survive. It's a never ending fight.

</comment></comment></comment><comment><USER6> The current title ("Germany requests WhatsApp, Gmail etc. to hand over passwords in plaintext to DOJ") makes it sound like this law already passed, which is not the case according to the article.

<comment> chupa-chups Yes, but

\- the title length is limited

\- from my PoV, this needs some attention

What would you propose as a title?

<comment><USER7> "German ministry of justice proposes law to force WhatsApp, Gmail etc to hand over sensitive user data"

<comment> chupa-chups "22 too long"

I really tried to summarize with the available title length. And to be honest, laws like this tend to be passed in Germany.

Sorry if you disagree. Please provide a better title. Honestly, I couldn't come up with one.

<comment><USER8> German govt proposes law to force WhatsApp Gmail etc to hand over user passwords

<comment> chupa-chups Thanks. Changed it!

</comment></comment></comment></comment></comment></comment><comment><USER9> Any sensible company would store passwords as hashes... I sure hope google would.

<comment><USER10> They can always alter the login code to secretly log the passwords in plain text the next time the designated users log in.

<comment><USER11> Gdpr violation?

<comment><USER12> No, required by another law.

</comment></comment></comment></comment><comment><USER13> The HN title is inaccurate. The article itself actually says:

 _The draft does not provide for an explicit obligation to provide identifiers in plain text. When providing information, however, "all company-internal data sources must be taken into account"._

</comment><comment><USER14> This is not the combined force of the German Nation State, this is a part of a proposal by our Federal Justice Minister, framed to counter "hatecrime".

Still far from Merkel calling Zuck und Sundar to hand over the passwords.

</comment><comment><USER15> This is the draft in question: [https://drive.google.com/file/d/1gV4FIr6cNu2s1W37vd7NJZC4HNc...](https://drive.google.com/file/d/1gV4FIr6cNu2s1W37vd7NJZC4HNceruKL/view)

Translated to English: [https://www.scribd.com/document/439773952/BMJV-GE- Bekampfung...](https://www.scribd.com/document/439773952/BMJV-GE-Bekampfung- Rechtsextremismus-Hasskriminalitat-EN)

One of the notable proposed changes is that providers are required to notify federal law enforcement about content that they removed from their platform and which the provider determined to likely violate German laws, including the content and the user's IP address and [source] port number. The intention is to prosecute these cases. There is a provision that requires the user to be notified about this, except if law enforcement specifically requests not to notify the user.

The changes to §15a are very broad and allows a variety of government institutions to request not just customer contract data ("Bestandsdaten", which would be regulated by §14), but also "Nutzungsdaten", i.e. user IDs, IP addresses, logs or similar usage data, even for misdemeanor-level offences. It's a bit of a hyperbole, but to my understanding, this would, in theory, include parking violations and littering, which feels wrong.

Requesting such data was, to my understanding, regulated only superfically by the TMG in §15 (5) with unclear scope. Previous court cases established that this would include IP address data (LG Frankfurt/Main, 2-03 O 174/18). The new paragraph expands on this by explicitly allowing requests to be made using just an IP address (rather than a user identifier), by clarifying the scope to include all usage data, and requiring security measures to be taken to ensure that the data is transmitted securely.

The draft document only mentions about passwords in the comments (page 29), not the actual proposed changes to the law, which only mentions "data which can be used to access storage media on a device".

This is an oddly specific provision that likely targets full disk encryption schemes that have a server-side key backup (i.e. Windows Bitlocker). This was copy-pasted from the existing §113 TKG, which regulates ISPs, and calling these "passwords" is a very unfortunate choice of words by the authors of this draft document.

Disclaimer: Not a lawyer, but I dealt with law enforcement requests in Germany in a past job.

</comment><comment><USER16> Given the Hong Kong police state situation, once again who watch the watchman.

</comment><comment><USER17> Hand it over. It's hashed anyways</comment>


How to Hire a Players – A YC Company Perspective - <AUTHOR> https://www.greenhouse.io/blog/how-we-hire-tilts-a-method-recruiting-model

<comment><USER2> I think one of the hardest thing about hiring is that if I am an "A" player, I am usually financially sound because of it and I just don't want to put in months of effort trying to get a job at a good work environment.

Usually jobs just find me, but I don't really need them and often I see cool openings in San Francisco (I live in Canada) but I just don't go after them.

I think about having to make a cool resume that stands out, having to do all the social media stuff, (i just want to program in the top 1%, not be some social god and I only use snapchat these days) It just gets tiring for a 35 year old. (do startups even hire 35 year olds? probably not.)

Can I program? Oh yes, when I dig in, I top perform and give everything to the people I work for. In my opinion most of the top talent goes unnoticed and are not offered top positions, simply because they couldn't bother with the hiring process. Meanwhile these companies have to siphon through a glut of bottom performers who are trying to get in cool companies (and wont) because they are desperate to get their foot in and learn.

If the great valley of silicon, lol, can do anything for startups, it would be to better promote services and technologies that match up people with good jobs.

I would love to solve a problem online say in machine learning or Erlang or something and just SHOW how I top perform instead of having to reach out for 3 months wasting time talking to hiring managers. No thanks. I already make enough money you know? Just my two cents I guess.</comment>


Ask HN: Anyone tired of "fast paced" jobs? - <AUTHOR> <comment><USER2> i often wonder if "fast paced" isn't a euphemism for "we don't know what we're doing" or "we couldn't convince an investor our idea is decent enough to warrant adequate funding" or "we're chasing a market opportunity that's going away soon and our company has no long term prospects, but we're going to pay you in stock options."</comment>


BBC iPlayer comes to the iPhone - <AUTHOR> http://news.bbc.co.uk/1/hi/technology/7283702.stm

<comment><AUTHOR> Article should make it clear you point your iPhone to <http://bbc.co.uk/iplayer>.

More details here: [http://www.bbc.co.uk/blogs/bbcinternet/2008/03/bbc_iplayer_o...](http://www.bbc.co.uk/blogs/bbcinternet/2008/03/bbc_iplayer_on_iphone_behind_t.html)</comment>


Show HN: Servus for Mac and Dropbox - <AUTHOR> https://servus.io I've built a thing!  A few months back someone (not me) posted my Mac app Droplings to HN.  It was incredibly rough around the edges back then, and in alpha.<p>Well, it's finished now and sparkles like crazy.  Please take a look!  :) <comment><AUTHOR> I've built a thing! A few months back someone (not me) posted my Mac app Droplings to HN (<http://news.ycombinator.com/item?id=4277856>). It was incredibly rough around the edges back then, and in alpha.

By now Droplings has become Servus. It still is a Dropbox-powered sharing app for Mac. It's a menubar icon. If you drop a file on it, it'll build a nice preview page around it, upload both to your Dropbox, then copy the public preview link to your clipboard. The preview page can be entirely customizable via themes.

It's been released a few days ago, and it sparkles like Nibiru. Please take a look! :)

</comment><comment><USER2> Your landing page could use a screenshot of the page Servus produces.

Also, fantastic name and domain. Knowing word's meaning I expected IM/communication app, but most people don't so you're fine. :)

<comment><AUTHOR> I've linked to an example page ("Servus comes with a clean built-in preview page theme (example)"). It's the real thing, i.e. better than just a screenshot! ;)

<comment><USER3> I'd suggest embedding a screenshot on your landing page so people immediately "get it". It did take a little reading to grok this concept. Also, I'd suggest a (simple) real-world example rather than "this serves as an example" which almost reads like a snarky response to people complaining it's not there :).

<comment><AUTHOR> Okay, point taken.

</comment></comment></comment></comment><comment><USER4> Looks very nice. I don't know why I personally need it yet, but I think I'm going to buy it!

One question -- why didn't you use the App Store? Was your decision technical, financial or both? I really appreciate the convenience of the App Store, especially for updates.

<comment><AUTHOR> Thank you! :D

I've scribbled down my reasons for releasing outside the MAS here: [http://blog.servus.io/post/37663343570/servus-1-1-grand- stor...](http://blog.servus.io/post/37663343570/servus-1-1-grand-store- opening)

Regarding updating: Servus has a built-in auto-updater, so it's easy to keep it up to date.

<comment><USER4> Purchased.

Another benefit of the App Store is convenience. I don't have to type all of my info into yet another place. Can you get stats on how many people abandon the FastSpring form?

One feature request: resize preview images. My test png wasn't resized for the thumbnail and took a couple of seconds to load.

</comment></comment></comment><comment><USER5> You may show an example. Is that dropbox sharelink that difficult? I understand the brand name. You could make some sales while using nice and good looking screen shots. It creates a feel and then a sale. The example you have shown is boring honestly.

<comment><AUTHOR> Of course. So here's an example shared via Dropbox' own Share Link feature:

[https://www.dropbox.com/s/wckaf7i7anhtq4v/this-screenshot- se...](https://www.dropbox.com/s/wckaf7i7anhtq4v/this-screenshot-serves-as- preview-page-example.jpeg)

Here's the same picture shared via Servus.

<https://dl.dropbox.com/s/l2zxws95dpwrfsq/index.html>

The difference is that Dropbox' own page is not customizable at all, whereas Servus allows you to use your own theme for the preview pages. My example uses the built-in default theme.

Also, it's about convenience. When you drop a file on Servus' menubar icon, it'll automatically copy the public preview link to your clipboard after upload — or the direct link to the file, your choice.

With the native Dropbox client, to share a file you have to get to it in Finder, copy it to your Dropbox folder, right-click it and select "Share Link" — which will then take you to the Dropbox website where you are presented with the link. Let's just say it takes a while. ;)

<comment><USER6> Links above are broken...or at least for me (using Chrome).

</comment></comment></comment><comment><USER7> This seems like a nice, useful little app. Congrats on shipping!

One question though. Have you considered a free for ever version?

I know a few people that would find this a bit useful but would never pay for it, at least not now. If you had a free version minus the templates (or any other extra features you add later) then they would use it for sure.

And you keep your not free version for all the fancy stuff like templates, contacts/address book integration for auto-email/share, custom branding, etc.

Bonus question: Why not share the folder directly with your client so that they get updated versions automatically?

<comment><USER8> I was reading your website and all I thought was, this is the convenience of CloudApp(<http://getcloudapp.com/>) but for a one time payment that plugs into your dropbox and hence you don't have to pay a subscription.

Anyhow, I agree with having a free version of some sort,e.g. less features. And it would be definitely awesome if this was the equivalent of CyberDuck but for file sharing, in the sense that plugs into dropbox, s3, whatever other file sharing system out there, hosted or self-hosted.

Good stuff.

</comment></comment><comment><USER9> Probably a good idea for designers and other people who wouldn't touch a shell script for this. Although that customer base might need a more hoity-toity name than "servus"… (bussibussi.io?)

<comment><AUTHOR> I don't think that joke works outside of Bavaria. :P

Besides, I had the latin meaning of the word in mind, not the southern German one.

<comment><USER10> Well, that answers my question.

</comment></comment></comment><comment><USER11> Looks interesting but… could be better if there would be option to choose custom endpoint (like SFTP account).

Certainly understand that from developer's viewpoint it's easier to use Dropbox's app as a tool of file transfer (probably, if I understood it right). Still, just a idea for the future.

(Yes, I have used Dropbox (and still do, from time to time), but don't consider it as a good way for sharing things compared to a nicely maintained web host with good CDN.)

</comment><comment><USER8> You said you built this because as a freelancer you often needed to share files. What else would help you as a freelancer that you haven't built yet?

<comment><AUTHOR> I'll tell you once I've built it. ;)

</comment></comment><comment><USER12> in my opinion you should have a free version without theme selection and heavier branding, and remove the footer from the paid one.

</comment><comment><USER13> It will be nice if you could build a version of Versus, that would use an AWS S3 bucket instead for this. That would be awesome!

</comment><comment><USER14> Nice app. Users could combine this with a proxy, so they can use files.yourdomain.com/file.html instead of dl.dropbox.com/s/longrandomstring/file.html. I've used this one for a while, which runs for free on App Engine: <http://code.google.com/p/dropbprox/>.

</comment><comment><USER15> Love it. Time to convert those design agencies that are still struggling with FTP or sending huge PSDs through email.

<comment><USER16> I like the dropbox tool! Most design agency's rely on <http://www.wetransfer.com> It's free and found a way to show cool ads full screen. We're using our own wetransfer-channel.

<comment><USER6> Very interesting. Does anyone know what tech wetransfer uses for uploading? I was prompted to use Flash for download, but what about uploads? They don't use a Java applet. Anyone?

<comment><USER17> Its a POST via XHR (<http://en.wikipedia.org/wiki/XHR>)

</comment></comment></comment></comment><comment><USER18> How does this compare to existing competitors such as Droplr or CloudApp?

<comment><AUTHOR> Favorably. ;)

For one, no monthly fees. Unlimited uploads per day, and your upper file size limit is only dictated by your spare Dropbox space. Also, you can use your own custom themes (HTML/CSS/JS) for your preview pages.

I've built Servus to scratch my own itches I had with those services. Don't get me wrong, they're really good, hands down. They just didn't work the way _I_ wanted, so there.

</comment></comment><comment><USER19> This seems like it could go well with a gumroad integration so you could sell things as well. Haven't really thought through it much but it could be interesting.

</comment><comment><USER20> Looks good! Prettier than the Syncdocs (<http://syncdocs.com>) plugin I use for Google Drive

</comment><comment><USER21> Looks nice. I'd probably mention somewhere in the page that this is a Dropbox- based alternative solution to Droplr or CloudApp

</comment><comment><USER22> I read the copy on the front page three times and still can't figure out what it does. Maybe it's just me.

<comment><AUTHOR> 1\. You have a file, you'd like to send that file to someone, but you want to have that file embedded in some sort of preview page. 2\. You drop the file on Servus' menubar icon. 3\. Servus uploads your file to your Dropbox account. 4\. Servus builds a preview page for your file and uploads that, too. 5\. The link to the preview page is copied to your clipboard.

Step 4 will either use Servus' built-in preview page theme, or you can use your own templates for that.

Does that help? :)

<comment><USER23> You should have made the Landing page of it..or atleast content writing :)

</comment></comment></comment><comment><USER24> kind of similar to cloud app, accept with out the personal touch.

<comment><AUTHOR> > with out the personal touch

Care to elaborate?</comment></comment>


How can back end developers 'practice'? - <AUTHOR> It seems everyone says to build something if you want to learn a technology. This is an issue for me because I work on server side code, mainly working with databases and how to optimize their performance. I am not a UI/UX person at all. So to build a website or project just feels... disjointed for me. I care a lot about the whole product, but I don't want to do front end work. So what sorts of things should I be considering as side-projects to boost my skillset? <comment><USER2> I think you can just build some webapp (front end can be very simple, just use angular.js with no styling at all) and focus on the backend?

Or if you absolutely don't want to touch front end at all, perhaps building API backend will do? Although it'll be much harder to showcase your skills

</comment><comment><USER3> You don't need to create a shiny UI for the backend. Simple UI would be fine to showcase the features of the backend system - simple HTML and JS code, no need to use any frameworks.

</comment><comment><USER4> Build your backend and all its parts, then use curl or python or something equally "simple" to access it.</comment>


Web Service Efficiency at Instagram with Python - <AUTHOR> https://engineering.instagram.com/web-service-efficiency-at-instagram-with-python-4976d078e366#.s1st93t8g <comment><USER2> Instagram is a great story for Django, it's the best argument to bring against doubters of Django's scalability. But I wonder how much Instagram contributes to Django itself. I follow Django's development relatively closely, and I'm not aware of any major work contributed by Instagram engineers. They aren't listed on Django's fundraising page, neither.

[https://www.djangoproject.com/fundraising/](https://www.djangoproject.com/fundraising/)

<comment><USER3> The fundraising page is depressing. They're only asking for US$200,000 and they only have 19% at half way through the year. In other news... Instagram hits half a billion monthly active users... but not on Django's fundraising page.

I'm not knowledgeable about open-source issues, pros/cons, etc., but man... only 19% of $200K. Doesn't seem right given Python is one of the major languages and I believe Django is the most popular web framework in Python.

<comment> J0-onas You'd think that companies who profit from open source projects would support them financially. Considering how big django is there should be many other companies who profit from the projekt.

200k/year should be collected in no time...

<comment><USER4> I've found that the engineers who build products on open source software very rarely have the authority to donate company money, and the businesspeople that do have the authority rarely understand the benefits of it.

I think a guide on how to get your company involved in donating to OSS projects would be beneficial. Has anyone come across any good advice, or have any experience in influencing your employer to donate?

<comment><USER5> Funding an open source project you use means funding the competitors.

A is a company, B is an individual with lots of spare time.

B feels that he can help the company by writing a tool for them. He also envisions that the tool could be used by other companies and so wants to open source it so he can provide services around the tool.

B says to A : see, I'm going to develop the tool for you for free, in exchange you test it.

Note the tool is the n-th implementation of common business practices, such as an ERP. The tool is not about something specific to A.

B thinks : I'm independent, I'm not hired by A, I write the code as free software as it pleases me.

A then says : wtf? you're going to publish that code on the web ? Therefore my competitor might get it so, no way. I'd be liable for giving away some value of the company to the competitor

So, instead of saying something like "hey, I use that program so let's fund it a little", A actually says "by helping B to develop the program, I may actually help my competitors, I'm in legal trouble".

B is somewhat screwed :-(

(I let you figure out if this actually happened to me :-))

<comment><USER6> I don't think that this applies to this very case though. Django was not made for Instagram, it was made available to the general public for free, as an open source framework. Instagram engineers only decided to use what was on the table.

I also believe that Instagram _needs_ Django to be OSS, and the same goes for any other framework/language/library that other companies use, as OSS in itself is an extremely powerful label for a project. It brings together developers to form a community with lots of great minds and inputs. It helps feasible projects become production-ready and stable much faster than if it was closed source as its use-cases are far more wider than what a single company would provide.

Taking this from a competetive standpoint isn't very realistic in my opinion. I dare say that if either Django or Python weren't open source software, Instagram wouldn't be built on it in the first place.

I think it's absurd how Instagram can grow financially fat from the hard work of the Django Software Foundation without even contributing a dime to their fundraising or provide engineers exclusively to the DSF. IMHO Instagram should bring that fundraising up to at least 100%, considering Instagram revenue is estimated to hit $5.8 _billion_ USD by 2020, $160,000 USD per year is a small price for the amount of value Django brings them.

It's a topic of morale though, Instagram does not owe the DSF anything, but I guess this shows where Instagrams appreciation lies.

<comment><USER5> You're right

>>> It's a topic of morale though, Instagram does not owe the DSF anything, but I guess this shows where Instagrams appreciation lies.

That's the point I was actually making. My experience that when you have people brainwashed with "competitive advantage", "profit maximization", and such, well, morale just doesn't exist anymore. In my case, I was surprised to see how quickly someone I trusted can actually switch to this brainwashed brain...

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> This part I'm skeptical:

      "Compared to CPU time, CPU instruction is a better metric,
      as it reports the same numbers regardless of CPU models
      and CPU loads for the same request."

CPU instructions will be more stable than CPU time for sure, and it does show that their metric is stable based on their chart but a single CPU instruction can take multiple cycles, especially if there are stalls in the pipeline or other processes are "polluting" the cache. Depending on the CPU model, the number of uops that can be issued concurrently varies, and the latency of these instructions will also vary on the size, and access pattern to their memory hierarchy.

Also, what about a change in compiler version? That can also vary the number of instructions. Unless they are referring to a Python bytecode instruction as a CPU instruction.

Would measuring CPI be a better indicative of their efficiency? They could also track both, no need to settle for one.

<comment><USER8> I agree with your skepticism. They will not detect a performance regression when there is a change in instruction mix or cache miss ratio.

</comment></comment><comment><USER9> Wow, CPU is the limiting factor? I've never been CPU bound in a Web app, only I/O bound. Am I doing something wrong?

Granted, I don't use python anymore for Web dev. I'm using languages that can handle 10x the traffic per box that Django used to be able to handle. This isn't a knick against python. I love python. Just such a different perspective.

<comment><USER10> This also immediately popped out to me as the wrong assumption to make (and start off with, for that matter)... But I could see it being true if:

\- You are essentially maxing out incoming and outgoing network IO

\- You have no database to speak to (or your DB is in-memory)

In that case, I guess it is just a race to do some computation and fetch the right data from RAM, then the limiting factors would be RAM access and the number of the computations you could do to try and keep up with inbound requests?

</comment></comment><comment><USER11> If engineering time wasn't an issue, how much would a company of Instagram's scale save by switching from Python to a lower level language like C++? Pretend you could wave a magic wand and overnight have the entire code base transformed from Python to well written C++, how would that affect the hardware requirements, and future development?

I guess what I'm really asking is what pros and cons are there with using dynamic and relatively slow languages compared to faster languages like C++, Java, or C#? My uninformed reaction is that it's easy for startups to get started with these easy languages but that it leads to problems when it's time to scale up. Dropbox is writing their own Python implementation, and Facebook have their PHP to C++ compiler.

<comment><USER12> It's important to remember that for a lot of network server purposes, your code only has to be fast enough to saturate your network interface, and after that there isn't much point in trying to speed things up.

Not sure how often that's the case in Instagram's use, but I've been using Python and Twisted to saturate network interfaces effectively since 2003 :-), and in those situations I've been more interested in the correctness advantages of a good statically-typed language rather than the performance.

<comment><USER13> time-to-saturation is also worth considering.

</comment></comment></comment><comment><USER14> They should really show what they are doing with their CPU. How many requests per second and their characteristics? Generally Python (Ruby, etc) is terribly inefficient relative to the next tier of languages like Java and Go. At Twitter we were able to reduce number of servers by 10x and decrease latency by 10x by moving the web application from Ruby to Scala/Java with no architectural changes, essentially byte for byte (and bug for bug) compatible. My guess is they have done this math and would rather pay for more servers and take the latency hit rather than rewrite it.

<comment><USER15> Did you at the time compare it with a JIT implementation like PyPy (for Python, not sure what would be the Ruby equivalent)?

<comment><USER16> A JITing implementation of Ruby would by JRuby. Depending on JRuby's state at that time, Twitter could have used JRuby and gradually rewritten parts of it in Scala. Perhaps.

</comment></comment></comment><comment><USER17> I think on reflection however we need to remember, with all our sprints and agile iterations, that just in Instagram billions of web requests are being served by just dozens of developers based on code written over 25 years now, following good practises and hard work - kudos to the Python Dev team on 25 years.

<comment><USER18> To be fair, that's more like "started 25 years ago". Very little of the original Python 1.0 code exists (especially given the great renaming when the "Py"/"PY"-prefix occurred.)

I like to think of the thousands of developers involved. ;)

For example, assuming Instagram uses gcc to build Python or any of the other components, gcc started in 1987.

Parts of glibc have copyrights dating from the 1980s, like netinet/tcp.h Copyright (c) 1982, The Regents of the University of California .

<comment><USER17> Of course ...

</comment></comment></comment><comment><USER19> If any Instagram people are reading this, please for the love of all that is sane, please I beg you add some kind of progress indicator for your API.

3 weeks in, I find myself loading my app's API client page to see if it's still stuck in a greyed out "go live" mode.

I've got an "Instagram API" search saved for twitter and StackOverflow to check checking if anyone else gets to slip through but others struggle just as much.

Just a little transparency and predictability is all that we ask for.

</comment><comment><USER20> Wish they would share some of that profiling code...

</comment><comment><USER17> I am digging into a gnarly bug in thousands of lines in python 2.6 right now and, well, a custom cProfile, C types support and auto-reporting sounds ... Lovely :-)

But I _know_ that they will have their rough edge cases and developers banging their heads on the desk making this custom code for their needs.

But the grass does seem greener today :-)

</comment><comment><USER21> Is Pypy used?

[http://speed.pypy.org/](http://speed.pypy.org/)

</comment><comment><USER22> I wonder if they looked into using existing APM solutions before building out the profiler and monitor</comment>


Better Excel charts - <AUTHOR> https://datanitro.com/blog/2013/6/4/Better_Excel_charts/

<comment><USER2> Not that I'm saying Excel's graphing is excellent, but the graphs at <https://datanitro.com/blog/assets/img/chart3.PNG> are a bit of a cheat since there's very little customization done to the Excel graph.

That may be intentional, but needs to be noted.

<comment><USER3> Another thing worth mentioning is _how_ the plots were made. Here, the author seems to have just _taken screenshots from MS Excel, and not actually exported anything_ to a portable format. Even the jagged, choppy Excel graphs look fairly smooth when exported as a .PDF file (as Excel _does_ save the vector data for smooth curves) or another comparable _vector_ format.

Specifically, in the author's first example (the exponentially decaying sinusoid), viewing that graph __in MS Excel __will always appear jagged and pixellated. However, if you were to export the chart as a .PDF, the aliasing artifacts would completely disappear (or at least be comparable with the Python-rendered example). I use this technique when I make some quick charts/graphs in Excel and want to include them in a LaTeX document. You can move a chart/graph to it's own full-page "worksheet", and then Save As a PDF file. Since the PDF output is in vector format, it works nicely with LaTeX documents (as you can use \includegraphics{} natively with .PDF documents), and scales well to any size without artifacts.

That being said, there is one thing I do agree with here: the way MS Excel renders graphs/charts when editing them is pretty horrible. You can, however, get around the issue by choosing an appropriate output format (you might just have to zoom in a lot when editing to avoid the aliasing temporarily).

<comment><USER4> > That being said, there is one thing I do agree with here: the way MS Excel > renders graphs/charts when editing them is pretty horrible. You can, > however, get around the issue by choosing an appropriate output format (you > might just have to zoom in a lot when editing to avoid the aliasing > temporarily).

The thing is, there's no excuse for that. Excel graphs should be good by default. Same with the OP's issue. The amount of time I've wasted pretty-ing up an Excel graph is crazy. DataNitro looks great. Shame it's Windows only though...

</comment></comment></comment><comment><USER5> mandelbrot in excel: [http://fpgacomputing.blogspot.com/2007/10/mandelbrot- set-in-...](http://fpgacomputing.blogspot.com/2007/10/mandelbrot-set-in- excel.html)

</comment><comment><USER6> I downloaded datanitro - seems promising, but I'd like to see more case studies / tutorials.

<comment><AUTHOR> Thanks for trying it out!

We have some more examples on our blog: <https://datanitro.com/blog/>

</comment></comment><comment><USER7> I may be wrong here but shouldn't graphs like the one showing the stock price of Apple start at 0.00?

Te graph starts at 300 on the y-axis.

If this is true the excel chart may be better in that specfic case.

</comment><comment><USER8> Obviously no graphical tweaks were made on the excel graph.</comment>


Show HN: Selenium script for ordering a new bus pass - <AUTHOR> https://github.com/arecker/busbot <comment><AUTHOR> Here is a gif of it in action: [https://zippy.gfycat.com/ImpossibleIncredibleAnchovy.webm](https://zippy.gfycat.com/ImpossibleIncredibleAnchovy.webm)</comment>


Pythonic Java - <AUTHOR> https://gist.github.com/1725650

<comment><USER2> I thought that looked pretty nice, til my eyes drifted off to the right. Then my head exploded. Fun idea, though...</comment>


Strange paring rumour: rim and dropbox - <AUTHOR> http://www.shalomlife.com/business/15749/rim-possibly-looking-to-acquire-dropbox/

<comment><AUTHOR> No source sighted,</comment>


What We Know About the Voynich Manuscript (2011) [pdf] - <AUTHOR> http://www.aclweb.org/anthology/W11-1511?notdup <comment><USER2> _Knight & Reddy on the Voynich, & the limits of statistical analysis…_

[http://www.ciphermysteries.com/2013/03/09/this-week-a- talk-a...](http://www.ciphermysteries.com/2013/03/09/this-week-a-talk-at- stanford-on-the-voynich-manuscript)

</comment><comment><USER3> I was under the impression that there was a fair bit of statistical evidence for this being not-a-hoax, but this article showed that there was less than I thought. Also, the explanation of why people thing this is not-a-hoax was quite unsatisfactory, basically saying "one particular way of explaining this as a hoax is not very convincing".

Why do people think this is not a hoax? "4OFCC89 4OFCC89 4OFC89 4OFC89 4OFCC89 E89." seems like something a 5 year old would make up. Also, the unrealistic drawings.

<comment><USER4> I believe Gordon Rugg is on the right track:

[http://www.scientificamerican.com/article/the-mystery-of- the...](http://www.scientificamerican.com/article/the-mystery-of-the- voynic-2004-07/)

"SciAm, 2004: The Mystery of the Voynich Manuscript

New analysis of a famously cryptic medieval document suggests that it contains nothing but gibberish"

He showed how easy were to produce new gibberish texts with the same properties using the device of these times.

</comment></comment><comment><USER5> See also: [https://www.nsa.gov/about/_files/cryptologic_heritage/public...](https://www.nsa.gov/about/_files/cryptologic_heritage/publications/misc/voynich_manuscript.pdf)

<comment><USER6> Good to see them working on something worthwhile.

</comment></comment><comment><USER7> Last thing I read bout it was in the Guardian: [http://www.theguardian.com/books/2014/feb/07/new-clue- voynic...](http://www.theguardian.com/books/2014/feb/07/new-clue-voynich- manuscript-mystery)

They seem to think it has Mexican origin</comment>