skysight-inc/HackerNews huggingface dataset:
I don't think that makes much sense. Besides trying to understand what "best" means, what does "have a king" mean? Does the UK's queen count as still having a king? What about Canada's queen?

Let's take Spain as a sample. The king abdicated in 1873, with the First Spanish Republic (parliament) until the end of 1874. Then was the Bourbon restoration where the king first had parliament, but later backed a dictator) until 1931. Then the Second Spanish Republic until 1939 and the rise of Franco's dicatorship, until 1976, followed by a transition to parliamentary democracy, with the first elections in 1977.

That's 3 different transitions to a republican form of government. Two were not successful.

Or, how do you count the English Civil War and the brief Commonwealth of England in the 1650s?

What of the short-lived French Republic? The result of the Haitian Revolution? The democracy of Iran overthrown in 1953 by royalist forces supported and funded by CIA and MI6, and then the monarchy overthrown in 1979 by the Iranian Revolution?

Or Weimar Republic Germany, after the imperialism of the First World War. It famously had to deal with hyperinflation from paying war reparations. In 1930, President Hindenburg assumed dictatorial emergency powers, leading towards the end of the constitution and the start of Nazi Germany in 1933. The belief in Germany at the time, I'm told, was that the Weimar era showed that democracy was a failure.

Also, what's your baseline reference? "Is it best to have a king first then later transition to democracy" compared to ... what?
Yea, "friends of friends" is a really weird concept when it comes to people you know from the internet. It creates connections between disjoint communities. Those communities are disjoint for good reasons. They don't have anything in common.
These are not great outcomes for the investors.
In a not so distant future you will see Facebook recommending friends based on shared data points. The weird thing is that due to to their massive backlog on people their likes, website visits et cetera, they might actually do proper recommendations.
The last time I touched C code was my sophomore year in college, so maybe 12 years ago? As a result, the last time I had to deal with pointers and such was back then, as well.

I'm primarily a web-dev. Ruby, PHP, and Javascript are the languages I'm most familiar with at the moment.

Are there any Rust for Dummies-style tutorials floating around? As simple as this introduction is, it was still over my head...
Not sure that a business based on taking a photo of something and asking people "what is this?" is destined for success. Isn't that something that Google Now/Siri will probably automatically answer in the near future?

"It's a left-handed lug nut for a 1975 Vespa scooter. Click here to buy it now on Ebay!"

"It's a powdered doughnut, and judging from your location, you're at Acme Doughnuts on Main St. They have a 2-for-1 special after 5pm every day!"

"It's your friend Dave, shot through a red filter and wearing a hockey goalie's mask. He has an Android phone in his pocket, so I was able to check my geolocation records to identify him. Good one! You almost got me!"
Expanding on my earlier post:

Connections is an excellent series to watch concerning the Industrial Revolution, as is The Day the Universe Changed. Both series cover far more, but typically span in in most parts. Burke is clearly fascinated by the period (he's a bit of a tech geek and fan -- his history with the Apollo program should tip you to that), as well as much of what came before and since. The spanning is actually really useful as you come to a better understanding of why the Industrial Revolution happened where and when it did (though I'd argue, not a complete understanding -- I'm still working at that myself).

The Day the Universe Changed complements and supplements Connections extremely well.

As I noted below, I watched both after having seen The Prize, based on Daniel Yergin's book of the same name, which follows the history of petroleum from 1859 to 1992 (the date of publication). That series was simply fascinating.

If you're interested in the period, I'd also recommend Arnold Toynbee's Lectures on the Industrial Revolution which cover a lot of the economic and social issues of the century following Adam Smith. Robert Ayres is a modern economist who's looked at the role of innovation throughout the period in his paper "Technological Transformations and Long Waves" (1989).
I know that I pre-ordered BF4 and have yet to play more than a couple of hours since launch. How much have things improved since then? Has the CPU parking issue been fixed? It's silly that I have to run some third-party CPU utility to make the game playable.
I think we can be a little bit more charitable towards C++. Modern compilers will let you know if you try to do something as obviously incorrect as returning a pointer to a stack variable.

$ cat > foo.cpp <<EOF
> int *dangling(void)
> {
> int i = 1234;
> return &i;
> }
> EOF

$ clang++ -Werror -c foo.cpp
foo.cpp:4:13: error: address of stack memory associated with local variable 'i'
returned [-Werror,-Wreturn-stack-address]
return &i;
^
1 error generated.
I've installed my instance on FreeBSD, i'm pretty sure you can install it without issues on an OS X Server. Read the install scripts they give and adapt it for OS X.
Green threads are the standard term for language-level threads that are not OS-level threads.
Beagle Bros Online Museum
Agreed to an extent. The internet is full of solutions that aren't necessarily GOOD solutions, and it's too easy to use someone's half-baked solution and not learn anything in the process.

On the other hand, the internet's wealth of solutions do at least point you in the right direction.

This statement comes from someone, though, who is usually too prideful to ask for help and will usually make themselves miserable bashing their head against the wall before finally conceding to ask for help, something I certainly don't advocate. (I'm working on it.)
As an aside, if you just want curried functions in Clojure, try poppea.

https://github.com/JulianBirch/poppea
What are the "rules" about this? I often see people arguing against scab labor with real fervor, but how is this defined? And who decides where to draw the line?

e.g. continuing with the cafeteria example, if people decide to go off campus and purchase food at a different establishment, are those food workers then considered scabs? Or is it only scab labor if it's hired as a temp replacement by the company against whom the workers are on strike.

And back to the original example, what happens a person needs to get to the airport, or to work? The challenge with substitute goods and services (e.g. Uber or gypsy cabs or other app-based car services, in place of licensed cabs) is that a monopoly gets marginalized and a strike is less effective. But what's a person supposed to do who needs to be transported from A to B? Not call Uber?
Will we get an apology for being so obstinate and narrow-minded, too?

How about a promise to never again shove always-on down the throats of their customers, and admit that it's a fruitless effort to exert absolute control over the ways users play their games?

How about Blizzard and Diablo 3, where you feel lag in a game that's predominantly single player?
At least push back. It's not unreasonable to say "tomorrow is not enough time; can you give me another two weeks?" If they're not willing to be flexible on a little issue like this, I'd take that as a sign that I should expect that type of inflexibility were I to become an employee.

The best candidates will often have multiple job offers before they walk in to the interview. By pulling stunts like this, companies are basically weeding out the best candidates and ensuring they do get the candidates who aren't sure they'll get anything better. Do you want to work at a place like that? Do you want to work at a place filled with people like that?
Why Dale Carnegie wouldn't use Craigslist today
Salespeople qualify leads by determining if you're ready to buy or not. If you're not, they stop wasting time on you. The general idea for a quick introduction is to qualify your lead. So this isn't a "introduction to Rust's syntax" it's "an introduction to why you should (or should not) care about Rust."

> since every competent C/C++ programmer knows not to do it.

Everyone knows, yet programs still segfault. The point is that the language helps you be competent. Static analysis is very useful.

> Does Rust really call its threads "green threads"? Green threads have a weird reputation.

I agree. Rust has N:M mapped threads by default, but recently added 1:1 as well.

> it's an attempt at conversational style that doesn't add much.

I happen to write like I talk, it gets good and bad reviews. A more neutral style would be more appropriate if/when this gets pulled into Rust itself, thanks, that's a great point.

> Does the whole concept of Rust concurrency and memory protection boil down to "the language provides an 'unsafe', and then people write libraries to do things with it"?

I think this is an unfair characterization, but I gave it to you, so that's a criticism of me, not you. I tried to point out that unsafe exists for exceptional cases only: it's not something that you need unless you're doing something dangerous for a specific reason. I personally have only ever written unsafe when wrapping something with FFI.

Introductions are hard because you never know how much depth to go into; maybe I should go into these bits a little more in depth.

Thanks for the great feedback. :)
I browser european websites all day and rarely see annoying cookie information boxes.
I have you covered in that case as well: http://www.rustforrubyists.com/

I want to provide a version of the 30 minute intro that's not strictly for systems people as well, but you have to start somewhere.
Quite a lot of OS X applications support pasting with matching style (Cmd+Shift+V), which does exactly the same thing.
>Also, the 15 minute wait is because the taxis-by-dispatch are inherently slower. Instead of trying to compete, the taxi union pushed hard on Paris and got them to pass the restriction.

Two months ago when Dallas' incumbent Taxi monopoly tried to pressure the assistant city manager into regulating Uber out of the market a 30 minute forced delay was a tactic they tried push through as well (among a few others like using the Dallas Police vice dept. to gin up phoney stings).

Luckily the community rallied, Uber drivers got to continue operating, which everyone but the incumbent viewed as fair since the Uber drivers were already licensed limo operators and the incumbent had some insurance problems exposed when the local reporters picked up the story.
I never said it was the smartest answer to the solution, merely gave the "reason" behind the politics. W/o the regulation to line up, maybe they wouldnt?

You've made lots of statements about how things would work, which I doubt you could back up w/ evidence.
That guy is definitely more clever than his paygrade.
in my experiments pngnq worked better than pngquant but pngquant2 works better than pngnq.
> This isn't so much an introduction to Rust as it is an introduction to Rust's concurrency model.

Ownership is really central to Rust. It's central to both memory management and concurrency: to work with Rust you need to understand it.

> The example of returning a reference to an automatic variable isn't super compelling, since every competent C/C++ programmer knows not to do it.

That's just a simple example. The same logic also prevents iterator invalidation and use-after-free, which are things that do occur in the real world and lead to security vulnerabilities.

> Does Rust really call its threads "green threads"? Green threads have a weird reputation.

They're M:N threads, multiplexed among multiple hardware threads, like Go or Erlang.

> Does the whole concept of Rust concurrency and memory protection boil down to "the language provides an 'unsafe', and then people write libraries to do things with it"?

Sort of, but I think that's an uncharitable way to say it. The trick is that the language allows these unsafely-implemented primitives to be safely used from safe code. As long as the unsafe code is correct, the safe code is guaranteed to be safe. From a trust point of view this is really no different from building the features into the compiler: either you trust the compiler (which, as it's a compiler, is unsafe) or you trust the unsafe portions of the standard library. But it's way easier, and more flexible, to hack on libraries than to hack things into the compiler—as you get to write code, not code to generate code.

Furthermore, the safe part of the language is so powerful that you rarely ever need "unsafe": you can do practically everything you might need to do, including shared memory with locks, in the safe language, without GC. Only if you really need to squeeze out the last amount of performance, or if you need to interface with C libraries, do you need "unsafe".
Do you want people to tell you why they care, or why you should care?

You may be philosophically against all of the labor rights that have been gained through strikes (which are all labor rights), and in that case, you shouldn't care. In fact, in that case you should go out of your way to break strikes like homophobes went out of their way to eat at Chick-Fil-A.
Why would it run in a browser?
Some fun ideas

If on a *nix platform try df for your cli app. This was "state of the art remote monitoring" where I worked in the mid 90s. Also http://whatever/cgi-bin/uptime displayed about what you'd expect. And the dmesg script, another handy one that is about what it sounded like.

Next step is there's a lot more HTML codes than <pre>. So put stuff in <h1> etc. Before <blink> was censored I used that occasionally.

A fun next step is commands with mysterious and unclear outputs. Like grep. Maybe grep a log file. Will you get no lines or a thousand lines? How do you intend to inform the user that either the CGI crashed or there is in fact no lines to output.

After that a bunch of if/then based on the output of grep -c

If its not fun to output text based on some if/then I'd try img tags. So now something broken is a red down arrow. And a giant frameset of multiple machines multiple tests is kind of an alert board, sort of. At least in 1997 or so.

You can make an interesting display of security problems by stashing temp files and temp scripts and temp things in /tmp... what could possibly go wrong with trusting the contents of something in /tmp, LOL?

Although I forget exactly how (its been awhile since BASH was a cutting edge web framework) there's a way to access http parameters so you can do simple forms that ask for something to search, then run grep on that passed parameter, then format the grep output to an attractive level. And of course you can pass "funny" parameters to the script which probably does no input checking and introduce them to Bobby Tables meme and all that.

I didn't do this, but in the years before phpmyadmin I worked at a place that basically had a script that ran whatever you passed it as a command for mysql. As root. With no authentication. And of course a hard coded password in the command line for anyone running "ps" to see. Yeah. It was one of those things that the developers thought was awesome for dev work on the test server but somehow snuck off the test server. That was a funny one, nothing bad happened, but could have been bad.

This kind of stuff is a bit safer on a private lan than being tested out on the internet, but everyone reading this probably knows that...
For pngs (and lossless encoding) the thing is that the last step of encoding is a run of the deflate algorithm. It's impossible to say what exactly a stream will deflate down to without actually running your implementation of deflate. Possible encodings of an image pre-deflation are staggering, 5^height just for the filter step on all color types. I've been writing a brute force compressor (everything but the deflate step which depends on the implementation you choose) as a joke and it takes about an hour on images 10px high. For that reason encoders use heuristics to make best guesses whenever there's a choice to be made.
And FIFA.
which doesn't mean much. it could be that people who would be interested in learning type theory in the first place would prefer static typing regardless, with a similar argument for the case of dynamic typing
My read was that the software was blocking specific CIDR blocks, and those blocks were within the allocations of the listed countries.

Not that he was doing country-wide blocks. Though I could see doing that in some cases (e.g., you do no legitimate business with country Z, but get some high percentage of attack traffic from it). Metcalfe's law fails to account for the fact that many nodes in fact contribute negative value to the network.

I prefer CIDR-level blocks myself, if single-IP blocks prove too whack-a-mole-ish.
And the complete Skyrim game (all expansions/DLC) still sells for $60 on PC, two years after release. People still buy it at this price, and it's still a pretty good value.
"We don't own the street. We are the street."
In this case, the airport is their work site.

If a Wendy's employee attempted to cross a McD's picket line to work at the McDs, things would not go very well.
I can't speak for Paris either, but when I was in Accra in Ghana around 10 years ago I found their approach to taxis fascinating. I don't know their regulations for them but they seem to be effectively unregulated.

In that city what seemed like every 10th car or so is a taxi, it'll take you no more than 30 seconds at almost any given point in the taxi to hail a cab. By social convention the cab will stop for you even if it already has passengers, if the passengers are going to a similar location they'll ad-hoc split the fee.

It was cheap enough due to the unregulated nature that you could take a cab for all your trips, and there was almost no incentive to have a car in the city. The number of cars overall was probably drastically reduced, and it was a much more efficient system than any similarly sized metro bus or tram system I've been to in a similarly sized city.

I don't know what the ideal system is, but consider the tragedy of the commons you might be imposing by artificially driving up the price of what might effectively become small ad-hoc point-to-point public transportation in lieu of personal vehicles for everyone, or a larger and less efficient public transportation system.
Thank you! Maybe I should explicitly show a new/free example instead, or does that end up having a similar warning?

I haven't written serious C++ in years, so I have some blind spots. Others on the Rust team have done quite a bit, so they tend to pick up my slack in exactly this manner.
Rust's tasks can either use native threads or green threads multiplexed on top of a pool of native threads, without change in API.
That's debatable, but even so, what's wrong with that?
I still don't get it... And the previous sentence is now confusing for me too :)

First you showed two examples: Arc (to share immutable data) and RWArc (to share mutable data with enforced mutexes around closures). Then you talked about `unsafe`. Seems easy, one needs a "backdoor" to implement RWArc in Rust (at first I thought it was implemented in C/C++).

But (quoted) sentences between Arc/RWArc part and `unsafe` part don't really connect them, at least to me.
So if you agree the different classes act through different means, then do you disagree that rioting is pretty blue-collar, i.e. proletariat?
It demanded that for each new computer, Le Monde should pay for one print worker to type on the keyboard and another simultaneously to watch the screen. It got its way.

This sounds like a joke made up by a Tea Partier about how unions cut efficiency. I can hardly believe it.
most limo services (don't know about uber) offer fixed rates (time or distance). Since Taxis pick you up and start running a taximeter to charge you, that's something that needs to be regulated to make sure that they don't stiff you. If a limo service shows you the route and gives you a quote on the cost, then there would be no need for that level of regulation as well.

There are some regulations that should be there in common, such as protections for the passenger (since you're effectively imprisoned) but stuff like background checks should suffice and I'm pretty sure that Uber and the other companies do this.
> That's just a simple example. The same logic also prevents iterator invalidation and use-after-free, which are things that do occur in the real world and lead to security vulnerabilities.

Maybe I should mention some of the more complicated examples explicitly, then?
Looks like they just added support for it
IANAL, but I believe if they run by EU companies and use cookies to track users, they are breaking the law. Sad but true.
Open is nice, just don't make it Crippleware.
I keep trying to play SC4k again, but it feels so out-dated. I haven't tried the new SC, but I've tried Cities XL. I want a new Sim City with the gameplay of SC4k in the engine of Cities XL. SC4k's zones are too small and the road structure is too limiting as you mention, but Cities XL has the horrible resources and trading structure and after your city reaches a certain level the gameplay lags and become unstable.

I even tried Cities in Motion, and dear god is that micro-management hell for me.
There was an article on LinkedIn today about the same topic.

http://www.linkedin.com/today/post/article/20140113134951-69...

Let's separate the world into 2 camps: experienced hires, and college hires.

Experienced Hires should always have a reasonable period, but it shouldn't be definite. By the time you get an offer, you should have a decent enough idea on whether you'll accept it. A week should be enough to consult an attorney, talk to your spouse, and give you firm a chance to counter if you so desire. If you are up front about other places that you're looking at (especially if you were talking to them first) then perhaps you can ask for a week more, but it's delicate. You can't ask for more time if you've been saying "You're the only ones I'm talking to, because I'm not in the market" even if you are coming from a stronger position.

College hires are different, because as a population they are both easier to abuse, and more likely to engage in unprofessional behavior (saying Yes to multiple firm, or reneging). It's in a company's best interest to know which interns are coming back, so they can plan Fall recruiting in an organized fashion. (Do I need to hire 5 more people, or 15?) Schools know that this puts undue pressure on their students. The best schools with the strongest placement offices can make policies that say, "You have to let offers stand until X weeks into the Fall semester." If a firm wants to hire from MIT, they'll follow it. Weaker schools can't get away with this. What happens, then, is big companies that can play the yield game better ("I'll convert 70-80% of intern offers, 50-60% of campus offers, so to get to a class of 18-20 I'll make 10 and 12") recruit at the strong schools, while firms that can't tend to go to other schools, or off-cycle recruiting.
> Rust seems a bit too complex to me. Like a C++ on steroid that wants to do and be everything.

No, that's explicitly not a goal. The goal is to enable zero-cost abstractions and memory safety. Everything here is in service of that goal.

> I'd rather stick to C if I need tight memory management, it is way simpler and straight forward.

The problem is that the "simple and straightforward" model of C leads to a lot of very not-simple-and-straightforward time in front of Valgrind to get the program to work, or worse, to fix security vulnerabilities.