skysight-inc/HackerNews huggingface dataset:
Go memory usage will definitely not be an order of magnitude less. This is something that cannot be emphasized enough: the idea that a Go program of any substantial size would use an order of magnitude less memory than a Java one is completely wrong.

First, the "proof": https://days2011.scala-lang.org/sites/days2011/files/ws3-1-H.... That's a paper from Google. The memory footprint of the Go program was 501MB, the Java version 617MB, and the Scala version 293MB. Now, given that the Scala version and Java versions were so far off in memory just tells you that a bunch of it just depends on some specific things used. Most importantly, it should dispel the myth that Java uses more memory than Go. The JVM isn't perfect, but arguing that Java uses an order of magnitude more memory is simply wrong.

Java has a bad reputation for memory usage among people who have never run substantial programs because a Java hello-world (or other small programs) will often allocate itself a decently sized heap. Java programs also take a while to start up because of the JVM, but that doesn't make Java slow.

Go certainly has some good things. Structs can help with memory locality and avoiding some unnecessary pointers. But that's not going to help one with attaining an order of magnitude better memory usage.

But Go's garbage collector isn't made for memory efficiency, but rather short pause times. That can be great, but Go seems to have made the choice that shorter pause times are preferable to throughput (actually accomplishing work) or using less memory (might as well throw more RAM at the problem).

Now let's talk about Kafka specifically. It's been a while since I've looked at it, but Kafka actually doesn't keep the data on the JVM heap. It writes to the filesystem using the kernel's built-in async flushing and uses sendfile to write data directly from the OS page cache to sockets. In a lot of ways, Kafka bypasses its own runtime and just leans on the OS for the heavy lifting.

I like Go, but it isn't magical. It certainly doesn't offer an order of magnitude memory improvement over Java. Go has some great bits, but if you're thinking that you'll get an order of magnitude memory improvement, it's not there. It might even use more memory than Java.
From my understanding almost every phone with CDMA uses a Qualcomm chip.

So why was CDMA adopted if there was only one supplier of the technology?

Telco's and manufacturers hate to have one supplier of anything, because it means the supplier can haul them over a barrel. Sounds like Apple's complaint is that they overpaid Qualcomm for CDMA components (among other things) after they introduced a CDMA iPhone.

So why was CDMA adopted at all if Qualcomm controls the patents and (seemingly) is the sole/dominant supplier of CDMA modems?

CDMA doesn't seem to be better than GSM in any technical respect.
> Fast: written in a new exciting programing language ;

IMO change this description, it's rather strange...
This is really awesome!!! I used to manage this kind of separation by using private windows and using different browsers. I don't really want to manage these by window or create user profiles, as may be the case in other browsers.
I am curious why you recommend everyone else switch since you say "The results are passable." That's not exactly a ringing endorsement.
Eyes don't see in frames per second, they see in light intensity over time. That is why you can see lighting strike and why the image persists in your vision for a few seconds after.
Yes it is used. But there is a whole wealth of more general additional techniques based on probabilistic graphical models. A good reference for those curious is probabilistic robotics: http://robots.stanford.edu/probabilistic-robotics/
I'm not quite sure what you're getting at. It sounds like you're describing a known-plaintext attack, which modern ciphers are not vulnerable to. And what you are describing makes it seem like full disk encryption would be totally useless, but we know that's not the case.
Then the DNC can continue to lose future elections.

I'm not a Trump supporter; I voted against Clinton, and my vote was first to Sanders. I'm happy with my vote; Trump winning has galvanized progressive coalitions in a way that wouldn't have happened if Clinton had won.

Establishment Democrats who aren't progressive enough need to die off faster. Then the Demoractic party might run candidates worth voting for.
> The problem is honesty isn't rewarded anymore. Someone working hard will be beaten by someone who tells all the fancy stuff...

Wait. Are you talking about politics now? :)
Computers can transcribe spoken language into text at great accuracy, but they can't understand the meaning of text at the same level of accuracy yet. Meaning is much harder than simple transcription. Voice recognition is to speech like OCR to print. What we want is to speak to computers and have them understand what we mean, like humans. Such an AI would be able to carry a conversation, extract data from and reason over documents, or perform complex actions based on verbal commands. They would need to have a good physical and conceptual understanding of the world, otherwise they could not use reasoning.
Ghostery blocks specific well known trackers. An approach like Container Tabs would prevent these types of tracking in principle.

Valid use for 3rd party cookies is something like single sign on. (Eg. sign into all Google services at the same time, even though they use separate domains)
Qubes OS does exactly this: www.qubes-os.org
Nah just bugs me. Like you wouldn't drive a DuckDuckGo mobile right?
Thanks to Sergey Tihon in Minsk the Stanford NLP library gets made available as a .NET library about as fast as new releases come out. http://sergey-tihon.github.io/Stanford.NLP.NET/
If it's really a beta in the true sense of the word, it's not reliable enough to export one's mails. It would be better to wait till it's out of beta for those who need flexibility to move out.
I have an excellent example of this.

I worked at a small technical training company in early 2001. We had an in house application which was used for scheduling classes. If you entered a trailing space the program would beep 3 times and display a dialog box warning you in capital letters that trailing spaces would corrupt the database. The button to close the dialog box was labeled "I understand and will obey". It probably took the developer more time to create the dialog box than to sanitize all inputs.
Have you considered https://www.qubes-os.org/? It's not exactly what you're asking, but it has similarities.
Ok let me correct that. I thought you were just trolling. But you're really a parasite.

As defined: a person who habitually relies on or exploits others and gives nothing in return.

It's ok to use free services, to abuse them, especially if you are not capable of paying. It's understandable. A lot of people do that. But to be honest in saying that you don't really care about the company failing or if they go bankrupt for whatever reason even if you are an avid user because a new service will pop up that is free. Seems to be morally wrong.

Your reasoning also shows that you don't have your own company or you're not a developer creating or selling softwares. Because if you are, you would be afraid of people like you who will abuse your company the way you are abusing it now. This is just an assumption. I might be wrong.
Top 16 Computer Security Books
A default gopath doesn't help a user who does "cd dev; git clone https://github.com/coolprojects/project; cd project; go build" (or make)

The default gopath does not help there. Sure, if a user knows how to use go's insane global-project-directory-bullshit then they don't need this, but since it's a go-specific bullshit, they might not.

Every sane language lets you have a directory where you want for each unrelated project. Only go dictates some crazy tree and defaults to creating it for you in $HOME
oh! nifty shortcut, thanks =)
We should do it like they do in eastern europe, such as prague, where you have to pay a certain amount of cents and they stay pretty clean.
Apparmor certainly has it. It also pretty easy in apparmor if the rules you want to set are permanent but I don't know if a dynamic api exists for apparmor.
Of course, but the point is that Mozilla is making this easier for the average folks. Eventually it will appear in stable releases.
The Business Source License is not Free as in Freedom. The FSF states the first requirement for software to qualify as Free (https://www.gnu.org/philosophy/free-sw.html) is:

"The freedom to run the program as you wish, for any purpose."

Any limitations on use make the software non-Free.
Learn Git Branching(interactive)
This is a neat idea but it doesn't implement the main reason I use separate profiles in Chromium - different security contexts based on how much you trust a site.

Example: my main general browsing profile has flash, PDFs and all plugins disabled, absolutely all handlers switched off, all hardware access off, WebGL switched off, no account logins and uBlock Origin set to aggressively block most third-party requests.

My second most used context is for personal sites I login for - with access to third-party cookies (for those sites) and running most third-party requests with standard uBlock rules.

I have yet other contexts (Chrome profiles) where Flash is enabled if I need that, then a separate browser for Java etc.

I'd like to see these security levels built into browsers where the contexts are built around permissions and site trust rather than access to the user store (which is also important)

I don't think it's realistic for most users to do this right now with profiles, as it requires a lot of discipline - it needs to be in the UI.

Browsers have become as sophisticated as operating systems and we're accessing more and more of our personal data using them, yet the model of 'every site has access to everything' be it a site you trust, like Gmail, or a random URL you're clicking on - has somehow survived.

It's the equivalent of the old days where everyone would run their local systems with an admin account for everything. I really think browsers need a rethink along these lines where websites are treated like apps and you can apply a trust group to each.
On Linux, you just set up another user and it's one "sudo" command away.

Long time ago (win2000, before XP)I tried to do it on windows with the "runas" command, but things like IE would keep popping up with the wrong user (they managed to communicate with the desktop and have that open the new window) so it wasn't a good solution. Perhaps it is better now.
It's impressive how much progress that field has made since the 1990s. I know there are other criticisms of Applied Cryptography, but we understand so much now that we didn't at the time it appeared.

Something I find a bit disturbing is how much of our understanding of particular issues seems to depend on brilliant individuals. This is a bit like the Bernstein monoculture article that was discussed here recently but I'm also thinking of several of the items from Boneh's RSA attack overview paper, or maybe Xiaoyun Wang's hash function stuff.

Clearly all discoveries are going to be made and published by someone, but something about the academic field of cryptography keeps striking me as "wow, we're really lucky to have that person in this field". And that's a bit concerning because this phenomenon seems to suggest either that the field is still pretty small or still pretty immature, and in that sense may still be missing several important discoveries, for all the progress that it's made since the early nineties.
The row counts are very small. Technically, it demonstrates the point.

But if you have a Ferrari, you don't use it to take your child to school in 14 seconds, you drive it on the open road.

Show a case where serial index builds are impractical, but parallel builds bring it back to a reasonable level.

EDIT: this sounded more negative than I intended. Obviously parallel index build is an important feature.
I knew that would be confusing! Let me give you an example of the context where the dot should be seen just as a "reminder" rather than a differentiation symbol. When talking about a Lagrangian (let's say, in one dimension), which is a function of three independent variables, these variables are customarily denoted as t, q, and q-dot, thus obscuring the fact of their being independent variables, which would be much clearer conveyed by using, say, a, b, c instead. The even more confusing part comes later when they differentiate by q-dot, and it is this wrong impression of "differentiating by a derivative" that also could have been easily avoided by seeing the dot as just some kind of diacritic.
Any particular reason you prefer PyTorch over DyNet?
You need to learn more about The Intercept. Glenn Greenwald and his crowd spent the election cycle relentlessly attacking Clinton over her emails and Obama over his drone strikes.
> For anything where I want to log in or have a persistent identity (stackoverflow, gmail, etc), I set up separate Chrome profiles and manually open each site in the appropriate profile.

FWIW, this is also doable in Firefox: try 'firefox --new-instance -ProfileManager'; you can also directly open up a new profile from the command line (and hence do the same from scripts, desktop entries, or whatever else your platform supports).

I have one profile for my finances, one with NoScript in blacklist mode, and then my normal profile.
SnappyData: https://github.com/SnappyDataInc/snappydata
duckduckgo have significantly changed the way i use the web. namely the bangs feature. simply put it's ingenious.
https://duckduckgo.com/bang
the search has improved in the past few years but when it fails i merely have to add a !g to the query.
I'm fairly confident you know what I mean

No
Its not just the speed. Have you looked at ES6 code? You will see a modern language with all the bells and whistles, including classes, lambdas, coroutines, template strings, a few other sugary features and a python-like module system.

All the fixable weirdness has been fixed. Even `this` has been mostly fixed by arrow functions. It still has implicit conversions, but hey, typescript and flow make that irrelevant because they'd check statically for those.

What else is so bad about JavaScript? I really don't get it.

The DOM... thats another story.
We detached this flagged subthread from https://news.ycombinator.com/item?id=13450896.
feedburner (now owned by google) is a free way to email subscribers about new blog posts. http://www.taxiwars.org/ is hosted on blogger (part of the google empire), so feedburner was easy to install.

My other project uses Aweber. My friend uses our account more than I do - I have to prune the unsubscribes to keep us under 10,000 email. Looks like Aweber is about the same price as mailchimp, except they get you for an extra $80 when you break 10,000 subscribers.
The real problem with go get here is that it can't pick a version, only latest. Checking in vendor is much safer because your dependencies can't break you.

there are no good upstream suggestions on how to deal with vendor.

My preference is to use to use http://glide.sh/ and store 'glide.yaml' and 'glide.lock' in the repo, at which point the vendor folder can be recreated to the correct versions without needing to parse code or checkin vendor.

Glide is also really good at handling updates, pulling from alternate sources, tracking alternate branch names, etc etc.
One popular web server is https://suave.io/
You can use http://fable.io/ for f# -> js transpilation.
One big advantage is that you are able to use ts definitions for foreign js libraries.
The js is generated by babel which is also nice.

There are several active projects and bindings that you can take a look at there: https://github.com/fable-compiler
Me too. I work under the assumption that a packager can just grab the tarball of the latest stable tag from the repo's releases page on Github, unpack it somewhere and `make && make install`. I converged upon the same approach of setting up an ad-hoc gopath.
http://tvtropes.org/pmwiki/pmwiki.php/Main/OverlyNarrowSuper...

Also, there are a bunch of languages with functional features which compile to JavaScript. I don't think ClojureScript is more popular than, say, TypeScript or Dart.
This looks EXTREMELY interesting. Thanks for sharing.
Of course, that also means that you can only customise once.

I use separate Firefox profiles in order to have different add-on configurations, e.g. in my daily driver NoScript is set to whitelist mode, while in my special JavaScript-permitted profile it's in blacklist mode.
I usually use it when I download large files from my server overseas.
That's a great point. Thanks for articulating that. This is a contrast I have been seeing with my step daughter but I had not been able to put my finger on it.
I would be careful, a critical buffer overflow vulnerability was just found in the Douane kernel module: https://github.com/Douane/douane-dkms/commit/61023b91fbafab8...
Average user can't afford pay for all the free service they receive. If each user had to pay $20 a month for even only the top twenty websites they use and this would be beyond the reach of the average user; Google, Facebook, Free Apps, LinkedIn, Wikipedia, Yahoo, Twitter, etc.
I can't manage to copy links to individual posts without losing my place in the timeline, but there were a number of retweets of non-WikiLeaks related posts about Clinton. They also retweeted this tweet from when Clinton appeared with Pussy Riot in 2014:

https://mobile.twitter.com/HillaryClinton/status/45213072969...

There's nothing wrong with WikiLeaks supporting a candidate in the election. I do think it's wrong to pretend they're neutral or unbiased.
If you are serious, you can alternately use aria2 https://aria2.github.io/. Aria2 has been around for a long time and is quite robust and feature complete. It makes a compelling replacement for curl and wget.
I also suffer from an inability to stick with things, but that has nothing to do with being overexposed. We were poor, so I did very few activities. It's entirely possible it's nothing to do with you, but just her personality.
The firefox feature of `--no-remote -P` is the way to do that, which has existed since before the chrome browser did. Old feature.

This feature is not meant to solve that use-case since if your case is security, you need separate browsers/contexts/proceses anyways.

Separate profiles in firefox implement separate profiles (which may all be independently open side-by-side in different windows).

This exchanges less secure/strong separation with better UX by intermingling.

Firefox is just choosing to support either set of tradeoffs there.
Erlang community is really bad.

I went to a couple of meetups at OpenX. It's majority older programmers.

The topic of the day was how to attract new programmers to Erlang.

I've stated perhaps we need to emulate Ruby and have some killer framework such as Rails. Their community is very vibrant.

The response was no, stay the course, we don't need to do anything. What's the point of this talk of attracting new programmers to Erlang if the consensus was stay the course and do nothing?

This way back before Elixir was on the radar.

Stopped going to that Erlang meetup, the programmers were out of touch.

I am mighty glad that Elixir and Phoenix is taking off. Shows them that I was right. Either Erlang community change their mindset or stay the same.
I dropped a comment on his blog and a link to this discussion...

And how sloppy of me! I didn't notice the `pre;` in the code consuming most of the time (to be fair it's just 4 characters and I didn't put too much time to it). When I move that outside of the loop, before the timer, I get results that show improvement with the optimized version.

And indeed it looks like rdtsc is giving similar figures to clock_gettime now. I falsely presumed that it counts retired instructions.

I'm still surprised to see a speedup, and how badly the original version is performing.

My guess is that the conditional stores are poison to the CPU pipelines. The 64 bit version gets most of the performance out of it already, I presume it's because of the more efficient memory usage pattern.

I can't edit my earlier post any more, I'd correct it if I could.

Clang:

memcpy(tmpbuffer,buffer,N): 0.000000 cycles / ops 65232 nsec (0.000065 sec)
countspaces(buffer, N): 0.000000 cycles / ops 65176 nsec (0.000065 sec)
despace(buffer, N): 4.547286 cycles / ops 7654310198 nsec (7.654310 sec)
faster_despace(buffer, N): 1.582721 cycles / ops 2651677500 nsec (2.651678 sec)
despace64(buffer, N): 0.583952 cycles / ops 1025215835 nsec (1.025216 sec)
despace_to(buffer, N, tmpbuffer): 0.000000 cycles / ops 63847 nsec (0.000064 sec)
avx2_countspaces(buffer, N): 0.000000 cycles / ops 63697 nsec (0.000064 sec)
avx2_despace(buffer, N): 0.307253 cycles / ops 602528061 nsec (0.602528 sec)
sse4_despace(buffer, N): 0.310504 cycles / ops 534542967 nsec (0.534543 sec)
sse4_despace_branchless(buffer, N): 0.353851 cycles / ops 594652080 nsec (0.594652 sec)
sse4_despace_trail(buffer, N): 0.314221 cycles / ops 562439990 nsec (0.562440 sec)
sse42_despace_branchless(buffer, N): 0.608811 cycles / ops 1020576734 nsec (1.020577 sec)
sse42_despace_branchless_lookup(buffer, N): 0.608494 cycles / ops 1020062750 nsec (1.020063 sec)
sse42_despace_to(buffer, N,tmpbuffer): 1.779908 cycles / ops 2983955982 nsec (2.983956 sec)

GCC:

memcpy(tmpbuffer,buffer,N): 0.285702 cycles / ops 489599835 nsec (0.489600 sec)
countspaces(buffer, N): 0.000000 cycles / ops 63995 nsec (0.000064 sec)
despace(buffer, N): 4.751018 cycles / ops 8014809122 nsec (8.014809 sec)
faster_despace(buffer, N): 1.718575 cycles / ops 2898082416 nsec (2.898082 sec)
despace64(buffer, N): 0.883421 cycles / ops 1560479651 nsec (1.560480 sec)
despace_to(buffer, N, tmpbuffer): 6.424313 cycles / ops 10892716258 nsec (10.892716 sec)
avx2_countspaces(buffer, N): 0.031227 cycles / ops 52369789 nsec (0.052370 sec)
avx2_despace(buffer, N): 0.315633 cycles / ops 627793484 nsec (0.627793 sec)
sse4_despace(buffer, N): 0.319739 cycles / ops 554173689 nsec (0.554174 sec)
sse4_despace_branchless(buffer, N): 0.366240 cycles / ops 615638316 nsec (0.615638 sec)
sse4_despace_trail(buffer, N): 0.318973 cycles / ops 572262343 nsec (0.572262 sec)
sse42_despace_branchless(buffer, N): 0.638114 cycles / ops 1070772787 nsec (1.070773 sec)
sse42_despace_branchless_lookup(buffer, N): 0.637988 cycles / ops 1069642163 nsec (1.069642 sec)
sse42_despace_to(buffer, N,tmpbuffer): 1.768081 cycles / ops 2963488990 nsec (2.963489 sec)
Good article by someone who is obviously well-informed on concentrated startups, and whose efforts I can easily respect.

I agree that these are some of the universal features that have always functioned best when combined they yield the trust that is so essential.

Plus some of the best leaders will actually earn enough respect to exceed that which would be expected by their position alone, earning every bit of it, rather than imposing it from above (from a naturally lower ceiling).

In most cultures, it does seem, that situations will always arise where better leadership is needed in ways that can not be measured.

Sometimes only a type of natural leadership will do, the kind that can not be acquired.
Interestingly, this can also be the kind that does not fade even during periods without a team to lead.

And, some of the time when it really counts most, the need to recognize the optimum or required type of leadership will not be met without defying metrics completely.

So I then ask the question "Why would I want to measure leadership?"
qualitatively or quantitatively - in some way other than based on my own abilities and intuition
developed over a long lifetime of influence by those who have gained the most respect for their superior leadership

And I get the expert answer; "In a startup culture that is obsessed with management by metrics".