skysight-inc/HackerNews huggingface dataset:
How hard is it for people to switch, if they want/have to? They might be dependent on GitHub issues. That might be preventable by using some issue tracker that can actually be put under git (like Ditz), though I guess it makes collaboration with non-owners of the repository more difficult. Other than network effect, what else is it that binds people to GitHub?
The library to help deal with inotify events does not correctly handle the kernel inotify API spec. It is a poor library, and using something like that in init is a poor choice. init should be absolutely robust to reasonable kernel responses.
Perhaps also consider whether front-end frameworks are a Good Thing given your requirements?

Many of the largest sites on the internet don't use them in any significant way, and you could just as easily use Django to server HTML/CSS to browsers, as well as a Rest endpoint for mobile apps or other users of your data.
I've heard that when TV started spreading people thought it would never overtake radio. "Who has time to just sit and watch something?" You can listen to audio while you do other things.

Podcasting is probably my main "media" for the last 5 or so years. I listen to 15-20 hours per week as I commute, exercise, wash dishes…

Right now. As a marginal, unprofitable, poorly understood medium podcasts are amazingly "free." At least some of that stems from podcasting being broken.

Anyway, if anyone is looking for some fertile space to innovate, podcasting is it. Discovery is completely and utterly broken. Even just getting a podcast that you know the name of can be borderline impossible for less savvy users. Podcasting apps kind of suck too. Podcasts struggle to get interaction, which is important for discovery.
It can do simple control flow analysis and data flow analysis and generate the constraints out of that. It doesn't even need to be right, if there's a proper guard condition in the generated code.
There's a risk that this is a case of "best is the enemy of the good".

Rather than fix an issue that can crash a whole box, hold out until the "right thing" is done.
> It's mentioned that a patch wasn't accepted, but it was with good reason - it doesn't fix the problem (by traversing the directory).

The patch can not fix the problem: upstart can't scan the directory (or ignore the overflow, or handle it however it would) because libnih blows up without yielding to upstart. It does not call a NihWatch handler and does not return an error code.

So the first step is to have libnih at least not blow up (which the patch did), ideally notify the user (which the patch didn't). The purpose of the patch was not to fix the issue, it was to fix libnih's broken handling of inotify.
Well... on one hand side, it's probably better to abort than to get a possible exploit. On the other it's not a funny situation when one of your base services dies and it can happen easily (found some cases of remote-triggerable abort()s in systemd-resolve - patches were sent upsteam, nobody seems to care for a few days now).
> Upstart doesn't deal with the overflow

Tecnically Upstart doesn't even see the overflow, libnih blows up without notifying its caller.
Perhaps they have lost faith in this world and wish to create an better, virtual world instead. Which save-the-world problems are you talking about exactly? It seems to me that most of the "save the world" problems are political problems that require a human solution as opposed to a technical one.
"libnih" - I have no clue what this does, so I immediately read it as 'lib not invented here'. Otherwise, yay...more unstable software.
Working in industrial embedded systems, I know this ignorance in software design just to meet deadlines.

Doing testing myself on such device on one side I follow the mantra "The art of testing is to make border cases possible and not to assume that they will not happen."

On the other side I also have to deal with safety related stuff, where there is the rule: "The safety of the system must be maintained under any circumstances including during system with failures." That it is important to maintain human safety, like a crane should work _always_ within its limits even when failed sensors provide misreadings.

That is the same here, even when a certain service is going wild, system integrity and function must be maintained. Ignoring this fact under the assumption the cause is something else is for me just general ignorance in providing quality work.
wikipedia describes the situation here [0], but i think in general "literate" has a specific meaning here, that you need to know x amount of characters. Some cursory googling leads me to believe the rate for urban dwellers is 2000 characters, but for rural it's only 1500. According to a UNESCO study a few years ago, "11% of the world’s 800 million illiterate adults live in China."

I know it's comparing apples to oranges, but some of my friends in Hong Kong are perfectly fluent in Cantonese and Mandarin but really, really struggle with reading and writing.

[0] http://en.wikipedia.org/wiki/Written_Chinese#Literacy
Nah; but here is the config with slightly more comments: https://gist.github.com/mbq/7ddbfc2678961e10bb1f
The promise any service makes. To solve my problems and to work _as a service_ for me.
I did some testing a while ago in V8 engine and didn't see any performance benefits using bitwise operations. It seems the engine do these optimizations anyway!

I wouldn't recommend anyone doing optimizations in especially JavaScript unless it's really needed. Remember that optimizations are the root of all evil!
The best natural juices to reduce weight easily
I think there is a revival of interest, as mass scale automation is changing the way we use servers, and security issues are finally changing the desktop/mobile. I found a lot of interest when I organized a conference [1] which is tomorrow (videos will be available), which si encouraging.

[1] https://operatingsystems.io/
Ask HN: Hacker games through the browser?
I wondered if there are already some hacker games through the browser to play
> so I immediately read it as 'lib not invented here'.

> libnih is a small library for C application development containing functions that, despite its name, are not implemented elsewhere in the standard library set.
Do you have a screenshot? Because mine looks very similar to the URL below, where as you see there is no part of the titlebar that has the filename on it....

http://i.imgur.com/BrbI3Tt.png
so how is that any different from NAND MLC and TLC?
I bet they already got it patented with a cute "on a memristor" at the end of application title.
I would agree - things like global poverty, hunger, climate change, terrorism, malaria, AIDS, etc., all require high-level inter-governmental willing and cooperation.

(Now, to be fair, some of those also involve technical solutions but generally also of the governmental level of investment.)
This is a great example of how bad many open source projects are at accepting contributions from 'non core' developers. The patch is just rejected, when it actually looks pretty valid to handle all cases of return value from a kernel interface. While it might not be a perfect solution, accepting it with suggestions for additional improvements could have led to those improvements.
Since a git hash points to a sorted list of filenames and content hashes, to diff two git commits you lookup the commit objects by their hash, run down the resultant list of filename/hash pairs & then only lookup & diff the content of those files that have differing hashes (if they have the same hash, they must have the same content according to the git data model, so they can be safely ignored).

Hence diffing arbitrary commits with git is always O(N) in the number of changed files, regardless of the number of interstitial commits.
If "bit" is a portmanteau of "binary digit", wouldn't the analogue in a senary[1] number system be a "sit"?

[1] http://en.wikipedia.org/wiki/Senary
Rapid Stub APIs with Swaggerific
> Such barriers to entry

Reading a manual/tutorial?
No. Even a perfectly sandboxed Apache could be subverted to send modified (malicious) data to other http clients. Sandboxes are great, but just because something's sandboxed doesn't mean all security issues are now reduced to a DoS.
Interestingly, you brought up two things that are typically categorized as static analysis. Keep in mind GCC does figure out the values will never be negative and its run-times destroy all the JIT competitors listed on that page. Also, static compilers can and do generate code with guard conditions.
As someone not very familiar with D-Bus I’d like to ask what’s exactly wrong with the XML configuration files? It just seems like something everyone takes for granted. From the examples linked in this thread[1] they seem pretty clear and readable to me.

[1] https://news.ycombinator.com/item?id=8649477
So a comment containing an explicit referral to the guidelines is not considered moaning, but a comment implicitly referring to the guidelines is?
It depends if you actually need one. Do you need a full javascript frontend or can you sprinkle JS on top.

I'm a huge fan of Backbone. Its small enough to learn the in's and outs of it and also allows you to control the structure / design of the application.

This definitely has pro's and con's but for us it means we can swap developers and theres a design pattern thats easy to understand and implement.

We're actually building a pretty large Ember project at the moment (a project management tool called Matterhorn). Its been a great experience and we're planning on using it for all of our client projects going forward.

The learning curve is a little high and the 'plugin' eco-system is lacking to say the least. I actually think this is a good thing though as most people write terrible plugins. Roll your own and own it.
Gentoo handles this the best by integrating plugins as regular distro packages. It's brilliant.
I did initially think the cycle of flux was a bit too much, but since having to have actions be created from various sources, etc, I've come to realise that it's actually a really good balance.

Having a glance at Mercury. Looks interesting, but react is working so well for my projects I'd need a damn good reason to give it up.
Nice product. Thanks for the comment, really appreciated.
I completely agree with this. A lot of the games seem to appeal more too, because they've been written simply, with straightforward rules.

The BBC Master (which my children love) was also a terrific platform to learn to program on. It's just a shame that a lot of the disk drives and disks haven't survived very well.
Yes. They're all compilers. Static compilers just limit themselves to generating and caching code just once, one size fits all. Dynamic JITs can do all that and adapt at runtime.

You could even statically compile a binary and JIT on top of that based on runtime profiles. That would probably be the winning combination performance wise.
Maybe - it sounds tricky though, since optimizations can be rendered invalid across runs (e.g. a plugin may be loaded that invalidates a monomorphic dispatch optimization). So you must track and re-validate the assumptions underlying the optimized code before it can be used. Also startup code is often executed once, and so is a poor candidate for expensive JIT optimizations. That said, in principle it seems like one could do as you say - it's just hard.

Empirically, the industry seems to be moving from JIT to AOT, at least for clients. .NET -> Ngen, Dalvik -> ART, JavaScript -> asm.js, etc.

(Oh, and it's a suspect assumption that there exists other cores that "would be idle anyways!")
I don't really see how any of these are a problem with Angular specifically and not just a general problem with any development.

With any team that has varying experience, the beginner developers are more likely to write bad code regardless of the framework. You need to be careful with any project that is likely to grow.. it's called technical debt. You always want someone experienced with the domain to look through the code.

The solutions include, coding standards, code reviews, pair programming, refactoring, automated tests.. all the usual agile suspects.
Five Principles of Bug Tracking
There's more details on the technical setup behind WriteLaTeX (in particular the use of docker) in this slide deck by John L-M: http://jdlm.info/ds-docker-demo/#18
Safehouses every 500 meters seems like such a small scale...why did you choose that number and not something more distant? I'd think 800 meters would be a better distance.
It's not a ridiculous comparison, it's the exact comparison that the original post was asking for on a technical level, which we are diverging from.

I didn't think claiming that OS X is imperfect would be controversial claim. Here are two articles I found by Googling for "OS X bugs" that details some imperfections in the recent relase of Yosemite: http://fieldguide.gizmodo.com/the-worst-bugs-in-os-x-yosemit... and http://www.macworld.com/article/2849849/bugs-and-fixes-whats...

Does the mere existence in OS X make it "imperfect" beyond difference-of-opinion design decisions and has nothing to do with Apple charging money, or their limited hardware support?

Yes!

Would OS X be imperfect even if those two articles weren't readily findable via Google?

Still yes!

All software is flawed. Apple knows this and hosts Radar, their bug tracking system, to work out imperfections in their software. All code, whether closed or open source, has bugs, and we as a society haven't figured out how to write bug-free code in an economical way.
Hello, I logged in just for this comment.

I really must thank you for your comment, it has made me come to the realisation with what I have been doing with my lives.

I'm saying this out of sincerity, that your comment has had the most profound effect ive had in the last couple of years of reading comments.

It's been the final kick in the backside, so to speak. I just blocked reddit on my hosts file.

Also your comment is now my wallpaper. Really I must thank you again, for if I never saw this who knows how deep I'd fall.
I recently wrote about my experience with Angular in a different forum. Sharing it here:

I worked on Angular last year building an app with a few complex views. The initial days were full of glory. Data-binding was new to me, which produced much goodwill towards the framework.

Things started falling apart as I had to inevitably understand the framework in a little more depth. They practically wrote a programming language in the bid to create declarative templates which knows about the Javascript objects they bind to. There is a hand-rolled expression parser (https://github.com/angular/angular.js/blob/v1.2.x/src/ng/par...), new scoping rules to learn, and words like transclusion and isolate scope, and stuff like $compile vs $link.

There is a small cottage industry of blogs explaining how Angular directives work (https://docs.angularjs.org/guide/directive). The unfortunate thing is that all of Angular is built on directives (ng-repeat, ng-model etc.); so till one understands it in depth, we remain ignorant consumers of the API with only a fuzzy idea of the magic beneath, which there is a lot of.

The worst however was when we started running into performance problems trying to render large tables. Angular runs a $digest cycle whenever anything interesting happens (mouse move, window scroll, ..). $digest runs a dirty check over all the data bound to $scope and updates views as necessary. Which means after about 8k-10k bindings, everything starts to crawl to a halt.

There is a definite cap on the number of bindings that you can use with Angular. The ways around it are to do one-time binding (the data won't be updated if it changes after the initial render), infinite scrolling and simply not rendering too much data. The problem is compounded by the fact that bindings are everywhere - even string interpolation like `{{startDate}} - {{endDate}}` produce two bindings.

Bindings are Angular's fundamental abstraction, and having to worry about its use due to performance issues seems quite limiting.

Amidst all this, React feels like a breath of fresh air. I've written a post about what makes it attractive to me here: http://www.jasimabasheer.com/posts/on-react.html.

Compared to Ember, neither Angular nor React dictate as rigorous an organization of files and namespaces (routes, controllers, views), and have little mandatory conventions to follow. But React is as much a framework as Angular is. The event loop is controlled by the framework in the case of both, and they dictate a certain way of writing templates and building view objects. They can however be constrained to parts of the app, and so can play well with both SPA and non-SPA apps. The data models are plain Javascript objects in both (it is not in Ember), which is really nice.

Google recently released a new version of their developer console (https://console.developers.google.com) which is built on Angular. So the company is definitely putting their weight behind the framework. However, Angular 2 is not at all backwards compatible. That was quite unexpected. If I had known this going in, I would have never used it for the project. But it felt like such a good idea at the time...
If you were given a chance to choose your stack again, what would you pick now? (Considering all the learning you have gained after going with Angular for your large web-app)
>At some level I know that neither of these responses can be fully trusted, and yet I can't shake the feeling that one can be trusted and the other cannot. How can this be?

David Appell said it himself that what he believes isn't based in fact and can't be disproven in any way, in other words, a religious belief. Seems you just prefer science to religion.

"In climate science you can’t “predict” anything — climate models aren’t capable of predicting, because no one can read the future."
I think the Plan 9 hackers really try to avoid the C preprocessor ;)
There is something about 1980's-era computers which make them so much more accessable to kids than today's systems.

It's probably to do with how much simpler they are - if I can put my finger on it, I'd say it's because they don't have lots of Things which can tempt you to distraction; for example - if they had a web browser of some kind back then, you'd be tempted away from learning to program in BASIC, or learning how to load that simple-but-fun game.

They generally were single task machines that allowed you to focus on one Thing.

I'm looking at my Linux desktop right now on this machine. I have a web browser I'm using to type this reply. It also has 8 other tabs open - more tabs will be added later as I continue on my search for knowledge. I have a Konsole terminal open with IRC sessions to multiple servers and channels open. I have PyCharm loaded. I have a VM running, and more to run later. All vying for my time and energy. A child using this machine would be overwhelmed.

Even a Raspberry Pi can distract the user of it in the same manner as my desktop.

Perhaps it's time to reintroduce kids today to the CoCo2's, the VIC-20's, the C64's, the Spectrums, the ZX81's and so on. Perhaps getting kids to use single-task-at-a-time systems to learn instead of the distraction-inducing tech. of today, would be a very good idea.

When my son was 2.5 years old, I put in front of him an ancient old Compaq laptop running Debian. It had Tuxpaint running on it, and I just put it in front of him and let him go on it. Within a short space of time he was using Tuxpaint like a "pro", and then he learned how to power the machine up, and type in his login name and password. Sure, you can do this with today's systems, but they do make it so easy to provide tons of distractions.
But can't crashing be a good way to maintain integrity in the face of abnormal behavior? A critical system shouldn't depend on a single Linux box never crashing, in my opinion as an ignorant. It's too complicated a kernel to depend on that.
AOT doesn't exclude JIT! Doing both is the winning combination. AOT will ensure fast start-up time and JIT will ensure optimization to runtime conditions.

It's tricky I'm sure, but it'll happen.
Rails and Angular are apples and oranges. Angular isn't a full-stack framework, it's a client-side framework that handles data source interfacing and view updating.
Hi, you make you a good point but it feels like most things are designed to keep you coming back, so it makes it hard.
Workers in Silicon Valley Weigh in on Obama’s Immigration Order
And then take this anti-pattern and multiply it by the sheer excess of feeping creaturism; a massive vulnerability surface. If you thought AWS's short notice reboot everything incident was/is uncommon I suspect we'll be seeing a lot more of that sort of thing in the nearish future.
I'm checking the first two boxes with React/Flux. Having an experienced developer is usually a good thing, though.
I've worked on Angular projects of varying sizes -some as large as 30KLOC (products where every page has enough interaction to justify an Angular controller)- and I can never find myself agreeing with these articles.

Have I just drunk too much kool-aid? Or is it possible that with the right team, the right architecture, Angular can actually be a really great framework to use? The common theme for every large Angular project I've worked on is that the teams have leaned towards a more functional design where state is rarely used. This has always seemed to encourage smaller, decoupled modules which don't suffer from many of the problems that the author mentions.

But hey, it's probably the kool-aid.
Google case over online abuse settled in High Court
or you could just use Python
I initially gave my two girls an old desktop computer with a linux on it. They started to use it before I showed them how and they started figuring stuff out without me and soon I was sitting riveted in the background watching them discover things and trying to learn about computer UIs and work out how they thought.

Here's an old blog post about it: http://williamedwardscoder.tumblr.com/post/19500788060/my-te... - I think its a fun read.

Fast forward to now; that blog post is hopelessly out of date!

I gave them old-but-decent laptops and, eventually, internet access.

As soon as they had internet access they stopped tinkering and exploring and started only using the laptop to watch repeat episodes of childrens TV.

And now they often want to use their mum's iPad - to play music and watch TV - but they are completely utterly uninterested in tinkering with any PCs.

Its sad but its true and I wish I knew what to do about it.
No worries man :) all the best for you. If you need me to check it out again, send me an email at sean (at) qeryz (dot) com
Looks very clean, thanks for bringing this up. It might be a good cultural fit for Clojure devs, which is why I'm going to have a closer look.

To save the next guy some googling:

https://github.com/Raynos/mercury
Linguist has trouble telling C and C++ apart.
The one that you linked is now showing as 39.99$
Science says that will give you worse results:

http://www.ted.com/talks/dan_pink_on_motivation
So, could we imagine a startup making Internet of Things, and smart homes, and basing their tech on Plan 9 instead of Linux?
Yeah, if you use the Serbian pronunciation, and the Hungarian meaning of the word then it's a kind of bird: https://translate.google.com/#hu/en/pinty