skysight-inc/HackerNews huggingface dataset:
3 years ago, I benchmarks it with thousands of lines: SVG was faster than Canvas in Internet Explorer 10, probably due their extensive long history with their VML legacy rendering. But SVG was a lot slower in Chrome and Firefox than Canvas probably due graphic card accelerated Canvas implementation. SVG wasn't supported in Android 2.3.x. From my experience back then working directly with raw-SVG in HTML5 wasn't a great experience SVG is based on XML after all. Working with raw-Canvas meant implementing a basic render loop myself which refreshes the area and the Text related API is a bit complicated and slow.
Best advice on this page. Instead of buying the Nespresso, and enjoying the comfort and consistency of that, buy a grinder and an espresso machine... and enjoy the craft of making espresso, cappuccino of whetever you like.

I have the classic Quick Mill 820 (around $600) and buy quality beans from a local coffee roaster: $30-35 for a pound of their best kinds. Using 7 gr. for a standard espresso yields 70 cups, thus 50 cents per cup.

Nespresso capsules are at least 75 cents. The flavor might be the same, the comfort might be higher... but it's more expensive, and you'll never learn how to make a cup of coffee yourself.

Bonus track of buying beans and grinding them yourself: you can make a pour-over filter coffee, a cold brew, a cafetiere, Moka pot coffee with the same ingredients: water and freshly-ground coffee, and enjoy the variety of flavors because of the differences in making the drink. Try that with Nespresso...
On-Demand Startups Aren’t Delivering on Promises to Workers
DevOps Isn’t a Job. But It’s Still Important
The linked website makes my browser crash… (Firefox 31.6).

I don't know what it is supposed to be but if it is a web tech, it is clearly not production ready.
Wholeheartedly agree! We never publish a blog post before the feature actually is live. We want people to be able to immediately go ahead and play with the it—which is also why we treat these posts as mini-readmes, i.e. we always try not only to paint the story behind the feature, but also do a short intro to how to get started (code snippets etc.)
Expensive wine taste cheap
My advice: for the money, the X250 is much better bang for the buch. Components are easier to replace, you can get fantastic touchscreens, the body is thicker but smaller and just as portable, and you can get the 6-cell battery pack for a ridiculous 20 hours of battery life.
>>Large, powerful states with a lesser educated population will inevitably drift towards totalitarianism

How about India?

Don't treat states or societies as people, they are not people rather they are made of people. Totalitarianism isn't the outcome of a system it rather the outcome of the people oppress and the cowards who do nothing to stop it.
The best use I see of those is in all sorts of waiting rooms - at car garages, doctor's waiting rooms, etc. You don't have to train your staff to use an expensive coffee machine which needs cleaning and maintanence, you buy a $100 nesspresso machine and if a customer wants a coffee they get one within 2 minutes,and it tastes very nice, with froffed milk and everything. I feel like it works very well for businesses.
I can see literally no text on chrome, and some capital letters are missing on firefox. All latest versions. Even without ad blocking
Canvas
* Bitmapped graphics
* Immediate mode
+ Fast for simple things
+ Minimal drawing overhead
- Interactivity has to be handled manually (e.g. by checking whether click coordinates coincide with a drawn button)
- Animating things (usually) mean redrawing most of the canvas for every frame
+ Ability to manipulate pixels if needed
* Everything is drawn manually

SVG
* Vector graphics
* Retained mode
+ Fast for simple things
- Everything that needs to be drawn has to exist in the DOM
+ Interactivity can be handled via events by the browser on every element if needed
+ Animating things (usually) just mean to manipulate that thing in the DOM
- Limited ways of arbitrarily manipulating the composed result
* Everything is drawn by the browser
+ CSS support
+ Sophisticated text rendering support

It's mostly a trade-off of what you want to do. The things marked with * above are not clear benefits or drawbacks.

For a chart that consists of axes, ticks, a plot and maybe a few other things I'd always go for SVG unless compatibility constraints force me to go to bitmap graphics. It just maps much better to vectors than to pixels, but there are limits, of course. Heatmaps often are better drawn via canvas, especially those where there are no discrete shapes but rather blurry blobs of colour.

Performance is a difficult topic and hard to compare, beyond simple things: In canvas (mostly) your only option of optimisation is to draw less, i.e. touch fewer pixels; with SVG being rendered and composited by the browser it often boils down to »don't move elements that don't have to move« to enable the browser to render less and not throw away every partially composited texture. In IE and Chrome SVG has quite great performance, in Firefox you have to be careful what you do. Uusally it scales well to a few hundred or thousand DOM elements, though, depending on what you do.
I feel you, I had to get 32GB which left me with little options: http://www.asus.com/us/site/g-series/G751/
Where do teaspoons actually go?
My first big website was written in this language around 1998-2000 (before being converted to PHP). Loved how concise Rebol is, with everything being blocks, and how you could write a website or GUI based app with minimal effort. I also loved how PHP had a function for practically everything so it won and still continues to win (despite trying stuff like Ruby/Perl/Go/etc).
Presuming that you wouldn't invoke mv nanoseconds before creating the symlink, I think mv should resolve the symlink first and, if the move doesn't make sense, abort. It will still need to handle the case where it looks like the move makes sense, but the kernel returns EINVAL or whatever.
On a Nexus 7 2013 and Firefox, all of the demos work but are quite slow.
Case Study: Reinventing Online Banking for Millennials
The Paper History of Code Reading
Hiring feasibility.
Linux: Software Raid 0 on SSD's and discard corrupts data
India's Fastest PetaFLOPS Supercomputer CRAY XC-40 at IISc
We are past the point of Peak Telephony
Ask HN: What are the best hackathon ideas you have seen?
What are some cool/path-breaking hackathons you have seen?
> Are you familiar with Moka Pots?

Not very familiar, no. I have seen them, my grandmother used to have one -- but I don't think I ever used it myself.

Many people here (who try to resist the Nespresso tsunami) use a thing that I just found out is called a "French press":

http://en.wikipedia.org/wiki/French_press

or for a better picture:

http://www.crateandbarrel.com/bodum-chambord-34-ounce-french...

It's quite popular and makes decent coffee (my wife uses one) but it's still more complex than pressing the button on a Nespresso!
Is this a strawman?

I expect that every browser implicitly uses SIMD by way of the compiler identifying and inserting the correct instructions (MMX, AVX2...), what exactly is Intel's contribution in this, did they manually vectorized some tight loop?
SVG performance in IE (since IE9) has really been and is stellar, indeed. Chrome caught up mostly by now and at least at work the difference between Chrome and IE for certain tasks is that Chrome spends more time rendering and IE spends more time JavaScripting. Firefox SVG performance has been disappointing, mostly and mobile browsers are often better off with canvas as well since performance is generally constrained there.

SVG performance in IE doesn't date back to VML, though. They just made hardware-accelerated rendering a major feature of their browser back then, while no one else was doing it properly. Similar to how Chrome started with JITting JavaScript to make it fast and everyone else caught up on that afterwards.
Earlier this year I was in the Philippines recruiting for a development office there. Although we weren't targeting grad programmers, the market dynamics we faced were likely similar. There are a whole bunch of substandard programmers that work there, and so using an online test as an initial filter proved very useful; there was no other way we could deal with the volume.

A local company we partnered with to help us recruit suggested https://codility.com/ which we ended up using.

We choose a pair of medium level challenges for the candidates. What we discovered as we went was that their score on the task was not the most important information we got from their test. How they wrote their code was. Looking at how they break up their solutions, and even things such as choices of - or consistency with - syntax was very informative and a good predictor of quality.

My advice would be to not set the bar too high for this kind of test, use it as a filter that eliminates the candidates you definitely don't want to interview, then proceed with the normal interview process.
Yes! Very true! I love to go to the bike shop just for the Nespresso... ;-)
I saw 4 demos, they all worked fine on Firefox and Chrome (uptodate versions). Bit heavy on the CPU, I imagine that impacts some machines' performance.
But I can't buy any small laptop / ultrabook from Lenovo (or most other manufacturers) with 16GB at all, no matter the money.

Calling it segmentation would make sense if I could actually give a boatload of money to buy something that includes it. Getting a huge W workstation really isn't an alternative.
Apple’s planned iOS 9 ‘Home’ app uses virtual rooms
The new IBM official website
Enable HTTPS to secure your site
True, but there is a certain stigma against those languages in HPC.

Otherwise, something like accelerate, Alea GPU or Aparapi might be better approaches.
Moka Pot to capsule convert here. I used to grind and brew every weekend morning while buying my weekday cup at work because it wasn't convenient enough to use and clean every morning.

Now I use a Nespresso every morning and save the $3 I would've spent at work (though two capsules plus milk and syrup comes to not much under $1).
shhhh.... I read Hacker News at work. wink
Famous for winning the vaporware award two years in a row, :p.
It acts very organic. But I have to wonder if the organic motion is a good thing. Wouldn't it be more efficient to control the arm using IK, but let the robot "think" where the arm should be ? I mean I could easily imagine a straight line, but I can't draw it.

This would also speed it up imo. Since some things can easily be solved using regular algorithms. Our brains also come with some pre wired functions.
First I'll make some assumptions about your requirement based on your post, correct me if I am wrong:

a. all the potential web sites in your mind have fairly straight forward server side operations, things like getting data into/out of databases, basic user management, etc.,

b. the front end web pages will have some medium to advanced level graphics/animations/interactive features, and you would like to use JS/CSS/HTML for them,

c. you are going to code both front and back end all by yourself, at least for a while,

d. all of the sites will not have heavy traffic, at least no for quite a long time,

If these are true, then it's best to 1. choose a simple and easy to learn server side framework, so you "can hack together a site in a few hours", 2. and then so you can focus your effort on learning and practice front end technologies(JS/CSS/HTML).

For 1, do yourself a favor, choose a PHP framework (Laravel/Lumen, Silex, Slim, Fat Free, etc.), don't choose python's frameworks just because you know some Python, especially do not choose Django. Definitely not rails (huge monolithic framework, plus a new language Ruby for you); For 2, start with JQuery/Bootstrap, you cannot avoid them, they are everywhere.

You don't actually need the big advantages of Rails/Django (their gazillions of extensions/addons, scalability, feature sets that covers every problems under the sun from one man shop to enterprise-y projects, etc.).

And next time when someone laughs at PHP, just smile, and silently remind yourself that Facebook started with PHP (and PHP is behind majority of all web sites today).
Hey there,

Wojtek from Estimote here. Thanks for sharing your thoughts and sorry for the delay with stickers: it took us longer than expected to reach mass production. It was a lot of work (and admittedly more time than initially assumed) to get the enclosures, firmware, PCB and antenna design, and SDK just right. But we'd rather change the shipping date than compromise on product quality. While in software development you can go with the 'f--- it, ship it' mantra and fix stuff with rapid release cycle, it doesn't really apply to hardware.

The initial hurdles are behind now and we're shipping a lot of Estimote Stickers daily now, burning through the backlog fast. All pending pre-orders should ship by the end of Spring, or in early Summer at the latest. You can send me your order number to wojtek[at]estimote[dot]com and I'll check what's the status and when it's going out.

Cheers.
Tyrrhenus Mons as Seen by Mars Color Camera (MCC)
BlueJay - Law enforcement crime scanner
To be fair, that link is almost 15 years old. Back then we had 32-bit address spaces, and that was the main limiting factor for threads (because you'd often allocate 2MB of address space for each stack). And we didn't have multi-core processors.

These days you could actually reasonably have 10k threads. In theory switching between threads shouldn't be much different performance-wise than switching between callbacks in an event loop (either way you take some cache misses), and the thread stack is probably more cache-friendly than scattering objects all over the heap (and certainly easier to use).

But now you have the problem that synchronization between threads (whether mutex locking or by lock-free algorithms) is complicated and surprisingly slow, specifically because you have to worry about all the ways simultaneous memory access might confuse the CPU or its caches. Whereas with single-threaded async each callback is effectively a transaction, without requiring any slow synchronization.

Of course if you're doing single-threaded async then you probably aren't fully utilizing even one core. You see, even if you think you are doing everything in a non-blocking way, that's not really the case all the way down the stack. If you try to access memory that is paged out, guess what? You are now blocked on disk I/O. And because you aren't using threads, the OS can't schedule any other work while you wait. And even if you're pretty sure you never touch memory that is paged out, you surely do sometimes touch memory that is not in the CPU cache, which also takes a while. If your CPU supports hyper-threading, it could be executing another thread in the meantime... but you don't have any other threads.

And then multicore. The previous paragraph was a lot more interesting before multicore, but now it's just obvious that you can't utilize your CPU with a single thread.

The heavy-duty high-scalability servers out there (like nginx and I'd guess HA Proxy) actually use both threads and async, but while this gets the best of both words, it also gets the worst: complicated synchronization and callback hell.

Basically, all concurrency models suck.

https://plus.google.com/+KentonVarda/posts/D95XKtB5DhK
Why does this look like Three.JS code? It seems to have very similar capabilities (although Famo.us seems to have less features) and even the code seems to be familiar to me as a ThreeJS guy.

Also I'd argue that ThreeJS can make for better looking results:

https://clara.io/view/193070f2-e8af-4afc-a531-9d82338b5288
Has anyone actually managed to loop animations on the web without putting the CPU on fire?

It was my task recently to optimize some animations (done with Web Animations polyfill) and even though all the profilers showed that CPU is doing almost nothing (GPU animated all the stuff) Chrome was using ~25% of CPU all the time which resulted in a noisy fan after a minute or two.

I feel like I’m missing something here, I believe there must be a way to do it…
…and for laypeople?
Without being dogmatic about it, I feel similarly about fixing things by inserting sleeps.

At a high level, you often see programmers sprinkle sleeps into their code to "fix" race conditions or deadlocks. That doesn't really fix the problem, it just moves it around and it's usually done because they don't know how to reason about the underlying problem and fix it properly.

You need to sleep long enough that whatever you're waiting for will definitely have finished. Most of the time you have no exact guarantee of that, so you have to pick some N that is relatively large. Inevitably, no matter what N you pick, sooner or later, the thing you're waiting for will take N + 1 and things break. To make it worse, the N + 1 situation often happens because you're getting an unusually large amount of traffic or because something else in the system is already in a failure state. So the breakage tends to come at the worst possible time and exacerbate things.

Meanwhile, if you sleep for N ms somewhere, one thing you can guarantee is that whatever you're doing will take at least N ms. There's no way to make it faster, even if it may have been unnecessary to wait that long. Often not a big deal, but the more developers sprinkle sleeps into their code, the more often you run into bizarre performance bottlenecks as a result.

Network timeouts and similar are kind of a fact of life, so there's no perfect solution. But if you find yourself trying to solve a problem by sleeping for some arbitrary period of time, a little alarm should go off in your head telling you that there's probably a better solution.
I do some work on Namecoin[0], though lately I've been pretty busy with other things.

Please be aware that these accounts are not controlled or endorsed by Namecoin developers. The twitter account actually has me blocked. On a personal note, I find the cover image on the Google+ to be in poor taste.

Please see this blog post for more details: http://blog.namecoin.org/post/99085765545/official-social-me...

0. https://namecoin.org/?p=team
We (http://Clara.io) run multiple NodeJS instances per machine and our code base is Async. I believe this gives us the best of both worlds.

Also Sync versions of calls in NodeJS are likely going to be deprecated, thus this won't even be possible in NodeJS going forward.
Copy-then-remove-old has vastly different semantics. It creates a new file identity. For a start, just imagine what happens when the old file is still open from some processes.

I'm not saying there should not be convenience wrappers taking the dangerous route. I'm saying there is no shell interface that fails gracefully if no safe operation is possible.

Maybe mv should just get an -x flag, like GNU cp and other commands have.
Domain / Website Sale :)
Banned.io - Website for sale
Wholesalelist.co.uk - Website for sale
Bangkok.io - Domain for sale
Rank.onl - Domain for sale
Bids.ly - Domain for sale
Flirting.io - Domain for sale

Contact: hey@andrewraynes.com if you wish to make an offer :)

Thanks!
I haven't heard that quote before. It is very good, if not quite scary.
OA here - there's a mirror here: https://archive.is/P9IYd

Yes, bluehost sucks.

Happy to answer any other questions.
You want to use GPU-based skinning or similar techniques for best performance.

Also are you limiting your framerate (not framework, sorry) to something reasonable?

Also I recommend not creating too many objects to be GC'ed.
Could someone explain in simple terms how is the target set to the robot so that it can learn to accomplish the task? For example, what inputs are provided in order for it to understand that it needs to put the cap on the bottle?
> Personally, I use kvm for all my virtual machines, since I don't want to run everything under dom0

Did you mean Xen?
I think that dishonest hype is worse than no hype, yes.
EDIT: On rereading it occurs to me that I'm getting caught up in poking holes here. The proposed ZooKeeper solution will likely work fine in the simple case, if used with care and attention. It gives me the willies a bit (because I don't think it's a good idea to force users to separate locking from the DB level), but as long as the use case is restricted to compare + set on a single document, there's little reason to think that there's much wrong with it. Apologies if I come across as belligerent.

-----

> Don't see why you'd need locking. Node A receives a request to buy an item, A asks nodes B, C, and D to confirm that the item is in stock in each node's internal state. If all give the OK, A lets the purchase go through. If node B goes down, then A just asks C and D. I don't see the need for locking or a master/slave.

Presumably in order to ensure that B, C, and D can consistently check the object's state, nothing else can be allowed to write to it at that time - A effectively has to lock the object using zookeeper. You then have to make sure that the object gets unlocked if A goes down after locking it, or most particularly if A hangs, keeping the zookeeper session open? Otherwise your other app servers could get caught in a very long or infinite lock wait.

You've also got to keep track of the rest of your code, and make sure it never alters these same objects without locking. I'm assuming here that you only distributed-lock objects when you absolutely have to, in order to improve performance: otherwise you're going to start hitting some of the issues that make it hard to cluster relational DBs with decent performance (modulo some coarser lock granularity for a document-based system).

As you add complexity to this approach (say, perhaps you need to work on two objects at once), you also start having to think about other problems like deadlocking, or what happens if your zookeeper session fails part way through your work, where you've made half of the changes you want to make, and you can't easily roll back. This is all fine if you have programmers who are competent to think about these kinds of problems, but they're typically pretty expensive - and my experience is that most people just don't really bother to think about it.

> You have a single point of failure with a single, monolithic server. If its hd dies, you will be in serious trouble restoring terabytes of db.

Any system of value will of course have a replica, meaning you're perhaps more likely to be worried about network problems than the server falling over. Of course this is still less reliable than a perfectly implemented multi-master distributed system, but it's also hugely easier to use correctly - and the likelihood of failure of a single node is actually very low. Obviously if you literally cannot afford any downtime, maybe you go with a distributed system (or follow the banks and use mainframes..), but businesses that will be killed by network blips are certainly in the minority.
Thanks! I sometimes can't see through the B.S., and need to be reminded. In the end, it's about making money--moving goods to consumers. I'll keep an eye out for MCRed. I like the way you think!
Xen is also used on the desktop, e.g. Qubes (Type-1) or Bromium uXen (Type-2).
ITMO managed to solve all the problems and win with 2 more solved problems than the second team [1] - which is extremely rare.

Gennady Korotkevich extends his impressive list of achievements in competitive programming (contested by no one else in the history) [2]. He's currently on top of both most prestigious rankings: Codeforces [3] and Topcoder [4] (with insane lead in the former).

There's a list of ICPC World Finals participants with their online handles [5] (ranked before the contest according to their likelihood of winning). There are video explanations of all solutions from the World Finals [6].

[1] http://icpc.baylor.edu/scoreboard/

[2] http://en.wikipedia.org/wiki/Gennady_Korotkevich#Career_achi...

[3] http://codeforces.com/ratings

[4] https://www.topcoder.com/tc?module=AlgoRank

[5] http://codeforces.com/blog/entry/15090

[6] http://codeforces.com/blog/entry/18016