skysight-inc/HackerNews huggingface dataset:
> I would prefer people assign as many new variables as they like, and just avoid mutating them

While I would agree that it is much more important to have functions NOT mutating their local variables, doing away with assignments is a straight-jacket which immediately forces you to decompose larger functions into smaller ones.

In fact, even in languages like Haskell where mutations of local state is entirely done away with, I see constructs such as `where` and `let` being abused to construct inordinately long functions.

Longer functions tend to accrue even more length over a code base's life and become harder and harder to test as they do.
Also known as Chesterton's Fence.

https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_...
Thanks for the suggestions! They're greatly appreciated.
The fact that HN gives you this option at all, to my mind, sets it in the very unique category of self-aware information sharing communities/platforms. Reddit has subs that focus on productivity and discuss addiction to Reddit itself, sure, but they seem to be going down the same path of catering to addiction now.. deleted Reddit entirely in lieu of HN recently and it's been fantastic.
On the flip side, a good interviewer should be building rapport with the interviewee regardless of interview performance. This is especially important for earlier interviews in the day, because you don't want the candidate to get flustered and ruin future interviews.

Even better is to use that rapport to then disguise successively large hints into the interviewing process, so the candidate can't obviously tell if they've failed horribly... again to avoid tilting them for future interviews that day. Give them room and time to explore the problem space on their own, but don't let them sit in silence making no progress for 30 minutes making it painfully obvious that something is very wrong.

A single bombed interview might not kill the whole packet, so it's best to insulate.
FWIW: I wouldn't notice since my bookmark goes directly to my orders page. I never see the home page. I also never see the home page of google or github.
Also important to realise that a feature that is rarely used (view history, remove user) might be more important than one used more often (dashboard widget that nobody pays attention to)
When a crypto prosecution gets so nutty the judge worries about the defendant
Thanks - I’m thinking of those agave at the bottom with the Black tips. Lots of cool plants in the desert!
We start work late as we grow older
After looking at my 10 year old daughter going to school today, I was wondering how my "work" timings have got late as I have grown older. In school, my first class started at 8:40am, in college at 10:30am and now at 11:30am.
Verifying humans is a solved problem.
From some externality to society perspective, sure. But that's definitely not true of a grid operation cost perspective.

A coal power plant does not get paid retail rates for the power it generates. The utility company charges more precisely to pay for transmission and the people to maintain it.
I couldn't tell from the description of "minimal" - did you discount horizontal symmetry to reduce your set size by half?
> How can an ISP get Netflix to pay it, or lean on Netflix to install new servers in their network, if it is illegal to use their own bargaining position?

ISPs don't have to lean on Netflix to install CDN nodes within the ISP's network. If Netflix finds that it's cheaper for them to do so rather than buy transit to the last-mile ISPs from Netflix's existing ISPs, then Netflix will come to those ISP's offering money and begging for the rack space. If, on the other hand, it turns out that Netflix doesn't need the low latency that CDN nodes afford and that they can more cheaply obtain the necessary bandwidth indirectly through Level3, etc., then the last-mile ISPs should not be empowered to distort that market outcome.
you live in LA?
It's funny how well this kind of lowbrow snark works here until exactly the moment it totally doesn't.
Force real human verification for real accounts, and then create a bot/computer/AI account for the bots that people actually use. Human verification is a solved problem for the most part.
I did a talk in Portland at their Scala meetup and one of their organizers often takes an open source project and starts hacking on it. Every time he pulls down SBT, he finds it a terribly painful mess.

I've never looked deep into SBT myself, but the sbt-native-packager plugin use to be an insane mess of craziness the last time I looked at it.

As far as tooling, I got pretty use to running sbt even if I got red lines and felt that my types were correct. Often it was to see what the compiler error would be and then I'd be surprised to see it compile with no warnings.

Scala is complex. The Intellij issues an be frustrating, but I can also understand how difficult it is to resolve the complexities in Scala.

I still <3 Scala though.
If I may, I wrote something a few years ago about why flat design is detrimental to user experience. A lot of folks have told me that they've found it helpful in gaining some perspective.

https://medium.com/theories-of-form/frame-of-reference-eeb32...
Yes, it is. But tooling can improve that. For example: having worked on DB2 and Postgres, and I'd choose Postgres for any new work barring extremely unique constraints--not because it means "I don't have to understand the details of how stuff works", but because it exposes how stuff works in a more intelligible, powerful, and useful way. Tools improve. Sometimes they repeat past mistakes--I'd pick Postgres over Hadoop/HBase too, until considerable duress. But sometimes? Sometimes tools learn from past mistakes--use those tools.

Not everyone complaining about the deficiencies of current-gen tools is doing so out of ignorance or laziness about their stack.
At the point where one of us literally called up the dude who was doing the work and asked, can we dispense with the message board rhetorical kung-fu and just have the rest of the conversation? Thanks.
Oh my absolute fuck. Every single Elon Musk tweet is followed up by an account with an identical image, and a one-character-off twitter account pretending to continue the conversation with a 'surprise'. It's always a link to some crypto BS. How in the hell Twitter can't auto-block that, particularly when the source account is a verified one, is behind my comprehension.
Maybe, but it’s conceivable to me that with 140 endpoints growing organically it would be very hard for an individual engineer to know for sure what should be abstracted or not. I think it’s a fundamentally hard problem even though on the surface it seems like it should be simple. Adding arbitrary new unaffiliated services is exactly the kind of thing that leads to irreducible complexity and a moving target that is very difficult to design for.
>heavily subsidize fossil fuels by not raising any tax on gas.

Unless they are taxing solar, that's not a subsidy when comparing the two.

Where fossil fuels are subsidized is in the externalities they don't pay for (i.e. environmental impact).
This possibly points to a need to homogenise the programs so that there is only one contract for doing one type of work, regardless of whether the person doing that work is citizen, resident, work visa, sponsored visa, etc.
Angular Feature Route Libraries
Show HN: A Modern Router for ExpressJS, Koa and React
Unless battery/storage tech gets wildly better, you're still going to have to have the natural gas turbine plants that we're currently using for peak demand power to smooth out the inevitable spikes and troughs in supply from solar/wind renewables.

It's such a damned shame that so many decades of potential progress in nuclear power were stymied by misguided FUD.
I don’t disagree with your principals of good code quality. I disagree that by following those principals you no longer need to use a debugger or to develop debugging skills. Your post is harmful because it suggest to junior developers that if they must use a debugger they must be developing their software in a poor fashion. This is not true. There are many good reasons to use a debugger, including to develop software or to explore a codebase and to debug your code.
The Feds can regulate wire fraud--that is definitely commerce. Sorry you are very bent on misrepresenting me.
Just did an angular talk for ngHouston on redistributing entire app features(routes and all) with angular cli libraries.
You can load kernel extensions with SIP enabled: the extension just needs to be “soft-approved” (i.e. you need to be in the developer program and explain why you need a kernel extension to Apple; no stringent requirements like the App Store review process obviously). With SIP disabled you can load extensions that have not gone through this process.
> Is Tesla running an undercover salvage operation, to identify reusable components and reduce waste from their "totaled" cars?

The economics of the situation would say no. The number of "totaled" teslas is a tiny fraction of the number they are producing.
They serve totally different purposes.

Rust is great if you want a language with a lot of type/bug safety and want to be able to compile it to run naively on everything from servers to embedded devices.

Scala tries to bring a functional language that can utilize everything that already exists on the JVM, including all the classic Java libraries, while providing a lot of FP idioms, pattern matching, etc.

If you write good Scala code (basically avoid anything and everything written by TypeSafe/LightBend ever .. except for TypeSafe Config .. that one is okay, and it's in Java), you can have some really awesome, clean looking code and programs compared to their Java equivalent boilerplate.

They both have their purposes.
Cave diving is a much more difficult version of diving. Many of the Thai seal team divers are open water divers. This is why there was a large contingent of foreign divers involved. Those with the requisite skills levels are widely dispersed. It's entirely likely that Saman Gunan could have done a hundred more open water dives and survived then all, but due to the difficult conditions in this situation it is possible he got disoriented and/or panicked and ran out of air. I think because the boys survived many people perhaps underestimate the difficulty of the situation now that it is resolved.
Did anyone else notice the favicon (shown on one's browser tab) for this link? IMO it beautifully depicts the subject of this post. I did a double-take before realizing that it was an awl :)
I wonder home much efficient solution will be if written in the logic programming language like Prolog.

PS. Find this one, but did not run any analysis yet: https://github.com/nablaa/rushhour-solver-prolog
How to Unlock a PDF on Mac No Matter You Know or Forgot the Password?
Can you say more about your project? I was thinking of using it for a project where I'd have to categorize a lot of data and I found the ontologies/modelling and program setup a bit daunting so shelved it for now. Would be curious what others are doing with it.
Yeah you're right. Forgot about LA.
Ask HN: Which book have you re-read the most times? how many times?
Question copied from Eric Jorgenson, who posted the same question on twitter: https://twitter.com/EricJorgenson/status/1016003656787857409
You can build it from source if you would like. It needs to do that because some (most) medium posts are not on the medium.com domain.

https://github.com/thebaer/MMRA
you can probably scrape your own Facebook friends' pictures & use the GCS or Azure free services
Having worked at one of Boeing's competitors (not in this specific industry but a similiar one) I think I'd rather sit on top of the rocket built by the big, old, slow defense contractor. I'd hard to overstate how much consideration of making sure edge cases (for both hardware and software) don't kill people is baked into the culture at these companies.

As a taxpayer I think the rocket that moves fast and breaks things is just fine for nonhuman cargo.
I think their role is really to determine if there’s any legal risk which they use to determine if they should eliminate the problem or ignore it. In theory that should mean protecting the company from a manager or other employee engaging in discrimination or harassment. The trouble is that HR is like internal affairs. Since they’re part of the organization they can be influenced by politics.

I sometimes wonder if legal aspect of the role HR serves would be better served by an outside legal firm that can determine the risk “objectively”. They’re never going to choose an outcome that will better serve an employee but HR doesn’t do that anyway. At least they’ll be able to tell the organization, “This dipshit is going to get you sued and you’re going to lose” without worrying about an HR manager trying to sweep something under the rug because they have a good relationship with the people in question.
When I want a readable Medium, I simply toggle the Firefox's built-in Reader View(Ctrl+Alt+R). It's readable enough for me.
>Let me put it this way: Trump may, before he's done, nominate three Supreme Court justices. Do you want those justices to decide based on what they think is "acceptable as a policy matter"? Or do you want them to be bound by what the text says?

If I support decisions by previous courts, such as Roe V. Wade and Obergefell v. Hodges, then the intellectually honest position would be to concede that whomever Trump nominates has the right to do the same. I may not like it, but I do believe that is the Court's prerogative.

I don't think it's harmful to consider updated interpretations of the Constitution per se, although particular decisions can do harm even when they correctly reflect the attitudes of the time (as with Plessy V. Ferguson and segregation.) But then, obviously wrong interpretations can also be reversed. I think that we're a stronger democracy for being able to ask these questions, and consider the Constitution as evolving philosophy as much as a legal document, than if we were prevented from doing so.

>Is it? We don't accept that reasoning with contracts, why should we with the Constitution?

Well... the Constitution isn't a contract. If it were, it would be far more precise and verbose in its language, and you wouldn't have entire bodies of scholarship around the meaning of a comma.

But here we are in 2018, in the age of the internet, global surveillance, 3d printed guns, genome sequencing and a thousand other things the Founders would probably never have conceived of. If we remain bound only by the original intent of the original definition of the words of the Constitution when interpreting challenges and questions of Constitutional law, then I'm afraid the result is going to be that Constitution becoming less and less relevant to modern society.
Why are you unwilling to accept any regulatory recourse to monopoly abuse aside from breaking up the monopolies?

Last-mile ISPs are always a natural monopoly at the neighborhood level, regardless of whether they are part of a multi-state conglomerate or a local entity. The monopoly needs to be regulated no matter what the larger ownership structure is. Many local governments do not have the capital or technical capability to build, own or operate an ISP, and there are clear advantages to consolidating the ownership and administration of the network, provided that it is still subjected to effective regulation.
Journalist singular. He only gave data to SEC after Tesla started trade secrets proceedings.
The UIKit on macOS API is supposed to be coming to developers next year. I don’t see ARM Macs or the deprecation of an API like this with no warning happening by then.
If by PBKDF2 you mean PBKDF2-HMAC-SHA256, it should die as it's so much less secure than using Argon2 as a password hash function.
> The Feds can regulate wire fraud--that is definitely commerce. Sorry you are very bent on misrepresenting me.

And yet, you wrote:

> I don't see how light crossing state borders is construed as commerce.

You're not convincing anyone when you pretend to be unable to understand how paying someone to carry information across state lines on your behalf is commerce.
Eventually function decomposition becomes a proxy for assignment anyway, especially in languages where assignment and mutations are necessary. Function decomposition is not necessary for all code and can actually be harmful to one's understanding if done improperly.

I generally follow the rule of threes ("if the code appears in three places the exact same way, extract it to a separate function") as this helps me balance readability of functions with size of functions.

I understand your advice applies very neatly to functional languages. I would love to live in a functional world. I don't. So that's why my advice is like that.
What do you want the software to do other than exfiltrate data in order to count as “hacking software”?
>nothing can redeem it and it's off topic on Hacker News.

That seems largely contradictory to the hacker ethos, no?
I was thinking about Python3/Perl6 as he was talking and glad when he brought it up.

It's important to note, the world has transitioned to Python3. Django removed the py2 comparability imports a while ago and the Python3 Wall of Superpowers stopped updating a while back when it was over 90% green.

For most devs, all new Python code that's green field is Py3. There is still a lot of py2, yes .. a lot in commercial/closed apps that have embed python in there, along with scientific applications. But I think that will change eventually too.

Perl6 is the opposite end of the spectrum. Massive Perl codebases will always be Perl5. I don't see any enterprise people going to Perl6. If you're like Booking.com and still using Perl for everything, you code is probably so decrepit, old and lacking meaningful testing you should just burn your entire company to the ground so your devs are no longer in miserable agony.

He has a point with Python3: it is a large community. Even with that large community, and even with how small many of the syntax changes were, it took a long time to get to py3! Scala is nowhere near as big.

Scala needs to move carefully with Scala3, so that Scala3 is more like Python3 and doesn't end up like Perl6.
You can still enable the spatial mode by hiding the toolbar via the "View" menu
I'll re-post my experience here:

I tried installing Gravwell from the Debian repo. This unfortunately seems broken.

W: Failed to fetch http://update.gravwell.io/debian/dists/community/InRelease Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)

(also, that should probably be https://update.gravwell.io...)

Once installed from the tarball, it failed to start.

The gravwell_webserver process is not running!

If you kept an old configuration file the configuration parameters may have changed. Try manually starting the services and looking for errors.

Sure, I need to go update the web ports to not interfere with nginx. Makes sense.

$ vim /opt/gravwell/etc/gravwell.conf
s/Web-Port=443/Web-Port=1443/
$ systemd start gravwell_webserver
$ systemd status gravwell_webserver
gravwell_webserver.service - Gravwell Webserver Service
Loaded: loaded (/etc/systemd/system/gravwell_webserver.service; enabled)
Active: failed (Result: start-limit) since Thu 2018-07-12 02:15:07 UTC; 23min ago
Process: 3411 ExecStart=/opt/gravwell/bin/gravwell_webserver -stderr %n (code=exited, status=255)

Huh, maybe I missed something else.

$ journalctl -u gravwell_webserver
-- Logs begin at Fri 2018-07-06 20:35:20 UTC, end at Thu 2018-07-12 02:41:26 UTC. --
<EOF>

That's odd, where's the logs?

$ ls -la /opt/gravwell/logs/web
drwxr-x--- 2 gravwell gravwell 4096 Jul 12 02:07 .
drwxr-x--- 4 gravwell gravwell 4096 Jul 12 02:17 ..

No logs. Lets check the crash folder?

$ ls -la crash
drwxr-x--- 2 gravwell gravwell 4096 Jul 12 02:17 .
drwxr-x--- 4 gravwell gravwell 4096 Jul 12 02:17 ..
-rw-r--r-- 1 root root 322 Jul 12 02:07 gravwell_webserver.service_2018-07-12T02:07:36Z.log
-rw-r--r-- 1 root root 354 Jul 12 02:15 gravwell_webserver.service_2018-07-12T02:15:07Z.log

There it is. Double click the filename to copy to...oh, it has colons.

$ less gravwell_webserver.service_2018-07-12T02\:15\:07Z.log

Version 2.0
API Version 0.1
Build Date 2018-Jul-06
Build ID bcd7739a
Cmdline /opt/gravwell/bin/gravwell_webserver -stderr gravwell_webserver.service
Executing user gravwell
Parent PID 3411
Parent cmdline /lib/systemd/systemd --system --deserialize 14
Parent user root
Failed to wait for new license: listen tcp 0.0.0.0:80: bind: address already in use

Why's it listening on port 80? I must be missing a config option. Lets check the docs... https://dev.gravwell.io/docs/#!configuration/parameters.md

Nope. Not there. Nothing defaults to port 80 or looks like it would change it, except for Web-Port.

So, I really tried to give your product a shake. I'm very interested in having some centralized logging for my hobby projects, but not at the cost of nginx on port 80. So...\o/
Funny I was thinking of Groovy while reading the parent as well. I always feel like any language that defines itself in the shadow of another language is challenged to find its own true identity. Something I like about Groovy though is that it doesn't have pretenses: it shamelessly tries to be as close to Java as it can. They are busy right now redesigning the syntax so you can write '=>' instead of '->' in lambdas just so it can be more "java-like". I can't think of a more pointless change from a functional point of view but they are doing it anyway. When I use Groovy, I'm not doing it because "Java is bad", I'm using it because "Java is good" but "Groovy is better". When I code in Scala I keep feeling bad every time I divert back to Java-style and constantly struggle to figure out what paradigm is right and when to switch between them.
What is he blowing the whistle on? Who did he try to notify?
They do, they have the trucks were the rear wheels can turn as well
I can't speak for other interviewers, but I barely take this into account. As long as someone isn't actively antisocial (has never happened to me) or unprofessional (has happened once or twice) I file feedback exclusively on technical merit and communication. There have been times where I liked someone and wanted to give them good feedback, but couldn't.
Why would anyone leak to BI? I is already hard to trust anything on that website.
The exit is on the right, so there is no horizontal symmetry. For odd sized boards there is vertical symmetry, which I haven't addressed since I was mainly concerned with 6x6.
Something something definition of insanity. ;)
India just passed net neutrality laws to ban ‘any form’ of data discrimination
> I disagree that by following those principals you no longer need to use a debugger or to develop debugging skills.

Using a debugger (as in, software where you step through code) and developing "debugging skills" are entirely different things. I was only commenting on the former.

> Your post is harmful because it suggest to junior developers that if they must use a debugger they must be developing their software in a poor fashion.

Would it be better if I said: "if you need a debugger, you have are either mucking around in poorly written code that you inherited or you're probably doing it wrong"?

> There are many good reasons to use a debugger, including to develop software or to explore a codebase and to debug your code.

I concede that exploration of a codebase is a valid use of a debugger.
German parliament approves 9% increase in federal spending on culture
Can it make Medium not ask me to pay for a subscription after N (3 at this time) articles?
I thought it was an appropriate post that’s sufficiently on topic to not really qualify and shameless self promotion.
Every time this pops up on my radar, I always consider taking a stab at adding the “make articles with gifs better” feature mentioned in the github issue, but I always end up too busy with other work. I’ll carve out some time this weekend to give it a shot. My workload stars are aligned for some open source, and that would be a great feature!