jkeisling/hacker-news-corpus-2007-2022 huggingface dataset:
Until recently I was firmly in the "statements are evil" camp. Now my perspective is a bit more nuanced. There are two facets to "everything is an expression":

1. Any grammatical production can be used in an expression.

2. Function/method bodies implicitly return the result of the last expression they contain.

I really like #1, though even expression-oriented languages limit this. There's still something akin to "operator precedence" at the "statement-list" expression level. If, for example, you look at Ruby's grammar, you'll see it has productions called "statements".

This is to rule out totally bizarre things like:

1 + while (foo) { ... }

for (for (for (...) {}) {})

So, even if you treat everything as an expression, there are still some limitations as to where different grammatical productions can appear.

In practice, I think the main thing you gain (in a language with an imperative-style syntax like Wren, Ruby, etc.) is the ability to have the right side of a return or assignment be a branching statement. Stuff like:

var fizzBuzz = if (n % 15) {
"FizzBuzz"
} else if (n % 5) {
"Buzz"
} else if (n % 3) {
"Fizz"
} else n

The other statements are less useful. I'm not even sure what the result of a looping expression should be, but I'm certain that I don't like CoffeeScript's answer (an array of all of the elements, which often gets discarded!). Break and return statements have no useful results. Variable declaration statements make it really hard to reason about scope when used in the middle of an expression.

All this means that I think loosening up the grammar to make every statement an expression is mostly only useful to make branching an expression.

The other half is having functions implicitly return the result of the last expression. I really like that in some functions for brevity, and really dislike it in others. This may not be rational, but creeps me out that lots of Ruby methods just leak random values.

For me, I'd rather have an explicit form for bodies that implicity return their result and have the default be to not do that. So that's what I did for Wren. A single-line body implicitly returns its result, but a multi-line one does not:

class Person {
name { "Fred" } // Implicit return.

sayHi {
IO.write("Hi, I'm Fred!")
// Returns null.
}
}

I like this more than always having an implicit return, so this addresses point #2 above. I'm not opposed to allowing branch statements to be expressions, but I worry that the confusion it causes may outweight the benefit, so I conservatively left it out for now.

Having a statement/expression distinction also makes the bytecode compilation a bit simpler. It's easier to tell which things emit values and which don't, but that's not hard to fix.
Was hoping to work on this next week, as we do a bunch of Android work as well and it would be useful for us! I'll link in this repo when I get that up.
I haven't looked to hard at the docs yet, but this seems kind of awesome. Is it something that you have to build your own kernel for, or is it configurable in a prebuilt kernel?
This is no longer true. The Gen 3 (latest) helmet lets you walk around just fine.

For instance, my favorite demo is in some kind of nuclear sub control room. You can walk around, up to panels, even kneel down and look up under a shelf.
Citation needed for this. The New York metro area has more than 2x the population of the Bay Area and an extremely diverse economic base. That makes claims about availability of choice being limited in NYC in comparison to SF pretty hard to believe.
It's one of the only careers where you can make a good wage without selling your soul these days.
> The point is that "Japan University" is a mistranslation. The official English name of 日本大学 is Nihon University.

Its an accurate translation; though the existence of an official English name would generally eliminate the need for any translation, as using the existing official English name of the institution would generally be considered more proper than translating at all.
You can see Derren Brown using several of these techniques here, for real-world gain: https://www.youtube.com/watch?v=QOdYgEDSm7E
I do that too, but I still notice patterns. Then the mechanic for constructing of 'anti-patterns' for a choice mechanic is patterned itself.

I just do my stuff for thinking new thoughts. I did a zen thing where I deconstructed every concept and word, and essentially "broke" it in my mind - gave it no power in it's meaning, and thus could not use it in reasoning. I did this over and over and over.

The important part is that I didn't need a reason to destroy the meaning - because I've always lived maintaining my theories until they are proven incorrect, while accumulating information to build on them. But some stuff doesn't prove itself incorrect, because it's a self perpetuating pattern.

That's where I became paranoid about viral ideas, things that are true simply by the virtue of their construction. The construction is considered correct, therefore application of the construction can never be questioned. And I don't know if that really means anything about human existence, but I know it pisses me off when I feel like I've been spoon-fed a way to think.

Mine is useful for sitting alone in my room, staring at a wall of books. I don't really have a lunch problem. I eat lunch at my desk.
Well, I haven't varied the routine much at all since I was 14 and it still feels intensive. It is an exhausting 3-4 minutes. I don't put on extra muscle, I maintain what I have. So I look much stronger than I am.
Same in German: "sich erinnern"
Our colo will unbox and rack new servers that we have shipped to them. They will also configure remote access (usually DRAC) for us. It just costs a one time fee to do it.
Relative to the .NET stack, Python's toolchain has always been no-cost for anyone to use, and the language is so fun that there are many people who enjoy just coding in it for free.

I can almost see these guys' angle, of why they might see this as a possible threat that could undermine their career. .NET coding pays well, and is usually semi-exclusive to those who previously had an employer pay for them to use the tools, even though that's not theoretically necessary.
I used it to transcribe two years worth of handwritten journals I kept from 2012-2014. Got it done for less than 4c per page, including annotating pages that had a doodle, noting the date of a given piece of writing, etc.

I'm using it to basically data-mine myself.
I'm not sure I understand the value of this, does this not mean that a female developer's work may be undervalued if it does not reference another female developer ?

Edit: Actually I guess it makes sense as the higher the chance of you having women call other women's functions then the more likely your workplace is going to be gender balanced.
> While it is arguably “better than nothing”, it would truly be better if the prisons were not allowed to exercise this level of cruel and arbitrary control over prisoners’ educational prospects.

Sure, and this is basically the same reason that people get upset about sweatshop labor: if companies weren't so relentless in profit-seeking, they could afford to give workers a better choice than the one between subsistence farming and sweatshop labor. But libertarians tend shrug their shoulders and say "well that won't happen, so you should be happy that people at least don't have to work on farms anymore."

Likewise, prisons are moving from giving prisoners a choice among zero tablet offerings to a choice of one tablet offering. So according to the above reasoning, libertarians should be happy to see a small improvement; this article should be saying "this is a good step, but we've got a ways to go." But that's definitely not the impression I'm getting from the article. From this I can only conclude that libertarians are willing to tell others to be happy for small incremental improvements over a bad situation in a system they like (Capitalism), but aren't willing to do the same when it comes to a system they dislike (Prisons).
It is seen by many as 'theft'. I worked for this, it is mine, and now it is being 'taken' and given to those that provided less obvious value. Its easy to see the issue many have. The argument is really around what denotes 'value' to the arguer. The devide is that some see value as easily tallied by value of work (capitolism), some feel that each human is equally 'valuable' reguardless of economic input. The problem is that both sides are correct in some sense.
It seems people can do just that now on the new iOS. The app is free to switch off / charge for features if the user is not allowing tracking. Don't know how this works together with GDPR though.
I would guess that has more to do with speaking in private rather than anything else. If one knows that the black guy or the fat guy or someone who loves them won't hear them, they'll refer to them however they would like. Same goes for anyone who speaks a minority language; I've had a few very good eastern European and Asian friends who told me later how I was being referred to by somebody who seemed entirely civil in English.
Markus Kuhn has been making this point since 1995.

* https://www.cl.cam.ac.uk/~mgk25/iso-time.html
There actually is, Hashicorp Nomad fits solidly in between those two options.

Nomad is way simpler to get a cluster up and running, has a great configuration syntax (I'll take HCL over YAML anyday) and had first class Terraform/Consul/Vault integrations.

Onboarding devs is fairly straightforward, if they can write a docker-compose.yml, it's an easy transition to a nomad job specification.

It took me by myself ~4 months to get our current hashistack(Vault/Consul/Nomad) stood up using Terraform+ansible. Two members of my team have been working to replace the hashistack with a self hosted K8's deployment and they just went over the 1 year mark and we still do not have something capable of hosting the workload currently running on the Hashistack.

This got a little long winded but I feel like this "it's docker compose or K8's, take your pick" mentality had led to a bunch of needless time being spent by smaller teams/companies on solutions that just aren't right for them.
And I preemptively agreed with you:

> cruft to strip out

> rewriting certain parts of their code to have explicit privilege separation

I was unaware that this was the goal. If it is, that's a better explanation for changing things than I've heard elsewhere.

Still doesn't explain why it should be a daemon instead of a helper binary.
HN has one of those?
The WHO's January 20th memo on PCR threshold which advised labs to verify cycles are at a level which doesn't generate a high false positive rate?

“[a]fter thorough investigation, WHO confirmed that the tests were not always being used appropriately and in accordance with the instructions provided by the manufacturer.”

“In particular, users in laboratories encountered problems with these tests when they did not apply the recommended positivity threshold — this can result in either false negative results (if the threshold applied is lower) or false positives (if threshold is higher),” the WHO said.
Not really an answer to your question but this resource might help https://www.reforge.com/blog/crossing-the-canyon-product-man... - reforge courses are great (especially for networking in the US) so that might be an option for a credential.

I think you would be "upsold" to engineering because its where they believe they'll get the most value out of you.
One of these days the pharmaceutical industry will create a blockbuster pill that's methadone for information withdrawal.
Sounds like you are looking for namecoin?
As I understand it, that was to prevent bad behavior rather than to signal approval.
Well that explains the crazy slow performance on an old windows forms app I had written back when I was a junior developer. I'll try to see if I can reach anyone from my first employer and make them disable the debug output. Would be an interesting contribution, considering that I left more than 10 years ago :)
We did, but it makes more sense when you have "channels." Once the channels are gone, aside from sports, it's not so clear because there aren't necessarily sane content bundles, and no one wants to pay $3 for an episode of 30 Rock (or $1 for Two and a Half Men). It's interesting to compare it to music streaming because music has more replay value, so selling tracks could work there, but it's a huge barrier for discovery. It'd be an even bigger barrier for 20-60 minutes of TV.
I think bringing healthcare insurance providers into an argument about whether there's a cartel of pharmaceutical companies artificially keeping up prices it's really not a good idea. It's possibly different in Europe but I think if you have any experience of the US system it's clear that there's some form of rorting and artificially inflated prices where the health insurance providers are in cahoots with all the providers and are somehow gouging the prices there. if you pay cash right now maybe cost you 300 if you put in your insurance the same thing maybe cost 3000 and then there's even a second order incentive effect where "health care professionals" want to give you these extra treatments if it's going through insurance.
The leadership was that the science community would benefit from a science-specific tool, like Conda, and that making one ring to rule them all would be too difficult.

Also, yes, Guido and many other early contributers have been been active for 30ish years.
Depends on the available evidence and intent. Life is random and mistakes happen, in any job.

Some just have much more significant outcomes.
You're really jumping the shark with your arguments.

I'm only pointing out that the c64 had networking capabilities -- because he said it didn't.

You're being exceedingly defensive and argumentative in this thread.
Realm (http://realm.io) is hiring Android & iOS Engineers, in SF or REMOTE.

We are a YCombinator company (S11) building a mobile database: a replacement for SQLite & Core Data. Learn more at http://realm.io/jobs or email tim@realm.io if you have any questions!
On an offbeat note, this reminds me of the only time I've ever been thoroughly patted down at an airport. It was in Shreveport and during a weekday, with very little foot traffic. I was with a friend who looks like the classical all-American girl and me, well, I'm a minority but a "Golden Minority" (being facetious about that term, not serious...). Anyway, the TSA people were very nice about pulling us aside and patting us down and nominally going through our stuff. I thought it was weird but then I looked behind us and saw a woman and child, both dressed in hijab, who subsequently also received the full pat-and-search routine.
> There is no way a person at Manning's level could be expected to cherry pick effectively. How can he decide what is in the public interest, know what evidence is enough, know what evidence is dangerous, and so on.

This is exactly what whistleblowing is about. You understand and have evidence that a specific crime is being committed, and you release info about that specific crime.

If you don't have a grasp of what is going on, then the proper response isn't "hey I'm not sure what I'm doing or looking at, so let me publish everything I can get my mits on because I think there is something fishy."
This is disgusting to read, can't imagine going through that.
Got it - I missed the bit about it dropping since the previous high.
Did you mean appalling?
My point is it's much easier to lack care when using strings. If for example SQL where only exposed as an AST object model to the client language injection would be much harder to accidentally allow. Also you could have another layer of your app actually examine the AST for security issues (no DML statements allowed) or certain tables restricted etc.

We actually use a component in our app the builds an AST from SQL which can then be verified, this is not trivial. Also LINQ builds an AST which is then transformed to SQL statements in LINQ to SQL, this AST can also be examined before executed and prevents injection.
It's sickening to hear that you had to go through such experiences. Funny that the 'default' scanner technology didn't set off any alarms. Many of these policies just seem to provide the sense that we're safer, rather than actually do anything to remove real dangers.
email it to them?

call me oldschool, I know...
> Of course, maybe bringing an unlocked laptop with details of your drug empire to a cafe wasn’t the best opsec out there.

Consistently running your drug empire from your home isn't good enough opsec either when you have a nation state targetting you.
According to who? If we assume normal supply/demand rules apply (because why wouldn't they?), the countries which ban bitcoin will have to buy bitcoin for a larger sum, to take into account that the trading is now illegal. Because the demand won't disappear just because you make it illegal, we've already seen how this works in practice with illicit drugs.
I'm looking forward to the day when WebAssembly modules have DOM access and we can import them via script tags
It might just be me, but even if Google and Facebook were happy to advertise their masks I'd assume they were fake/bad quality if they were being advertised on those platforms - in the same way that Amazon clearly are selling rubbish. Not sure what the solution to that is though.
Old is not always bad. PKCS#11 is a standard. In fact it's the reason why that method also works on Windows, something the author hasn't looked into yet.

But yes, maybe yubikey-agent is nicer to use. I've not tried it myself.

But in any case it's not true that you need it.
Not surprisingly, I guess, I don't think is was a misstep; one of the reasons I love the Mophie cases is because they add a normal, standard port to the iPhone.
I agree, but that's not this post, is it? You think it's a good story, so, how about saying why? It'll likely be the only productive debate on the thread.
One other thing that Shopify did well was extract a lot of code into open source projects. Liquid, DelayedJob and ActiveMerchant are all thanks to their hard work.

So rather than just make money for themseves (which they did do), they "moved the ball forward".
My mother suffers from severe (but now under treatment) sleep apnea and believe me when I tell you that if left untreated it could cause you far larger problems than wanting to feel fresher when you wake up.

Please, please, please see your doctor about the cause of your sleep apnea before treating its obvious symptoms with a device like the WakeMate.
The article's site is being pretty slow, but it's been cached at http://kyleclouse.com.nyud.net/mormons-lds-church-seo/.
SEO is a lot like weight loss...people always look for the shortcut, when there is a surefire way to do it. People think they can lose weight with a magic pill, craze diet, or amazing exercise machine, when the surefire way is to eat less and exercise more.

With SEO, there's no magical formula for structuring your page or writing meta tags...the best way to rank highly is to have lots of unique, useful content and have people link to you. Any site with thousands of pages of unique content and lots of links ranks highly for the terms on those pages.

Google "digital camera reviews" and you'll see a site I worked on, Steve's Digicams, comes up 4th because there are 20,000 pages of digital camera reviews spanning 12 years that hundreds of people have linked to because the information is useful.

This is not to say that you can't game the system a little. One way is with niche content. The less competition there is for a keyword, the easier it is to move to the top of the rankings with fewer links. Look at http://www.wisegeek.com/ as an example. They find terms that have high search traffic, but few results. Then they pay writers to create content targeting those terms. They still have unique content, but they require fewer links in to vote them to the top of the results.
Here is my issue with Things Sync:

Ever since they released their iPhone app customers have been asking them for sync. This being a productivity app sync is very important. Things for the longest time has had WiFi sync. It is a pain for two reasons:

1. I have to remember to sync my devices every time I make changes. This is not rest of my productivity apps work. My calendars sync automagically, my email inbox sync automagically, my filesystem syncs automagically, BUT my _productivity_ app does not!

2. Wireless syncing doesn't always work because in some environments they block the underlying protocol. Then I have to setup an AdHoc network etc. etc.

Failure on CC's part, IMO, is the lack of understanding, perhaps, of how important sync is to their customers. A good approach would have been to incrementally introduce support for sync, using Dropbox or MobileMe or what not. Instead what it looks like happening is they are building a whole new infrastructure that we will have to use to sync Things. My problem is that I already pay for two good sync solutions that work well. I don't see the point in paying for another one just for syncing.
A high-level language can turn a simple statement into arbitrarily-complicated run-time code, pretty much by definition.

There are some high level languages where there is a pretty straightforward one-to-one correspondence of statement to bytecode(s).

There isn't much syntax cross-talk to be had there.

Explain the existence of Forth.
oddly the guy next to me is fine, but i can't get online.
A perfect example of this is setting up iteration in Python vs. C++.

In Python:
for obj in seq: ...

In C++:
std::base_class<template_type>::iterator obj;
for (obj=seq.begin(); obj != seq.end(); seq++) {...}

The reduction in lines for Python doesn't make it more complicated, it makes it cleaner and easier to express ideas.
First off, great post. But I think we improve it by simplifying. The word "ship" implies a certain type of formal software work, which I think is an unnecessary constraint on the concept.

Output is the key. If you are creating something, you're doing it right. If you "dabble" from here to there and never make anything...you're doing it wrong.

Output. Creation. Fruit. Those are the distinctions that matter.
Not to turn this into too much of a lovefest but it's been an honor to post on Seb's site. It's amazing how much you can learn from a guy just by reading the things he posts online. Glad my post made the cut quality-wise.

Win-win collaboration for sure. And yes, he is definitely a helpful positive guy - so reach out!
Really appreciate this article, as someone who has struggled with depression extensively and (more or less) come out the better for it. People who are experiencing the worst depression can mete out feel empty, desperate and alone in a way that is almost indescribable to anyone who has not felt that way. It's important for them to know that people care, are happy to speak with them, and that those who have had similar experiences have, eventually, found a happier and better existence.
Languages like SML and OCaml also use this sort of type inference, but you tend to not need type annotations in those languages except in very special cases. I think this is also fairly true of Haskell -- type inference works in 99% of the cases, and explicit type annotations are just a stylistic thing.
1) i'd say it is possible but the likelihood is questionable.

2) There's a timing factor. Lamo's description of what the chat logs contain has seemingly changed. Which description matches the chat logs held by Wired? How about those held by other news agencies?
s/--/&mdash;/g
> When computers are creative, when they start doing things that haven't been done before, without the direct programming of any human, then a computer can truly be said to be "in control."

I'm still dreaming about the day when a computer would be ironic. Or about when a computer-scientist would write a book similar to Freud's "Jokes and Their Relation to The Unconscious" (http://en.wikipedia.org/wiki/Jokes_and_their_Relation_to_the...)