Show HN: Sinuous – Small, fast, reactive UI library - <AUTHOR> https://github.com/luwes/sinuous <comment><USER2> I work in this space so I am curious how your library is different from its similar competitors. I read the docs, but I didn't find anything about the actual model for how it works, like whether the whole UI rerenders on any observable change or not. Maybe consider this paragraph a request for documentation.

PS: A minor suggestion: the word "blazing" is so overused in the JS world at this point, when I see it I always at first suspect the app is a parody. If it's fast, then the word "fast" suffices.

<comment><USER3> I've started learning Rust after many years of NodeJS. In the past 3 weeks I've seen more "blazing" in Rust library marketing than in all my years of NodeJS combined.

<comment><USER2> I've noticed it too. It drives me mad.

</comment></comment></comment><comment><USER4> Kind off-topic but related: sometimes I wonder how web development would be if Lisp had somehow won as standard, since we can use to do everything the stack HTML+CSS+JS+Backend-language does, in addition to standardized syntax and standard everything.

Oh, standards. Standards.

<comment><USER5> We were so close. Twice, JavaScript had a chance to be Scheme; both times marketing reasons prevailed (first, to capitalize on the marketing spending of Java; later, to compete against Microsoft's JScript).

If Scheme was the language of the web, then HTML and CSS being represented as s-expressions would be the most obvious next steps, and we'd be like 15 years ahead in terms of progress.

<comment><USER6> Marketing and popularity aren't unrelated.

<comment><USER7> Popularity can be faked through marketing.

<comment><USER6> Popularity can only be faked via shills and poll rigging. Perhaps you mean something else?

<comment><USER8> You say that like marketing and shilling are two wholly distinct activities. Have you heard of Instagram?

<comment><USER6> One is people pretending to like something or wrongly saying people like something. The other is people liking something for the wrong reasons. These are completely two different concepts.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I kinda don't get the whole "put html in template literals". Wouldn't there be no syntax highlighting? And the framework is either putting the string into the DOM with some regex manipulations, which would lead to some very confusing error messages, or it's parsing the string into a tree, which means it needs to implement what's essentially XML parsing, which would come with an overhead. And for what? Avoiding JSX? If you don't like JSX, just desugar it to nested function calls. Or just use a templating language.

<comment><USER10> My personal opinion is that tagged template literals are the worst addition to Javascript [1]

As HN user stevebmark said [2]:

\--- start quote ---

…we've learned not to write code in strings. You'd think this would be a fundamental law of software engineering

…

Writing code, not strings, means you can do everything to it that you can do to code. You can type check code. You can lint it. You can optimize it, compile it, validate it, syntax highlight it, format it with tools like Prettier, tree shake it…

\--- end quote ---

[1] [https://dmitriid.com/blog/2019/03/tagged-template- literals/](https://dmitriid.com/blog/2019/03/tagged-template-literals/)

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

<comment><USER11> I think your blog post misses an important aspect of tagged template literals, which is that the first argument is an immutable object that is unique to the _source location_ of the template. That doesn't necessarily invalidate the rest of your argument, but it is a very powerful feature that is not really equivalent to anything else in JavaScript.

<comment><USER12> What do you mean by 'source location'? Why does this matter? I'm intrigued (and also suffering from conjunctivitis so excuse me if I'm being a bit dense and totally missed your point).

<comment><USER11> If you put a tagged template literal on line 42 in foo.js, every time the tagging function is called from there, the array of strings passed as the first argument is _the same object_. It's unique for the source location of the template literal, so even if you paste the exact same code into bar.js, it will have a different object. So, the function can recognize that it is being called from the same location in the source. This has some interesting implications for meta programming and debugging.

I'm not sure that it matters so much to the discussion, but it is a completely unique feature, and really has to be mentioned when discussing what tagged template literals offer.

EDIT: Looked for a good reference - best detailed description I could find was here: [https://exploringjs.com/es6/ch_template- literals.html#sec_im...](https://exploringjs.com/es6/ch_template- literals.html#sec_implementing-tag-functions)

<comment><USER10> Never knew about this, and completely missed it when reading about them on exploringjs.

Thank you for the explanation!

</comment></comment></comment></comment></comment></comment><comment><USER13> All "top ranked" libraries that use fine-grained observables graph in this benchmark are actually "broken"[1].

1\. [https://github.com/ryansolid/solid/issues/46](https://github.com/ryansolid/solid/issues/46)

<comment><AUTHOR> @localvoid thanks for the investigation, Sinuous can get around this with the template module I believe.

Also Sinuous doesn't use the same library as Solid or S.js for tracking dependencies. I'll do some investigating if it has the same issue that you posted.

<comment><USER13> Your library has the same issue. Also, you are using linear search[1] when removing edges.

1\. [https://github.com/luwes/sinuous/blob/e33c5e8bcdb461be61f7d0...](https://github.com/luwes/sinuous/blob/e33c5e8bcdb461be61f7d078ac5e606b4745382a/packages/sinuous/observable/src/observable.js#L161)

</comment></comment></comment><comment><USER14> > import { o, h } from 'sinuous';

really recommend you to use proper names instead of single letter variables.

<comment><USER15> I second this. Also, this example on GitHub doesn't work since html is not defined.

</comment></comment><comment><USER15> I took it for a super simple test run and behavior seems very… weird and incorrect: [https://codesandbox.io/s/7o92r](https://codesandbox.io/s/7o92r). Perhaps I'm just using it wrong, but it's not very clear why this example's state fails to update as you would expect. And I found a few examples of rendering that don't behave as expected.

<comment><AUTHOR> This is fixed in v0.12.3, [https://codesandbox.io/s/sinuous-counter- hmp8x](https://codesandbox.io/s/sinuous-counter-hmp8x)

The issue below is still to be fixed. It currently returns an array when it should be a DocumentFragment. It's related to the popular `htm` package that Sinuous uses.

html`${seq.map(i => html`
Counter #${i} ${counter}
`)}`

<comment><AUTHOR> also fixed [https://codesandbox.io/s/sinuous-array-bug- fixed-4s2nr](https://codesandbox.io/s/sinuous-array-bug-fixed-4s2nr)

</comment></comment></comment><comment><USER16> I've toyed around with the template-strings-to-markup approach before, but couldn't quite figure out how using `map` to generate dynamic lists avoided doing a full O(n) loop upon each update without some kind of diffing engine (other than the browser's own markup diffing).

<comment><AUTHOR> it's indeed not possible, that's why there is a `map` module for rendering lists.

</comment></comment><comment><USER17> Is anyone else bothered by the two different meanings of the word "observable" (data streams vs getter/setter/proxy), when you are never sure which one was meant until you read the code?

Introduction of D3 observable notebooks didn't help :-(

</comment><comment><USER18> This brings Svelte to my mind with mere kbs of code free of a virtual-dom runtime. What should I know more?

<comment><AUTHOR> @aitchnyu it is similar to Svelte, a lot simpler, early stages, less features though.

I think one of the upsides of Sinuous is that stays much closer to plain JS and to the web standards.</comment></comment>


Advanced Transport Options for DASH: QUIC and HTTP/2 - <AUTHOR> http://www.bitmovin.net/blog/2015/06/advanced-transport-options-dash-quic-http2/

<comment><USER2> > In the second part we will focus on the actual evaluation with respect to > DASH, thus, stay tuned!

<comment><AUTHOR> yes, that's a series on articles on new upcomming protocols like HTTP2 und QUIC for media streaming using DASH or HLS. In our next blogpost in this series, we will cover the results of real-world experiments using DASH + HTTP2 + QUIC.</comment></comment>


Icecast: Open Source multimedia streaming - <AUTHOR> https://icecast.org/ <comment><USER3> Icecast existed for ages. It's streaming protocol (about the same as the proprietary shoutcast) is basically an endless progressive HTTP download, which means you can simply put a stream URL into an audio tag in HTML and the stream plays in a browser or save a stream using wget/curl.

The protocol is/was directly supported by about any MP3 player software since the end of the 90s, including display of metadata updated (song/show title). One problem with Icecast streams is that content is streamed through a long lasting HTTP request. If the TCP connection breaks there is no way to recover without interrupting playback. Some Antivirus software will think the stream is a downloadable file, so it will withhold data from the browser while trying to download the whole stream. Using HTTPS for Icecast helps to keep most AV software from MITMing the stream.

If you implement A/V streaming to the web today, you most probably would want to use chunked streaming with modern protocols like HLS or DASH. ffmpeg can do this. The encoder will save a live a/v source into small fragments (like 2 seconds) on a webserver that the browser can download, reassemble and play one after the other. If one chunk download fails (because of a network change on the client side), the browser might be able to retry downloading chunks.

Caching/distribution also works using standard HTTP accelerators with chunked streaming while you need to chain multiple Icecast servers if you want to scale Icecast.

Edit and shameless self plug: I wrote an Icecast exporter a few years ago to get nice streaming stats in Prometheus: [https://github.com/markuslindenberg/icecast_exporter](https://github.com/markuslindenberg/icecast_exporter)

<comment><USER4> The chunk based solutions are rather high latency though, at least in typical implementations streaming sites relying on them are often 10-30 seconds behind live data.

IceCast is much faster than that at least - and not so problematic - <USER2> the stream starts a bit before live data so you have a second or two in which you can reconnect and match up the current ending of the data.

EDIT: Both of these are abuses of HTTP though while they probably should be using a dedicated UDP-based streaming protocol which wouldn't suffer from any of these issues. WebRTC goes in the right direction by using RTP for this.

<comment><USER3> Depends on how you configure buffers, chunk sizes, key frames and other parameters. It is possible to get the same or better latency with chunked streaming compared to Icecast. With DASH the client knows the timestamps of available chunks and the server time, so it can deliberately play as close to the live edge as possible or keep a larger buffer depending on network conditions.

Edit: If you want really really low latencies (<100ms) you can use WebRTC for broadcast streaming to the browser. If the network has a hiccup it will instantly show in the stream though, so for robustness chunked HTTP streaming is a much better choice at the cost of a few seconds latency.

<comment><USER5> Also how your end user configures their router (buffer bloat would be compounded here I think)

</comment></comment></comment></comment><comment><USER6> I still listen to several of these types of stations (even ran one for a few years in the early/mid 2000's).

Mine was essentially just an unlicensed stream of whatever I'd put into a huge Winamp Playlist, but I also had some friends from an online forum and we would put together silly jingles and "station ID" clips to sprinkle throughout the day as well.

Hosting was provided by a friend who worked for a small ISP/hosting company and he just gave me free access, saying that nothing I could use would make a dent in their available bandwidth (and he would let me know if that changed).

It was pretty fun and I even went "live" on the mic occasionally if I knew there were people listening, but eventually I started looking into going "legit". For a while it was looking like I could actually afford the basic ASCAP/BMI/etc. license with hobby money but that changed when laws were changed to require you to pay royalties per-song-per-listener (unlike terrestrial radio).

Ran it unlicensed for a little while after that but eventually shut it off as it got to be a hassle and I had too many other things going on in life. Still, it was cool to get emails from people around the world thanking me for my stream.

At a time when friends were paying monthly subscriptions for XM radio, I plugged my little Palm Treo into the car stereo and had my own station to listen to all day. Before commercial streaming, there weren't many similar options but a good set of Shoutcast/Icecast bookmarks gave me the best radio dial I could imagine...without the subscription!

I still listen to several of these stations when I'm not listening to something in my own library or the local NPR affiliate. There's something to be said for real human-programmed playlists from people who love music. I know Spotify playlists serve this purpose for many folks, but I haven't really gotten into that since I have so many options.

<comment><USER7> "For a while it was looking like I could actually afford the basic ASCAP/BMI/etc. license with hobby money but that changed when laws were changed to require you to pay royalties per-song-per-listener (unlike terrestrial radio)."

^^^ This is what really killed hobby streaming. The fear of getting popular and reported had a serious chilling effect on this scene. Coupled with the rise of streaming services that changed the music paradigm from ownership to on-demand access.

Yes the platforms had a bit of a learning curve... hand editing icecast config.xml beyond basic settings could be daunting.

But I still run icecast and shoutcast servers on digitalocean for $10/month with an autodj randomly cycling through my mp3 collection... comes in handy when entertaining and need my own music etc.

It is still possible to find great niche streaming stations using directories: [0] [https://www.streamfinder.com](https://www.streamfinder.com) [1] [http://www.radio-browser.info](http://www.radio-browser.info)

As a side-note - Nullsoft (shoutcast developer) was purchased by AOL and languished. Recently a French company radionomy purchased shoutcast from AOL and has relaunched it. They have a pretty mature radio broadcasting platform built on it. (I don't work there just admire their product)

<comment><USER8> That was really cool to read and I appreciate the links. Can you talk more about your setup on DO? Why are both icecast and shoutcast servers needed? And did you transfer all of your music to DO? Thanks!

<comment><USER7> I run shoutcast on :8000 and icecast on :9090 (iirc). Running both b/c I was just experimenting - both are not needed.

Uploaded all of my tracks and stored them on DO.

Ran a script to create a text playlist file.

Configured icecast to be "fed" by ices ([https://icecast.org/ices/docs/ices-2.0.2/basic.html](https://icecast.org/ices/docs/ices-2.0.2/basic.html))

Pointed ices to that file and have it feeding icecast.

Created a startup bash script to fire up all both servers on restarts so "it just works".

Maybe I should create a tutorial?

<comment><USER8> Thanks, that made intuitive sense to me. A tutorial is always appreciated though. :-)

<comment><USER7> Instead of reinventing the wheel - here is a tutorial I found helpful: [https://www.howtoforge.com/linux_webradio_with_icecast2_ices...](https://www.howtoforge.com/linux_webradio_with_icecast2_ices2)

</comment></comment></comment></comment></comment></comment><comment><USER9> The Icecast/Shoutcast protocol is really simple, and supported on basically all platforms. I've made some fun things with implementations [0] and I know a few guys who have made a business of it.

[0]: [https://github.com/livebassmusicrightnow/even- nicercast](https://github.com/livebassmusicrightnow/even-nicercast)

</comment><comment><USER10> Oh wow, I forgot about shoutcast and icecast, it's been a while!

Looking around, I see those stations still exist!

</comment><comment><USER11> A good example of the open source Lang Whack:

 _Nominate an open source project home page and challenge someone to find out the programming language._

The longest time or most traversed links wins. Sometimes you can read the whole site, understand the features, the architecture, the license, the supported platforms, the whole FAQ, how to contribute, the bug tracker, the mailing list, and even get to the main page of the github site, all without ever seeing a statement about the implementation language. The developers writing the site take it so much for granted, they never mention it.

However, the more obscure or fanboyish the language, the more likely it is to be mentioned early. Those developers are proud and delighted to be using that niche esoteric language. In some cases, they take more pride in using _that_ language than actually implementing something useful.

Of course, in this case, one might suspect that media libraries would be in C/C++, but there are many other fun examples out there. Do you have any strong contenders for Lang Whack champion?

</comment><comment><USER12> Slightly off topic, but there is an internet radio station I have set as my morning alarm, when my radio turns on or I switch to that station it always plays their intro track, then a song.

The intro is just a short ~3 second "Welcome to...".

It's the only station I've witnessed that does this but I like it, I wonder if icecast has a feature like that.

<comment><USER13> You can set an intro file in Icecast's mount settings

[http://icecast.org/docs/icecast-2.4.1/config- file.html#mount...](http://icecast.org/docs/icecast-2.4.1/config- file.html#mountsettings)

<comment><USER12> Nice thanks, I'm tempted to set up my own radio station for my morning alarm now!

<comment><USER13> I do something similar, using a liquidsoap script as the source to icecast

[https://www.liquidsoap.info/](https://www.liquidsoap.info/)

</comment></comment></comment></comment><comment><USER14> Reminds me of an "How-To" i wrote several years ago...

[https://thecodeartist.blogspot.com/2013/02/shoutcast- interne...](https://thecodeartist.blogspot.com/2013/02/shoutcast-internet- radio-protocol.html)

Capturing any Shoutcast stream from the terminal in 13 lines of C code.

<comment><USER15> Or wget.

</comment></comment><comment><USER16> If you want to set up a radio station which just shuffles a big playlist and takes listener requests (like my friends and I did), you will probably find my buddy's kawa project a better solution:

[https://github.com/luminarys/kawa](https://github.com/luminarys/kawa)

We started with icecast+liquidsoap and replaced it because whoo-ee is it crufty. Also check out our Python daemon for controlling it, indexing music, searching the database, and taking requests:

[https://git.sr.ht/~minus/stewdio-api](https://git.sr.ht/~minus/stewdio-api)

</comment><comment><USER17> I have to say, for someone who doesn't really know how those kind of things work (i usually work on web stuff) I tried to help a friend who had a radio already setup, and I couldn't wrap my head around how anything works.

The documentation is extremely poor (when any) and I'm still confused at the difference between icecast and ezstream, which does what and such.

It's too bad, because as another comment mentions, it does seem pretty simple and powerful once you know how it works, but the lack of documentation (official or not, yes I tried googling stuff) makes it almost impossible to do anything if you don't know how it works already.

<comment><USER18> I had similar experience when I played around with it a decade ago. I actually resorted to the closed source shoutcast server back then, which was almost plug and play, even though it was already pretty much abandoned software at that time.

</comment></comment><comment><USER19> A pleasant Icecast-using website is n10as (pronounced "antennas") radio[0]. I'm a longtime listener.

Personally, I like to use Icecast alongside Mixxx[1], an open-source DJ software that I highly recommend, to do live mixes of dance music over the web. Mixxx comes with configuration settings for broadcasting live audio within the program itself without the need for any extra client.

[0] [http://n10.as/](http://n10.as/)

[1] [https://www.mixxx.org/](https://www.mixxx.org/)

<comment><USER20> Wow, going to n10as website is an experience...

</comment></comment><comment><USER21> There remain a large number of streaming stations available. There's the icecast directory [1] and Streamfinder [2] and I'm sure there are more.

1\. [http://dir.xiph.org/](http://dir.xiph.org/)

2\. [http://www.streamfinder.com/](http://www.streamfinder.com/)</comment>


Hackers sell data of 130M Chinese hotel guests on dark web for 8 Bitcoin - <AUTHOR> https://thenextweb.com/hardfork/2018/08/29/china-bitcoin-data-dark-web/ <comment><USER2> > The company's developers accidentally uploaded the entire database to Github

Wait, from what I've heard, the programmer just uploaded a configuration file that contains the password of the database?

And oh boy, he's not the only one, Maybe GitHub can do something about it.

To the topic: This is the exact reason why I don't support any sort of system that log users personal information without user's control.

Because regardless how strong and secure you think your system is, all it takes is one careless action, then everything blows up.

<comment> dis-sys please don't over estimate their skills and qualification. the leaked database username is root and the password is 123456.

the screenshot of the github file can be access here: [https://www.secrss.com/articles/4851](https://www.secrss.com/articles/4851)

and yes, that "programmer" pushed such highly sensitive company information to his personal github repo.

<comment><USER3> This happens so frequently, and is easy to scan for, sadly.

What is missing is a way to programmatically, and secretly, inform people of their mistakes. I've personally found literally hundreds of examples of this and lack the manpower to file that many tickets....

<comment><USER4> Missing? I thought they already did that. IIRC a couple of my teammates reported getting emails from github about accidentally uploading AWS credentials and the like.

</comment></comment></comment></comment><comment><USER5> Folks, please remember to PURGE GIT COMMIT HISTORY of the file. It does no good to simply remove a password if it's there in plain (historical) sight.

[https://help.github.com/articles/removing-sensitive-data- fro...](https://help.github.com/articles/removing-sensitive-data-from-a- repository/)

<comment><USER6> And obviously rotate the exposed credentials - because even if it was only public for "a while" it could have been viewed by many users.

<comment><USER7> Plus it could've been archived by another website or a private scraping tool which looks for exactly these sorts of exposures.

Removing it from the git history is almost irrelevant and just stops future people who find it from sniffing around. The crucial part is rotating the credentials and ensuring the credentials aren't used anywhere else.

The second step should be reviewing all logs to ensure no unauthorized logins occurred before the credentials were changed (even if the exposure was only exploitable for a few seconds).

</comment></comment></comment><comment> dis-sys For me, the shocking part is not that someone selling such private data online. The really scary thing is the fact that such a doggy company with no privacy & network security concepts whatsoever actually managed to collect private data from 130 million people in a few years.

btw, the database was not uploaded to github, some moronic programmer hard coded the url/username/password of their database into a source file and uploaded that to github. As expected, the database can easily be accessed from the internet and more than 100G of data was stolen without being noticed.

<comment><USER8> Agreed.

compared to exactis and and experian leaks though, I am wondering what makes this data valuable? (pardon my ignorance)

Edit: appears you answered in another thread.

> this dataset contains the unique national ID, home address, cell phone > number, bank card number of 130 million Chinese. you also get to know who > they shared a hotel room with. it is _not_ common.

</comment></comment><comment><USER9> Points lost for claiming VPNs are a way to access the dark web. Points gained for referring to Tor as a privacy oriented tool.

<comment><USER10> They got that it's a privacy-related thing, but they still called it a browser...

<comment><USER11> I'm always conflicted on how "correct" articles like this should be. I would prefer that they were more accurate when it comes to technology, but for the average reader (who might leave a password in git) it might be better to over simplify

</comment></comment></comment><comment><USER12> wondering if there is a service to be built selling data through cryptocurrencies...

</comment><comment><USER13> so something that happens everyday is news worthy why? because he undersold? or is this type of data so common that it was only worth 50k USD?

<comment> dis-sys this dataset contains the unique national ID, home address, cell phone number, bank card number of 130 million Chinese. you also get to know the exact time and duration of who they shared a hotel room with. it is _not_ common.

<comment><USER14> > _you also get to know the exact time and duration of who they shared a hotel > room with. it is _not_ common._

This is Ashley Madison territory. A goldmine for extortions.

</comment></comment></comment><comment><USER15> Ignoring the moral/ethics concerns, how would a potential buyer know that the data is legit (if it even exists at all?).

Give me a couple of days and I'll create a fake -but real looking- set of records with millions of false customers (it would be made real enough by using public information)...

If you tell me that they'll provide an extract as "proof", I'll answer: it's easy to cook-up a realistic small sample, just using and remixing former leaks/hacks for instance...

In summary: the money aspect makes the data MUCH more suspicious than a "bragging/4tehLULz" hack.

<comment><USER16> Reputation and repeat business. You might get away with selling fake information once, i highly doubt you would get away with it twice.

I imagine its a similar scenario to how other dodgy markets work such as drugs or cryptolocker decryption keys, reputation and customer service mean a lot.

<comment><USER17> For hackers good opsec would require them to use a new persona for each separate hack. Compartimentalization. Linking separate hacks together is a really bad idea.</comment></comment></comment>


Why and how Google+'s interface is kicking ass - <AUTHOR> https://plus.google.com/u/1/115711522874757126523/posts/6EbG2uwnE3c?hl=en&tab=wX

<comment><USER2> This is a typical "look at me" post. It's saying nothing. Just a few examples:

> The Interface is not what but how.

... I could aswell claim: "The interface has to flow"

> The interface is not obvious

Opinion without any examples. This is like listening to a wine critic. I would usually respond that interfaces _should_ be obvious, but there is always a rebuke from people like him. You can't talk with someone who doesn't say anything.

> highly user centered in its interior design

Really? How is Facebook not user centered? How is anything not user centered?

> I know pretty much everyone I interact with

So, let me summarize: You interacting with people you know is a plus for Google+. This would totally not be possible with Facebook right?

Excellent marketer though, 750+ people sharing this? Wow. It will be interesting to see how many upvotes it gets on hackernews.</comment>


How the Mid-Victorians Worked, Ate and Died (2009) - <AUTHOR> https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2672390/ <comment><USER2> One of the paper's authors, Dr Judith Rowbotham, is a historian, not a scientist:

[https://www.plymouth.ac.uk/staff/judith- rowbotham](https://www.plymouth.ac.uk/staff/judith-rowbotham)

And here is the other author, Dr Paul Clayton, promoting "MonaVie" supplements:

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

MonaVie turns out to be a multi-level marketing company selling food supplements (the same kind of supplements that this paper goes out of its way to recommend) that defaulted on a $152m loan in 2015 and went into foreclosure:

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

<comment><USER3> So how did this get published by the NIH?

And is there a way to tell if it has been peer reviewed?

<comment><USER4> It was actually published in this journal: [https://en.wikipedia.org/wiki/International_Journal_of_Envir...](https://en.wikipedia.org/wiki/International_Journal_of_Environmental_Research_and_Public_Health). The journal charges a fee to have one's paper processed. I'm not sure if that is typical in open access journals, but the analogy to self-publishing fiction makes me slightly uncomfortable.

</comment></comment></comment><comment><USER5> This doesn't seem like a fair comparison because you are comparing the lifespans of a population that includes people who needed modern medical attention to survive to age 5 to another population that contained none of those people.

<comment><USER6> Agree with that argument, but that still would not explain 90% difference in degenerative diseases occurence, unless you make the extraordinary claim that only 1 person of 10 nowadays would have survived in the Victorian Era.

<comment><USER7> That's not what a 90% reduction in the incidence of degenerative disease means. If degenerative disease occurs to 1 in 1000 people, a 90% percent reduction would be from that to 1 in 10,000 people. There's no need to make that claim.

</comment></comment></comment><comment><USER8> > mid-Victorian period in the U.K. reveals that life expectancy at age 5 was > as good or better than exists today, and the incidence of degenerative > disease was 10% of ours

This is surprising, to say the least.

<comment><USER9> >life expectancy at age 5

This is the catch. The kid with asthma or diabetes didn't make it to age 5 back then, but today he does. Replace asthma or diabetes with other conditions. If your higher infant mortality is weeding out everyone who has any chronic disease which may effect longevity then this is what you get. The downside is that parents back then were burying a lot of babies.

</comment></comment><comment><USER10> Is it possible that the high infant mortality weeded out more children from less healthy socioeconomic and genetic backgrounds than today? So on average you'd get healthier adults which would live longer? Also, I don't like their comparison of the life expectancy of a Victorian 65-year old with a modern 5-year old. Of course the former would be relatively high.

<comment><USER11> Yeah, that comparison is so jarringly wrong it makes me question the rest of their research.

Modern Britons' life expectancies at 65 which actually are "comparable" with Victorian life expectancies at 65 are available in well publicised, frequently-updated and granular time series from ONS[1]. But since they suggest life expectancy is about twice as long for todays' 65 year olds as Victorian ones the authors appear to have deliberately distorted the truth by choosing a less relevant basis for comparison instead.

Needless to say, if they're prepared to commit statistical frauds as blatant as this, the rest of their claims should be regarded as suspicious especially the more outrageous longevity claims. It wasn't a surprise to find that one of the authors runs a nutrition supplement company and has been featured on Ben Goldacre's Bad Science blog before

Which is a shame, because there probably are valid, non-obvious points about aspects of Victorian diets and lifestyles that were healthier than ours, buried under wilfully misleading claims about degenerative diseases being a purely modern phenomenon.

[1][https://www.ons.gov.uk/peoplepopulationandcommunity/birthsde...](https://www.ons.gov.uk/peoplepopulationandcommunity/birthsdeathsandmarriages/lifeexpectancies/bulletins/lifeexpectancyatbirthandatage65bylocalareasintheunitedkingdom/2014-04-16)

<comment><USER12> Indeed. The like for like historical comparisons [1] that cover the period of the paper to today lend themselves to a very different interpretation. If anything, life expectancy for a 65yo dropped a little through their "golden age" and has been increasing since.

Also, if you do the 5yo comparison, life expectancy for a male was 54.6 in 1841 and 79.4 in 2011.

As this information is trivially available and the life expectancy claim is central to their argument, it's hard not to conclude that the article is willfully misleading.

[1] [http://visual.ons.gov.uk/how-has-life-expectancy-changed- ove...](http://visual.ons.gov.uk/how-has-life-expectancy-changed-over-time/)

</comment></comment></comment><comment><USER13> This actually can go back to the middle ages. Obviously, middle ages longevity is by no means comparable to the 1800s, let alone now, but the people who made it past say, 30-40 did live until their 70s, even 80s. People didn't drop dead at 35.

<comment><USER14> Also in Diogenes Laerteos' book most philosophers from 7th century BC to 3rd AD live about 70-80 years (the book itself written about 3rd AD).

</comment></comment><comment><USER15> Infant mortality is constantly elided in order to exaggerate lifespan increases. Not to imply that infant mortality isn't a good thing to reduce, but when you say the average person dies at 50 and there's no concentration of people dying around 50, but instead concentrations in infancy and at the same age people die now (or later), the mean is deceptive.

<comment><USER16> I don't know why, but this information has come up a lot in conversation the past week for me. My family, which mostly live unhealthy sedentary lives, discussed dying at 60. I was trying to make the point to them, if we gathered the statistic for people who live over 40, you would find that the average lifespan is much close to 80-90. The reason being is infant mortality and youthfulness. When you are young, you take many more risks (ie. driving fast in your car, drinking and drugging, etc.). There is a certain threshold age where you are just competing with Cancer and getting old, but the rate of death is much lower.

Now I should just do some real research to back up that for them with statistics.

<comment><USER17> Wars have a statistically significant impact on life expectancy for young adults (males typically) as well. You can see it in the cohorts aged around massive conflicts.

<comment><USER18> Thanks in part to globalization and free trade, most of the West haven't had a demographically significant war in ~70 years.

<comment><USER17> Yep. Luckily. But a) the rest of the world has and b) 70 years is a single generation, thus impacting the cohort in the data.

</comment></comment></comment></comment></comment><comment><USER19> They do not take into account the mass introduction of environmental contaminants following the 1880s Industrial Revolution.

</comment><comment><USER20> Assuming this is all accurate, imagine if the Mid-Victorians had access to the vaccines, antibiotics, surgeons, and dentists that we do.

</comment><comment><USER21> "Our recent research indicates that the mid-Victorians' good health was entirely due to their superior diet. This period was, nutritionally speaking, an island in time; one that was created and subsequently squandered by economic and political forces. This begs a series of questions. How did this brief nutritional 'golden age' come about? How was it lost? And could we recreate it?"

Very interesting. My take on the rest of it shows that they ate more vegetables relative to calorific intake, and less sugar. I'm not convinced on the drinking or tobacco comments - I think these are things that are not as prevalent in my generation as much as the authors may have thought it is.

<comment><USER22> wasn't sugar fairly expensive at some time?

</comment></comment><comment><USER23> The data space around this is so complex, it is simply not possible to come to single, clear conclusions.

Lots of interesting questions, no answers to date:

1., Did the introduction of electricity and mass refrigeration amplify/cause the deterioration of public health?

2., Did the massive losses of young, fit, male population in WW1 and WW2 lead to the decline of public health in the partaking nations? It stopped fine genetic material from procreating (you needed to fulfill health standards to serve after all). Losses of that scale were not encountered before.

etc etc.

Correlation, causation, the usual.

</comment><comment><USER24> Forget the paleo diet. Someone ought to start the Victorian diet.

<comment><USER25> I suspect a diet of no cars would be very unpallatable these days.

<comment><USER26> Even if offset by trains and dirigibles?

<comment><USER25> I think people just did not travel that far and would think nothing of walking 5-10 miles to work. Public transport was not very prevalent outside of cities I suspect.

</comment></comment></comment></comment><comment><USER27> So we need to do two things?:

1\. Move a lot more (twice as much). What would this entail in today's society? Fitness?

2\. Eat twice as much as we do now and focus on fish, fruits and vegetables?

<comment><USER28> Doubling calorie needs is _hard_ if you have a sedentary job in the modern world.

Walk / Cycle to work every day at a fast pace (1 hour total). Play some kind of sport daily at lunchtime / after work (1 hour). You've just used an extra 1000 calories or so. Congratulations: you're almost half way to your goal of doubling your daily calorie output.

Plus you still need to spend time doing all the other stuff to keep your life going outside work.

It can be done, but modern life guides people to a constant sedentary lifestyle. Drive to work, sit at home in the evenings watching TV etc etc.

</comment></comment><comment><USER29> Perhaps we have become too inactive. Perhaps only the fittest, healthiest individuals made it into adulthood and therefore the population enjoyed long, healthy lifespans. Perhaps our genomes have degraded without strong negative selective pressure against human ailments.

But I doubt a new diet fad will be the elixir for longevity.

</comment><comment><USER30> The negative and dismissive comments here are enlightening. Progressivism (the religion of many of the narcissistic STEM grads on HN) would appear to in reality be a form of temporal parochialism; for this Star-Trekian religion to function, the past simply _has_ to be worse than the present and future.

<comment><USER22> Can you tell me what you mean by "negative and dismissive"?

If negative includes perfectly valid criticism, then who cares? Dismissive? Which comments?

Rather than generalising over this thread-tree, why not respond to some? It seems a bit early for you to be invoking a stereotype.

</comment></comment><comment><USER31> One issue which isn't discussed much is so-called 'mutational meltdown' from about 1800 in England whereby the (good and laudable) improvements in public health, child mortality and so forth has led to an increased burden of genetic mutations with each generation.

</comment><comment><USER32> > They had relatively little access to alcohol

This seems very wrong from what I know about Victorian Britain

</comment><comment><USER33> If this is indeed true I'd imagine that most of the cause is diet based. Sugar is good for hummingbirds, not people.

<comment><USER34> > _I 'd imagine that most of the cause is diet based_

From the introduction:

 _Our recent research indicates that the mid-Victorians' good health was entirely due to their superior diet._

</comment></comment><comment><USER35> what did they eat?

<comment><USER24> It's right there in the first paragraph:

> high intake of fruits, whole grains, oily fish and vegetables

</comment></comment><comment><USER36> The article is not as focused on infant mortality as the post title suggests.

Am wondering about the statement regarding cancer being rare. Is that only because people didn't live long enough?

I went to a Wal-Mart this past weekend, I know full well what is wrong with contemporary health--excess eating!

<comment><USER37> "Is that only because people didn't live long enough?"

According to the article, their life expectancy after the age of 5 was comparable to ours.

"excess eating"

According to the article, their calorific intake was approximately twice ours because they expended so much more calories working & keeping warm. 3000 calories for a "sedentary" man, over 5000 for a labourer.

<comment><USER36> It makes no sense unless we truly have way more carcinogens in our modern world. Something doesn't add up--either the stats are skewed because modern populations are so much larger, or record keeping was bad, or...something.

Also, you downvoted me, then posted "life expectancy after age 5" which, in my thinking, only validates that article has little to do with "infant mortality" since age 0-5 covers a wide band of people who are not infants, right?</comment></comment></comment>


Can Facebook be considered a utility? - <AUTHOR> http://www.nytimes.com/2010/07/25/weekinreview/25brustein.html?ref=technology <comment><USER2> I've argued this for a while now. Facebook is the de facto identity provider on the internet. Having a Facebook account is analogous to having a phone number or a social security number. In this day and age, living off the grid simply means not having a Facebook account. If Facebook's that important, is it a public utility? Should it be regulated? What does this mean for international users? Would foreign governments be OK with that?</comment>


DNS TTL violations in the wild, measured with RIPE Atlas - <AUTHOR> https://labs.ripe.net/Members/giovane_moura/dns-ttl-violations-in-the-wild-with-ripe-atlas-2 <comment><USER2> They should also mention the bots on VPS providers that enumerate DNS non stop. They don't even look at TTL's. There are bots on AWS that hammer my name servers continuously for the same records, despite my 24 hour TTL.</comment>


A Double Handful of Programming Quotes - <AUTHOR> http://www.hackification.com/2008/12/23/a-double-handful-of-programming-quotes/ <comment><USER2> "Measuring programming progress by lines of code is like measuring aircraft building progress by weight."

        - Bill Gates

Every once in a while, I come across something new that surprises and impresses me about Bill Gates. If luck had fallen differently and Bill had become merely a millionaire, I think geeks would find him much, much cooler.

<comment><USER3> When I had a chance to meet the guy, these were the things that struck me, in order:

He looks really old, way older than he does in photos. Must be all the stress.

He's very, very good at thinking on his feet.

He's actually quite pleasant to interact with and has milder views than you might think. People who know him have told me that the aggressive, brash behavior was merely a persona that he deliberately cultivated as part of his management style.

(Incidentally, I've also interacted with RMS; he immediately came across as as a jerk. I can't help feeling that this has something to do with his project not reaching the heights that many feel it should have.)

<comment><USER4> RMS should by all rights be pretty happy: GNU replaced Unix on servers, and has made more progress on the desktop than Unix ever did.

I guess he never predicted that something that wasn't Unix would be the dominant OS. In essence, he chose the wrong enemy.

Can you imagine what the world would be like if RMS had created 'GNU's Not DOS' instead?

<comment><USER5> You mean 'GND's Not DOS' :)

<comment><USER4> I sure do. In fact I'd written GND in my mind. But much like trying to write 'Linus' and not 'Linux', you have to really concentrate not to follow capital g, capital n, with capital u. :^)

</comment></comment></comment></comment></comment><comment><USER6> "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."

But if you implement a DSL and associated debugging tools and other niceties you can write your code as cleverly as possible AND be smart enough to debug it because it's so easy. But beware of that phase where you have a nice language but very leaky without supporting tools because it hurts!

<comment><USER7> This is a tangent, but since I know you're a Lisp guy, I'd like to hear about how you go about debugging. Currently working in emacs/slime/sbcl, it's my one real complaint. Really all I want is a normal single-stepping debugger with the ability to view local state. That doesn't seem like such an inordinate desire, but I haven't seen any setup that comes close to it, which is annoying. My email address is in my profile if you'd care to compare notes about this.

<comment><USER6> I'm sorry, I don't really have any insightful perspective on debugging. But maybe I can elaborate a bit on what goes wrong if you make a new DSL without keeping in mind debugging considerations.

\- You'll want to maintain a separate stack for your embedded DSL. It's really, really hard to debug when Lisp's stack and your DSL's get intertwined in a complex way in your stack trace. When I just had my straightforward HTML and CSS "closure-compilers" this wasn't such a big deal but when you make a language with more funky semantics where the order of evaluation is less obvious it's a real problem.

\- When you compile something (say, your semantic representation of HTML into optimized closures), you should always keep the more semantic representation of what you're compiling around. As an example of this, at first I made a macro to directly generate Lisp code that generates HTML source code. That was bad because the only thing I could do with my HTML is output it.

But it turns out there are many things you can do if instead you make a macro that generates Lisp code that will build a semantic representation of HTML as Lisp objects: you can interpret it directly or optimize it or compile it directly or make a single-stepping debugger... The possibilities are limitless!

Also, to preserve semantics as much as possible I think a rewriting strategy is great. You start with your super abstract representation, and then you rewrite in successive steps to an ever more concrete and low-level representation until you're done. For example, in an HTML system you'd have a login-box object that rewrites to HTML lisp objects that rewrites to HTML source code. It would be great to have a way of linking the various pieces at the different semantics level. For example, having some feature Explain that when you point to a certain character in the HTML source, it could tell: "This character was generated as part of the value of the text attribute of a img node that was generated in that page because it's part of the sidebar that's in the template of this part of the site"... Anyway, what I mean is that sometimes you want to focus on the high-level semantics and other times on the low-level, and you should be able to switch contexts at will.

PS: I'm not even sure what exactly I was talking about anymore. Maybe I should start a blog...

<comment><USER7> That's very plausible, and your thoughts on intermediate representations are quite interesting. Now I'm going to change the subject back to my tangent. :)

Maybe it wouldn't be so "really, really hard to debug when Lisp's stack and your DSL's get intertwined in a complex way in your stack trace" if Lisp stack traces weren't so hard to debug in the first place. At least, they are for me. If anyone has any hints, please chime in. I'm getting tired of BREAK-and- FORMAT-driven-debugging. When _Visual Studio_ does anything better than a Lisp environment, that's a goddamn emergency.

In the meantime, I think I'm going to try Clozure-with-a-Z and see if life is better.

p.s. If you do write a blog about this stuff, post it here. I'll read it.

<comment><USER8> You can debug Clojure-with-a-J code using JSwat. <http://clojure.org/getting_started#toc5>

<comment><USER7> Heh. That comes from the old Kids in the Hall characters Cathy-with-a-C and Kathy-with-a-K.

I'm probably not going to use Clojure any time soon, though am following it at a distance.

</comment></comment></comment></comment></comment></comment><comment><USER9> It's times like this when I am glad that I can read comments here instead of being stuck with the comments on the actual blog.

</comment><comment><USER10> Not that this has much to do with the article, but I don't like "double handful." It's very awkward. How about . . . metric dozen! Because it's close to a dozen and works with metric's 10-ness.

<comment><USER11> Or, y'know, "ten".</comment></comment>


Investor update on quarterly guidance - <AUTHOR> https://www.apple.com/newsroom/2020/02/investor-update-on-quarterly-guidance/ <comment><USER3> I am surprised the stock market is holding up while the virus can have a big impact in world trade. Any guesses ?

<comment><USER4> The trump trade policies (specifically, the China tariffs) have reduced the exposure of many US firms to Chinese goods. A lot of factories shifted to Vietnam and other SE Asian countries. Europe is already showing early red flags in their stock indexes, due to their closer ties to China.

If COVID-19 spreads further throughout SE Asia unchecked, expect the SP500 to catch up with reality in a hurry.

<comment><USER5> Would it be better or worse for China if the disease spread to countries that compete with it economically? If it helps China at all, would China be able to resist the temptation to allow infected individuals to travel to those countries?

<comment><USER6> Well, I suppose in terms of comparative advantage, misery loves company, so better. In terms of absolute number of people with rice in their bowl on any given day, I suspect worse.

</comment></comment></comment></comment><comment><USER7> Given the economic effect of health hazards of viruses like this on big companies like Apple, I wonder if Apple itself couldn't justify investing into research for treatments and vaccines as a hedge against supply line damage. Makes sense purely in terms of business, doesn't it?

Near as I can tell, most of the vaccine development (outside of China) is being funded by charities right now. Drug companies were burned by Ebola investments and are not interesting in working on COVID-19. But if Apple thought they could speed up recovery by even a short time with careful investment here they'd more than make their money back.

>"One would think that the industry has the reserves to jump at this challenge. But none of the four top vaccine companies has shown significant interest," says Dr Ellen 't Hoen, director at medicines law and policy at University Medical Center Groningen in Amsterdam.

>Also speaking at last week's Aspen Institute event, Dr Anthony Fauci, director of the US National Institute of Allergy and Infectious Diseases, said no major pharmaceutical company has come forward to say it would manufacture a vaccine for Covid-19. He called it "very difficult and very frustrating".

>"Companies that have the skill to be able to do it are not going to just sit around and have a warm facility, ready to go for when you need it," Dr Fauci said.

>For Covid-19, charitable donations are being used to spark pharma companies into action to find a vaccine. [https://www.bbc.com/news/business-51454859](https://www.bbc.com/news/business-51454859)

<comment><USER8> > I wonder if Apple itself couldn't justify investing into research for > treatments and vaccines as a hedge against supply line damage. Makes sense > purely in terms of business, doesn't it?

I would say they already do by building the best laptops, tablets and smartphones in the world, increasing the productivity of the biomedical researchers who use their products.

In addition, their investments in Apple Watch and Apple Health long term I think are the future of healthcare. In 30 years I'd expect everyone will have the equivalent of their own doctor's office/diagnostic lab in their home. There won't be counterproductive mass-runs on hospitals because most things will be diagnosed at home. I think you can draw a pretty direct line from where Apple Watch is today to that future.

> Drug companies were burned by Ebola investments are not interesting in > working on COVID-19.

I'd guess there are hundreds of companies working on COVID-19 vaccines. Here's an interesting one that was sent to me last week: [https://news.ycombinator.com/item?id=22313320](https://news.ycombinator.com/item?id=22313320)

<comment><USER7> >I'd guess there are hundreds of companies working on COVID-19 vaccines. Here's an interesting one that was sent to me last week: [https://news.ycombinator.com/item?id=22313320](https://news.ycombinator.com/item?id=22313320)

Yes, the BBC articles mentions they are mostly smaller companies funded by things like the Bill and Melinda Gates Foundation. This feels like a coordination problem given the size of the economic damage from stuff like this.

Ideally it would be governments picking up the slack, but if we are so inefficiently allocating money to vaccines that have such big impacts on Apple's supply lines, there's a business case for them hedging with investments of their own.

</comment></comment></comment><comment><USER9> The Chinese New Year, Jan 17 through Feb 8, is also a period where less manufacturing activity normally occurs. Why I know this? I had to plan our inventory and sales logistics around this period every year for seven years. We would order production so that it would be completed and shipped to us prior to Chinese New Year, or start production immediately after. We never wanted production to occur across the three week down period.

I strongly suspect that large company logistics team, and certainly an expert like Tim Cook, already have this contingency in place. However, since CV has extended beyond the New Years time frame, those contingency plans will start to break down.

<comment><USER10> One problem Apple faces is getting factory workers who went to their hometowns back to the factories. Apple had actually planned to ramp up production starting in the end of February. So this interruption is a larger hit than you might expect at this time of year.

[https://www.reuters.com/article/us-apple- iphone/coronavirus-...](https://www.reuters.com/article/us-apple- iphone/coronavirus-outbreak-may-disrupt-apples-iphone-production-ramp-up- plans-nikkei-idUSKBN1ZR0J6)

</comment></comment><comment><USER11> This doesn't seem to have affected the stock price today, including in after- hours trading. So either it's been gradually priced-in, or...

...is this actually expected to affect Apple once the year is over? Presumably people will just wait a couple months to buy a new phone, and below-average sales now will be matched by a wave of above-average sales afterwards?

The need to upgrade your phone doesn't go away. And wouldn't all cell phone manufacturers be similarly hit these days? So it's not like switching brands away from Apple is more of an option?

Just curious... happy for someone to correct me if I'm making wrong assumptions here.

<comment><USER12> > This doesn't seem to have affected the stock price today

The market is closed today (Presidents Day). We won't find out the effect until tomorrow.

</comment></comment><comment><USER13> What other companies do you expect will be impacted in a similar way?

<comment><USER14> I'd expect anything that is manufactured in China to be in a similar situation.

POs have already extended out significantly (some of our parts have more than doubled). Those estimates are at best guesses, I would be surprised if they don't continue to slip.

Manufacturing supply chains are at incredibly low levels.

The second reason (slow sales in China) would really only affect things that are there, obviously.

<comment><USER15> Totally. Regardless of whether its China or some other place on earth, almost complete centralization of manufacturing supply chain from teddy bears to cold rolled steel and everything in the middle; we're gonna have a bad time. Now if that said country offers nothing in return in terms of fairness, flat-out bans foreign business from competing, subsidizing national corporations in return for citizen information, ruled by an authoritarian regime with fascist underpinnings, and has a public health emergency; boy we're headed towards a recession until the rest of the world equips with multiple points of failure in their supply chain. I am sure this small dip will lead to unoptimization of local optima and leads us into a stronger future where there is fair competition, stronger supply chain, and efficient international trade.

I am sorry to bring up political aspects, but I hope it only portrays the objective state of the situation without any prejudicial color.

</comment></comment></comment><comment><USER16> The best part of this is watching very smart people discover that their highly optimised spreadsheets aren't anti-fragile.

<comment><USER16> Interestingly, a literal rerun of the hard drive motor shortage due to flooding in Thailand a few years back.

<comment><USER10> That shortage took many quarters to work itself out.

</comment></comment></comment><comment> dang-its-dumb I've heard that our quest for incessant optimization in warehousing and inventory management means this pandemic is catching everyone flat-footed.

The McKinsey consultants of the world have pushed for more and more "turns" (how many times your inventory turns over completely in a warehouse - <USER2> orgs aim for 3+ turns a year) and minimizing your "cash to cash" cycle (you pay for manufactured inventory, you need too turn it BACK to cash QUICKLY - don't have it sitting on warehouse shelves)

Now we don't have enough slack in the supply chain. Doesn't really matter much (except economically) for iPhones etc - but means a lot when you're running JIT (just-in-time) inventory management for things like hand sanitizer or medical masks.

<comment><USER17> Then again, all those people who can't buy these products now due to temporary shortage aren't going to just _forget_ that they wanted to buy a new iPhone.

I believe there was a similar reason for the auto industry to come back so strongly after the 2008 financial crisis. All those people who held off on car purchases in hard times exited the crisis with aging vehicles that needed to be replaced.

I would think that this sort of shortage would harm a consumables company like Coca-Cola a lot more than an "appliance" company like Apple, Toyota, or Whirlpool.

<comment><USER10> Sure they will.

Consumers in China who wanted a new iPhone would probably rather stay at home than go out to buy a discretionary consumer device like an iPhone. Many will have less income with which to get by, meaning they wouldn't be able to afford an iPhone even if they were willing to go buy one. And with Apple stores closed in China, it's kind of tough to buy an iPhone there.

Meanwhile, people who really need a smartphone elsewhere will take this opportunity to buy a different phone.

Economic shocks have long-lasting aftereffects. Don't assume that the result of this hit to iPhone production is simply a phase shift of Apple's product cycle and consumer demand. For example, Apple will probably take cash away from its next stock buyback in order to cover the upfront costs of this hit to its revenue. And they may not be able to provide the kind of pricing and incentives that they were planning to provide before the virus hit.

</comment></comment></comment><comment><USER18> Wouldn't it be great if 2019 was the last time we got new stuff?

<comment><USER19> Uhhh no. The innovation cycle will be the only thing keeping us alive in +4C world we've locked ourselves into.</comment></comment>


submissions bug - <AUTHOR> http://news.ycombinator.com/submitted?id=curi test <comment><USER2> good. I was getting tired of all those polls.

</comment><comment><AUTHOR> My poll is missing.

<http://news.ycombinator.com/item?id=129154>

<comment><USER3> I have the same problem with polls not showing up.</comment></comment>


TweetDeck launches web client alternative to Twitter.com - <AUTHOR> http://blog.tweetdeck.com/testing-the-future-introducing-tweetdeck-web

<comment><USER2> Isn't this exactly what Twitter said they DON'T want to see (replacement clients using the Twitter API). Is TweetDeck just "grandfathered in"?

<comment><USER3> They "recommend" people don't build businesses like TweetDeck, because they believe there isn't enough room. However, it seems to me that TweetDeck has done pretty well for itself.

<comment><USER2> FTI - here's the Twitter developer group post:

[http://groups.google.com/group/twitter-development- talk/brow...](http://groups.google.com/group/twitter-development- talk/browse_thread/thread/c82cd59c7a87216a?pli=1)

It seems stronger than merely a "recommendation" to me. They flatly state that new apps may not replicate the mainstream Twitter experience. Existing developers are allowed to continue to "serve their customers" - but I think developing new product lines as TweetDeck is doing, is going to run afoul of the new API terms of service.

Unless they have a side agreement, I expect some sort of battle to arise from this.

</comment></comment></comment><comment><USER4> We've been working on something like this but better for a while: <http://meeep.com> A totally customizable Twitter web client (e.g., you can upload your own userscripts, HTML templates, etc.).

</comment><comment><USER5> Completely quixotic. Twitter wants to own the client experience and as owner of the platform, they have the power to do so.

Twitter's now-infamous developer group post also listed a number of areas Twitter doesn't want to own. Reading between the lines, they're giving client companies the opportunity to transition to another line of business. If the client companies don't take the hint, Twitter's going to eventually play hardball.

<comment><USER6> Why doesn't Twitter buy TweetDeck? TweetDeck appears to be a better user experience than anything that Twitter have come up with themselves so far. If Twitter does want to own the client experience on their platform then what better way of doing so?

<comment><AUTHOR> Because UberMedia already bought it. [http://thenextweb.com/industry/2011/02/12/ubermedia- acquires...](http://thenextweb.com/industry/2011/02/12/ubermedia-acquires- tweetdeck/)

Don't think they'll give it up that easily

<comment><USER7> Apparently they haven't, one of the panelist (from Tweetdeck) at Geeknrolla said he couldn't talk about any takeover speculation, which implies that it might not have gone through.

</comment></comment></comment></comment><comment><USER8> This is based on the core of the Google Chrome app. Does this mean it is expected to replace the Chrome app? And does it have any new features? I've been missing the ability to filter certain apps from the Chrome app yet still find it the best Twitter desktop app.

</comment><comment><USER9> How interesting! This could put Twitter in a very interesting place -- perhaps, one day, they won't need to maintain a _client_ for their service!

</comment><comment><USER10> I guess next in the pipeline is TweetDeck Web Desktop App :)

</comment><comment><USER11> I called it a while ago. [http://oonwoye.com/2011/03/13/dont-hate-twitter-we- just-need...](http://oonwoye.com/2011/03/13/dont-hate-twitter-we-just-need-an- alternative-part-1/)

<comment><USER12> You called _what_ a while ago? I don't see anything in there about TweetDeck making a Web version.

</comment></comment><comment><USER13> tweetdeck needs an api, bad.</comment>


Ask HN: Which are the best approaches for in-place parallel sorting? - <AUTHOR>

<comment><USER2> [http://stackoverflow.com/questions/3969813/which-parallel- so...](http://stackoverflow.com/questions/3969813/which-parallel-sorting- algorithm-has-the-best-average-case-performance)

And for good measure, [http://letmegooglethatforyou.com/?q=in-place-parallel- sortin...](http://letmegooglethatforyou.com/?q=in-place-parallel-sorting)</comment>


Ask HN: Hacker to Hobbyist to Entrepreneur?  - <AUTHOR> Background: For a long time, I've been hacking around with code and design; starting a bunch of tiny projects but never finishing them. Recently, having discovered the beauty of persistence, I've started taking one project to completion and I'm getting there slowly but surely.
From my perspective, I see two classes of problems to solve: 'technical' (know-how to write, debug, deploy and secure a webapp) and 'business' (learn how to understand customer needs, acquire them and solve their problems)
Question: Is there an established or 'well worn' path for going from a Hacker to an Entrepreneur? I have sort of assumed that its 'hack with code' -> 'finish and ship a couple of simple web apps for free' -> 'understand a market, acquire customers and then build a real product'. Would any HN'ers be willing to share their stories? <comment><USER2> I've been studying this for a while, and the topic is personally very important to me, so I'm going to plug three books (affiliate links ahead, just google the titles if you want)

The first is the "E-Myth" -- great book on the difference between a manager, technician, and entrepreneur. Start here for the vocabulary and basic concepts you'll need: <http://amzn.to/cn4BHT>

The second is a little-known personal favorite, "A Good Hard Kick in the Ass". It's a little dated, but it's a great book about generally separating what's important from what isn't. I found it was a good book to learn attitude. <http://amzn.to/hLi5xc>

The last book is the book I'm currently reading: "Start Small, Stay Small" <http://amzn.to/ictZdR> I haven't finished it all yet, but the entire premise of the book is the move between coder and entrepreneur. It exactly answers your question.

From there, you can move on to blogs (which are great, but I find them a little too much in bulleted format for my tastes) or books about the nuts and bolts of what makes a great startup, like customer-driven development, or lean startups, or how best to handle yourself during the development process, like that stoicism book I read last year. Another awesome book. Lots of other great material out there. Too much, in fact.

Hope that helps you get started. I've got an entire site dedicated to answering the question of how hackers become entrepreneurs, <http://hn- books.com> Might want to check that out too. The initial book list was generated by a google search on Hacker News (hence the "hn" in the title) for books that we consistently recommend to each other here. Your question, or variations on it, is one of HN's recurring themes.

<comment><USER3> I've been meaning to check out "Start Small, Stay Small" for a while, glad you recommend it. Two more books to add as well:

4\. "How to Get Rich" (Dennis) <http://amzn.to/5s0Z02> \- Not your typical get-rich-quick book. This book is all about the hard work and sacrifice it takes to accomplish your goal.

5\. "Do More Faster" (Feld & Cohen) <http://amzn.to/culsRy> \- Was recommended by a friend, this is probably the next best thing to doing TechStars or YC without actually being there.

</comment></comment><comment><USER4> There isn't a handbook: There are thousands. All of them written by people who made it, academics who understand it or people who were on the sidelines when it happened.

The tricky part is: You just have to do it. The handbooks won't help you with that, unfortunately.

Ship it and see what happens.

<comment><USER5> You forgot the many people that write handbooks full of made up shit. So you have to keep the following two rules in mind:

Be careful of whose advice you buy.

Free advice is not always free.

</comment></comment><comment><USER6> Your question tells me you have as good an understanding of the process as you need. Also, I think a good entrepreneur has a sense of what they _can't_ do, ie. marketing, etc. That understanding comes with some failures as far as I can tell.

</comment><comment><USER7> This is definitely a good place to start reading: <http://www.kalzumeus.com/start-here-if-youre-new/>

<comment><AUTHOR> Great link, thank you!

</comment></comment><comment><USER8> There is and it's called _The Four Steps to the Epiphany_ by Steven Gary Blank.

[http://www.amazon.com/Four-Steps-Epiphany-Steven- Blank/dp/09...](http://www.amazon.com/Four-Steps-Epiphany-Steven- Blank/dp/0976470705)

</comment><comment><USER9> You need to spend a lot of time understanding your customers. Who are they? What problem do they want solved? And, what gets them to part with their money? I would start with "Four Steps to the Epiphany" and read up about lean- startups. But, the most important thing to know is that you will have to be a salesman. You'll need to sell your idea to partners, your company to investors, and your product to clients. If you're not a salesman, hook up with a partner who is.

All that being said, your perspective on execution (i.e. complete your product) is exactly right. There are a lot of good ideas and great salesmen in the world. The secret to building a company is to have that and execute on your designs.

</comment><comment><USER10> Check out my book - it's designed to be a comprehensive introduction to business, particularly for hackers: <http://www.amazon.com/gp/product/1591843529/>

</comment><comment><USER11> Reading books is only going to get you so far.

Join a startup for a few years and get operational experience. While you're there don't just limit yourself to hacking. Get to know your co-workers (should be easy, it's a small organization right?), offer to help out cross- functionally, etc. Gain visibility and understanding into what the founders and managements think about long-term and on the day-to-day.

Once you've got your feet wet, then take the jump yourself.

</comment><comment><USER12> I found a good partner that complimented my skills so I could focus on the business part while my genius hacker partner could focus on the technical problems. Don't go it alone, find a great partner, someone will challenge you, encourage you, and inspire you. Together, you both get excited and the business will be born.

</comment><comment><USER13> I would find your own path and avoid drinking the silicon valley / VC-hyped Kool aid.

</comment><comment><USER14> More like "build a real product, acquire customers, and then understand a market"

</comment><comment><USER15> This is topic that is near and dear to my heart as well. I'm not sure there is a well worn path especially if you're looking to start a business (i.e. something that puts cash in your pocket vs. "starting a startup").

From my experience the trickest and most difficult areas are around customer acquisition and monetization. Both are sort of black arts and are tricky (at least for me) to learn. As best as I can tell these each take a lot of practice. Anyone can list out tactics from the "big list" but knowing which ones to use when and how to taylor them to a particular business isn't easy. Typically you can't know which will work in a given scenario until you've tried them in the individual business in question. It appears that this is an area where deep business experience (at a P&L level) really pays off.

You talk about build, learn and then acquire but the devil is the details and your perspective on how to approach these things is of critical importance.

I think there is huge benefit (especially for technical folks) in spending some time upfront during the idea stage (i.e. _BEFORE_ coding) really thinking through _who_ will pay you, _why_ they will pay you and a rough sketch on how that scales up into some meaningful cashflow. Do the back of the envelop arithmetic and prove it makes some basic sense. This sort of backwards thinking on how you will actually make money from your efforts is the difference between coding software and starting a software business regardless of how small or large it will be. This business level thinking should be a key part of your everyday idea validation process. Something that you are doing all the time as you have ideas for businesses to start. It helps you develop some instincts on what might make money and what actually won't.

Obviously you'll be wrong in a million different ways that you'll never know until you actually plough forward with an idea but you'll be less wrong than you would have been if you just pick the first cool idea and start coding. You'll also develop useful assumptions that you can check. Learn to share these thoughts with other people (and potential customers) to deepen your understanding.

You're likely already in good position on the technical side so I'd suggest focusing on sales, marketing and general business side.

For books you'll likely find a lot of value on <http://personalmba.com/best- business-books/> and on [http://www.joelonsoftware.com/articles/FogCreekMBACurriculum...](http://www.joelonsoftware.com/articles/FogCreekMBACurriculum.html). Some also mentioned Four Steps to the Epiphany which I think is required (if not totally pleasant) reading.

Books are great. They will give you useful background and food for thought but at the end of the day you need to JFDI. If you're like me that will be a bit scary but there really isn't another option if this is path you want to pursue.

It also helps if you make some connections with other folks who have some experience to get ideas, perspective etc.

If you're interested in discussing in more depth my contact info is in my profile.</comment>


Code For America opens its Git Basics skillshare - <AUTHOR> https://github.com/codeforamerica/skillshares/tree/master/git_basics

<comment><USER2> This is a nice little cheat sheet. I sometimes wonder if the profusion of cheat sheets for Git says something about its design, in particular the human interface aspects.

Few would deny that Git is one of the most powerful open source SCM systems to come around the bend in quite a while, but sometimes I think more attention should have been paid to making the 90% of tasks most developers need easy, rather than enabling the last 10% for the edge cases where it's required.

</comment><comment><USER3> This is neat. It's one of the better git first-look overviews I've seen. Also the poster has one of the best HN usernames I've seen, so double neat.

</comment><comment><USER4> This is a great overview, this will now be the default resource I'll point people to who are new to git and want to learn.</comment>


Ask HN: is the startup visa finally coming? - <AUTHOR>

Is the startup visa finally coming? The business Insider has recently written about changes that were apparently made: http://www.businessinsider.com/progress-on-the-startup-visa-movement-2011-8
However, I can't find any of this on the "official" startup visa website (startupvisa.com).
Is it finally coming? Or is the congress stalling it until the next presidential elections?
I'd love to see the startup visa becoming reality. It gives entrepeneurs a chance to be part of the most thriving startup community in the world, and contributing to the American economy as well. I'm from the Netherlands, and there really isn't anything that even remotely resembles SV in Europe.
On a side note, I find it amusing that, when I mention the startup visa (not on HN) a lot of people get ticked off. They keep throwing the 'They took our jobs!' argument at me. As if I'm somehow stealing the jobs from Americans who would have magically come up with exactly the same idea... My response is always the same: if you did have the same idea, why didntcha...
Anyway, I'd love to see if there's been any real progress. I can't make much of the press releases from Customs and Immigration. I'm reasonable proficient in English, but this is just gibberish... <comment><USER2> The progress is being made by the Obama Administration; they now allow funded founders with a board who can terminate their employment to qualify for 'work visa certification' and become eligible for H1-B and EB-2 visas.

We're still working on the legislature to push a full Startup Visa through.

Because the administration 'clarified' existing rules, another administration (or even the same Administration re: the Neufeld memo) can reverse these changes, again locking out foreign founders. It'll take legislative action to provide the certainty for founders to be able to invest the necessary time to growing their companies here.

I always say, there's no cap on success in the startup world; if you have traction, funding will follow. We just want to add more ingredients into the frothy startup community.</comment>


Linksys resurrects classic blue router, with open source and $300 price - <AUTHOR> http://arstechnica.com/information-technology/2014/01/linksys-resurrects-classic-blue-router-with-open-source-and-300-price/ <comment><USER2> The magic wasn't just the hack-ability, it was the $69 price. In a world dominated by $1000 desktop pcs, having a $69 linux minion as your home router was appealing.

There's just no place for it today at $300! The market is full of $25 TP-Links and Ubiquiti's that can do the same. Even full-on netbooks are cheaper.

<comment><USER3> This is true. As a broke-ass college student, I would never have picked up my little WRT54 if it wasn't cheap. Leave it to Cisco to completely misunderstand the low end of the market...

As an aside, where are you finding Ubiquiti APs for under $50? Craigslist?

<comment><USER4> Belkin bought Linksys, so they're the ones to blame, not Cisco.

I'm wondering if there's still marketability in stackable form. Do they even have switches of compatible footprint? Although I always dreamed of the day I'd stack my router on a switch from the same line to create a beautiful networking statue on my desk, I always deferred to price and other features when making purchasing decisions.

<comment><USER5> You guys are comparing apples to oranges.

I would rather have a $300 fully open source, hackable device than a $50 locked down box, which is what recent WRT models were. Belkin's price is off, but they inherently get "it", they aren't afraid of letting their devices go and this is _awesome_.

<comment><USER3> I agree that most anything is better than an underpowered $50 locked down box. However, I suspect that the thing that Belkin gets is that they can charge a _substantial_ premium for a Linux-compatible router/AP.

Belkin seems to be charging a 2 to 3x premium when compared to comparable dual-band 802.11ac routers. _If_ this work results in wider 802.11ac support in OpenWRT et al., then this will be _awesome_. If not, then Belkin is selling a decent bit of kit, but you'd probably be better off hanging up a Ubiquiti AP and using a tiny PC for routing.

</comment></comment></comment></comment></comment><comment><USER6> I prefer this article [http://semiaccurate.com/2014/01/06/linksys-wrt1900ac- spritua...](http://semiaccurate.com/2014/01/06/linksys-wrt1900ac-spritual- successor-wrt54g/) since it give some hints about why this thing costs $300 — if it has an Avoton Atom and 4GB of RAM it's more of a home server being sold as a router.

I have been pretty disappointed by the hackability of routers since they usually come with hardly enough RAM and flash to even perform basic duties, so even though alternate firmwares exist you probably have to strip them down to almost no features which negates the point. This router should be one of the few exceptions, being designed with extra hardware resources that can be used by hackers.

<comment><USER7> I'm not sure where they got the idea that it has 4GB of RAM or an Atom CPU. The press release ([http://www.linksys.com/en- us/press/releases/2014-01-06_Links...](http://www.linksys.com/en- us/press/releases/2014-01-06_Linksys_wrt_revolutionizes_wireless_networking)) says it has 256MB of RAM, and every other site says the CPU is ARM based.

<comment><USER8> I guess directly from the linked article: "[..] RAM is a generous 4Gb so it shouldn't choke on lots of open sockets like lesser devices. [..]"

<comment><USER3> It doesn't take GBs of RAM to handle boatloads of open sockets. My 54GS with 32MB of RAM would handle multiple wired machines running torrent clients without any slowdown (when running a 2.4.x kernel).

</comment></comment></comment></comment><comment><USER9> Best router?

[http://www.fritzbox.eu/en/products/FRITZBox_Fon_WLAN_7390/in...](http://www.fritzbox.eu/en/products/FRITZBox_Fon_WLAN_7390/index.php)

specs [PDF] [http://www.fritzbox.eu/Datenblaetter/AVM_FRITZBox_7390_en.pd...](http://www.fritzbox.eu/Datenblaetter/AVM_FRITZBox_7390_en.pdf)

with this OS [http://freetz.org/](http://freetz.org/)

</comment><comment><USER10> My dream of owning a reasonably affordable ADSL router (with support for custom firmwares) is never going to be fulfilled.

<comment><USER11> I'd recommend you decouple the ADSL requirement, shunt that into a bridged modem. It's not a native router function and if you move to VDSL or DOCSIS then you'll need a separate modem anyhow.

Then you've much more choice as the market offers many capable routers ( like the one we're discussing ) that can terminate PPPoE.

<comment><USER12> +1 to that concept. I decoupled my equipment so now ADSL is run by a cheap but stable 1-port Zyxel modem and home routing is handled by time capsule. As for LinkSys, their adsl routers haven't been the best for me lately. Whenever I connected about 3 wireless clients to WAG320N, it started to freak out and show serious lags and sometimes it just hangs. No more same device ADSL+routing for me.

</comment></comment></comment><comment><USER13> It's funny to read about peoples' experience with the WRT54GL in the past- tense.

I bought mine for $65 in 2006, and it's still running great in 2014!

</comment><comment><USER14> the WRT54 was awesome, i loved mine running tomato firmware. For $300, i would never have considered it though.

</comment><comment><USER15> linksys routers are piece of shit; cant believe this people are still in biz with all the crap they sell...

<comment><USER3> You must never have used the WRT54GS or WRT54G. Or, if you did, perhaps you stuck with the stock firmware? Oh well. The reputation of those models is not undeserved.</comment></comment>


How to get benefits from email marketing? - <AUTHOR> Email marketing is best but how to do it for healthcare. <comment><USER2> It really depends on the context. Is a B2B or B2C business? What are you trying to do?

Email marketing is a great way to keep an audience engaged with your brand on an on-going basis. It's almost like having a 1 to 1 conversation with the other party.</comment>


Data Scientists = Research Parasites? - <AUTHOR> http://www.forbes.com/sites/davidshaywitz/2016/01/21/data-scientists-research-parasites/#7aeb1d493d1c <comment><USER2> A lot of people call themselves "data scientists" these days, even though their methodology is neither published nor peer-reviewed.

In most cases, map-reduce DBA would be a more accurate title.</comment>


The Real World Doesn't Have Undo - <AUTHOR> http://www.irrlicht3d.org/pivot/entry.php?id=1458

<comment><USER2> The real world _does_ have building standards.

Those don't look like 16" spacing between stud centers--I'd be a bit worried about leaning on it.

Cute kid though! :)

EDIT: For what it's worth, I can't mud drywall to save my life. :(</comment>