skysight-inc/HackerNews huggingface dataset:
Has anyone else seen the "tornado in a silo" startup? Maybe 10 years ago? I dimly recall a "Hexa-" prefix.

Alternative to incinerators; instead of combustion, break stuff down to bits using wind. Then just sort thru the resulting slurry, pulling out the good bits.

Edit: Aha. Windhexe circa 2002. https://en.wikipedia.org/wiki/Windhexe I always wondered if heated air vortexes could be used to preprocess electronics for material recycling.
This philosophy fits well with a new open source framework I've been working on that is focused purely on simplicity.

https://github.com/jaequery/jasis

The goal is to have a framework that's so easy to use that even non-programmers can understand it. I'd really love to hear your thoughts, especially anyone that is new to programming. @jaequery
I don't know the author's use-case specifically, but that could fall over in two ways:

1) if you've got models that are re-generated periodically based on new inputs/algorithm tweaks, then you can potentially end up with quite a few of these as you scale.

2) if you want to track the details that/debug the reason your production system made a given decision, you need to log not just your model but all of the parameters that went into that decision. If that type of decision happens many times a day, then you can end up with some pretty massive logs to go through.

In either case, storing that historical data in your transactional database can be a bit of a load, so it's ideal to keep it separate if you get any kind of volume. I've actually bumped into 2) at one job.
Yeah, tig really comes in handy at times.
The start of the code block is signified by the opening brace, which starts at the end of the method name in the first case, hence breaking symmetry.
Are challenge tasks like this a viable introduction to programming?
That paper was published on Arxiv in August 2017. Has it been published anywhere else since? In other words- has it passed muster (a.k.a. peer review)?
Jeez. I could never remember all that stuff.
Should You Delete Your Facebook Page?
Yes, back when CoffeeScript was in vogue the ? operator handled this case nicely:

cond? && otherValue
Receiving a 404 on the link.
I'm trying to imagine worst case scenarios here, and at least in an environment like JavaScript, I'm struggling to see how a beginner being overeager with early returns can possibly create anywhere near the same degree of mess as a someone overusing nested if/else statements.

Agreed on early returns being questionable for "two variations of the same concept" though, these days I generally use if/else for situations like that.
Types as compiler-enforced documentation
This is actually a very interesting article. And with the risk of attracting the wrath on internet haters, let me propose something that personally helped me a lot and which seems like a very narrow application of the principles described in the article: meeting romantic partners.

I tend to be more open in talking to strangers and that has opened up worlds of opportunities to me. But the biggest benefit has certainly been in meeting people that I would liked to date. And what I realized (or read somewhere) is that if you live in a large city, you literally run into a lot of people just in the course of your day. e.g. waiting in line at starbucks, taking the train, at concerts/shows etc. And all that is really required is for one party to initiate conversation.

Let me qualify this by saying that I do not condone pestering strangers; that is borderline harassment (especially for women). But when both parties are interested/responsive, it can lead to adventures that you wouldn't have ever expected ....
I'm sure the investigation will find egregious privacy violations, fine Facebook some minuscule amount relative to it's market cap and revenue, and then immediately waive the fine if "they promise not to do it again." And then seal the details of the inquiry from public scrutiny. That seems to be the way these things are typically handled by the US government.
What does that mean? He can't control the opinion of the board members but he can control the decisions of the board as whole?
>No, I do a git blame, and see all the relevant commit messages.

sounds great until there's a refactor (including moving code around), then all the "comments" get buried.
I find the better my types are, the less I need to explain. Canonical morphisms generally don't need comments.
Can't tell if a logical point or a pun...
Remember the delete Uber campaign, the Equifax breach, the WFC accounts, the Bank of America suits, the Intel chip vulnerability? The market doesn't.

The market has a short memory, and FB is not going anywhere. However, there may be some welcomed changes in data abuse.

With that said, I think the stock is a bargain today.
List of Public Disclosures of Classified Information
Of course we don't need it, but the fact that millions use it is the proof that people prefer it....for some reason or another. Added value of some kind.

Better to extract the value of Facebook and move forward by eliminating the negative, than revert to something many people find less convenient.
It sounds logical at first, but combined with the single-ownership rule, it's actually a clever way to protect the "mom&pop store" model. Which is good for the owners, but bad for the consumers - no economies of scale, no competition, no supermarkets... Like being back in the early 50s

That there should be a licensed pharmacist at all times in the store - fine. But why does the store have to belong to one? To take a stereotypically German example, we don't say that all garages have to be owned by mechanics :)
That still doesn't make sense as censorship of internet and the sovereignty/right of Chinese people to stay in and govern Tibet are wholly unrelated issues.

That's like implying that people who support Chinese control of Tibet must also be government shills, or pro-government, or communist party members.

Supporting the issue of China/Chinese in Tibet != supporting the government or all government policies.
Important notes from article:

This Friday we published the Unity engine and editor C# source code on GitHub, under a reference-only license.

We are not releasing Unity as open source. Not even a little bit. (Sorry.)

We also do not take pull requests against the C# reference source code.

That’s it! The reference source code repository is at https://github.com/Unity-Technologies/UnityCsReference, enjoy using it as reference for your Unity learning needs.
Backend intro for frontend devs: Part 1, Node.js
My adblocker looked at me funny when i tried to click on a link.
HN Welcome
Ceteris paribus, shorter code always is more readable. It's the only guideline I've found true regardless of programming language or environment. Shorter is better.
"I'm sorry for interrupting your day..."

No you're not. You wouldn't have interrupted me if you were sorry!
Yes, I love guard clauses!

I work in Python, and one thing I do if I end up needing to use the same guard clause in several functions is to turn it into a decorator. That way, if I need to update the logic, I can do it in one place and have it propagate everywhere and it makes the function's dependencies clear at first glance.

This was my introduction to aspect-oriented programming, which I've thoroughly fallen in love with.
Spotify’s Numbers Show Growth, and Maybe a Path to Profits
> Fewer LOC means more code on the screen, which means you can more easily grasp the functionality of some piece of code,

uh ? for me the less code on each line and the easier it is to read
I'd expect it depends on the source - a retailer like Amazon or a local supermarket could well send a daily offer that's interesting/useful. A more niche store might struggle to send something people want to receive even monthly.
I can imagine cryptocurrencies for myself. I was never highly involved, but can imagine investing say 100$ when prices were super low, or just mining on desktop for the fun of it. When thinking back about it, there were some potential signs, and losing 100$ even back then would be without issues.

Life now wouldn't be significantly different, but I would have much less financial pressure on myself. And that can be translated to a slight amount of happiness, compounded by years and years of not having to pay the mortgage.
To me, neither philosophy nor economics are very concrete, because a lot of important information in their domains is either flimsy or unknowable.

Programming is very much unlike that; machines strictly follow known abstract principles.
I use a Yubikey mostly for convenience (grabbing your phone to login everywhere gets annoying), but sadly, not a lot of sites actually support U2F.
Stripe should do that too. They could take over a few industries if they wanted to. Like email marketing.
How exactly is that irony?
068: Screaming in the Cloud, GDPR, Kubernetes PoCs, InfoSec, and More
Wow, ur 2 smart. Mind=blown!
guard also lets you unwrap your optionals and have them in scope for the rest of the function.
Great for you. I guess you never have to share your code with other people; especially those who aren't using emacs.
This blogpost's analysis is incomplete. It needs to discuss the core issue with WHY C programmers originally avoided multiple return statements. Its pretty simple:

void function(){
lock_mutex();
void* thingy = malloc();

if(...)
{
return; // Bug!! You forgot to unlock the mutex
// Bug!! You forgot to free(thingy);
}

// Imagine 100 lines of code here

free(thingy); // Hard to remember with 100 lines of code in the way
unlock_mutex();
}

When functions grow to hundreds of lines of code, you need to ensure that all cleanup functions are called. Modern programming languages have features to handle this case "automatically" (Python "with", C++ RAII, Java finally). Which is why its fine today.
If you didn't want a pointer you could have just used something like:

template<typename TFoo, typename TDestr>
struct FooWrapper {
TFoo foo;
const TDestr destroyFoo;

template<typename TInit>
FooWrapper(Tinit initializeFoo, TDestr destroyFoo) : destroyFoo(destroyFoo)
{
foo = initializeFoo();
if (!foo)
throw FooException(...);
}

~FooWrapper() { destroyFoo(&foo); }
}

Although really that should have been part of the "Foo" class itself, but if you need to deal with external code I suppose that might not be possible.
5 Business Loans to Consider When You Need Cash Fast
I find it hysterically funny that companies think that operating their own mysql, postgresql, redis or mongodb is "a difficult task". It is like a home owner deciding that knowing how to operate their own toilet is a difficult task that must be outsourced.

Oh and before someone says "we outsource fixing our toilets to plumbers" - in this case we are not event talking about replacing a flap, we are talking about being able to use a plunger.
Knifed with a Smile (Macchiarini and Karolinska Institute scandal)
But commit messages can easily get plowed under in some annoying "reformatted, I hate tabs/spaces" commit. I do like to see some "why" sprinkled in here and there that will survive those accidents. But I will nonetheless prefer blame output if it is still meaningful. Also, I enjoy a commit that removes redundant comments almost as much as one that removes redundant code.
You should focus on customer acquisition, nurture, retention, and upsell.

Email marketing is just one tool that's used in a specific way depending on your industry, product, and customer base.

Always focus on improving the product, but don't do this in a vacuum. You need to ask customers and potential customers and customers of competitors about their problems.
In Hungary, downloading is legal, uploading is not. This makes torrenting problematic, but they never go after torrent users. Also, there's a special "tax" on storage media (CD-R, DVD-R, USB sticks, HDD, etc.) which is supposedly used to compensate copyright holders via some obscure distribution mechanism (read: a big chunk is probably stolen somewhere down the line).
>I am arguing this is worse, since it expresses the logic in a more convoluted way.

Ok, I really wonder if in this special case the logic just looks _odd_ because of bracing styles. (bear with me)

This is very easy to understand, where as the parent example, not as much.

fun max(a, b)
{
if a > b
{
return a
}
return b
}
To my eye, the start of the code block is signified by the indentation, i.e.:

stuffstuffstuff....
stuffstuffstuff...

So I read C and Python (and Lisp) code the same way. A naked open brace looks jarring and ugly to me. It also increases the separation of other related parts of the code, i.e.

if (...) {
while(...) {
do(...) {

vs

if (...)
{
while(...) {
{
do(...) {

The latter seems unnecessarily wasteful to me.
Monitoring a data lake using AWS Lambdas
Curious, why would you run log through those? It already has flags to support getting birth the messages and the diffs.

Granted, familiarity and reflex are decent reasons.
Yeah probably
Hey, I'ma long time lurker here at hacker new. But, I've finally created something to share with everyone!

I've been a hobbyist game dev since I was 10, and I've watched the evolution of mobile games very closely. I realized that a major problem in today's mobile game market is that 70% of revenue comes from less than 1% of your player base. If you're big, this isn't a big deal, because you can just scale up your marketing, casting a wider net to capture the "whales", so to speak. But, for the rest of us, advertising really can be cost prohibitive, at small scales it can be really hard to see any return on investment.
I wanted to create a service that would be really valuable and useful to "whales", and by doing so, create a way to identify and market directly to the "whales". This service is DoubleGems.com.
Here is what it's all about:
"DoubleGems.com is a subscription service that rewards players for making in-app purchases. For every $10 players spend in game, DoubleGems rewards a $10 Google Play gift card to make future in-app purchases. Spend $10 get $20 worth of stuff."
DoubleGems.com should be win/win for everyone: The "whales" get more in-game stuff, and the devs get a great way to contact the "high-value" players.

Let me know what you think. As a game dev, would you market with us? As a player, would you sign up (it's free right now)?
> a Wellington court ruled the attorney general broke the law

When does the sentencing or punishment phase start?
It might be possible to do this, but certainly not easily.

gokrazy’s unit of application is a Go package, so you’d need to write a Go program which then executes the Lua VM. I don’t know what dependencies Lua has — if it cannot be compiled statically, I’d recommend against using Lua in this context.
>>> from __future__ import braces
SyntaxError: not a chance
> The thing the brace tells you is already told by the indentation

Which is true, and of course begs the question: why do you even need the braces?
Similarly, I put 8GB ram into my 2009 iMac (I like the 24-inch screen), but only needed a 256 GB SSD. I'm quite satisfied and glad the machine has lasted this long.
Yeah all those dumb kids who are dying of diseases in poverty should be more open minded.
The Evolutionary Argument Against Reality (2016)
Show HN: HookRSSTube – It's YouTube RSS Except Video Playback Is on HookTube
Like this one?

https://www.youtube.com/watch?v=L87D4_uc2Oc
I use KeePassXC [1] with Syncthing [2] to synchronize my passwords between machines.

[1] : https://keepassxc.org/

[2] : https://syncthing.net/
Early return is very common in Rust, either explicit or hidden within the try! macro (which recently became the ? operator, since it was used so often).
Actually out can have multiple indices, but they are eventually consistent:

https://docs.aws.amazon.com/amazondynamodb/latest/developerg...
> Does a user privacy contract hold any weight when a company is about to dissolve?

It would hold about the same weight as it does now: Effectively ignored.
They bloom later there because of the weather, but they still bloom.
We really need some safeguards against the richness of C++
> Corporate culture is the direct result of the business model of the company.

That's clearly incorrect. Both Walmart and Costco are in the same retail business, but their corporate cultures are quite distinct.
They violated the law, and assisted others in violating the law, openly, and defiantly.

When he was raided it was of no surprise to anyone who was paying attention, himself included. People like to paint this up as "this guy was just running his business in full compliance with the law and Big Government came in with their jackbooted thugs and took away his business" but the reality is a lot more complicated than that.

He was openly snubbing the Feds and MPAA, he was deliberately allowing and not even making face attempts to dissuede his users from uploading copyrighted material to share, and was quite aware and complicit of the whole thing, and wasn't one damn bit interested in stopping it because it was making him rich.

I'm just saying, if you want a martyr for people who got screwed by our Government because of overstepping authority, Dotcom is far, far, FAR from the best example of that. Dotcom is more a poster child for the old axiom, "play stupid games, win stupid prizes."
A Brave New Worldis pretty good, as an end state, but here's the question: Who are you going to tell, "We're going to engineer your children to be content, healthy slaves without the ability to perceive their own chains?" Do you tell them beforehand? Might as well pick someone you don't like, right?

STEMmies are also big supporters of the flavor of the month club. Every vein of inquiry gets hopped on as The Truth until it plays out and something new comes along.

Scientists and engineers are as political as anyone else and more than happy to put their own goals above anything else. Really, the problem of technocracy is that it is the same as any other semi-totalitarianism, except that it is coated in a veneer of "reason" that you cannot argue with.
The Coming Social Curation Wave
Seems late. The so-called "indicator tree" is in full bloom. I am told that this usually means the rest will reach peak in about 7=10 days.
Ask HN: Any great marketer(s) you would recommend?
Hello fellow Hackers,

I am thinking about hiring a marketing pro for an upcoming release of a brand new product. This is a v1 release of a DAW audio plugin, which my company is developing.

Do great freelance marketers even exist?

Anyone you would like to recommend?

Thanks for all recommendations and comments in advance.

Cheers,
Nikolay Tsenkov
(https://universless.com)
A head start?!?

Where in the world do you live and what figure of savings would you need to be able to retire?
Hobby Lobby is a private company, and this was critical to the ruling. The fiduciary duty myth is about public companies, so Hobby Lobby does not work as a counter-example.
I agree. It is just a page with text, why add tons of Javascript just to render it?

Well, it is made by Google, so no wonder they cannot just serve plain HTML page.
I have a similar take on this, but expand it a bit by arguing that any line of code added – no matter how innocuous – is a liability. It's a line of code that has to be maintained, with all of the responsibilities that come with that. It may be a line that's responsible for adding more value than it costs, but it's still a liability. It won't add value forever, most likely, and when it stops it'll just be debt. It may be cheap debt, but debt nonetheless.

Deleted code on the other hand, is never a liability. The act of deleting it may be, but due diligence should ensure it is not.
Tech Friends: Let's Get Rid of Workplace Bullies
Meet Tess, Seeker of Alien Worlds
Was with you up to that last sentence. On what do you base your valuation exactly?
The Posix Thread Trace Toolkit
If by trading, you mean high-frequency, then don't. I encourage you to instead study investing. But if you must learn trading (don't), then Ernie Chan and Michael Halls-Moore's book (s) might be a good place to start.
Yeah.... Mailchimp isn't the best play for e-commerce email marketing for sure. There are better alternatives but I would argue there's a ton of room for improvements as an e-commerce developer...
Hash Functions Explained with Emojis
Because some products' value is not understood until after acquisition. Investigative reporting is in that category.
Email marketing is a rabbit hole, I remember this one particular instance where using a discount to re-engage abandoned carts would trigger a purchase, marking the campaign as a success..only to find out the customers had learned that they could get away with it and abuse this system to get discounts every time. Now that's great, they re buying..but we were in practice losing money on every transaction. That's when we started building better software to block this from happening. Analyzing customer behavior, understanding if a promo was really needed, or if the customers were just waiting for the bait.
Email marketing is hard man, you could always do something more..and drag so many other resources into it!
Copy of the article, which doesn't require JS:

https://gist.github.com/jwilk/6e7ecb94b623a82d01cdcd9765f05b...
Disclaimer: I posted a draft of this last week. Got some feedback and had since updated the article. I've also moved the article to Medium for a bit more eyes. Not personally trying to gain anything, just wanted to raise some awareness about the issue. Thanks.
Telegram bot to register and manage your appliances
Not ironic in the classic sense but it is a humorous coincidence, and it says a lot about Facebook's ubiquity.
> That's why they must be regulated.

I don't agree with GP's assessment that users "haven't realized" but I do agree that the "majority however won't care". So why regulate if a majority of people are ok with it? They're not too stupid, they just don't prioritize the way some here do. Doesn't have to be a law to force them to prioritize this way. This false equivalence to expertise of airplane mechanics is completely different in a security context and these kinds of analogies only help to make others want to dismiss the point quicker. You want to regulate transparency, ok. But if some accept these things, let them.
I would prefer this kind of notion with the categories:

https://github.com/kummahiih/python-domain-equations

but seems like, I am the only one who likes simplicity
Yet, they also lack the deep institutionalized racial slavery connection. Despite what people think slavery is actually more expensive than providing subsistence level pay. Due to the constant immigration influx and institutions like indentured servitude slavery was never important to New York's economy and by avoiding the slavery trap they actually had much stronger economic growth.

NYC did see slavery from 1655 (fist auction) to 1827 but issued a gradual emancipation act in 1799. Hardly hundreds of years of institutionalized slavery. Even before that there was various waves of freed slaves associated with the Revolutionary war. When black men made up one-quarter of the rebel militia in White Plains and where then freed after the war etc.
Yeah. It's just a single API call and few lines of javascript. I took more time to create screenshots and add descriptions on the chrome store than to code it. Even I find it useful personally and that's why I built it. But it doesn't seem to have piqued HN users' interest or maybe just didn't get enough visibility.
BrewDog joins forces with Draft House
A documentary was made about him last year:
http://www.imdb.com/title/tt3640710/
Well, if you were following along, they mention that the market has not remembered those transgressions, which heavily implies the stock price before this incident will be reached again. The stock will hit a local minima, and then bounce back (the symptom of the market "forgetting").
Wow, you captured so many things I saw in my own education. let me add one:

Same way you learn to let some code fail instead of handling every exception.