skysight-inc/HackerNews huggingface dataset:
This reminds me of the elevation of Mt Everest as determined in 1856:

> Peak XV (measured in feet) was calculated to be exactly 29,000 ft (8,839.2 m) high, but was publicly declared to be 29,002 ft (8,839.8 m) in order to avoid the impression that an exact height of 29,000 feet (8,839.2 m) was nothing more than a rounded estimate

Source: https://en.wikipedia.org/wiki/Mount_Everest
Date of publication?

Ah, 2001. Thanks for posting this, I hadn't come across this.
I've loved the facetmobile since I first read about it several years ago. If I ever get to the part of my bucket list that says "build experimental airplane", I'll model it after this.

Could be complete coincidence, but I like how it resembles a nighthawk from the side view (oshkosh pic). The tail designation N117WD makes me think I'm not alone in that observation :)
Very interesting and constructive thread. A lot of information about various Haskell warts, problems people have, and possible solutions to overcome some of them.
But null pointers are not really a problem in Go, aren't they? The problem only exists in lower level languages.

Go, as a language, is a pretty good one. It's Go's standard library that's not, especially "net" and other packages involving I/O.
Wonderfully reminiscent of something out of Elite or Frontier. Really want to see one of these floating towards a spinning space station before hitting the side and exploding spectacularly.
>> "hundreds of G8 pacific protesters were brutalized and tortured by Italian police. Whilst the police has been found guilty of this, none of the policemen is serving any jail time."

If police commit crimes, they must be held accountable.
I've only ever broken one screen on a phone, and that is not so broken that it is unusable. I appreciate other people break screens more often, but never breaking the screens is a fairly common situation. Given that old iPhones continue to trade at a multiple of a cheap android, you could probably pay for at least 2 screen repairs with the difference, and you would be paying for those well down the line. The economics for somebody who is not exceptionally clumsy probably still supports buying the cheap android.

That probably doesn't help the repair shop guy too much, but making the poor support his dying business model doesn't sound fantastic on the ethical scale either
Mils really confused me when I was learning PCB design. In the UK a thousandth of an inch is not a common unit anymore, but it isn't unknown. The problem is that we call it a "thou".
You'll find this old mailing list post a good answer to your question: http://zork.net/~nick/mail/why-reiserfs-is-teh-sukc

The answer is cost. We used to have the computers you're describing. They were made by SGI and the hardware & OS made all sorts of guarantees like the ones you're describing, to the point where XFS was ported to Linux x86 initially it had all sorts of bugs that simply couldn't happen on SGI machines.

The x86 boxes were cheaper, nobody really cared enough about hardware reliability enough to pay the price for the likes of SGI, and the rest is history. Today we have a "worse is better" hardware architecture and software has to be able to handle it.
Maybe don't work in the games industry, where the crazy users tend to end up?

Sorry to point that out (I know a lot of HN folks are gamers), but I think it's a valid approach.

I really doubt if Guido has been harrassed or physically threatened because of something in Python 3, for example.
I am non-technical and I love this post for its exhaustive documentation and citations.
From Science to Data Science, a Comprehensive Guide for Transition
"Ownership of a view" is a pretty dubious argument. It amounts to no being allowed to construct anything anywhere because it will always change someone's view. A taller building is not the same as a spite fence, at all.
>>Who does that?

You mean the indentation style? The K&R vs ANSI/Allman thing?

That argument started well before java, and continues. I would guess you're seeing it there because whoever wrote it had previously been a C++ developer. Inertia. GNU's classpath, for example, is indented this way...same thing, inertia. Easy enough to batch reformat though.
A List of Technologies That Make Healthcare IT Easier
A Python Interpreter Written in Python ()
How would this work while still retaining the ability to have e.g. indoor GPS repeaters?[1].

1. http://www.gps-repeaters.com
They were expecting an iterative solution, so giving them a recursive one came across as a bit snotty. As it should.

What language did you do your high-school level stuff in? I assume it wasn't Java, because in Java there are no good reasons to use recursion (it provides iterative primitives, unlike say Haskell, Prolog, Lisp etc) and there are good reasons not to (its compiler doesn't (or didn't) do tail-call optimisation).

Not to mention, any language without pattern matching is a bit shit for teaching recursion anyway: you tend to miss the point because of all the bookkeeping.
>What's your industry

Pharmacy.

>what do you think is different about it?

Do you want my non-PC-sure-to-offend-the-hive-mind-version? "Nerds". The tech industry is filled with them (obviously). And let it be known I consider myself one.

Look at any thread about autism here; it will be filled to the brim with people with people who have self-diagnosed themselves with some level of autism. I suppose it's because everyone likens themselves to some sort of Rain Man. But they hardly ever consider the common negative affects of said disorders: social awkwardness. Being as how many men are awkward around women at the best of times, it's much worse when you have gawky nerds trying to achieve the same outcomes[0].

I don't really know. It's just a theory. Maybe you should ask hivemind#10232123 above me here; you know, the guy who works in an industry that, apparently, women don't want to go near for fear of harassment (despite the fact that every second guy is a feminist), lecturing a guy who works in an industry where men and women are in actual parity without the need to distribute a concrete list of "things not to say to women".

[0] See 40 years of pop culture.
Correct, JVM only
Because it's a dumb mistake, easy point out if you're technically minded. Being easy to understand gives it wide reach.
How to run a successful Hackathon
This is highly relevant to my interests, as I'm currently home-brewing a 68K-based system in need of a video card.

Thanks for sharing your work! This is awesome.
True! But two things save us and make DIY SMD reasonable:

- With practice we can go down to surprisingly small components. It's less about precision work and more about having an intuition about heat flow and surface tension which let the components align themselves.

- When components are too small or simply impossible (or it is beyond my knowledge) to solder with an iron, we can always just use an oven :) Which is entirely reasonable to do either at home / in the garage as they can be build very cheaply, or locally at a friend's or a fab-lab type deal.
Most of these apply to other languages as well:

"Haskell sucks because compilation takes too long."

"Aye. And it takes too much memory too."

"My major gripe with haskell was that I could never tell the space/time complexity of the my code without serious analysis (that among other things involves second-guessing the compiler's ability to optimize). This makes writing good quality code harder than it needs to be."

"Debugging boils down to wolf-fences and print-statements most of the time"

"Profiling is needed for any stack traces, and is not enabled by default, so you end up spending hours rebuilding your sandbox just to get a stack trace of an error."

"Coming from a Scala background, the tooling seems terribly cumbersome and immature. I couldn't get it to work in IntelliJ."

"You need to turn on dozens of language extensions to do pretty much anything."

"I'm a developer on a pretty large Haskell codebase, and we're in a corner of 'can't add any libraries without them conflicting with each other." Which is OK, by itself, but leads to my biggest complaint of 'why aren't API changes reflected by major/minor versioning'."

"Haskell sucks because both the standard library and the ecosystem lack guiding ideas."
Which is kinda interesting in itself.
$40-50 per day, sorry for the missing word.
Are There Better Indices for Evaluation Purposes Than  the  H Index? (2008) [pdf]
You can't just stick the words "no offense" in front of an intrinsically offensive statement and somehow end up being civil.
Is there any reason to believe this doc was (or was not) produced by a state-level actor?
Compilers don't just catch syntax errors though - they also show up logic errors, that may be too subtle to see on a whiteboard. That's true even with very simple programs.

You can definitely step through your program by hand and follow the logic etc, and you should totally be able to do that, but most programmers will not be in the habit of doing this. And neither should they, because it's slow, tedious and error-prone to hand-simulate your algorithms, or even just your for-loops. Not to mention recursive, or larger stuff.

I guess what I'm saying is that programmers are used to "lean on the compiler" and you don't have that on a whiteboard exercise, so it's a bit artificial.

[Full disclosure: I'm in the habit of hand-simming my stuff especially in the last year where I've been developing a grammar induction algorithm, so I'm not worried that I'll have to stand on a whiteboard and not know how to step through a loop, but I still think it's not very useful to make people do that).
Very interesting link. Thanks
Having these kinds of threads, I think, is very important for the community. On a related note, there has been quite some fallout from the haskell compilation times got worse thread, which resulted in the development of tooling around improving the situation.
I thought the patent on round numbers got thrown out?
$40-50 per day, not hour. The comparison is that the average US or European worker make in a day as much as the Chinese or Indian worker in a month. This huge difference of potential creates tensions on the market and in the liberal (no idea where the "neo" comes from, maybe Matrix?) economic doctrine the tendency is the competition to drive the gap to minimize or close. Will that be with European workers earning $50 per month or Chinese earning $50 per day? None, because the European protectionism is distorting the market and maintaining the tensions with the price of immigration, terrorism etc.
This is a part of why I'm quite selective about what I post online. The major part is that I value my privacy and don't really want random people knowing everything about me. I don't want to be a public figure. I avoid Facebook and Twitter, too, so that really reduces my surface area for this type of attack.

From the op:

So complaining about harassment isn't just whining by sheltered nerds. The more visible and outspoken you are online, the higher the chance that a whirlwind will land on the heads of you and those you love. There is no chance of this changing in the foreseeable future. This is serious business. I am scared. Everything I do online is weighed against the risk of harassment.

So the nerds won against the schoolyard bullies. But as a result we created another kind of public space which has bullying mobs. Unthinking bullying mobs that are in denial of their own bullying and label their activities as something noble or socially/intellectually worthy.

Just about every thoughtful person I know feels effectively censored. There are certain group-minds online you can't risk angering, for fear of the consequences. These often exist as binary pairs in opposition which feed off of one another, gaining more members by mutual creation of outrage.

These phenomena need to be recognized by society. An intellectually vibrant society should shun such stultifying phenomena. However, our culturally dominant means of communication are precisely where such phenomena live, and are the places they effectively police. This ability makes them much more insidious than "hate groups" of the civil rights era.

The nerds created the new bullies, and the new bullies now shape and control the new discourse.
Perhaps the coolest thing about natural language is just how completely unstructured it is compared to programming languages (which are of course 100% structured). No one ever declares variables up front, tells you what state to record, or really gives you any specifics at all. Natural language is additive, an immensely powerful feature to have and one I've never seen in a programming language. People use natural language to build up contexts, with various details, which I presume the brain then must infer structure from in order to 'execute' the idea being discussed.

For me this is why new languages such as Rust, Go and so on don't really interest me; sure they fix a lot of problems with some new structures, but the real power is a language which can infer structure from your inputs. I believe in the future we would write software like researchers currently write thesis'; separating out functionality into separate document sub sections, and then using natural language to build the idea up over the course of a number of pages.
There's no order preserving guarantee. Code should do

fd <- open(tmpfile)
write(fd, data)
fsync(fd)
rename(tmpfile, finalpath)
fsync(parent(finalpath))

(Strictly speaking there is a problem in the rename because we can't be sure "tmpfile" still refers to the same inode. It would be nice to have a way to link fds, but I'm not aware of any).

According to the paper, existing file systems recognize the (open,) write, rename pattern and don't reorder write and rename. That would break too much existing code. But these are filesystem-specific design decisions.

Btw. it's just the same with CPUs writing to memory. Generally writes can be reordered if the behaviour is not visible to the executing thread. However if there are multiple threads you might need to insert (CPU-specific) memory barriers to prevent reorderings that are visible to other threads. x86 is like those file systems here in that most incorrect code still works, because x86 makes some ordering guarantees.
They may well share code and or library dependencies which could be where the 'need' for the permissions comes from.
I find it very amusing that Apple is boasting about reducing the size of packaging, but they're still shipping accessories from their online store out in boxes about 15 times larger than required.

http://i.imgur.com/sMyvO6o.jpg

I've noticed this not only with their packaging for third party accessories, but also for first party ones like the new Magic Mouse 2
IANAD, but sounds like a potential ADHD case:

https://en.wikipedia.org/wiki/Attention_deficit_hyperactivit...
Others: The regional smartphone brands taking market share from Apple and Samsung
What is a photographer?
To critique with either missing, invented or false arguments make a publication poor quality. In this particular case it is using all 3 types.
For those who, like me, wondered what wolf-fencing is:

"Wolf fence" algorithm: Edward Gauss described this simple but very useful and now famous algorithm in a 1982 article for communications of the ACM as follows: "There's one wolf in Alaska; how do you find it? First build a fence down the middle of the state, wait for the wolf to howl, determine which side of the fence it is on. Repeat process on that side only, until you get to the point where you can see the wolf."[10] This is implemented e.g. in the Git version control system as the command git bisect, which uses the above algorithm to determine which commit introduced a particular bug.

[https://en.wikipedia.org/wiki/Debugging]

So now you know what that thing you always end up doing is called :)
The big difference between Python and modern functional languages is that Python defaults to mutability. Clojure is immutable by default, and that makes it much easier to reason about code in isolation. When you're working on a large project, it's really valuable to be able to make a change in one place and know that you're not affecting something in another.

When things are passed around by reference, it becomes very difficult to guarantee the scope of any change. Even when using immutable data structure libraries in a mutable by default language doesn't really give you many guarantees. As soon as somebody puts a mutable object into your immutable data structure all bets are off. So, you really want a language that defaults to immutability and has different semantics for working with mutable data.
Js_of_ocaml
The correct conversion of 1 metric ton into pounds is 2000 pounds, not 2204 pounds. It's amusing because Apple did it wrong.
I received my CS degree in 1984. I started my first consulting business 12 years later at 35, and founded a startup last year with a co-founder.

You will experience ageism, so plan on cutting your own path in either consulting, freelance development, or founding your own company. Build your network - that is where you will expand your opportunities.

Don't let anyone ever tell you that you can't have a productive software development career at any age.
My biggest complaint would be about incomplete documentation of GHC. Given that Haskell is a pure functional language, it should be possible to easily use any part of the compiler, and include it in your own project. However, the documentation is rather incomplete, difficult to understand, and always behind the current state of the code. That said, the scientific literature on Haskell is the complete opposite, and contains beautiful work.

Also, I'm wondering why there are so few fully compliant implementations of the internet RFCs. Such specs seem an excellent opportunity to showcase the power of functional languages, yet the implementations keep lacking.
Move it to 'Apply HN'. And you can practice with your own app.
Here's where to find the best remote technical project manager jobs
This is really kind of funny. Here's a gist with all the questions I ripped out of the source, in case you'd like to read them all at your own pace (instead of robo-Sam's pace)

https://gist.github.com/ejcx/45a66cabcaf2269d895f0c8bb1db49d...
https://en.wikipedia.org/wiki/Bullying
Bryan Cantrill's take: https://youtu.be/0T2XFSALOaU?t=2021

My answer would be lazy evaluation by default. It's extremely unusual, and I've never seen a convincing enough justification for it, and it gives rise to performance bugs (space leaks) that can be fiendishly difficult to track down and fix and are disastrous in production. With the arrival of Idris, I think we can pretty conclusively say this was a mistake and that the Miranda branch of the PL family tree is likely to prove to be an evolutionary dead-end.
Agreed. However, in a formal penetration testing engagement, the tester will usually only record and document their exact steps because they have to provide a detailed report to their client. This hacker didn't have that same obligation. I'm speculating that he is probably a habitual note taker. In this way, if he ever comes across similar challenges when attacking a new target, he has his notes to refer to.

I was curious to read this piece to see how closely the approach, techniques and tools he uses compare to how penetration testers are formally trained in the info sec industry. For what it's worth, the methodology in terms of reconnaissance, privilege escalation and lateral movement within the network are typical. Also, most of the tool set he uses (e.g. mimikatz, responder, meterpreter, powersploit, psexec) are part of any good penetration tester's arsenal.

I'm not trying to down play the achievement though. He is clearly very skilled and knowledgeable. Of particular note, it seems that the initial intrusion was only possible because 'after about two weeks of reverse engineering, I discovered a remote root exploit' in an embedded system. He doesn't provide technical details of the exploit but finding a 0-day in an embedded system is usually far from child's play.
QI did this as a question, asking who was the first person to "put two feet on the top of Mt Everest".
BEAM Successfully Installed to the International Space Station
I think this shows that the tooling is just as important, if not more important, when choosing a language. Good debugging tools are a must simply because things always go wrong, and if I don't have an IDE that can highlight the line for me and allow to mouse hover over variable values, then the whole experience becomes a lesson in frustration.

Additionally if you expect me to 'write, build, run, repeat' just to test my code, then you better hope you have a fast compiler else I'm going to start associating using your language with the same amount of interest as watching paint dry.
As a member of the Ultima Underworld team, I'm looking forward to seeing what Jimmy has to say about it. It's been really fun to watch him cover the stories behind the games of my youth.
I see non-constructivist math not much different from theology. That is assume something that cannot be experimentally observable or constructable and then apply logic.
Thank you - really appreciate your offer for help. We do want it to be available globally. However, right now we dont really have enough data and resources to serve users across the globe. I'll probably ask for your help when we do expand globally.
>> Haskell sucks because both the standard library and the ecosystem lack guiding ideas. The former often feels like it is an amalgamation of PHD theses that have been abandoned soon after being complete.

That's a bit on the nose. [1]

[1] As in "ouch".
Did 'dang edit his comment? Is there a material difference between "... whether you like a particular instance of it or not ..." and "... moderation is censorship you agree with, or approve of, or tolerate, or enable" ?
> People use natural language to build up contexts, with various details, which the brain then must infer structure from in order to 'execute' the idea being discussed.

Most of that simplicity comes from the years of built up information and context you have. You can just say "want to go to the movies?" And be understood because that person knows of your dropped "do you" in "do you want", that "to the" very likely means "via motorized transport in either an independent or shared manner" and that "the movies" refers to a physical theatre, with a to-be determined showing.

NLP is a huge field and even the big names in the industry (Google, for example) are far off from anything resembling basic communication, beyond preset responses/dialogue trees.

The fact of the matter is, you're probably not getting anything resembling intelligent human communication, til we have AI. Something that can think for itself and create true context.
The Untold History of Aretha Franklin's Irrevocable “Respect”
You can call/describe People whatever personally but people will judge you on a personal level about that too.

If you are writing a piece to be published then more appropriate terminology should be used, or you get judged on more professional level along with personal level.
What do we call people who behave far outside society's bounds when that society is impervious to reason?
Effective Python › the Book
I wish the HN software gave me a feature of choosing how to filter out noise.
Reduction of property taxes.
That's a relatively new thing.
No one came out of Chechnya to bomb Saddam's Iraq or Gaddafi's Libya even tho they were as anti-Muslim as you can get in those parts of the world and were brutal dictators who killed 100,000's of people predominantly Muslims.