Ask HN: When browsing HN, do you click to view the article or discussion first? - <AUTHOR> <comment><USER2> For me it depends; if there aren't any comments to the article/discussion, then I'll click the article if it sounds interesting. This is almost always the case, too, if I am browsing "new".

Otherwise I'll click for the discussion, and then read the article when I get to that tab (ok, most of the time read the article - I've been called out before for not reading then making stupid comments - I try to avoid that now).

Sometimes on those that I read the article first and there isn't any discussion, if I liked it then I'll add a comment and upvote it. Otherwise I'll leave it alone, unless it looks like spam or something weird (if I see those, then I look at it carefully and make a judgement to flag or not).

</comment><comment><USER3> discussion first. because i can then reach the article from the link at the top of the page. otherwise, for example if i'm browsing the latest article, i might lose the article in the next refresh.

<comment><USER4> Same. Sometimes I get the gist of the story from the discussion, and that's often a timesaver.

</comment></comment><comment><USER5> Yes. :-)

I may middle-click both, opening them both in tabs.

I may skip either. Sometimes I just want the article. Sometimes I know what is in the article just from the title, so I just want the discussion.

</comment><comment><USER6> View article first</comment>


The Wristwatch Looks For a New Use - <AUTHOR> http://bits.blogs.nytimes.com/2011/02/15/the-wristwatch-looks-for-a-new-use/ <comment><USER2> I carry a phone that'll tell me the time. But I wear a wristwatch because I can tell the time at a glance. I don't have to dig in my pocket for the phone, open it, and peer at it. I can tell the time while driving, my watch is right there. I can tell the time while jogging without having a phone flapping around in my pocket. I can check the time when my hands are carrying things. I can unobtrusively check the time. I can read the big face with hands on a watch faster than I can read the numerals off of the rather busy face of my phone. The battery on my watch dies once a year. It dies every other day on my phone. I don't have to remember to charge my phone.

I.e. my phone tells the time, but it's a lousy watch.

I'm old, too, and stuck in my ways. So there!

<comment><USER3> "But I wear a wristwatch because I can tell the time at a glance."

Incidentally, this is one of the main advantages of _not_ wearing a wristwatch - I'm less stressed about the time.

I do wear a wristwatch when jogging though.

<comment><USER4> I never wear a wristwatch so I don't stress about time and rarely ever have. I'm generally always early, which makes me even less stressed about time.

<comment><USER5> You're hired!

</comment></comment></comment></comment><comment><USER6> The wristwatch is jewelry. Its primary purposes are adornment and display of wealth.

Your gadget just has to be cooler and more ostentatious than one of my present wristwatches. It's not about being useful. You don't have to do a better job of telling time, or run applications, or try to supplant my phone.

<comment><USER7> Agreed, watches are no longer for keeping time. Phones have long taken over that role.

In fact, my watch still gets worn after the battery died. (Hard to explain, but the OLED time shows up after a button press <http://www.google.com/images?q=DZ7080>)

</comment></comment><comment><USER8> (Tired counterexample to an overbroad generalization:)

I'm 22, and I wear a wristwatch. I wear an expensive wristwatch, actually, that's solar powered, radio synchronized, has a barometer, etc. If I had a wristwatch that merely _told the time_ , however, I might not bother.

<comment><USER9> (As another counterpoint)

I'm 21 and I usually wear a wristwatch. I wear an expensive wristwatch, actually. All it does is tell the time. It isn't solar powered, it doesn't synchronize with a server somewhere based on nuclear time, it doesn't even have a chronometer. If it had more features and did something _other than tell the time_ , however, I might not bother.

<comment><USER10> I'm 22, and I think we have the same watch. I wear it merely as a fashion statement, and indeed to quickly check the time. That's it.

Mine plays pong as an easter egg though.

</comment></comment></comment><comment><USER11> A purely mechanical wristwatch is a marvelous thing. I frequently use my phone to tell time, but when my Nexus One battery went dead on a long flight recently I was glad to have the spring-powered backup on my wrist.

</comment><comment><USER12> That doesn't look like any version of Doom I've ever played.

<comment><USER13> It's more like Wolfenstein 3D, without the enemies, the objects, the guns, or the wall textures.

I guess these people never played Doom.

<comment><USER14> > It's more like Wolfenstein 3D, without the enemies, the objects, the guns, > or the wall textures.

It reminds me of the maze screensaver from Windows 95, without the wall textures or the objects.

If they added enemies, objects, and guns, they'd have Faceball 2000, an FPS for the Game Boy that supported deathmatch mode (wasn't called that then, of course).

</comment></comment></comment><comment><USER15> I've never really figured out _why_ wear a wristwatch. I think I last had one when I was in elementary school, early 90's. By high school I had dropped the habit.

I don't care about glamorous shiny and expensive things, so that's no reason to wear a watch, really.

I rarely need to check the time and whenever I do, I can usually just see it somewhere: the city is full of clocks, especially the places where you might want to know the time, like tram stops and subway stations.

When I'm at work my computer conveniently tells me the time so that I can appear at a meeting roughly on time.

If I really, really need to have the time then I can use my cellphone. Well, I don't have my cellphone with me all the time, so I can't always do that either. Especially if I'm going alone and have no rendezvous coming up, I don't have it.

If I'm cycling around on a summer day, that's usually without the watch I don't have and without the cellphone I don't want to carry with me, so I can usually tell when it will soon be the evening and to turn my heading back to home.

A few times I've just asked for the time. That's quite as low-tech as it goes.

</comment><comment><USER16> I actually just recieved my Sony LiveView in the mail today. Worn like a watch, it's more of a phone accessory than anything else. I can get updates as to phone calls, messages, and twitter, all without pulling out my phone which is usually buried in my pocket or in my jacket pocket.

The wrist is prime real estate for devices now. If apple didn't have a plan for this, I'd be shocked.

</comment><comment><USER17> And our team is usually right here on HN (alright, maybe a bit too often). Let us know if you have any questions about inPulse.

</comment><comment><USER18> I recently spent $1500 on a NOMOS Tangente wristwatch. The Tangente is a manual-wind, mechanical wristwatch with an in-house movement. Based on the comments I've seen so far, most of you will think I'm crazy.

I bought it partially because I just wanted a nice watch (the jewelry factor), but also because I didn't want to dig around in my pocket for my phone.

"But it's less accurate than a quartz watch!"

True, but absolute accuracy is not what I was going for when I bought the watch. When I look at it I'm looking more for the general position of the minute hand than exactly what minute it's on.

I find the ticking it makes to be calming and the exhibition back fascinating to look at. Taking 10 seconds in the morning to wind it to me is an enjoyable part of getting ready each day.

I'm sure some, or even many people will still think I'm crazy. C'est la vie.

</comment><comment><USER19> Just today I was thinking again about how I wanted to find a watch that would make me happy. I have felt all my life that watches are unfortunate devices which shackle us to schedules, Time, work, etc. But since I'll be graduating and starting a job soon, there may be some semi-legitimate use for one. Checking cell phones for the time isn't ideal, though it generally suffices.

I traditionally gravitate towards nice analog watches and nothing else, the slimmer and less outrageous the better. If I were to buy something else, I might consider something zanier - like a watch that only told me the cycle of the moon - but I'm not sure what kind of statement I want to make. I find myself therefore caught in between two worlds of watch-wearing...

</comment><comment><USER20> I spent the better part of the last decade without a wristwatch, mainly because I thought my phone was good enough.

However, about 2 years ago I reverted back to wearing a watch. I went with a Swatch Skin... extremely minimalist & thin watch that weighs almost nothing. As one of my friends described it, "it's not really a watch, but more like just having the time on your wrist".

I've really enjoyed not having to dig out my phone to check the time. I used to think the convenience was trivial and there was no reason to wear a watch... but I'm pretty sure I was wrong.

</comment><comment><USER21> Wow, congrats to the InPulse team!

</comment><comment><USER22> Some have attacked Kurzweil for considering his prediction that "People will be wearing computers in the form of jewelry and clothing" [1] as a successful prediction. But, if he wasn't correct in precise time, he certainly will be in form.

[1] [http://singularityhub.com/2010/01/19/kurzweil-defends- predic...](http://singularityhub.com/2010/01/19/kurzweil-defends-predictions- for-2009-says-he-is-102-for-108/)

<comment><USER23> In fairness to those criticizing Kurzweil, the timing of his predictions _does_ matter, because he's arguing that technological growth is a fast exponential, leading to super-human intelligence by 2040 or so. So if he's off by 5 years on wearable computers, he might be off by 40 years in his ultimate prediction, or growth might be an s-curve instead of an exponential.

<comment><USER24> Sloppy reasoning. "Past results are no guarantee of future performance."

<comment><USER23> No, I really think that Kurzweil's claims of a technological singularity within our lifetime are extraordinary enough that he should be held to very strict standards of timing and prediction. Good grief, the man eats strange nutritional supplements by the handful in hope of living an extra 10 or 15 years and thus, by his theories, living forever.

</comment></comment></comment></comment><comment><USER25> This is just the start of using mobile watches to talk to phones, computers, you name it! These guys have great vision!

</comment><comment><USER26> I stopped wearing a wristwatch since it is enormously uncomfortable typing on a laptop with one. I still keep one in my coat pocket, but I rarely use it anymore.

I wish I could get a nice, cheap pocket watch like the ones they used to use with a three piece suit.

<comment><USER27> I have been carrying a pocket watch for over a decade. They need not be that expensive; I bought one as a gift a couple of years ago for about £25 (~USD40). I guess it depends on the amount of niceness you require. They are readily available on the high street where I live, or on the net of course, so go and have a look.

</comment></comment><comment><USER28> I don't think that wristwatches are going away any time soon, due to their convenience factor, but they probably will accumulate more functionality and could be used in future as a digital wallet, a P2P data server or a phone.

</comment><comment><USER29> Since I know that both teams are lurking here:

If an inPulse watch had an accelerometer and could double as a WakeMate (connected to their iPhone app and website, etc.) it would be great.

Just sayin'...

</comment><comment><USER30> another hacker watch ( $49 )

 _"The eZ430-Chronos is a highly integrated, wearable wireless development system that comes in a sports watch. It may be used as a reference platform for watch systems, a personal display for personal area networks, as a wireless sensor node for remote data collection, or simply as a watch."_

<http://processors.wiki.ti.com/index.php/EZ430-Chronos>

<comment><USER31> Somebody has ported Google two-factor to it: <http://tnhh.net/pancake/chronos- otp.xml>

</comment></comment><comment><USER32> A week ago I got my first Android phone. One thing that my Nokia N86 did better was that I could hit the button on my headset and say, "What time is it?".

</comment><comment><USER33> Called me old fashioned, or lazy, but I hate reaching into my pocket just to check the time. A Casio watch fits the bill perfectly.

</comment><comment><USER34> I've had the chance to play with these watches, and I'm seriously impressed. This is going to be huge.

</comment><comment><USER35> I'd be very happy with a watch that displayed what Growl displays on my laptop.

</comment><comment><USER36> In an utterly opposite-topic vein, I've recently discovered the joy of automatic, mechanical watches. No battery, no electronics, no manual winding. They're just a spring, gears, and a rotor that 'charges' the spring when you move your arm.

Sure, I have a mobile, but I feel a bit silly digging in my pocket when I just want to check the time. Plus, there aren't many non-tacky forms of jewelry for men. Finally, there's just something neat about a completely mechanical solution which is simultaneously old-tech (concept) and high-tech (execution).

Searching for "Seiko 5" on Amazon turns up a lot of options, and the core mechanism has been around since the 1960s. My absolute favorite automatics are the Seiko SKX007 and 009 dive watches, which seem to be unrivaled in value for money.

I'm very curious if this old-tech option appeals to the 20-somethings as much as it does to me, a guy who grew up when digital watches and (gasp) calculator watches were the coolest thing on the planet.

<comment><USER2> I have a self-winding watch in a drawer. I abandoned it because it wasn't accurate. I had to reset the time every day. I love the cheap quartz watch I have. Big face, big hands, can tell the time without my glasses on, incredibly accurate, $20, with a button for a backlight.

<comment><USER36> The Seikos are supposed to be accurate to within +/- 5-10 seconds per day. You can't beat quartz, though.

<comment><USER37> So it's off by half an hour to an hour over a year? That's pretty shoddy accuracy if you ask me, especially in an era where clocks accurate to the second are ubiquitous and cheap.

<comment><USER36> Sure, if you never adjust your watch for a year. The whole point is how amazingly accurate it is for a sub-$200, _purely mechanical_ timekeeping device. Besides, it's pretty common for super-accurate quartz watches to become wildly inaccurate about once per year (dead battery)...</comment></comment></comment></comment></comment>


The IP licensing business model - <AUTHOR> http://www.alexvoica.com/the-ip-licensing-business-model-a-love-story/

<comment><AUTHOR> For people interested in the difference between taking an architectural license vs. using standard, off-the-shelf IP, have a look at this article too: [http://www.alexvoica.com/when-soc-met-ip/](http://www.alexvoica.com/when-soc- met-ip/)</comment>


Modeling the Covid-19 Outbreak with J - <AUTHOR> https://datakinds.github.io/2020/03/15/modeling-the-coronavirus-outbreak-with-j <comment><USER2> I love anything that hooks me subject-wise to keep learning J. I always get charged to ply my J skills and learn from others. I tried to run a batch of simulations for x amount of days with the default number of people in the code as follows, but I am sure the infect function is not randomizing on each simulation run, and I am misusing ^:

      avg^:5 (# I. infect^:10 starting_pop = 0)</comment>


Mathematics for Computer Science - <AUTHOR> http://courses.csail.mit.edu/6.042/fall10/mcs-ftl.pdf <comment><USER3> I am currently reading Robert Causey's _Logic, Sets and Recursion_ , which is intended to bridge the gap between introductory freshman/sophomore "introductory discrete math" courses and senior level mathematical logic. I am only about a third of the way through it right now, but I have already learned several useful things, I especially found the discussion of mathematical definition of "relations" enlightening. The biggest complaint I have about it, is that it uses different terminology from the previous logic I have read, "sentential logic" rather than "propositional logic" for example, but at least it mentions the alternative terms when it introduces its own.

</comment><comment><USER4> We use these lecture notes to teach the first semester of honors CS at Stony Brook. They're great (though some of the examples are a bit tedious---the class just finished Counting III and there are a bit too many card trick examples in that one).

(by "we" I mean the professor that teaches it, I'm just helping out this semester)

</comment><comment><AUTHOR> I am taking a discrete math course as a non-degree student and just found this text today. We are using Rosen's book in class, but I must say that this free text does a much better job of giving you the intuition behind what you are doing. This is an excellent resource for any discrete math student.

</comment><comment><USER5> Second time this semester my textbook's been posted on HN. Go figure. Does this link make it up every couple of months? I thought there was something preventing duplicates.

(I am in the class, that is; I didn't write the textbook).

</comment><comment><USER6> Why link to [http://www.scribd.com/vacuum?url=http://courses.csail.mit.ed...](http://www.scribd.com/vacuum?url=http://courses.csail.mit.edu/6.042/fall10/mcs- ftl.pdf)

instead of just <http://courses.csail.mit.edu/6.042/fall10/mcs-ftl.pdf> ?

<comment><USER7> The PDF link is the main link. The Scribd link is an additional option added automatically by the Hacker News software.

</comment></comment><comment><USER8> I've been using this to prepare for Discrete Math. It's pretty interesting; the authors do a good job of putting mathematical concepts in historical contexts, which keeps me engaged.

</comment><comment><USER9> Yea, for someone who's originally a math-o-phobe, this looks very accessible and handy.

I would like to see something similar for computational geometry - <USER2> Berg's book. Any ideas?

</comment><comment><USER10> this was already submitted here 55 days ago: <http://news.ycombinator.com/item?id=1738670> and 3 days later this: <http://news.ycombinator.com/item?id=1751056> was submitted.

But is good to have more discussion about it.

</comment><comment><USER11> this class was hands down the best taught class I took at MIT in a tough competition. still–the notes don't have to be submitted every 2 months :-)

</comment><comment><USER12> Discrete math and probability have been done to death as computer science- related topics. You cannot get far in a CS program without learning these topics forward and back. That being said, this book is good as a starting point that collects these topics together; I have not seen a similar book that does the same job.

What's not getting enough attention as "mathematics for computer science" is category theory. Put very roughly: it gives you some very powerful formal patterns that will crop up in every computer science-related thing you do. This includes everything from theoretical computer science to the most 'boring' of dead-end programming jobs. Think of it as software engineering/design patterns without all the informal handwaving and zealotry for/against <latest fad process or design pattern> that it allows.

Category theory, if properly learned with an eye toward application, will make you become utterly ashamed of the programs you write, and the languages you write them in. The end result is a program that still does not match the one in your head built with a much more elegant set of abstractions, but is very clear nonetheless.

<http://plato.stanford.edu/entries/category-theory/>

<comment><USER13> Any suggestions for a _good_ Category Theory texts that're oriented to CS and go beyond the "classical" connections between cartesian closed categories and lambda calculi? Or am I stuck in another frustrating 2-week long session trying to divine "Category Theory for the working mathematician" and a hand- full of research papers and blogs on Haskell?

Edit: Sorry if I sound bitter, but I've been down the category theory route multiple times in the past, starting in graduate school (in Math) and I've always given up before I "got" the divine revelation that others have talked about.

<comment><USER14> I don't think there _is_ anything particularly brilliant.

There's _Category Theory for Computing Science_ by Barr and Wells (<http://www.case.edu/artsci/math/wells/pub/ctcs.html>), which is a good enough book but hardly comprehensive.

I don't know any way round the fact that category theory is difficult to learn. I think that's partly inherent in the subject, not helped by the lack of a really good textbook suitable for beginners.

(Here is the totality of my published work in category theory: <http://arxiv.org/pdf/math/0604542v3>)

<comment><USER13> Yeah, I came across Barr and Wells 5 years ago in grad school and found it almost impossible to buy. I ended up getting a copy from the library and photocopying and rebinding it. Like you said, it was ok, but hardly comprehensive. Maybe it's easier to find now.

Anyway, nice paper..and thanks for making me think of category theory again. Maybe I'll pull out my old copy of "CT for the working mathematician" and give it (and haskell) another go.

Edit: I came across this: [http://www.amazon.com/gp/product/0521422264/ref=pd_lpo_k2_dp...](http://www.amazon.com/gp/product/0521422264/ref=pd_lpo_k2_dp_sr_2?pf_rd_p=486539851&pf_rd_s=lpo- top- stripe-1&pf_rd_t=201&pf_rd_i=0133238091&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1QXN1CEAHM7ZFA9ATAGN)

Anyone gone through this book?

<comment><USER14> I think you can buy the Barr and Wells book via the web page I gave. In fact I think that's how I got my copy, which must have been around the same time you were looking for it.

I haven't read Walters book, & would also be interested to hear reactions from anyone here who has.</comment></comment></comment></comment></comment>


Super-Saturated Chemistry - <AUTHOR> http://inference-review.com/article/super-saturated-chemistry <comment><USER2> This article is extremely misleading. The author is a professor at the University of Strasbourg, so he knows what he's talking about; however, he words things in a weird way in an attempt to confirm some kind of overarching point that experimental chemistry is still necessary (which seems kind of obvious IMO).

Quantum mechanics can and does predict every element on the periodic table. Whether we can _calculate_ what it predicts at the present time is a different matter entirely. In the words of Peter Gill, "The field of quantum chemistry has become an applied mathematics problem". Yes, it's well-known that naïve quantum chemistry fails to predict experimental results for a variety of reasons, but all of these reasons come back to the fact that we had to use approximations to solve difficult equations that otherwise could not be solved. If our predictions failed in some way _fundamental_ to QM/QFT, every theoretical physicist alive would be shocked — it would be the biggest news in the field in over a century.

As better and better numerical approximation schemes are developed, the current issues with quantum chemistry will begin to disappear. Some people argue there are fundamental limits on what a classical computer can discover about quantum chemical systems, but then others argue that quantum computing will surmount these barriers (and others argue that it won't).

<comment><USER3> > _so he knows what he 's talking about;_

I'm not so sure. For example:

> _The commutator of the Hamiltonian with the angular momentum of an electron > does not vanish.8 Its eigenvalue is, therefore, not a constant of motion._

In fact, the Hamiltonian is invariant under rotations (the electron does not care about which way the protons in the nucleus are rotated), which is why the angular momentum even exists. (From the fact that the Lagrangian is invariant under rotation: Noether's theorem tells you that there is a conserved quantity associated with that invariance. It turns out that rotational invariance gives rise to angular momentum.)

I haven't checked his reference 8, but "Boston Studies Series in the Philosophy of Science" is not the first place I'd go to understand constants of the motion and how they relate to things that commute with the Hamiltonian.

<comment><USER4> The key word is _an_ electron. The total angular momentum is conserved, but the way the electrons share it between them is not.

As I recall, actual atomic Hamiltonians have terms like σ₁·σ₂. The reason involves some tricky correspondence between exchange and spin that I haven't thought about in a long time, and would have to look up.

I agree with the broader point that this essay is odd and confusing.

</comment></comment></comment><comment><USER5> looks like a serious case of "physics envy", something usually found in the social sciences!8-))

[https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=ph...](https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=physics+envy)

But seriously the guy sounds just like Ernst Mach (1838-1916) who cautioned against attributing reality to "molecules" (at that time not directly observed). I appreciate Professor Henry's viewpoint (chemistry is distinct from physics, in fact chemistry is better and chemistry is cool) but almost every part of his discussion uses the tools of _physics_ to support both sides.

Perhaps he's irritated by the unspoken idea that chemistry is merely the yet- to-be-straightened-out basement of physics, to be organized only after physics has found the missing strings. (And perhaps string theory is physicists' way of putting off the chemistry basement cleanup?8-))

</comment><comment><USER6> Well, here's a reaction that I believe could not have been predicted by ordinary bench chemists:

[http://science.sciencemag.org/content/354/6319/1570](http://science.sciencemag.org/content/354/6319/1570)

but looks like it's occurring on their bench at will.

Anybody good enough at the quantum stuff to estimate how long it would take to predict this with just the math?

OK, that's a tall order, how about just mathematically describing this now- known reaction?

If not, then estimate how long it will take until things like this can be well modeled?

I get the impression that these are extraordinary bench chemists, and advanced quantum concepts might shed additional light.

</comment><comment><USER7> The article is too heavily weighed down by personal bias and some weird hatred towards physics as to be reasonably readable. (I'm not a physicist nor a chemist.)

</comment><comment><USER8> The Born-Oppenheimer approximation isn't a non-quantum assumption, but the simplest form of parallel transport on a curved space. The geometric phase is a fundamental part of quantum mechanics. This is a succinct restatement of what is learned by the second year of a good physics graduate education (and maybe undergraduate one), and I'm not sure where the Goldstone bosons are relevant or what his point is.

<comment><USER9> The Born-Oppenheimer approximation is first and foremost a simplification of the equations following from the time independent Schroedinger equation. The author probably wanted to stress the fact that this simplification does not follow from any other general principle of quantum theory but is necessary to use it in order to make use of the Schr. equation in chemistry (most theory of molecules is based on this approximation). If we do not make the approximation, the equations are complex and we cannot derive the usual results of quantum chemistry.</comment></comment>


How progressive web apps change the mobile - <AUTHOR> I wrote some PWA apps, Just thinking about future PWA <comment><USER2> Think about how native apps were a step backward in term of UX. People needed to open the store, read the description and take the decision to install, figure out that they had a good-enough network so they could install the app, then wait 30 seconds for the app to install, enter the app, go through the on- boarding to understand how it works, ...

Websites are much easier. We make a request in Google and load a website in seconds that gives us just what we're looking for! It provides instant gratification. It is also proven that people are more willing to stay engaged once they've received some value. Smart developers will know when they can ask visitors to install the app, receive push notifications, ...

With apps it's not uncommon that we don't remember why we installed it because the app didn't give us instant value. With PWA, users will associate the app with the gratification it provided at first use and will remain engaged.

<comment><AUTHOR> Thanks for that. Does it take the app industry market

<comment><USER2> Many native apps still make sense as they need deep access to phone features or better performances (games). Many apps are already backed by a website used for acquisition and first engagement (and then pushed to install the app). Both worlds have not been so disconnected anyway for the developers standpoint so they should be able to adapt easily.

The question is more tricky regarding CPI ad networks or app analytics services. CPI ad networks will make less sense because the Installation disappears. Web technologies will make SEO easier for developers (app indexing was not easy) so paid acquisition and SEO will be back in competition... which should lower the ad spending. Retention remains key and app analytics and mkting tools (like push notifications) have acquired a great know how about managing users during their lifetime. So they should stay too.

Like in the 00's when developers had to adapt their skills from Windows software to web technologies, I assume native apps developers should start updating their web skills. It's hard to find the right guy for developing a high quality PWA right now.

<comment><AUTHOR> Thanks for your response As you said its hard to get a guy a who develop quality PWA .I think there is good job opportunity</comment></comment></comment></comment>


Android Project Changeset 4f8b683: libc/memset.c - <AUTHOR> https://review.source.android.com/#patch,sidebyside,14699,1,libc/memset.c <comment><USER2> Forget the typo. This is the slowest, most naive implementation of memset possible.

Is this actual shipping code? I've followed the changeset up to the top and it looks like it's in platform/bootable/bootloader/legacy. Hopefully this isn't actually called anywhere, but the review date says May 13th.

What's the point of optimizing the Java VM when functions like memset, malloc, memcmp, memcpy, memchr, etc, etc haven't even been optimized for the platform.

EDIT: I understand that 95% of your time will be writing in a language like Ruby, Python, Javascript or a C based language. But dear god, please add Agner Fog's Optimization Manuals to your reading list. <http://www.agner.org/optimize/>

<comment><USER3> How would you write this function? Fully portable, so no ASM.

<comment><USER4> You'd unroll the loop. But knowing the average workload for memset(), it probably wouldn't be a perceptible win.

<comment><USER3> With todays CPU, particularly with branch prediction, and cache, loop unrolling is not always better.

In fact I bet the performance would be worse, especially because you have to worry about setting areas of memory that are not a multiple of the loop unroll size. (I guess you could use duff's device.)

I actually tested it while ignoring that, and the unrolled version took 34.551 seconds vs 34.239 for the regular version (but those number are meaningless since the variation in time between runs is greater than the difference in runtime between versions).

And see: [http://lkml.indiana.edu/hypermail/linux/kernel/0008.2/0171.h...](http://lkml.indiana.edu/hypermail/linux/kernel/0008.2/0171.html) \- loop unwinding is not worth it anymore.

So I ask you again pkaler: how would you speed this up?

<comment><USER5> I would imagine writing the native register size bytes per iteration would be a win, with a little cleanup for the remaining bytes. For a 32-bit architecture, you'd typically be doing 1/4 the iterations.

<comment><USER6> Far more involved than that. There are alignment issues. Its several machine cycles faster to do aligned store of a large scalar e.g. 32-bit. So a responsible implementation would do a head check for alignment, store 1,2 or 3 bytes efficiently, then do aligned stores of 32-bit values (or 64-bit or whatever native size is appropriate), then a tail check for the small change. OR better yet switch(p & 3) and handle each case with unrolled code.

</comment></comment></comment></comment></comment></comment><comment><USER7> Aren't there are processor-specific assembler versions of memset for common chips? There are usually assembler versions (for example using REP MOVS on Intel which is light years faster) or even unrolled C versions (typically setting 8 or 16 bytes per iteration) that are used. I suspect this might be "fallback code" that doesn't actually get executed on any chips that anybody really uses.

<comment><USER8> For this case, the required x86 opcode could be "rep stosX" (just write), and not "rep movsX" (copy). Anyway, on x86 processors, "rep movsX" was faster from 8086 to 80386, but since the 80486, it is faster to do assembly unrolling for reducing the jump penalty (as the "rep movsX" doesn't do unrolling, being its conditional jump a penalty). On CPUs with prefetch hardware support -e.g. SSE2-, you could still speed it up a bit more, by fetching/ordering future cache line before needed, avoiding pipeline stalls.

The shown example, that just writes to RAM, is probably just fast enough (it is harder to optimize read cases), although a bit of unrolling could reduce jump penalty impact (specially on non superscalar or in in-order superscalar CPUs -typical ARM included on handheld devices-).

<comment><USER9> While we're jumping down the architecture pedant rabbit hole, a simple loop like that will be trivially predicted, so the branch will be basically free. In addition, hardware prefetchers do a much better job at predicting linear memory access than manual prefetch instructions. On Core 2, iirc, if you have 2 or 3 L2 misses at fixed offsets either direction from each other, the hardware will automatically begin prefetching memory so it's there when you need. The problem with manual prefetch instructions is there high latency. They're best for hinting to the processor that you're about to make an unpredictable load.

</comment></comment></comment><comment><USER10> The thing that shocks me about this bug is that it should have been caught when the compiler issued a warning about an unused function parameter. Either the warning was not enabled, or the programmer just ignored it; either of those options indicates a pretty severe lack of professionalism.

<comment><USER11> "Pretty severe" lack of professionalism? It's not unprofessional not to turn the warnings all the way up and sift through each and every one. Some of us work code inherited from other people with different coding guidelines, and some of the warnings will generate loads of messages for code that is not only technically correct but stylistically correct as well. The unused parameter warning is one of the biggest offenders in this area. And if you have a hundred warnings for unused parameters, which ones do you pay attention to?

Another potential issue is that the code in the patch might almost never be called in the first place. Most libc implementations (three that I know of, where I've examined the "memset" source) have a "memset" like that as a fallback only for platforms without an assembly version.

I'd say the problem is that there are several different ways this error could have been detected sooner: warnings, test, static analysis tools, and review, but none of them worked. But again, it's also possible that the code is never called because assembly versions are always available.

<comment><USER12> | The unused parameter warning is one of the biggest offenders in this area. And if you have a hundred warnings for unused parameters, which ones do you pay attention to?

Well, so then you're exposed to this error. Do:

        void foo(int x)
        {
           (void)x;
        }

to silence unused parameter warnings.

<comment><USER4> Go look at Google code search, which includes vast quantities of code written by professional teams and (often later) open sourced. Very little of it casts expressions to (void). When I started at Arbor, I got rid of all the (void) casts. What an eyesore.

Very little C code is const-correct either. Most of the C devs I know make fun of const-correctness.

<comment><USER10> | What an eyesore.

It's only an eyesore if you don't acknowledge the benefits that strict warnings can bring to the table.

| Most of the C devs I know make fun of const-correctness.

I for one don't mind putting in a tiny bit of upfront effort so that my compiler can double-check my work. Do the C devs you know also make fun of assert?

<comment><USER4> I don't acknowledge the benefits of casting things to (void). Therefore: definitely an eyesore.

And, no. Nobody makes fun of assert. Which rather makes my point for me.

<comment><USER13> If assertions disappear in certain optimized builds then what do you do, or recommend, to deal with warnings related to unused parameters or values if you don't believe that casting to void has value?

<comment><USER14> As I pointed out above, in gcc you can explicitly mark variables as potentially unused.

<comment><USER13> And what do you suggest for MSVC, which doesn't support attribute unused or have any comparable declspecs?

<comment><USER14> If what you say is true, then you have to either put up with the warnings, compile at a level that doesn't have the warnings, or figure out a hack around them - I don't like any of those options.

I'm not as dogmatic as some others are in the thread. I just think it's a good idea to be warned when a variable is unused, enough that I'll mark my very few that might be #ifdef'ed out. If you're using a compiler that doesn't let you mark variables as such... well that sucks. You do what you can.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Ironic that this makes the homepage the same day as an article bashing unit tests :)

</comment><comment><USER16> Interestingly, they have the OpenBSD version that does word-size assignments in asm for x86/arm. wonder why it wasn't being used.

[http://android.git.kernel.org/?p=platform/bionic.git;a=blob;...](http://android.git.kernel.org/?p=platform/bionic.git;a=blob;f=libc/arch-x86/string/memset.S;h=1059ccc99516e277af6e04ebc7b078c4f37d2e6d;hb=HEAD) [http://android.git.kernel.org/?p=platform/bionic.git;a=blob;...](http://android.git.kernel.org/?p=platform/bionic.git;a=blob;f=libc/arch- arm/bionic/memset.S;h=93abe15a2f9eb647c5d282310f5c7cf241457cd6;hb=HEAD)

<comment><USER17> It was. That's why this bug hasn't been caught before: the buggy code was never actually compiled as part of a production build. Real builds always use the version optimized for the actual hardware platform.

</comment></comment><comment><USER18> Some libc hacker has fond memories of _bzero(3)_ , tsk tsk ;-)

</comment><comment><USER19> Can someone who lives in the world of C fill in the blanks? If this was a major typo, I have done things along those lines.

<comment><USER20> memset sets a block of memory to a given value. It is often used to initialize an uninitialized block of memory to 0. So often, in fact, that this bug where it _always_ initialized the memory to 0 survived so long.

<comment><USER21> _So often, in fact, that this bug where it always initialized the memory to 0 survived so long._

Given that the bug went undetected for so long, I think you could almost reasonably claim that calling memset with a nonzero parameter is a "corner case" ;)

<comment><USER22> It is a "corner case," or close to it, but that's not why it wasn't caught here. I don't think this code is ever called, as explained above. It's default code in case there isn't a platform specific version, but there pretty much always is a platform specific version.

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

</comment></comment></comment></comment><comment><USER23> Now this is hacker news. We don't see too many of these types of posts.

<comment><USER24> No, this is The Daily WTF. "Oh look, someone wrote some really stupid code!" Who cares? How does it enrich us to know that someone mis-implemented memset() in a bootloader that possibly never even calls it, or if it does, probably passes zero as the argument anyway? (Or is dead code because on any arch anyone uses, memset() is implemented in asm.)

<comment><USER23> It enriched me to learn what memset was. I love hacker news, but I wouldn't mind a few more posts that contain some code.

</comment></comment></comment><comment><USER25> This is a typical cut-and-paste programmer bug, the person took 'memzero', copied it and tried turning it in to memset.

Instead of special casing memzero as memset(p,0,count);

</comment><comment><USER26> This bug might actually be difficult to find — 99% of the time memset is asked to fill the memory with 0.</comment>


Congratulations PG on the coming child - <AUTHOR>

I wish you both all the joy and blessings which a child brings. The up side is you're used to short nights from the startup lifestyle, so you can pull the night shift with the kid!<p>But in all seriousness, congratulations and I wish you all the best :) <comment><USER3> Why is everyone just congratulating PG? Livingston is the one who has to carry it around for 9 months and give birth.

Kidding kidding, but congrats to Jessica too!

<comment><USER4> Indeed, congrats to Jessica & Mr. PG.

</comment></comment><comment><USER5> Congratulations!

On the humorous side, this reminds me of this story: <http://edward.oconnor.cx/2005/04/rms>

(Richard Stallman speaks a bit about having children)

The funniest part is:

"It doesn't take special talents to reproduce, even plants can do it. On the other hand, contributing to a program like Emacs takes real skill. That is really something to be proud of.

It helps more people, too."

One more link that made me laugh a lot (again, Stallman): [http://www.art.net/Studios/Hackers/Hopkins/Don/text/rms- vs-d...](http://www.art.net/Studios/Hackers/Hopkins/Don/text/rms-vs- doctor.html)

<comment><USER6> Anyone can have kids, but to raise them well is a hell of a lot of work.

<comment><USER7> If it's such a painful hell of a lot of work, why do it? Why have kids if it's impossible to raise them well?

<comment><USER8> Good thing your parents didn't think that =)

Having a child (I have one) is a big responsibility but the joys far outweigh the work. I think, for me, the thing that I like the most is it gives me plenty of opportunities to learn not to be selfish but instead invest my time and energy into someone else.

And I would submit that it is not impossible to raise them well -- you just need to approach it the right way and educate yourself on the matter.

Congrats PG! I look forward to your essays on the matter.

<comment><USER7> Well, if my parents had thought that, then I wouldn't have to spend fourty hours a week sitting at a computer like a zombie. And that's just to be able to survive so that I can do more such work!

As for raising children... It really is impossible to raise them well. Every decision is a compromise and even if one choice is obviously better, it's just the lesser of evils. And those evils could have been prevented if the kid hadn't been born.

(I suppose I'm trolling, but this subject is so near and dear to me that I can't resist.)

</comment></comment></comment></comment></comment><comment><USER9> The ultimate startup

Congrats!

<comment><USER10> It is peculiar that we congratulate people on completing a compulsive bodily function.

<comment><USER11> Except that we're not.

For many of us, the advent and wide deployment of birth control allows us to choose if and when we decide to procreate. Part of the downside of this is that we're often waiting until we're older before we decide to have kids.

It'd be inappropriate for me to comment on JL's age, but from experiences personal and nearby, getting pregnant has the potential to be stressful, depressing, and exciting. And at times it just doesn't happen.

Congratulations are in order because they've decided to take a chunk of their lives and time to take responsibility for another human being. And because the deep-seated happiness that comes from it is a gift worth congratulations.

ps. congrats!

</comment></comment></comment><comment><USER12> So, er, this would be an XX/XY-combinator?

</comment><comment> afri-silicon Congrats

Here in Kenya, the kids born around now are either Obama (boy or Michelle (girl)

<comment><USER13> Really? Even among the Kikuyu and Luhya?

<comment> afri-silicon All of them, even Kamba, Miji-Kenda, Luhya and many others.By the way, we are 42 tribes in Kenya.

<comment><USER13> That's pretty amazing. I hope his popularity there lasts. May I ask what's your tribe?

</comment></comment></comment></comment><comment><USER14> As I said before: pg&jl made someone that will hopefully make something people want. It'll need to be more than three months though :P

<comment><USER15> And more than $5,000!

</comment></comment><comment><USER16> Seeing yourself in your child is a most amazing thing, and sometimes a scary thing because you will then see your parents in yourself (maybe for the first time). Take tons and tons of pictures, because they grow very fast -- so fast that time for you will go by faster as you/they get older. Best wishes for a happy and healthy child, Mom, Dad, and family. Helping with schoolwork can be worse than changing diapers. When things are rough the first year, remember: these are the good years!

</comment><comment><USER17> Congratulations! Expect some change on how you see the world. At least, that was for me with my two kids. I look forward to read the essays to come...

<comment><USER18> What change did you see?

<comment><USER17> I'm a more joyful person now, though more conservative also. Less selfish, more concerned about the future... and a lot of small changes...

</comment></comment></comment><comment><USER19> Congrats Paul, wish you the best! How long are you going to wait 'til you start teaching him/her lisp?

<comment><USER6> I'm personally of the idea to leave kids out of your own profession. If they're curious and ask questions, sure, show them things and help them satisfy their interest, but don't push it beyond that. That should hold true for anything they're curious about, though.

Too early for my daughter in any case; right now in terms of computer interaction she's limited to watching videos of babies and animals on Youtube, and attempting to grab and drool on the microphone when we talk with her grandparents via Skype.

<comment><USER20> I understand the sentiment of not wanting to mold your children's interest by your own.

But, I think there is a difference between exposing your child to something you find interesting to see if it interests them too, and pushing your child to be interested in the things you find interesting. The vibe I got from grosales post is the former; expose him/her to Lisp, or some other computing topic, gauge their interest and go from there.

<comment><USER6> Oh, sure, I'd agree with exposing them to as much stuff as possible, showing them what's out there, and obviously that includes what you know best.

</comment></comment></comment></comment><comment><USER21> Congrats :) Kids are just awesome...

</comment><comment><USER22> I will deviate a bit and also wish Jessica a warm congratulations from the whole HN community. I'm sure we will have to do some kind of gift at some point....

<comment><USER3> We're on it.

<comment><USER11> If I may suggest: <http://www.cafepress.com/clevercuties.36038469>

</comment></comment></comment><comment><USER23> Good news that you're working on the replacements! Version 2.0 is always better than 1.0 -- once you get the bugs worked out.

Best of luck. Kids are can be a lot of sweat and tears, but they're also the best thing you can experience in life. "Terrible blessings" might be a good aphorism.

<comment><USER24> On the contrary, studies have shown that V1.0s overwhelmingly tend to be the higher achievers.

<comment><USER25> Cohort effects!

</comment></comment></comment><comment><USER26> Congratulations Paul! I wish you and your wife all the best during and after the pregnancy. - <USER2>

<comment><USER27> Ditto !!!

</comment></comment><comment><USER28> Congrats to both of them, and best wishes.

</comment><comment><USER29> Congratulations! Wish you the best.

</comment><comment><USER30> Congratulations to both of you.

</comment><comment><USER31> congratulations to Jessica and PG.

</comment><comment><USER32> congrats and best wishes!

</comment><comment><USER33> Congrats!

</comment><comment><USER34> Congrats!</comment>


The explosive growth of license plate reader cameras in the US - <AUTHOR> https://qz.com/1540488/in-just-two-years-9000-of-these-cameras-were-installed-to-spy-on-your-car/ <comment><USER2> I'm curious if anyone has seen any datasets collected from ALPRs? I would assume the actual plate number is hashed or otherwise anonymized, I'm just interested in exploring the data from a privacy point of view.

<comment><USER3> Why would you assume that they would be hashed or otherwise anonymized?

Doing so would be work, and the people with those databases have no problem with keeping millions upon millions of records, ad infinitum.

Hashing them or anonymizing them would make them much less useful to them in the future.

<comment><USER2> I would assume that if any such data set was _made public_ that it would be anonymized.</comment></comment></comment>


Google Reader Easter Egg - <AUTHOR> http://blogoscoped.com/archive/2008-06-09-n29.html <comment><USER2> Good to know that there are still old-fashioned dorks at Google.

</comment><comment><USER3> Haha... it works!

</comment><comment><USER4> where are my 30 lives?

<comment><USER5> check the unread counts on your feeds

</comment></comment><comment><USER6> whats the code for god mode?

<comment><USER7> iddqd didn't seem to work. At least, I don't feel anything yet.

<comment><USER6> I tried idkfa but I still don't have the BFG on my desk...</comment></comment></comment>


Why Diets Dont Actually Work - <AUTHOR> http://www.washingtonpost.com/blogs/wonkblog/wp/2015/05/04/why-diets-dont-actually-work-according-to-a-researcher-who-has-studied-them-for-decades/

<comment><USER2> While she has many good points her final words are nonsensical (do nothing, just let it stabilize on a 'predefined' setpoint).

It is well known that various agents influence appetite: THC, stress, hormonal disturbances, exercise, drugs, (green) coffee etc.

So what appears to be your predefined setpoint might actually be a combination of other unfortunate factors which in most cases CAN be fixed by adopting certain lifestyle and taking certain drugs/supplements. This is ofc. hard as it requires a lot of self experimentation to pinpoint most likely agent involved.

As analogy, if you find yourself gluten intolerant, you will probably tend to avoid the thing rather then thinking that you should simply ignore it as that is your nature.

There is no evolutionary benefit in being obese (there is some merit in being slightly overweight with aged individuals) - you predispose yourself to myriad of problems (diabetes, CHD, low vitamin D content, bone stress etc.), you limit your agility (which was not good idea back in time) and so on. So there is NOTHING natural in this.

Plus, you actually don't have to starve - ketogenic diet mimics starvation effects without the actual starvation. I lost 25 kg before 5 years using it and gained 7 afterwards because of my later life choices (extremely sedentary lifestyle and adoption of higher level of carbs). What I learned is that carbs obviously don't agree with me and that my mass starts to rise very fast as soon as I adopt more of them without exercising (which would redirect those carbs to muscles, not fat, if done in proper time frame).

</comment><comment><USER3> > If one had, shouldn't it have survived the test of time?

Yes ... eat less than your body burns.

>why dieting over the long term is actually impossible

Oh so I lost 10 kg over the last couple of years on accident? How fortunate! Guess my 'healthy' eating habits are just nonsense after all!

>nobody has willpower

This is bullshit. Everybody has willpower, maybe a finite amount of it but it's there.

Losing weight is 'simple', not easy. Eat less than your body burns. That's it. However, there are some caveats. This technique requires you to accurately 'guesstimate' how much your body burns but also your caloric food intake. Losing weight also doesn't necessarily mean 'looking better'.

The most important thing though are habits. Habits are powerful.

<comment><USER4> It feels like the article is splitting hairs on "dieting" vs "eating habits". Dieting, as in a set of very strict arbitrary rules, is hard to do over a long time period. "Eating habits", as in a general yet flexible set of guiding principles, is a lot easier to keep with over a long period of times.

I've certainly changed my eating habits to be a lot healthier over the past 5-10 years (mainly more fresh fish and vegetables, less soda and fast food) compared to the 5-10 preceding years, but I wouldn't say I've been on a "diet" over the past years. I still occasionally eat all kinds of unhealthy stuff, but just not anywhere near as often as I used to.</comment></comment>


INTERFACE Love. – Researching UI in Games, Cinema and Anything Else - <AUTHOR> https://ilikeinterfaces.com/ <comment><AUTHOR> I've got a question. Most futuristic UIs feature thin bright blue / green lines and text on a dark background[0]. Some feature orange text[1]. It seems really rare to see a white background with dark text, though that is almost all that we see in modern UIs.

Why do you think this is?

[0] [https://ilikeinterfaces.com/2015/07/14/schematic- ui-2001-a-s...](https://ilikeinterfaces.com/2015/07/14/schematic- ui-2001-a-space-odyssey/)

[1] [http://kremlin.enterprises/post/90333325920/i-got-the- russia...](http://kremlin.enterprises/post/90333325920/i-got-the-russian- spacecraft-simulator-working)

</comment><comment><USER2> awesome site!</comment>


The Tea Party 'revolution' of 2008 look suspicious - <AUTHOR> https://timeline.com/ron-paul-russia-hacking-e248f87f38f2 <comment><USER2> Jeebus. What about the verified case where Romney and the GOP establishment actually nullified election results in 2012 that might have led to a Ron Paul vs. Obama matchup?

As lefty, I'd love to have had that kind of meaningful election.

</comment><comment><USER3> Such nonsense. Even Van Jones has rightly called the Russia narrative a 'nothingburger'.

The only cheat in the 2016 election was Clinton conspiring with the DNC against Bernie. Now THAT was true election interference.</comment>


Show HN: MMORPG in 55KB of Javascript - <AUTHOR> http://aberoth.com/index.php?jsClient=1

<comment><USER3> Hey, this is really terrific! Extremely impressive, especially the fact it's so small (code size). This expresses a real retro sensibility that most "retro" style games miss: pixel art shouldn't take up megabytes of space.

I think you should do something with this. You've actually got something you could spread far and wide, in this. It's shocking how few Web-based MMO experiences there are like this. This is the point where I say "quit your day job." Unless this is your day job.

To whit: such a small MMO could become a nice little business for you. People will pay for cosmetic stuff, and they love to idle in virtual worlds...

<comment><AUTHOR> Wow, thanks for the encouragement! I am indeed making a business out of this, and so far I sell memberships, character customizations, vault upgrades, and name changes. The income has not reached "quit my day job" yet, but I am still actively developing and marketing the game, and I'm hopeful for the future! Any ideas on how I could "spread this far and wide"?

<comment><USER3> I think you've got a few options. Route 1 is to spread it by hand, post it on 4chan /v/ or on Neogaf and ask for advice there, as you did here.

Second option is to buy actual ads on those same sites, Facebook, Twitter.

But the best option, though the hardest, is for you to begin making the game show off your personality a bit more. Make it more unique. Think Kingdom of Loathing or Candy Box: both have totally unique writing and worlds, and aren't just the standard orcs and goblins. What are you into, personally? What's some private joke you have with yourself you can spread across this game like a layer of butter?

Finally, giving people more ownership of the game world will encourage them to invite friends. Perhaps an "invite 5 friends, get your own house in the game" type thing. Growing it via social networks is half of that, but the other half is allowing players to have something in the world they'd want to show to someone else.

Good luck! You're already doing a great job. Watch player growth religiously. It's your guide to where advertising works.

</comment></comment></comment><comment><USER4> It seems that this started in 2010:

[http://www.aberoth.com/whats_new.php](http://www.aberoth.com/whats_new.php)

Comments from other people trying out the game are hilarious:

        - I was alive once... it was awful
        - This is way better than GTA
        - How do I give you my money
        - Which way's the strip club

<comment><AUTHOR> I first released the game in 2010. There was originally only one small area to run around in, and it was running off my DSL line, so it could only support 5-10 players. Also, the client was only available as a Java applet. Websockets made it possible to create a Javascript client. There is also a mobile version available which includes controls for touch.

</comment></comment><comment><USER5> Where can I read more about the technologies used? I'm especially interested in how you are using WebSockets to achieve such smooth real-time. I was always under the impression that WebSockets was unsuitable for multiplayer games like this.

<comment><USER6> TCP is pretty well suited for MMORPG's, World of Warcraft uses TCP too.

UDP is needed for games that need more consistent accurate response times, like FPS and racing games.

Hopefully when WebRTC datachannels get browser support we'll finally see those too :)

<comment><USER7> there are fps games with more people in the same area as mmos...

</comment></comment></comment><comment><USER8> For me it's only showing this message.

"Session has ended"

<comment><AUTHOR> I'm not sure what the causes this. I always get this error when trying to run Aberoth from Apple stores (and I have tried 3 different stores). I can't debug or fix the problem because I have not seen it anywhere else. The Java version might work.

</comment></comment><comment><USER9> Um, when I try to access the site, I get this:

[http://gyazo.com/8b0d0be033b42c789cbfde821fc7a7e1](http://gyazo.com/8b0d0be033b42c789cbfde821fc7a7e1)

For posterity's sake, I'll explain the image: it's Norton blocking the site, citing an _extremely_ vague 'drive-by download' threat:

[http://safeweb.norton.com/report/show?url=http:%2F%2Faberoth...](http://safeweb.norton.com/report/show?url=http:%2F%2Faberoth.com%2Findex.php%3FjsClient=1&product=NIS&version=188.8.131.52&layout=OEM&lang=0901&source=toolbar)

The site owner may want to get in touch with Symantec to figure out what's going on.

<comment><AUTHOR> Thanks for pointing this out! I went ahead and registered and disputed the 'threat', so hopefully this warning will go away once they have manually reviewed the site.

</comment></comment><comment><USER10> Would like to see:

        - <USER2>
        - Auction House
        - Scripting language
        - Player driven economy like crafting

You will eventually need some kind of gold sink to balance out the inflationary nature of in game currencies.

</comment><comment><USER5> Great job. How do you prevent cheating? Are you validating every action on the server?

<comment><AUTHOR> Basically, the only thing sent to the server are mouse clicks and keystrokes, which should make cheating difficult. In the past, people have used macros or programming to flood the server with mouse / key input, which caused performance issues. I now rate limit input, so if too much is sent too quickly it is just thrown away.

</comment></comment><comment><USER11> Amazing!

I'd love to see a port of Out of this World to Javascript.

<comment><USER12> [http://www.megidish.net/awjs/](http://www.megidish.net/awjs/)

<comment><USER13> IMPRESSIVE ! did you do that ?

</comment></comment></comment><comment><USER14> A link to the non-minified source?

</comment><comment><USER15> Out of curiosity, How much larger would this likely become if you converted this to something 3D using WebGL?

<comment><USER16> Why do you assume it would become larger?

<comment><USER17> He didn't. Negative numbers have been around for millenia.

</comment></comment></comment><comment><USER18> How much of those 55KB is the server?

</comment><comment><USER19> The title is somewhat misleading; looking at the javascript it appears that the client is just rendering rectangles in the end. Everything is server side. This is a really novel approach and the author has done a fantastic job!

</comment><comment><USER20> This is amazing.

I shared this with my stepdad and his friend, and we started talking about retro-gaming and how things were in the 80's-90's with gaming.

I hope to see this hit Steam :)

<comment><USER21> Why do you need Steam for a Web game??

<comment><USER20> Well... An easy to download a client, keep a shortcut on the desktop. The user can track the amount of time invested... Achievements. (People love..achievements)... Extending the audience to a wider level. There are plenty other, however the dev said s/he is trying to push for it. So, I wish them luck. :)

<comment><USER22> Well, shortcuts can be made to web apps too. But yeah, Steam offers a bunch of other things to games like this; the ones you mentioned, but also a way to pay for the game, a community, and (probably most importantly), exposure. App store for games.

<comment><USER21> Riddled with DRM though, so I'd avoid it.

<comment><USER7> steam is like paypal for gamers. which would be good if integration was easy... but no, you are forced to depend on their fullfledged client with all the DRM and abusive tactics.

</comment></comment></comment></comment></comment></comment><comment><USER23> Is this open source by chance? I'd love to see an un-obfuscated version and the server side code (I'm assuming there has to be at least some?)

</comment><comment><USER24> I have died and I keep getting "session has ended" when I try to log in. Is this expected?

</comment><comment><USER25> Hmm. None of the keys work for me. Chrome Windows Version 31.0.1650.57 m

</comment><comment><USER26> Amazing, reminds me of Runescape, the old days

</comment><comment><USER21> Very impressive. Reminds Browser Quest a bit.

</comment><comment><USER27> Wow this is amazing!

</comment><comment><USER28> There was no key :o

<comment><USER29> It's outside the door.

<comment><USER30> It's a trap!

I entered the door someone before me unlocked, but when I went back, running from thieves on low health, I found the door closed - they had me cornered and killed me.

</comment></comment></comment><comment><USER31> awesome! kickstarter maybe?

<comment><AUTHOR> I've considered a Kickstarter, but I'm not sure exactly what I would use the money for. Perhaps some professional artwork or music. I am trying to get Aberoth Greenlit on Steam, however. You can see it at: [http://steamcommunity.com/sharedfiles/filedetails/?id=930412...](http://steamcommunity.com/sharedfiles/filedetails/?id=93041252)

<comment><USER32> You could use it to just live on. That's kind of the point of the patronage system. You need time to work, and you need food and housing during that time.</comment></comment></comment>


Distribute Your Content With Amazon CloudFront - <AUTHOR> http://aws.typepad.com/aws/2008/11/distribute-your-content-with-amazon-cloudfront.html <comment><USER2> I'm seeing 38% faster downloads from Phoenix (nearest CloudFront edge: L.A.). I ran 5 trials on a 178MB video hosted on S3 [1] and CloudFront [2]. The S3 GETs took: 6m02s, 1m50s, -failed after 28MB- , 2m01s, 2m04s. The CloudFront GETs took: 3m40s, 1m10s, 1m23s, 2m05s, 1m25s. Ignoring the failed S3 run, we can compare average client latency: 2m59s vs 1m50s.

[1] <http://2008.s3.amazonaws.com/09/javascript.mp4>

[2] <http://d11tgpuxrsgxu4.cloudfront.net/09/javascript.mp4>

<comment><USER3> Surprisingly CloudFront was almost twice as slow as S3 for me (though I only tried it once):

[1] 6m 56s

[2] 11m 22s

<comment><USER2> Yes that is interesting without being shocking. True we can't conclude anything from one spin so if you have time please run it again and share. If it was an anomaly then I think it's: a) merely verification that the pipes downstream are unreliable and/or b) your edge location didn't have the file cached so fetched from S3 before serving to you. But if you continue to see unexpected results do tell.

<comment><USER3> S3: 10m 53s, 6m 24s, 10m 15s

CloudFront: 8m 37s, 8m 12s, 8m 17s

</comment></comment></comment></comment><comment><USER4> I wonder how this compares to Mosso's CloudFiles? They've already been offering a CDN built-in, but I haven't done any testing myself yet to compare their services (latency, etc).

Cost comparisons run very close using their cost calculators for just CloudFiles vs S3...

<comment><USER5> Mosso's Cloud Files uses Limelight Networks' system. It's not a one-off with Limelight either, it's the same CDN service any of their customers use.

In addition to ReST, PHP, Python, Java, and C# API's, there is also a web- interface that makes it easy to sign-up, upload content, and CDN-enable it.

</comment></comment><comment><USER6> Are there any guarantees on how fast files are invalidated on the edge servers? Running curl on those urls gives a lot of insight ( X-Cache: MISS ... ) into what's going on but it seems that invalidation of resources take 10-15 seconds. The X-Cache changes immediately but you only get a miss after a while. At least that's what I've been seeing in my pretty trivial tests.

</comment><comment><USER3> This is general CDN question: how does one enable compression for CDN-served resources?

In Apache I just enable mod_deflate or mod_gzip, or serve up a .gz and set the Content-Encoding to gzip.

Do CDNs offer this somehow?

Can I set arbitrary headers like Content-Encoding?

Also, does anyone have stats on which browsers support deflate and gzip encodings? I imagine the vast majority at this point do.

<comment><USER7> the point of a cdn is to give you an SLA and honor it. how they configure their delivery platform should be opaque to you, its not like you are going to be getting a shell on the cdn machines anyway

<comment><USER3> So can someone else answer my question then? If I want my content gzip encoded are CDNs simply not an option?

</comment></comment></comment><comment><USER8> Amazon is a bad-ass.

<comment><USER9> They are doing a fine job, yep.

Something I couldn't find is support for SSL. That's key for CDN services.

<comment><USER10> Signing up for a SSL certificate using your own credentials and then letting a third-party distribute and use your private key on an arbitrary number of systems you have no control over is bordering on fraud.

<comment><USER9> We are talking about a cloud service and the same company's CDN system. They already would have said certificates running possibly in multiple hosts. How do you get to "bordering on fraud" from there?

 _FAIL_ (Because of your reply tone, please try to be more civilized next time, shame on your up-voters too.)

<comment><USER10> If I give my certificate that says "this is Brian Smith" to Amazon, and then Amazon uses it to claim to be me, then that is very misleading. It is very similar to me giving my driver's license to my underage brother so he can buy me beer.

If CloudShare used its own "this is Amazon.com's Cloudshare Service" certificate then it might be okay, except (1) they would be using it to sign content that they haven't verified the authenticity of, which is misleading (like notarizing something without any authentication), and (2) you almost always need to mix those static assets with dynamic assets or HTML forms and that all has to happen on the same domain--the domain that receives the POST requests, not the CDN's domain--in order for things to work reliably.

As for tone: the tone with which I wrote my reply is apparently not the same as the tone with which you read it.

<comment><USER9> No (x3)

</comment></comment></comment></comment></comment></comment><comment><USER11> Love the fact that you guys added the service to the Service Health Dashboard immediately: [http://www.transparentuptime.com/2008/11/amazon-launches- fes...](http://www.transparentuptime.com/2008/11/amazon-launches-festivus-of- cdnsa-cdn.html)

</comment><comment><USER12> Just read the docs, it seems that when you put a file in the CDN they distribute it on all edge servers and you paid for that (which is normal). But it would be great if you can chose on which servers you want the files distributed to. For example I might need the servers just from the european region.

If you have couple of files in the CDN it will not make sense, because the cost to distribute the files around will be marginal, but if you have many GB of data, distributing them to all unneeded servers might be not cost efficient.

<comment><AUTHOR> CloudFront uses a pull model, not a push model. When a particular node needs the data and doesn't have it cached, the node fetches the data from S3.

<comment><USER13> Aha, 10x!

</comment></comment></comment><comment><USER14> Can't wait to start using this for Stormpulse. Our traffic is extremely geo- specific (usually Texas and/or Florida), so this is going to help.

To be frank, I haven't been completely satisfied with S3, so maybe this will help insulate us from those outages as well, assuming the content is already cached at the edge.

</comment><comment><USER15> Has anyone noticed that the transfer charges for the United States are actually less than the charges for S3 once you get over 10TB? Other than the added cost of distributing the files to the CDN, wouldn't that make the CDN as cheap or cheaper than S3? Great place to put your most accessed files.

<comment><USER16> That's kinda the point. Since bits from a CDN travel less distance, Amazon charges less.

</comment></comment><comment><USER17> OK, dumb question, but I thought there was this thing called Apache HTTPD that was traditionally used for serving static content? What ever happened to that? Granted, it has one basic flaw, in that it doesn't deliver usage statistics of my site to Amazon, but other than that?

<comment><USER18> Serving static content from Apache or lighttpd is trivial.

Putting multiple boxes hosting that httpd in various geolocations, setting up DNS and BGP to route users optimally, designing failover routes and keeping N nodes in sync is the hard part.

<comment><USER17> True, but when does one reach a size (user base) at which stuff like that becomes critical?

<comment><USER19> The same size one should start using any CDN - as soon as you start caring about page load speed.

<comment><USER17> OK, I forgot about that problem (I assume it is the limitations of browsers to two connections per server at a time).

<comment><USER16> You can work around that with multiple hostnames, but lower latency is still better.

</comment></comment></comment></comment></comment></comment><comment><USER20> from the pricing table, I noticed that the cost in Japan was the highest. I always thought that Japan had a lot of bandwidth.

<comment><USER18> Space + power? Also, AU and SE Asia will be routing to HK or Japan, and that would tend to be more expensive.</comment></comment>


Why is the US still using a Nazi tall ship? - <AUTHOR> http://www.bbc.com/news/magazine-33543706

<comment><USER2> "Nazi" is an ideology, a political belief. A ship (or a cup, a plate, a monkey wrench, etc.) doesn't hold a political belief. It is simply a ship.

It is a very nice ship, and serves a useful purpose. Not using the ship because it was built by the Nazi's is ridiculous. We would have to get rid of a lot of stuff in our lives, including the Bush family [1].

[1] [http://www.theguardian.com/world/2004/sep/25/usa.secondworld...](http://www.theguardian.com/world/2004/sep/25/usa.secondworldwar)

</comment><comment><USER3> That's not unlike asking, why are people driving Volkswagen cars?

"Volkswagen was originally created in 1937 by the German Labour Front (Deutsche Arbeitsfront)."

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

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

</comment><comment><USER4> Unfortunately not in English: [https://de.wikipedia.org/wiki/Gorch-Fock- Klasse](https://de.wikipedia.org/wiki/Gorch-Fock-Klasse)

This one is: [https://en.wikipedia.org/wiki/Gorch_Fock_%281933%29](https://en.wikipedia.org/wiki/Gorch_Fock_%281933%29)

</comment><comment><USER5> Why did the Israeli Defense Forces use Nazi fighter planes in the late 1940s? I assume that it was because ME-109s were easier to come by. (OK, Wikipedia says it was the Czech Avia-S199 variant, but still.)

</comment><comment><USER6> I've always loved that ship, and sailing ships in general. Son of a Coast Guard officer here.</comment>


Leaked: memo from Sergey to all Google - <AUTHOR> Date: 2 April 2016
From: Sergey
To: All Google staff
We all enjoy a great April Fools prank.
But this year we have seen the down side of the levity and fun of April Fools.
April Fools, when done well, is a strong lead-in for growth and recruiting.  Any Internet corporation that does not jest well at April Fools is a step behind in the market.  Software engineers looking for a new job position are known to engage with potential employers based partly upon the corporate sense of humour. Brand value index is measured partly upon a corporation's sense of humour and enjoyment of fun and laughter.  We know that by this measure, we are far ahead of the competition at Apple.
Google has always been a leader in April Fools jesting an even now when I think back to our previous hijinks I have a good chuckle.  That's a lead we want to maintain.
In previous years we have allocated significant resources and budget to our April Fools jesting.  This budget and commitment to April Fools will remain strong into the future.
However, from 2017 onwards all April Fools projects will need a business case, management oversight and a steering committee.
We'll not be approving all April Fools jesting from 2016 onwards.  Only the funniest and most clever jests will be funded and all will require a solid business case articulating the return on investment.
Most importantly, all future Aprils Fools plans must be evaluated by our corporate risk department and be approved as not representing business risk before going ahead.  Please, in 2017 I ask you not to go ahead with unauthorised April Fools pranks and jests.
Remember folks, Google loves to have an April Fools jest, we've worked hard to make ourselves the best jesters on the net.  But we need to do it safely and responsibly.  Funny is only funny if it does not land with a thud.
Thanks and keep laughing - may April 2017 be our best, most clever, witty, and safe April Fools ever.  I look forward to seeing what you come up with.
Sergey.
NB:
If you are unsure at all regarding your 2017 April Fools pranks please refer to Marton Sziraczki, Head of Risk Management, Google Access and Google Fiber who has taken the lead in this initiative. <comment><USER2> Heh, whereas an American would normally write "unauthorized" (that is, with a "z"), the purported Sergey used the British/Australian spelling, "unauthorised." Odd and suspicious.</comment>


Clear defensive programming with Go using Verifier library - <AUTHOR> https://itnext.io/clear-defensive-programming-with-go-using-verifier-library-6f648810b453 <comment> ainar-g This looks neat, but I would not call it clear. In cases where I need to check many conditions and return, I would simply use a conditional switch (and also use exact error values instead of generated ones):

      switch {
      case transfer == nil:
          return nil, ErrInvalidTransfer
      case person == nil:
          return nil, ErrInvalidPerson
      // ...
      }

This, to me, is both concise and clear.

<comment><USER2> You can actually return specific errors using verifier library. Check out documentation: [https://godoc.org/github.com/storozhukBM/verifier#Verify.Wit...](https://godoc.org/github.com/storozhukBM/verifier#Verify.WithError)

<comment><USER3> I believe the point of the OP is, you don't need the verifier library at first place. This is one of these dependencies that offer very little for the cost of adding a new dependency to a project.

<comment><USER4> I'm not going to use OP's package, but I'll definitely copy the idea into a local helper. [https://gist.github.com/icholy/fc41b8cfe74506cf93ec6b0fba1fc...](https://gist.github.com/icholy/fc41b8cfe74506cf93ec6b0fba1fc4ce)

</comment></comment></comment></comment><comment><USER5> The more I read these things the more I believe that contract systems like clojure.spec and strong type systems/contracts like ADA were too much advanced for its time... golang is just above the stone age of programming languages... better than assembly barely above C,...

Some days I even believe that by promoting developer's mental laziness to not learn new paradigms/more advanced languages/technical systems we are just delaying the progress of humanity.

EDIT: advanced for its age -> advanced for its time

<comment><USER6> I think Go was deliberately designed to be like C but less insane because people still use C!

Go is a practical language designed to improve the situation. You aren't going to convince someone who writes socat or curl or whatever in C to use Clojure or Ada instead. They might plausibly use Go though.

<comment><USER5> I get your point; GO is a low hanging fruit from the marketing point of view: it is a smart business move; because as we all know markets as well as societies have a strong inertia in regard of consumed products. But that doesn't change the technical opinion of the topic and the fact that we are still undeveloped using "C+" (aka go).

P.S. I am being a bit too hard on Go, but my whole point is that after seeing really complete solutions for this problem, everything else pales next to them and that we still encounter unnecessary problems.

<comment><USER7> I both agree and disagree with you. More sophisticated languages do have an obvious benefit to a great many problems and you're also right that often the problem is the developer's capabilities rather than the language. But you could also flip that argument and say a good developer could write good code in any language so why bother with anything more sophisticated.

However arguments about the developer aside, Go has other advantages that drew me to it. Such as

* cross-compiling requiring no additional effort aside setting an env var (It's been a why since I've written C++ but I seem to recall no end of bother there. Again a seasoned developer will argue it's easy but I certainly didn't find it that way)

* It compiles down to a portable executable (there are surprisingly few languages that do that)

* It's not overly verbose. Ok, this is only true if you're not having to work around generics or the "if err != nil" syntax. But for most problems I've found Go to be refreshingly direct.

* It enforces strict code layout guidelines so I can pick up anyone's code and can run with it easily enough.

* Compiler error messages are very easy to understand.

Sure there are other languages that cover some, maybe most of those points. But few cover all. Which is why I often describe Go as "a boring language that's pleasant for just getting shit done". Which is why I tend to favour Go these days despite having learned more than a dozen different languages over the years.

Needless to say a great many of people - both on and off HN - will disagree with me. But that's the beauty of personal opinion. Programming languages really are just the realm of preference.

<comment><USER8> > But you could also flip that argument and say a good developer could write > good code in any language so why bother with anything more sophisticated.

Because both inexperienced and experienced developers will be prevented from doing the wrong thing more often when using a better language.

<comment><USER7> I do agree with your point but this is about more than just language safety. The point the GP was making was more about expressiveness of languages (or at least that was how I interpreted it). You can have safety even in arguably unsophisticated languages (eg Visual Basic pre-dotnet). However it's true that _some_ languages use their expression as a method of enabling developers to write less buggy software.

</comment></comment></comment></comment></comment></comment><comment><USER9> So, I'm trading potentially error-prone if statements that are plainly visible in the code for a potentially buggy library whose code I'm not familiar with just for some syntactic sugar?

Sorry, no thanks.

<comment> ainar-g Notice how OP had to add a check after verifying two pointers against nil. A junior developer could've easily skipped it, and, if tests only go through happy paths or are non-existent, deploy it somewhere where it would explode in runtime.

<comment><USER9> > A junior developer could've easily skipped it...

But the senior developer should catch it in a review before ...

> ...deploy it somewhere where it would explode in runtime.

<comment><USER10> Computers are much better at consistently catching errors than developers

</comment></comment></comment></comment><comment><USER11> The only benefit I can see in this, is that if each time I call GetError, it will give a useful list of conditions that were not met, so that in conditions where fast-fail is not necessary, but letting the caller know everything that might have been incorrect, useful information is available.

If that's not the case (and it's not clear from any of the documentation), it seems like this adds no real value, and in my opinion actually makes the error handling ugly and harder to maintain.

Also, use package-defined, exported error types that you can refer to by name, and errors become useful data again like Go intended.

<comment><USER2> You can actually return specific errors using verifier library. Check out documentation: [https://godoc.org/github.com/storozhukBM/verifier#Verify.Wit...](https://godoc.org/github.com/storozhukBM/verifier#Verify.WithError)

</comment></comment><comment><USER3> If only there were some features in some computer languages or type systems that allowed to eliminate 99% of these kind of errors AT COMPILE TIME, making these kind of libraries redundant... but Go is so simple "you don't need all that" because sophisticated type systems "are just too hard", just do it all at runtime instead...

<comment> ainar-g If you're talking about nil, then yes, I would really like Go to never have it.

But the other validations are more about contracts. Preconditions, to be precise. Yes, I know that a sufficiently advanced type system (dependent types?) could encode those in the function signature, but I am not entirely sure if the technology is already there.

</comment></comment><comment><USER12> > I think we all can agree that these lines are repetitive and even error- > prone to some degree.

I don't agree. I'll take if-statements over a validation library 99% of the time.

This is how we validation a message coming into our REST+JSON API: [https://github.com/ohsu-comp- bio/funnel/blob/master/tes/vali...](https://github.com/ohsu-comp- bio/funnel/blob/master/tes/validate.go)

</comment><comment><USER13> Cool, I've been waiting for something like 'verifier'. A while ago I read 'Errors are values' [1] and always wanted to upgrade my error handling, but never really did. Verifier looks like a small library which can help me with that easily :-)

[1]: [https://blog.golang.org/errors-are- values](https://blog.golang.org/errors-are-values)</comment>


World's First Methanol-Powered Tankers Set for Delivery - <AUTHOR> https://gcaptain.com/worlds-first-methanol-powered-tankers-set-for-delivery/ <comment><USER2> > The ability to run on a sulphur-free fuel offers great potential and > provides innovative solutions for the world's energy needs

What are the incentives here. Can't imagine the price of ethanol being cheaper than marine diesel. Even if prices are equal the energy density and specific energy is about half that of diesel. Or are they anticipating legislation to ban sulfur fuel (or maybe at least get tax incentives in some places for using non-sulfur fuels)?

<comment><AUTHOR> They seem to be a bit worried about how much pollution shipping actually puts out. [http://ec.europa.eu/clima/policies/transport/shipping/index_...](http://ec.europa.eu/clima/policies/transport/shipping/index_en.htm)

It didn't get attention in the Paris meeting, but it probably will given the amount.

</comment></comment><comment><USER3> Is this substantially different than the greenwashing of "flex-fuel" cars that can burn ethanol, but hardly anyone uses it because of economics and scale problems with growing corn?

<comment><USER4> METHanol. Not ethanol. It's not made from corn.

<comment><USER5> The ship won't need to stop for sleep if you run it on METHanonl(TM). Its teeth will rot out pretty quick though.</comment></comment></comment>


Ask HN: Can someone properly *review* the new retina? - <AUTHOR>

Being a frontend webdeveloper; I found myself wondering if I will benefit from the new iMacs gigantic screen-releastate. I have some ideas that this could be beneficial for my use case.
Problem: There are so many poor reviews on the web. None speaks of how the screen is to work with on a daily basis.
Scenario 1: how will spectacle work in terms of ordering all browser windows in full hd-view aligned along side eachother. safari+chrome+firefox+textmate. All full view in one window. Neat idea?  :)
Scenario 2: I use iTerm. Demonstrate how tiled layout will work.
General: how is text/fonts and graphics when in 5000k? <comment><USER2> I would wait for the anandtech review, their reviews are second to none.</comment>


Ask HN: Why so many Contact Tracing Apps? - <AUTHOR> It seems almost every country in the world as well as many states and regions are writing their own contact tracing apps for COVID-19. Research shows that these apps are not useful without significant adoption rates (50% to 80%). I'm trying to understand why so many groups are re-creating the wheel. Why can't they work together and make one really useful app?<p>https://eclecticlight.co/2020/07/25/smartphone-contact-tracing-has-failed-everywhere/ <comment><USER2> Nobody agrees on how it should work, what it needs, how to do it semi- anonymously, etc, etc. On top of those issues is that it is the newest tech thing needed, so a lot jump into it as projects and a future business.

</comment><comment><USER3> Cambrian era type explosion of a new set of niches have opened up and lots and lots of strategies are competing. It's plain ol' evolution.</comment>


Amazon and USPS will offer Sunday delivery starting with New York, Los Angeles - <AUTHOR> http://www.washingtonpost.com/business/technology/amazon-and-us-postal-service-will-offer-sunday-delivery-for-amazon-prime-members/2013/11/11/6c6e6506-4ada-11e3-bf60-c1ca136ae14a_story.html

<comment><USER2> > Financial terms of the arrangement were not disclosed

I wonder how long that can remain true. The USPS has run into legal trouble by providing special services or deals for some customers and not others: [http://www.washingtonpost.com/business/technology/amazon- and...](http://www.washingtonpost.com/business/technology/amazon-and-us- postal-service-will-offer-sunday-delivery-for-amazon-prime- members/2013/11/11/6c6e6506-4ada-11e3-bf60-c1ca136ae14a_story.html)

Maybe this whole thing turns into Sunday package delivery for everyone, or just gets shut down.</comment>


slog-rs: Structured, composable logging for Rust - <AUTHOR> https://github.com/dpc/slog-rs <comment><AUTHOR> After using [https://github.com/inconshreveable/log15](https://github.com/inconshreveable/log15) for Go, I become sold on structured logging (read more [http://gregoryszorc.com/blog/category/logging/](http://gregoryszorc.com/blog/category/logging/) and [https://kartar.net/2015/12/structured- logging/](https://kartar.net/2015/12/structured-logging/)).

I've decided that Rust must have a strong structured logging solution, and so I present: slog-rs. I believe it reached a level of usability justifying sharing with a wider audience.

See slog-rs features: [https://github.com/dpc/slog- rs#features](https://github.com/dpc/slog-rs#features)

Happy logging!

<comment><USER2> If it meets the guidelines, this might make a good "Show HN".

Guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)</comment></comment>


Tesla expands Supercharger Network in Europe - <AUTHOR> http://www.ciol.com/ciol/news/207352/tesla-expands-supercharger-network-europe <comment><USER2> Most people who live in Germany in cities don't have houses, only flats. How would you ever charge an electric car there? Driving to one of the superchargers each time would be pretty annoying and probably kill the battery.

<comment><USER3> I think that right now, the target market for the Tesla S is definitely rich enough to live in their own house where they can charge it. And in any case - there is already plenty of public charging points everywhere, and you can also park for free there, so in an unlikely situation that you buy a Tesla and live in a flat, you should be able to charge it while you are at work,from any of the public charging points.

<comment><USER4> That's quite insulting. The trend for Germans to rent and not buy is a choice, not due to being too poor to afford a house.

They don't share the homeownership fever prevalent in the UK and USA. Germans (and the French) rent due to cultural reasons, it's not looked down upon at all, it's a pragmatic alternative and puts the renter on a much more equal footing with the landlord than in other countries (like the UK).

Of course this is all quite obvious by glancing at the rental prices in nice neighbourhoods in Frankfurt, Berlin, Munich, Paris...

</comment></comment></comment><comment><USER3> Autobahn + Tesla car = pure dream. The batteries will be gone in minutes though.

<comment><USER5> Well, Autobahns are designed to help you get from one place to another as quickly as possible. Stopping for charging every 250-300 km is not ideal.

<comment><USER6> Assuming you have the 85kwh battery, that's more like 240 to 300mi = ~390km to 480km, which while not as good as a gas engine is still pretty adequate. [1]

[1] [http://www.teslamotors.com/goelectric](http://www.teslamotors.com/goelectric)

<comment><USER7> Does that range apply when cruising at 120mph? The website you link indicates 240miles at 70mph (which is not Autobahn speed).

Obviously you can go faster on the derestricted sections of Autobahn but you REALLY need to concentrate and plan well ahead at >150mph and that drinks fossil fuels too not just batteries.

Edit: A bit of extrapolation from the ranges on seems to show at a first aproximation you could do a little less than 110 miles at 120mph. Based on the datapoints in the parent's link a drop of 5mph gains you a range of about 8%.</comment></comment></comment></comment>


The warlogs in mongodb - <AUTHOR> http://github.com/grischaandreew/warlogs-mongodb

<comment><USER2> Are there any heat map visualizations for this data set yet? I seems like a natural fit since each event has a gps location associated with it.

</comment><comment><USER3> Is it possible for you to provide some context for this project? I get the vague sense this has something to do with the Afghanistan war?

<comment><AUTHOR> the dataset is the extracted data from [http://wardiary.wikileaks.org/wiki/Afghan_War_Diary,_2004-20...](http://wardiary.wikileaks.org/wiki/Afghan_War_Diary,_2004-2010), guardian: [http://www.guardian.co.uk/world/datablog/interactive/2010/ju...](http://www.guardian.co.uk/world/datablog/interactive/2010/jul/26/ied- afghanistan-war-logs), nyt: <http://www.nytimes.com/interactive/world/war- logs.html></comment></comment>


Trump Supporters on Reddit Think Google Is Rigging Autocomplete for Hillary - <AUTHOR> http://motherboard.vice.com/read/trump-supporters-on-reddit-think-google-is-rigging-autocomplete-for-hillary-crooked-election <comment><AUTHOR> I'm getting the same exact result: 'Crooked Hill' gives 'Crooked Hillary Bernie' and 'Crooked Hill Post Office'; while on Bing 'Crook' gives the expected 'Crooked Hillary' ('Croo' is overrun by local Dutch suggestions)

<comment> tuna-piano I get the same results as well. According to Google(1), it's due to the low search volume of the term "crooked hillary". Obviously, not sure how their algorithm works, but this seems a bit suspicious due to the search volume seen on Google Trends (vs the much less searched "crooked hillary bernie" term that does show up): [https://www.google.com/trends/explore#q=crooked%20hillary%2C...](https://www.google.com/trends/explore#q=crooked%20hillary%2C%20crooked%20hillary%20bernie&date=1%2F2016%2012m&cmpt=q&tz=Etc%2FGMT%2B5)

(1): [http://searchengineland.com/google-crooked- hillary-251152](http://searchengineland.com/google-crooked-hillary-251152)

</comment></comment><comment> tuna-piano Interestingly enough, to get information about this controversy, I unconsciously queried Google Search in my Google Chrome browser. I then learned more about it through Google News. Given the power they have over information, they have a serious responsibility to ensure neutrality. I hope this is just a normal technical issue and not fowl play, although based on the evidence, I am definitely suspicious.

</comment><comment><USER2> Searching for "crooked donald trump" pulls up a number of substantive articles. E.g. [https://ourfuture.org/20160601/crooked-donald- trump](https://ourfuture.org/20160601/crooked-donald-trump)

</comment><comment><USER3> I don't believe /r/the_donald is a good source for unbiased experiments.

<comment><USER4> /r/the_donald was the source of the discovery, but you can go verify the accusations yourself.</comment></comment>


Malware analysis - <AUTHOR> https://dylansserver.com/note/malware_analysis

<comment><AUTHOR> Hi everyone, I wrote this article. It's the first time I've done anything like it. I wish I knew more techniques of static analysis in particular, although I have a long way to improve all around. I'd love to hear comments and/or questions about anything written. I didn't want to put the specimen itself on my site for obvious reasons, but anyone here that is interested is welcome to ask and I'll be happy to share. Thanks for taking the time to read!</comment>