skysight-inc/HackerNews huggingface dataset:
At least in electrical engineering, we use mental math every day. More specifically, we use approximate mental math (trying to calculate to within about +/- 25% of the correct value) because it's faster than calculating the exact answer when we need a rough estimate of a power, current, voltage, or impedance number. I imagine that fast, approximate mental math is similarly useful in other engineering disciplines.
We could all agree never to have bugs in our code while we are at it as well.
Thanks, yes that would be appropriate (e.g. a movable object should have a movable cursor). I'll check through the app for this, although any specifics are much appreciated. I'd be grateful for feedback on your experience, my email is on the "About" page.
Maintainability is not the first topic of discussion when mantra is "build software to throw away".

We're in an age of consumerism in software. We reinvent large pieces of software because we don't have a grip on existing ones to be able to repair or extend them. All the known acronyms including NIH are at work.
Well, you can write if 5 < x < 6 for one!

Sorry for the sarcasm, but the author hasn't given a single reason beyond some trivial (and inconsequential, imo) syntactic shortcuts and his personal preference for the language.
I memorized a bunch of these for high school math competitions. You got very familiar with squares up to 100, prime numbers up to 100, converting fractions and repeating decimals. A sample test from back in the day: http://www.texasmath.org/DL/NS/NS9394.pdf
Of course, I've forgotten most of the tricks because they were so specific to the test.
Yes, especially in Japan they put that sound in pretty much any audio to indicate summer because that's what summer sounds like in Japan. Some of the cicadas are louder than ambulances

https://www.youtube.com/watch?v=eE-_kNWJXNw
Agreed. I also speak of "my team", but I certainly don't own the team. I'm not even an employee of the company the team is part of; I'm a freelancer.

I agree with everything else though: don't work yourself to death for a company that knows no loyalty. Do what you're paid to do, but they don't own your soul. If they want it, they should pay a lot more.
I wouldn't list startssl certificates over letsencrypt as they aren't really free. I wonder how many of their free users actually paid the $25 to revoke their certificates after hearbleed.

https://www.startssl.com/Support?v=43
You can either wire it in to an old doorbell for power or you can disconnect it periodically and recharge via USB.
12x12 is the max for most memorized multiplication tables (at least in the US). 16x18 is going to require some actual mental work that is prone to errors.
It is silly IMO - those people using such click-baity titles for everything show a lack of creativity and really ought to try harder. "considered harmful" was already annoying when Dijkstra coined the term (and for very good reason).
Is Bernie Sanders More Electable Than Hillary Clinton?
Google StreetView in the Miniatur Wunderland
Unfortunately if the unit isn't wired in, you have to remove it for charging meaning redoing setup when the battery gets low.
I just added it to Maven central repo. The dependency you can use is noted on the project page in the Download section.
Fighting to change the system from within that system is much, much less effective than massie civil disobedience of that system. In fact it seems completely ineffectual to me most of the time.

I'm on the 'break unjust laws' side of the argument, as have been many of the greatest civil rights figures in history. Break the unjust laws and convince as many people as you can to break them as well.
https://www.indolering.com/dnschain-is-harmful

From the article:

Update
I’ve written a more-up-to-date technical overview of okTurtles, DNSChain, and Unblock.us. While the security model for DNSChain has improved, they are still misrepresenting the security parameters of their software.

I’m going to leave this up since it debunks what DNSChain was selling. I also think their resistance to outside security concerns is very troubling.

TL;DR

DNSChain erroneous claims to have passed a “peer review” process. However, its most important peers, Namecoin developers, have rejected it. This has been the reaction of every Namecoin developer who has evaluated the project (over four at this point). The project misrepresents its security model, its design is unfixable, it should not be used in any nonlocal capacity.
On mobile clients they can be quite convenient though. No need to remember any password and good protection against shoulder-surfing.
Relevant: https://www.youtube.com/watch?v=ybNWOhI-Q-4
I tried to google translate the poem. It's far from perfect, but it gives you a good idea about what it conveys and makes the rest of the article easier to understand:

i, t hook both.
short i dotted, t long horizontal;
e, f, l also a species.
ê cone hats, long l more body;
o rounded like an egg.
cell, hat, beard Matt extra time
It's an ORM, not a database. Also, Microsoft is not alone: Mysql, Postgresql, Sqlite...
Or just fit the camera in the bell push housing.
Is not just the UX of using the client certificate in the browser, there's also the problem in the server: maintaining a CRL (Certificate Revocation List), or using OCSP (Online Certificate Status Protocol).

I've been forced to use it in some scenarios as client and, although I found it a little bit confusing at first, it works; but my experience on the server... is just awful to implement.
the point is it's not "considered" harmful <-- emphasis on quotes around considered but not on harmful because nobody "considers" it. Some might have a strong use-case for using hasattr(). The same applied to goto (and still does).
Flexible, secure SSH with DNSSEC
What I'm curious to know: if you own the network, how hard is it to spoof a response from the Ring server telling the doorbell to open the lock (Assuming one is already configured).
We need more meetup research from academia. Sociologists should be all over this!
According to the MBA manager, most efficient = most profits. And most value = more tests and more expenses by the 'consumer'. Looks like you are on with the Kool Aid!
Project Rider – A C# IDE
To software developers in this thread who are on-call; I'd like to share some thoughts with you. I've worked at places that do have on-call rotations and others that have none. I will no longer work at a company that requires me to be on-call.

Why? It says a lot when a company doesn't put the effort into various forms of testing and QA to ensure that production software does not have critical issues that warrant at 2am call. Unit, functional, integration, load, and simulation tests should be written for every single piece of critical infrastructure. You should be hammering these things in staging environments with 10-100x of your normal peak load.Use something like Gore to replay live traffic against a version in staging or QA environments. Yes, that takes work, but to me it's better upfront than to wake me up in the middle of the night or to know that when I go home I have to have my phone around me at all times. The business should care about these things too; it's their product and they should care enough about you to make sure good processes are in place to ensure quality production software.

That said, when I was at non-on-call companies there are definitely times when something does happen that warrants immediate attention. Generally someone in operations would get the first call, they check logs, diagnose the issue, and call a developer familiar with the app that's causing the issues if that's the case. I don't mind waking up because I know it has to be something serious that slipped past our processes.
I work for a major games developer/publisher.
Our submission packages are being built this week and will be submitted next Monday. We are supposed to be on-call this weekend just in case any problems in any of the systems we were responsible arise. No, I am not paid for being on-call, just like I am not being paid overtime. From what I can tell people are going to come in this weekend just to play the game and make sure everything works even though they are not getting paid for it.
You can also do this by (ab)using the "square of a number close to 50" trick. Take 57^2 for example: this is the square of 50 plus 100 times the difference of the number from 50 plus the square of the difference of the number from 50, which is 2500 + 100x7 + 7^2, or 3249. For 43^2 it would be 2500 + 100x-7 + (-7)^2, which is 2500 - 100x7 + 49, or 1849.

With 75, that's 2500 + 100x25 + 25^2. Hopefully you've memorized that 25^2 is 625, which makes this an easy 2500 + 2500 + 625, or 5625.
It's even worse than job-hunting and equally time-consuming.
Well, keep in mind that if hundreds of scientists take their chance on the same data using different methods, we basically have the same problem. One of them will be the lucky one that took the approach that shows the favorable results, whether the results are truly there or not.
I am surprised to see a recommendation to use an exception handler for conditionals, especially for Python.
Use wifi password to change nameservers on router (assuming router is using default admin user:pass) find which online bank they're using and clone the site's homepage with a passthrough form to steal credentials. Et cetera.

Seems useful to a crook.
The principle the above commenter refers to is known as "Easier to Ask Forgiveness than Permission", i.e. you're not meant to check preconditions – you should just try to do whatever thing you want to do, and it should signal an error if it didn't succeed.

The reason for this has little to do with "clean code" and more to do with the fact that when checking preconditions, programmers have a tendency to check proxies rather than the actual thing they want to do. An an example, it is common to see the following:

if not file_exists(filepath):
stderr("Invalid config filepath!")

config = read_file(filepath)
...

This code has the glaring problem that even if the file exists, that doesn't mean you have the required permissions to read it. What you really want to do is read the config file, but you check a proxy (does the file exist at all?) as your precondition.

How would you check for the right thing, that you can read the config file? Well, by trying to read the config file, of course!

try:
config = read_file(filepath)
except IOError: # can make this more fine-grained
stderr("Invalid config filepath!")

This is longer code (one extra line, gasp!) but it avoids the problem of checking the wrong precondition which is so easy to do by mistake.

You may have heard of this concept in a different situation – e-mail validation. A lot of people go to great lengths to validate e-mail addresses by regex. Even if the address is perfectly conforming and passes the regex with flying colours it might not lead to an inbox. To really verify that the user can receive e-mail at the address they've specified, guess what you have to do? Send an e-mail and ask them to confirm they got it. It's the only way.
There is absolutely nothing hasattr does that you cannot achieve with other means in a more robust way and with minimal impact. It’s not like ditching goto that requires a completely different approach to programming.
also the downvote-fairies on here today should consider reading https://news.ycombinator.com/item?id=9744916
5 Tips to start up your career in a hot startup
Common criminals also constitute a persecuted minority. What kind of criminal do you consider worthy of protection and what kind should get persecuted?

Perhaps people should follow the law of the country they're in to avoid persecution. Don't publish state secrets in the US, don't have sex with other men in Saudi Arabia and don't broadcast anti-state messages in China.
Interesting!

Quick feedback: some I believe issues in the current version, in the "assorted examples":

- "4 apples + 5 oranges * 18 friends" ― wasn't that meant to be "(4 apples + 5 oranges) * 18 friends"?

- "Hold ALT while scrubbing to plot" ― doesn't seem to work for me on Fx nor Chrome

- after clicking on "assorted examples", they like to not show immediately, requiring me to go back till the URL has "?/examples/cdg" and then refresh.

- also, Ctrl-Z doesn't seem to do anything, I'd really appreciate if Undo was available after I click something by accident.

- 5,000 in some locales means 5 not 5000 (',' is used as decimal separator instead of '.') ― see e.g.: https://en.wikipedia.org/wiki/Decimal_separator#Countries_us...
I strongly believe that for any language that compiles to JS to be successful, seamless integration with existing JS is absolutely required. This is the main selling point of Clojurescript which, while I enjoy Clojure a lot, is a dynamically typed language like JS itself, and I wish I could interact with JS in a stricter way. If Elm can improve on its interop, it has potential to be a strong force. But this is true of any new language. If you can't easily interop with the lowest common denominator language in the platform you build for, your language is too restricted for meaningful use. This is why Rust integrates well with C, because it has to, or it is irrelevant in many cases. This is why Clojure interops seamlessly with Java. Elm needs to get this point, or it will remain a niche hobby language avoided by professionals.
If you find Speed Maths interesting, you'll probably want to check out Trachtenberg's "Speed System of Basic Mathematics" book:

http://www.amazon.com/Trachtenberg-Speed-System-Basic-Mathem...
The fundamental principle makes this clear: Is the ISP providing competitive advantage to some apps/services/websites, either through pricing or QoS? Zero-rating does violate this.
Tried it. Doesn't solve the issues I stated.
I know it wasn't your point, but that particular example is just as succinct in Clojure:

(< 1 2 3)
When I click on the "assorted examples" link, it pops up a dialog to ask me if I want to leave the page.

After I tell it that yes, I really meant to click on the link that it had offered me, it displays the examples... and promptly replaces them with an empty page after a few seconds.

That annoying dialog also comes out when doing other things, like using the Back button.
Steve Job's Yacht – Notice anything about the design?
Most of the cache-related optimizations available in C++/Rust can be done as well in fast managed environments. I agree that sometimes they make it much harder than it should be, but it is often still easier to fight with a managed runtime for the 5% of performance critical code, than to fight with manual memory management of an unmanaged environment for the 95% of non-performance-critical code. If you see a 50x performance disadvantage of some program in a managed environment like JVM or .NET, it is a fault of a programmer, not the runtime nor tools.
I indeed don't understand why it's not done yet, everything would be so much easier !
.. which was what, exactly? Could you elaborate please?
If you were really using C, that expression could be simplified to something like

-(y/2 - (y&3) - (y&2)/2) % 7
Happy to chat further and happy to collaborate in some way, but you should know I'm not a coder/developer. I don't have any skills -- coding or otherwise -- that would help in building anything. I'm good for collaborating with in terms of domain research. I.e. what are the challenges users are facing and what is or isn't a good solution.

I'm on twitter @khurammalik
> For what’s it worth, Python 3 gets it right:
> ...
> Also, would you expect hasattr() to raise that error?

Not really no. I would expect hasattr() to just answer whether the attribute exists, and getattr() to actually invoke it. If "hasattr" actually invokes the attribute and just checks for a non-empty value returned, is it even needed? It would completely surprise me, coming from a language with static types + reflection, that a query for a types attributes (mere existence) would invoke them.
Look, nobody is defending the title. I’ve even apologized for it here and in the article and explained how it happened. But if you insist on keeping to beat the dead horse tells more about you than the title.
The setup is straightforward.

I use VirtualBox to run CoreOS, but VM can run anything as long as it comes with a recent Docker and does not require a lot of maintenance. Then I run lsyncd to synchronize files from the host transparently into that VM and edit whatever files I need in the Emacs on the host. When I need to run a docker command, I do it either from Emacs by prefixing the command with ssh local-vm-name or from a ssh session in a terminal.

To test the things I use, for example, another VM where /etc/hosts points for my production domains to the VM with Docker. Another useful thing is to expose during development, say, PHP/JS code that I edit directly into container for quick testing feedback. For that I can run the container with an extra host volume mount that override the software tree in the image with one that comes from Docker VM and where lsyncd copies all my changes that I made in Editor.
How to convert 30$ D-Link DCS web cameras into a backdoor
The problem is that to get anything done on the Internet, you will need easy use of existing third-party libraries for a wide range of stuff, or you end up spending huge amounts of time implementing protobuf handling, websockets, ajax, webgl and the myriad of other important technologies that you may likely encounter in those areas. Excellent libraries for that stuff are out there, but Elm makes it hard to interop with them... for now. I really hope that changes.
Did you consider using a decentralized solution like https://cloudfleet.io (I am a founder). If you are interested in a PoC, send me a mail, address in my profile.
I agree, but I'll go further than you - I don't think this essay is confusing at all. It's simply nonsense - the kind of thing someone clever writes when they're discussing a subject completely outside their area of competence.

CS can be a craft. It's not one of the arts, not even if it's beautifully put together, because the arts are not primarily about technique - they're about capturing and distilling human experiences using allusions and associations to (re)create those experiences. Fluent technique is a useful tool that help with that, but it's not the point.

(Modern art is a bit more limited than that, but that's more or less what art meant for most of Western history.)

The experiences created by the most timeless art are focused, but also ambiguous and complicated. You can get lost in them, and although there's often a clear theme, you can't define the rest of what's happening with absolute final precision.

That's almost exactly the opposite of what good code does. Which is why "That's a clever, clean solution" is an experience that exists in the craftsman's world, and is either peripheral or completely absent from an artist's view.

>I think dropping "science" from "Computer Science" would help immeasurably.

At my university the joke was always that it should be called "Computer Studies." Only a nugget of algorithmic research is genuinely scientific, and that lives in a tiny corner of the rest of the Pure Math. There could be a lot more formal provability, but going down that route would put a lot of programmers out of work, because the level of difficulty is much higher than that needed to crank out some JavaScript.

What's left is usually neither rigorous nor beautiful.
BBC to reboot Robot Wars
Is this just standard sets, like python's:

In [1]: {3,4,5} & {5,6}
Out[1]: {5}

or is there something I'm missing?
It should be the best one I have read
I don't understand why sites need to control this. This is a browser problem, just like remembering the password, listing them and removing them is a browser problem. Why would the website have anything to do with managing client certificates, other than bypassing browser vendors for more flexibility (and thus more problems) ?
thanks a lot for the info. I can perfectly see the reasoning behind it. Still, i find it harder to read. But as i said, that can be a lack of practice.
Finally. It would be great if Unity3D add official plugin to this IDE. For now Consulo[1] is competent alternative (build by some cool dude using IntelliJ Community Edition).

1: https://github.com/consulo
50 terms most predictive of a submission making it to the front page
Results are based on stories submitted in 2015.

Overall ROC AUC score: 0.634 (front page: 60.00%, not front page: 84.70%)

0.480619587060 pdf
0.400951486155 yc
0.357299773818 c
0.345074611885 2013
0.312349086474 2014
0.282104533149 2012
0.267570843408 language
0.261375936103 2011
0.241650745481 go
0.219169898626 haskell
0.211257263299 show hn
0.205623463348 rust
0.199571502981 i
0.195598572648 programming
0.195274408452 lisp
0.186177768937 2010
0.178721616659 a
0.167683265531 theory
0.164806775214 fast
0.163041352661 linux
0.160414928257 2009
0.159121703294 released
0.158462774218 yc w15
0.157937056948 0
0.155722711980 w15
0.153727530604 memory
0.152325392129 openbsd
0.140109894354 compiler
0.139065804971 an
0.135471235636 open-source
0.131606742813 deep
0.131399688219 unix
0.131269232599 gnu
0.131168543633 kernel
0.125287242638 show
0.124609324199 firefox
0.124602305508 os
0.123616770730 who
0.120643387605 computer
0.117908824287 the
0.115902369932 modern
0.114483061102 hn what
0.112337592986 ocaml
0.111354775352 programmer
0.109343194868 postgresql
0.108654447345 math
0.107721823851 2008
0.106274292219 in go
0.106071633308 2006
0.104932567748 perl
> "4 apples + 5 oranges * 18 friends" ― wasn't that meant to be "(4 apples + 5 oranges) * 18 friends"?

In the 'real world', that would clearly be the correct interpretation, even if it flies in the face of the 'standard' rules of precedence. If the calculator really works that way, it only makes it more impressive in my book.
Also, 100 terms most predictive of a submission not making it to the front page:

-0.335386489547 startup
-0.331723905544 2015
-0.321593118669 app
-0.306937335575 your
-0.305739531214 how to
-0.275438550569 this
-0.261565592652 business
-0.252649164518 product
-0.250614203448 mobile
-0.236041160710 marketing
-0.227196421746 top
-0.208139598304 with
-0.206031814574 5
-0.203087091676 ios
-0.202457032685 design
-0.201021718651 watch
-0.200267475193 startups
-0.197466134506 ask
-0.196357335391 or
-0.192562683469 10
-0.191253124976 best
-0.190867070325 ask hn
-0.187721441778 cloud
-0.187394374070 android
-0.186461809237 smart
-0.184024063073 you
-0.183827664018 tips
-0.182653896122 growth
-0.181372850037 for
-0.178198606780 could
-0.162472422631 blog
-0.162207059285 java
-0.160644447613 development
-0.159487418681 social
-0.157294135483 should
-0.156980003088 bitcoin
-0.150609220130 iphone
-0.148979317953 tech
-0.148345714371 testing
-0.147454333035 change
-0.145491827860 list
-0.145485290331 to
-0.144015642286 3
-0.143708682318 robot
-0.142186986230 tools
-0.140812013948 twitter
-0.140696100278 rails
-0.140548788801 software
-0.138527298008 future
-0.138172121531 good
-0.138015521103 internet
-0.137281744329 facebook
-0.136342150691 security
-0.134144777413 content
-0.133091842596 awesome
-0.133049592053 angularjs
-0.133019163138 create
-0.131147662198 meet
-0.128568740027 live
-0.125766592272 wordpress
-0.125681496867 star
-0.125433963958 here's
-0.124980970020 test
-0.123513256155 day
-0.123227292738 podcast
-0.123085547655 feedback
-0.122558159240 uber
-0.122365526765 bill
-0.121846476127 things
-0.121766619177 online
-0.121674711692 entrepreneurs
-0.121271063379 vr
-0.120835224059 devops
-0.120704156113 website
-0.120668008266 resources
-0.119873591378 tutorial
-0.119600975052 6
-0.119263351612 most
-0.118987167145 api
-0.118767754130 apps
-0.118683692890 digital
-0.116745925093 will
-0.116477896000 data
-0.116317401689 needs
-0.116223838757 need
-0.115050697065 market
-0.114878154258 3d
-0.114105916526 more
-0.111918004178 help
-0.111764422735 apple
-0.111326594562 new
-0.110914386417 year
-0.110475338587 customer
-0.109564041456 technology
-0.109468606136 iot
-0.109381535069 application
-0.109146062602 4
-0.108483540034 solution
-0.108171407112 music
-0.107249340464 drone