skysight-inc/HackerNews huggingface dataset:
The problem is that I can't declare the variable and set it's value as part of the same operation. I'm forced to declare a variable with a nonsensical or incorrect value then correct it later as part of a logically distinct statement. This introduces a window into my code where some piece of memory is known to be wrong and puts the onus on me to not use it between its declaration and it's being set.

It's a small nitpick in the grand scheme of things, but it forces me to allow a class of user error (and, in some cases, concurrency issues) that other styles of programming make impossible.

And also it usually adds to the line count, which is annoying.
I'd go one further and say that the way other languages do it does a better job of letting you define interfaces for types you don't control. Sometimes the type you want to apply your interface/trait to doesn't have a function that does what you need, but could easily be assembled from other members of the type. And sometimes it does have a function that would work, except that the name is different.

There's an Uncle Bob talk I watched a while back where he suggests that oftentimes language designers will say just about anything to avoid admitting that the real reason a feature is absent or was implemented in a hacky way is for the convenience of the compiler's authors.
Short answer: yes, it is normal

Long answer: I have seen both sides, for most part of my school life I was an incredible procrastinator. It's incredible when I imagine that I passed school. ;) (In fact a friend of me was amazed by that.) And yes, with studies I struggled like you. Of course it wasn't possible anymore to do a minimal program. I don't really know how I survived studies but I obviously did. (Oh god, remembering the mornings where it took me 3-4 hours to get up, hitting snooze a bizillion times...)

At some point thought things changed. I was working a student job where I was programming and I was incredibly motivated, getting money for something fun. Actually it stopped being fun after some months but I was still much over average motivated for 1-2 years.

When finishing studies I started builing a startup with friends and I worked the first time a day super long, went to bed at 11 am in the morning when we shipped our web app the first time. The startup wasn't particularly successful so after half a year of quite some work we "ghosted" it.

But then I realized something really weird for the first time: it's possible to put in a tremendious amount of work into something and it might still not pay off. Worst off all, even my final study grade suffered slightly from this because my co-founders put a lot of pressure on me.

So afterwards I realized: never ever again am I working (insane) overhours for a prolonged time.

I strongly believe that there is something in us that protects us, less magical than it sounds, evolution. When we work too much we burned out.

In the years after I eventually co-founded another company and was really close to totally burning out. (Although I limited my overhours, the work-life balance was terrible
and when I worked it was ~90-95% "efficency"
- my whole private life was built around this startup.) I think this 2nd hard lesson totally showed me that it isn't worth it.

Nowadays I do my best to find a good balance in work. Of course it's a personal life choice. The more effort/work you put in, the higher the probability you gain but also the higher the probability that something bad happens.

So yes, obviously there are life hacks etc, go for them if you want to "solve your problem". Or maybe think for yourself and imagine what's best for you.
Generally speaking, yes, but it's nice to have the option. I've often encountered situations where writing tests is a good part of either developing a complex system, or debugging it when it goes wrong.

As a random example, say you're making a data-structure of some sort, and you need to write some internal mechanism to mutate it (balancing a binary tree, resizing a hash table, whatever). If that internal mechanism is somewhat complicated, or gets called many times in public call (or even recusively), it's nice to be able to write tests for it specifically, to make sure you got this critical piece of the puzzle right.

Writing a test for just the public interface would probably catch that SOMETHING is wrong, but not what part of the code. It's basically a version of sprinkling your code with assertions to make sure you've got your invariants covered.
I am not confusing anything. Wikipedia:

> A deodorant is a substance applied to the body to prevent body odor caused by the bacterial breakdown of perspiration in armpits, feet, and other areas of the body. A subgroup of deodorants, antiperspirants, affect odor as well as prevent sweating by affecting sweat glands.

(emphasis mine)
only if your git is published.. I assume this is what you mean -
that said:

separate integration repo containing encrypted keys + separate, manual managment/configuration of the decryption process is fine for most cases.

but yes, bare and in mainline and published, I will agree this is terrible.

see also:

http://docs.ansible.com/ansible/2.4/vault.html
> a TypeScript variable may in fact contain any value regardless of its declared type.

That's true in pretty much all languages. Even in Haskell you can use `unsafeCoerce`. In Rust you have 'unsafe' blocks. And any language which has a FFI you can implement the type-safety-violating functions in the foreign language (often C).
He got the Presidency, a massive spending increase for the military, corporate tax cuts, net neutrality abolished, as well as further espionage enhancements signed into law. It's going tremendously well.
The case that inventing superb meat replacements is the best way to help animals
> They have again made statements saying that this tool was only used against pirated copies of their software.

That's quite a claim. But it wouldn't matter if they did apologize. No apology would take away the malware or cause this publisher to have not used the secrecy of proprietary software (and the implicit trust all of their users had in the publisher) to not do what they did.

Too bad for the users who obtained copies (regardless of how) that this claim is utterly unverifiable and ultimately up to the dictates of an organization that already misrepresented its aim to its users -- I'll bet that people who got a copy thought they were getting a flight simulator, not a credentials copier. There's no reason to trust that they're not lying now. And what if FlightSimLabs (or some organization they trust to hold data) inadvertently leaked sensitive information? That's the trouble with trusting organizations to hold sensitive data; they can end up contributing to harm even if they don't intend to do so, or do so accidentally purely by way of making bad decisions about whether to hold the data in the first place and also by bad design of where and how to store the sensitive data.

Proprietary software hides malware (see https://www.gnu.org/proprietary/proprietary.html for lots of examples), users deserve software freedom (the freedom to run, inspect, modify, and share published software), and users deserve to control their own computers. And this DRM was indiscriminate (as most DRM is): it was installed on all users of the affected program, including on the copies distributed in the manner FlightSimLabs wanted.
The communities for languages like Elm are definitely smaller, but they're also "passion languages", if that makes sense. Nobody is learning elm because they've been or feel forced to (like you might with React, eg) or because they needed to maintain a legacy codebase at an old job or something. They're learning it because they're interested/like it, etc. So when it comes time to hire you have a small(er) pool of candidates than a react position might draw but the candidates are going to be people who've played around with Elm and enjoyed it and want to get a job writing Elm.

I'm kinda surprised more companies don't take the risk - its not like these are bad languages, either. There's still a huge chunk people (in terms of absolute number, not portion of total devs of course) out there playing around with languages like Elm or Haskell or a Lisp/Scheme, or OcaML, F#, etc. who'd be super excited to use those languages professionally.
The big secret of small improvements
The Magic of Hang Gliding
While this is a nice work, it's unlikely to be applicable for its target audience.

in the US at least, individual (universities, schools, departments, degrees) have pre-existing Officially Sanctioned Templates For Theses, and normally failure to comply with them means your document isn't going to be accepted until it's reformatted.

For example, one of my degrees was awarded in 2016, and the version history of the thesis template I used goes back to about 1988, complete with commented out lists of contributors and notes to future generations.
This kind of comment makes me not want to visit HN. You can make your point without being so off-putting.
Microsoft appears to be arguing that since the restore disks were missing, there is no way to restore windows and access the license that the computer already has.

Therefore, microsoft wants the recycler to buy a fresh copy of windows, with a new license at full price. And it's these lost sales which they appear to be complaining about.

Maybe the fact that these computers already had licenses got lot at the original trial.
Pawnee Eagle Corn Thought to Be Extinct Revived
Hello everyone.

This is a project by me (Maciej Fijalkowski) and Armin Rigo. We also wrote PyPy (http://pypy.org) and we got quite excited about the Virtual Reality technology. We think VR for architects is a great start for the technology as architecture is an inherently spatial discipline. We welcome any comments
No, like digging under Washington DC to build a fake transport tunnel, when you're really providing cover for putting new construction in place under the capitol that the US Govt doesn't want their enemies to know exists.

(I'm not saying that is occurring, just that that would be the more likely example)
Let’s say they add keywords. What happens then? How does that interact with the current rules, and with people’s ability to interpret code?
There's this habit I've been trying to inculcate since the past few months → Writing 10 ideas every day.

Whatever things I read about technology (most of them are research papers from Hardware Architecture / Emerging Tech section of ArXiv which I visit daily, The Morning Paper by Adrian Colyer, The Ryg Blog by Fabian Giesen et al) - I try to collate and correlate all these ideas and try to imagine something of my own.

Fun PS → James Altucher has promised we will get a seat in the Justice League Watch Tower for sure if we imbibe this habit of writing 10 ideas daily. Such is the power of this idea.
For me, its the other way around: I think I'm ok with my job history/pedigree, and when I check HN, it feels like I'm the dumbest person in my area. It seems like I'm not even trying.
> Speakers are something that NEED to be repaired.

I get the landfill argument, but I have not needed to have any of the speakers I have owned over the last 25 years repaired.
Spending time on HN has allowed me to keep in touch with the pulse of the tech industry and the cutting edge in software.

Honestly, many individual sessions of delving into HN end up feeling like a waste of time. However, there are enough indications of triggered thoughts derived from HN posts/comments in my day-to-day to suggest that it's quite valuable in the aggregate, over a sufficiently lengthy period of observation.

It's also quite useful at times to comment on posts (particularly technical ones). I find that helps me refine my own thoughts and become a more discerning developer and industry strategist through feedback.
One of the most sought after achievements in the Awesome-Life-App (Think now to download the app into your Goozonpple Cortex Storage®).
When you say ADTs, do you mean algebraic data types or abstract data types? My impression has been that TypeScript is quite good at algebraic data types (i.e. tagged unions). You need to use normal conditionals like if/switch or your own function instead of syntactic support for pattern matching, but IMO the static analysis makes it work out pretty well.
Not to the same extent, Elm:

* sum types and exhaustive pattern matching (incidentally, still not the default in GHC in 2018 because reasons[0])

* has only one escape hatch of "Debug.crash", which it strongly recommends not using and which it seems many Elm devs aren't even aware exists (in my avowedly shallow experience)

* and which you use as bottom by hand-rolling pattern matches

* at which point you might as well do it correctly

To the extent that you can require proper handling of everything, I would say that Elm is much stricter than Haskell or OCaml or Rust.

You can be very strict in them, but they don't enforce it to the extent Elm does. At least in my experience.

[0] https://ghc.haskell.org/trac/ghc/wiki/PatternMatchCheck
> I'm still rocking some 15 year old Kenwood speakers in the living room.

I swiped a record cabinet from the 1960s out of my grandma's basement when she moved into a retirement home. To my surprise, after replacing the needle it still works and sounds great! These are 50 year old speakers stored in terrible conditions, yet they still work.
It took Google five months to get KRACK patched on the Pixel 2, despite third party ROM authors doing it in two days. Suffice to say, many vendors miss deadlines for this stuff on occasion. There are probably a number of reasons for this, including difficulty of repair, the fact that third party software may depend on the broken functionality, etc.

Microsoft and Google both patch security updates every single month that fall well within the common 90 day disclosure window. And then every so often, they fail to.
AI 1.0: I helped people find porn.

AI 2.0: I helped people yell at each other more.

AI 3.0: I helped guide the rockets.
The title of this blog - "Bike Snob" - answers its own question.
She has a blog post on them: https://gretchenrubin.com/2013/01/four-personality-types-whi...
I think soyboys are the only men that are becoming more feminine.
+1 for the Yuba Supermarche. That cargo bike is super fun to ride. The steering takes a minute to get used to, it has a 4:3 ratio. For every degree you turn the handlebars, the front wheel turns 1.33 times more. It handles speeds up to 30mph suprisingly well.

I made a quick video when we got one in the shop last summer.

https://www.youtube.com/watch?v=_l_M6UrHY5k
When someone misinterprets a rather clear communication and claims to be offended by the result, I'm going to point that out. If that offends you, that's your problem.

Or, look at it as a life-hack: Don't waste your time protecting the feelings of a non-existant group of people.
I don't understand this meme I see from go folks that ternery is hard to understand. From my perspective it's much more straightforward than a bundle of ifs and variable definitions. With go I have to look at a jumble of lines and decompile it in my head back into the original intention (what's all this? Oh that's just a ternery). Practically every language had a ternery (even python!), and there's really no reason for Go to skip out on an obvious and useful abstraction.
Why shouldn't this reassure someone who is an expert in risks? Risk comes not only from the technical and scientific aspects of an operation but also the organizational processes, compliance, and actual execution. And for those, incentives and motivations matter a lot.

Knowing his wife and child were going to be in the building, you can bet he watched the workers like a hawk and triple-checked all the work and every calculation. Without his wife and child there, it's less certain whether he was equally thorough.

Risk is something like likelihood of failure multiplied by consequences of failure. If you increase the consequences some but decrease the likelihood more, you could have a net reduction in risk.
Should expose the data online leaving the companies being sued for millions
I think the analogy was between the car and the asteroid.
> FreeBSD (and OpenBSD) has a lot of problems right now, and rewriting CoC makes me think they put effort into completely wrong places.

You realize people and projects can work on multiple things at once right?

> Hey FreeBSD (and OpenBSD) developers have you patched spectre and meltdown already?

The FreeBSD and OpenBSD developers were notified 6 months late and you expect them to magically have a patch ready.

> Have you fixed your communication issues with security researchers who stopped notifying you of serious bugs?

FreeBSD did nothing wrong to security researchers so there isn't anything to fix.

> Oh I would hug you to cheer you up, but it's now allowed now.

You sound like a wonderful person, not! Seriously the COC is to keep toxic people like you away.
What's your point here exactly?

A lot of people HAVE to voice their dislike of articles criticizing Go instead of just not reading the article.

See what I added to the conversation there?
I'm going to quote from the TANF wikipedia page here:

"There is a maximum of 60 months of benefits within one's lifetime, but some states have instituted shorter periods."

Many Americans think you can collect welfare payments, which are about $300 per person, depending on the state, in perpetuity.

That's just not true.

I still wonder where this 'welfare' system is that people think exist.
> Yes. The author probably would be equally satisfied with any robust typed solution (flowtype, typescript).

Neither is even remotely as robust — let alone friendly — as Elm's type system.
The average commute is 15 miles and the average cycling speed is 9mph which gives you an average of 3 hours per day commuting via bicycle. Can't imagine why riding bikes isn't normal!
What I find most astonishing is the open admission that they are going to intentionally destroy thermal vents, which may be the origins of life on earth. The loss to science is incalculable, and the destruction of the life that lives around them is the equivalent of wiping out an entire ecosystem.
CompCert doesn't verify C, it compiles it. And like any compiler, it uses the type sizes defined by the ABI it targets.
From python to go and back again, by mozilla:

https://docs.google.com/presentation/d/1LO_WI3N-3p2Wp9PDWyv5...
Not to mention that the point in question boils down to argumentum ad populum fallacy. The same reasoning could have been applied to Java in its heyday.
My problem is worse: I can't motivate myself to play videogames anymore. "Oh no, more time spent with a computing device!".

I procrastinate a lot but I notice taking a break will give fresh insights. I make my breaks useful, like getting groceries or running. The worst thing you can do is procrastinate behind your computer.

For me going freelance was the motivator to become better. More pay, more influence on the product. I can take unpaid leave 1.5 - 2 months every winter and my customers are fine with it. Can't believe people put up with the miserable amount of holidays a lot of American countries give you if you have a day job.
> I thought all the benchmarks indicated that WASM is still slower than JS.

No, wasm is almost always faster than JS, and that has been the case for a while.

Maybe you're thinking about some very specific aspect of performance or benchmark? (For example, wasm->JS calls might be slower than JS->JS calls in some cases.)
Go's a great language for Google. Their use case needs very high througput but can tolerate GC pauses, their code is a giant single-repo monolith with thousands of contributors where pedantry prevents conflict, and they hire a bunch of people straight out of college who haven't figured out how not to be clever yet. "C, but with unremovable training wheels" is a really good tradeoff for their specific situation.

Why anyone who doesn't share Google's unique issues would want to use it, though, is beyond me.
I am too. I spend way too much of my time hacking around stupid GOPATH issues.
Two years old. Could have been titled "I reject the goals of golang" - many of the things he hates were actual design objectives of the language. Some are so minor it's silly. Bottom line is if you don't like it then don't code in it.
Except Intel's CPU bugs, and perhaps others that I don't know about.
Guy with very unusual bike riding through NYC wonders why he can't just be seen as "normal" and not get comments. No one would have looked twice if we riding a normal bike, but he is riding a VERY unusual (really neat, though) bike, so yeah, you're going to get comments. Most of them were positive, too, by the sounds of the article.
Who says they have to be human?
Depends what language you work is. Java for instance is very good at this and everything is always organized, whereas C has no notion of namespace or package.
TypeScript intentionally strikes a balance between strict soundness and developer productivity, and I've personally been pretty happy with that balance. There's more to language design than soundness, and I've been happy with TypeScript's willingness to get out of my way for little snippets of unsafe code, especially when interfacing with external libraries. Within my own code, I've never had the unsoundness actually cause problems.
Though this thing does not seem remotely repair friendly, the guide looks wrong. There's no need to cut through the mesh and their video (in the same guide) even shows it: https://youtu.be/ArH41WyUt28?t=62

edit: the fact they have to use an ultrasonic cutter next in the video is insane and makes no sense. Is it possible that iFixit is simply missing the correct way to open this?

edit2: Summary of the video concludes that "Even though there looks to be an easy way inside, we failed to decode it. Without a repair manual, your odds of success are slim". Hence the 1/10, which makes sense.
When did that go away? Just checked chat logs and I most recently introduced someone to that on Jan 19th.
The American Relief Expedition to Soviet Russia in the Famine of 1921 (2011)
They give a Surface a 0/10 in repairability. They give the HomePod a 1/10.

They had to to use a hacksaw and knives on the HomePod.

What?
> But when I joined Real Kinetic, I found out we were writing web client code in Elm. Elm? Really? The experimental language created for Haskell snobs who can’t handle stooping to the level of a regular blue-collar language like Javascript?

'bit of an odd thinking considering Evan's aversion to high-minded abstractions.
Irrelevant and maybe a bit small-minded, but the font of the article is too squished to be pleasantly readable.
JS (and JSON by extension) does not have multi-line strings, so line endings are already escaped. All you need to do is output ‘non-pretty’ json.
The average commute in cities with more cycling isn’t 3 hours. People just live closer to work.

The big problem the USA has is that its zoning laws and urban planning are completely screwed up, making it impossible in most places to build bike- and pedestrian-friendly neighborhoods. (Minimum lot sizes, low units per lot, low height limits, large setbacks, wide streets, massive numbers of car parking spaces required everywhere, few mixed-use areas, neighborhoods cut off by highways, lots of disconnected dead-end streets, very high urban speed limits, ...)
Really awesome to see how far this has come with the development since its original form! Nicely done!
For me the purpose of wasm would not be just performance, but to let me avoid javascript entirely.

Javascript is already very fast, but compiling to javascript feels awkward.
The question should be why a 15 mile commute is normal!