Gallery of programming UIs - <AUTHOR> https://docs.google.com/presentation/d/1MD-CgzODFWzdpnYXr8bEgysfDmb8PDV6iCAjH5JIvaI <comment><USER2> Expected to see TUI (Terminal UI) IDEs here (the likes of DBase/Foxbase/Foxpro/etc). Disappointed, because they were hugely used "programmer interfaces" for a long time and influenced GUIs when they came up.

Heck, a lot of retail TUIs still run on them (and some of them are in process of being changed to "web apps" bypassing desktop apps). They were yesterday's full stack (design a database, build forms, run CLI commands, write OO code, package and distribute - all in one shell).

I think the post should be titled "programming _GUIs_ " and not "programming UIs".

<comment><USER3> *> TUI (Terminal UI) IDEs here (the likes of DBase/Foxbase/Foxpro/etc).

Don't forget the classic DOS IDEs, such as QBasic or Turbo Pascal / Turbo C. The latter were based on a very nice framework named "Turbo Vision".

<comment><USER4> my first programming class (high school, 2008) used Borland Turbo Pascal. it was honestly a very pleasant user experience.

</comment></comment></comment><comment><USER5> Currently, Google Drive is telling me: "Wow, this file is really popular! It might be unavailable until the crowd clears. Try again." (Page title: "Too Many Requests")

I didn't even know Google Drive had a throttling mode.

<comment><USER6> _I didn 't even know Google Drive had a throttling mode._

Right. That seems like something from the era of 1990s hosting services with very limited capacity.

<comment><USER7> To be fair, Google Docs' core offering is live collaborative editing, not 'being a CDN'. Sure, there are ways they can support each at different times if they really wanted to, but it seems perfectly reasonable for them to say that when it gets to an N that they'd have to put significant engineering effort into supporting, that that's not what it was designed for, and that if someone wants CDN behaviour do that they can always export the document and put it on an actual CDN

<comment><USER8> wow so a platform with a robust sharing capability is not designed for certain 'types' of sharing. So the user has to be aware the internal implementation of each google cloud service and use them accordingly. I say this scenario is acceptable for a startup offering. Not so for one of the most concentrated comp sci engineering org.

Additionally, this is Google Slides. So sharing is inherent in the name of the product

</comment></comment></comment></comment><comment><USER9> As requested, here is a PDF: [https://drive.google.com/file/d/1RPX_9u01MEU- QDWU4h-90QF9XqZ...](https://drive.google.com/file/d/1RPX_9u01MEU- QDWU4h-90QF9XqZo7PvH/view?usp=sharing)

<comment><USER10> Thank you!

</comment></comment><comment><USER11> I'm missing a lot of the ones I used. Though most of them weren't that different from normal texteditors in a terminal. Well, they were actually editors in a terminal...

Cobol on an IBM AS/400

RPG also on an IBM AS/400 [https://en.wikipedia.org/wiki/IBM_RPG](https://en.wikipedia.org/wiki/IBM_RPG)

Devpac Assembler [https://en.wikipedia.org/wiki/HiSoft_Systems](https://en.wikipedia.org/wiki/HiSoft_Systems)

STOS Basic [https://en.wikipedia.org/wiki/STOS_BASIC](https://en.wikipedia.org/wiki/STOS_BASIC)

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

<comment><USER12> The Amiga version of STOS, AMOS, was nice and quite popular. Wasn't as fast as Blitz Basic II though.

There were some interesting "multimedia authoring systems" on the Amiga which might warrant inclusion, such as Amiga Vision ([https://www.youtube.com/watch?v=u7KIZQzYSls](https://www.youtube.com/watch?v=u7KIZQzYSls)) and Scala ([https://www.youtube.com/watch?v=k20Wvlqb96g](https://www.youtube.com/watch?v=k20Wvlqb96g))

<comment><USER13> The modern "descendants" of the latter could be said to be Hollywood, which is alo available on non-Amiga platforms:

[http://www.hollywood-mal.com/screenshots.html](http://www.hollywood- mal.com/screenshots.html)

</comment></comment></comment><comment><USER14> Accuracy nitpick:

For the record, in 1997 it was still DrScheme - it wasn't renamed to Racket until 13 years later. And it didn't run on OS X, because OS X was still 4 years away. Also, IIRC, most the really interesting UI that features in that screenshot didn't exist yet - it was just the file editor on top and the REPL on bottom.

</comment><comment><USER15> It's missing the highly influential Delphi, which was the precursor to .NET

<comment><USER16> It sure is, as well as it's powerful brother, Borland/Inprise C++ Builder, two IDEs that definitely deserve a spot on this list.

</comment></comment><comment><USER17> Impressive! However, no mention of Oberon or BlackBox; that's a serious omission. [http://fruttenboel.verhoeven272.nl/Oberon/index.html](http://fruttenboel.verhoeven272.nl/Oberon/index.html), [https://github.com/pdewacht/oberon-risc- emu](https://github.com/pdewacht/oberon-risc-emu), [http://blackboxframework.org/index.php?cID=home,en- us](http://blackboxframework.org/index.php?cID=home,en-us)

</comment><comment><USER18> It is mind-blowing when you have some sort of idea of how complex an endeavor it is to create programming IDEs and UIs, and to see in one document how many man-hours must have gone into them and their iterations over the years.

<comment><USER19> This is also something that I find very impressive. Everywhere you look, the same thought comes up. All these buildings in the city have been built by someone sometime with so much effort. Then again, I think: maybe not so surprising after all if you consider that 100bn humans have ever lived. That's a lot of man-hours available there

</comment></comment><comment><USER20> No Klik & Play?! It was the reason I can say I was building and distributing my own games back in 5th grade!

No Lego Mindstorms!? I was building Robots with six degrees of freedom in middle school!

<comment><USER21> I had Klik & Play back on Windows 3.1! (And then later The Games Factory on '95.) It was great for a little while but I rapidly got to the point where it felt like it was getting in my way rather than making things easier.

I /wish/ I'd had Lego Mindstorms, always wanted some but we could never afford it.

<comment><USER22> TGF was definitely what got me started in programming as a kid. Super intuitive to learn and use before I was 'ready' to use a text-based language.

</comment></comment></comment><comment><AUTHOR> This has been posted before ([https://news.ycombinator.com/item?id=14290909](https://news.ycombinator.com/item?id=14290909)) but I think the list has been updated since then.

</comment><comment><USER23> It's interesting how you see the same idea pop up in different forms over the years.

Two they missed: Lazarus (based on Delphi) and Qt. I've dabbled with Lazarus, people who use it a lot tell me it's great. I use Qt professionally and it's the most enjoyable way of building GUI applications that I've found.

<comment><USER24> Yes, Lazarus is decent. Others they missed from the client-server GUI tools are PowerBuilder and Gupta Technologies' SQLWindows (one of the first GUI development tools for Microsoft Windows):

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

I didn't like PowerBuilder myself. But Delphi and Visual Basic were more easy to understand and still powerful. Did some work in both.

</comment></comment><comment><USER25> Working link to (I hope) the same document: [https://docs.google.com/presentation/d/1MD- CgzODFWzdpnYXr8bE...](https://docs.google.com/presentation/d/1MD- CgzODFWzdpnYXr8bEgysfDmb8PDV6iCAjH5JIvaI/preview#slide=id.g1da0625f1b_0_56)

<comment><USER9> Correct, that's the slideshow version. Let me know if that isn't working and I'll post a PDF snapshot

<comment><USER26> Please post the PDF so its downloadable

<comment><USER9> [https://drive.google.com/file/d/1RPX_9u01MEU- QDWU4h-90QF9XqZ...](https://drive.google.com/file/d/1RPX_9u01MEU- QDWU4h-90QF9XqZo7PvH/view?usp=sharing)

<comment><USER26> Thanks very much. Web version (incl. download links) struggles for me in primitive Australia

By the way another worth adding IMO (as it has serious industry use and traction) is Grasshopper (a plugin for Rhino) - focussed on 3d modelling. Very common in Architecture and design fields

</comment></comment></comment></comment></comment><comment><USER27> I still want code bubbles[1] in pretty much everything. So nice for exploring code - you don't necessarily care about _whole file X_ , just the chain of code paths you're currently navigating.

[1]: [https://docs.google.com/presentation/d/1MD- CgzODFWzdpnYXr8bE...](https://docs.google.com/presentation/d/1MD- CgzODFWzdpnYXr8bEgysfDmb8PDV6iCAjH5JIvaI/preview?slide=id.g1d7c11dd1b_0_630)

</comment><comment><USER28> Lively!

LivelyKernel (2008): [https://www.lively-kernel.org/](https://www.lively- kernel.org/)

lively.next (2017): [https://lively-next.org](https://lively-next.org)

cloxp (2015): [http://cloxp.github.io/cloxp- intro.html](http://cloxp.github.io/cloxp-intro.html)

<comment><USER9> Hi Robert! I thought (perhaps incorrectly) that Lively was largely the same programming experience as Squeak, just in the browser. Do you have any screenshots showing new programming experiences in lively.next or cloxp?

<comment><USER28> Personally, I think the interaction model is closer to Self than to Smalltalk. A walk-through of building a morphic app is here: [https://lively- next.org/doc/todo-list-tutorial.html](https://lively-next.org/doc/todo-list- tutorial.html)

Lively also got some influence from Emacs in terms of integrating tooling and support for remote development. One example, connecting to another webpage and modifying it via lively: [https://www.youtube.com/watch?v=gbp30e_QYvY](https://www.youtube.com/watch?v=gbp30e_QYvY). Apart from JavaScript, it is easy to integrate other languages as well, e.g. you can connect to a running Python process via [https://github.com/LivelyKernel/lively.py](https://github.com/LivelyKernel/lively.py)) and then use workspaces and file editors inside of Lively to modify and run Python code. This stuff is based on a generic RPC mechanism that connects Lively worlds and other runtimes: [https://lively- web.org/users/robertkrahn/2015-06-12_l2l-map....](https://lively- web.org/users/robertkrahn/2015-06-12_l2l-map.html).

cloxp is following more a traditional Smalltalk-model, the core component is a system browser for Clojure namespaces.

</comment></comment></comment><comment><USER29> At one stage on the eve journey they were showing a sort of wiki/database thing that I wanted to use very much. It seemed like it'd be fantastic for iteratively organising the kind of information you encounter in your day to day life. Unfortunately that version of eve never saw the light of day as far as I know. Does anyone know of anything that works similarly?

<comment><USER30> It's here if you want to poke at it: [https://github.com/witheve/eve- experiments/tree/af13f8d5f8a5...](https://github.com/witheve/eve- experiments/tree/af13f8d5f8a537d22c459f3e69e39b2736b16384/experimental/cardwiki)

<comment><USER29> Amazing, thanks.

</comment></comment></comment><comment><USER31> Am I the only one who looks at the DEC VT05 from 1970 and thinks that it still looks cool? I guess it's because I was 5 or so when Space 1999 was on, and everything looked like that, but I think there's something timeless and classic about the lines of the design.

(Waits for someone from HN to say that one is still their main terminal as they eschew software terminals, etc!)

<comment><USER32> A lot of these look cool to me. I wonder how many of the environments could be brought up in a VM?

</comment></comment><comment><USER33> They forgot: [http://move.rupy.se/file/logic.png](http://move.rupy.se/file/logic.png) (2005)

You can download the program here: [http://rupy.se/logic.jar](http://rupy.se/logic.jar)

</comment><comment><USER34> I made one in 2013 that broke documents into tiles along grammatical boundaries that could be dragged around like app icons on smart phone home screens: [https://youtu.be/tztmgCcZaM4?t=1m25s](https://youtu.be/tztmgCcZaM4?t=1m25s)

</comment><comment><USER35> I miss WYSIWYG UI design IDE's. One can waste sooo much time fiddling with browser UI's to get it to work right on different browser brands/versions/sizes. It's a time sink that must cost the world billions. Can't we have a WYSIWYG browser standard instead of client-side-auto-flow crap?

Most internal work-related projects don't need "responsive" (resizing) anyhow; and the server could re-calc widget sizes & spacing if needed for small screens such that you don't need a fat client to manage flow engines. And they waste screen real-estate: WYSIWYG was more compact. I could point to the screen and tell it EXACTLY where to drag somebody off my lawn ;-)

<comment><USER36> How would that work? The developer would have to generate and approve a rendering for every permutation of width, height, and pixel density?

That may have worked back when everyone was using an 800x600 CRT, but it sounds unfeasible today with so many devices and orientations to consider.

<comment><USER35> You have to do such testing now with JS/DOM-based resizing. The only real difference is that it's done on the server side, which simplifies things because you have only 1 rendering engine instead of say 50 client versions. And, often 2 sizes are usually fine, and 3 if you have a big audience. And it can increase the general resolution (magnification) to fill the current screen. JavaScript resizers, such as bootstrap often do similar now: you reach a threshold before they reshuffle, and in between the thresholds, they just multiply width by a constant factor to fill the screen. And bootstrap is buggy and inconsistent.

</comment></comment></comment><comment><USER37> Thanks for posting this! This is the kind of content I love to see on HN.

Wow, Visual Basic... It takes me back to my AOL proggie days!

<comment><USER38> If you're feeling nostalgic - just create some VBA, amazing how it's hardly changed... This picture taken from Word 2016 a few seconds ago: [https://i.imgur.com/w3qX8Oa.png](https://i.imgur.com/w3qX8Oa.png)

<comment><USER39> Indeed VBA is a very curious phenomenon. It is cool from the retro-lover point of view (and nostalgia makes me enjoy having to code it occasionally in the real life) yet a horrible atavism from the modern developer point of view. The built-in code editor is not much smarter than Notepad is and the language itself is a ridiculous cargo-cult-level OOP imitation with no real OOP nor functional (wouldn't these be of great use in Excel?) concepts, just a slightly face-lifted QBasic capable of defining simple algorithms and interfacing native code. I can hardly understand why it still hasn't been phased-out and replaced with Python or something like that.

<comment><USER40> Yet despite all that VB6 and VBA are very productive, inexperienced users can get things done and experienced users can get things done quickly.

<comment><USER39> Why? It (VB6) was the first language I've learnt and I have had a lot of fun coding it as a kid (so I can think in it and have no bias against it) yet I don't understand how can it be considered productive or any good at all compared to Python or even JavaScript. One can probably say that Python and JavaScript are more complex and harder to learn - I would disagree: everything you can code in VBA can be coded in Python or JavaScript in the same manner, with the same simplicity and ease, conscious usage of concepts that can be considered advanced and/or tricky for non-programmers to undetsatnd is optional. What part other than the fact it doesn't ever change or that it reminds them about their childhood actually makes people like VBA?

<comment><USER41> It was the one tool there that I got a warm "man, I could crank some code with that". All the others were cognitively heavy and I could just feel the mental effort. It has a laser like focus on getting a usable app into a user's hands with minimum fuss - wysiwyg and zero pretension.

Drop a button, double click, cursor will be at correct location in generated hook, write your code code, ship it. The experience in Python/js just can't compete to that.

I sure have complained about VB and for certain types of code it would be a nightmare but I've also shipped it. It gets something right that the mathematisation of programming misses time and again and is in denial that it matters.

</comment></comment></comment></comment></comment></comment><comment><USER42> PSA:

The last time I opened this presentation there were a bunch of speaker notes with incredibly insightful additional details and trivia attached. A picture might be a thousand words, but the notes added insightful context that the picture couldn't add itself.

If anyone can get in touch with the owner of this document, please let them know the speaker notes have been lost. They really need to be re-added!

Unfortunately I didn't download a copy of the old version D':

<comment><USER9> I think I moved the speaker notes into the body of the slides, but the doc is so swamped I can't get in to see! Perhaps I dropped some in the process. I'll look into it. If you can remember anything in particular that is missing please let me know.

<comment><USER42> I was just able to check. I unfortunately don't remember what the speaker notes said exactly, I fuzzily recall there being multiple lines.

I've searched a couple of HDDs for old copies; no go.

</comment></comment></comment><comment><USER43> A lot of grid style environments. Unless I somehow scrolled past it, the missing big one is 'Excel'.

<comment><USER44> First slide says "Not covered: spreadsheets".

Edit: however, a little more recognizion to spreadsheets would have been nice, since some of the UIs are so evidently rooted in that metaphor

</comment></comment><comment><USER45> Mirror it as HTML / PDF please.

<comment><USER46> You have the option to download it as a PDF when you click on the little gear icon in the bottom left corner of the screen

</comment></comment><comment><USER47> Not sure if this would count but I'd say some of the software that implemented Shlaer-Mellor OOA and code generation tools of the late 80s/early 90s might be included here too. Unfortunately can't find a great screenshot other than these:

[https://www.edrawsoft.com/images/shapes/soft- shlaermellor.pn...](https://www.edrawsoft.com/images/shapes/soft- shlaermellor.png) [https://www.edrawsoft.com/solutions/shapes/shlaer-mellor- ooa...](https://www.edrawsoft.com/solutions/shapes/shlaer-mellor-ooa.png)

</comment><comment><USER48> While we saw there some Smalltalk development UIs, I was clearly missing some 'modern' Visualworks screenshot with the classic 4 slot upper part and the large code window below (similar to the System Browser on slide 3):

[https://1.bp.blogspot.com/-XO7l9e-ukCI/UKSshW0IKRI/AAAAAAAAF...](https://1.bp.blogspot.com/-XO7l9e-ukCI/UKSshW0IKRI/AAAAAAAAFDo/mMADJxPs6Bc/s1600/VW_ClassBrowser.png)

</comment><comment><USER49> Am I missing something or would this be a lot easier to read if it were organized somewhat chronologically?

I say somewhat since era of main use is more important than initial year of release.

<comment><USER50> It would be... but then the author would have to try and sort this mess.

</comment></comment><comment><USER51> A bit of a plug, but for my senior project, my team is working bringing Patchworks (slide 80) to Atom. It's currently not open source (but will be after completion of the project). We are working with an author of the original paper. [http://austinhenley.com/pubs/Henley2014VLHCC_Patchworks.pdf](http://austinhenley.com/pubs/Henley2014VLHCC_Patchworks.pdf)

</comment><comment><USER52> I came across the Alfa proof language recently (precursor to Epigram and Agda). Had this neat natural deduction editor: [http://www.cse.chalmers.se/~hallgren/Alfa/Tutorial/ndstyle.h...](http://www.cse.chalmers.se/~hallgren/Alfa/Tutorial/ndstyle.html)

</comment><comment><USER50> I guess if you're just trying to show interfaces and not every language this is ok... but if you're trying to show every languages interface there are tonnes missing. Here are a few I used. HP Basic (~1974-1980ish) Autolisp (~1986-1995) Turing (~1989-2000)

</comment><comment><USER53> I've never seen so many examples and variations of Jackson Structured Programming!

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

</comment><comment><USER54> Interesting how some UIs appear to be limited either to education, end-user programming, or professional software development, and others (e.g. Smalltalk) strive to be universal and work as an integral part of the OS's user interface.

</comment><comment><USER55> Nice set of pictures.

I was surprised not to see two things about Common Lisp: Symbolics's Genera UI for software engineering, and the modern Paredit editor methodology for Lisps.

<comment><USER56> Yeah it would have been nice to see Genera. It was interesting and distinctive.

It does show SK8, which, although it's not obvious from looking at it, was a Lisp environment.

It was implemented in Common Lisp--specifically Macintosh Common Lisp, which is the direct ancestor of Clozure Common Lisp--on the pre-OSX Mac system. That's sort of obvious if you look at the menubar in Slide 7.

The ScriptEditor shows a snippet of SK8Script, which was the first working implementation of AppleScript. SK8 compiled SK8Script to Common Lisp, and thence to native code. The runtime underneath was Macintosh Common Lisp, and you could open a Lisp listener window or editor window if you wanted, and work directly in Lisp.

The funny-looking window design has a practical purpose: it doesn't look like any other widely-used window design, which means that when you used SK8 to create a Mac application, the SK8 tools always looked distinct from all of the application windows that were under development.

The funny-looking windows are notable in another way: their non-rectangular outlines required a custom code resource (a WDEF), which you could write in Lisp with MCL.

As with all of the other environments illustrated in these slides, there are lots of details that are not obvious from the image. This sample screen shows someone in the middle of constructing a working giant scrollbar by snapping together boxes and arrows and editing scripts attached to them.

SK8 was very direct-manipulation-oriented. You could do a lot of stuff by dragging objects onto the screen, snapping them together, and opening inspectors to edit visual properties, event-handlers, and attached behaviors. You could grab an arbitrary screen object and drop it into a message box to get an expression that, when evaluated, yielded a reference to the dropped object.

It did a lot with containment--for example, you could put objects on the screen by adding them to a container called the Stage, and there was a containment hierarchy that routed events to handlers. The model was extremely flexible; for example, you can see in the Script Editor that the programmer wants an event to set the fillcolor of rj1 to green, but Dave Yost (one of the SK8 authors) used to like to demonstrate setting the fillcolor to a Clint Eastwood movie, which would then begin playing in the background of the targeted object.

<comment><USER57> Hey Mikel, are the Sk8 sources/binaries anywhere? Is it possible to run Sk8 nowadays if one has access to hardware running classic MacOS?

<comment><USER56> There seems to be a copy of one of the technology releases here:

[https://www.macintoshrepository.org/2625-apple- sk8](https://www.macintoshrepository.org/2625-apple-sk8)

I haven't downloaded it and looked at it.

One of the slides at that URL has Dave Yost's Clint Eastwood fillColor displayed in it. :-)

I think you can run it as long as you have a PPC machine. Perhaps one of the Mac OS emulators that emulates the PPC could do it, too, if you had the ROM files.

In case you're not familiar with ROM files, the old Mac OS, before OSX, was not really an operating system in the usual sense; it was really a large subroutine library, the bulk of which was burned into ROMs in Apple hardware. Emulators for the old Mac OS need to have working copies of the contents of those ROMs in order to run the Mac OS. ROM files are a little bit inconvenient to come by unless you have an old working Mac and a tool for copying the ROMs.

Way back in 2004 I proposed an open-source project to build a new SK8-like environment, and even got buy-in from some of the original developers and users of SK8. Then I got terribly sick and didn't work on anything at all for a couple of years. When I finally began to work again, it was with a lot less energy and ambition than I'd had before.

<comment><USER58> Apple made the source for SK8 available, and someone has posted it on GitHub:

[https://github.com/waywardmonkeys/apple_sk8](https://github.com/waywardmonkeys/apple_sk8)

<comment><USER56> Nice; thanks!

If you want to build it you'll need a working copy of MCL and a PPC mac. The requirements may be slightly narrower than that. SK8 had some low-level bits that might rely on some details of the Mac System version or hardware. I don't rememberenough of the details anymore, but you might need to try a few different PPC models and system versions. System 7 or 8 is probably a decent bet, as is any mac hardware that was shipped with it.

</comment></comment></comment></comment></comment></comment><comment><USER50> I didn't see any shell programming either...

</comment><comment><USER8> wow Google can't even deal with a butt out cordial HN hug? Really reflects well for their cloud offerings... sheesh

</comment><comment><USER59> They should include sublime text, writing at many places at the same time sounds weird yet it is so useful.

<comment><USER60> If I'm correct TextMate was first using multiple cursors before sublime text came, but yes, sublime text has such a versatile UI!

</comment></comment><comment><USER61> Wow.. Google Drive got swamped!

</comment><comment><USER62> No Delphi? No Visix Vibe?

</comment><comment><USER63> no visual studio?

borland turbo range?

<comment><USER64> VS was in there. +1 for Borland, I loved their C++ debugger.

</comment></comment><comment><USER65> I missed Visual Studio and C/Java Builder.

</comment><comment><USER66> Shameless plug: [https://medium.com/@kloudtrader/private-beta-and- kloudtrader...](https://medium.com/@kloudtrader/private-beta-and-kloudtrader- aural-c4a8561f70d0)

Trying to build a better programming environment and platform for algorithmic trading

[http://KloudTrader.com](http://KloudTrader.com)</comment>


Should we use a sound/jingle when users arrive on our site or open our app? - <AUTHOR> http://ux.stackexchange.com/q/30359/13689

<comment><USER2> The question might as well be edited to read, "Should we drive away potential customers by playing unwarranted sounds upon arrival?" surely they can't be serious?

<comment><USER3> Fully agreed! Personally, I'm really annoyed by the Skype login sound that's impossible to disable in the Android app.

</comment></comment><comment><USER4> Please, dear ${DEITY}, no.</comment>


Beam Me up Some Cash (1999) - <AUTHOR> http://www.halplotkin.com/cnbcs029.htm

<comment><AUTHOR> Interesting quotes:

"A PayPal user might, for example, use her PDA to beam her share of a lunch tab to a colleague with an infrared-equipped PDA."

"There are about three to four million PDAs in circulation that can make use of the PayPal software."</comment>


"What if every news site in the country erected a paywall on the same day?" - <AUTHOR> http://www.niemanlab.org/2011/04/call-it-the-new-iron-curtain-slovak-media-erect-a-nationwide-paywall/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+NiemanJournalismLab+%28Nieman+Journalism+Lab%29&utm_content=Google+Reader <comment><USER2> I live in the USA. I'd really like to see this tried.

First, if it were _anything_ other than "The Internet", this would almost certainly be considered a price-fixing cartel. I'm guessing a unified paywall would trigger a lot of lawsuits from public interest groups, and maybe even "The Authorities".

Second, even though it's "The Internet", and even in the USA it might not be considered price-fixing for whatever unearthly reason a scaredy-cat judge might come up with, I'd like to see the response. This would be a huge incentive to create new, free or ad-supported sources of journalism, or at least journalism-like content. Anyone with a Droid could potentially become a reporter.</comment>


Mockups To Go - User Contributed Compositions (Balsamiq) - <AUTHOR> http://www.mockupstogo.net

<comment><USER2> The title lead me to believe that I can design my own "components" as in more arrows, different types of charts etc. Instead this only allows you to share what I would call "composition of built-in system components".

In other words, you can put two boxes together and share that, but you still can not create a pentagon.

<comment><AUTHOR> ran s/components/compositions/ on the headline

<comment><USER2> That's better.

So how about them, custom components? :-)

Yesterday I played with balsamiq to create a wizard flow-chart and found myself in a need to have a straight left to right arrow which does not seem to be possible. I ended up using the curved arrow and I think it turned out looking even better than a straight arrow would, but the lingering desire to have more control over the document has remained.

Overall I think you're onto something really big here. It amazing how much easier it is to perceive the pseudo-hand-drawn boxes compared to absolutely accurate shapes.

<comment><USER3> Hi there DenisM, Peldi here from Balsamiq.

Re: arrows: there's a little slider in the floating pop-up which lets you choose the curvature of the arrow. If you stick it in the middle the arrow will be straight: <http://www.balsamiq.com/products/mockups/help#pi>

Re: custom components. In order to keep the app as simple as possible, I have been telling people to use the image import feature for it: <http://www.balsamiq.com/products/mockups/help#images> \- just draw what you need however you want to, and bring it in as an image.

Thanks for the feedback!

<comment><USER2> The best I could do is this, and the tip of the arrow is dislocated: <http://screencast.com/t/AWBzNtwG>

Yes, I've seen the pictures-as-controls suggestion. Maybe I should try it more, but it seems like won't be able to create my own controls with text fields and other parameters etc.

</comment></comment></comment></comment></comment><comment><AUTHOR> Announcement @ <http://www.balsamiq.com/blog/?p=617>

</comment><comment><USER4> Great use of Posterous :)</comment>


The Social Life of Small Urban Spaces - <AUTHOR> http://www.kottke.org/09/03/the-social-life-of-small-urban-spaces <comment><USER3> great find. absolutely fascinating observation on social dynamics in a small space. i found the physical features that affect the interaction to be particularly interesting (about 7:00 in).

<comment><USER4> "What physical features make space work?" is a very interesting question indeed. It is at the core of research by Christopher Alexander, especially "A Pattern Language" - the book that inspired the pattern movement in software design.

</comment></comment><comment><USER5> Today I walked to the top of Mount Royal in Montreal. It doesn't quite qualify because its about three miles in length, but it does qualify in that its a road (snow/ice covered today) about 20 feet wide. I found it fascinating - <USER2> mix of tourists/locals/dogs/snowboarders/ in the middle of a city.

</comment><comment><USER6> This film was obviously made before skateboarding took off.</comment>


Decentralized internet is planned for Dubai, courtesy of startup Moeco - <AUTHOR> https://techcrunch.com/2017/12/15/pied-pipers-decentralized-internet-is-planned-for-dubai-courtesy-of-startup-moeco/ <comment><USER2> The big challenge, as far as I can tell, is that the typical end user equipment just generally is not suitable. You e.g. want equipment with longer operating distance, and able to bridge multiple networks for example.

My home wifi barely stretches 50m down the road (yes I know they mention Bluetooth, but bluetooth is even worse in this respect). Meanwhile you can get outdoor wifi repeaters within the allowable output in the 5GHz channels in the UK with ranges in the 1km-2km range that are still cheap, and directional microwave equipment with theoretical ranges in the 100km range (major limit there is going to be height - beyond a few km, the curvature of the earth becomes a major hassle unless you can go higher gain).

Without that kind of distance, you need massive penetration to be able to connect users at all, even if you aim to pass data over the open net as soon as you get data to a node that is connected.

I live on a relatively high density London road, and I can typically see maybe 10 networks at any one time when travelling between home and my local train station for example. There'll be multiple devices on each, but with that kind of visibility it'll take a large proportion of users signing up to a service like this before you even start getting any big benefits from it.

I do believe peer-to-peer setups can make sense for this, but unless our smartphones gets massive upgrades in terms of antennas etc., I think building something around higher gain outdoor wifi will be more likely to be viable.

<comment><USER3> I've no issue with what you describe, I will question whether a high density London road may not be representative, anecdotally a foreign guest commented that he was amused by my concept of a busy place, he remarked that even in the busiest places in London his personal space was respected in a way he would not expect in his local village. Peer to peer has loads of potential, I can imagine a combination approach that makes the best of all available spectrum and falls back to a paid access tier if things get bad, this is an interesting area of technology as investment and innovation is less likely to come from the incumbent.

<comment><USER2> Even with 10x the density, you'd need very penetration to be able to create a mesh.

I do agree that peer to peer has potential, but I think as I mentioned it has more potential as a "house to house" than "person to person" thing _unless_ it gets adopted by one of the major mobile networks and pushed very aggressively (e.g. either made compulsory or pushed hard with discounts).

</comment></comment></comment><comment><USER4> Amazing idea, it seems they're implementing Pieter Hintjens' [https://www.indiegogo.com/projects/edgenet](https://www.indiegogo.com/projects/edgenet)

But why a blockchain? How can you even have a blockchain if everything is asynchronous and decentralized?

<comment><USER5> You will have the blockchain _slowly_.

Frankly, I don't see much use in blockchains besides _public_ verifiable high- importance transactions where a significant number of parties does not trust each other, and some may be actively subversive. That is, a public ledger.

For less public cases, mere encryption could suffice, which is much faster. Most communications are between only two parties; they can check each other's key fingerprint via phone or a third party they both trust, if they even bother.

<comment><USER4> You'll have a blockchain, but the outstanding majority of blocks will be orphans and thus lost and invalid. Lots of promises will be broken.

You'll only know a transaction was confirmed after many months -- and before you get a confirmed transaction you may have to issue the same transaction hundreds of times.

</comment></comment></comment><comment><USER6> Sounds cool, but slow. Bluetooth and/or Blockchain are not synonymous with speed.

</comment><comment><USER7> Besides being slow, the local telcos don't even allow VoiP protocols, how will this pass through

</comment><comment><USER8> I'm not sure i understand the benefits of blockchain here...though if they can pull off the mesh aspect of this, then that's really awesome. I wonder though, if the constant "peer hopping" (via bluetooth) won't drain the batteries of mobiles? Then again, if a mesh-like network takes off, maybe antennas can be tuned not to "catch" signals from far off cell towers but rather the next closest mobile...which might require less power? This is not my expertise, so will defer to other experts...Well, i'll say that the idea sounded cool on the Silicon Vallet show, and it still sounds cool in real life...assuming they can pull it off.

</comment><comment><USER9> > Here's the pitch: Remember that scene in the Silicon Valley HBO satire where > they try to create a new Internet by connecting-up Smartphones using > Bluetooth? Yes. I know. But these guys are actually doing it.

I guess this author hasn't heard of FireChat, and others like it:

[https://techcrunch.com/2014/03/20/firechat-for-ios-is-a- hype...](https://techcrunch.com/2014/03/20/firechat-for-ios-is-a-hyper-local- anonymous-chat-network-that-doesnt-need-an-internet-connection/)

</comment><comment><USER10> > non-decentralized

Is there a difference between centralised and non-decentralised?

<comment><USER11> Just the author not fully understanding what he's writing about.

</comment></comment><comment><USER12> I don't know much about Blockchain but what is the benefit of using blockchain for Bluetooth LE network or IoT? If we care about security aren't higher level protocols doing that? AFAIK one of the biggest challenges in IoT field is to reduce network overhead and latency because constrained wireless networks like BLE are slow and not reliable. Doesn't blockchain significantly violate that?

<comment><USER6> I'm not sure how blockchain would fit into the picture? Maybe more of a buzzword soup than actual plans, or blockchain as in mesh network.

<comment><USER13> As I understand, the blockchain is used to track transactions between network providers and users (providers sell network access to users' devices).

</comment></comment></comment><comment><USER14> LoRa is infinitely more reliable.

</comment><comment><USER15> What about phone battery life?

</comment><comment><USER16> Aren't all internets decentralized?

<comment><USER17> Today's internet is more like "equal participation welcome", the decentralization being talked about in the article is at the ISPs level. Rather than having to choose from a few incompetent and monopolistic internet connectivity providers, decentralization would individuals to share wifi hotspots and create a mesh to which you can connect to. Ideally, this would allow people to get rid of blood sucking ISPs and would not be affected by the recent net neutrality disaster or any more of such but practically creating reliable high-speed user-participated decentralized ISPs haven't been possible, but might soon be.

<comment><USER16> Right, but at some point you are going to have to connect to an exchange if you want to access the rest of the internet. How are you going to pay for that connection?

<comment><USER18> IPFS and FileCoin, to the rescue!

</comment></comment></comment></comment><comment><USER19> Call me crazy but if we have this then e-voting becomes easier to do because locality is more inbuilt to the system making fraud harder because you can more easily tie voting to geography/gps. i.e. in an internet based system the votes can come from anywhere but in a system based in the physical world it might be possible to track the votes to a geographic location and if 10k votes come from a building site you can verify those votes are fraudulent as opposed to a massive block of flats.

<comment><USER20> I think that is unlikely. A vote is tied to a person, not a location. That said, I think voting system like Estonia's, where you have a cryptographic key on your ID, is the only correct way to do e-voting.

<comment><USER19> you're still thinking old system. In new system geography is fine because elections are cheap and you can do them weekly/daily. Fraud matters much less because you can't do much damage in a day/week as opposed to the sort of terms we have today. You can also temporarily back to the last known good recent from a particular quadrant/zone. What matters is long-term, persistent fraud and this can be audited against using geography and plausibility.

Sure a tourist can vote in one week but their vote is gone the next week after they fly home. It would be a new paradigm so try not to use the mindset of the old system where elections are expensive and results long-term.</comment></comment></comment>


Copyright Corruption Scandal Surrounds Anti-Piracy Campaign - <AUTHOR> http://torrentfreak.com/copyright-corruption-scandal-surrounds-anti-piracy-campaign-111201/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Torrentfreak+%28Torrentfreak%29&asid=03cabdde

<comment><USER2> Is the lack of comments for this article because this hypocrisy is so commonplace now most people don't even bat an eye when it happens?

I'm not in the Netherlands so I don't know exactly how big of a firestorm it is over there (according to the article it is pretty big) but it seems like if this happened in the US most people would just roll their eyes, sigh and then go on to the next article.

So if the RIAA did something like this (I recall hearing something similar but can't remember any relevant links), what exactly can musicians since they're essentially running everything?

<comment><USER3> Yeah I think people are numb by now...

Yes, over and over again, copyright law has been demonstrated to be, in practice, a cudgel used by the big guys against the little guys and not the other way around. This is, like, the fifth or six instance of copyright violation by the "copyright protectors" that been in the news over the past few years and hardly the most flagrant - someone even plagiarized a pro- copyright press release at one point.

<comment><USER4> This is way worse:

\- copyright protection agency uses music without permission.

\- author of the music discovers this.

\- author complains at protection agency.

\- nothing happens.

\- author tries harder.

\- board member of agency suggests he can make things move, on the condition that he will get a 1/3 cut of the money.

\- the phone call in which this suggestion is made is taped and broadcast on national T.V.

Also, the agency apparently has stated they cannot rule out that other board members behave similarly. That probably was just a not-so-smart statement made in the spur of the moment, but who knows?

This will be discussed in parliament next week.

</comment></comment></comment><comment><USER5> He's suing for little money. At RIAA rates, that would be 250 billion dollars for 10 millions illegal downloads at 25k$ each.

<comment><USER6> Its even worse. BREIN didn't just download it to enjoy it and as a byproduct made it available to others. They _intentionally_ redistributed it with the intent of actually profiting from it financially. I don't usually call music piracy stealing but when the shoe starts to fit...</comment></comment>


Is Peer to Peer Lending a bubble? Why does it exist? - <AUTHOR> https://medium.com/@sri_batchu/bee6b2a45844

<comment><USER2> It's easy to hedge an answer, but I'll risk being provocative (and I'm sure will be down voted despite the rules) and say: Yes it is a bubble. It exists because central banks have pushed interest rates too low which punishes savers. Those who don't want to incur debt to exploit the current environment are desperate for vehicles that will return them favorable results better than (real) inflation (not state reported CPI).

It is easy to believe that the big banks are pocketing a lot of profits having this market mostly locked in. However, if you actually read the blogs of people who were documenting their experience with Prosper and P2P lending over the past 9 years or so, you'll find that because of defaults, the rate the big banks charge for unsecured credit is not that far off from what you need to charge people yourself if you hope to keep pace with inflation.</comment>


Will a guaranteed income ever come to America? - <AUTHOR> http://www.pbs.org/newshour/making-sense/will-guaranteed-income-ever-come-america/

<comment><USER2> "Early polls indicate that more than 45 percent of Swiss voters will support the initiative."

That's an online poll with 1016 votes at the moment.

I'm swiss and can tell you this will get 80% no votes. We voted two years ago if we want 6 weeks of vacations instead of 4 resulting in 66% no votes. Swiss people like to work. We are raised with the believe that work is our strongest asset because we have zero resources.

I tried to talk to ~10 people so far about this topic. No one consider it seriously to even talk about it.

We're just not ready yet.

</comment><comment><USER3> Interesting difference of opinion: "According to the World Values Survey, 60 percent of Americans believe that the poor could become rich if they just tried hard enough. In Europe, however, the number of individuals who hold similar beliefs is only half as large. In Brazil, a mere 19 percent believe that poverty stems from laziness rather than circumstances, connections and luck."

</comment><comment><USER4> Once there is a post-scarcity society then jobs will not be required.

If you can throw in some trash into a "replicator" and have it 3D print anything you want, then what more do you need other than some raw material, shelter, and utilities?

Jobs of the future will be because people want to work for more things, fun, or to help humanity.

The loss of jobs due to automation will hopefully be countered by post- scarcity, we need to invest more into developing the technology to make this happen so that the gap between loss of employment and the lack of needing employment is minimized. Otherwise, things could go downhill very fast and many people will suffer.

[http://www.basicincome.org/bien/papers.html](http://www.basicincome.org/bien/papers.html)

</comment><comment><USER5> I think so. When automation causes vast unemployment, it will become a real issue and people will demand it.

</comment><comment><USER6> You pass a guaranteed income, and/or I will make it my life's mission to automate all your jobs away until you do so.

Your move.</comment>


Ask HN: Do you/does someone you know have a criminal record AND a job? - <AUTHOR>

I'm curious about the story about the search, how they eventually found their job, and whether or not there are "steps to success" that can be handed down to others just completing their cases. Anyone out there with some tips or tricks? Thanks! <comment><USER2> Yes, he got a job as a labourer and has worked his way into the _skilled_ -labour field very quickly and very well.

In certain fields of work criminal records don't affect much at all.</comment>


In 2016, let's hope for better trade agreements – and the death of TPP - <AUTHOR> http://www.theguardian.com/business/2016/jan/10/in-2016-better-trade-agreements-trans-pacific-partnership <comment><AUTHOR> For historical context on trade and society, see the classic (1994) Charlie Rose interview of Sir James Goldsmith on GATT/NAFTA, now that we have 20 years of experimental results, [https://youtube.com/watch?v=wwmOkaKh3-s](https://youtube.com/watch?v=wwmOkaKh3-s)

</comment><comment><USER2> It is hard to convince those traditional countries to join since they have a strong sense of protectionism. Japan and Korea are also facing some difficulties from their citizens.</comment>


Survey says: How to make money on simplicity and innovation, worldwide - <AUTHOR> http://simplicity.laserfiche.com/content/how-make-money-simplicity-and-innovation-worldwide

<comment><USER2> So it's the perceived simplicity, not necessarily the actual simplicity of the company or product that matters. Another way of looking at this might be "clarity" vs "confusion."</comment>


Apple's Predatory Free Trial - <AUTHOR> https://twitter.com/sricola/status/1192400853920911365 <comment><USER2> This might be various things, but "predatory" is not the right term for not allowing the user to benefit from a free promotion when he or she does not want to continue it. They even make clear exactly what will happen, no dark UI pattern involved.

I agree that this is a step back for Apple, we should keep the outrage for things that merit it.

<comment><USER3> Well said.

</comment></comment><comment><USER4> I don't get it.

One seems to be a free trial, the other a paid service. Is the complaint that if you cancel your _free_ trial it ends right away instead of running for a year?

They are _canceling_ the trial - the user wants it to end!

<comment><USER5> The issue here is that Apple has given away an item in the hopes of getting you to subscribe later, but is relying on users making a mistake or forgetting to cancel as opposed to choosing to subscribe. The wording is a bit strong as well, but that's not such a big deal. I would absolutely call this a dark pattern.

<comment><USER4> I will disagree here, a dark pattern is a design that tricks you into doing something you did not want to do.

You have no evidence to support that most users would not prefer the current arrangement where they don't have to come back and resubscribe upon expiration.

Staying subscribed is most likely the most desired outcome for most users. Hardly a dark pattern just because someone wanted to maximize their free time.

Note what the complaint is, that they lose access to the free product ... kind of ridiculous the more you think about it....

</comment></comment></comment><comment><USER6> Ok .. but the user cancelled the free trial. Even then, if they didn't, about a month before the trial ends Apple sends an email (for any subscription, even yearly non-trial renewals). Afterwards, about a week before, they send another reminder. The reality is they're extremely up front with it all, so perhaps we should put away the pitchforks for once Twitter :).

<comment><USER7> They're only upfront about it because chargebacks are expensive...

<comment><USER6> By that logic, people don't commit murder or steal because prison is undesirable. I'd like to think that there's other motives than just 50 bucks for chargebacks (which, as far as I know, can be negotiated with payment providers anyway..)

</comment></comment></comment><comment><USER8> I always thought it was generous when you were allowed to schedule your cancellation of a free trial.

The choice Apple presents a user of a free trial is not predatory, it's just not "very generous". A 1 year trial, though is super generous, even if you can't schedule the cancelation.

</comment><comment><USER9> I'm late to this, but the real point that should be made is that Apple does not allow this functionality for any developer on the App Store, just themselves. Developers have to respect the free trial period even if the user cancels, but not Apple.

As much as I enjoy Apple products, it's very clear this is just another example of the privilege they provide themselves compared to third-parties. It doesn't affect me since I'm not subscribing to any of Apple's service offerings despite using all Apple products, thus it doesn't bother me either, but I can see why some might be.

</comment><comment><USER10> I can try something without an expectation to purchase it. Have you ever tried a sample at a grocery store knowing you won't buy the item, but perhaps down the line you will? That's possible for Apple users too. They were promised a one year trial, not conditional on a purchase.

</comment><comment><USER11> A free trial is intended for you to decide whether or not to subscribe. If you already know you won't, it's not a trial, it's just free, and arguably signing up like that is not acting in good faith.

<comment><USER12> Exactly. If you're telling them that you've already made a decision not to convert to a paid user, then your trial evaluation is already complete. If you'd like to string them along until the last minute, that's your prerogative, but don't expect them to make it easy for you.

That being said, this "1 year free trial" of Apple TV+ is fairly ludicrous. It's more like a public beta because they know that the service doesn't yet have enough content to justify its cost, and the promo users are helping them create the perception of a popular service.

</comment></comment><comment><USER13> How does trial cancelling interface look for other apps? The one from the twitter post looks like cancelling of the paid subscription

</comment><comment><USER14> I just set a reminder for +1 year minus 2 days in my calendar and live happily knowing I'll be notified when the time is right.

<comment><USER15> Yeah, I wanted to comment "Hey Siri, remind me to cancel Apple TV plus on October 31st, 2020".

I wonder when they'll turn Siri to an agent trying to upsell/keep you. Fast forward to the above date:

"This is your reminder to cancel Apple TV plus. But you'll be missing Season 2 of The Morning Show, airing in 4 days. I can offer you a subscription for half price, do we have a deal?"

</comment></comment><comment><USER16> This is not predatory or a dark pattern.</comment>


Why it's a good idea to roll your own CSS Framework (and why I did it) - <AUTHOR> http://antjanus.com/blog/web-design-tips/web-design-elements/why-its-a-good-idea-to-roll-your-own-css-framework/ <comment><USER2> I never got from this article why you should roll your own CSS framework. The real purpose behind stuff like bootstrap is so that you can quickly prototype a site without having to spend a few days writing a CSS framework. Once the prototype is up you can override the styling.

<comment><AUTHOR> I thought I got the point across:

* to allow prototyping of apps to match your own web design so that you'll always be closer to the final product rather than using someone else's work. * to allow faster prototyping of commonly used elements by you (my example was the block-list, comments, feeds, widgets, standard footer). Bootstrap/Foundation does not have specifically tailored elements like that. You may find these externally as an add-on. * streamlined classes/less bloat when it comes to stuff you DON'T use.

I'm not saying "create a custom framework for every project" but rather, create one specific to you and your style.</comment></comment>


Fujitsu Forges Li-Fi-like QR Code Replacement - <AUTHOR> http://spectrum.ieee.org/tech-talk/telecom/wireless/fujitsu-forges-lifilike-qr-code

<comment><USER2> It sounds like the article claim LiFi is superior to QR codes in every possible way.

QR Codes, as a replacement for old bar codes, is a pretty awesome thing, and LiFi clearly wouldn't work for that.

LiFi sounds like a possible replacement for the (arguably) stupid usages of QR Codes, like, "point your phone here, and see what happens", although LiFi would be easier to embed in a hidden way.

</comment><comment><USER3> I believe in this context Li-Fi was either added by the journalist or mentioned to the journalist to make him/her understand the idea better. But this technology is literally just flashing LEDs and reading it with a camera, which turns out to be annoyingly slow. Let's say they use IR (article talks about projector and RGB) to hide the flickering, you still need to put a lamp on every product where I already have a barcode, a price-tag, an information card and whatnot. Then we will put up a massive arrow that says "point your phone here!"

On a monthly basis I see people come up with "innovative" shopping experiences. In fact I personally know 2-3 people who worked on projects like this, but did anyone actually figure out what content to put on the screen? Anyone here ever pointed a phone at a barcode/qr-code for any other reason but syncing up google authenticator?

But let's say we really would like to walk through macy's by staring at our phone instead of looking at the boots. Why not just use something standard and readily available in every phone that matters, like NFC/BTLE?

I understand someone probably got the homework at Fujitsu Labs to innovate and I must admin I have worked on similiar technologies before and it's a lot of fun. But especially because I have seen this idea so many times, but never seen it adapted by a single store, I am skeptical about the existence of the problem.

</comment><comment><USER4> [http://google.github.io/physical-web/](http://google.github.io/physical-web/)

URIBeacons are the future. You don't need to point a camera, it's invisible and works great.

<comment><USER5> URI beacons are pretty interesting. They can indeed replace QR in many situations, but I'm still not 100% sold on it due to privacy and spam concerns.

Those can probably be solved by using a 3rd party service to resolve the URL redirection, but we'll see how it goes.

</comment></comment><comment><USER5> QR codes are:

      *Available right now
      *Widely adopted
      *Vendor-independent
      *Free to implement
      *Very robust
      *Visually distinct

A lot of "QR killers" considered that last point as a disadvantage, and tried to "solve" it by sacrificing robustness. They failed, and most of those codes are now invalid because they relied on a proprietary service.

I think it's actually a strength. You can probably train a monkey to scan a QR. Just _point phone at funny square_ [1]. With this, most people won't even know it's there, so you'll basically need to have your phone out (but you can't even use your phone while scanning for codes, like you can with bluetooth beacons).

This an impressive technology, but it's not going to "replace" QR, and the potential usage scenarios in the article are a little far fetched.

[1][http://lmgtfy.com/?q=how+read+funny+square](http://lmgtfy.com/?q=how+read+funny+square)

<comment><USER6> Even though i couldn't imagine any sane person scanning QR codes, in China they are apparently very popular:

[http://dangrover.com/blog/2014/12/01/chinese-mobile-app- ui-t...](http://dangrover.com/blog/2014/12/01/chinese-mobile-app-ui- trends.html#a-nameinput-qraqr-codes-for-everything)

<comment><USER7> They are, and it's great. Why type in phone numbers or usernames for prospective contacts, just scan the code and you're good.

Honestly, I don't understand why we won't use them back here. If only just for scanning stock WiFi passwords off routers, surely that would be worth it?

</comment></comment></comment><comment><USER8> QR codes seem ripe for disruption, but I am not sure Li-Fi would be the one to do so. Given an object that is illuminated, how would one know if it's Li-Fi enabled? If there needs to be a sign that says 'Li-fi here', might as well go with a QR code, or maybe better would be a more advanced image recognition technology.

I like the possibilities that come with Li-Fi, but it's a long ways from maturity.

<comment><USER9> Thats the cool part. you dont have to know that there is information hidden there. but your devices can detect and make use of that information. such as taking picture, google glass etc.

</comment></comment><comment><USER10> In theory, the same should be possible with IR light instead of the visible one. Many (all?) digital cameras are infrared-sensitive, which is easy to test by just pointing a TV remote at a camera and pressing a button. So one can simply do a morse-ish code in IR and then have an app parse it out.

</comment><comment><USER11> 10 bits per second?

That probably means you'll need to register your URL/vendor/etc. with Fujitsu, since sending a normal-sized URL would be excruciating.

"Here, just aim your smartphone at this for 10-20 seconds."

</comment><comment><AUTHOR> This is going to revolutionize the future of shopping. NO need to enter into a shop. Just point your smartphone camera along the product and get the descriptions. Fantastic..

<comment><USER12> An experience like that is inevitable but it likely won't be through this solution. As it stands, LiFi requires a light source to illuminate a product which isn't exactly scalable. What you're describing feels far more likely to happen through image recognition technology.

LiFi is still a neat idea though.

<comment><AUTHOR> Thanks for clarifying ;)</comment></comment></comment>


Ask HN: Thoughts on Map Marker Algorithms? - <AUTHOR> We're a property related platform, and we're building a map to display property listings to potential tenants. Many of our properties are close together, but clustering is not a great UX. Taking a lot from AirBnB, we're struggling to find a simple way to display listings intelligently on the map - avoiding typical clustering in favour of something more interesting.
Any practical advice on creating a great map UX with a lot of markers/pins?
PS: The platform isn't data centric, so showing all pins isn't necessary for the purpose - a better UI/UX is more important(?). <comment><USER2> I'm using a spiderfier for my map project, which 'expands' the markers when clicked. Here is the Leaflet version I am using: [https://github.com/jawj/OverlappingMarkerSpiderfier- Leaflet](https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet)

</comment><comment><USER3> Something like this? [https://observablehq.com/@d3/hexbin- map](https://observablehq.com/@d3/hexbin-map)

</comment><comment><USER4> Perhaps something like a Heat Map?</comment>


Vindinium is an Artificial Intelligence programming challenge - <AUTHOR> http://vindinium.org/ <comment><USER2> I haven't tried this yet, but based on similar challenges I've participated I'm surprised by the fact that your bot moves by calling an http endpoint. Considering the 1 second move limit, I image it's difficult to time your moves right to guarantee that they arrive on time.

<comment><USER3> I feel the same, I have participated in aichallenge.org before and everything was run server-side, we had a 1 second move limit too, I have not run any starter yet to try it out but seems like using HTTP will have big issues with timing, I would prefer something that connects to a socket and keeps the connection up, would reduce some of the latency of establishing a connection.

Some people created a tcp server for the Ants one that allowed that: [https://github.com/berak/ants-tcp](https://github.com/berak/ants-tcp) I don't remember much of the details, since it was nearly 5 years ago, but it was an awesome thing to participate in.

<comment><USER4> Does the server not respect `Connection: keep-alive` ?

</comment></comment></comment><comment><USER5> "When a player defeats a goblin, he becomes owner of the gold mine and receives one gold per turn. Furthermore, the goblin now defends the mine against other players."

Are we sure we are not the baddies? [https://www.youtube.com/watch?v=hn1VxaMEjRU](https://www.youtube.com/watch?v=hn1VxaMEjRU)

</comment><comment><USER6> Going to write a simple bot when I'm home from work. Who else?

<comment><USER3> I will

<comment><USER5> How long is this going to run?

<comment><USER3> I have no idea

</comment></comment></comment></comment><comment><USER7> "You are welcome to run several instances of your bots at the same time, and more generally to use any measure you see fit to achieve leaderboard domination. Fight!"

Couldn't this be cheesed pretty easily by flooding them with bots working in tandem - pushing to have the highest scoring ones win when they're pitted against each other.

<comment><USER8> If it works the way I expect it to, I think all it would do is push the whole group of tandem bots down. The cheesing wouldn't make them score better against other user's bots.

</comment></comment><comment><USER9> I wonder if it would be a good idea to write a client to enable human players.

</comment><comment><USER10> Past discussion: [https://news.ycombinator.com/item?id=8183392](https://news.ycombinator.com/item?id=8183392)

</comment><comment><USER11> Try to play with the Ruby started, got 404</comment>


HAProxy can block a 100,000-connection-per-second DoS - <AUTHOR> http://haproxy.1wt.eu/10g.html

<comment><USER2> A DoS is usually trivial to stop. Now a DDoS, that would be impressive. I don't need haproxy to stop a specific request or from a specific ip. The kernel routing tables can do that.

<comment><AUTHOR> Yes, for a known IP address you can use the kernel. HAProxy ACLs can match user agents, URLs, referrers, etc.

</comment></comment><comment><USER3> I don't see anything in this article about DoS, where are you getting that from? these are benchmarks against static files, still very impressive but not DoS protection.

<comment><AUTHOR> The section titled "Session setup/teardown rates" talks about using ACLs to block or redirect requests.

<comment><USER3> cool thanks

</comment></comment></comment><comment><USER2> route add ip.address.of.offender reject</comment>


We Can Do Better Than SQL (2019) - <AUTHOR> https://edgedb.com/blog/we-can-do-better-than-sql/ <comment><USER2> The last line here: "like any solution, SQL is facing increasing inadequacy in the support of the new requirements, modes of use and user productivity. It is time we do something about it."

I agree, but I'm not sure the solution is to broadly replace SQL with something like EdgeQL. Graph Databases, BigTables, Document and Object Databases, Large scale key-value lookup tables... there are all kinds of solutions for problems that feel crammed into a SQL context. EdgeQL could be a great one in some scenarios - for example, when you need to do a lot of querying on arbitrary trees.

Another solution is to go as far as the sweet spot of SQL can take you, and then switch over to a programming language (this is distinct from what is _possible_ in SQL, the basis of many SQL programming interview questions)). I suspect SQL compares less favorably in a lot of scenarios that require a pure, single language solution. But may be we should be comparing SQL + Python with EdgeQL + Python (or even SQL + EdgeQL + Python).

</comment><comment><USER3> Any "improved SQL" could take some inspiration from .net's Linq. Some conveniences in Linq compared to SQL:

\- From clause before the select clause. Makes it possible to use code completion in the select clause.

\- Instead of the having clause, you just have a new where-clause after a group-by, which operates on the groupings.

\- let-clauses where you can define expression which can then be re-used in the following clauses.

\- composability, so you can have arbitrary many select/group/where/join/let clauses in any order following the initial from-clause.

</comment><comment><USER4> I am no SQL expert, but I always found it a bit weird that selecting the relationships is a relatively hard thing to do for a relational database.

What I mean is that relationships are at the core of the database, so they should--IMHO--be easy. Instead, JOINS feel like some advanced feature that I always see novices struggle with.

<comment><USER5> IMHO lots of teachers have an absolute horrible understanding of relational databases and SQL. Myself included, until I started working at large financial institutions and read every book by Joe Celko I could lay my hands on.

E.g. using NATURAL JOINs covers about 1/3 of the use cases where students or apprentices are usually fiddling with INNER JOINs or joining relations using WHERE TableA.ID = TableB.ID, and it's syntax is much simpler.

With a well thought out schema, I personally find that NATURAL JOINs covers about 80% of my needs in that respect, and being unable to NATURAL JOIN tables is beginning to indicate well, not a "code smell" but what I would call a "schema smell".

I fully agree. Joining relations in a relational databases should absolutely be simple - and it absolutely can be:

              SELECT col_x, col_y
                FROM TableA
        NATURAL JOIN TableB

<comment><USER4> Thanks for your comment, I actually never heard of NATURAL JOIN, I will have to play with it but it seems very interesting!

</comment></comment></comment><comment><USER6> I am learning Power Query. It's the first Microsoft technology in quite a while that's left a positive first impression.

I'm not particularly crazy about relearning how to do the things I would do in SQL, differently. On the other hand, I feel like some of the straightforward functional language features would be helpful to have in SQL.

I always felt like T-SQL and especially PL/SQL were terrible mistakes, but that SQL was missing something.

Power Query didn't seem to have something like GROUPING SETS, but I was very pleased when it seemed natural to roll my own as a function. SQL (at least the dialects I'm used to) doesn't lend itself to that sort of thing.

</comment><comment><USER7> Discussed at the time: [https://news.ycombinator.com/item?id=19871051](https://news.ycombinator.com/item?id=19871051)</comment>


AnnotateIt and Annotator: a new mode of communication on the web - <AUTHOR> http://blog.okfn.org/2012/04/03/annotateit-and-annotator/

<comment><USER2> I've been trying it out for a few minutes, and there's plenty of room for improvement. 1) I cannot edit a previously highlighted notation (it just shows me the content) 2) My notations do not show up in my Account (->recent notations). Is there maybe just a lag? Is there going to be a central place to organize/manage all notations? Perhaps notations can be combined with catching the URL (a sort of fast bookmarking service, since the data is already there).

I'll be looking forward to see how it develops.

</comment><comment><USER3> I have to admit that I'm pretty skeptical.

People have been talking about web annotators since 1994 and we haven't seen one hit the mainstream yet.

Now, "online bookmarking" was one of those things that failed in 1998 and everybody knew it didn't work until delicio.us proved that it did, but to do so they've got to find the "missing link" that other people didn't find.

<comment><AUTHOR> Just a brief note to say I totally agree! There's a long list of people who've built similar things and failed.

There are two really tough problems in web annotation: 1) changing content and 2) reputation. I freely confess that Annotator/AnnotateIt address neither of these major issues satisfactorily, but work is already underway on problem 1 (assisted greatly by <http://mementoweb.org>), and we're working closely with <http://hypothes.is/> who have assembled the world's experts to attack problem 2.

In short, we're aware of the history, but we think this is an idea whose time has come.

<comment><USER4> No, the two largest problems are the 1. The boil-the-ocean nature of the problem of getting anything like a critical mass going when your ocean is the size of the entire web, and then if you do 2. you will piss off a lot of websites, the only reason you haven't seen this is that none of them have had enough success to rise to that threshold since Third Voice, and relatedly, Microsoft's Smart Tags. The merely technical problems are quite boring in comparison. Changing content is probably barely in your top five and "reputation" definitely isn't.

<comment><AUTHOR> I'm not so sure. I don't think success (whatever that is) depends on a critical mass. In particular, while AnnotateIt has a bookmarklet (and soon browser plugin) use case, it's also possible for it to be useful to individual sites who can use AnnotateIt in the same way that they currently use Disqus.

To address your second point --- well, yes, that's kind of the point. Not to piss people off, of course, but to provide a commentary layer that doesn't necessarily _require_ the consent of the site owners. I don't think that should be seen as a downside of the software.

<comment><USER4> "Not to piss people off, of course, but to provide a commentary layer that doesn't necessarily require the consent of the site owners."

You mean like Hacker News, this very site we're conversing on?

Another problem in your top five is precisely that nobody thinks there's some sort of dearth of places to discuss things without the "consent" of the site owners. Third Voice at least preceded even Slashdot as a big site, let alone everything else, and they could make the argument with some faint trace of plausibility, but now the solution that should have won, did: There's all sorts of aggregators, forums, and more to the real point, _communities_ everywhere. Want another one? Five minutes on any of dozens of free blog sites, free forum sites, free wiki sites, free aggregator sites, bam, another community. There is no missing commentary layer out of the control of the main site, the web has long since created it, refined it, and even moved through several generations of them.

This is a solution searching for a problem, which is a major part of the reason none of these attempts have ever reached critical mass.

</comment></comment></comment></comment></comment><comment><USER5> One quick note: I tried to select something on this page and nothing would happen. I finally figured out that I had to sign up for a service first.

Have you considered creating a bit of javascript that any site can embed on their site that would allow a visitor to annotate? This could be a really powerful channel for getting sign ups. Especially if you partner with some quality sites.

Also, have you considered making it anonymous to start like github:gist? It would be great to test it out without making a commitment of signing up. I.e., "Do I really have to sign up for something, before I even know if it will provide value to me?"

<comment><AUTHOR> "Have you considered creating a bit of javascript that any site can embed on their site that would allow a visitor to annotate?"

Yes, we have. It's there on the front page if you scroll down! <http://annotateit.org/#develop>

"Also, have you considered making it anonymous to start like github:gist?"

Well, you can certainly try out Annotator using the demo at <http://okfnlabs.org/annotator/demo/>

</comment></comment><comment><USER6> This reminds me a lot of Google Sidewiki [1]

[1]: <http://en.wikipedia.org/wiki/Google_Sidewiki>

</comment><comment><USER7> New mode? Like Sidewiki, Reframeit, Highlighter, etc? If I'm missing something that makes this any different I would appreciate it if someone could point it out.

<comment><AUTHOR> We freely admit that there have been many people who've tried to do this, but, to answer your question: Annotator is more granular than Sidewiki (you annotate specific passages within the page), and unlike Reframeit and Highlighter works across the web rather with no requirement for the developers of those sites to have enabled it.

<comment><USER8> Okay, then it sounds like DotSpots :)</comment></comment></comment>


Inspired by candyjapan - Subscribe to receive Indian handicrafts by mail - <AUTHOR>

HN, I love travelling & collecting Indian arts and crafts items from across rural India.
I thought it would be a good fit to turn this into a business after I saw the candyjapan experiment and realised there would a lot of demand for Indian arts & crafts around the world.
So I made this website http://indianartfor.me/
Please let me know what you guys think <comment><USER2> Interesting take on the concept.

I'm not too sure about the target market (or in this case, the product offering). I really don't see very many people wanting an "artifact" like a vase or bowl showing up in their mail every month. With candyjapan, you get interesting new candy to eat and taste and there is a novelty to it. Arts and crafts however is a lot less functional, and I can't see anyone really wanting something like that.

However, I think maybe you could find a niche in Indian fashion items. Shoes, jewelry, shoals, interesting little pieces that people can share and show off. Maybe that would be more interesting to the consumer?

<comment><AUTHOR> Handicrafts include a range of items including fashion "stuff".

I am not yet sure what will work and I intend to ask/look for a lot of feedback on that. I kept jewelry out of it because I wasn't sure what sex the users belong to and didn't want to make the registration process complex by asking for those details.

Right now, my focus is on unisex items. But I do agree that fashion might be a good niche to focus on. Thanks a ton for the feedback :-)</comment></comment>


Proposal for generics over primitives needs a rethink - <AUTHOR> http://mail.openjdk.java.net/pipermail/valhalla-dev/2014-December/000474.html

<comment><USER2> _> The cost of the C# approach is that existing classes could not be gradually migrated to be generic; existing collections had to be effectively deprecated and replaced, or a "flag day" had to be declared where all the code (library and client) changes simultaneously. These are not options for us. At the risk of being obnoxious, C# was able to get away with it because at the time, they had a very small base of existing users and code and were not yet successful enough to have to worry about compatibility._

The reason C# was able to do it is not because they had so few users that a "flag day" was acceptable, it was because they went with the first option and rewrote all their collections. C# did genetics right the first time, and didn't end up in this bizarre type-erasing, half-ass world that Java find itself in today.

</comment><comment><USER3> For reference, here's a fairly detailed response: [http://mail.openjdk.java.net/pipermail/valhalla- dev/2014-Dec...](http://mail.openjdk.java.net/pipermail/valhalla- dev/2014-December/000475.html)

Site note: I liked how both authors took pains to be respectful in their tones, keeps the focus on the issues at hand and avoids people getting irritated with one another.

</comment><comment><USER4> I thought the response was needlessly combatative, [http://mail.openjdk.java.net/pipermail/valhalla- dev/2014-Dec...](http://mail.openjdk.java.net/pipermail/valhalla- dev/2014-December/000475.html)

<comment><USER5> Agreed. Gavin's post didn't seem to acknowledge that this was a proposal and seemed to belittle the work put into it...but I found Brian's overly defensive (though I agree with his conclusion).

Having seen Brian's stewardship talk at ClojureConj, and now this, it seems clear that he feels the need to be defensive against the non-Java JVM languages out there.

</comment></comment><comment><USER6> I vote for not making the language more complicated than it already is in Java 7. Oh but we have Java 8 with closures and stuff, well OK how about no more complicated than Java 8. Please? Instead maybe introduce useful things that make programmers more productive. How about implicit generics. Where this whole mess of T and Any and <: extendsT< gobbldygook> melts away. Notice how a new class extends Object automatically? It always has. Why do I have to muck about with all the fancy and overly complex syntax. Give me the features of all of that but abstract it away so I can just write what I need to and it works implicitly. Either that or just leave the dang language alone and go make some cool libraries.

<comment><USER7> I am really rather tired of the appeal to simplicity that is often made in language design. Simplicity is not a virtue in a programming language. Consistency is a virtue, but not simplicity.

Simplicity is a tradeoff that takes away power and control from the programmer and gives it to the computer. Computers don't need to be more powerful, programmers do. The tradeoff is a poor one and rarely worth the little gained.

In this case, what do we gain by not adding primitive value types in Java? The fact that you sleep better at night because the language is more "clean"? Why should we want that? Sleep is definitely important, but the idea that a language can be too complex is silly.

It does matter that new additions do remain consistent with the overall architecture, but there is no reason to advocate less features simply because you find the idea of learning something new disconcerting.

<comment><USER8> Agreed. I feel like a C# Stan in here at the moment, given how often I'm speaking glowingly of it lately--I use it to make games but my day job is Ruby and Scala!--but you can look at C# to see what moderately progressive (not even "aggressive") iteration on a language to add more and more powerful features in a smart, clean way would look like. Nobody's complaining about C# having too many bells and whistles, honest.

</comment></comment></comment><comment><USER8> The response by Brian Goetz[1] is kind of unpleasant and combative. Moreover, the ideas in it kind of encapsulate why I'm growing more and more uncomfortable with relying on the JVM to keep up with my needs in the future.

 _> The cost of the C# approach is that existing classes could not be gradually migrated to be generic; existing collections had to be effectively deprecated and replaced, or a "flag day" had to be declared where all the code (library and client) changes simultaneously. These are not options for us._

This is why, despite doing it in my day job, I'm not high on the JVM's future as it stands right now. Compatibility uber alles is _not_ a virtue, even Microsoft gets that these days. Saying "on 1 Jan 2017 we're pushing Java 10, and you will need to recompile your dependencies to upgrade" is not a bad thing. No, many people won't upgrade immediately. That's true. But _they already don 't_! It takes years for consumers to catch up with the newest version of Java (for reasons that do not reflect well on those consumers). Why should I, as a consumer, care about them? Why should I, as a consumer, continue to use your product when you would care about laggards more than me? I mean, Oracle's welcome to, it's their business, but why would I respond positively to that?

But he says that a flag day means they "hate their users." No, it would mean they are going to firewall off the damage laggards can do to their environment and ecosystem. And for the sake of a healthy platform for the next decade I would think they should do exactly that, because those laggards don't make the ecosystem and the environment better.

And then, at the very end:

> And, feel free to prove us wrong! Try implementing the changes you are > envisioning in the JVM, and show how they can get us to the goal!

Why should I, guy-who-works-for-Oracle? I'm not drawing a paycheck from Oracle, who owns Java so utterly and wants to attack and damage related tools and platforms (hi, Android), and guess what? I really don't need Oracle to fix this because in 2015 I am going to have _options_. Microsoft is releasing an open-source CLR for OS X and Linux and it's effectively substitutable for just about anything I care to use (and, if I had to be honest, a combination of C# and F# are probably better than even Scala for what I do). This is _Oracle 's_ problem and Oracle's ground to lose, not mine.

Two-thirds of my Github are C# and Ruby at this point, anyway, and I don't even use C# for work.

[1] - [http://mail.openjdk.java.net/pipermail/valhalla- dev/2014-Dec...](http://mail.openjdk.java.net/pipermail/valhalla- dev/2014-December/000475.html)

<comment><USER9> It sounds like you do hate Java's users. You dismiss the difficulty of upgrading existing apps, which is an enormous amount of work, without even making a rough estimate of how hard it would be. They are just "laggards" to you. At least consider that others may have different values than you and actually care about these people.

Sacrificing backward compatibility means adding pain for existing users in the hope that the world will be better for new users. Splitting the community on purpose has a cost; just look at python 3 for how painful this is.

Whether this makes sense depends very much on the size of your existing user base and on the potential for growth. The users you gain by making a language somewhat more elegant may not be worth the loss from the disruption.

<comment><USER8> A flag day on a bytecode format is "hating users"? It's a Python 3 split? Come _on_ now. Heck, I can't come up with anything (and I've been thinking about this a lot for a few weeks, as I spend more personal time in C# and getting stuff done quickly that's kind of a pain in Java) that'd prevent automatic translation of pre-flag bytecode to an equivalent matching the old code's intent. If a jar has a pre-flag bytecode format, then rewrite to treat those parameters at runtime as T => Object and transparently box value types that are supplied for T. The pre-flag jar still contains the necessary information for the compiler to throw a rod if generic constraints are violated. (You could even experiment with more restrictive runtime constraints, but I haven't thought through the implications thereof.)

But you know? If it takes laggards three years instead of the usual two to jump from Java 9 to Java 10, I don't care. I shouldn't care, because I'm not them. Oracle might. They can do that. But Oracle doesn't want my business if they do to my detriment, and the more time I spend outside the JVM the more annoyed I am by their self-imposed limitations. Microsoft seems like they wouldn't mind my business, though, which is faintly astonishing. I'm happy giving it to them if they're going to provide a better product. (I'm reserving judgment until we see their Linux and OS X ports of their CLR, but I'm high on it.)

And if you're seriously going to get riled up about "laggards", I hope you never take an economics class, because they think words mean things and I do too.

<comment><USER9> Yes, you're probably right that they don't care about your business. Oracle's actual customers are large businesses running hundreds of millions of lines of code and they probably don't understand all of it. They probably care a lot about preserving their existing investment. If they decide to put off upgrading to the latest VM, Oracle can't sell them stuff.

The point here is to have some empathy. There are other people in the world with different priorities. You can't say whether a technical decision is good or bad without understanding what they're trying to do.

<comment><USER10> > _Yes, you 're probably right that they don't care about your business. > Oracle's actual customers are large businesses running hundreds of millions > of lines of code and they probably don't understand all of it._

That was true for SGI, HP, DEC, SUN etc at some point too. See how the ended when they didn't adapt?

SUN could still be alive and be pioneering all this cloud and web programming in 2014...

They could have created something like Heroku (or lower level like AWS), they could have added some flexible Rubu/Python Django/Rails like option for the JVM (instead relying on third party ho-hum small attempts). They could have pioneered the big data space.

Instead the insisted on Java for everything, and kept it as stale as they could. This is were it got them...

<comment><USER9> They did try. Sun had all sorts of innovative projects that didn't work out (such as JavaFX), but they've been forgotten. Java on the server is what remains. It may not be flashy, but it's a survivor (still around even after Sun is dead) and it's likely to last as long as Fortran and COBOL.

It's only in the early adopter community that survival doesn't seem to count for anything.</comment></comment></comment></comment></comment></comment>