The Beauty of Unix Pipelines - <AUTHOR> https://prithu.xyz/posts/unix-pipeline/ <comment><USER2> Pipes are wonderful! In my opinion you can't extol them by themselves. One has to bask in a fuller set of features that are so much greater than the sum of their parts, to feel the warmth of Unix:

(1) everything is _text_

(2) everything (ish) is a _file_

(3) including _pipes_ and _fds_

(4) every piece of software is accessible as a file, invoked at the _command line_

(5) ...with local _arguments_

(6) ...and persistent globals in the _environment_

A lot of understanding comes once you know what execve does, though such knowledge is of course not necessary. It just helps.

Unix is seriously uncool with young people at the moment. I intend to turn that around and articles like this offer good material.

<comment><USER3> > (1) everything is text

And lists are space-separated. Unless you want them to be newline-separated, or NUL-separated, which is controlled by an option that may or may not be present for the command you're invoking, and is spelled completely differently for each program. Or maybe you just quote spaces somehow, and good luck figuring out who is responsible for inserting quotes and who is responsible for removing them.

<comment><USER2> To criticize sh semantics without acknowledging that C was _always there when you needed something serious_ is a bit short sighted.

There are two uses of the Unix "api":

[A] Long lived tools for other people to use.

[B] Short lived tools one throws together oneself.

The fact that most things work most of the time is why the shell works so well for B, and why it is indeed a poor choice for the sort of stable tools designed for others to use, in A.

The ubiquity of the C APIs of course solved [A] use cases in the past, when it was unconscionable to operate a system without cc(1). It's part of why they get first class treatment in the Unix man pages, as old fashioned as that seems nowadays.

<comment><USER3> There's a certain irony in responding to criticism of that which you're extolling by saying not to use it.

And the only reason I might be pushed down that path is because the task I'm working on happens to involve filenames with spaces in them (without those spaces, the code would work fine!), because spaces are a _reasonable_ thing to put in a filename unless you're on a Unix system.

<comment><USER4> > because spaces are a reasonable thing to put in a filename unless you're on > a Unix system.

Putting spaces on a filename is atrocious and should be disallowed by modern filesystems. It is like if you could put spaces inside variable names in Python. Ridiculous.

<comment><USER5> I'm not going back to CamelCase or underscores for my normal day to day file naming. The problem with spaces only exists inside the IT world and it's something they should find a way around.

<comment><USER4> I agree. The file load/save dialogs of all GUI should work in such a way that spaces typed by the users in a filename field are always transparently changed to something different (for example, the unicode non-breaking space).

<comment><USER6> > (for example, the unicode non-breaking space)

That's potentially even worse in a file name than plain old space is. It looks like a normal space, but isn't.

If you are going to replace spaces in file names with something else, underscores are the best option I think.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I use pipelines as much as the next guy but every time I see post praise how awesome they are, I'm reminded of the Unix Hater's Handbook. Their take on pipelines is pretty spot on too.

[http://web.mit.edu/~simsong/www/ugh.pdf](http://web.mit.edu/~simsong/www/ugh.pdf)

<comment><USER8> I mostly like what they wrote about pipes. I think the example of bloating they talked about in ls at the start of the shell programming section is a good example: if pipelines are so great, why have so many unix utilities felt the need to bloat?

I think it a result of there being just a bit too much friction in building a pipeline. A good portion tends to be massaging text formats. The standard unix commands for doing that tend to have infamously bad readability.

Fish Shell seems to be making this better by making a string which has a syntax that makes it clear what it is doing: [http://fishshell.com/docs/current/cmds/string.html](http://fishshell.com/docs/current/cmds/string.html) I use fish shell, and I can usually read and often write text manipulations with the string command without needing to consult the docs.

Nushell seems to take a different approach: add structure to command output. By doing that, it seems that a bunch of stuff that is super finicky in the more traditional shells ends up being simple and easy commands with one clear job in nushell. I have never tried it, but it does seem to be movement in the correct direction.

<comment> code-faster It's less that pipelines are friction, they're really not.

It's more that people like building features and people don't like saying no to features.

The original unix guys had a rare culture that was happy to knock off unnecessary features.

</comment></comment></comment><comment><USER9> Pipes are a great idea, but are severely hampered by the many edge cases around escaping, quoting, and, my pet peeve, error handling. By default, in modern shells, this will actually succeed with no error:

      $ alias fail=exit 1
      $ find / | fail | wc -l; echo $?
      0
      0

You can turn on the "pipefail" option to remedy this:

      $ set -o pipefail
      $ find / | fail | wc -l; echo $?
      0
      1

Most scripts don't, because the option makes everything much stricter, and requires more error handling.

Of course, a lot of scripts also forget to enable the similarly strict "errexit" (-e) and "nounset" options (-u), which are also important in modern scripting.

There's another error that hardly anyone bothers to handle correctly:

      x=$(find / | fail | wc -l)

This sets x to "" because the command failed. The only way to test if this succeeded is to check $?, or use an if statement around it:

      if ! x=$(find / | fail | wc -l); then
        echo "Fail!" >&2
        exit 1
      fi

I don't think I've seen a script ever bother do this.

Of course, if you also want the error message from the command. If you want that, you have to start using name pipes or temporary files, with the attendant cleanup. Shell scripting is suddenly much more complicated, and the resulting scripts become much less fun to write.

And that's why shell scripts are so brittle.

<comment><USER10> set -e makes another pain for command that nonzero isn't mean failed (ex. diff). It changes semantics for whole script.

<comment><USER9> If by pain you mean you have to handle errors, yes, that's what you have to do. It's no different from checking the return code of functions in C.

<comment><USER10> Yes. So I don't use set -e.

</comment></comment></comment></comment><comment><USER11> I love pipelines. I don't know the elaborate sublanguages of find, awk, and others, to exploit them adequately. I also love Python, and would rather use Python than those sublanguages.

I'm developing a shell based on these ideas: [https://github.com/geophile/marcel](https://github.com/geophile/marcel).

<comment><USER12> Your project looks really cool.

I am pretty sure I've seen a Python-based interactive shell a few years ago but I can't remember the name. Have you heard of it?

<comment><USER13> Perhaps you are thinking of xonsh [https://xon.sh/](https://xon.sh/)

Edit: x1798DE beat me to it :D

<comment><USER12> Xonsh, that's it!

Thanks to you and x1798DE, and to geophile for the attempt :-)

I could not find the right keywords on two different search engines to find it. This never happens.

</comment></comment></comment></comment><comment><USER14> Unix pipelines are cool and I am all for it. In recent times however, I see that sometimes they are taken too far without realizing that each stage in the pipeline is a process and a debugging overhead in case something goes wrong.

A case in point is this pipeline that I came across in the wild:

TOKEN=$(kubectl describe secret -n kube-system $(kubectl get secrets -n kube- system | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t' | tr -d " ")

In this case, perhaps awk would have absorbed 3 to 4 stages.

<comment><USER15> I think people can go through a few stages of their shell-foo.

The first involves a lot of single commands and temporary files.

The second uses pipes, but only tacks on commands with no refactoring.

The third would recognize that all the grep and cut should just be awk, that you can redirect the cumulative output of a control statement, that subprocesses and coroutines are your friend. We should all aspire to this.

The fourth stage is rare. Some people start using weird file descriptors to chuck data around pipes, extensive process substitution, etc. This is the Perl of shell and should be avoided. The enlightened return back to terse readable scripts, but with greater wisdom.

Also, I always hear of people hating awk and sed and preferring, say, python. Understanding awk and especially sed will make your python better. There really is a significant niche where the classic tools are a better fit than a full programming language.

<comment><USER16> My most complex use of the shell is defining aliases in .bashrc and have never felt the need to go further. Do you recommend learning all of that for someone like me?

If so, what resource do you recommend?

<comment><USER15> I may be a bad person to ask. I like history a lot. A lot of this stuff was originally picked up by secretaries and non-computer people working on manuals for Bell Labs. If you understand it, it will save you time. It will also make you use and understand Linux/Unix better, which will bleed into any other programming you do (assuming you write other code). The skill also comes up a lot in strange places like Dockerfiles, CI Pipelines, and a lot of that kind of surrounding infrastructure for applications.

The video referenced in the article is actually pretty interesting, as is the book "The Unix Programming Environment". Both will refer to outdated technology like real terminals, but I think they help understand the intent of the systems we still use today. Any of the Bell Labs books are great for understanding Unix.

Also do a minimal install of Linux or FreeBSD and read all of the man pages for commands in /bin, /usr/bin. Read the docs for the bash builtins.

The old Useless Use of Cat is great: [http://porkmail.org/era/unix/award.html](http://porkmail.org/era/unix/award.html)

But writing real scripts is probably the only way to learn. Next time you need to munge data, try the shell. When you read about a new command, like comm, try to use it to do something.

Also force yourself into good practices:

\- revision control everything

\- provide -h output for every script you write (getopts is a good thing to be in the habit of using)

\- use shellcheck to beat bad habits out of you

\- try to do things in parallel when you can

\- assume everything you make is going to run at a much larger scale than you intend it to (more inputs, more servers, more everything)

\- after something works, see where you can reduce the number of commands/processes you run

\- write things like a moron is going to use them who will accidentally put spaces or hyphens or whatever in the worst place possible, not provide required arguments, and copy/paste broken things out of word

\- don't let scripts leave trash around, even when aborted: learn trap & signals

The two things you should probably understand the most, but on which I'm the least help on are sed and awk. Think of sed as a way to have an automated text editor. Awk is about processing structured data (columns and fields). I learned these through trial and error and a lot of staring at examples. Understanding regular expressions is key to both and is, in general, an invaluable skill.

Oh and if you are a vi(m) user, remember that the shell is always there to help you and is just a ! away. Things like `:1,17!sort -nr -k2` (sort lines 1-17, reverse numerical order on the second field) can save a ton of time. And even putting some shell in the middle of a file and running !!sh is super- handy to replace the current line that has some commands with the output of those commands.

<comment><USER17> You've left some good tips. sed, awk, and grep. getopts. Read the man pages. Try to automate even simple series of commands.

Don't be shy about running a whole pipeline of commands (in an automation script) just to isolate one field within one line of one file and add one to it, and store the result in a shell variable.

</comment></comment></comment></comment></comment><comment><USER18> I think there's an interesting inflection point between piping different utilities together to get something done, and just whipping up a script to do the same thing instead.

First I'll use the command line to, say, grab a file from a URL, parse, sort and format it. If I find myself doing the same commands a lot, I'll make a .sh file and pop the commands in there.

But then there's that next step, which is where Bash in particular falls down: Branching and loops or any real logic. I've tried it enough times to know it's not worth it. So at this point, I load up a text editor and write a NodeJS script which does the same thing (Used to be Perl, or Python). If I need more functionality than what's in the standard library, I'll make a folder and do an npm init -y and npm install a few packages for what I need.

This is not as elegant as pipes, but I have more fine grained control over the data, and the end result is a folder I can zip and send to someone else in case they want to use the same script.

There is a way to make a NodeJS script listen to STDIO and act like another Unix utility, but I never do that. Once I'm in a scripting environment, I might as well just put it all in there so it's in one place.

<comment><USER19> I have never come across a NodeJS script instead of a shell script. Can you suggest an example to look at that shows the advantages of this?

<comment><USER18> Here's a JS script [1] I wrote a little while ago just for my own use that queries the CDC for the latest virus numbers, then calcs the average, formats the data and prints to the command line. You can pass in a number of days, otherwise it pulls the last 14 days.

$ node query-cdc.js 7

It's nothing special, but I wouldn't want to try to do this with command line utilities. (And yes, it was a bit uglier, but I cleaned it up of random crap I had thrown in before posting it.)

1\. [https://gist.github.com/russellbeattie/f9edf91115b43d6d7ca3c...](https://gist.github.com/russellbeattie/f9edf91115b43d6d7ca3cf0b4f9eb060)

<comment><USER19> Thanks, appreciated! I guess using shebang #!/usr/bin/node does not work as # is not a valid comment?

<comment><USER18> I think Node has an exception for that built in, so you can do that or #!/usr/bin/env node and it'll work.

</comment></comment></comment></comment></comment><comment><USER20> Debugging Linux pipelines is not a fun experience.

This is one clear area where Powershell with its object model has got it right.

<comment><USER21> Please provide an example. Thank you.

<comment><USER10> PowerShell supports breakpoint.

[https://docs.microsoft.com/en- us/powershell/module/microsoft...](https://docs.microsoft.com/en- us/powershell/module/microsoft.powershell.utility/set- psbreakpoint?view=powershell-7)

<comment><USER21> Can you give a _working_ example?

This way you can watch a UNIX user "struggle/fail" as they "attempt" to debug a script using set -x, set -e, $?, LINENO, utilties like ktrace, strace, recordio, etc. and your argument will be taken seriously.

<comment><USER22> Some people also insist to keep debuging with printf(), whereas the rest of the world is happily using InteliJ and friends.

<comment><USER21> I just use gdb and ald. I heard IntelliJ is a memory hog and requires a powerful computer.

<comment><USER22> InteliJ isn't the only option, hence why I mentioned "and friend".

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> A similar philosophy has made the "tidyverse" a much-loved extension of the statistical language R.

Compare the following 2 equivalent snippets. Which one seems more understandable?

        iris_data %>%
            names() %>%
            tolower() %>%
            gsub(".", "_", ., fixed=TRUE) %>%
            paste0("(", ., ")")

or:

        paste0("(", gsub(".", "_", tolower(names(iris_data)), fixed=TRUE), ")")

<comment><USER24> Yup, I'm working on Oil shell and I wrote an article about data frames, comparing tidyverse, Pandas, and raw Python:

 _What Is a Data Frame? (In Python, R, and SQL)_

[http://www.oilshell.org/blog/2018/11/30.html](http://www.oilshell.org/blog/2018/11/30.html)

The idea is essentially to combine tidyverse and shell -- i.e. put structured data in pipes. I use both shell and R for data cleaning.

My approach is different than say PowerShell because data still gets serialized; it's just more strictly defined and easily parseable. It's more like JSON than in-memory objects.

The left-to-right syntax is nicer and more composable IMO, and many functional languages are growing this feature (Scala, maybe Haskell?). Although I think Unix pipes serve a distinct use case.

</comment></comment><comment><USER25> Pipes are like one of the best experiences you'll have whatever you were doing. I was debugging a remote server logging millions of Logs a day and was aggregating a little on the server. Then all it required was wget, jq, sed and awk. And I had a powerful log analyzer than splunk or any other similar solution on a developer Mac. Which you think is awesome when you're paying a fortune to use Splunk. And for getting some insights quick, Unix pipes are a godsend.

</comment><comment><USER26> Unix pipelines are indeed beautiful, especially when you consider its similarity to Haskell's monadic I/O: [http://okmij.org/ftp/Computation/monadic- shell.html](http://okmij.org/ftp/Computation/monadic-shell.html)

Unix pipelines actually helped me make sense of Haskell's monad.

<comment><USER27> Could you be more specific? I don't get it.

<comment><USER28> It helps if you avoid the syntactic sugar of do-notation:

        main = getArgs >>= processData >>= displayData

main is in the IO monad. The >>= function takes a value wrapped in a monad and a function which accepts a value and returns a value wrapped in the same type of monad, and returns the same monad-wrapped value the function did. It can be used as an infix operator because Haskell allows that if you specify precedence, in which case its left side is the first argument (the value-in-a- monad) and its right side is the second argument (the function).

The (imaginary) function getArgs takes no arguments and returns a list of command-line arguments wrapped in an IO monad. The first >>= takes that list and feeds it into the function on its right, processData, which accepts it and returns some other value in an IO monad, which the third >>= accepts and feeds into displayData, which accepts it and returns nothing (or, technically, IO (), the unit (empty) value wrapped in an IO monad) which is main's return value.

See? Everything is still function application, but the mental model becomes feeding data through a pipeline of functions, each of which operates on the data and passes it along.

<comment><USER27> Thanks. That's helpful.

</comment></comment></comment></comment><comment><USER29> Surprised there is no mention of Doug McIlroy: [https://wiki.c2.com/?DougMcIlroy](https://wiki.c2.com/?DougMcIlroy)

</comment><comment><USER30> Interesting comment in the header of this site.

[https://github.com/prithugoswami/personal- website/blob/maste...](https://github.com/prithugoswami/personal- website/blob/master/layouts/partials/head.html)

<comment><USER29> It's a meme: [https://www.reddit.com/r/copypasta/comments/5we0ny/if_youre_...](https://www.reddit.com/r/copypasta/comments/5we0ny/if_youre_reading_this_youve_been_in_a_coma_for/)

<comment><USER31> It's from the naughty strings list. It's meant to be a "meat exploit" instead of an exploit for the computer.

</comment></comment></comment><comment><USER32> Powershell is the ultimate expression of the Unix pipeline imo.

Passing objects through the pipeline and being able to access this data without awk/sed incantations is a blessing for me.

I think anyone who appreciates shell pipelines and python can grok the advantages of the approach taken by Powershell, in a large way it is directly built upon existing an Unix heritage.

I'm not so good at explaining why, but for anyone curious please have a look at the Monad manifesto by Jeffrey Snover

[https://devblogs.microsoft.com/powershell/monad-manifesto- th...](https://devblogs.microsoft.com/powershell/monad-manifesto-the-origin- of-windows-powershell/)

You may not agree with the implementation, but the ideas being it, I think, are worth considering.

</comment><comment><USER33> I think it will be _on topic_ if I let myself take this occasion to once again plug in a short public service announcement of an open-source tool I built, that helps interactively build Unix/Linux pipelines, dubbed "The Ultimate Plumber":

[https://github.com/akavel/up/](https://github.com/akavel/up/)

I've also recently seen it being described in shorter words as a "sticky REPL for shell". Hope you like it, and it makes your life easier!

<comment><USER34> I'm surprised this doesn't get up-voted. The tool automates very nicely my shell command writing process: pipe one step at a time and check the incremental results by using head to get a sample. Looks cool to me!

</comment></comment><comment><USER35> To my understanding, this is the same pattern where every "object" outputs the same data type for other "objects" to consume. This pattern can have a text or gui representation that is really powerful in its own nature if you think about it, its why automation agents with their events consumption/emition are so powerful, its why the web itself shifts towards this pattern (json as comunication of data, code as object), The thing is, this will always be a higher level of abstraction, i think that a gui of this pattern should exist as a default method in most operating systems, its would solve a lot learning problems like learning all the names and options of objects, i would be the perfect default gui tool, actually, sites like zapier, or tools like huginn already do this pattern, i always wondered why this pattern expands so slowly being so useful.

</comment><comment><USER36> I find gron to be much more Unix-y than jq. It "explodes" JSON into single lines for use with grep, sed, etc and can recombine back into JSON as well.

[https://github.com/TomNomNom/gron](https://github.com/TomNomNom/gron)

<comment><USER37> Since jq is sed for JSON, by the transitive property, you're saying that sed is not Unix-y. ;)

Seriously though, I use both, and IMO they serve different purposes. gron is incredibly useful for exploring unknown data formats, especially with any form of

      something | gron | grep something

Once you've figured out how the data format in question works, a jq script is usually more succinct and precise than a chain of gron/{grep,awk,sed,...}/ungron.

So in practice, gron for prompts and jq for scripts.

</comment></comment><comment><USER38> Related: Pipelines can be 235x faster than a Hadoop cluster [https://adamdrake.com/command-line-tools-can- be-235x-faster-...](https://adamdrake.com/command-line-tools-can- be-235x-faster-than-your-hadoop-cluster.html)

</comment><comment><USER39> It's ironic that the article ends with Python code. You could have done everything in Python in the first place and it would have probably been much more readable.

<comment><USER4> > You could have done everything in Python in the first place and it would > have probably been much more readable.

Python scripts that call a few third party programs are notoriously unreadable, full of subprocess call getouptut decode(utf8) bullshit. Python is alright as a language, but it is a very bad team player: it only really works when _everything_ is written in Python, if you want to use things written in other languages it becomes icky really fast. Python projects that use parts written in other languages inevitably gravitate to being 100% Python. Another way to put it, is that Python is a cancer.

</comment></comment><comment><USER4> If you eval this simple pipeline

         file -b `echo $PATH:|sed 's/:/\/* /g'`|cut -d\  -f-2|sort|uniq -c|sort -n

it prints a histogram of the types of all the programs on your path (e.g., whether they are shell, python, perl scripts or executable binaries). How can you ever write such a cute thing in e.g., python or, god forbid, java?

<comment><USER40> \- This fails on badly formed PATH, or malicious PATH

\- When PATH contains entries that no longer exist / are not mounted, substitution with "sed" gives a wildcard that is not expanded, and eventually makes "file" report an error, which is not filtered out

\- If PATH contains entries that have spaces, the expansion is incorrect

<comment><USER4> More realistically, it also fails if you have directories on your path that are symlinks to other directories in the path. In that case their programs are doubly-counted.

Anyways, if your PATH is malicious then you have worse problems than this silly script :)

<comment><USER40> I agree, but "more realistically"? those cases were pretty realistic I think. If you run the script on a box where you have users who can do whatever they want, at least the script should fail on bad inputs.

        PATH=rm -rf :/bin

</comment></comment></comment></comment><comment><USER41> I think it is terrible, as if everything is a text you can't precisely describe some data structure, e.g. circular list.

</comment><comment><USER42> I wish there were gui pipes. Pipes are wonderful but they're neither interactive nor continuous.

Pipes that loop, outputting a declarative gui text format, and listen for events from the gui, would be marvellous.

I can't think how to do that without sockets and a bash loop. And that seems to create the kind of complexity that pipes manage to avoid.

</comment><comment><USER43> I recently wrote a golang code for fetching rss feed and displaying gist based on requirement.

Looking at this code, I am tempted to reimplement this using pipes but saner mind took over and said "don't fix something that is not broken"

I probably would be still do it and get some benchmark numbers to compare both.

</comment><comment><USER44> The first time I saw pipes in action I was coming from Apple and PC DOS land. It blew my mind. The re-usability of so many /bin tools, and being able to stuff my own into that pattern was amazing.

If you like pipes and multimedia, checkout gstreamer, it has taken the custom pipeline example to real-time.

</comment><comment><USER45> Thank you! I did not know you get to a "sql like group by" using uniq -c. That's so cool! I think I used to pipe it to awk and count using an array and then display but your method is far better than mine.

<comment><USER46> I use "sort | uniq -c" all the time, but I find it annoying that it does it in worse-than-linear time. It gets super slow every time I accidentally pass it a large input.

At that point I usually fall back to "awk '{ xs[$0]++ } END { for (x in xs) print xs[x], x }'", but it's quite long and awkward to type, so I don't do it by default every time.

At some point I'll add an alias or a script to do this. One day.

edit: OK I finally did it; it's literally been on my to-do list for about 10 years now, so thanks :)

$ cat ~/bin/count

#!/usr/bin/awk -f

{ xs[$0]++ } END { for (x in xs) print xs[x], x }

</comment></comment><comment><USER47> That was a great article! Pipes can definitely be very powerful. I will say, though, that I often find myself reading pages of documentation in order to actually get anything with Unix and its many commands.

</comment><comment><USER48> Great write up. One thing I would add is how pipes do buffering / apply backpressure. To my understanding this is the "magic" that makes pipes fast and failsafe(r).

</comment><comment><USER49> I've been using pipes for decades to get my work done, but it was cool to learn about jq as I have much less experience with JSON. It's a very cool program. Thanks.

</comment><comment><USER50> Minor nitpick: It is Unix "pipes" (not pipelines).

<comment><USER51> I think this reply needs more up votes! ;)

</comment></comment><comment><USER52> The first example in the article is what `git shortlog -n` does; no need for the pipeline.

</comment><comment><USER53> > _If you append /export to the url you get the list in a .csv format._

Text filtering approach narrowly rescued by website feature.

Phew, that was close!

</comment><comment><USER54> The video from 1982 is brilliant great explanations from an era before certain knowledge was assumed as generally known

</comment><comment><USER55> What kills me about pipelines is when I pipe into xargs and then suddenly can't kill things properly with Ctrl+C. Often I have to jump through hoops to parse arguments into arrays and avoid xargs just for this. (This has to do with stdin being redirected. I don't recall if there's anything particular about xargs here, but that's where it usually comes up.)

</comment><comment><USER56> Aka The Ugliness of Powershell. Would be fun to see equivalents to these in Powershell.

</comment><comment><USER57> What does it mean to say that the video shows "Kernighan being a complete chad"?

<comment><USER58> It's an alt-right in-joke related to the incel subculture.

<comment><USER59> I wouldn't be so quick to say it's an alt-right joke. Plenty of my friends will describe something/someone as a Chad and it has nothing to do with incel/alt-right cultures. Are those kind of phrases thrown out in those circles? Yes, but that's more of the general meme/internet lingo as opposed to subscribing to an ideology.

<comment><USER40> This is brogrammer speak (e.g. [http://new_words.enacademic.com/662/brogrammer](http://new_words.enacademic.com/662/brogrammer)).

<comment><USER57> Thanks! In fact, your link suggests that it may have originated (in this context) from Rob Spectre calling his alter ego 'Chad': [https://www.businessinsider.com/the-ultimate-guide-to- learni...](https://www.businessinsider.com/the-ultimate-guide-to-learning- brogramming-the-hard-way-2011-9) [https://twitter.com/ChadSpectre/](https://twitter.com/ChadSpectre/)

</comment></comment></comment></comment></comment><comment><USER60> The capacity of pipe buffer is important for doing serious producer|consumer work;

</comment><comment><USER61> I have problems understanding what commands I can pipe. Some work some don't.

<comment><USER14> The commands that read their input from standard input could be used as receiver in a pipeline. For instance: `A | B` is a short form of `A > tmp.txt; B < tmp.txt; rm tmp.txt`

There are some commands that need literal arguments which is different than standard input. For instance the echo command. `echo < list.txt` will not work assuming you want to print the items inside the list. `echo itemA itemB itemC` will work. This is where xargs comes into play -- it converts the standard input stream to literal arguments among other things.

<comment><USER61> How do you know which ones receive input from standard input or how can you find out efficiently?

<comment><USER14> The man page of the command helps in most cases. Often the description section has info if the command reads from standard input, a file or both.

</comment></comment></comment></comment><comment><USER62> Cygwin and you can do exactly this on Windows too. For me Cygwin is a bless.

</comment><comment><USER63> abinitio.com was borne from these principles.

</comment><comment><USER64> Good article. Thanks for information

</comment><comment><USER65> I think systemd can do all of that.

</comment><comment><USER66> Esta genial Laexplicacion. Se aprende mucho aqui Soy nuevo y este articulo es bastante genial.

</comment><comment><USER67> I am sorry for playing the devil's advocate. I also think that pipes are extremely useful and a very strong paradigm, and I use them daily in my work. Also it is not an accident that it is fundamental and integral part of powershell too.

But is this really HN top page worthy? I have seen this horse beaten to death for decades now. These kind of articles have been around since the very beginning of the internet.

Am I missing something newsworthy which makes this article different from the hundreds of thousands of similar articles?

<comment><USER68> Perhaps it's useful to reinforce pipes' utility to those who are not aware.

As for being top most article, if I had to guess it's because people feel related to the tool's power and enjoy sharing anecdotes of it.

</comment></comment><comment><USER69> Unix pipes are the a 1970's construct, the same way bell bottom pants are. It's a construct that doesn't take into account the problems and scale of today's computing. Unicode? Hope your pipes process it fine. Video buffers? High perf? Fuggetaboutit. Piping the output of ls to idk what? Nice, I'll put it on the fridge.

<comment><USER70> An informed criticism would be based upon the knowledge that Doug McIlroy came up with the idea in the 1960s. (-:</comment></comment>


Ask HN: Are you going to participate in this years Google Code Jam? - <AUTHOR>

Are you planning on participating in this years Google Code Jam? It starts on Friday.
I'm curious, what language,libraries or tools are you planning on using?
Do you have any pre-written contest code that you find useful? <comment><USER2> pertamax</comment>


Ask HN: Cheap living and fast internet and cold climate? - Kepler-125c I'm looking for somewhere in the world to live to work on a web project for an extended time. Fast/reliable internet + cheap living + cold climate preferably :)<p>Reason for cold in case anyone's wondering: it's hard to concentrate in the heat. <comment><AUTHOR> Central Minnesota -- cheap house rentals (very few apartments at all) and Fiber optic internet in my city. I've got the low speed plan and I get 5ms ping and 20 up/20 down for speeds.

</comment><comment><USER2> Tallinn, Estonia. Fits all, if you even want colder Nordic countries are there, though the cost of living increases a lot.

</comment><comment><USER3> You should really consider Lviv, Ukraine. It's cheap yet safe, beautiful and with a lot of IT companies (many meetups and coworking spaces as a result). It's also close to mountains which make a perfect weekend trip. And it's cold enough to let you work but not crazy cold like Baltics.

<comment><USER4> I'd second that. Ukraine in general is just ridiculously cheap. Lviv is a beautiful city with great history, but has a rather continental climate, cold in the winter, humid and hot in the summer. Lviv is quite remote, as well, but has a university with great traditions (maths and logic, Ulam, Banach![1]) and an opera. With even a basic eastern EU income it's really cheap. If you can work remotely for a German company or have an income in dollars from your side projects, you can have a really nice life there.

Someone mentioned Estonia here - well, when I think of differences, quality of transportation (roads, trains) and the rule of law (if you have to do anything with the administration, complaints, registrations etc.) in Ukraine are much worse for sure.

[1] - [https://en.wikipedia.org/wiki/Lw%C3%B3w_School_of_Mathematic...](https://en.wikipedia.org/wiki/Lw%C3%B3w_School_of_Mathematics)

</comment></comment><comment><USER5> Kharkiv, Ukraine: university town, lots of IT companies and meetups, cold but not as cold as Moscow or Estonia, very cheap prices, US/EU passports get 90 days entry, visa-free.

There is this whole Russia thing (we're 50km from the border), so if that's a problem, try Kyiv or Lviv or Odesa.

<comment> Kepler-125c Can you do thailand-style re-entry runs every 90 days?

<comment><USER5> It used to be that way, but Ukr border control has instituted a '90 out of every 180 days' rule. You can get around that with a proper business visa (usually granted for 1 year), or by using two passports, or by paying a fine upon leaving the country if you overstay.

<comment> Kepler-125c How much is the fine roughly? Sorry for the persistent questions but this is the most interesting one so far.

<comment><USER5> No worries at all - sooooo, I've never been fined myself but the stories I hear vary from expat to expat. One refused to pay and got a 'black stamp' in their passport barring them from reentry for 6+ months.

Not wanting to speculate, I've looked up one source and it looks like the fine is between 850-1700 Ukrainian Grivna, which is currently trading at around 25 to the dollar: [http://www.frishberg.com/index.php/en/newsletters/196-ukrain...](http://www.frishberg.com/index.php/en/newsletters/196-ukrainian- immigration-rules-in-2016)

</comment></comment></comment></comment></comment><comment><USER6> Northern Quebec: say Rouyn-Noranda. Cold, remote and inexpensive and not a long bus ride to Montreal for adventures.

<comment><USER7> I've got a cottage about an hour away from Rouyn. (Roo-on, as the English folk call it.) It's definitely inexpensive, with good beer. Not sure about the internet though. And while the summer is short it'll be hot!

</comment></comment><comment><USER8> Maine is nice and the cost of living is low. Fast internet is available in the towns. If you're looking for a remote cabin by a lake, you might have to go with satellite internet.

</comment><comment><USER9> Akademgorodok, a city in Siberia that Russia that Russia is trying to turn into a startup incubator.

<comment> Kepler-125c Very interesting, thanks

</comment></comment><comment><USER10> is mild close enough to cold?

[https://nomadlist.com](https://nomadlist.com)

<comment><USER11> Second for Nomad List

</comment></comment><comment><USER12> Anywhere in rural America that has broadband. I have reasonably fast/ cheap cable and was able to buy a decent house for ~$80k. That puts my mortgage at around $475 per month. Rent can be very cheap too, especially if you just need a room or you have roommates. I'm not in the cheapest area either.

</comment><comment><USER13> Syracuse, NY has Verizon FiOS (100/100 Mbps @ ~$75/mo) in many parts of the city. And while 60%+ of the area is ghetto, rents in nicer parts are relatively cheap (~600/mo). Long winters with lots of snow, & the city's always prepared to get pounded, so stuff rarely closes from it. There's a city-wide bus service that goes into the suburbs regularly, & to surrounding towns outside the metro area a few times/day. So you don't really need a car, which saves lots of money. No Uber yet, though. New York City's <5 hour drive, or there's Amtrak train service to Penn Station.

</comment><comment><USER14> Riga, Latvia fits those requirements [http://www.labsoflatvia.com/why- latvia](http://www.labsoflatvia.com/why-latvia)

</comment><comment><USER15> Going solely on cheap + fast internet + cold ... Detroit area.

</comment><comment><USER16> How cold? Winnipeg, Canada can fit hit all three of these…

<comment> Kepler-125c I meant to say, mild

</comment></comment><comment><USER17> Why is it hard to concentrate in heat? Maybe you have issues concentrating in general?

Depending on your idea of cold Netherlands or Scandinavia?

<comment><USER18> You're used to the climate you grew up in and changing from that can be a waste of time. There's plenty of interesting places all over the world north of any line you choose, say 48 degrees north (adjusting for Gulf Stream, etc).

<comment><USER17> I moved from coldish (20 deg summers, -10 winters) where I was born and lived 30 years to hot (40+ deg, 15 deg); I work best in well over 40. For me when it drops below 10 it gets annoying but then again people have trouble getting me out of workmode in any circumstance.

</comment></comment></comment><comment><USER19> Hokkaido.

</comment><comment><USER20> How about Brașov, România?

</comment><comment><USER21> Slovakia, Czech republic, etc.

</comment><comment><USER22> in Canada: Victoria, BC. Halifax, NS. Montreal, QC. Waterloo. ON.

<comment><USER23> Sherbrooke, QC, is a mid-size college town about 1h45 drive from Montreal and has some of the cheapest rents in the province. I was paying 500/month for a large 2BR 10 minutes walk from the "downtown" area and an indoor climbing gym.

It also has a bit of startup activity, from incubators related to the university and research spinoffs.

Not sure about fast internet, depending on how fast at what price. You might be able to get FTTN through resellers like teksavvy and ebox. It won't be cheap.

Like most of southern canada, it gets pretty hot during 3 months or so, mid- june through mid-september.

</comment></comment><comment><USER24> Northern UK cities. E.g. Liverpool?

</comment><comment><USER25> Alternate between north and south hemispheres.

</comment><comment><USER26> bariloche, argentina also a kind of fits the bill</comment>


Show HN: A classy way to ask for donations on projects - <AUTHOR> The tip jar line. Added to here:
https://github.com/fulldecent/FDWaveformView https://github.com/fulldecent/system-bus-radio https://github.com/fulldecent/FDTake https://github.com/fulldecent/FDChessboardView https://github.com/fulldecent/FDSoundActivatedRecorder
And more emoji: https://gist.github.com/rxaviers/7360908 <comment><USER2> I am not sure I understand what you are showing here? I looks like a normal link to a Amazon wish list to me.</comment>


Peter Thiel: Best Predictor of Startup Success Is Low CEO Pay  - <AUTHOR> http://www.techcrunch.com/2008/09/08/peter-thiel-best-predictor-of-startup-success-is-low-ceo-pay/ <comment><USER2> Is there a difference between a "startup" and "starting a company"?

I ask because, "In Startupland, everybody should be working towards the same goal: that big juicy exit," couldn't be further from my mind. I know what that means to me (as does my team) in terms of access to venture funding, but I'm not particularly interested in an "exit". I want to build a service that's beneficial and worth paying for and that is responsive to my customer's needs.

Am I missing something, or do I need to change how I think about what I'm doing?

<comment><USER3> startups => exits

company => provides services and products

<comment><USER4> Why not startup => company => provides services and products => exit?

<comment><USER5> Well one reason would be that the startup needs to be bought by someone in the right position to exploit it before it can become profitable.

So in that case, you could create a startup that in itself cannot be profitable, but when purchased by a larger company can become wildly profitable for them.

I don't think that's an unusual case.

</comment></comment></comment></comment><comment><USER6> What he probably meant is that high CEO pay is a good predictor of failure. If the CEO of a startup that is looking for a big exit demands a high salary, that means he/she is not too convinced about the big payoff to come.

</comment><comment><USER7> Thiel was definitely nervous, but what he did say was awesome and interesting. I wish Arrington wouldn't have interrupted him EVERY OTHER SENTENCE. Christ. I wanted to hear what Thiel had to say, not Arrington's cheap shots about Slide and Chess.

<comment><USER8> From pictures and hearing about him I thought he would be more of a jock, but he was more of a ultimate geek.

<comment><USER7> I wish I could find the link to the quote by him, but when he was at Paypal they actively tried to _not hire_ jocks.

<comment><USER9> If the interviewee played pickup basketball in his spare time, he would be out.

</comment></comment></comment></comment><comment><USER10> I think the article either leaves out a critical part of the speech or Peter just didn't cover it. That approach may be the right approach for CEOs of new companies that haven't taken big investment (like the TC50) or for first or second time CEOs of low capital requirement companies. I know he doesn't believe that for VC-backed companies or for companies in which the CEO brings huge value to the table in terms of past performance/experience/contacts.

Bottom line: you aren't going to be able bring in a proven CEO for $100-$125k a year. I don't care whether you're in Cincinnati, Boston, Austin, Silicon Valley - you can't expect someone who has a $15,000/month mortgage (as a proven CEO would likely have) and expect him to work for $8k/mth. "Hmmmm - over the next four years of my life, I can make $600k a year plus bonuses/benefits working for ACME Corp or I can make $100k a year with the chance to take home a $3m-$5m payoff..."

<comment><USER11> If he's "proven" wouldn't he be wealthy enough to live off a measly $125k/yr for a couple years at least?

<comment><USER10> I think you didn't read this:

"Hmmmm - over the next four years of my life, I can make $600k a year plus bonuses/benefits working for ACME Corp or I can make $100k a year with the chance to take home a $3m-$5m payoff..."

<comment><USER11> Well, you're just making up those numbers. Here's some I made up:

"Hmmmm - over the next four years of my life, I can make $350k a year plus bonuses/benefits working for ACME Corp or I can make $130k a year with the chance to take home a $10m-$20m payoff..."

<comment><USER10> At least the made up numbers I proposed at least we in the double digits of probability lol. I put your numbers in the 0.0001% chance of occurence. In other words, I give you a 0.0001% likely that a group of founders+investors will bring in a CEO post-financing and give him (1) enough equity that he earns a $10-$20m payout, yet (2) only let him earn $130k/yr.

</comment></comment></comment></comment></comment><comment><USER12> Video: <http://www.ustream.tv/flash/video/698620>

</comment><comment><USER13> Stay Hungry, Stay Foolish! - Thats all matters I think.

Steve Jobs Speech: <http://in.youtube.com/watch?v=D1R-jKKp3NA>

</comment><comment><USER14> In that case, I think I'm going to be the next Bill Gates.

</comment><comment><USER15> By YC equation (5k _n founders + 5k)_ 4 = 1 year bare minimum salary for founding team

$100-125k is pretty good for funded startup then i.e. as good as corporate salary

</comment><comment><USER16> CEO pay is a very good indicator. You should also pay attention to perks. Not all compensation is in terms of pay.

A CEO to taking a lower compensation says to me they are taking the company seriously. It's another way they have skin in the game.

If they aren't willing to sacrifice a little for the end game, may mean they are either purely in it for themselves or don't have confidence in the company. Either one is not so good for the company.

<comment><USER17> I hope you're not suggesting you should sacrifice healthcare though... bad idea.

<comment><USER18> If your CEO requires a healthcare-nanny in order to stay healthy during a ~4-year start-up run, perhaps you should be shopping for a new CEO. IQ codes for both business-competency and self-healthcare competency. High-IQ individuals with little money and no health insurance tend to be healthier than the average person. Linda Gottfredson details this further:

[http://www.udel.edu/educ/gottfredson/reprints/pubtopics.htm#...](http://www.udel.edu/educ/gottfredson/reprints/pubtopics.htm#health)

<comment><USER19> "Tend to" is a nice statistic on a population level but has little relevance to you or me as individuals.

I live in the UK were basic health care is free so perhaps I don't have the experience to comment but healthcare wouldn't be somewhere I would be trying to save a few pennies/cent.

<comment><USER20> _I live in the UK were basic health care is free_

No, you like in the UK, where basic healthcare is paid for by taxpayers. It doesn't become _free_ because the money is taken rather than given.

<comment><USER21> By that argument, it's not "free" to just walk down the street, because your tax dollars are paying to maintain that street - and reading a book at the library isn't "free" because you're paying for it through taxes. Heck, almost nothing's "free" by those criteria.

<comment><USER22> Lots of stuff is free.

Come couch surf at my place. I pay for it, but you enjoy it: it's free to you. Here's an ice cream cone. Once again, I paid, but you enjoy it.

To you, it's free.

Now -- use the powers of government to force people to pay taxes to buy you an ice cream cone? It's not free to you any more.

The danger is that you start feeling like I'm going to give you ice cream cones anytime. I can correct you of that assumption pretty quickly. But when the giver is some anonymous blob, starts looking like free money.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> Interesting that this is not a question on younoodle, a Thiel portfolio company (although previous salary is considered).

</comment><comment><USER24> If the CEO sets the ceiling pay, and an acceptable range is $100-125k, what then constitutes acceptable pay for (non-CEO) founders? Is $60k too high (given reasonable funding, pre-profitability)? $80k?

Just curious at what the usual funding agreements end up at.

<comment><USER25> I don't know the answer, but if I were CEO, I wouldn't care if I wasn't the highest paid person - as long as I am happy with the % of the company I owned.

So if this view is reasonable, I don't think that the CEO's salary is a ceiling.

</comment></comment><comment><USER25> An aside, but I wonder what the stats are on the signal to noise ratio (as judged by upvotes?) vs. average indentation depth of a particular discussion thread....

</comment><comment><USER26> What about performance related pay? For example, pay directly tied to profits?

<comment><USER4> I think this is probably pre-profit pay. If your startup is cash-flow positive, then by all means, pay yourself a market rate!</comment></comment>


Automated Job Rejection - <AUTHOR> http://www.economicpopulist.org/content/automated-job-rejection

<comment><USER2> There is a moderately interesting point to be made here that automated candidate screening software is not a panacea, and while it can do a good job of filtering through the hundreds or thousands of applicants that might materialize for a single post, it might cause you to miss out on a good fit.

On the other hand, this article is laden with so much hyperbolic moralizing that it makes me take almost none of it seriously.

One of SeatGeek's founders (where I work) has written repeatedly about the insane problem of managing job applications [<http://jackg.org/screening-with- an-arbitrary-test>]. This is not a self-inflicted wound. We're talking dozens to hundreds of _actually_ unqualified applicants for individual jobs, and the idea that a 15 person company is going to carry someone around for 6 months while they're "trained" is ludicrous.

It is absolutely true that there is a skills-gap in some industries. [Software is one of them]

It is absolutely true that a bad hire is more expensive than a non-hire.

It is absolutely true that some HR departments are breath-takingly incompetent, although most have a pretty good handle on their needs and cost structures, to be perfectly honest.

All that said, trying to spin this into a "the corporations are destroying the country!" story is beyond idiocy.

<comment><USER3> But they're not talking about startups. They're talking about large corporations that could sustain training of new employees.

<comment><USER4> Assuming you're right, who cares? Why must large corporations train employees if they don't feel it's in their best interests?

<comment><USER5> If you're talking about the social contract... who _is_ supposed to train employees? It's certainly the case currently that the US workforce bears the burden of training itself currently often by taking on substantial debt to afford a college degree.

But to say that companies that operate in the US don't have a substantial interest in ensuring that the US has a trained and skilled work force... that just seems dangerously short sighted.

<comment><USER6> Companies have an interest in there being a trained and skilled work force -- which is why they lobby for the government to spend tax dollars on education and training.

There's no inconsistency between it not being advantageous for companies to spend _their own_ money training people and it being advantageous for companies to spend _everybody's_ money training people.

</comment></comment></comment></comment></comment><comment><USER7> (warning: anecdote ahead)

I once had a job at a large institution created, for me, with requirements based solely on my resume.

The automated HR system decided I wasn't a match for the job. It took a month or two for them to be able to hire me after that fiasco.

<comment><USER6> I don't know anything about your specific case (obviously) but what you describe isn't _necessarily_ a bad thing. In some organizations, one of the rules of HR is to add a level of corporate sanity-checking to a process which is otherwise driven by individual managers -- by creating additional unstated requirements if necessary.

To take an extreme case, if Bob the VP of Sales decides he wants to create a "Senior Engineer III" position with a salary of $300k/year based on requirements drawn from his 13 year old nephew's resume, it's entirely appropriate for HR to add an unpublished "should have education or work experience suitable for a $300k/year job" requirement and not accept Bob's 13 year old nephew as a match for the job.

No system is perfect, but that doesn't mean that it's wrong to have such systems in place.

<comment><USER7> I totally get your point – checks and balances are important. However, I don't think anyone is helped by unstated or invisible requirements. It speaks to a high level of mistrust of employees and candidates.

Now, if HR were to explicitly add those requirements and be open about it, I'd wager it'd still keep fraud down while also actually improving the hiring process for both HR and the hiring manager.

<comment><USER6> Fraud is a difficult problem to deal with -- the more open you are about what you're doing to prevent it, the more you speed up the "evolution" of better (aka. worse) fraud.

Whether that effect is large enough to justify the lack of transparency in this case, I don't know; but I'm sure there are some cases where it is appropriate.

(Marginally related: This is why I have some sympathy for Paypal when they say "this payment is suspect" and refuse to provide any more information -- they can't tell me why a particular payment set off alarms without also telling the bad guys how to evade their alarms.)

<comment><USER7> No, it's really not when you constrain who the possible perpetrators are and consider that they must be long-term, more senior employees. Fraud by higher ranking employees – particularly managers involved in the creation of job descriptions and doing hiring is just not going to be that common.

It certainly isn't going to be common enough that it's worth destroying internal trust and credibility when open (within company) reviews and sufficient internal control mechanisms that didn't include hidden manipulation of candidate hiring could do an equivalent job without reducing the organization's ability to hire stellar candidates (not that I'm biased, given my case, of course =)

I mean, it may well happen, but all sorts of unlikely events _may_ happen and yet would similarly be problematic to keep constant protection for. It's all about the risk/reward analysis and, in this case, I believe you've calculated that incorrectly.

</comment></comment></comment></comment></comment><comment><USER8> How about the fact that none of these employers even have the courtesy to contact the applicant at all? I'm not talking only about unsolicited resumes sent to H/R managers, but job applications submitted through the big websites like Dice, Monster, and Careerbuilder. Not even a "we'll keep you on file" like the old days.

I'm half-tempted to make a shame board to let applicants tally up how many unanswered candidates each company has.

<comment><USER9> I've had firms contact me to tell me they've passed me over for consideration ... for positions I've never applied for. Apparently even rejecting various pseudonyms I've generated.

Which I suppose is the flipside of your situation.

<comment><USER8> Wow, that's just bizarre. Are you sure you don't have a resume active on some random job board that's continually getting sent out?

<comment><USER9> One of me does have a publicly posted resume. I've given some thought to seriously trimming what it reveals.

Others of me have public profiles, sans resume: [https://plus.google.com/104092656004159577193/posts/33WYAgFc...](https://plus.google.com/104092656004159577193/posts/33WYAgFca39)

</comment></comment></comment></comment><comment><USER10> The more I hear about these stupid HR systems, the more I see manipulating them as a matter of good SEO.

It's a system that rewards people that stuff keywords - effectively echoing the job requirements and adding the industry's buzzwords. It's also a system that rewards people who take a shotgun approach to applications, rather than individually crafted responses.

Ripe for exploitation I'd say.

<comment><USER11> > It's also a system that rewards people who take a shotgun approach to > applications, rather than individually crafted responses.

One of the main purposes of these systems is to deal with the massive amount of shotgun applications that companies are receiving. Of course, this means that more targeted applications do not receive the consideration they deserve, thereby incentivising job seekers to use a shotgun approach.

Sounds like a vicious cycle to me.

</comment></comment><comment><USER12> I think the automated resume filtering systems are interesting. Previous stories, about how to hire people, have told how the nice people involved in hiring did the exact thing these systems do, only manually. They take a big stack of resumes and filter 95% straight into the trash, based on some arbitrary rules.

I don't like the idea of these automated systems, but I also don't see how this is any different.

<comment><USER13> I've used an automated resume filtering systems in the past. They worked quite well. I'd absolutely do it again.

[http://www.chrisstucchio.com/blog/2012/one_hiring_filter_tha...](http://www.chrisstucchio.com/blog/2012/one_hiring_filter_that_works.html)

It certainly did filter quite a few people straight to the trash, based mainly on an inability to fizzbuz.

</comment></comment><comment><USER14> Just got hired to make software that ranks candidates based on more dynamic qualities, like the ability to answer basic logic problems or complete a task that the job may require. Could be cool.

<comment><USER15> I don't want to be mean or anything ( and probably it will go against the HN crowd) but you're part of the problem. Basically it's the reliance on computerized system to assess somebody's skills that is at the root of the problem.

I know it seems horrendous to a lot of people that thinks that computers are the solution to every problem but as of the current state of technology, it just does not work. I have been in the position of an applicant recently and the tests are just plain ridiculous. From the "IQ-Test" at Bloomberg for engineers to the automated "solve our problem and get hired" websites the system is just bloated with these cheap ( and shi* ) solutions.

It's time for companies to put some money on the table to hire real people doing real interviews to candidates. Any company that don't involve somebody at step 1 of the recruitment process to assist you and that claims that "Employees are first!", I say: bullshit!

<comment><USER16> I disagree that there is a problem. The _problem_ is that _you_ are choosing to apply at places that employ hiring mechanisms that you personally object to.

So I think that _you're_ the problem. Some people appreciate the rigorous screening. If you don't, apply somewhere else.

</comment></comment></comment><comment><USER17> One (optimistic) takeaway from this article for folks here is that this should show exactly how much of an advantage they can have in recruiting people (although obviously this isn't great news for people looking for a job).

Not to say that every big company has this sort of hiring inefficiency, but it seems like it's definitely a predisposition as you increase in size.

Most people seem to say that hiring is arguably the most important thing you do as a company. This shitty system can absolutely work to your advantage in trying to recruit talent.

</comment><comment><USER18> Automated resume rejection makes a lot of sense.

If there are 200 applicants for a position, software which eliminates all of the candidates only has 0.5% error.

That's pretty good AI.

<comment><USER19> I know that was a joke, but in situations like this there are two separate measures of error; precision and recall. Precision is how many of the results marked as relevant really were (measure of false positives), recall is how many of the actually relevant results were correctly considered relevant (measure of false negatives).

Any system can trivially have perfect precision by saying all results are not relevant, or perfect recall by saying all results are relevant. Your system would have 100% precision and 0% recall.

</comment></comment><comment><USER20> I was reading a book recently that called getting arrested, "being put on the electronic plantation". This was just getting an arrest too, not even a conviction. The logic was that all the good jobs do background checks nowadays and won't even interview someone with an arrest. So someone working retail with an arrest wouldn't be able to move up to bank teller, for example. Now throw in that you can be arrested even in cases where you are innocent or in cases of identity theft...

</comment><comment><USER11> The interview and the article state that "In some cases employers do not want to hire anyone at all, they think it's cheaper to leave positions unfilled!". If it is cheaper to leave a position vacant, why bother listing it as open? Wouldn't it make more sense to eliminate it?

<comment><AUTHOR> Sometimes there is an internal candidate that will get the job, yet it still has to be posted for some arcane rule/law... Or so I hear.

<comment><USER21> I hear this excuse often, but in ten years at a large company I never met anyone I never met anyone who was the beneficiary of such a thing.

</comment></comment></comment><comment><USER22> This reeks of principal-agent problems. HR departments at large firms are notoriously concerned with 1) folk knowledge about not getting sued (with a very tenuous relationship to reality, eg mgkimsal's comment), and 2) checking boxes. Since their actions have almost zero connection to outcomes, it's no wonder they play it safe / easy in hiring, and both firms and workers see shortages.

One way to start solving the problem is to make the department with the position responsible for filling it, either with their own man-hours, or via their own headhunting budget.</comment>


Top Colleges for Entrepreneurship - <AUTHOR> http://www.entrepreneur.com/topcolleges/

<comment><AUTHOR> Whether entrepreneurship can truly be taught or not is debatable. Still, there's no question that certain schools better nurture an entrepreneurial attitude.

I couldn't help but notice the statistics for these schools, though. I presently attend Cornell University, and have a hard time believing that these schools would be better suited for an entrepreneur. 30 entrepreneurship courses? Cornell has over 200, including more than 30 geared toward web entrepreneurship alone. No less than two of my friends' teams here were given YC interviews. My courses for next semester include "Internet Strategy," "Networks" (taught by the legendary Jon Kleinburg), "Entrepreneurship and Personal Enterprise," and "Psychology of Social Computing."

In any case, a college education is by no means necessary to be a successful entrepreneur. In many cases, an entrepreneur's time can be better spent working on a startup than attending school. I'm rather surprised though, with how instrumental my education has been to my startup, and how helpful the resources of a college campus have been. No amount of education can replace experience, but I know that what I've learned will serve me well when I begin to work on my startup full time.</comment>


DEC64: A Decimal Floating Point Number Type Well Suited for Money - <AUTHOR> http://dec64.com/ <comment><USER2> well suited for _decimal_ money, though to be fair that's just about all money these days.

Adding or subtracting numbers with any fractional part hits the "slow path". A slightly more clever implementation could add "equal exponent" values in the not-quite-so-fast path (xor exponents, giving zero in dl; if zero, store zero back to cl and do the integer add) (but does this hit partial register access pipeline penalties? probably)</comment>


We're Reddit Mods, and This Is How We Handle Hate Speech - <AUTHOR> http://www.wired.com/2015/08/reddit-mods-handle-hate-speech/

<comment><AUTHOR> The title of the article doesn't seem to address the question it poses, but I didn't want to change it. According to the mods interviewed, it was supposed to be a different title and they changed it after the fact.</comment>


U.S. Scurries to Shore Up Spying on Russia - <AUTHOR> http://www.wsj.com/articles/SB10001424052702304026304579453331966405354?mod=WSJ_hp_RightTopStories&mobile=N

<comment><USER2> What, is the NSA too busy surveilling US citizens without a warrant? Or is it like infiltrating the anti-war groups during the 60s - too easy to pass up anti-war people who have opens meetings, so you don't have manpower for organized crime?

Here's a hint: if you can't remember the past you're doomed to repeat it, NSA.</comment>


In Defence of Delaying Gratification, Amazon from a long term profit perspective - <AUTHOR> http://ireaderreview.com/2012/09/10/in-defence-of-delaying-gratification-amazon-from-a-non-short-term-profit-perspective/ <comment><AUTHOR> Disclaimer: original title says 'non short-term' and i replaced it to 'longterm' to keep the title below 80 chars. Sorry.</comment>


Show HN: HeroSnatch – User-friendly workout tracker for CrossFit athletes - <AUTHOR> Hey Hacker News family,
My name is Mike. I'm a marketer from HeroSnatch app and I'm super excited to introduce our product to the community!
HeroSnatch (FREE) is a user-friendly workout tracker that helps CrossFit athletes plan their workouts, keep personal records always up-to-date, achieve best results by concentrating efforts on weak points, adjust training plans to stay in balance, find friends or teammates and connect with other athletes.
Our goal is to give athletes the ability to keep their records in a single safe place. Unlike other WOD (Workout of the Day) tracking apps, we put the user first and try to deliver the best experience with a clean UI and beautiful data visualization.
Here's what you can do with HeroSnatch:
- Find a suitable workout among existing; - Challenge yourself with Benchmarks or Opens; - Build new AMRAP, AFAP and EMOM workouts by yourself; - Create a plain WOD as a text if you got stuck with a builder;
- Keep up with your stats by following an activity calendar; - Monitor your progress and workout modality balance; - Share results to your feed and comment other athletes; - Compete with friends for the top of a leaderboard.
Download on the App Store: https://apple.co/2O7V1fr Get in on Google Play: http://bit.ly/hsgoogleplay Or use our web version: https://herosnatch.com/
Feel free to share your thoughts in comments and don't be shy to ask any questions. We at HeroSnatch would be very grateful for your honest feedback about our app!
Drop me a DM if you need some additional info:
Email: email@example.com Instagram: @michaelzelensky Telegram: @michaelzelensky Twitter: @michaelzelensky <comment><USER2> Looks like your concept is thought out, but I will ask my requisite 'new app' questions...

1\. If the app is 'free', where does the revenue come from? Will you seek to monitize differently in the future?

2\. Is any data, training or otherwise, sent anywhere (beyond the phone) by the app? If so, what, and to whom?

3\. Any plans for fitness tracker bracelet intergration? Heartrate is super useful, could take or leave motion/steps etc.

<comment><AUTHOR> Hi there! Thanks for the kind words and for your questions.

1\. We are planning to introduce a Freemium model which means we will have the following roles:

\- Basic \- Athlete \- Coach \- Box Owner

Once we reach a critical mass of the service we'll be trying to play with some ads around CF equipment.

2\. Could you please clarify what did you mean about the data? Not sure if I got it right.

3\. No, we have no plans for any fitness trackers.</comment></comment>


Ask HN: What are the most interesting things happening right now in JavaScript? - <AUTHOR> <comment><USER2> Watching how the language grows can be very interesting. I highly recommend taking a look at TC39 proposals and the process.

For example, SmooshGate: [https://developers.google.com/web/updates/2018/03/smooshgate](https://developers.google.com/web/updates/2018/03/smooshgate)

For something more recent and ongoing, private class fields: [https://github.com/tc39/proposal-class- fields](https://github.com/tc39/proposal-class-fields)

</comment><comment><USER3> As an experiment I created a framework called JEEP. You might find it interesting. [https://github.com/vinayms2017/JEEP2018](https://github.com/vinayms2017/JEEP2018)

</comment><comment><USER4> Our roundup of 2018 might help get some context for this: [https://javascriptweekly.com/issues/417](https://javascriptweekly.com/issues/417)

</comment><comment><USER5> The fact that the language and ecosystem are maturing. It's less about the new shiny thing and more about incremental improvements on proven libraries/paradigms.

</comment><comment><USER6> TypeScript and WebAssembly.

</comment><comment><USER7> NodeJS v11.6 was only released about 2 weeks ago</comment>


Interviews with people who've made money in cryptocurrency - <AUTHOR> https://www.nytimes.com/2018/01/13/style/bitcoin-millionaires.html <comment><USER2> This is the seventh time this has been posted. It keeps getting flagged, perhaps because of the linkbait title. If someone suggests a better title, where better means "accurate and neutral and using representative language from the article itself", we can change it.

I'm not sure there's a good discussion waiting to happen here, though. We'll probably just get the n+1-th flamewar about bubbles and whatnot.

<comment><USER3> How about "Interviews with people who've made money in crypto"?

The article is quite interesting on the psychology of the thing.

<comment><USER2> OK, changed. Too late for this one to matter but if it gets reposted we can change it again.

</comment></comment></comment><comment><USER4> Is this the New York Times or BuzzFeed?

What a bad title.

</comment><comment><USER5> apparently this being reposted in the third position is a natural result of hn ranking</comment>


Show HN: Pincone – A Bookmarking Tool for Teams - <AUTHOR> https://pincone.com/ <comment><USER2> Looks really nice and simple to use. Great job.

</comment><comment><USER3> Very nice app! Been looking for something like this.</comment>


3 big surprises from the Apple Watch event - <AUTHOR> http://www.networkworld.com/article/2894531/opensource-subnet/3-big-surprises-from-the-apple-watch-event.html

<comment><AUTHOR> The highly anticipated Apple Watch event brought some unexpected announcements involving new products and partnerships for Apple.</comment>


Ask HN: Cloud computing research topics from a business perspective? - <AUTHOR> With the rise of a ubiquitous provision of computing resources over the past years, cloud computing has been established as a prominent research topic. In contrast to many other research works focused on technical aspects of cloud computing I'm trying to find interesting research topics from a business perspective. With so many practitioners in HN what are your challenges/suggestions? <comment><USER2> Privacy, data governance and productivity.

As a business, if all our applications are in the cloud and we lose connectivity, we lose a lot in terms of productivity.

If we put our data in the cloud, who governs the data when you start to replicate it across your network? If my data goes into other countries, what are the implications of that?

And how do I prevent myself from cloud vendor lock-in? What if we needed to transfer our data somewhere else. Will the cloud vendor have a proprietary data format or will we be able to extract our own data in an interchangeable format?

<comment><AUTHOR> Your points are very real world and interesting tixocloud, but at this stage I'm looking at some different options.

I've found a very interesting paper Trends in The Study of Cloud Computing: [http://www.iiis.org/CDs2014/CD2014IMC/ICSIT_2014/PapersPdf/H...](http://www.iiis.org/CDs2014/CD2014IMC/ICSIT_2014/PapersPdf/HB406AN.pdf). I'm looking to do some work around the following topic: Findings of an exploratory study into the mechanisms at play when organisational processes are modified due to the introduction of cloud computing, and the implications such changes could represent for strategy.

I would like to have more opinions about the impact of cloud in value chain, corporate strategy, competitive advantage, SME/large corporation digital gap reduction. Any takers?</comment></comment>


Ask HN: Actions I can take against a company wanting to clone my SAAS-Website - <AUTHOR> I just found a post on freelancer dot com, asking for 1:1 clone of my companies SAAS-Webservice. (The really refer to our domain in the posting)
Though it is flattering, that somebody thinks it is good enough to make a clone of it, and that they thouroughly undeerstimate the complexity of the product, I do fear loosing some of the hard work and money invested.
Any advice or experience on how to go about this?
Update:
As I am quite certain by now, that the company posting, is located in our vicinty, the one thing I'd  really like to know is who they are. Anybody got experience in getting a name from freelancer dot com? <comment><USER2> 1\. Talk to a lawyer.

2\. Do you have any patents or other defensible protection?

3\. Build and iterate faster than them so you are the market leader.

4\. IANAL, but unless they blatantly copy your site word for word, and image for image, you are going to have a hard time doing anything from a legal perspective (unless it is a past employee or a situation where you may have a NDA or a non-compete in effect).

5\. The real fact is there will always be competition, even if it didn't exist when you started, someone is bound to come along. You just have to show more drive, be the better product, and win in the end. Everything else you do is a waste of time/money on your part IMO.

<comment><AUTHOR> Re 1 Probabyl to much time and money in the wrong channels..

Re 2: Only a trademark

Re 4: It's seems to be somebody who knows the internals. As they are asking for things, you can't really know unless you've worked with us. We're trying to figure out who is doing the biding..

Re 5: Completly aggree. What they will be lacking is the market knowledge. Before spending money on a lawyer, I'd rather invest that money directly in the product..

<comment><USER2> Yep. I wouldn't worry about it. Freelancer.com, etc..., are full of "build a clone" projects. Keep your focus on your project.

</comment></comment></comment><comment><USER3> unbelievable... ^^</comment>


Ask HN: How do you keep your backup server safe? - <AUTHOR> I use duplicity on a few servers to encrypt backups and send them to a backup server, which then sends another copy to rsync.net, and then, once a week, give it or take, I download these backups to a local server.
The problem I have with this is that to send these encrypted archives to the backup server, each server has a password-less SSH key that allows them to connect to the backup server.
While each server has its own user on the backup server, and the user only has permission to write to its own backup directory, I still fear that a compromised server — thinking ransomware, to be specific — could damage the backup server as well.
I thought about doing the inverse and having the backup server connect to the other servers, grab what it needs, and then shut itself down, but that seems worse, as a compromised backup server would have access to the entire server inventory.
So, I am wondering what you guys do to keep your backup servers safe? <comment><USER2> After ransomware attack an unusually large number of old files will have changed. Maybe the backup server can monitor that metric?

<comment><AUTHOR> I monitor file integrity with OSSEC and Monit, but I would like to prevent it from happening.</comment></comment>


a literate haskell program by Phil Wadler - <AUTHOR> http://homepages.inf.ed.ac.uk/wadler/papers/tychonoff/tychonoff.lhs

<comment><USER2> This is what our assignments looked like back in Glasgow in the 1990s.

Phil Wadler was an inspiring, thoughtful and funny lecturer (as long as you din't turn up late to one of his lectures).

He would also offer to buy the whole theatre (the first x of 400) students a drink at the end of term.

He was my favourite teacher, ever.

</comment><comment><USER3> I think i need to get back into haskell!

I had phil wadler in 1st year and should have him this year in 2nd semester for another class at Edinburgh uni. Very enthusiastic guy!

<comment><USER4> If you're still in Edinburgh you might be able to chat to him at the next Ed Lambda (meetup.com/ed-lambda). He attended the last one.

<comment><USER3> Yea i saw you started that, i'm still at Edinburgh Uni. I follow you on twitter!</comment></comment></comment>


LispWorks: Advanced Lisp Programming Environment - <AUTHOR> http://www.lispworks.com/news/news24.html

<comment><USER2> What are people's thoughts about using LispWorks, how does it compare to Emacs/Slime?

<comment><USER3> A friend of mine swears by Lispworks for its fast, easy, flawlessly multi- platform GUI builder. He says he loves the idea of the open source CLs but could never give up that GUI builder. He also says the price and license is better than Allegro's.</comment></comment>


The Atlassian Term Sheet - <AUTHOR> https://editorial.atlassian.net/wiki/spaces/ED/pages/262284/The+Atlassian+Term+Sheet <comment><USER2> I admire Atlassian's putative motivations here, but their sanctimoniousness is a bit rich: this term sheet would force key employees to agree to a non- compete (something that should be redlined immediately) and would reserve the right to force employees to waive the protections that they may have been granted in terms of accelerated vesting triggers and change-of-control provisions. _These_ are the kinds of provisions which actually affect the rank-and-file in an acquisition (and, of course, the actual purchase price with respect to the preference stack); for Atlassian to pretend that they are coming up with a ludicrously seller-friendly term sheet because of the escrow and insurance terms is a little absurd. Or perhaps Atlassian would also share which of these terms became redlined in the deals that they've done?</comment>


Getting Started With BeepBeep - <AUTHOR> http://lethain.com/entry/2009/jul/05/getting-started-with-beepbeep/ <comment><USER2> Looks quite nice, but I'm worried by this post ([http://groups.google.com/group/mochiweb/browse_thread/thread...](http://groups.google.com/group/mochiweb/browse_thread/thread/9c4b8ca9a5ffd327)) which indicates the framework is abandoned.</comment>


Show HN: I tried to build the ultimate Reddit gif viewer with Backbone.js - <AUTHOR> http://hugegif.com

<comment><USER2> When I press "back" on my browser, it doesn't take me back. This is up there in annoyances with people stopping their car in a merge lane, websites that auto-play music, and people who speak exclusively with cliches.

This should be at the top of your list of bugs.

<comment><AUTHOR> Oops! Thats a bug with the first gif shown. Going to a subreddit will redirect you to the first gif. Thanks for pointing it out

</comment></comment><comment><USER3> It does not do anything when I click on the buttons, Firefox 27 on Windows 7.

<comment><USER4> Same here on 27.0.1 under OS X, even with the console open. No errors reported. Works great in Chrome/Safari/Opera.

<comment><USER5> Doesn't work in Chrome Beta (33.0.1750.117) Ubuntu either.

</comment></comment></comment><comment><USER6> Some things I've noticed:

* Aspect ratio is ignored causing many images to be cropped.

* Some gifs go on so long that the screen blanks on mobile devices. Where do I tap to keep the screen alive?

* Social network sharing links?

* A feature to star gifs as I go along and then share them all at once to <insert network here> or save them would be nice.

</comment><comment><USER7> Pretty awesome! Gif size goes up really quickly based on length, image size, dithering etc. So a lot of people reduce those so that their gifs are smaller and can load quickly. So maybe a full-screen treatment is not the best idea!

<comment><USER8> Depends on the device.. This is perfect for phones.

</comment></comment><comment><USER9> I'd like a filter for items flagged as "nsfw"

This one was embarrassing: [http://hugegif.com/#r/perfectloops/1ys9hb](http://hugegif.com/#r/perfectloops/1ys9hb)

</comment><comment><USER10> I dig it. It looks like linking to a specific image does not work:

[http://hugegif.com/#r/reactiongifs/1yxipe](http://hugegif.com/#r/reactiongifs/1yxipe)

<comment><AUTHOR> Strange that it's not consistent, ill fix it... [http://hugegif.com/#r/gifs/1yya9h](http://hugegif.com/#r/gifs/1yya9h)

<comment><USER10> I blame gremlins. I just squished a few of those myself. Great job on the site.

</comment></comment></comment><comment><USER11> some gifs are not properly resized : [http://hugegif.com/#r/gifs/1yzv2t](http://hugegif.com/#r/gifs/1yzv2t) , we can't see the full content ;)

edit: link to the original : [https://24.media.tumblr.com/15521bbe61104a84cf9c3cc824de3ca9...](https://24.media.tumblr.com/15521bbe61104a84cf9c3cc824de3ca9/tumblr_n1lt6qA6AJ1rwnxnho1_400.gif)

</comment><comment><USER12> Does it support gfycat (GIFs converted to HTML5 videos)?

<comment><AUTHOR> One of the next features is to use gfycat as default - Not sure if it works with the browser extension at the moment

</comment></comment><comment><USER13> I can't view the page on my Nexus 5. it's just a thin line of something!

<comment><AUTHOR> I seem get this effect while the image is loading. Are you using chrome or native browser?

<comment><USER14> I believe that chrome _is_ the native browser on the Nexus 5.

</comment></comment></comment><comment><USER15> It just gives me "Not Found" when I press any of the subreddit buttons.

<comment><AUTHOR> Which OS/browser are you using?

</comment></comment><comment><USER16> this is awesome, but it would be really sick if there was a sidebar with the list of posts in a given sub.

</comment><comment><USER17> There goes the rest of my day.</comment>


Red is full-stack programming language - <AUTHOR> http://www.red-lang.org <comment><USER2> Built in UI stuff for windows is pretty cool. Defiantly going to try this out.</comment>


Why hiring is broken and how I'm dealing with it - <AUTHOR> https://userinterfacing.com/why-hiring-is-broken-and-how-im-dealing-with-it/ <comment><USER2> Hiring in most business settings is severely broken. It's biased, long, too sensitive to supposed red flags, and opague.

Conversely, I recently received two job offers where the process was easy. One was for a large corporation's customer service department. Aside from an insanely long appllication form, the interviews were very short.

The other job is a waiter job, and I'm absolutely loving this type of work. I walked in, told the manager I have experience, and started the next day.

</comment><comment><USER3> I'm simply exhausted by it, even though I do pretty well in whiteboard interviews.

These days, I stick with places that are happy to see me coming. Desperate even. I'm not getting top dollar, but I have a lot more leverage.</comment>


Australian Information Commissioner takes action against Facebook - <AUTHOR> https://www.smh.com.au/politics/federal/information-commissioner-takes-action-against-facebook-over-cambridge-analytica-scandal-20200309-p548aw.html <comment><USER2> 1.7m fine for damages to 300k individuals sets the wrong example.</comment>


A More Awesome Web - <AUTHOR> http://www.moreawesomeweb.com/#1

<comment><USER2> So we can soon expect the "Best viewed with Google Chrome" badges?</comment>


Moore's Second Law - <AUTHOR> http://c2.com/cgi/wiki?MooresSecondLaw

<comment><AUTHOR> People often forget this part of what Gordon Moore said. Perhaps the final barrier will not be technological, but economic in nature? (Reminds me of issues with access to space.)

</comment><comment><USER2> I find that hard to swallow. We live in a world where things get cheaper with time. I'm sure the cost in some kind of absolute wealth measure increases very fast. But by this measure, a single one of today's factories would be completely unaffordable to humans a hundred years ago, but today we generate more wealth (in that absolute measure) in one day than we did in a year back then.

I'm sure the cost of these advanced factories is unfathomable to us today, but in X years, in proportion to the wealth available to build them, I believe they will be affordable.

As a final nail in the coffin, this assumes that our manufacturing processes remain more or less the same. What about, for example, nanomanufacturing? The promise of wide-spread nanomanufacturing is that _anyone_ will be able to build cpus in their backyard...

<comment><AUTHOR> I meant specifically for lithography and silicon. You've forgotten the precise wording of the _first_ part of Moore's law, I see.</comment></comment>


Impress.js demo - presentation program - <AUTHOR> http://bartaz.github.com/impress.js/#/bored <comment><USER2> This library has been around a while and is pretty compact and easy to use.

A better page of examples (user-contributed) is here: <https://github.com/bartaz/impress.js/wiki/Examples-and-demos>

<comment><USER3> Shameless plug, my git talk using impress: <http://sejeff.github.com/git- talk/>

</comment></comment><comment><USER4> While this is truly, _ahem_ , impressive, I sure hope a real presentation doesn't involve nearly as many dizzying rotations. When attempting to convey an idea, animations should be subtle, or the idea gets lost in the pretty effects.

<comment><USER5> I tend to agree. I have tried using impress to create presentations that were spatial, focusing less on the dizzying animations and more on the actual content... But Impress isn't set up for it. Impress is really designed to move the camera about a scene and moving the camera is the only operation it supports well.

You'll notice the user examples from that wiki are mostly the same basic idea... because it's quite difficult to make something more complex with impress out of the box. YOu can see a few pull requests that try to make this easier, like the one that supports subslides (i.e. a slide transition that doesn't cause a camera movement).

<comment><USER6> I think the only place for these presentations is where you're not physically giving the talk. In most cases, simple cuts or dissolves between slides is fine, since like you said, none of this actually adds much to the presentation.

</comment></comment></comment><comment><USER7> It's lovely! Well done.

I really strongly suggest you find a use for it that is not presentation. When I'm presenting I want people to be listening to what I'm saying, or getting information of the slide (or from their handouts); I don't want them thinking "Hey, that's a nice transition, I can't do that in powerpoint, I wonder what they used; wait, did he just say 27% up or 27% late? Wow, what was that group for?" etc.

I liked the way it told me after a few seconds that I needed to use arrows or the space bar. And it kept the back-button functionality.

</comment><comment><USER8> I opened up the source code and it was like a walkthrough. I like this a lot. I'll be spending some time on this tomrrow.

All the references to Yoda made me dig up this classic. <http://www.youtube.com/watch?v=493ljyoox6o>

<comment><USER9> So completely off-topic -- but if you like Darth Vader Rapping - then I need to suggest Epic Rap Battles (Of History):

Pt1: <http://www.youtube.com/watch?v=AFA-rOls8YA> Pt2: <http://www.youtube.com/watch?v=CeLrlmV9A-s>

(The rest of the series is quite fun as well -- and impressive for an indie outfit)

</comment></comment><comment><USER10> Very nice. Although at first, I didn't realize the slideshow kept going after the 3rd slide. It looked like it ended. It was only out of curiosity that I used the right arrow key and saw the whole sliding effect. Maybe make a note of that on the 3rd slide.

</comment><comment><USER11> Having played around with reveal.js (<http://lab.hakim.se/reveal-js/>) just last week. This is even more interesting!

<comment><USER12> I didn't hear about reveal.js. I was considering impress.js (I've known this tool for some time already) as a tool to make my next presentation but I think reveal is better choice in my situation (I think it's easier to use and has everything I need). Thanks for the link!

</comment></comment><comment><USER13> Slidery is a Java based project which allows to write presentations in markdown and generate slides in Impress.js and a bunch of other javascript presentation frameworks.

<https://github.com/aestasit/slidery>

(the guy who created it is my business partner)

<comment><USER14> I assume there are a number of these, this is my version (written in python instead of java): <https://github.com/scommab/impressor>

Not surprisingly I like mine better, since you (in theory) shouldn't need to write any code, just create a markdown file a correctly formatted file.

</comment></comment><comment><USER15> Seems a lot of people (based on the comments) have written presentation generators :) Here's my contribution [1]. I created it to whip up quick slideshows for my club presentations on campus.

[1]: <http://prezjordan.github.com/cleaver>

</comment><comment><USER16> I love the concept of impress.js and started making a presentation for the agency I work for: <http://kitchdigital.com/about/>

Warning, there is a lot of zooming around and you might feel sick.

<comment><USER17> The only thing I hate about pages like this is that they hijack the browser with their fake history. When I press the back button from this page I want to go back to your homepage, or back to HN. I don't want to have to click it 20 times to get back to where I was. Playing the presentation in reverse doesn't even make sense so it's not a use case you should design for.

</comment></comment><comment><USER18> I started this little project several months ago based on impress.js

should still work in chrome/safari.

<http://stepludesigner.azurewebsites.net/designer>

</comment><comment><USER19> I used it to give a talk at Droidcon hacknight. Here's a <dark> video :) <http://www.youtube.com/watch?v=oYiSuxPpJTg>

</comment><comment><USER20> This has been around for awhile now.

</comment><comment><USER21> this is great Bartaz - congratulations.

Although I'd stress not too use too many effects.

I read this recently...

[http://www.guardian.co.uk/uk/interactive/2012/dec/28/2012-in...](http://www.guardian.co.uk/uk/interactive/2012/dec/28/2012-in- review-interactive-guide)

and it's just way too disorienting.

Stay subtle :)

</comment><comment><USER22> jmpress.js is an interesting fork of this with more features and some kind of deeper jquery integration. Worth a look: <http://jmpressjs.github.com/jmpress.js/#/home>

<comment><USER23> Nice, but it feels like jmpressjs is actually somewhat restrictive compared to impress, am I right? jmpressjs feels more slide-oriented, whereas impress is more like prezi - position it yourself wherever you like in 2D space.. is this correct?

<comment><USER22> I thought jmpress was pretty much a superset of the functionality of impress. I could be wrong though.

</comment></comment></comment><comment><USER24> I'm truly impressed with the library. Simply Amazing !!

</comment><comment><USER25> I'm actually impressed by this. Good stuff!

</comment><comment><USER26> Add mousewheel and it would kill.

</comment><comment><USER27> cool. But i never ended up using prezi. the animations made me feel sea sick :(

</comment><comment><USER28> loved it</comment>


Shader Deconstruction of Happy Jumping - <AUTHOR> https://www.youtube.com/watch?v=Cfe5UQ-1L9Q <comment><AUTHOR> This is a long video (by one of the creators of Shadertoy) but I learned a ton of interesting stuff from it.

It inspired me to write my own simple ray marcher from scratch yesterday without referring back to the video, which was fun and very satisfying when it started working.</comment>


Telerik Open Sources World's Largest Library of UI Tools - <AUTHOR> http://www.telerik.com/company/press-releases/2014/04/16/telerik-open-sources-world-s-largest-library-of-ui-tools-and-javascript-framework-features-with-telerik-kendo-ui-core

<comment><USER2> Just tried their grid control. Truely impressive work. Wonder how and if it will be integrated into other frameworks now (think angular-ui like project).

</comment><comment><USER3> [https://news.ycombinator.com/item?id=7602854](https://news.ycombinator.com/item?id=7602854)</comment>


Found in translation - <AUTHOR> http://37signals.com/svn/posts/3566-found-in-translation

<comment><USER2> This seems like great advice. When I get support tickets from users who use their own jargon, I automatically become dismissive. If they cared enough to read the manual, they'd use the right words, and then maybe they wouldn't be so lost. But that's a terrible attitude to have in doing support. I usually find that while I'm writing my dismissive response I'm using the right jargon, and by the time I get about halfway there, I'm empathizing. This method could be more direct and less stupid.</comment>


Things are so good they're bad  - <AUTHOR> http://www.economist.com/blogs/freeexchange/2011/01/innovation

<comment><USER2> Quote from the article...

"People used to spend a lot of money going to movies, buying books and records, making expensive long-distance phone calls, paying for word processing software, and so on. Now, a lot of that can be done at almost no cost. Prices are falling."

Don't worry, those prices are being offset by rising costs of food, medical care, education and energy prices to name just a handful. Also, the resources of our planet aren't getting more plentiful.

"Imagine a world in which technology has advanced to the point that robots can build robots that operate at basically no cost at basically no cost, such that people can have anything that want anytime for free; the only constraint on consumption is the time available."

This is talking about manufacturing. Services will always cost money and a robot can't replace creative thinking.</comment>


The why and how of Measuring Software Quality - <AUTHOR> http://blog.ssims.co.uk/index.php/2013/11/the-why-and-how-of-measuring-software-quality/

<comment><USER2> I study software processes for a living. Most of the organizations I've looked at are large enough and have mature enough processes that some of your list doesn't apply.

In a recent project, we sent a request to an industry luminary (one of the signers of the Agile Manifesto), on what metric(s) would be ideal for improving the quality output of agile teams. He responded back that the only metric he thought worth considering was the number of interruptions developers encountered daily.

The company we were studying at the time made two distinct changes: 1) re- working their automated build failure notification email (better recipient targeting, clearer error highlighting) resulting in faster fix commits. 2) An organizational push to trim their unit test suite (by about half) which decreased time needed for hardening and freed resources for new development.</comment>