How annoying is too annoying? - <AUTHOR> https://input-delay.glitch.me/ <comment><USER2> Apparently typing latency doesn't annoy me at all. I think I just queue up what I'm going to type "in my fingers"; it's a one-directional process, and in general I don't have to see the letters before I keep typing whatever is in my queue.

What _does_ annoy me about user interface latency: when a page loads slowly, I try to click something, the layout changes at the last minute, and I end up clicking something else. That's an example of a full feedback loop where my actions aren't coming directly from me. They're dependent on what I'm seeing on the page.

<comment><USER3> I share your sentiment. Quoting:

Now, finally, why might input lag for keyboards be less frustrating than on tablets?

My theory is: because the keyboards themselves provide an important source of feedback. Namely: the tactile feedback when a key is pressed tells you that you did what you set out to do. At the very least it's possible to feel whether something was pressed or not; experienced typists will also easily be able to tell whether it was the correct key or not. And thus you yourself are taken out of the equation as a potential source of error, removing any self- doubt while waiting for the screen to catch up with your action.

When you're working on a tablet, you're never provided with such tactile feedback, and are thus forced to wait for the lag to complete whether a mistake was made or not.

[http://www.remarkablyrestrained.com/keyboard-lag-and- frustra...](http://www.remarkablyrestrained.com/keyboard-lag-and-frustration/)

</comment></comment><comment><USER4> I thought the buttons at the top ("Fine", "Could be worse", ...) were survey answers. Nope, they are how you choose the input latency.

The "We're done here" button is only 200 ms, and "Surprise me" only goes up to 500 ms. I have experienced far worse and variable latencies over Windows Remote Desktop and SSH due to bad Internet connections - like multi-second delays. This demo pales in comparison to the real world.

<comment><USER5> The delay is editable, you can set it to 3000 if you want.

<comment><USER6> I have heard about people putting in the work today so they can read/inspect it tomorrow.

</comment></comment></comment><comment><USER7> I think the experience of annoyance would be very different if you are forced to "break your flow". E.g. if you need to correct some characters at the end or insert something in the middle of what you have already typed because then the feedback is _much_ more important.

If I just keep typing typing typing without need to worry about correction, the annoyance is probably minimal. I could just ignore the latency, close my eyes, and keep typing, assuming I have really high touch-typing accuracy. (I know that's something I sometimes do when I face high latency in real usage.)

Maybe a better and more meaningful simulation is to show some random sentences that you have to read and type, and then randomly _force_ you to make some corrections as you go along (e.g. suddenly change the last word from "their" to "they're"), to simulate _you_ having mistyped something.

</comment><comment><USER8> On my iPhone I find everything up to maybe 0.6 seconds to be just fine. Part of this may be being used to using SSH over VERY poor network connections.

I think the biggest frustration with latency is not the latency itself, but rather when latency is combined with the possibility that what you entered didn't register at all and the time pressure of having only 15 seconds of signal to submit your command - situations that often occur when using Internet based sessions in the wild.

The other source of annoyance is trying to "not crash the system". Often when a system presents high latency like this, I tend to consciously pay attention to how many "buffered" inputs I'm sending for fear of crashing something, and that self-throttling can get tiring.

<comment> crooked-v Don't forget the classic "while you tried to click on something, something else moved in the way of it" problem.

<comment><USER8> Bonus points if this results in mis-clicking something dangerous or irreversible, like "delete", "cancel","post","send", "close", "exit without saving" or the like.

<comment><USER9> In the same way that browsers refuse to do certain things unless coupled with human input (like open a pop-up window, or submit auto-filled form data), they should refuse to send a click event to an element that hasn't been stationary for a short while.

It would need to be defeatable for "game mode" though, for games involving clicking moving targets. Any other edge cases to consider?

<comment><USER10> This is why most platforms provide both raw and semantic events: mousedown and mouseup are instantaneous and reflect the raw input, but click is meant to describe user intent to initiate an action. Leaving the raw events for games but requiring semantic events for dangerous actions seems like a decent compromise.

</comment></comment></comment></comment></comment><comment><USER11> This page is super misleading at least in Safari on Mac. The latency number appears to actually be a minimum delay between each letter. 200ms latency should mean that each letter appears 200ms after you press the key. But if you type reasonably fast on the 200ms setting, the screen gets farther and farther behind the keyboard, to the point where I can end up waiting many seconds for the text to finish showing up after I'm done typing.

As a result, this is going to make moderate to high latencies look _way, way_ worse than they really are.

<comment><USER12> Yep. What you describe would be the expected behavior over a high-latency, but otherwise unloaded, connection. However, I'm wondering now: In the case of an ssh session over someone's fully-loaded typical home Internet connection, might it be a mixture of both? Especially with buffer bloat and lacking any traffic shaping, can I expect that each individual packet (which can be reasonably mapped to a key press in interactive sessions) is queued right after the previous one? Assuming many many packets waiting for egress without any prioritization, when each keypress packet actually makes it out vs. any other will essentially be random, no?

<comment><USER11> Latency on a loaded connection can be really bad but it won't be related to how fast you type unless the connection is _really_ slow (like, early dial up modem slow).

When you press a key, it will take a while to see the result. Depending on how things are set up, your computer will either send all subsequent keypresses immediately while you're waiting, or it will buffer then and then send them all together once you get the reply. Either way, you won't get this long term buildup.

</comment></comment></comment><comment><USER13> You need much larger variable latency range to be truly annoying.

I'm talking high enough that someone backspacing over a mistake will think that the interface didn't receive the input. So they do another backspace.

To get it just right you'd probably trigger the initial backspace callback _immediately after_ the user types a 2nd backspace. Then wait a long time before triggering the 2nd backspace callback. Since the original problem character has been removed the user will most likely try to continue typing. Finally, update the queue of characters all at once-- starting with the 2nd backspace. Now the latency has caused a character right before the queue to get eaten.

This is how you cause people to throw their device against a wall.

<comment><USER10> Overzealous autocorrect has a similar effect. Apple has apparently decided that any editing in the vicinity of a word it considers misspelled is meant to replace that word. The other day, I tried to refer to a HN user by username and I must have accidentally overwritten it half a dozen times before managing to get my comment through the OS to be submitted.

</comment></comment><comment><USER14> For me nothing much changed up to "really not great" \- only then did I start to notice the delay.

But "variable latency mode"? That made me more nostalgic than annoyed. It was an instant flashback into the 90s, running Irssi in screen over SSH on a slow dial-up connection while downloading MP3s. Happily chatting away.

Individual perceptions are weird.

</comment><comment><USER15> Wow, it's like a hyper-optimised Visual Studio+ReSharper installation.

<comment><USER16> Funny you mention it. I posted a question about this on superuser. Its currently the second result when doing a google search on "visual studio input lag". The issue disappeared when running in single monitor mode, but I couldn't determine the root cause.

[https://superuser.com/questions/715607/improving- resolving-k...](https://superuser.com/questions/715607/improving-resolving- keyboard-input-lag-with-visual-studio-2013)

</comment></comment><comment><USER17> I used to work at a company that gave our two machines: a _beefy_ desktop with lots of RAM, many cores, two GPUs, a fast disk, etc., and a mid-range Apple laptop. For consistency reasons, my main development environment ended up being a tmux session running on the desktop, and I would ssh in to the machine from the laptop.

The latency hovered around 100ms (it's not great), but it went up and down throughout the day and as I moved in and out of the office. Honestly, it isn't so bad. I find after years of working like this I keep enough of a mental model of what I've typed that I'm not bothered by even the "we're done here" setting.

<comment><USER18> While we're doing asides: In days gone by I worked with a person who was regularly 2 or more full window switches ahead of Emacs. Meaning, they could type a switch window command and using their memory of the code and point there type a search/delete/change, switch to a 2nd window, do the same, etc all before the 1st window rendered.

Of course this was on slow computers so it was not so much a feat of speed but rather how much of the full code they were holding in their head at any time.

</comment></comment><comment><USER19> I must be more patient than whoever wrote this. Only the last one or two options really bothered me at all. Maybe I just type slow.

<comment><USER20> I type relatively quickly (95 wpm) and I didn't even notice the delay until "really not great" (100 ms) and it didn't bother me until "we're done here" (200 ms). I think it has more to do with expectations than it does anything else... A "slow" text box just isn't that annoying. I'm usually waiting for my fingers to catch up with my brain anyway, so there being an extra few ms doesn't change much. It's a little disconcerting to see the text all catch up at the same time and back spacing at the slowest setting was annoying. But still not seeing what the big problem is.

<comment><USER21> I suspect delay impacts more slow (or error prone) typists who rely more on visual feedback, whereas fast typists presumably generally rely/trust more just physical feedback.

<comment><USER22> Also it impacts cursor editing (for example using vi) more than just typing text, for the same reason.

<comment><USER19> Wasn't vi invented specifically for dealing with high latency networks?

</comment></comment></comment></comment></comment><comment><USER23> I was able to notice it at the 30ms mark, and it gave me a flashback to trying out Eclipse and NetBeans when working on some big unfamiliar project years ago. Couldn't make myself use either, no matter how useful all of the magic tools were...certainly in part because they both had noticeable input lag, which I've now learned I find super annoying.

<comment><USER24> 100ms reminds me of visual studio code.

Funny this comes up today because I was thinking of getting back to vim fully instead of VSCode+vim extension and used vscode as a debugger only (love the UI!).

<comment><USER25> Glad to know I'm not the only one experiencing this! VSCode+Vim has been driving me insane lately with the excruciating typing lag.

I've never learned vim proper (started with Atom and vim-mode-plus), but I keep thinking it might be time to dive in.

<comment><USER26> Try Neovim, you'll love it. [https://neovim.io/](https://neovim.io/)

</comment></comment></comment></comment><comment> d-sc Fun. But I don't feel it's entirely accurate. I don't mind typing with a delay as I can watch my keyboard, but clicking on moving objects with a variable delay is quite dreadful.

</comment><comment><USER27> Working in Ireland on computers that mostly live an AWS us-west-2 really makes you almost immune to this. ~150ms best case.

Of course, dialup was worse. You can never really get used to 300ms.

</comment><comment><USER28> So fun story:

When I started using Ubuntu in 2008, I used gnome-terminal as was default, and had no issues for it for quite some time.

Around 2009-2010, I decided to start experimenting with a whole bunch of alternate window managers and terminals. Eventually settled on wmii and xterm.

Since then I've gotten so used to xterm, that I can sense the extra latency in gnome-terminal that isn't in xterm, and it bothers me. This isn't even over ssh or anything, just local.

Toying with this page, gnome-terminal feels about the same as 10ms. And apparently I can still just barely sense the delay at 5ms now. Somewhere below that, probably around 2ms, I can't sense it anymore and it feels like xterm.

</comment><comment><USER29> When I type it sometimes stalls for a while and then dumps a whole bunch of characters at once (much faster than I actually typed them). Anyone else having that issue?

</comment><comment><USER30> I grew up connecting to 300bps BBS', this is just water off a duck's back for me!

</comment><comment><USER21> Worth pointing that the number presented is presumably _additional_ delay on top of the inherent delay of your setup. That means that especially in the lower end the values are not comparable between people on different systems.

</comment><comment><USER31> I recently ran into the input delay problem when I foolishly installed a firmware update on my HP 608 G1 tablet. The firmware update introduced an unfixable bug that "sleeps" the touch panel if it hasn't been used for a period of four seconds and introduces a full second of latency on the first tap thereafter. HP swapped units out while they were still in warranty but late adopters like me are SOL since no further firmware patches will be developed. I don't know what my limit is but that surpasses it and my tablet sits collecting dust.

</comment><comment><USER32> Eh, its not really that bad. The variable latency needs to be much more extreme to be noticeable. 250ms is about the threshold where I start to feel hampered. So going from 34ms->78ms->150ms->56ms->14ms really isn't an issue. If I was seeing 100-200ms jumps, I think that would have a much bigger feedback effect, similar to to hearing your own voice on delay. Especially if it changes on a `space` rather than every character. Just long enough for you to get used to, and anticipate, the delay. Then a wild change.

</comment><comment><USER33> Given that I've spent a lot of time developing remotely using Vim, 100ms feels pretty normal to me. After a bit, you develop a buffer in your head and you think in slightly larger chunks of text (a word or two or a short statement), and you express that and then review it for any fixes needed at that time. Error correcting is less immediate, but it's not always a bad thing, as it lets you focus a bit more on what you are expressing instead of whether it's got typos in it.

</comment><comment><USER34> It would be interesting to study how annoyance with different settings changes based on your typing style. I touch type and was trained to be able to type without looking at the screen and none of them seem super annoying. However, I could see a touchscreen keyboard quickly becoming difficult to use since you can't physically feel when you hit the wrong "key".

</comment><comment><USER35> Reminds me of operating servers via ssh when on 3g on a moving train.

(Yes, I know mosh exists for this reason)

It actually made me realise that my normal typing in my browser is quite high latency, since the 5-10ms exacerbated something enough to the point where I notice it even though there's no added latency now.. one of those "cannot unsee" moments and it's going to cause me to go insane.

</comment><comment><USER36> This reminds me so much of macOS Finder. Back in 10.9 there was no delay when creating a new folder and typing a filename. This evening I accidentally caused Finder to navigate away from the "untitled folder" by starting to type the filename too quickly after pressing Command-N. It's a really frustrating UX, and feels very similar to a 200+ ms delay.

<comment><USER37> Apple needs another of their performance-focused releases, like that one where one of the biggest features was reducing memory use. For MacOS _and_ for iOS, focused on reducing system latency in both cases. Both are a lot laggier than they used to be, and the power of the hardware under them barely seems to matter.

</comment></comment><comment><USER38> This takes me back fifteen years to when I "upgraded" from a 1Mb/s high- bandwidth cable internet service to a more expensive 128Kb/s symmetric DSL connection because I was working from home over ssh. I went from "really not great" to "fine"/"could be worse", and it made my life so much better.

</comment><comment><USER39> > This project has received too many requests, please try again later.

Is it possible to describe what it is without spoiling anything?

<comment><USER40> It's a text box, plus a series of buttons to change the latency between your typing and it appearing in the text box. 10ms, 30ms, up to 200ms.

</comment></comment><comment><USER41> Two things I would change:

1\. The latency selector should be plain numbers, to avoid coloring the perception by the emotional terms used

2\. Currently the letters appear with a delay, but the cursor advances immediately (could be my browser) - there is instant visual feedback, which probably reduces perceived latency

</comment><comment><USER42> This is missing the particularly annoying 'halts for 5 seconds then catches up' option.

</comment><comment><USER43> I actually found myself getting motion sick at 50ms and above. I'm not sure why, I was a dialup kid from 300 baud on up for like 15 years.

I think something about the drawing is the issue.

</comment><comment><USER40> When it finally loaded, I found it horrific fun. My sentiments lined up very closely with the labels: FINE, COULD BE WORSE, and then IT'S WORSE and worse.

The variable latency mode was truly annoying.

</comment><comment><USER44> There's been a lot of research done on latency in audio systems and how it impacts musical performance, so it's probably worth cross-referencing this with those results.

<comment><USER45> I know this is quite obscure, but there's a great video of Alex Lacamoire (music director on Hamilton) discussing their live digital sound setup and he discusses the topic of latency: [https://www.youtube.com/watch?v=jHs0NVvTxHY&t=8m39s](https://www.youtube.com/watch?v=jHs0NVvTxHY&t=8m39s)

</comment></comment><comment><USER46> Anything over 100ms is pretty much extremely annoying.

That being said, somehow the variable latency seems way less annoying than what it would be if averaged out and set that constant value.

</comment><comment><USER47> 300 baud tty input was like this. ah.. the memories (asr33 teletype in the house, followed by an olivetti, proceeded by a remote input cardpunch on 75baud)

</comment><comment><USER48> "This project has received too many requests, please try again later."

Can't figure out if the site is down or if this is part of the test.

</comment><comment><USER49> Given how often I remote into my iMac over a vpn that has both cellular and WiFi networks to deal with, none of these bothered me.

</comment><comment><USER50> If you've ever administered a server via SSH over Tor, you're forced to get used to this sort of stuff.

</comment><comment><USER51> reminds me of administering an EC2 instance hosted in australia from a remote wimax connection in the rocky mountains.

</comment><comment><USER52> I don't find it annoying. I can just keep typing knowing everything is queued up.

</comment><comment><USER53> If you think this is fun, try ssh through a 495ms latency satellite connection.

</comment><comment><USER54> Reminds me of using Google Drive in Firefox :)

</comment><comment><USER55> I can withstand them all.

</comment><comment><USER56> Sort of badly coded. The cursor moves when it shouldn't.</comment>


React library to construct timeseries charts - <AUTHOR> https://github.com/esnet/react-timeseries-charts/ <comment><AUTHOR> This library contains a set of modular charting components used for building flexible interactive charts. It was built for React from the ground up, specifically to visualize timeseries data and network traffic data in particular. Low level elements are constructed using d3, while higher level composability is provided by React. Charts can be stacked as rows, overlaid on top of each other, or any combination, all in a highly declarative manner.</comment>


Show HN: Koncepted – premium design service - <AUTHOR> Hi guys! My name is Jan and I've been freelancing for over 7 years. I've been working with small startups, big firms and even worked on a bunch of side projects. I've always had a passion for design, but I wanted to slowly move my career into entrepreneurial waters. For a while, I've been trying to build every idea I had. And I had many. Until quite recently when I decided to focus on one single thing and grow it as much as I can.
I decided to build Koncepted. It's the next logical step for me and the design industry.
We all know how hard it is to find the perfect designer who understands what you want and delivers beyond what you ever wished for. And we also know how disappointing it can be to use crowdsourcing platforms that have thousands of freelancers, but they lack quality you're looking for.
That's where Koncepted comes in and combines the best of both worlds. It's an invite only group of super talented designers. Each one must show extraordinary skills to get in. We focus on quality and client experience.
I didn't want to create just another traditional agency or crowdsourcing site. Instead I used the good bits of all the amazing flows and interfaces I built in the past 7 years working as a freelancer and created a platform that delivers the best possible experience and designs for our clients. You'll love using it! It's quick, easy and designers always overdeliver with quality. It's a platform that allows you to track your project, see what stage it is in and give direct feedback to new design changes.
I have plenty of new ideas and features I want to add, but I need you to help us grow by submitting some really awesome projects. It's basically a win win. You get stunning designs and we get to improve the product so we can make it even better for the next time you come around asking us to design your new startup.
https://koncepted.com <comment><USER2> Clickable: [https://koncepted.com](https://koncepted.com)

What sort of designs [e.g. graphic, UX, hardware, etc.] does the platform target?</comment>


Show HN: MyQueue – The world's simplest queue management application - <AUTHOR> https://itunes.apple.com/au/app/myqueue-worlds-simplest-queue/id1066767372?mt=8&ref=producthunt <comment><AUTHOR> Hi, here's my little MVP for the world's simplest queuing application for iOS. Ideal for businesses who want a simple queue management system such as coffee shops, food trucks, salons, and more!

Throw away the restaurant buzzer system and lets keep it simple!!

Features include: \- Add a new customer name and cell phone number \- Provide an time estimate for receiving your goods via metrics page \- Swipe left to notify the customer their order is ready for pickup via message \- Swipe right to remove the order from the queue \- Export all current or historical orders via email \- Create a unique message sent to customer upon completion of their order

Requirements: \- No need for client side software/apps to notify customers \- You iPhone or iPad will just need a phone connection to send messages</comment>


Input type="country" - <AUTHOR> https://shkspr.mobi/blog/2017/11/input-type-country/ <comment><USER2> Keeping everyone happy and not causing major diplomatic incidents. Easy‽

Yup. Now that you've mentioned the Falklands - those should sort under "M" (for "Malvinas"), everyone* knows that, right? Don't get me started on that farce of a name that hides under the acronym FYROM, either. And, btw, some existing and recognized countries have an ISO-3166 shortname which its populace mostly considers offensive ("Czechia"). Yeah. Easy peasy.

Not to mention the previous half-baked browser-specific solutions such as input=date...nope, I don't have any hope for this proposal.

(Everyone in Argentina, that is.)</comment>


Ask HN: How can recruiters select for high integrity? - <AUTHOR> Simplifying: I want to optimize hiring for integrity, intelligence, and energy.
Vouches and references are helpful in gauging a candidate's integrity, but I want to learn of other approaches that might help filter out people who lack integrity.
The definition of integrity is subjective but that's probably beyond the scope of this post. <comment><USER2> "Somebody once said that in looking for people to hire, you look for three qualities: integrity, intelligence, and energy. And if you don't have the first, the other two will kill you. You think about it; it's true. If you hire somebody without [integrity], you really want them to be dumb and lazy."

\-- Warren Buffet

This is what your post is based on, right?

Some managers will be better judges of character than others but as soon as you formalize the process, you also very likely open it up to be exploited by people with low integrity and high intelligence.

<comment><USER3> This is why the human element to recruiting will never go away.

<comment><USER4> Maybe by folks who are good at recruiting, but I'm not sure how many of those people there are.

</comment></comment></comment><comment><USER5> It's tricky, because as soon as you (as a test) start fishing for information they shouldn't provide, you'll come across as having low integrity yourself. Which will scare away the right folks and attract the wrong ones.

</comment><comment><USER6> Behavioral Interview Questions:

\- Discuss a time when your integrity was challenged.

-Tell me about a time when you experienced a loss for doing what is right.

\- Tell me about a business situation when you felt honesty was inappropriate.

> [https://recruitloop.com/blog/behavioural-interview- > questions...](https://recruitloop.com/blog/behavioural-interview-questions/)

</comment><comment><USER7> The usual answer is background checks, no?

(If nothing else, ensuring that employees don't e.g. have massive debt makes it less likely that an otherwise-reliable person feels forced into doing something bad...)

<comment><USER4> I wonder how often a pressure like debt really plays a part in bad choices in the day to day business world.

</comment></comment><comment><USER8> Can you expand a little bit on the question? I think I understand what you are asking but maybe a concrete scenario or some sort of example would make it easier to start a discussion?

</comment><comment><USER9> Test for Honesty/Humility from HEXACO ?

[https://en.wikipedia.org/wiki/HEXACO_model_of_personality_st...](https://en.wikipedia.org/wiki/HEXACO_model_of_personality_structure)</comment>


Ask HN: What's the best API you've worked with? - <AUTHOR> Curious of the most functional, enjoyable API's you've encountered on projects and why it was chock full of awesome, whether that was ease of use, sensible design, integration of other services, etc. <comment><USER2> LINQ by Microsoft. It's expressive, elegant and very useful when dealing with all types of data. In addition, it pushed many OO programmers closer to functional languages.

> "...the design of LINQ query comprehensions was heavily influenced by the > design of Haskell. Haskell expert Erik Meijer was on the C# language design > committee when we designed LINQ; his insights were very valuable".

</comment><comment><USER3> Twas down today for brief while, but Stripe API usually is rock-solid

I'd also check out a new trend in APIs that is sort of "visual editors for non-coders". Slack's Block Builder is a terrific example

</comment><comment><USER4> Google Guava, Java Collections.

Most Java OSS library feels a lot better than NodeJS (been in JS land for more than 5 years and I can count "historically" stable JS library using my left hand)

<comment><USER5> That's very odd, since I moved from Java to NodeJS and felt the opposite. Especially, building and modifying API in NodeJS is just JSON.parse/stringify, while in Java you need a PhD in DAO.

<comment><USER4> > Especially, building and modifying API in NodeJS is just > JSON.parse/stringify, while in Java you need a PhD in DAO.

First of all, I'm talking about OSS library as API not REST endpoint so I believe your statement is totally unrelated to my point.

Second, you don't need a PhD in DAO, it's just one simple pattern.

Third, you have a few options: have your JPA entity converted to JAXB- annotated java-class using Dozer (if it's a straight up mapping, you don't need XML). Or annotate your model with JPA and JAXB. Again, this is only if you use JPA which is heavily geared toward RDBMS. If you followed NodeJS "pattern" which implies the only arsenal is MongoDB... then it's a different story. Most projects that use MongoDB has simple(ish) data structure so you probably don't need to deal with DAO and whatnot.

Fourth, I can understand your statement coming from NodeJS since NodeJS doesn't even have a good ORM that can managed different DB providers. Specific vs Battle-hardened for years => design trade-offs. Heck, NodeJS forces you to choose a specific DB drivers...

[https://stackoverflow.com/questions/14514048/whats-the- equiv...](https://stackoverflow.com/questions/14514048/whats-the-equivalent- of-jpa-or-jdbc-for-node)

</comment></comment></comment><comment><USER6> The most awesome was SAL, a vector math library by Mercury Systems.

Every function came in multiple varieties, specialized for the expected and desired cache hotness of the data. Suppose you wanted to multiply a couple matrices. There are two inputs and an output. The inputs could be cached, uncached, or one of each. The output might be needed soon, and thus should remain in cache, or it might be better to save the cache for other things. All of this could be specified.

That library could help a programmer to produce mighty fast programs.

</comment><comment><USER7> Mapbox in Unity. The API might lag behind updates to the JavaScript SDK, but I'll be damned if they didn't at least make the end-user developer experience a pleasure to work with inside the editor. So many SDK implementations in Unity are quite clearly just a layer of likely poorly implemented web calls being jammed into the editor GUI.

Thank you based Mapbox Unity team.

</comment><comment><USER8> Win32 API

<comment><USER9> When I saw this I actually laughed. But then I thought about it more. I'm actually inclined to agree with you, for a native API it is quite extensive, well documented, and fairly easy to use. I prefer its verbosity to Unix-style 6-character-long syscalls, though I can see why it made sense at the time it was developed. But it could just Stockholm syndrome after 5 years of use.

<comment><USER10> It's reliably stable. With a current Mac, running an app that was built 10+ years ago would be a nightmare if not impossible without source. With Windows, I can still run apps from the late 90's with little effort (with the exception of some DirectDraw issues).

</comment></comment></comment><comment><USER10> stb_image.h - I've used plenty of image APIs and libraries in my time, and none have had the simplicity of just "load this" and just worked as I expected with (practically) no setup.

</comment><comment><USER11> Scala collections API

</comment><comment><USER12> C stdlib

</comment><comment><USER13> OpenGL

</comment><comment> bauta-steen emacs</comment>


In Pursuit of the "Real" Chateaubriand - <AUTHOR> https://publicdomainreview.org/2019/10/09/our-masterpiece-is-the-private-life-in-pursuit-of-the-real-chateaubriand/ <comment><USER2> A disappointing essay which barely mentions Chauteaubriand's writing and dismisses it in a few words as "high-flown and formal". Yet his writing was his greatest contribution and was exactly the reason that Chauteabriand held such a great fascination for his contemporaries, for he founded a literary movement which shook the world of his time and whose echoes reverberate down to the present day: Romanticism.

The word "romantic" and "romanticism" has been trivialized today as synonymous with the sentimentality of Hallmark cards, yet the literary movement to which the term refers bears little resemblance to today's colloquial meaning. Instead, it was a mystical, nature-worshiping reaction against mechanization and the Enlightenment, which elevated the world of nature, the imagination, genius, and the supernatural.

Out of the seeds that Chauteaubriand planted grew the Gothic novel, and from there eventually the modern horror novel, to cite but one small influence. From the pen of Alexandre Dumas, another Romantic, came books like the Count of Monte Cristo, from which masked avengers like Batman and other superheroes eventually grew. The Surrealists with their fascination with dream and the irrational also had their root in the Romantics, and the Surrealists' influence thoroughly pervades contemporary culture, from surreal advertisements we see every single day to movies with dreamlike imagery to books and films that question reality.

None of this or the many, many other influences of Romanticism or what Romanticism even was is touched on by this essay, so in it Chateaubriand's contribution remains opaque, as does the value of his books, which are well worth reading for their awe-inspiring vistas of nature and their alienated protagonists, which in some ways prefigured much later existentialist heroes.

Pick your favorite tragic, tortured, brooding, rebellious, misunderstood, alienated anti-hero from contemporary fiction, film, anime, comic books, or music, and then read Chateaubriand and the other Romantics to see where their archetype, along with much else of contemporary culture, was forged.

</comment><comment><USER3> I thought this would be about steak :(</comment>


Show HN: Find relevant tech books - <AUTHOR> http://devrules.tech/ <comment><USER2> Sounded interesting. Wanted to try. Had to signup. Closed the page.

Would advice the authors to have a demo/sample as there are many that claim similar functionality but as a user you want to get a feel this one actually works.

Unless this is one of those "landing page only" startup ideas to see if the idea would work and enough are interested to make the product. In that case I wish them good luck.

<comment><AUTHOR> It is still under works. This is a early subscription page.

<comment><USER2> Fair enough. I hope you find good product/market fit and a business model that works.

Sounds like a terribly hard space to succeed in when we life in an era where you get personal recommendations on sites like HN in minutes and Google already seqrches the entire space on every possible review that is public.

In addition the internet is pushing back on books via companies sharing their experiences via sites backed by OpenSource projects.

Books still have value though, and finding good ones is a nice feature. Your tagging and suggestions really need to be top notch for users to really want to pay for that but if you get it, who knows.

Best of luck!</comment></comment></comment>


InnerYou Relaunch - <AUTHOR> https://inneryou.io/ <comment><AUTHOR> In celebration of Juneteenth, we are launching InnerYou, a social media platform that amplifies Black voices. For far too long, communities of color have seen their voices either silenced or buried in mainstream media.

To combat institutional and systematic racism, InnerYou gives communities of color a voice to level the playing field and create space for untold stories.

Join now at inneryou.io, and let's share our collective experiences.</comment>


Littlewood's Law and the global media - <AUTHOR> https://www.gwern.net/Littlewood <comment><USER2> If the bias was random, this would be less worrisome. However the bias is not random at all.

In particular we are biased towards stories that grab our attention. Which means that they scare us, they outrage us, they confirm our biases, and so on. Media is then incentivized to present them because those are the stories that get clicks.

A wonderful book laying out the incentives in detail is, _Trust Me, I 'm Lying_ by Ryan Holiday.

And a wonderful book demonstrating how our world view gets twisted by this is _Enlightenment Now_. Despite most of us feeling that the world is a dangerous place and getting more so, on every measure that we can find, it has never been so good. Someone blows up a bomb on a bus? Everyone gets scared. A quarter million people are lifted out of extreme poverty yesterday? Nobody hears about it.

In fact blowing up a bomb on a bus is rare. A quarter million people lifted out of extreme poverty in a day is common place - that was the average for every day across a the last couple of decades.

So you can't just discount rare events. You also have to understand how the reporting and your mind is biased and actively work to bring it back to reality.

</comment><comment><USER3> This is fascinating to me.

Basically with massively large numbers of people online statistically improbable things come up with regularity and it's hard to trust the validity of a lone voice.

One of the themes I really liked in Neal Stephenson's Anathem was the role in of the Ita in filtering information and rating sources.

Obviously it's a work of fiction but the idea that you reach a point in time where nothing can be trusted on the internet with very sophisticated filtering is really interesting.

I note that where we used to rely on media corporations to filter out bad information that's now sacrificed for entertainment value. e.g. Netflix allow Gwyneth Paltrow to show here "wellness" show because it's entertaining event though it's clearly bollocks.

If you know it's just "entertainment" then that's fine you can judge it as such but there's a lot of people that will hear it and say something along the lines of "Western medicine doesn't know everything" and assume it's OK to put jade eggs where the sun doesn't shine.

<comment><USER4> We almost filter _in_ bad information because it's entertaining. It's as if the world has got bored of living in a safe, reliable, technocratic, boring, opaque society, and instead decided to incite someone to stab it to death like the boy in the story.

People talk about media bubbles, but I think these days we're far less bubbled than we were in the past - anything "big" enough goes global, it's just the spin on the coverage that varies.

I do wish it was easier to avoid consuming so much US news and current affairs in the UK; it leaks all over both social media and other media. It's much more likely that you'll be told what's happening in Iowa than in Birmingham (UK), and I think this is increasingly a problem.

<comment><USER5> I've often had an experience, when reading or watching a fictionalized account of some dramatic thing from history, where I feel exasperated that they didn't just use the real story - "Why would they make this up?? The thing that actually happened was just as crazy, except it was real!" I scream inside my head. So people end up thinking history is boring and needs to be spiced up.

As you say, people are bored, but my opinion is that it's mostly because we _think_ the world (and history and science, etc.) is boring, not because it's actually boring.

</comment></comment></comment><comment><USER6> A TL;DR from my reading of this:

As the world becomes more interconnected and both population and per capita wealth grow, the amount of information flowing into the global discourse becomes so large that "miracles" (highly anomalous events of one form or another) become commonplace. One should expect to see a shockingly bizarre coincidence, "black swan" event, unexplained observation (e.g. UFO sightings), rare crime or terror attack, etc. virtually daily.

Now add to this the fact that some percentage of people are trolls and will create hoaxes and pranks, which means not only are there many anomalies but at least some of them are entirely non-existent and you have no way of knowing which.

This is epistemologically and perhaps psychologically hazardous because we did not evolve to cope with this amount of information or breadth of sensory input.

</comment><comment><USER7> This worries me to be honest. The mainstream media was clearly always spinning to us long before the internet came along, but at least when people broadly trusted the same sources they also broadly bought into the same spin, so at least there was agreement within the group and a degree of social cohesion as a result. The BBC and 20th Century Britain springs to mind.

This seems to be breaking down at a rapid rate though, when it's very hard to have any idea where people will stand on hugely important subjects such as climate change, geopolitics etc until you speak to them. People's opinions vary wildly seemingly based mainly on which sources they happen to trust.

<comment><USER8> I have always maintained that social cohesion isn't a real goal for any but a dictator or manipulator. It has always essentially been manufactured consent in one way or another from when unified battle lines mattered more than pesky things like "the first three ranks of soldiers will almost certainly die", "that mentality will lead to domestic problems and stunt growth" because a rout noe would ensure everyone gets either captured and enslaved, exiled with nothing, or killed. Except it has been centuries since machinegun fire makes "cohesion" a pointless slaughter brought about because they were lead by absolute idiots. And we had plenty of proverbial ones from bad decisions.

It doesn't spare us from mass delusions and disasterous decisions and is in fact a delusion in itself. It lost its few virtues so it is time to toss the once useful lie of a cohesive monoculture onto the ash heap and move on.</comment></comment>


Web Design Museum 1991 – 2006 - <AUTHOR> https://www.webdesignmuseum.org/ <comment><USER2> I'm glad to see they have a whole section for 2Advanced. My programming tutor at college told us not to worry about the internet, treating it as a fad. I learnt html (and css) using View Source. And in my world of "my god, the things you can do if you collapse table borders", I spent hours clicking around 2Advanced witchcraft.

<comment><USER3> _My programming tutor at college told us not to worry about the internet, treating it as a fad_

There were quite a few people and companies that thought that way. Microsoft was one of them, and thought people would forever pay it a yearly fee to subscribe to Encarta updates on CDROM.

Fox was another one. I remember when even the smallest television station in the crappiest market had a web site, none of the Fox-owned TV stations had web sites because someone in New York thought the web was a fad.

The first web site I operated was for a TV station in 1997. By 1999 we were putting our video online through a video capture card hooked up to a ReplayTV. I think the Fox O&O across town didn't get a web site until 2005 or 2006.

</comment></comment><comment><USER4> HotWired changed my life. Was so inspired by their style, and the way their aesthetic grew from the limitations of the medium:

[https://www.webdesignmuseum.org/gallery/hotwired-1996](https://www.webdesignmuseum.org/gallery/hotwired-1996)

</comment><comment><USER5> > Photoshop 4.0 codename was Big Electric Cat

I didn't know that. That's also the name of an Australian band from about a decade earlier.

I do remember Photoshop 4 only had one level of undo. Just one. Make two mistakes and you're keeping one of them.

</comment><comment><USER6> It seems to me that the web started to look like today's web in 2000.

Websites that have been around that long haven't changed their composition a huge amount since then.

<comment><USER7> I think that's roughly the point where CSS was supported well enough to be useful. 2001 was when ie6 was released, so the first browser war was wrapping up at this point and browser features became a bit more fixed.

</comment></comment><comment><USER8> Thanks for this! A trip to the past, where flash was hero inside a table. After a messy 90's where web looked like from the 80's, the 2000's is where creativity was at. Graphic design took center stage, and interaction experiments would take place in form of websites as if part of an art gallery.

<comment><USER7> > where web looked like from the 80's

You're aware right that the world wide web was invented in 1991?

<comment><USER9> I took that to mean something like "the web in the 1990s still had the aesthetic of graphic design from the 1980s", which seems like a reasonable claim.

</comment></comment></comment><comment><USER10> The year on SpaceJam should say 1996-2020

</comment><comment><USER11> Good old days</comment>


Composers As Gardeners - <AUTHOR> http://edge.org/conversation/composers-as-gardeners <comment><AUTHOR> FTFA:

 _About the time when I first started making records, I was also starting to become aware of a new sort of organizing principle in music. I think like many people, I had assumed that music was produced, or created in the way that you imagine symphony composers make music, which is by having a complete idea in their head in every detail and then somehow writing out ways by which other people could reproduce that. In the same way as one imagines an architect working. You know, designing the building, in all its details, and then having that constructed._

Sound familiar?</comment>


Show HN: Sol ー Pocket Sky, Become more mindful of your time, day or night - <AUTHOR> https://apps.apple.com/us/app/sol-ー-weather-pocket-sky/id1515013305#?platform=iphone <comment><AUTHOR> Hey everyone

Happy to introduce you to Sol today!

Sol brings the brilliance of dawn and dusk into your pocket. It shimmers at night to the twinkles of stars and glows just before sunrise. It helps you become more mindful of your time, day or night, by tracking the position of the sun, the moon and its phases visually on your phone or tablet.

Not only does it present you with a beautiful snapshot of your sky, but it also lets you scroll in a circular path around the screen, like using an iPod Classic, to go forward or backwards in time, all the while transitioning a spectrum of solar hues that change and simulate the opacity of the sky during different parts of your day.

Sol features a timezone manager that displays your favorite locations. Each location tile displays its time, timezone offset to your location, and window into its sky. You can even check out Antarctica and its perpetual dawn or dusk!

Sol also features a weather view (NOTE: Requires an add-on subscription) that displays conditions for any major town or city in the world. The weather is beautiful when combined with the changing color of the sky for each time window.

A lot went into the design inspiration of the app. The core tenets were to maintain restraint in adding interface components and capturing the essence of the hues of dawn and dusk. In doing so, the app behaves and looks very different from other apps in its category. It prods you to interact with the sky and time, to explore other locations and to gain an appreciation of the solar and lunar cycles that occur silently above our roofs.

Sol also works great as a visual-assist to counter time-blindness, particularly when under extended lockdown or when working nights.

It was a labor of love for the most part - I hope that you would be able to appreciate it as a companion to your home screen as much as I do.

Stay safe! Insh</comment>


Show HN: Retrace.gl – a webgl2/glsl path tracer with a declarative scene API - <AUTHOR> https://github.com/stasilo/retrace.gl <comment><USER2> Fantastic work, produces a high quality render result at around 500 samples. Is it possible to customize the sample count used in realtime mode, or is that automatic? I initially tried on my integrated GPU, but over on my 2080 Ti I'm getting over 120 fps, and would love to see how high I can push that. Love the set of demo scenes you've provided, especially normal mapping and dynamic volumes.

<comment><AUTHOR> Thanks! :) Currently the real time sample count is hardcoded to 1 sample per frame, if you can be bothered with cloning and building the app though, the line to change is: [https://github.com/stasilo/retrace.gl/blob/master/src/store/...](https://github.com/stasilo/retrace.gl/blob/master/src/store/index.js#L177).

I'll make this along with render res. and some other settings customizable in the future :)</comment></comment>


Show HN: Data Monkey – data transformation made easy - <AUTHOR> https://www.data-monkey.com/ <comment><AUTHOR> Hello, author here! At my last "day job", I spent far too much time designing interfaces between common data formats (i.e. flat files -> JSON or JSON -> Excel) –– I felt like I was doing the same work ad nauseam. In general, all I needed to do was pull out a fraction of the data, validate that data against a set of expectations (there's always surprises), and maybe filter out certain values or make a few changes (like combining columns). Anybody can do all of this manually or via code easily enough, but there had to be a better way: I wanted to cut down on the monkey work.

Data Monkey is a web application that allows you to upload a small sample of your input data and define exactly how you want it to be transformed in a step-by-step process. You can then transform any number of files with the workflow you designed –– via our servers or locally on your own machine using our open-sourced Python library ().

This has been a work of passion for me — I think developers and business experts have better ways to spend time than worrying about finagling their data into the correct format. I'd love to hear your feedback and suggestions for improvement!

P.S. For fun (if you're a data geek like me), check out the Analyze Data functionality… it will scan the first million rows of any supported file and give you a bunch of interesting metrics on the data. It will also look for "data anomalies", like missing entries in a sequence or duplicates. I use it to get a first look & understanding of unfamiliar files I need to work with.</comment>