skysight-inc/HackerNews huggingface dataset:
In this case, I think they meant algebraic data type, since they mention it next to "pattern matching".

An algebraic data type is generally made up of two things: 1) structs or tuples, which are useful but in most (but not all languages); C/C++ has them for example; and 2) tagged or disjoint unions, which are different from C unions in that you can tell which one of the union choices is being used (A variant is a particular tagged union).

Tagged unions are super-useful for pattern matching, so you get code like:

match rv {
Ok(_) => {
None
}
Err(CacheError::KeyNotFound) => {
Some(Resp::NotFound)
}
Err(ref err) => Some(from_cache_err(err))
}

which has a nice syntax, is type-safe and can be compiled reasonably efficiently.

The algebraic part means that these two features can be used in any combination with each other, and also refers to the link that, roughly 0 is the empty type, 1 is the unit type, structs correspond to multiplies (and gets called the product type), and unions to plus (so is called a sum type).

Why? Because if I have a tuple of a union of A or B or C, and another union of X or Y, I have 6 possible values in total, and (1+1+1) x (1+1) = 6.
I like C++ a lot (minus the C parts) and was once upon a time a C++ hipster (if that would be a thing in mid-90's).

However I enjoy even more memory safe system programming languages.

What I love in Rust, besides its ML influence, is making younger generations aware that systems programming languages don't have necessarily to mean unsafe by default or the primitive toolchains from C and C++.
If syntax is still verbose (it's ok for me) at least it is clear. There is no ambiguity unlike c++.
Motivating the monkey
The Problem with Startup Methodologies and Silver Bullets
In my experience--not that I'm a prolific JavaScript developer or anything--people tend to write out $(document).ready anyway because it makes their intent clearer. Personally, I have to do a little mental work every time I trip over the shortcut and prefer seeing $(document).ready.
A good one can detect that only a range of allocation is alive and release unused part of someLargeString.

Can you give an example of a (somewhat widely-used) library/runtime that does this?

I think this is harder than it initially seems. How does the GC know that if you have some type with a backing array and two pointers (or indices) that I don't want to move one of the pointers to some other valid position later?

I am not arguing that it is not possible, but this seems difficult in the general case, unless you can explicitly provide hints to the garbage collector.
Even more impressive that it's based out of Edinburgh (and Glasgow) in the UK, rather than London. There's even fewer tech unicorns in Scotland.
Awesome. It's much easier to make Android (with it's massive app ecosystem) a desktop OS than it is than to build an app ecosystem for traditional Linux desktops.

Interestingly enough it doesn't look like there's an installer - they want you to run it from USB for now.
I'm working with Rust 2 months. In my opinion, pluses:

+ Compiler with very helpful error messages;

+ Cargo is the best package manager in the universe;

+ Result<> is the most correct way to return results from function, I dreamed about it;

+ Community of smart and friendly people.

Minuses:

- Functions are not first class citizens - you can't return function as result;

- Violation of "explicit over implicit" rule in methods declarations: argument self/&self is implicitly omitted in call, but exist in signature. Because of this, for example, you can't use method of class as request handler in Iron, you need closure wrapper with same order and count of arguments. Pure ugliness;

- Often you need just add lifetime definition to satisfy compiler, without doing anything with this lifetime anywhere else in code;

- Extremely verbose syntax;

- Rust has exceptions (panic), and you can't catch them. And with promised panic::recover you'll have limitations of supported structures;

- Errors handling encourages copy-pasting;

- Syntax is not intuitive, especially when traits and lifetimes comes into declaration - in such cases you can look at own code and think "I hope at least compiler can read it";

- Nested structures is pain;

- Lack of optional and named arguments, lack of predefined values in structures;

- Too few modules for web. Just 1 module for MySQL (thanks to it's author - actively maintained);

- Usage of safe code can lead to out-of-bounds errors, with thread panic (hello to vec macros).

And I still think it's best language we have:) Biggest advantage - most of errors can be found on compilation step. But price is all of these minuses.
Regarding the surge.sh January 7th downtime
Besides what evanpw already answered.

Abstract Data Type were introduced by languages like CLU, Mesa and Modula-2 among others.

It means having modules that only export the type names, but not their definition, while exposing functions/procedures to operate in such types.

It is not the same as the ADTs in functional languages, although they are quite similar.
That's pretty much what they did, but Swartz didn't stop before they called the police.

http://volokh.com/2013/01/14/aaron-swartz-charges/ is a good read btw.
Bowie: I don't think we've even seen the tip of the iceberg. I think the potential of what the Internet is going to do to society—both good and bad—is unimaginable. I think we're on the cusp of something exhilarating and terrifying.

Interviewer: It's just a tool, though, isn't it?

Bowie: No, it's not... no, it's an alien life form [laughs]. It's just arrived from Mars.

1998?
Future JavaScript #1 – Arrow Functions
It doesn't. C++ is too complex. Rust interoperate with c only.
It largely depends from whom you learn. Most people google and run with the first thing google throws up and perl has many, MANY (due to its age) really shitty learning resources. Even the most popular one, the book Learning Perl, has as of its 6th edition (2013), grave flaws and miseducates newbies severely.

Some comment from the position of someone familiar with Modern Perl, which is largely what's practiced on CPAN:

> shift() shifts @_ by default

This is discouraged, precisely because it messes with @_. It has valid uses, but people tend to make sure it's clear from the code why it's used. (Mainly in OO helper stuff.)

> <> iterates over @ARGV

Almost nobody uses that, precisely because it's very unreadable. It only exists for compatibility reasons and was made to serve people used to sed/awk.

> chomp chomps $_

I haven't seen code use chomp in ages. I've never used it myself.

> Messing with @INC changes library search paths, etc.

This is rarely used as well. Mainly only when doing release engineering. It's also most often done via `use lib 'whatever';`.

push(@{$TV{$family}{kids}},"anotherkid");

That is an outdated way to write that. In a decent modern style it would be written like this:

push @{ $TV{ $family }{kids} }, "anotherkid";

And with a more modern Perl, this:

push $TV{ $family }{kids}, "anotherkid";
Not too sure what's special about this thing. I also wonder why people keep making DSLs to replace SQL. I was using iBatis back in 2005 (now called MyBatis - http://blog.mybatis.org/?m=1) and it worked great.
That Dragon, Cancer: Coping with a son's diagnosis through a video game
Actually, apologies for being sloppy on this one (in having dashed this off in just a few minutes) - under tax laws, you can't have an ISO without a 90-day tail. This should therefore read "4) NQO without 90 day tail on termination". I would probably put ISO with 90-day tail and no early exercise as #5. It really is a toss-up, though, because the ISO does retain significant tax advantages for anyone who can keep his option exercises out of AMT. I give the NQO (with no tail) the edge here only if AMT becomes a factor, which it does for many people, primarily because it gives you have the flexibility to keep vested options alive long after leaving your employment. Hope this helps.
Same here, what I haven't seen is how would that be done.
why would they do that? isnt this public and wouldnt it be against what they stand for?? are u sure about what u say??
Rethinking food delivery? Perhaps there's something novel with their real-time routing algorithms, but that's a razor thin edge in food. The food game is an old game. To put that much money to use in a food business, your best hope is to buy distribution facilities where the real estate will appreciate and then convince enough consumers to get out of the mindset of cruising the grocery store freezer isle for convenient microwavable meals. So in the end, you're some premium, made for urban environments, version of lean cuisine. I'm sure there's a market for that, but is it a market worth this much investment?
Your friend should probably look for an attorney then.
A bit tangential, but I grew up in an area with a lot of Vietnamese immigrants - so many, in fact, that I was regularly the only white face in a restaurant or store.

Watching the wider world grapple with unhealthy diets and the boring ('boring') healthy alternative, Vietnamese food has always struck me as THE perfect solution.

I'd been waiting for a while for someone to start a Vietnamese food chain in Australia and when it did - check out Rolld.com - it immediately blew up.

Taking Cuon (rice paper rolls), Bun, Goi, and the perennial favourite Pho, you have the foundations of a week's worth of delicious and healthy meals. (My mouth is watering just writing this)

Which makes me wonder why Munchery hasn't been pushing Vietnamese food harder, given its origins. I just don't understand - in a world where Chipotle dominates, where is its Vietnamese equivalent?
This just shows how much capitalism is broken.
That does have a lovely UI and I'm sure that I will be checking this site in future along with Skyscanner. One of my favourite features is being able to provide a range of departure and return dates. Unfortunately it does seem to be missing flight information for FlyBe.

I looked for a flight from Manchester to Knock (MAN -> NOC) flying on 24 June, returning 27 June.

Skyscanner was able to show me that there is a direct Flybe service for £64 return: http://www.skyscanner.net/transport/flights/man/noc/160624/1...

Skypicker could only offer me Ryanair flights. Outbound via Dublin and Liverpool and return via Nottingham and Dublin for £85.15: https://en.skypicker.com/cheap-flights-from-manchester-unite...
I have a spare AIO touch-screen PC which I'm hoping to revive. This could be perfect.
>stands strongly in favour of net neutrality in the US

Could you provide some sources?
They already force people in some ip ranges (for example tor exits) to do mobile # auth.
Piracy Is Destroying the Movie Industry.. To Ever More Records at the Box Office
The currently quoted number in policy papers is around 1 meter in the next 100 years. The includes the assumption that sea level rise is accelerating beyond historical trends.

For fun, you can get sea level rise satellite data for the past 20+ years from http://sealevel.colorado.edu and run your own math. If you just naively run forward the observed rate over the last 22 years, you get 1 meter of rise in 300 years.

You can also see historical tide data for cities here http://tidesandcurrents.noaa.gov/sltrends/sltrends_station.s...

It's important to know that tide data combines sea level information with information on how much the city is sinking. A bedrock city like NYC will give you better data on sea level rise than a city built on mud, like Venice, which is going into the water even if global sea levels were falling instead of rising.
How is the Pentagon able to call the National Guard up for active duty as they did in 2003[1] and other occasions if they are separate from the Federal armed forces?

[1] https://www.wsws.org/en/articles/2003/10/ng-o04.html
Although Rust does not have GC and requires the programmer to manage the memory when just relining on borrow checker is not enough, the language ensure that this is safe eliminating most of the worries with manual memory management.

In this settings GC is not necessary beneficial as it brings an extra unpredictable latency/pauses. All is fine when it does not affect the application, but when it becomes the problem, it is hard to fix and may require a significant rewrite or a very time-consuming tuning of GC parameters.
Wow, even embedded facebook video is served as flash (which I don't have) and only served HTML after changing user agent. Is it ignorance or malice?
He wasn't going to get 30 years.

Again I'm not saying I agree with the way he was prosecuted but he did commit a lot of crimes. Whether or not you agree with the ends he was aiming for doesn't change the facts.
Yes, there the words of Thomas Jefferson put it quite explicitly:

You have the right to have arms within your own house in order to potentially use it in a rebellion against an autocratic state in case it arrises.
Nowhere it gives you the right to carry weapons around with you on the public place.

This makes it as clear as water really.
I can't even think of so many frivolous examples, off the top of my head. Most technology would also benefit the "underclass"? Maybe Tinder helps veterans and single moms to get together and have sex. Uber facilitates the date, and AirBnB organizes their honeymoon should they hit it off? Amazon saves time for everybody.

What are the horrible startups - are they really dominating?

What would be an idea that would benefit exclusively the underclass? (Political issues aside - or how could you launch a startup to fix the paperwork veterans have to do, wouldn't that have to come from politics?)
Not all takeovers are positive unfortunately. One incredibly basic scenario I can imagine playing out...

I own 1/3 of a company, with two other founders who own 1/3 each.

We're approached by a company that wants to buy us, and they offer a deal that my co-founders jump at but I'm not so sure. I now need to "fend off" the takeover by convincing my co-founders not to see the deal through. This is especially troublesome given they have a majority between them. If there are more than three shareholders or more complex company structures (such as a company that previously raised a round of investment and has a group of investors looking to get out) then more possibilities come in to play.

Let's then go on to assume that the (hostile) takeover isn't successful. The buyer could seek opportunities in my marketplace to make my business less valuable. They might purchase a competitor who was previously smaller than us but is then provided the capacity and financial resource for growth that we do not have.
Startup takes on Dropbox, Box, using cloud and local storage
Add the following to your eclipse.ini:

--launcher.GTK_version
2

Alternatively set the environment variable SWT_GTK3 to zero to launch eclipse:

export SWT_GTK3=0; /path_to_your_eclipse/eclipse

As a side benefit:
GTK2 with a compact theme will also make a much better use of your screen real estate. Especially important, if you want to work on laptop with a small screen diagonal.
GTK3 as it comes out of the box is just ridiculous in this regard. Eclipse is completely unusable with GTK3 on my 1200x800 12" machine because of that.
> They've stayed relevant in the GPU market, though.

And in APU (or "non-mobile SoC", if you will) market too: Xbox1 _and_ PS4 - that's a huge success by any measure.
I don't think Notepad has had that limitation since, like, Windows 98 FYI.
I don't envy Twitter's position right now. They are stuck between (1) trying to renew their platform to monetize and grow, (2) facing huge amounts of criticism on how they dont properly handle abuse, and (3) expected to keep their reputation of openness still left over from the 'Arab spring'.

It is doubtful that they can survive without sacrificing at least one.
Would Facebook exist today, if there were a gatekeeper (AOL, Google, Yahoo?) that needed to approve it as a "Basic service", that had exclusive access to a billion users?

This Anti-competitive practice is as notorious as the ones MSFT once engaged in at their peak, for which they still get a lot of negative press, decades later.
I'm curious to know how this is happening. Perhaps the people who handle complaints in Russian and Ukranian are Putin supporters and bring their personal animosities to work. It would be hard for Twitter to hold accountable judgement calls in languages management doesn't understand.
> You don't know

Exactly. Which is the core of "not worrying about it". When it becomes a problem (Such as an out of memory exception) you worry about it. There is no illusion. The time you don't worry about it is when you write it. I'd write it exactly like you did above (except I probably wouldn't null it), and wouldn't think of it again until it became a concrete problem.

You are absolutely right that a GC didn't magically make all memory issues disappear. It just hides them.
Except that massive app ecosystem is designed for small screen phones and single window design.

It also hasn't helped Windows Mobile at all with it's "massive" desktop ecosystem.
When a block of data on a mirrored disk goes bad, mdadm won't be able to fix it and often doesn't even know that the data is bad.

Since there is a mirrored copy this a correct copy of your data but since there is no metadata or checksums, mdadm has no way to tell which is correct.

ZFS will silently detect the corruption and will rewrite the data restoring the duplicate copy of the data again.

All this works great without ECC RAM, recent studies of data corruption have shown that RAM is much more reliable then previously thought. ECCisnt needed for ZFS for home use.
When you've worked with languages that help you think about ownership (like Rust or even modern C++), being back to languages that throw you a pointer/reference had leave you on your own to figure out what it's lifecycle is and what you can to with them is a huge step back. For me is the think that sucks most when programming in Java, for instance.
Twitter Needs Stronger Conversations, Not Longer Spam
This is what David Bowie's death looked like on Spotify
> I disagree, all languages have the potential to be misused by poor programmers and it's the developer who is the source of the bug.

We can easily fix tools and processes, we will never fix people. Sure, all languages
allow to create bugs, but some orders of magnitude more then others.

> kernel is written in C and is the most successful/widely used piece of software

end every release finds bugs in filesystem drivers, and buffer overflows and security issues and breaks display drivers. Seriously think of all the things
kernel developers could do if they didn't waste years of work on tracking invalid pointers and off-by-one errors. Over and over and over again.
ANN Lotus 0.6 for Ruby
RemixOS uses GPLv2 code (Linux, etc) and other open source licenses. They might got away with proprietary devices, their official response on their old (closed) forum was telling. But now they will have to provide it.

The idea of adding a several improvements to Android for desktop usage (improved right mouse click) is good, but why not keep it open source? Also I don't see a real business model, as Google is already working to merge Android and ChromeOS "somehow" (as indicated by news lately) and both ChromiumOS and Android are open source.
Support for older versions of Internet Explorer ends today
You don't have to wonder (or have that many followers) due to broken notification system. Google Hangouts will push all notifications since you were last online. So if you have an old phone that you rarely use... Strava, for example, is stupid like this as well.

They are slowed down somehow. Because even if I disconnect the Internet immediately after I remember what awaits me, it keeps bugging me for quite some time after. Associated ring/buzz is not "grouped" so it is a hellish experience (and perhaps that's the reason why it is so slow).
Piketty gets away with a distortion of the debate because his conclusions are so populist.

http://www.cityam.com/1416252493/financial-crisis-saw-uk-bec...

It's questionable whether a) there is growing inequality and b) more equal times (eg the 70s in the UK) were preferable for anyone.
I also wonder how much of this type of thing is rooted in the protestant evangelical cultural origins of much of our society, with its explicit missionary focus, and paradigm that the material problems of others can be solved with a message of intellectual/spiritual salvation.

I grew up in a small rural evangelical church in rural Canada. A parade of missionaries were always coming through to talk about their good works in exotic places around the world, and seeking donations and support in various ways.
>>It largely depends from whom you learn.

In my case, when you learn :)
The language just needs to provide the required features to be able to do it. Some kind of unsafe mechanism and more control how the GC works.

Oberon's GC is written in Oberon:

https://www.inf.ethz.ch/personal/wirth/ProjectOberon/Sources...

Module SYSTEM is like Rust's unsafe {}.

Singularity and Midori GC's were written in their C# dialects.

With luck C# 7 onwards will get all the nice features from Sing# and System C#, as per Joe Duffy's blog.

Then using C# will be no different than Modula-3, in terms of features for systems programming.
I had thought that the quality of curry-house meals was going downhill for years - then discovered that apparently most of them now use Patak's sauces instead of in-house recipes, which would explain a thing or two.

I suspect that it's largely driven by a lack of chefs - possibly as a result of social climbing across generations.
A company extends itself into different countries for a lot of different reasons, not only for avoiding taxes. Besides the mentioned tax cuts, the move into Belgium could have been also because they needed a foothold somewhere in European Union anyway, and also it could have been for some level of expertise that was harder to achieve otherwise, and possibly a lot more. It's about the whole package.

China has a policy of allowing external players into its playground only in partnership with a local company over which the government has absolute power and control. That is a bitter pill to swallow, but some choose to take it any way! China can arbitrarily change its rules (which are bad enough as they are) at any time (usually into something worse), I'll give you that. But it doesn't make it feel better with going through the current Belgian/EU debacle!
Small-screen phones and medium-screen tablets. And some netbooks. Pretty much the same as the set of devices Windows 8's Metro UI was designed for.

Look what Windows 10 did with Metro apps: it took those "single-window designs" and just... stuck them in regular windows. And that works pretty well, it turns out.
Interesting! How are they taxing "illiquid" assets like real estate, paintings or jewelry?
It's practically entirely compatible. The card may have been released in 2007 but the system was purchased new in 2012. Win 8 cost £100+ for the license.

>a poorly supported system //

They didn't say that though; they said "unable to run". Yet clearly MS know that's not the case (now if not at release). Unsupported and "unable to run" are entirely different. I'd have no problem if MS said "may not work" or "unsupported by Microsoft".

>You should be compensated every penny that the Windows 10 upgrade cost you: Zero dollars and zero cents. //

The cost is time - as an ordinary user the nag telling my father to upgrade was treated as an essential. Then on that nag screen Microsoft informed him that his computer couldn't run the upgrade and kindly offered to sell him a new computer.

If he hadn't asked me the cost would then be disposal of a perfectly good computer (who wants a 2nd hand computer that "can't run windows") and the price of replacement from the MS offerings. I imagine quite a lot of people would have trusted that there computer was "unable to run" Windows, MS would know after all, and so followed the sales links in the nag screen.

What do you call false statements made to increase sales if not fraud?