skysight-inc/HackerNews huggingface dataset:
OK, I have one for ya:

Scrum - Cialas(TM) for a manager's CV[1].

1 - Don't take Scrum if you are responsible for delivering a product. To avoid long term WTF, seek another job if your stand ups last more than 4 hours. Scrum does not prevent the spread of defects. If you have any sudden decrease in productivity, stop taking Scrum and call your developers immediately.

Why tell your development team you are incorporating Scrum? Because, sooner or later, when the moment is right, you can spring it on them and get the keyword on your CV.
I don't know: their observations square with my anecdotal observations over 10 years of appsec consulting. On my first ever web pentest, I got a 'OR''=' SQLI in the username of a login form. In 2014, when I left Matasano, that would have been absolutely shocking. SQLI has become far less common:

* Developers are taught to use parameterized queries

* Fewer big applications are built in PHP

* More projects use ORMs now than don't

* Random testers hoping for bug bounties hammer every application with SQLI scanners
Firstly, a week is nowhere near long enough to evaluate a methodology.

Secondly, there are many Agile methodologies. The first step should be to sit down as a team and work through the manifesto, identifying areas for improvement.

Only once that's done is there any point in thinking about choosing a methodology.
Life Lessons from Books of the Past
The blog post makes interesting points but it's just an argument without data. Studies like this one[1] seem to show that skipping breakfast and eating late do correlate with negative outcomes.

[1]: http://www.forbes.com/sites/alicegwalton/2013/07/23/why-is-s...
True, but minified scripts are often accompanied by sourcemaps. Technically sourcemaps don't need to be public, but they often are because they make debugging easier for in-house developers.

So even if not all websites are in debug mode, there are incentives to make it easy to get them into debug mode.
REVEALED: You won't believe the SHOCKING markov chains used by HACKERS to train artificial intelligence READING ROBOTS!
This is how Judge Death starts.

The crime is life, the sentence death.
It's a static analysis.
It's not a question of eliminating shitty jobs, it's a question of ensuring that people get paid a living wage, or at least work in reasonably safe conditions. For most businesses, the resources exist to keep people safe and well-compensated, but sometimes the people at the top choose to cut corners and that's where labor organizations come in.
> Surely no politician would be stupid enough to ever think blocking porn is a good idea.

It's not a new idea at all. Here's a separate example.

http://www.theguardian.com/commentisfree/2014/jan/03/david-c...
Fred Nile - Head of the Australian Christian Lobby.
The wording of the new laws is so open that purpose creep is almost intended.
Have you tried Harry's?

Harry's concept is similar, an online-only, delivery model at low cost, but their branding really emphasize the quality of the blade. They build their story around buying a blade factory in Germany... Now I wonder with Harry's being the second player, if they emphasized blade quality to hit DSC where it hurts.
Sure, but that's all true regardless of the Chrome update discussed in the article. That's what I was wondering about.
Interesting: http://lifehacker.com/5502841/extend-the-life-of-your-razor-...

I'm going to give it a try, cheers for passing the tip along!
There are plenty of shave soaps that moisturize and smell great. I've got a couple that smell great and produce a fantastic lather.

I don't trust myself with a straight razor, but the DE razor works really well for me. Plus it seems just so sophisticated with the bowl and brush sitting on the bathroom sink.
Good catch! And even if we do add another "%c" to fix it, I don't know why we would need to null-terminate a null-terminated string.
Somewhat worrying that they are feeding DeepMind a diet of DailyMail articles!

Maybe this is why Skynet turned rogue. Reading daily trash about celebrities and body image dysmorphia inducing trash, is enough to make anyone go mad.
> Also you can send functions and code over the wire as well to run. Making some very interesting things that are just impossible to do in other languages.

Well, you could do this in any language that has 'eval' really, which includes most dynamic languages. Unless you're referring to something else?
I'd like to find a jargon-free path. There's too much gravitas, and hence ego, in the words.

It's kind of like astronomy - you can (and should) start with looking up, and notice that the stars rotate around the north star. Terms like right ascension, azimuth, celestial spheres, plane of the ecliptic, etc...these are impressive and important sounding and they really get in the way of understanding.

It's not arbitrary picking astronomy as my example, because in the end computers are physical systems. They are quite unique because they are capable of actions that look like violations of the second law - e.g. you can quite easily reverse a program that simulates gas diffusion, and simulate putting that gas back in a jar - that is, you can define an incredibly delicate system, and reset it for nothing, like being able to use a kitchen for anything and then clean it instantly, for free. More generally, all of a computers negentropy can be recovered for little or no cost after arbitrary disorder! They are also unique because they can rapidly and accurately and repeatedly traverse very specific state spaces, which is unlike anything in the universe, including the human brain.

As a physical system, a computer extends through time, and it's state is in general time dependent. Coupling signals across time is, I believe, what programming is about. We have special names (jargon!) for different signals - we call signals that come earlier "programming" and signals that come later "runtime input". But only useful distinction is between signals that arise from outside the system, and those which arise inside (that is, programming and input are the same; but input arising from results of a function call are profoundly different). It's useful because only the latter can recurse, which is both a source of error, but also the only possible way "intelligence" (or any really complicated behavior) could possibly express. The only other thing that matters is the shape of the system state - which constrains, in some ways, the kinds of states the system can achieve (or, because it's a universal machine, it constrains the general patterns of state traversal in some hand-wavy sense).

I built something that demonstrates these ideas, if anyone's interested.
I agree on "Interstellar" and "Ex Machina", but I think Greg missed the point of "Her". True, it doesn't nearly do justice to the themes of artificial intelligence and human-machine interaction. But that's because it's not meant to--it's really just a romantic little film about human relationships and the difficulty of achieving intimacy and trust in the modern world. It never even attempts to explore, let alone explain, any differences between "Samantha" and actual humans--as portrayed, she's simply a fully human female with the unusual quirk of happening to live in cyberspace. And any sci-fi-heavy exposition regarding her technological nature would only have detracted from the film's very touching, and very human, charm.
Windows 10, the cluelessness continues
iMessage suffering from outage, users unable to send/receive messages
Any situation where you have M userspace jobs running on N system threads, i.e. the number of tasks is different to the number of system threads.

Normally this occurs because you're running a large number of "green" threads on your own scheduler which schedules onto a thread pool underneath. This is good if all your threads are small/tiny since userspace thread creation is cheaper than creating an OS thread but if your jobs are long-lived then your userspace job scheduler is really just adding additional scheduling overhead on top of the overhead that the OS already has for thread scheduling and you would have been better with OS threads. If your M:N threading requires separate stack space for each job, there can be a sizeable overhead (this is why Rust abandoned M:N threading).
Yes, with a minimal investment in a good brush and Merkur razor + blades a couple years ago, I've already saved by going the double-edged way plus the shave is way better.

Only real problem is that I still haven't figured out how to do carry-on only and keep blades on me.
> where did you get that idea?

The core Go developers has said that an eventual implementation of generics won't arrive until Go 2.0, were they will allow breaking backward compatibility. That said, an eventual Go 2.0 release is probably years away.
At some point, the balloon will get squeezed and all that money is going to rush elsewhere. I don't envy either part of the balloon.
How about this one? It's not standards-compliant, but GCC swallows it even with -Wall (or at least it used to), and it's by far my favourite:

int main(int args, char *argv[printf("Hello, world!")]) { }
re-reading it, I agree with you. I missed the word "trendline" when I read it the first time.

I'm not able to find an up to date enough trendline to agree or disagree with his statement.
It would be interesting to compare the statistics of compiler-generated code with that of human-written Asm, since I can easily tell the two apart; the latter tends to have a denser "texture" and less superfluous data movement.

Ideally, register-register MOV instructions on a 2-address architecture would be necessary only in the case of requiring two copies of some data, since the register/memory/immediate operands of other instructions can already be used to choose which registers should hold what data.

The fact that such a huge percentage of the instructions are simply moving data around suggests two possible explanations: these could be obligatory MOVs for making copies of data, meaning that a 2-address architecture is too limiting and a 3-address one would be more ideal, or they could be superfluous, meaning that 2-address is a sweet spot and compilers are generating lots more explicit data movement than they should. From my experience writing Asm and looking at typical data flow in applications, I'm tempted to lean toward the latter...
Companies are often eating the cost of training employees without admitting to it.

Pick some company at random, look around, and there will often be piles of people who have no official training or certifications to speak of, and no relevant degree, but who are perfectly competent at their jobs. Somehow, magic happened, and they were trained, despite no training money in the budget.

A lot of it is just done semi-officially. The boss points at some guy he trusts and tells him to fill them in, and lower productivity is accepted for some period.
To shave the world, of course.
for an HP 3PAR Enterprise storage
2TB 7.2k SAS NL: list price 2.300€, discounted about 850€
1.95TB SSD: list price 12k€

(sources: HP partner quote for the SAS disk, quick textchat with friend in HP for SSD)
LEDs turn on instantly, CFLs take a moment and get slower as time goes by. If I break a CFL I'm potentially exposing myself and my child to mercury vapor, not so with LED. Those are both benefits I appreciate.
Nick Sibicky Go Lecture #28 – What I REALLY Like About Go
I did learn a lot of those things in college...
Is that really the state of things? It is what I concluded after looking into this a bit for Docker, but it seems incredible to me that so many companies are jumping into this idea of containerization without any good & available solutions for this problem.

One potential solution that came to mind was that if there was a standard way of deploying an application into containers, and Google/Amazon/Microsoft provided auto-updating containers, the maintenance of a secure container would be in the hands of companies who (hopefully) have the resources necessary to keep the entire stack up-to-date.
There are two kinds of cleverness, and both require balance in their application.

The first is the more obvious kind: exploiting various conditions that occur in your code, in order to come up with a nonstandard solution. E.g. using if (x mod 15 == 0) in fizzbuzz. The problem with this kind of cleverness is that it's hard to understand the code, and it breaks whenever the conditions it relies on stop holding.

The second kind of more subtle. It is where you organize code to properly express the nature of the problem, but this organization is itself conceptually complex. A typical example is using C++ templates where they make logical sense, but they make the code that much harder to read.

The second kind is where balance is needed most. If you use too little cleverness (or maybe too much humility), you end up with spaghetti code, or code where all the organization is done via convention instead of enforced by the compiler. If you use too much cleverness, you end up with code that is hard to read, and brittle, since so many assumptions are embedded in the code.
I find rc shell to be much more logical than a normal sh, but nowadays it's only used by a few people, so for the new users there is little sense of learning it - most people haven't even heard of rc!

I think that are two ways to change this situation:

1) For normal CLI users - let's pick the most up-to-date implementation (tobold's rc, es, inferno's sh, suckless' rc...) or write one from scratch if that would be easier. Then think about writing plugins for git, for colorful prompts, for autocomplete, for common development tasks etc. Since rc language is easier and cleaner than bash - writing plugins and extensions for it should be easier. Of course, many blog posts must be written showing how superior it can be comparing to bash in some cases and how easier it is to learn. Once the resulting rc gets into every linux distro and mac and there will be known repositories like ohmyzsh - people may start switching from bash to rc, not from bash to zsh.

2) For embedded systems - from my experience sh scripting is normally done not for the desktop, but for tiny embedded systems, where busybox is a definite winner - maybe an alternative can be made by using rc shell and Plan 9 set of utilities? So we get a single static binary (again, rewrite rc in Go?) and a small set of tools, that might even work on windows. I think it could be smaller, like toybox, but with a usable shell interpreter.

Since most implementations of rc are now unmaintained (correct if I'm wrong) - probably it would be better to rerite it in some modern language (Go, Rust, maybe C++), cover with tests and start promoting it. If so - I would be happy to join the development (I started it once, ended up with just yacc-generated AST parser, but I though it might become a huge project that nobody is interested in, so I suspended the development).
I can't figure out why is it checking `pr` in the while loop. Perhaps it's simply been left over from an earlier version.
Why Elixir over native Erlang? Nobody including the original piece seems to address this. Is it just a subjectively nicer syntax?
Probably fewer than the number of foreign backdoors in foreign-made AV software. The NSA can already get in through the window if they really need to.
hi .. glad you liked it.
The original Deepmind paper [1] is based on a really smart idea. Algorithmic development relies on measuring the performance of any proposed algorithm. For reading comprehension, performance is evaluated using Q&A about the corpus. Its difficult to find a large corpus with a comprehensive set of questions about the content.

Deepmind is cleverly converting the Daily Mail article summaries into questions by removing a proper noun. For example:

Question: Producer X will not press charges against Jeremy Clarkson, his lawyer says.

Answer: Oisin Tymon

They are using the Daily Mail corpus to develop their algorithm, and that's smart. They aren't relying on it as an important source of information. Maybe all you guys with the dismissive comments have a better idea?

[1] http://arxiv.org/pdf/1506.03340.pdf

EDIT: Thanks Otik, reworded the opening sentance
Car Hire in Melbourne with Motor Finance Options
Especially when we consider how Java crowd have misunderstood OOP and emphasized stupid class hierarchies and static typing (and design patterns as a result) instead of message-passing and message-based polymorphism and protocols as the essence of the original paradigm developed by Smalltalk authors.
This can be hard sometimes. If the business is a mess then your code will be a mess seeing as your code is just a representation of your business.

I work for such a business right now and it's killing me. No amount of high quality code will fix this.
I signed up out of curiosity when they first came on the scene. I think my subscription lasted until the first shave. Hurt so much that it wasn't worth it to me at any cost.

Would be interested in club where the razors don't tear your face apart, but no amount of funny videos are going to make me want to start my day with that experience.
Shortest Latency Protocol for Reading Phase Change Memory Over PCI Express
Let's not get all jumpy on the downvotes from a difference of opinion; a week may not work for you but for others... well we move fast.

The point was to encourage our fellow HN member to be open minded and try it for a short period of time. From there he can determine if the change has begun to yield any value or not.
My point is that the original article was saying its "UNIX'y" in philosophy. So the commenter you're discussing is the one who is missing the point, in my opinion. It's a moot point anyway, we're being needlessly pedantic here.
Try using Docker in a production environment. :(
It's more or less beyond question that some of them are either genuinely stupid, or genuinely evil. Which do you prefer? I'm not sure, myself.
This makes no sense. You like something about Flask so you're sticking with Django?
s/government/any sufficiently large organization/

The real problem here is concentration of power, as with it comes impunity to the constituency it serves.
Calls and other instructions that use specific registers (variable shift and division on x86, for example) tend to ruin that ideal somewhat.
Hardware designers are aware of this thou, if you take say register-register movs, this can be achieved without actually copying the data, via register renaming.

X86_64 ABI switched to being able to pass arguments in registers as well. And the top of the stack will almost certainly be in cache anyway for the old style.
I think a lot of people are going to start using tor.
So true. If your business is a mess your code will be a mess.
And that advice is simply wrong. It's simply not possible for any team to reasonably assess the pros and cons of a given software development methodology - with the possible exception of the one they're already using - in a week.

Suggesting a team 'try a methodology for a week' is inviting a train-wreck.
The biggest obstacle to erlangs adoption is that it does not have a low barrier to entry. The syntax is strange, the way of structuring and building solutions is strange. It is incredibly powerful, but it requires a different way of thinking.

Elixir makes sense because it is a lower barrier to entry. This is a very important factor. It is one of the main reasons why node.js was so successful in reaching a large audience. It is why Go is more popular than Erlang. They are often used in the same domain and Erlang is arguably more powerful. People still choose Go however.
I started a small manufacturing company in 2004. I used some open source software, and set it up myself with the help of Mr. Google. I can cut and paste, but I am no programmer.

Then things got busy, and I couldn't keep everything patched, and we had a hell of a time with spam, and so I hired an inhouse self-taught IT guy that was not very good. It wasn't working and after a year, he went somewhere else (we are still friends) and we went to Google Apps for the spam control and the Docs, Sheets, and Sites.

I know there are many many many free and O/S choices out there. Maybe something better for us than Google Apps. I do not have the time to evaluate hardly anything. If some person comes to me and has a solution, and can explain all the other choices available from free or O/S all the way to Oracle, that exist for me on the market, then I may buy his product or service. If the first thing they sell me works, then I will look at the next thing with eagerness.

As a business owner, I have 1000 headaches and having 2 fewer is great. Free software is not free maintenance. Your o/s software getting hacked (because you didn't know there was a patch) really sucks and can screw up your 4 day long weekend. Or worse. When your small site that brings in $1000 a day in sales and feeds your family tanks, the $25 per month you saved using open source software looks really insignificant, and you feel really stupid.
Mandatory data retention, website blocking... Things are defintely headed the wrong way in Oz
PHP Deployment Tools
Pharaoh tools got really good solutions to softwares and stuff. You should try them out and check their website on www.pharaohtools.com
If you clean and dry your razors - whatever kind - you'll get many more good shaves out of them. I clean mine and then blast with a can of pressurized air.
Well, I decided to do a very quick and dirty grepping of statistics with the following hideous Bash two-liner:

/usr/bin $ for f in *; do objdump -d $f | sed -e 's/^ *[0-9a-f]*:[\t 0-9a-f]*[ \t]\([a-z][0-9a-z][0-9a-z][0-9a-z]*\)[ \t]\(.*\)$/\1/g' | grep '^[a-z0-9]*$' >> /tmp/instrs.txt; done
/usr/bin $ cat /tmp/instrs.txt | awk '/./ { arrs[$1] += 1 } END { for (val in arrs) { print arrs[val], val; sum += arrs[val] } print sum, "Total" }' | sort -n -r | head -n 50

For those of you who can't read bash, this basically amounts to:

1. Find every ELF binary in /usr/bin

2. Use objdump to disassemble the text sections

3. Grep for what the commands probably are (not 100% accurate, since some constant data (e.g., switch tables) gets inlined into the text section, and some nop sequences get mangled)

4. Build a histogram of the instructions, and then print the results

I don't bother to try to handle the different sizes of types (particularly for nop, which can be written in several different ways to align the next instruction on the right boundary). The result is this list:

117336056 Total
43795946 mov
9899354 callq
7128602 lea
5258131 test
4928828 cmp
4463038 jmpq
3879175 pop
3628965 jne
3519259 add
3227188 xor
2824699 push
2361085 nopl
2016346 sub
1678131 and
1551014 movq
1311683 jmp
1311476 retq
1255216 nopw
1239479 movzbl
1234815 movl
946434 movb
663852 shr
614367 shl
581608 cmpb
523398 movslq
427116 pushq
384794 cmpq
376695 jbe
348158 movsd
341248 testb
340718 sar
338542 xchg
311171 data16
302296 jle
266539 movzwl
252872 cmpl
210762 jae
169823 lock
152724 addq
151186 sete
147340 cmove
146501 imul
146386 setne
145233 movabs
142801 repz
123489 cmovne
123439 addl
105156 pxor
81745 cmpw

Since this is Debian Linux, nearly every binary is compiled with gcc. The push and pop instructions are therefore relatively rare (since they tend not to be used to set up call instructions, just mov's to the right position on rbp/rsp). jmpq and pushq are way overrepresented thanks to the PLT relocations (2 jmpq, 1 pushq per PLT entry).

mov's are very common because, well, they mean several different things in x86-64: set a register to a given constant value, copy from one register to another, load from memory into a register, store from a register into memory, store a constant into memory... Note, too, that several x86 instructions require particular operands to be in particular registers (e.g., rdx/rax for div, not to mention function calling conventions).

If you're curious, the rarest instructions I found were the AES and CRC32 instructions.
Send anonymous email with the most secure mailer