skysight-inc/HackerNews huggingface dataset:
I contributed. It's obviously a worthwhile cause, and their overall strategy seems sound. I also appreciate their efforts to bake the open source mentality into the project.

I hope they reach the goal and this gets big, because that's how it will be effective.

edit: following them on twitter turned up a couple of worthwhile articles: one on the economics of bike theft [1] and another review of locks performed by interviewing bike thieves [2]

[1] http://blog.priceonomics.com/post/30393216796/what-happens-t...
[2] http://thesweethome.com/reviews/best-bike-lock/
Bill Gates on the Future of Food
Go can do unsafe memory access, but doing things like pointer arithmetic or casting of a memory blob to an arbitrary struct type is way more painful than it is in C/C++.

In a lot of contexts, this is a feature (makes terrible code smells in normal code easier to see), but depending upon the type of coding you do, you do sometimes find yourself wishing it were a bit easier when dealing with things like graphics APIs where you just want to lock a texture, update some bits in-place, and then unlock it. Sometimes what might be a couple lines of C code are 10s of lines of Go code where you either do crazy gymnastics with the unsafe package, or juggle things in and out of byte buffers.
A jpg base64 encoded and gzipped is similar in size to the original jpg. It isn't as bad as you might think.
See Russia's reactors on your smartphone
Consider the possibility that someone from Hackermeter sent their resume to Pinterest unprompted, and that's what put them on the radar.
Secure Linux air gap.

Here is a real secure Linux air gap:

1. From a friend's computer, burn two copies of your favorite Linux liveCD.

2. Hold the two identical discs so that you can see the reflection of the document in front of you in one (mirror writing) and the reflection of the reflection in the other. (normal writing.)

3. You now have a secure Linux air gap with which you can read any document.
Now does it allow unsafe memory access, or does it not?

And does the unsafe package allow you to build a C-style manual allocator or not (regardless of whether it integrates with Go's new or make operators)?
Not to alarm you, but actually I think a company would be entitled to use your tweet in their ads (with or without involvement by twitter).

A tweet is meant for public consumption (if it's public), you mention their product...as long as they don't make it look like you're saying something you're not, saying that you said that seems to be just stating a fact (which is well covered by the first amendment), and as long as they've only taken a sentence or a fragment of a sentence, they should be well covered by fair use as far as copyright is concerned.

I'm having trouble finding case law on this, so someone please correct me if I'm wrong.
If you are equating Ayn Rand with libertarianism, you might find this interesting: http://www.aynrand.org/site/PageServer?pagename=ar_libertari...
Most high performance CPUs will have ~100 physical registers or so, possibly divided up in multiple segments.

But abstracting those you have your architectural registers that are presented by your ISA, and the CPU uses register renaming to map those onto the physical registers.

The tradeoffs involving ISA registers are more intense. You have to load and store all of them on thread swaps, but that's pretty tivial. More importantly the bits you have to use to specify which register you're using are bits that you're paying in every single instruction you have, increasing the size of your executable and the pressure on your caches.

Different sorts of architectures have their sweet spots at different places. In order processors doing lots of matrix math and such benefit from lots of architectural registers, the Itanium had 128 integer and 128 floating point registers and that was the right amount for a VLIW architecture with it's features. Modern GPUs are similar.

On the other hand, your typical OoO CPU will have either 16 or 32 registers you can address at a time, and that seems to be close to optimal. It's hard to say since instructions come in discrete chunks and your number of registers has to be a power of 2 as a practical matter.
Well, isn't that the same thing essentially? We've already figured out how to do rev-share from ads and subscriptions and we have the infrastructure for it - I think it's better to use that than invent a royalty-based system that just creates obfuscation (I mean look at the complexity in royalties in music/movies/books - I don't want that in news content as well).
Much of the initial design come from improving the language grammar and syntax. That limited improvement didn't last long, but it was an initial motivator (Walter being a compiler writer and C++ being horrible language to parse).

The D community has greatly pushed D away from this initial improvement. In C++ there is a separation of the developer tools and the library writer tools. I think that separation still exists in D, but it is in an area even library writers don't/can't reach for in C++.

Ultimately D doesn't force a fundamental change, but as one learns to use the language, the result is a fundamental change.
Nope, I prefer G+'s insistence on dealing with real people rather than anonymous aliases - IMO it's part of the reason I see a lot less hate on G+.

It's also nice to have the option to privately msg and hangout whenever we need to.
The New Science of Who Sits Where at Work
Twitter is your counterpoint? What else did you consider?
I just started on "JavaScript Allongé" and am really enjoying your prose and working through the examples. Good job!

I had to look up what _allongé_ meant as I've never heard it ordered. It sounds like the perfect drink.

"coffee beverage made by using an espresso machine to make an espresso (single or double dose or shot) with much more water (generally twice as much), resulting in a stretched espresso"

http://en.wikipedia.org/wiki/Lungo
There have been papers on how GCs can be more efficient than manual memory management in some situations, so it's not always the case that RAII is better from a performance standpoint (though I think that it frequently is). But regardless, a big reason for the GC in D is memory safety. Using the GC, you can make memory safety guarantees that cannot be made with malloc and free (e.g. you can guarantee that a pointer won't be invalid with a GC but can't with manual memory management), and D is big on making memory safety guarantees. Also, some features (such as array slices or closures) work very well when you have a GC and become much more difficult to pull off without one due to a lack of automatic memory management that the compiler can use and a lack of clear ownership in some cases (e.g. the runtime owns the memory for array slices rather than there being a particular array which owns the memory).

That being said, D does not require the GC. It's easier if you use it for at least some of the features, but D makes it very easy to use RAII and manual memory management, which also helps a lot in making the GC work better, because it's much easier to avoid making a lot of garbage for it to collect when you don't need to. A lot of stuff in D ends up on the stack rather than the heap, and D's GC ends up having a lot less work to do than the GC does in languages like C# or Java. That being said, the current GC implementation needs some work (and effort is definitely put forth in that area), but if you don't want to use the GC, you can minimize its use or even outright avoid it (though _completely_ avoiding it can be a bit annoying since that means avoiding a few language features that require it; that list is short though).

So, while D definitely uses the GC and promotes its use where appropriate, you have full control over memory just like you would in C++. And the few features that are hampered by avoiding the GC don't even exist in C++ in the first place.
Show HN: I made a FreeWare Index for windows
Message passing is a couple of atomic operations, and there are also L4-esque optimizations that allow a message send to be optimized into a direct context switch without a pass through the scheduler.

Also, you can use shared memory in Rust. If you do, the type system ensures there can be no data races: either the data is immutable or you must take the lock before you mutate the data.
$6.99 to register your bike? What a joke.
Very impressive

Doing 22kHz generation on a Macintosh is very close to the limit
Yep. It's hard to make that sort of hack just 'go away' without sunsetting most of Korea's e-commerce sites. At least as of last year, it was important enough to be mentioned as an election issue in Nov. 2012:

http://www.geek.com/news/korean-presidential-hopeful-pledges...
I believe they're referring to syntax, in which case, Go is rather unlike the others.
They also note that the F1 drivers take certain turns differently from every other driver.
WITH 16x fewer registers, that equates to about 1 chip's worth of registers (remember a stick of DRAM often has 8-16 individual chips on it). While this is already clearly a huge problem, consider additionally that DRAM is made with trench capacitors, unlike SRAM. DRAM is dramatically slower and more dense than SRAM. So we either sacrifice speed, or bloat our one-chip's-worth of area by a few factors, say x4-8.

Then there's practicalities like sense amp design. Large register arrays are not read in a digital fashion, and current L2 and L3 sizes already press their sense amps to their limits. DRAM also uses sense amps, but the amps are again slower and larger.

http://en.wikipedia.org/wiki/Sense_amplifier
So the people who are unknowingly using G+... aren't really generating anything for Google to use, are they? They want to show your reviews alongside ads. Well, if you're making reviews on Google+, that's not really "unknowing". If you're sharing, +1'ing, following, or starring content on G+, you're not really unknowingly using G+.

So basically people who technically have a G+ account but never use it shouldn't be affected, because you have to use G+ to generate this content.
You're not looking at most of what it's doing even though: LARGE scale inter-operation with hideous legacy systems (dozens of them).
I am in the process of evaluating options for embedded video chat in a webapp, vLine looks like another potential option (tokbox or OpenTok was the other service I had looked at) so I guess it's time to make some demos. My main points of comparison so far are ease of implementation and pricing.

The developer docs seem pretty easy to read so far, the nodejs example is nice. I'm impressed!

Edit - after some quick testing of the vLine video app, things seem to work fine in chrome, Firefox (stable and aurora) weren't showing online users, and safari (to my surprise because as far as I know safari doesn't support webrtc) showed users and chat worked but didn't support video calls.

Anyone know if Apple/Safari is planning to support WebRTC, or are they still sitting on the sidelines?
>While HN can get obsessed with pause times, not everyone programs video games, embedded systems, or kernel drivers where that matters.

The (my) problem is that it also matters whenever a program holds lots of data in memory (databases, data analysis, caching, etc). As the cost of RAM decreases, the importance of this problem increases, i.e. fast.
Apparently they're too busy doing other stuff that's more important and valuable. Like . . . ummm, like . . . OK, nevermind.
The Future of Rubinius
It's not a recommendation to the general public: your existing +1s, reviews and comments were already shared with whatever circles you'd already opted to share them with; this option just has those recommendations appear next to adverts for /only/ those same people.
I wish I could give you a million upvotes. Campaign finance reform is the only way to "save" politics.

A brief interview with Al Gore discussing modern politics that addresses this: http://www.theatlantic.com/video/archive/2013/10/al-gore-on-...
Probably this?

https://www.google.com/intl/en/policies/terms/changes/

> If you previously told Google that you did not want your +1’s to appear in ads, then of course we’ll continue to respect that choice as a part of this updated setting.
In other words, the American taxpayer is paying for your free Gmail account and Gigabytes of storage.
It's usually beneficial to the leecher, but the leeching comes at a price (to Americans).
Ask HN: Startup failed in Vancouver, move to SF to work? Pay Bitcoin for Rent?
TLDR: I had 2.5 years of failed startup experience in Vancouver. Recently my cofounder found a job, so now I'm thinking about moving to the valley to join a startup with people I like. Any tips on how I should plan the move? I don't have much savings but I mined some bitcoins, so is there any place that accepts rent with bitcoins?

Long version: It's been almost 2.5 years since I graduated from UBC here in Vancouver (EE + CS). I didn't look for a job, instead I decided to be an entrepreneur and build a startup.

I found a really good co-founder(also technical) at the startup weekend in Nov 2011. We then worked together full time from home for almost 2 years coding up different startup ideas. We tried many different ideas, from new aggregator to market place to loyalty programs... but none of them could gain any traction (We are both full-stack developers).

It is impossible to raise money without traction here in Vanouver. Being bootstrapped and living at home made us less patient. We couldn't focus long enough because we had no income for so long. Eventually in Sept this year, my cofounder have came to an end of his runway and had to look for a full time job (which he found easily with all the development experience we gained together).

Now I am moving to the valley to join a startup, so I can learn from more successful entrepreneurs. I can also save up a bit since valley's salary starts at $100k whereas Vancouver starts at $60k. I would like to go network first as I don't want just any job, I want to join a team with a good cultural fit. Living in the valley is expensive so the sooner I find a job, the less savings I need to cut into. I do have some bitcoins from some casual mining so maybe I can pay rent with bitcoins while networking and job hunting? Any tips and advice on how I can plan my move?
Same article was posted a few hours earlier:

https://news.ycombinator.com/item?id=6532590
Yeah. I used to watch Can Am when I was a little kid. Drivers got killed a lot. Those cars were insane - 1000 horsepower sometimes.
Somehow for many years we've lived as a society with anonymous reviews counting for something. We've lived without each individual broadcasting everything we buy and use to the world.

Your view is the minority here. Why don't you go ask a random sampling of people if they want their choices in underwear broadcast to the world?

It's time you looked beyond yourself and realized that people don't have the same preferences regarding privacy as you, nor should they.
You can't please everybody (particularly when you are having a laugh at somebody's expense.)
How exactly does Flash prevent you from recording anything (audio / video) on Linux let's say, by capturing corresponding audio / video devices? There is no Silverlight for Linux by the way.
Why? It's absolutely true. If you disable the setting, your reviews for products will not show up in your friends' results. Presumably some people would be interested to know that one of their friends purchased such-and-such a thing and found it useful.
The biggest benefit in my opinion as that every person who implements balanced can "own" a piece of the company. You don't like something, change it. You want to propose a new feature, do it. Being able to directly impact a product you have implemented is a rarity in today's marketplace and it should be encouraged.
Just looked at this, sounds like a great idea! I would use it to create a textbook for the high-school programming course I teach.
> "Use the bike index to show off your bike"

It doesn't describe or show how data will be available or searchable, but there is a risk that thieves could use this data to target specific bikes. I certainly take lots of care to not advertise what I have, where I store it etc, I can't see me rushing to pay to make this information available on the web.
In some ways, the actual execution of code is opaque to compilers. Modern x86 processors further divide their instructions into op-codes in the instruction translation units. AMD and Intel both have their approaches to this internal instruction set deeply ingrained into every CPU since perhaps K7 for AMD and Pentium Pro for Intel. Pentium M and later the Core architecture contained op-code fusing where instead of just rearranging op-codes, the op-codes were combined into composite op-codes that could be executed in one step. The opcode fusing + out-of-order execution basically makes the CPU act like a compiler internally for binary. It's a like a JIT run-time for binary that's implemented in hardware.

As far as executable size and performance, compiling with -Os in GCC will occasionally yield a performance increase that might even change across CPU's and architectures as the memory sub-systems hit a good rhythm or there are less misses overall. Usually smaller is better for this. -O3 will occasionally unroll gigantic loops, while using compiler directed optimization to analyze which parts of a binary can benefit overall execution from unrolling vs less misses with smaller executable size can yield even better agreement between memory subsystem performance and execution speed.

Microarchitectures like MIPS have further blind alleys such as branch-delay slots that will finish execution even if a branch instruction -before- the slots is taken. This is an out-of-order program, but putting the burden on the compiler instead of implementing the reordering in hardware actually became a nuisance because the architecture couldn't change how it expected instructions without breaking binary compatibility and the compiler wouldn't have been able to tweak for different CPU's without a fat-binary approach.
> Modern operating systems have traditionally been written in C (and C++) plus some assembly language code. D can do everything C & C++ can do but it would still no doubt need the assembly language code.

Actually, contrary to C and C++ language specification, in D, support for inline assembly is part of the language specification.

> downvote

sambeau 50 minutes ago | link | parent | flag

I fear you are confusing systems programming language and operating systems programming language (or conflating).

Go is a great systems programming language especially for modern concurrent systems — http servers etc. It talks to C easily so you can integrate all kinds of system level code into your apps. Having a Garbage collector makes it trivial to write long-running daemons.

Modern operating systems have traditionally been written in C (and C++) plus some assembly language code. D can do everything C & C++ can do but it would still no doubt need the assembly language code.

Go lacks manual memory management. Some say that this would be a barrier for writing an operating system while others don't. The fact that you would have to use some assembly language code to talk to the hardware and you might need to add some manual memory management via assembly language code. After that I'm sure the garbage collector would make the OS more reliable and potentially a little quicker in places.

While I am on the D and Rust field, I support Go's ability to do this.

Go is no different from Oberon in system capabilities. And Oberon was used to write quite a few desktop systems used at Zurich's ETHZ during the mid to late 90's.

The OS bootloader and the kernel package for hardware interactions were written in Assembly, with the remaing parts in Oberon.

You can read all about it here,
http://www.inf.ethz.ch/personal/wirth/books/ProjectOberon.pd...

> Either way I don't see why Go gets criticised for needing a bootstrap layer when operating systems written in C and C++ also need this.

Because many tend to assume compiler extensions to C and C++ are part of the language.

It is a fun quiz asking C and C++ developers what is part of the standard and what is compiler specific behaviour.
thanks man. your company is sweet.
"Must be pretty embarrassing that an alum has so little confidence in their product that they'll bite at the first acquisition offer that comes around. They probably could have saved everyone the trouble by applying to Pinterest directly."

When you're funding dozens of startups a year, this kind of thing is going to happen once in a while. It's an expected outcome. I'm glad the founders had an exit that makes them happy.
I find this article to be pretty overwrought.

NSA efforts have focused on exploiting applications, weakening encryption standards, and subverting telcos and big hosted service providers. None of those are managed by Internet governance bodies. Altering the internal structure of ICANN would not inhibit NSA activities one bit.

The revelations of NSA spying have pissed off a lot of other countries, and no doubt increased their desire to splinter the Internet into a federation of national networks, which would be easier for them to each respectively control. That would help them protect from NSA spying... but it would also give them greater capability to control every other aspect of Internet access.

This is the approach that was rejected at the ITU, and recall that we all cheered that result.

I think it's interesting that this article describes the values of freedom and democracy as cherished by the U.S. Aren't they cherished by all people? Who doesn't want to be free?

There is a group of people who don't cherish those values, and those are the leaders of national governments that are known to be oppressive, censorious, or both. Would China really be a better steward of "Internet values" than the U.S.? I don't think so.
Gotta keep the lights on somehow, and plus it looks like you can theoretically just go to a bike shop and register there.
A) Wat.

B) Somebody's gotta write those serialization libraries, and they probably do a fair amount of string manipulation to do so.

C) You can't .join data streams without buffering, which defeats the purpose.

D) Adding commas on a preceding line every time you add a new item to a list can pollute diffs.

E) Trailing commas are syntactically correct in ECMAScript 6, and supported by a fair few other languages.
The small one is only $9.99 => http://www.amazon.com/The-Little-Countdown-Calendar/dp/B007L...
It will always be free to register through a bike shop or an advocacy organization.

It shouldn't be tough to get registered for free ever - but by charging a fee we give bike shops a value they can give to their customers.
Ask HN: where you are hosting Go apps?
I hope you can make it too!
It punishes the poor because prices for goods and services rise much sooner than wages or salaries. Those making the lowest wages are hurt the most by this.

If we are going to have a minimum wage, it would be a bit more sane to have it change automatically and regularly, pegged to inflation by some agreed-upon and not-constantly-screwed-around-with formula ... but that doesn't mean the BLS wouldn't fudge the numbers anyway, in order to help / hurt those in power.
> Lavabit intentionally structured their service such that there were only two ways to get at a criminal's email: obtain a copy of the suspect's private key or compromise the entire service.

This is a very disingenuous way of phrasing this. A far more accurate way of phrasing this is: lavabit did not implement a feature that would allow you to compromise a specific user's emails. They simply implemented the most secure option. Of course you can compromise any user of a service by compromising the whole service. That is not something they did "intentionally", that is simply how the world works. If it were possible to make it completely impossible to compromise a user's emails, I'm sure they would have done so.