Implicit Scope and Implicit Resolution in Scala - <AUTHOR> http://www.geekabyte.io/2017/12/implicit-scope-and-implicit-resolution.html <comment><USER2> It's always ironic to me that people think implicits reduce code clarity, and yet those same people use runtime DI frameworks and possibly AOP. Scala implicits can in my opinion be thought of as a simple compile-time lexically- scoped DI framework. It's very much a compile-time equivalent of the @Autowired or @Inject annotation in runtime DI frameworks, except it has the benefit of lexical scoping.

The great thing about implicits is that errors occur at compile-time and your IDE can give you all the information you need to understand what implicits are in play. On the other hand, there is no tool in the world that will save you from a complex spring-based application with strange initialization order errors, certain features silently not working for who knows what reason, and often barely-comprehensible stacktraces.

<comment><USER3> Interesting.

My question then would be is there any convention of where to create all these implicits?

In the old xml spring world (with it's proc and cons) I knew I could locate the creation and injection of my dependencies in a single xml, which was fully dedicated for object creation and injection, so it was very organised, and enforced all developers to work the same way.

How would I look at a codebase and understand if there is are clear places where the objects (implicits) are created and, how do I override them in tests? Do I need to invent all this, or follow a convention? How do I understand the structure of dependencies in the project?

spring xml enforced me to do it in a certain way and enforced everybody to do it in a certain way which was great, any project I opened I new what was happening at least in DI prespective.

And then I would ask what about the cake pattern in scala for a kind of dependency injection? I mean would you prefer one of them for dependency injection? or is it relative to the case you work at?

<comment><USER2> So, to start, I would say that I agree with you that I like my DI logic for my application centralized, whether it's in a single or few classes or in a single or few XML files. On the other hand, people who use @Autowired or @Inject are doing the opposite; they are scattering their DI logic throughout the application, which I very much do not prefer.

That said, the DI analogy breaks down a little bit when you consider that Scala implicit resolution happens at compile-time and is lexically scoped. As such, you can't override implicits that are created/resolved in other source files without editing those source files directly. You can only affect the implicits in your source files by using imports or defining implicit overrides.

If you want a full-blown compile-time DI framework with centralized logic in a single location, then Scala's MacWire library seems to be the best example: [https://github.com/adamw/macwire](https://github.com/adamw/macwire)

Scala's implicits can be seen as some kind of lightweight DI system, but it is definitely not meant to be used to wire together an application at the top- level.

</comment></comment></comment><comment><USER4> I haven't used implicit scopes in Scala, but after watching a demo of them, I think it's a feature that can easily be abused and cloud code clarity. Scala more than almost any other language in it's class seems particularly full of such features.

I'd love to hear from some seasoned Scala folk: what do you think of these new features?

<comment><USER5> I'm not quite seasoned, but I recognize that this discussion regularly gets muddied because it conflates implicit parameters and implicit conversions.

Implicit parameters are everywhere, and they're relatively simple to understand once you get past the mental block that your variables might not actually be declared in the file of code you are viewing. Your mental model just has to include what that file _imports_ , and then you can pretty much understand what implicit parameters are doing. Implicit parameters are useful for a basic form of dependency injection, and they're one of the basic prerequisites for when you are using actors or futures.

Implicit conversions are something else - I wouldn't use them just to be clever.

But once you get into things like typeclasses (which are easier to understand in Haskell for some reason), implicits become important. So if you have reason to use typeclasses (and there are very good reasons to use them), then implicits are valuable.

If your programming doesn't need much abstraction, then you don't really need those kinds of tools though.

<comment><USER4> I understand the distinction and don't like implicit parameters.

Coming from Clojure, one could say that the "use" keyword shares a lot of the same pitfalls as implicit parameters, in that you are introducing values into your namespace which have not explicitly been referenced or scoped.

In Clojure, I choose "require" instead of "use" because "use" introduces too much ambiguity. The "use" statement in Clojure consistently makes code harder to read (for me), and I suspect the same is true of Scala's implicit parameters.

[Edit: Rails is another great example of implicit parameters run amok. Needless to say, I'm not a Rails fan.]</comment></comment></comment>


Ask HN: Abandoning smartphones? - <AUTHOR>

I've had an iPhone for two years, and love using it. But in other ways I hate it. I hate having y email at hand, and ignoring my surroundings to check the interwebs, and paying the monthly plan.
I want just a few things from my phone: instapaper, maps, and SMS/calling. But none of the rest.
What's the best way to do this? Can I stop paying  for iPhone data and just use the wifi? Or should I get a new phone (do any others have instapaper)?
Have any of you done this?
*note - this has nothing to do with the philosophical iPhone/android debate. It's kist about improving my life. <comment><USER2> I have a cheap prepaid LG dumbphone for similar reasons; it's nice to be _not_ email accessible for at least part of the day.

I also have an iPod Touch, which would solve your instapaper problem.

The only problem I can't solve is maps... obviously you can get maps on the iPod, but only when you have wifi, and if you have wifi you're probably not lost. There's always the separate GPS unit solution; you wouldn't want to carry it around all the time though.

<comment><USER3> > The only problem I can't solve is maps...

Recent versions of Ovi Maps by Nokia work offline very well. I used v3.0x when I would have otherwise been roaming without incurring any data charges.

</comment></comment><comment><USER4> My BlackBerry was broken >30% of the time I had it. If it wasn't the headphone jack, it was the keypad- or reboots in the middle of replying to email. I was constantly at the Verizon store to have the tech verify a replacement could be sent, waiting for that, then importing everything again & all that comes with that process.

Ultimately it cost more time than it saved.

It was helpful to have email in my pocket, but I get by without it for now.

</comment><comment><USER5> i dont think you need a new phone. just disable the data on your phone plan, and grab one of the many mapping programs that use locally-stored maps. stick all the other distracting apps in their own folder so your screen is cluttered, done.

</comment><comment><USER6> How do you ditch email when you're still on wifi, but still keep instapaper and maps? Short of writing your own phone OS, or maybe uninstalling built-in apps (can you do that?) the only answer I can think of is self-discipline. :)

</comment><comment><USER7> Why not just delete your email accounts from the phone?</comment>


Why Male Lions Sleep 20 Hours a Day - <AUTHOR> https://www.quora.com/What-do-lions-do-most-of-the-time?share=1 <comment><USER2> A missing part of these answers is the massive downsides to hunting. The more lions hunt the larger territory they need to maintain to not run out of food. Hunting also had real risk of injuries so it's best avoided as much as possible.</comment>


We can teach children to smell bullshit - <AUTHOR> https://www.vox.com/science-and-health/2017/5/21/15505812/lancet-teach-informed-health-choices-teaching-kids <comment><USER2> We can also teach them to recognize clickbait.

</comment><comment><USER3> Amazing it's actually a decent study that passes smell tests. 15,000 students used, a success that is based on high rates (20 of 24), and a twenty % difference between groups.

I hope they follow up to measure how well information is retained, and maybe see if the two groups share knowledge (control going up).</comment>


Startup novice looking for Fortune 500 xls spreadsheet with key financials - <AUTHOR> Hi,
Just got out of college and trying to build my startup.
Does anyone know how I could find/build a Fortune 500 xls spreadsheet with key financials ?
Thanks <comment><USER2> Have a look at Martin Shrekli's finance videos on Youtube - they are quite good in that he shows you how to get the reports from company statements into Excel

</comment><comment><USER3> You can build your portfolio and download data on Finviz [1]

[1] [http://finviz.com/quote.ashx?t=AAPL&ty=c&ta=1&p=d](http://finviz.com/quote.ashx?t=AAPL&ty=c&ta=1&p=d)

<comment><AUTHOR> Great, thanks!</comment></comment>


WWDC 2011 banners at Moscone Center show new iCloud icon   - <AUTHOR> http://www.appleinsider.com/articles/11/06/02/wwdc_2011_banners_going_up_at_moscone_center.html

<comment><AUTHOR> What are your thoughts on the new iCloud icon? Are you excited for the upcoming WWDC event? What do you expect from it?</comment>


CPUsage is AirBnB for CPU - <AUTHOR> http://www.cpusage.com/ <comment><USER2> 'Floding@home'

I remember reading plans for something like this (users rent out space cpu, storage, bandwidth) with the name bithive (maybe? this was years ago), but I don't remember it every becoming a reality.</comment>


Google is "pausing investment" in Allo - <AUTHOR> https://www.theverge.com/2018/4/19/17253308/google-allo-texting-paused-android-messages <comment><USER2> >As part of that effort, Google says it's "pausing" work on its most recent entry into the messaging space, Allo. It's the sort of "pause" that involves transferring almost the entire team off the project and putting all its resources into another app, Android Messages.

I won't even _try_ to fit the various SMS clients android phones have had into my list, but as an android user since ~2010, here is what has been asked of me

1\. Use default SMS

2\. Nah, use samsung's

3\. Never mind, they all suck, just find one on the appstore

4\. Look, Google Voice (app)! And it works with your google voice number! Wifi texting, neat! ~2011

5\. Never mind, stuff that, use Hangouts! Also works with your google voice number! (but no mms!) ~2012

6\. Wait a second, here's a couple more SMS apps built into android. ~2013, 2014

7\. MMS yay!

8\. Never mind, dump hangouts, we updated google voice finally! ~2015?

9\. Here's two new chat apps, neither can text though! Good luck remembering which is for which (2016)

10\. Fuck it, no more SMS on hangouts. 2017?

11\. Lol nah to Allo as well, we're gonna make another SMS app. Were you still using google voice? <\--- we are here

<comment><USER3> There used to be a message on my phone that hangouts was deprecated in favor of messages for SMS. This message would pop up ever week or so after I acknowledged it.

Fast forward a couple weeks, I decide to delete hangouts and soley use "messages." Phone service stops working. I call google fi. Apparently Google Fi depends on the hangouts app to be installed. I complained that I wanted to use hangouts again because it grouped hangouts and SMS, reinstalled hangouts, and everything starts working again.

The message about deprecating hangouts has NEVER showed up again, and I get to use my phone as I wanted to in the first place. Hopefully my little piece of happiness in hangouts doens't get bombed on soon by some eager project manager

</comment></comment><comment><USER4> This was sadly predictable. And according to the article, Google is making another app, a service that will not only depend on Google, but on carrier buy-in to a standard called "Rich Communication Services" as well. ([https://www.theverge.com/2018/4/19/17252486/google- android-m...](https://www.theverge.com/2018/4/19/17252486/google-android- messages-chat-rcs-anil-sabharwal-imessage-texting)) From the article:

> We can't do it without these [carrier and OEM] partners. We don't believe in > taking the approach that Apple does. We are fundamentally an open ecosystem.

I think I heard the same spiel for Google Talk nearly a decade ago. Am I a cynic for thinking Android Messages will suffer the same fate?

Also - I'm pleasantly surprised to learn that Duo (the video messaging app) is fairly successful, according to Google's own metrics. I always did like Hangouts video chat; it was good at what it did.

<comment><USER5> This is quite different, because Google Talk was a pure data thing, while RCS is something the carriers are going to be keen on. They're particularly keen to be able to sell RCS messaging access to businesses, lest those businesses who are currently buying SMS for things like notifying you when your parcel delivery is due or reminding you of your eye test appointment skip straight over the carriers and start sending people WhatsApp or Facebook messages instead.

It could all fall over, and Apple don't seem to be giving any hints about if they'll be supporting it, but so far things are looking pretty promising for this technology.

Disclaimer: I work for a company which is a Google partner developing business RCS services for exactly this kind of use case.

</comment></comment><comment><USER6> This is one product Google should kill, although it would be better if it had just never been launched in the first place.

<comment><USER7> That and duo. I can't find anybody using it. (I know I am being subjective, but as a user this is my mileage and I have to use other apps)

<comment><USER8> I recently stumbled on a use for Duo - for elderly people that have not used smartphones before, the interfaces of other apps like Skype, Hangouts, etc. are overwhelming. Duo's simple. It does only one thing.

Good luck getting anyone who already has a preferred app to use it, though.

<comment><USER9> FaceTime is even simpler to use. All my grandparents use it all the time.

</comment></comment></comment></comment><comment><USER10> Another proof that one should not rely on any service Google offers! What happened to Inbox, and the dozens of other services, which show that Google has a very poor product development! The amount of confusion and similar offering is just beyond anyone's imagination! From Google Talk to Google Voice to Hangouts to Hangouts on Air and now this got broken into Hangouts Chat and Meet to Duo and Allo and now RCS - wow! And I won't mention Google Spaces, Google Wave, and many others we don't even remember anymore! I'm not sure why they need to fragment the communication space into so many products!

</comment><comment><USER11> I'm hesitant to rely any new Google services these days thanks to Google doing this almost all the time.

<comment><USER12> I think it only applies to messaging. I don't like this new approach also. No e2e is there. Plus it will take 2 years to give a good xp to a large set of users. Already looks like a flop. By that time, peoplw will be more absorbed into Whatsapp,iMessage. Whatsapp is already launching payment feature in india. I like google products but this has been very disappointing.

<comment><USER13> Allo supported e2e encryption in incognito mode.

[https://signal.org/blog/allo/](https://signal.org/blog/allo/)

</comment></comment></comment><comment><USER14> The result of all this "wait, no, this!" change?

I don't use any Google IM product, at all, any more. (And at one point, post AIM, they were my first choice.)

Buh bye

</comment><comment><USER15> LOL @ "pause".

Would be quite the news to see "Google resuming investment in Allo" at this point.

Google's relationship with IM's is becoming a farce at this point. If you want to roll out an IM or chat service you/friends/company are to use and depend on, just make sure Google is not "backing" it. They clearly don't know what they are doing. I have lost track of their attempts. I wouldn't be surprised if they have tried with six or so incompatible systems by now.</comment>


GNU/Linux local username triggers Steam VAC ban - <AUTHOR> https://github.com/ValveSoftware/Source-1-Games/issues/2475 <comment><AUTHOR> In Team Fortress 2, there is a group of people who host multiple cheat- controlled aimbotting bots, which run around on servers, destroying everyone playing in the other team. These are called cat-bots.

To host these bots, you need to set up a Linux environment. Then you can use a script, which automatically prepares your system for hosting the bots. One of the things it does is it creates multiple users in Linux (to run multiple Steam instances), all of them starting with "catbot".

[https://github.com/nullifiedcat/catbot- setup](https://github.com/nullifiedcat/catbot-setup)

And the script creators already changed every mention of "catbot" to "kisak" (name of the Github moderator for Valve)

[https://github.com/nullifiedcat/catbot- setup/commit/58582f81...](https://github.com/nullifiedcat/catbot- setup/commit/58582f8103064d63db063eef4b2d31792ebb2cd0)

<comment><USER2> So in one sentence, a user name containing "catbot" is a legitimate signature of an actual work of malware Valve is trying to mitigate.

HN, you got trolled. There's nothing wrong here at all.

<comment><USER3> A legitimate signature would be a sequence of actions the client sends the server that are clearly not possible to have been performed by an actual user playing the game. Like an incredibly improbable statistic or too fast actions or something else.

This is a poor solution: it's the equivalent of blocking spammers by IP address. It works but will also lock out legitimate users.

<comment><USER2> That's not the way this kind of thing works, not even in commercial AV. What you are asking for is for Valve to solve the halting problem before addressing ongoing actual cheating in it's games. That's ridiculous.

You take what clues you can get and you push the fix. This is what all their users not named catbot want.

<comment><USER4> Which is why commercial AV routinely throws up entirely bogus reports. Not a good example.

Comparing statistics (accuracy, reaction time, chat messages, what have you) server-side to a not cheating player population seems like a very promising solution, given it doesn't involve the game client (which is assumed compromised). I don't see how that has anything to do with the halting problem.

</comment></comment></comment></comment></comment><comment><USER5> > Good day, I've received word from the VAC team that this is intentional and > not open for discussion on Github.

> In general VAC issues are not handled on Github in any capacity and further > issue reports on this may result in being banned from the Valve Software > issue trackers.

This is just incomprehensible from a PR standpoint, even for a company like Valve, especially since people on the thread have brought up legitimate concerns for users that might be caught in the flak.

<comment><USER6> Innocent users _might_ be caught by this, but so far that's entirely hypothetical.

The user that posted this has a pinned repo named "AimTux." The second guy is a contributor to "catbot." Ditto the third guy.

One of the people in the thread suggests that he wants to have a TF2 aimbot installed, but it's not for cheating at TF2, honest.

<comment><USER7> Sad that you don't defend the innocent because you deemed them hypothetical.

<comment><USER8> He/she didn't deem them hypothetical. They are hypothetical until a legitimate user that doesn't use bots makes the claim that they were banned for this. According to updates made to this, the username wasn't even the source of the ban so these "innocents" are definitely hypothetical.

</comment></comment></comment></comment><comment><USER9> As Nickodell and PlutoIsAPlanet pointed out, this "issue" was raised by a group of banned Team Fortress 2 cheaters, who are developing obfuscated aimbots.

In all likelihood, VAC's detection is premised on other factors in combination with the username. Like, for example, botting in online multiplayer games.

This may come as a surprise to half the users in these comments, but, for the 99% of gamers who are not malware enthusiasts, banning bad actors is a feature, not a bug.

<comment><USER10> No, it's clearly not. There are people in the linked issue saying they had no cheats and just the username and got banned and the last comment is a Valve employee stating this is all intentional and forbidding any further discussion of it. This is an incredibly dumb way to catch "cheaters" and now that they know they will easily defeat it.

This is absolute bullshit and like saying "issue of rape in prison was raised by criminals who are evil so it's a feature for society they get raped".

And here's a money quote (guess whose):

> When the truth of one issue goes against a person's political leanings, that > person will generally say whatever they can to avoid feeling guilt or shame.

</comment></comment><comment><USER11> As someone who plays a lot of games, I can't wait for the day when Steam gets replaced by something better. And given Steam's current state, "something better" is a really low bar to go by. At this point I would prefer individual installers for each game, without any "platform" whatsoever.

<comment><USER12> That's what you have on gog.com :)

<comment><USER13> I'd love for GOG to be better competition for Steam, and they've made wonderful strides - I actually prefer their Galaxy client over Steam, though I also think UPlay is nicer than Steam since Steam has so much going on that I don't need. But like sibling commenter points out it's a numbers game and GOG's stock just doesn't compare yet. You can't get many AAA releases on GOG even after some time has passed since release - publishers are simply allergic to their strong no-DRM policy and see no reason to be there when people will happily buy it on Steam.

Where GOG is deftly competing is the AA market - games from smaller developers/publishers such as CD Projekt Red (CDPR is owned by the same company as GOG but they are a titan in the AA/AAA field), THQ Nordic, Paradox Interactive, and so on. Many of the games from these companies are released day and date on GOG.

<comment><USER12> You're right, that's something which will hopefully improve over time.

I would count The Witcher 3 as AAA though.

</comment></comment></comment></comment><comment><USER14> Given that all the accounts claiming to have been banned are somehow linked back to CSGO cheating on their GitHub profiles, gonna say this is just cheaters trying to get unbanned.

<comment><USER15> Including the Valve Employee that confirmed their issue?

<comment><USER8> The Valve employee only confirmed that the bans were correct and that GitHub was not the correct place to dispute the bans. A different employee on Reddit has already confirmed that the "issue" reported on GitHub is incorrect and that the bans were instituted based on multiple criteria. They can't go into it any further without risking compromising their detection systems.

</comment></comment></comment><comment><USER16> Remember when Valve made cool games, instead of bilking kids for hat money and removing product functionality because of your username?

<comment><USER17> > Remember when Valve made cool games

Remember when Valve made games...

<comment><USER18> So that card game they're talking about isn't a game?

[0] [https://www.theverge.com/2017/8/9/16117586/artifact- dota2-ga...](https://www.theverge.com/2017/8/9/16117586/artifact-dota2-game- valve-official-teaser)

<comment><USER19> Let's be fair here: It's an easy pivot where they keep paying the DOTA artists already on the payroll with a minimum staff of software and game design devs in order to milk the plump microtransaction teat.

Yes, it's a game. But barring the DOTA IP and existing graphics assets it will not be particularly different from any given other offering in this specific market space.

And that's the unspoken thing in the post you're replying to: "new". Valve hasn't made any truly new game since Left 4 Dead, and i'm sure it could easily be argued that even that wasn't particularly ground-breaking.

</comment></comment></comment></comment><comment><USER20> Ouch I did not know Valve had sunk so low... String matching parts of a local username alone can not ever be enough for a ban... Completely ridiculous

</comment><comment><USER21> Remember when Valve's official stance about VAC was that it will only ever detect cheats, that it doesn't make mistakes, and that if you got a VAC ban, you had it coming?

And then they had a number of false positives over the years where they had to rescind the bans?

And now they're detecting things that aren't cheats. A username on the local machine is not a cheat, end of fucking discussion.

<comment><USER22> Why would you set your username to the name of a known cheat though?

And if you are VAC banned because of it, you can still play your games on non official servers. "Less evil DRM" if you will.

<comment><USER23> Why would expect users to know the names of all known cheats though? If someone created a bot called, say, "VerseC", I doubt you'd be thrilled if that resulted in you being banned.

I also suspect the crossover between cheat names and gamer user names is high - "catbot" would not look at all out of place in a list of user name.

<comment><USER24> Anyone who's still playing TF2 at this point has a pretty good idea of the names of the various bots at this point, because they spam them in chat while they're running.

GET GOOD GET LMAOBOX has ruined many a session for me, and I would never think of using 'lmaobox' as a username. Even if you aren't actually hacking, that's a quick route to the other denizens of the server votebanning you. Nor would I ever dream of using it as a system user.

I think the context you and most other people are missing here is that these bots are a fucking plague on what remains of the TF2 community and we're more than willing to have zero tolerance for anything connected to them.

<comment><USER23> A) The cheat may post-date your choice of username. Even if you're aware of the name (and thus avoid using it in-game), you probably wouldn't change (or even think to change) a long standing system username.

B) Non-TF2 players probably _aren't_ going to be aware of TF2 cheat names. A CS:Source player may not know of them, as it's not their game, but the same VAC ban covers both CS:S and TF2 (FWIW I play CS:S occasionally and have never seen such ads. there).

I understand that it is a major issue (it's one of the reasons I haven't returned to TF2 in a while), but that's not a great reason to accept a poor solution that could effect innocent users.

</comment></comment></comment></comment></comment><comment><USER25> Just wait till someone writes a bot that runs under a 'tux' user by default...

<comment><USER26> or "root"

<comment><USER27> I have to wonder how many people would go "Yeah, sketchy cheatbot app, go ahead and run as root. That seems like a good idea."

<comment><USER28> There's nothing special about the name root, it's just a convention that it maps to uid 0. You can change it to something else and then rename an account with a uid != 0 to root. Whether this breaks anything is largely distribution dependant.

Whether or not that would result in the check being changed to see if "root" is uid 0 is another step in an arms race. Because with containerization or virtualization you can run as root with much more acceptable levels of risk than usual.

</comment></comment></comment></comment><comment><USER29> A Valve employee showed up on Reddit to say this bug report is not correct. [https://np.reddit.com/r/linux_gaming/comments/7ndjdt/valve_w...](https://np.reddit.com/r/linux_gaming/comments/7ndjdt/valve_will_vac_ban_you_automatically_for_having/ds2dulw/)

</comment><comment><USER30> I'm not sure I want Steam on my PC anymore. My local accounts are non of their business. What other nonsense are they up to?

</comment><comment><USER31> So if I'm understanding this right, you can get permanently banned from all of these games ([http://store.steampowered.com/search/?category2=8](http://store.steampowered.com/search/?category2=8)) just for having a certain username? That's crazy, no matter what the username is.

<comment><USER8> You're understanding the way they described it right. The reality, however, is not correct. You cannot get banned from those games just for having a certain username. You would have to have that username and also trigger other detection parameters.

</comment></comment><comment><USER32> It's their software, they can do whatever they like. Manufactured drama.

</comment><comment><USER33> [http://www.catb.org/jargon/html/D/Don-t-do-that- then-.html](http://www.catb.org/jargon/html/D/Don-t-do-that-then-.html)

<comment><USER30> catb as a name is dangerously close to getting you banned by Steam

</comment></comment><comment><USER34> This is by far one of the strangest things I have seen HN get mad about. The commenters on the linked issue seem to be mostly aimbot users. Wouldn't be surprised if they're here too.

</comment><comment><USER35> VAC = Valve Anti-Cheat

[https://en.wikipedia.org/wiki/Valve_Anti- Cheat](https://en.wikipedia.org/wiki/Valve_Anti-Cheat)

</comment><comment><USER36> New Year's resolution: Don't buy anything else on Steam.

</comment><comment><USER37> My answer to Valve's behavior in recent years was to just stop buying games from them, or on Steam in general, so they don't receive revenue from me.

</comment><comment><USER38> > Good day, I've received word from the VAC team that this is intentional and > not open for discussion on Github.

> In general VAC issues are not handled on Github in any capacity and further > issue reports on this may result in being banned from the Valve Software > issue trackers.

This is not the way to address a paying customer. These people truly are a bunch of clowns.</comment>


Show HN: Middle- setup to sell your product in 60 sec - <AUTHOR> https://middle.io <comment><USER2> You don't show me what I'm signing up for, but expect me to sign up anyway. I'm not giving the man on the street my personal info, certainly not a fly-by- night SaaS.

I think you should consider why I'd sign up with you and not Shopify, who _do_ provide example storefronts. [1]

And your social profile appears empty, you're neglecting a free traffic source, are you going to engage in customer-centric discussions? #FridayFeeling is one of the very SME-oriented hashtags (in the UK, anyway), maybe you can start with that.

Oh, and "Middle is like a Medium for blogging, but just for e-commerce.". Rethink that, please. Half the world isn't in the millenial blogosphere, and your elevator pitch should be impossibly clear. (What the hell's a "Medium"? Why are they talking about blogging? So this is a WordPress?)

It could be a good idea, if you think like a user. That's my two pence.

[1][https://www.shopify.co.uk/examples](https://www.shopify.co.uk/examples)

<comment><AUTHOR> Thanks for your feedback! Oh, and you are right!! I need to update about us section + to include examples

</comment></comment><comment><USER3> I agree. It should show more info on the homepage as to what I'm signing up for along with some demos. I also feel that the price is a bit steep. It's not far off Shopify's pricing which has a lot more features.

It also feels very similar to [https://gumroad.com/](https://gumroad.com/) which is far more established, has many more features and is less expensive.

<comment><AUTHOR> Thanks, great feedback! This is exactly we are going to do for next release. Currently, we are not looking or copying any established service as our vision is slightly different- we want to focus on entry-level customers.

</comment></comment><comment><AUTHOR> Hi guys, I wanted to deliver something very simple and useful for e-commerce. Middle is for lead capturing or if you want to sell at the same time you had idea about selling your staff. We wanted to create sign up boarding as simple as possible.

By default, we connect your shop with Stripe (card processing) and PayPal. You can accept card payments and PayPal payments instantly after signing up.

</comment><comment><USER4> On mobile there was no indication of what your product is. Why would i chose this over Shopify or Etsy or EBay? What is the cost? What is the value proposition?

<comment><AUTHOR> Thanks for questions and feedback! Free trial 14 days and then $19/mo (this info is in the header, but I agree not perfectly visible). Our goal is to offer a super simple storefront for selling tickets for a small event or having few products or just one product. At Middle we connect everything at sign up level, so after you sign up, you are all ready to sell without needing to look for additional info.

<comment><USER4> How is that different than the other companies which have been mentioned? Is there a problem/bottleneck that you've solved that you can give as an example?

<comment><AUTHOR> The main difference vs other store creation services is that we build Middle for one, two or few products to sell. Example shop: [https://simpleshop.middle.io/](https://simpleshop.middle.io/) We focus mostly on short-term sellers.</comment></comment></comment></comment>


Adventures in JIT compilation: Part 1 – an interpreter - <AUTHOR> http://eli.thegreenplace.net/2017/adventures-in-jit-compilation-part-1-an-interpreter/ <comment><AUTHOR> Part 2 is here: [http://eli.thegreenplace.net/2017/adventures-in-jit- compilat...](http://eli.thegreenplace.net/2017/adventures-in-jit-compilation- part-2-an-x64-jit.html)

</comment><comment><USER2> This seems like it could be a great series. I would be more likely to read it if the code the JIT is built for wasn't BF. It's just too tedious to follow along by copying everything into another interpreter to make it readable.

<comment><USER3> Like the post says, there are plenty of others on the web about implementing interpreters or compilers for more useful languages, and, even if it's just Scheme, those tend to spend nearly all their time on the parser. I really like this series because it skips the parsing part to get to the most interesting and relevant topic: how actual language runtimes are implemented.

<comment><USER4> Well, why not just make yet another one for one of those more useful languages, but not fall under the same trap of spending too much time on the parser?

<comment><USER3> Because then you're increasing the cognitive overhead for the reader and the time commitment overhead for the writer.

But yeah, if the author wanted to make a part 3 it might be interesting to see his implementation for something like (a simplified subset of) Java bytecode.

</comment></comment></comment></comment><comment><USER5> This looks like an AOT compiler to me, not a JIT compiler.

<comment><USER6> This is only true in the strictest interpretation of what "JIT compilation" means. Check out the Aycock paper -- [http://eecs.ucf.edu/~dcm/Teaching/COT4810-Spring2011/Literat...](http://eecs.ucf.edu/~dcm/Teaching/COT4810-Spring2011/Literature/JustInTimeCompilation.pdf) \-- for a broader treatment

<comment><USER5> You're right. This was an amazing couple of posts anyway, I hope you continue the series!</comment></comment></comment>


Lucida: Infrastructure for Emerging Intelligent Web Services - <AUTHOR> http://lucida.ai/index.html <comment><USER2> You may want to check out [https://mycroft.ai/](https://mycroft.ai/). This one just works out of the box.

</comment><comment><USER3> Scroll hijacking is incredibly annoying and doesn't add anything to the functionality of the website. Stop.

</comment><comment><USER4> The word "Lucida" in the title has font-family Lato, sans-serif. I guess one must license Lucida commercially, whereas Lato is available under an Open Font License.

Sigh.

</comment><comment><USER5> Why do people feel the need to override the default scrolling?

</comment><comment><USER6> Correct title seems to be "Lucida: Infrastructure for Emerging Intelligent Web Services"

The project was formerly called Sirious, but their disclaimer says it is not related to Apple Siri in any way.

Lucida Github here: [https://github.com/claritylab/lucida](https://github.com/claritylab/lucida)

</comment><comment><USER7> This is a pretty big development in the field and what it means for startups, I'm not sure why I feel the earth just moved but no one felt it. It's sunday anyway.</comment>


How Silicon Valley Fosters Plivo's Cloud-Based Telephony - <AUTHOR> http://www.forbes.com/sites/petercohan/2013/02/14/how-silicon-valley-fosters-plivos-cloud-based-telephony/

<comment><USER2> I joined Plivo exactly a year ago. We've come a long way since then. From supporting a complex conferencing platform, to insane dialer traffic. Its been a pleasure working with the team. Good job guys!

</comment><comment><USER3> So I read this article and immediately signed up for the service. "Hmm, looks great" I thought. Then I look at their helper libraries, "Better than Twilio!" I said. Then I examined their pricing, and it's cheaper than Twilio!

...Then I realized how their billing works: It's a prepaid model. And I'm so sad to say, this won't work for me. Any chance of invoice-billing coming soon?

<comment><AUTHOR> We also have invoice billing. Feel free to reach out at email@example.com and we will help you out.

</comment></comment><comment><USER4> Glad to see this piece. Talking to customers and making targeted, timely improvements has been a key focus of work here. We'll be keeping it up!

</comment><comment><USER5> Congrats on the growth! Keep it up :)

<comment><AUTHOR> Thanks. Still a long way to go.</comment></comment>


Amazon plans to move completely off Oracle software by early 2020 - <AUTHOR> https://www.cnbc.com/2018/08/01/amazon-plans-to-move-off-oracle-software-by-early-2020.html <comment><USER2> Yeah Oracle DB has the most bells and whistles, sure. But other DB's have caught up far enough to a point where the cost (and potential lock-in) of Oracle simply isn't worth it any more.</comment>


Ask HN: Starting programming salary expectations? - <AUTHOR>

I was just wondering what people just out of college (or with no college degree) are expecting for starting salaries as programmers at startups these days. I've heard everything from $30K to $150K, which is a pretty wide range. Any thoughts would be helpful.<p>Thanks! <comment><USER2> For a new CS graduate in Seattle working for a software company, I'd guess most get between $50K and $100K depending on type of company/position, how good they are, and how well they can sell themselves. The higher end will be students who can point to significant accomplishments (e.g. open source code, published research) and/or interview really well at a company that values talent highly. The lower end will be unseasoned programmers taking jobs where there is a high supply of qualified candidates.

This is just based on my limited exposure to the job market around here, and I wouldn't be too surprised to learn that some number of offers were above or below that range.

</comment><comment><USER3> On the west coast the salary will be higher, and it will cost _a lot_ more to live. Central jobs will pay less, but it will cost a lot less to live. So don't just find out what people make, ask where they are.

</comment><comment><USER4> "It depends."</comment>


Show HN: b.lock – a blockchain-powered password manager - <AUTHOR> https://github.com/blockproject/b-lock <comment><USER2> This works the same way as any other cloud based password manager but less secure. Most work like this:

\- Store a AES-256 encrypted database blob in the cloud

\- Hash your master password using a slow/expensive hashing algorithm, and use the resulting hash for encryption/decryption.

\- Offer 2F options to restrict who can requested the encrypted database blob/test the master password.

\- Ask for the master password, try to decrypt the header of the blob, if it works return the blob.

This solution stores an AES-256 encrypted database in public, therefore cannot offer 2F, and is only protected by the quality of your private key (and I cannot even see which hashing algorithm they're using).

Someone unironically said in this thread they "never trusted LastPass" (implying this is safer) but technologically you don't specifically need to trust LastPass.

Regardless of if you're using DropBox, Google Drive, or LastPass for Cloud Storage the primitives are the same: AES-256 Encrypted Blob, Cloud Protected Storage (w/2F options), and a hashed master password.

If you want to roll your own LastPass, use KeePass and DropBox with 2F. Not this.

<comment><USER3> > _Someone unironically said in this thread they "never trusted LastPass" > (implying this is safer somehow?!) but technologically you don't > specifically need to._

There's something to be said about perception. A big corporation making money off a centralized service that uses the money to employ people to get things right? Seems sketchy. Some people on GitHub with a Chrome extension that can read and write all data on every web page you visit and intentionally syncs your passwords with ... AES-CTR with no integrity protection??? please tell me I'm misreading this ... to some random altcoin? Sounds great, these people must have my best interests in mind, hack the planet, fight the power, &c. &c.

The question is, how do we change these perceptions?

<comment><USER4> > _AES-CTR with no integrity protection???_

Seems to be the case, with non-random nonces... If I read the documentation of the used library correctly, it starts the counter always with 1 by default. Game over?

<comment><USER3> Oh my gosh are they doing nonce reuse for a password manager? Amazing. Better not change your passwords ever!

<comment><USER4> And never have one of your passwords leaked.

</comment></comment></comment></comment></comment><comment><USER5> What about a blockchain-powered alarm clock? 51% could decide NOT to wake me up in the morning.

<comment><USER6> That is a good one. The whole world can decide that tomorrow is a holiday.. just because

</comment></comment><comment> FLUX-YOU Honestly, I'd like to pile onto the shit-flinging train, but it's gotten so ridiculous that it's wrapped around to not being funny at all.

In fact, anything that is trying to promote widespread electricity usage to run a blockchain for a product that we have good alternatives to should actively be discouraged.

This is actively harmful. It's well beyond the 'considered harmful' memes.

</comment><comment><USER7> One of the advantages mentioned is:

> Single point of failure: if the server/database goes down, there goes your > passwords

I haven't investigated Blockchain too extensively, but: is there not a risk that this blockchain goes down if nobody uses this password manager, much like how you can't download a torrent if nobody's seeding it? Or does it bootstrap itself on Ethereum's blockchain or something?

<comment><USER8> generally you are correct. But most blockchains have a central "seed" server that is supposed to always be up. Furthermore if the seed server goes down and none of the peers you have previously connected to are reachable you are an island in those cases.

With that said, from the repo. This one is based on [https://nebulas.io/](https://nebulas.io/)

<comment><USER9> This is the first time I've ever heard of "seed servers". Do you have any links explaining such a precedent?

<comment><USER8> Most blockchains, including as far as I know all Bitcoin based blockchains (including Bitcoin itself) have two types of seeds embedded in them.

First the IP of seed servers (nodes) and second the hostname of a DNS based seed lookup.

The DNS host name as well as the IP addresses of the seed nodes are actually embedded in the source code itself.

They exist for new peers to discover people to connect to. And if the case of seed nodes they also act as peers themselves. If all those nodes and the DNS seed go down.

The DNS is constantly rotated to contain A records for a large number of peers which new peers will randomly pick from.

In the case of Bitcoin the seed servers are all run by different organizations and there are a lot of them. Smaller coins may actually only have 1 or 2 seed servers all run by the same people.

Some blockchains allow multi-cast based discovery but that only helps if you happen to be on the same network as another node.

Best link I could find with the time I have: [https://bitcoin.stackexchange.com/questions/14371/what- is-a-...](https://bitcoin.stackexchange.com/questions/14371/what-is-a-dns- seed-node-vs-a-seed-node)

</comment></comment></comment></comment><comment> xerxe-sans-s Lots of negativity here that I don't think is completely justified. I subscribe to a family plan for 1password. I have options to sync with iCloud and several other cloud services, and for the most part that's great. But I don't have an option to sync with a service that I can guarantee will remain in existence and outside of state control. I also have to maintain an account in good standing with these services, or potentially host and secure my own hardware.

Blockchains - at least those that are heavily adopted - provide a kind of good solution to this problem. State is maintained by a third party that's likely to be around for a while, and if I forget or can't pay a bill for a while, my credentials are still stored and accessible at a later time. I like the idea of paying a little to a third party for the store operation, vs paying a little every month for the privilege of performing a get operation.

<comment><USER10> It's not a lot of data. There are other places where you could publish a small file for free, provided that you entirely trust the encryption and therefore are willing to make the file public. For example, a gist on Github.

(But personally, I wouldn't publish the encrypted file, just in case.)

<comment><USER3> Store it with some scheme like TripleSec [https://keybase.io/triplesec/](https://keybase.io/triplesec/) and put it in a private gist on GitHub, so you'd need three encryption algorithms _plus_ GitHub account security to be broken before anyone can get to it.

</comment></comment></comment><comment><USER11> You can do exactly the same thing without blockchain.

<comment><USER12> And store the encrypted passwords where?

<comment><USER3> Anywhere. Put them on an HN comment, log in and enable showdead. Stick them in a git repo, revert the commit, and make a pull request to a popular project. Steganographically encode them into the next popular internet meme. Make an account on hashbang.sh and save it to disk.

If you have access to the blockchain, you already have access to a million more reliable data storage options, some reasonable, some not. Blockchain is a distributed consensus tool, not an anti-censorship tool. If you can't reach other random storage services, why do you think you can reach the blockchain?

<comment><USER12> YCombinator can go out of business and bring HN down, not all internet memes survive long, your disk can be lost in a fire, etc.

I'm not saying blockchain is better, just that it's at least reasonable. Already distributed and can be expected to survive longer than individual companies.

<comment> loup-vaillant What are the odds that Dropbox _and_ HN _and_ a dozen popular internet memes of your choice _and_ your local computer _and_ your phone _and_ your blog _and_ …

…go all down before you can react? Seriously, if you need a secure backup, a couple instances, geographically separated, are more than enough.

</comment></comment></comment></comment></comment><comment><USER13> Please stop.

</comment><comment><USER14> My current password file is almost 1 MB.

So wouldn't the blockchain become unweildly pretty quickly?

Especially when people start base64 encoding their mp3 collections and storing them in the b.lock chain?

At least with a normal ledger system, you can collapse chunks of history and hash them to validate. But it seems that if you are storing data that needs to be accessible, you can't do that.

I don't have a TB or two to spare on most of my devices.

<comment><USER3> It's using an altcoin, which is why it's so cheap - because the market has adjusted to correctly price reliable storage in the Bitcoin blockchain (given its importance, number of users, and frequency of updates) and has not yet adjusted to correctly price reliable storage in this altcoin's chain. Or, worse yet, the market _has_ correctly priced it and you get what you pay for.

</comment></comment><comment><AUTHOR> We have improved our encryption algorithm, please review it at our more recent post: [https://news.ycombinator.com/item?id=17394807](https://news.ycombinator.com/item?id=17394807)

</comment><comment><USER15> If you use blockchain for storing secrets, then you signal that you don't know what blockchain was intended for and what storing secrets needs, in other words, you signal that you are not competent to build a password store.

<comment><USER6> What is wrong with making an encrypted secret - public? Isn't this what encryption is all about?

<comment><USER15> No, encryption is for keeping secret a secret, even if it ends up public.

But this misses the point. Blockchain is an implementation of a specialized cryptographic primitive called "document timestamping". Nothing this primitive provides is useful for a password manager. About the only thing that would be useful is much better served with a DHT, and much cheaper, too.

</comment></comment></comment><comment><USER16> Everything's just better when you sprinkle a little bullchain, urgh, blockchain on it.

</comment><comment><USER17> But... why? If this isn't peak "because we fucking can, that's why," then what is?

<comment><USER18> Came here to say this. Why? What defect of password managers can you possibly be fixing by adding a global trustless append-only ledger to it?

<comment><USER19> Instead of trusting a third party to protect your credentials, you're trusting an auditable, open source platform. I cant see myself using it for anything important, but I understand the draw.

<comment><USER4> Any password manager that does the encryption stuff in offline, open-source software and puts it on any untrusted storage provides that, with the difference that it does not require making your encrypted copy public for all eternity, exposing it to unnecessary risk of compromise down the road.

<comment><USER19> There are risks either way. There have been plenty of vulnerabilities in popular password managers (some that also apply to this blockchain model). But I think your AES encrypted password being publically visible is a pretty low risk, compared to a PW manager being breached, having a flaw in the client, their being coerced by government, etc

<comment><USER20> How is this project any less at risk for those client-side implementation risks you mention? Basically, why should this nascent project be trusted over, say, KeePass?

</comment></comment></comment></comment></comment></comment><comment><USER21> this has strong potential. i never felt safe with services like lastpass.</comment>


Indian man of 100 goes back to university for PhD - <AUTHOR> http://www.bbc.co.uk/news/world-south-asia-11578763 <comment><USER2> Another somewhat high profile of completing a PhD later than most is Brian May, guitarist for Queen, who completed his PhD in astrophysics more than 30 years after starting graduate studies. <http://en.wikipedia.org/wiki/Brian_May#As_an_astrophysicist>

</comment><comment><USER3> This man is trully an inspiration! I'm a developer but I dropped out of college (Finance and Banking) because of great work opportunities a few years ago. I should really go back and get my degree so I can finish before I'm 30. Great article!

</comment><comment><USER4> Like any successful PhD, his main drive is vanity :-)

<comment><USER5> I disagree. See mechanical_fish's comment below: <http://news.ycombinator.com/item?id=1811011>

In a way, it makes more sense for an elder to get a PhD than someone in his youth.

<comment><USER4> You missed the part where he said wants a "Dr." prefix before his name. I didn't do any analysis, just took the man on his word.

<comment><USER5> Ahh, my mistake.

<comment><USER4> No worries :-)

</comment></comment></comment></comment></comment><comment><USER6> > "you are never too old to learn"

I take my hat off to this man.

</comment><comment><USER7> I thought folks here would criticize him from taking the place from someone who would have time to use his knowledge. So why didn't this happen? Do you guys think knowledge has intrinsic value by itself?

<comment><USER8> That reminds me of this quote [0]:

 _"You're a real gold-mine of useless information, you know that, Beldin?" Silk said.

"There's no such thing as useless information, Kheldar," Beldin sniffed._

[0] David Eddings, the Mallereon book 5, The Seeress of Kell [...of all places]

<comment><USER9> _> There's no such thing as useless information_

I disagree completely with that. I just summarized some examples of useless knowledge in <http://news.ycombinator.com/item?id=1813796>

</comment></comment></comment><comment><USER10> When I went to college, it was a little strange to also see older folks (40s-50s) on campus getting their education right next to 18-20somethings.

But being a little older now I really have to give this old guy his props. Life doesn't stop just because you're old.

</comment><comment><USER11> "I have never let my schooling interfere with my education." --Mark Twain

</comment><comment><USER12> Great Man!</comment>


Patriot missile software failure, 28 soldiers died. Fix: reboot the system - <AUTHOR> http://en.wikipedia.org/wiki/MIM-104_Patriot#Failure_at_Dhahran <comment><USER2> This was covered in our C classes in college, and it is probably more interesting for programmers here if you understand what the bug actually was.

The "software error" Wiki alludes to is that the Patriot missile kept track of its internal clock with floating point numbers. When the machine had been booted in the recent past, such as _every time in testing_ , the floating point number spent most of its precision to the right of the decimal point. This let it able to do the designed behavior, which was calculate very small delta(time) to be able to do velocity/position calculations and get fairly close to fast moving objects then go _boom_.

The problem is that floating point numbers have a limited amount of precision available to them, and if you are using a few billion milliseconds (2 weeks), almost all of your precision is lost to the left of the decimal point (and, given that this is precision-intensive work, you didn't need to wait that long to see anomalies).

Lower precision meant that taking delta(time) got increasingly less precise as time went on. Which meant that velocity/position calculations got progressively more screwed up. Which meant the missile did not go _boom_ in the general vicinity of incoming missiles. Which killed Americans and allies.

Thus the moral of the lecture: a) your computer is a powerful, tricksy beast which has many ways to trap you in even straightforward code and b) you should treat software quality like some 19 year old's life depends on it, because it might.

<comment><AUTHOR> I thought that the experience of developing the GPS network (where all the sattelites and ground stations must be time co-ordinated to within 10+ decimal places in seconds) would have helped them with this missile system.

A GPS satellite travels much faster than a missile, and is accurate to within meters, so the tolerances are much higher (and the system was designed prior to patriot).

There is a definite 'not invented here' syndrome amongst defense contractors - I doubt they share any information, research or solutions amongst one other, which means the US tax payer foots the bill each time one of these contractors must independently develop and implement a system that has likely already been built in another part of defense.

<comment><USER3> Oh, Interesting. I always figured GPS satellites were geo-stationary, but in fact (as you pointed out), they travel at 7000 mp/h :-0

<comment><USER4> Geostationary orbits would tie the satellites to being directly above the equator, which (a) would prevent the system from working beyond a certain latitude and (b) would cause an extremely bad distribution of "visible" satellites and angles between signals, precision would suffer.

<comment><USER5> Not to mention the transmitter power you would need if they were 25,000miles away in GSO rather than 90mi away in LEO

<comment><USER6> GPS satellites are actually in MEO, at 12,500 miles away.

<http://en.wikipedia.org/wiki/Medium_Earth_orbit>

</comment></comment></comment></comment></comment></comment><comment><USER7> I find it interesting how "just reboot" has become something of a user expectation: often, users expect it to fix most anything. To be fair, it does seem to work fairly often.

It's a strong enough expectation that when I had some industrial machines running DOS (albeit on more modern hardware), I added my update, backup & diagnostic scripts to autoexec.bat so that rebooting _would_ fix most of their problems.

It made my life a lot easier, though, because I could update the files and configurations via a master copy on the network, then tell them to reboot everything whenever it was convenient for them (usually between shifts) and the machines would all grab their updates and upload some log files for me to monitor.

</comment><comment><USER8> I wonder how did they actually find out the reason for the failure? They had a system which worked perfectly (almost) and probably could be tested in every standard way without showing the problem. They must've had a seriously good logging system that showed something suspicious, or someone had a really interesting "a-ha" moment...

I'd like to hear the story of debugging this one. Also how they managed to identify that this incident was caused by that specific bug.

</comment><comment><USER9> Imagine being the developer who wrote the line of code (who didn't understanding floating point variables). Or the QA tester who didn't spot it, or didn't decide it was worth reporting.

Aside from being a pacifist, this is why a number of engineer friends have stepped out of building defense systems (including missile guidance systems) and into more civilian engineering because the stress and moral burden is just too great.

<comment><USER10> Better than being the executive who decided not to release the patch until 28 people were dead.

<comment><USER8> As long as the workaround was known, well... I don't know exactly what the military procedures are for situations like that, but updating an active rocket defence system in area where you don't necessarily have trained engineers -vs- rebooting it every day or so to make sure it works. It looks like a simple choice to me.

Also looking at who actually makes the mistake - if someone gives you an update and the system fails, they're at fault. If you give clear instructions for operation and users don't follow it...

<comment><USER10> According to Wikipedia, the workaround came from the Israeli army, who found the bug, not the manufacturer. The instructions for this workaround did not propogate clearly and thus weren't followed.

Being defenseless for a few minutes every day during a reboot hardly seems like a reasonable fix anyway, especially if it becomes standard procedure that your enemy may learn about.

The fact that the manufacturer _did_ release a patch, rather than a workaround, the day after the accident suggests that this was indeed the safest course of action. It was just taken too late.

</comment></comment></comment></comment><comment><USER11> More information about the errors in the (fixed point) math on the patriot: <http://www.ima.umn.edu/~arnold/disasters/patriot.html>

<comment><USER12> That's interesting.

Given that it was an issue with a non-terminating binary representation, what would be the way to handle this, without somehow resetting the clock (restart or otherwise)?

Obviously, you could, in a modern system, have more memory and be able to store more bits of the number, but there would still be a limit that you would run into after some amount of time that would cause similar problems.

<comment><USER13> I'm just thinking about this. I think I would try to split the clock into a precise part, which (for example) tracks how many milliseconds we are into an hour and a precise part which stores the hours, or the date up to the hours or whatever. Given this, I can reset the part with the degrading accuracy in a duration which maintains enough accuracy in order to maintain enough accuracy overall.

</comment></comment></comment><comment><USER14> Interesting how complex it is to determine the accuracy of the missiles. Multiple Patriot missiles fired at each Scud, several possible outcomes, the Scud can break apart making multiple targets for the Patriots.

<comment><USER2> I agree, though "We got the missile but missed the warhead. That has to count for something." strikes me as a little off. Pretend Saddam Hussein has ordered his team of crack experts to use crappy engineering as an active countermeasure. They just beat you. Do better.

<comment><USER15> One of my college professors was an outspoken opponent of missile defense systems (and the Patriot system specifically) that worked during the missile's reentry/descent phase.

His objection is that it's too easy for an opponent to defeat the system either by overwhelming it (MIRVs for instance) or by designing the reentry vehicle to make random movements which would make it really difficult for a intercepter to track. Even if the interceptor can hit it, it's more likely to knock the warhead off course instead of destroying it. If a nuclear missile is aimed at NY and an interceptor hits it so that it falls to Philly instead, that's still a net loss.

Saddam inadvertently hit upon the both methods - his engineers tried to improve on the Soviet scud design to give them more range (which they were successful at) but their improvements made the missile more likely to break up on reentry (which presented more targets than the tracking radar anticipated) and the lack of aerodynamics of the resulting pieces (including the warhead) the missiles fall in unpredictable ways which caused tracking problems. An opponent that actually _tried_ to game the system could make his missiles more difficult to hit.

The professor is advocating for boost-phase missile defense since the missile movements are much more predicable.

<comment><USER16> But it's not like boost-phase intercept is a magic bullet (ha!). Well, really, it generally takes a magic bullet. Launch sites are typically far away. Unless you have a interceptor several times faster (or interceptor site much closer to the launcher than the target), then it's very hard to actually reach the missile while it's in boost phase.

That airborne laser that's been in development for seemingly forever was pretty much determined to be the best way to intercept. You'll notice that it combines BOTH elements. That 747 is flying within LOS of the missile path while in boost phase, and it's also using the fastest projectile possible.

You'll also note that the Patriot's role is medium tactical air defense as well as theater anti-ballistic missile defense. The second role was basically tacked on, and then later massively expanded (once it became obvious that there aren't many air forces in the world that can actually fight the US).

In the end, I'm sure every general and admiral actually out to improve their warfighting abilities would want both systems. It's all about defense in depth. It's the reason why warships have three different sets of anti-air missiles, while we still have stingers when we have patriot missiles, and why US fighter aircraft still carrying short range missiles and guns.

</comment></comment></comment></comment><comment><USER17> The really interesting lesson that engineers have learned from the Patriot is that "never reboot" might not be the best target for critical systems. Rather, controlled rebooting can help clean up problems before they affect the function of the system.

<http://portal.acm.org/citation.cfm?id=1251254.1251257> [http://www.computer.org/portal/web/csdl/doi/10.1109/HOTOS.20...](http://www.computer.org/portal/web/csdl/doi/10.1109/HOTOS.2001.990072)

</comment><comment><USER18> I seem to recall reading somewhere that the system was originally designed to be a mobile platform against Soviet missiles in somewhere like west Berlin. Where they needed something that would be moved around every day or two so that the enemy would not know its location. That meant that the system would be reset whenever it was moved, and therefore using a floating point clock was a reasonable design trade off.

</comment><comment><USER19> Sure, rebooting is often the most straightforward way to fix runtime issues because it resets everything. In this case, sounds like resetting the clock would have been just as effective. I'm sure these days, you'd have something like the equivalent of a ntpd update every hour to take care of that.</comment>


Sherlock Holmes averts world war using mathematics - <AUTHOR> http://www.newscientist.com/blogs/culturelab/2012/01/the-mathematics-behind-sherlock-holmes.html <comment><USER2> If you like math fun and movies I would recommend the series "Numbers" and the movie "A beautiful mind" as a dramatic portrayal of paranoia that some famous mathematicians have developed.

(The linked article is a bit light and in the end not so interesting for me, unfortunately.)

<comment><USER3> _Numb3rs_ is, to me, a grown-up version of _Mathnet_ , the math-heavy police procedural parody that accompanied each episode of _Square One TV_ (a children's educational program oriented toward mathematics that aired on PBS in the 80s and 90s).

The difference is, on _Mathnet_ there are extended scenes of the characters actually doing math. That was the attractant for me...

<comment><USER4> Numb3rs, to me, is a parody of math. You can argue whether it's a disservice to math or not when it's presented as a magical tool obfuscated by senseless jargon and technical term soup, which is what I found Numb3rs to be (and I'm a mathematician). It's sort of like the "zoom in on B3 and enhance" of math.

<comment><USER5> It's also a bunch of unnecessary math. \

FBI guy: "Hey little brother, we found this remote control car door opener. Can you and your hot grad student talk about math for a few minutes and then tell me who owned the car?"

 _On tv:_

Brother: "Sure thing bro. Prime numbers and encryption 2 3 5 7 11 13..."

Grad student: "I'm a hot female role model talking about elliptic curves."

 _In real life:_

Brother: "Love to help, but I gotta finish this paper so I can get tenure. Why don't you just call Toyota?"

</comment></comment></comment></comment><comment><USER6> I love clever touches like this in TV and films. When referencing for the purposes of a storyline niche topics such as CS , Maths or Physics I always feel that whilst writers need to make their story accessible to people who are not savvy in these topics they should always stay as true as possible to the field itself and not insult the intelligence of people who are familiar with these things.

I get quite annoyed when people put "hacking" scenes into films that are filled with nothing but nonsense. Usually legitimate technical jargon that is thrown together in ways that don't make sense.

Does anybody have any opinions of the modern Sherlock remakes that have appeared on the BBC recently?

<comment><USER7> I find it most annoying when a computer is used in basically any TV show or movie. The actors always look to just be tapping on the keys at random, often hitting completely irrelevant keys to the task at hand. It doesn't ruin the scene for me but it does not make it as good as it can be. The attention to detail in this film made it more enjoyable.

<comment><USER8> Sadly, they overlooked the detail that most people in Victorian England actually didn't know kung-fu.

<comment><USER9> Holmes did know martial arts in the original stories: <http://en.wikipedia.org/wiki/Bartitsu>

<comment><USER10> Well... TIL.

Thank you.

</comment></comment></comment></comment></comment><comment><USER11> eh..I was hoping this was related to the BBC show Sherlock</comment>


What Facebook Did to American Democracy - <AUTHOR> https://www.theatlantic.com/amp/article/542502/?single_page=true <comment><USER2> I think Facebook is just an amplifier. The surprise was because nobody understood how strong an amplifier it is.

The real problem is that the media has abandoned objectivity. Look, for example, at the graph in the article showing partisan bias to one side or the other (it's about half-way down). ABC, NBC, and CBS are better than I expected, though all three lean left. But look at the New York Times. It's nearly as partisan as HuffPo, or (in the opposite direction) as InfoWars! And the NYT is the one getting all the Facebook shares (along with CNN and Breitbart - though CNN was only half as biased as the NYT).

Much of the media abandoned objectivity. The respectability, the reputation for objectivity, that they once earned but no longer deserve, they then lend to partisan positions. This then drives the left as saying "credible source", and the right saying "your 'credible source' isn't credible", and it all turns into a shouting match, with Facebook as the megaphone.

<comment><USER3> I agree. Most other measurements are difficult to observe or conclude. But, I think amplification of existing communication phenomena is powerful and complex enough to account for these outcomes.

</comment></comment><comment><USER4> When FB and social media is used in a way that results in a "favorable" change its called the Arab Spring. When the result is "unfavorable" its called Russian interference.</comment>


Banking Model of Education - <AUTHOR> https://en.wikipedia.org/wiki/Banking_education <comment><AUTHOR> "The name refers to the metaphor of students as containers into which which educators must put knowledge. This reinforces a lack of critical thinking and knowledge ownership in students, which in turn reinforces oppression, as well as it misrepresents Freire's understanding of knowledge as the result of a human, creative process."</comment>


Show HN: Chronograph.io – Cloud synchronized stopwatches and timers - <AUTHOR> http://chronograph.io

<comment><USER2> Imagine if this had like some type of MP3/Youtube support; that'd be awesome.

</comment><comment><USER3> Scrolling does not work well for timer setup

<comment><USER3> Design is nice</comment></comment>


BBC Interview with Evan Williams, Mentions News.YC - <AUTHOR> http://www.bbc.co.uk/programmes/p006k8nb

<comment><AUTHOR> Last night after having just turned off my computer with HN being the last page to have been open, I turn on BBC radio and listen to an interview with Evan Williams only to have him mention the site I was just at. It was a bit of a surprise, granted it was a technology oriented interview, though still a bit surprising.

Regarding the interview, it's interesting, not over the top interesting, but interesting.

Some things I recall -

_tweeting in SF to get pot holes filled

_the value of perseverance

_building something open-ended and having users further develop it

Those last two get down to the basics, things we've all heard before, sometimes it can be good to hear them again or presented in a new perspective. Of course, there will always be those hearing them for the first time, as well.</comment>


Inside Pinterest's Plans to Fix Its Diversity Problem - <AUTHOR> http://www.fastcompany.com/3051659/inside-pinterests-plans-to-fix-its-diversity-problem <comment><USER2> I can never understand these "diversity problems", like unless they are discriminating based on gender and/or race there shouldn't be a problem. It's in company's best interest to hire best talent they can obtain for their allotted budget, they shouldn't have to think about gender of the candidate, but rather their qualifications.</comment>