Conventions for Command Line Options - <AUTHOR> https://nullprogram.com/blog/2020/08/01/ <comment><USER2> Just, whatever, you do, please please PLEASE _PLEASE_ support `--help`. I don't mean `-h` or `-help`, I mean `--help`.

There's only one thing the long flag can possibly mean: give me the help text. I understand that your program might prefer the `-help` style, but many do not. And do you know how I figure out which style your program likes? That's right, I use `--help`. I have to use `--help` rather than just `-help` because of GNU userspace tools, among others. It seems unlikely they're going to suddenly clean up their act _this_ decade, so I have to default to starting with `--help`.

So it's very frustrating when the response to `program --help` is "Argument --help not understood, try -help for help." This is then often followed by me saying indecent things about the stupid program.

<comment><USER3> Traditional UNIX® options for help are -? and -h. --long-options are a horrid GNU-ism and shunned by clean UNIX® compliant programs, because such programs come with detailed, professionally written manual pages which contain extensive SYNOPSIS and EXAMPLES sections.

Implementing --long-options makes the poor users type much more, hurting ergonomy and the users' long-term productivity and efficiency.

<comment><USER4> -? - what are you smoking? :)

That is a glob in most shells, try putting a file named "-a" in your current directory and see what happens...

The proper way to write it would be -\?

<comment><USER3> It goes without saying that it has to be escaped in most shells, but that is the traditional option for help on UNIX®. You would be well advised to educate yourself on the history of UNIX® before coming up with "what are you smoking?"

</comment></comment></comment></comment><comment><USER5> I write a lot of commandline utilities and scripts for automating tasks. I find environment variables _much_ simpler to provide and accept key/value pairs than using arguments. Env vars don't depend on order; if present, they always have a value (even if it's the empty string); they're also inherited by subprocesses, which is usually a bonus too (especially compared to passing values to sub-commands via arguments, e.g. when optional arguments may or may not have been given).

Using arguments for key/value pairs allows invalid states, where the key is given but not the value. It can also cause subsequent, semantically distinct, options to get swallowed up in place of the missing value. They also force us to depend on the order of arguments (i.e. since values must follow immediately after their keys), despite it being otherwise irrelevant (at least, if we've split on '\--'). I also see no point in concatenating options: it introduces redundant choices, which imposes a slight mental burden that we're better off without.

The only advice I wholeheartedly encourage from this article is (a) use libraries rather than hand-rolling (although, given my choices above, argv is usually sufficient!) and (b) allow a '\--' argument for disambiguating flag arguments from arbitrary string arguments (which might otherwise parse as flags).

<comment><USER6> The beautiful thing of environment variables is that you can read them whenever you actually need them in your program. They pierce a hole through your call stack to the point that you need them. On the contrary, for command line arguments, you need to pass their values from the main function through whatever deep of the call stack you need them.

<comment><USER7> Same thing can be said about global variables. I think any sane developer would agree it's a anti-pattern.

<comment><USER5> Mutating global variables is certainly an anti-pattern, but I'm not so convinced that global constants are a problem; i.e. if we treat env vars like immutable variables (in fact I treat most variables as immutable).

</comment></comment></comment></comment><comment><USER8> Most cli parsers don't fully support the author's suggested model because it means you can't parse argv without knowing the flags in advance.

For example, the author suggests that a cli parser should be able to understand these two as the same thing:

        program -abco output.txt
        program -abcooutput.txt

That's only doable if by the time you're parsing argv, you already know `-a`, `-b`, and `-c` don't take a value, and `-o` does take a value.

But this is a pain. All it gets you is the ability to save one space character, in exchange for a much complex argv-parsing process. The `-abco output.txt` form can be parsed without such additional context, and is already a pretty nice user interface.

For those of us who aren't working on ls(1), there's no shame in having a less-sexy but easier-to-build-and-debug cli interface.

<comment><USER9> But every single command line parser I have ever used (and I have used many over the past 25 years in many programming languages) does in fact know before parsing that a b and c don't take a value and o does: accepting the grammar for the flags and then parsing them in this way is like the only job of the parser?

<comment><USER10> I suppose the only reason why you wouldn't want to have a centralized description of the command line grammar is if you're using flags which alter the set of acceptable flags. Like e.g. if you put all git subcommands into one single executable - the combinations and meanings of commandline flags would become absurdly complicated.

<comment><USER11> This is usually handled by adding support for that sort of syntax to the parsing library. The result is typically not complicated: you have a parser for the global options, then, if using subcommands, in effect a map of subcommand name to parser for options for that command.

</comment></comment></comment></comment><comment><USER12> Very opinionated, and IMO without enough justification.

The assertions around short options with arguments - conjoining with other short options, for example - are actively harmful to legibility in scripts, since there's no lexical distinction between the argument and extra short options. I don't recommend using that syntax when alternatives are available and I deliberately don't support it when implementing ad-hoc argument parsing (typically when commands are executed as parsing proceeds).

<comment><USER13> Counterexamples where this is good for legibility.

        tar -xf archive.tar.gz

        tar -czf archive.tar.gz dir/

<comment><USER14> I'm guessing the comment was talking about examples like this:

        program -abcdefg.txt

Just from reading this, you can't tell where the flags end and the filename begins unless you have all the flags and their arities memorized.

<comment><USER15> Worse than that, it adds an unstable convention to an otherwise stable interface. What if there used to be a, b flags and then they add a c flag? Who knows what your command does now. It's just bad all around.

<comment><USER13> It's not unstable or ambiguous at all.

        -abcdefg.txt

In your hypothetical -b takes an argument which means it consumes all the characters following it. Anything following b is never interpreted as a flag. There is no danger of -c changing the parsing. Even if b takes an optional argument it still consumes all characters following it.

<comment><USER15> Ah, you are right.

</comment></comment></comment></comment></comment></comment><comment><USER16> I really do like argparse.

It will cleanly do just about anything you need done, including nice stuff like long/short options, default values, required options, types like type=int, help for every option, and even complicated stuff like subcommands.

And the namespace stuff is clever, so you can reference arg.debug instead of arg['debug']

<comment><USER17> I always found argparse did argument parsing well enough but it felt clunky when you need something more complicated like lots of subcommands. I find myself using it exclusively when I'm trying to avoid dependencies outside the Python standard library.

My choice of argument parsing in Python is Click. It has next to no rough edges and it's a breath of fresh air compared to argparse. I recently recommended it to a colleague who fell in love with it with minimal persuasion from me. I recommend it highly.

[1] [https://click.palletsprojects.com/en/7.x/](https://click.palletsprojects.com/en/7.x/)

<comment><USER18> I feel like argh and plac preceded/inspired Click.

Also, it's not Python but in Nim there is [https://github.com/c-blake/cligen](https://github.com/c-blake/cligen) which also does spellcheck/typo suggestions, and allows --kebab-case --camelCase or --snake_case for long options, among other bells & whistles.

<comment><USER17> Spell check is something I'd love to see in Click. As complicated as git can be, I always liked the spell check it has for subcommands.

As for the different cases, I personally avoid using camel or snake case purely because I don't need to reach for the shift key. Maybe some people like it, but I find it jarring.

<comment><USER18> Agreed vis a vis SHIFT.

cligen also has a global config file [1] to control syntax options like whether '-c=val' requires an '=' (and if it should be '=' or ':', etc.) which has been discussed here, various colorization/help rendering controls, etc. Shell scripts can always export CLIGEN=/dev/null to force more strict and/or default modes.

[1] [https://github.com/c-blake/cligen/wiki/Example-Config- File](https://github.com/c-blake/cligen/wiki/Example-Config-File)

</comment></comment></comment></comment></comment><comment><USER19> > program -iinput.txt -ooutput.txt

What good is that? Who wants to save a space? Given -abcfoo.txt I can't tell whether it's abcf oo.txt or -abc foo.txt? So that's a definite drawback, and the benefit is?

<comment><USER20> Right, for all we know, that's 8 options and two duplicate. It's also harder to implement because now I have to keep symbol table (or I have to refer more frequently to it.) I can't see much of a utility argument here except terseness for its own sake. In that case, why don't we just pack our own bytes?

</comment></comment><comment><USER21> > Go's [...] intentionally deviates from the conventions.

 _Sigh_

Of course if does.

<comment><USER22> My impression is that nobody bothers with the Go flags package and most people use the POSIX compatible pflag [1] library for argument parsing, usually via the awsome cobra [2] cli framework.

Or they just use viper [3] for both command line and general configuration handling. No point reinventing the wheel or trying to remember some weird non- standard quirks.

[1] [https://github.com/spf13/pflag](https://github.com/spf13/pflag)

[2] [https://github.com/spf13/cobra](https://github.com/spf13/cobra)

[3] [https://github.com/spf13/viper](https://github.com/spf13/viper)

<comment><USER23> Nobody.. except Hashicorp :(

<comment><USER15> I always wondered who to blame for the single - long arguments in terraform.

</comment></comment></comment></comment><comment><USER24> > _When grouped, the option accepting an argument must be last ... program > -abcooutput.txt_

Good grief, no.

There may be some utilities out there which work this way, but it is not convention and should not be regarded as one.

Single letter options should almost always take an argument as a separate argument.

Some traditional utilities allow one or more arguments to be extracted as they are scanning through a "clump" of single letter options:

      -abc b-arg c-arg

Implementations of _tar_ are like this.

Newly written utilities should not allow an option to clump with others if it requires an argument. Only Boolean single-letter options should clump.

Under no circumstances should an option clump if its argument is part of the same argument string. For instance consider the GCC option -Dfoo=bar for defining a preprocessor macro, and the -E option doing preprocessing only. Even if -Dfoo=bar is last, we don't want it to clump with -E as -EDfoo=bar --- and it doesn't.

But, in the first place, even if it did, we don't want to be looking to C compilers for convention, unless we are specifically making a C compiler driver that needs to be compatible.

</comment><comment><USER25> Some other commenters have mentioned environment variables as input.

IMO there are broadly two types of command: plumbing and porcelain. There's a certain amount of convention and culture in distinguishing them and I'm not going to try to argue the culture boundary...

For the commands which are plumbing (by whatever culture's rules), the following apply:

* They are designed to interact with other plumbing: pipes, machine-comprehension, etc

* Exit code 0 for success, anything else for error. Don't try to be clever.

* You can determine precisely and unambiguously what the behaviour will be, from the invocation alone. Under no circumstances may anything modify this; no configuration, no environment.

For the commands which are porcelain (by the same culture's rules, for consistency), the following apply:

* Try to be convenient for the user, but don't sacrifice consistency.

* If plumbing returns a failure which isn't specifically handled properly, either something is buggy or the user asked for something Not Right; clean up and abort.

* Environment and configuration might modify things, but on the command line there must be the option to state 'use this, irrespective of what anything else says' without knowing any details of what the environment or configuration currently say.

To make things more exciting, some binaries might be considered porcelain or plumbing contextually, depending on parameters... (Yes, everyone sane would rather this weren't the case.)

</comment><comment><USER26> Do I add more to this code just for convention? The command line option parsing (or broken ParseOptions dependency) will become magnitudes larger and more complex than what the program does.

      usage = 0
      argc = len(sys.argv)
      if argc == 2 and sys.argv[1] == "-r":
       hex2bin()
      else:
       if argc == 2 and sys.argv[1].startswith('-w', 0, 2):
        s = sys.argv[1][2::]
       elif argc == 3 and sys.argv[1] == '-w':
        s = sys.argv[2]
       elif argc >= 2:
        usage = 1
       if usage == 0:
        try:
         width = int(s)
        except ValueError:
         print("Error: invalid, -w {}".format(s))
         usage = 1
        except NameError:
         width = 40
       if usage == 0:
        bin2hex(width)
       else:
        print("usage: mondump [-r | -w width]")
        print("       Convert binary to hex or do the reverse.")
        print("            -r reverse operation: convert hex to binary.")
        print("            -w maximum width: fit lines within width (default is 40.)")
      sys.exit(usage)

<comment><USER11> No, you take code away by using argparse! Handles all this GNU longopt and argument parsing stuff for you, and autogenerates the --help display. Probably something like this:

        import argparse

        def auto_int(x): return int(x,0) # http://stackoverflow.com/questions/25513043/

        def main(argv):
            parser=argparse.ArgumentParser()
            parser.add_option('-r',dest='reverse',action='store_true',help='reverse operation: convert hex to binary')
            parser.add_option('-w',default=40,dest='width',nargs='?',type=auto_int,help='maximum width: fit lines within width (default is %(default)s.)")
            options=parser.parse_args(sys.argv[1:])
            if options.reverse: bin2hex(options.width)
            else: hex2bin()

        if __name__=='__main__': main(sys.argv[1:])

</comment></comment><comment><USER27> I recently ran into a case I hadn't seen before with python's argparse. Multiple arguments in a single option, e.g. "—foo bar daz" with —foo set to '*' swallows both bar and daz, where I would have expected to have to explicitly specify "—foo bar —foo daz" to get that behaviour. I guess this is a side effect of treating non-option arguments the same as dash-prefixed arguments, but I have no idea what the "standard" to expect with this is?

Otherwise, my main bugbear is software using underscore instead of dash for long-names, and especially applications or suites that mix these cases.

I really like the simplicity that docopt somewhat forces you into, which avoids most of these tricky edge cases, but am seeing less and less usage nowadays of it.

<comment><USER28> Hmm, if you configure an option to take all args following, why would one be surprised by that?

</comment></comment><comment><USER29> I use clap/structop in Rust for all my CLIs ever since those libraries came out and it's just stupid easy to make a nicely functioning CLI. You define a data structure which holds the arguments a user will pass to your program and you can annotate fields to give them short and long names. You can also define custom parsing logic via plain functions if the user is passing something exotic.

At the end you can parse arguments into your data structure in one line. At that point the input has been validated and you now have a type safe representation of it. Well-formatted help text comes for free.

</comment><comment> ur-whale I very much like the subcommand paradigm git implements:

        mycmd <global args> subcommand <subcommand specific args>

However, I haven't found a C++ library that implements this properly with an easy-to-use API (and what I mean by easy to use is: specifying the structure of cmd line options should be easy and natural, _and_ retrieving options specified by the user should be easy, _and_ the "synopsis" part of the man page should be auto-generated).

If anyone knows of one, would love to hear about it.

<comment><USER30> Have you tried [https://github.com/CLIUtils/CLI11](https://github.com/CLIUtils/CLI11) ? The subcommand example can be found at [https://github.com/CLIUtils/CLI11/blob/master/examples/subco...](https://github.com/CLIUtils/CLI11/blob/master/examples/subcommands.cpp) . It can't generate man pages though

</comment></comment><comment><USER31> Hello there!

Yep, it's some kind of an advertisement, but for an open source project.

I made some experience with parsing command line options when working on an open source traffic simulation named SUMO ([http://sumo.dlr.de](http://sumo.dlr.de)) and decided to re-code the options library. It works similar to Python's argparse library - the options are defined first, then you may retrieve the values type-aware.

You may find more information on my blog pages: [http://krajzewicz.de/blog/command-line- options.php](http://krajzewicz.de/blog/command-line-options.php)

The library itself is hosted on github: \- cpp-version: [https://github.com/dkrajzew/optionslib_cpp](https://github.com/dkrajzew/optionslib_cpp) \- java-version: [https://github.com/dkrajzew/optionslib_java](https://github.com/dkrajzew/optionslib_java)

Sincerely, Daniel

</comment><comment> ur-whale I wish he mentioned what C++ option parser sticks to the rules he outlined.

</comment><comment><USER28> Argparse doesn't need sys.argv by default. The main gripe about it was also a bit odd.

Why would one want an option with an _optional_ argument? And then complain about ambiguity? argparse is flexible on purpose but it doesn't mean one needs to use every feature. optparse is still around for those who desire more discipline.

click is nice though I don't care for multiple decorator driven libs in one project.

</comment><comment><USER32> Nice to see these guidelines all laid out.

I grew up with the DOS / Windows convention of slashes, and clicked the link hoping there'd be mention of it.

</comment><comment><USER33> For python click library is fantastic and follows all the good pratice explained in the blog post.

</comment><comment><USER34> program -c # omitted program -cblue # provided program -c blue # omitted

This is confusing

<comment><USER35> Your comment is confusing due to missing line breaks :-) Try indenting the lines with two spaces.

And I agree, I would prefer:

      program -c=blue

<comment><USER34> Too late for that. Was on mobile app.

program -c # omitted program -cblue # provided program -c blue # omitted

This doesn't make sense. How -c blue is omitted while it looks just like an argument for -c

<comment><USER35> If the argument to "-c" is optional, the parser doesn't know if "blue" is a an optional argument to "-c" or separate argument to "program".

I think the takeaway is to avoid options with optional arguments. If the argument to -c was required, "-c blue" would be fine.</comment></comment></comment></comment>


Virgin Galactic Is Rattled, but Undeterred, by Deadly Space Plane Crash - <AUTHOR> http://www.nytimes.com/2014/11/02/science/space/virgin-galactic-is-rattled-by-crash-but-undeterred.html?ref=science&_r=0 <comment><USER3> That's a much friendlier puff piece that some others:

"It also emerged that three senior Virgin Galactic executives - the vice- president in charge of propulsion, the vice-president in charge of safety, and the chief aerodynamics engineer - had all quit the company in recent months."

"The Sunday Telegraph disclosed that Sir Richard's company, as well as US authorities, were warned about safety issues on numerous occasions, as long ago as 2007 when three engineers died in an explosion during testing of a rocket engine on the ground."

"Tomasso Sgobba, executive director of IAASS and the former head of safety at the European Space Agency, said that Virgin Galactic had refused to share information with industry experts outside the company and declined to have its rocket design peer-reviewed. Representatives of Virgin Galactic had refused to come to IAASS meetings, he said."

There's heaps more.

[http://www.smh.com.au/technology/sci-tech/richard- bransons-v...](http://www.smh.com.au/technology/sci-tech/richard-bransons- virgin-galactic-accused-of-ignoring-warnings-that-spaceship-was-unsafe-to- fly-20141102-11fmg2.html)

<comment><USER4> Think we have to differentiate between using these as signals of bad practice or process and using them as scapegoats or excuses in hindsight. Once something goes wrong, it's really easy to create a case for guilt by using many small, unrelated, eventually inconsequential pieces of evidence - <USER2> greater than the sum of the parts and I feel this can be really unfair.

<comment><USER5> It really rubs me the wrong way that you seemingly refer to the previous test related death of 3 people as a "small" incident. I'm sure that's not what you intended to write. Maybe what you say is that it's unrelated, therefore "has a small relevance" now. Even then I would argue that evidence of blatant disregard of safety protocols in the past is a relevant piece of the puzzle.

But declaring it a small incident? I would not.

<comment><USER4> Apologies: don't mean to imply that deaths are a "small incident" or that they can be forgiven. My point is not about whether they are or aren't guilty of malpractice or poor protocols, but that a thorough investigation should be used to determine that, not stringing together a series of events that make it easy for any passive reader to discredit the organisation.

tl, dr: we shouldn't pass judgement based on this article.

</comment></comment></comment></comment><comment><USER6> Here's a much more hard hitting article: [http://www.telegraph.co.uk/news/worldnews/northamerica/usa/1...](http://www.telegraph.co.uk/news/worldnews/northamerica/usa/11203634/Branson- spaceship-explosion-The-missed-warnings.html)

It's tempting as a space enthusiast to see criticism of Virgin Galactic and Scaled's operations as attacks against spaceflight or commercial space activities or the space tourism business in general. But people should not let their enthusiasm carry them to far into ignoring the very real problems at VG and Scaled.

They have unquestionably taken a lax attitude toward security, as demonstrated most abundantly by the previous fatal accident at Scaled/VG which took 3 lives during a test that should have not injured a single person if they had been following standard safety practices. Moreover, they've consistently turned a deaf ear on criticisms of their engine design and its safety, criticisms which now appear to have been quite well founded.

Yes sometimes rockets are tricky. Sometimes bad things happen to otherwise good designs. That's the nature of probability. But bad things happen to bad designs too, and we should be sensitive to those circumstances.

<comment><USER7> Beyond issues with the engine I wonder if people underestimate the risk of the actual concept. It seems very complicated. Flying at high speed in the atmosphere is a serious undertaking even without a rocket motor. However advanced aeronautics may be the atmosphere is still a very hostile environment.

<comment><USER6> If they had a rocketplane that had a reasonable rocket motor in it that would enable them to do quick turnarounds by simply refueling, doing a little bit of inspection, and reflying, then it might be possible to validate the idea through an extensive test flight program, just as we've done with airplanes. Put in a hundred or so test flights exploring the flight envelope and it would be possible to gain some confidence in the system.

With the design that Virgin Galactic / Scaled have now I don't see that as a reasonable possibility, and I don't think it is a safe system (largely due to the rocket, the airframe might be a perfectly fine design).

</comment></comment></comment><comment><USER8> Branson and the Vigin team are absolutely brilliant at PR. All day the top headlines on Google News have been about his "determination" to "find the cause of the crash" and "move forward" with little reflection on how big a screw up this was.

This (along with good HR) has been the secret to Virgin's success in what are basicly commodity businesses (retail, music, telecom, airlines). The free advertising and friendly governments (also PR targets) are a big advantage against competitors. Very little innovation required. However it is of limited value in a business requiring overcoming multiple technical challenges.

The cheap spaceports and celebrity endorsements are still quite valuable. They just need a partner that could actually make it fly but apparently these are in short supply. Perhaps only SpaceX?

<comment><USER9> Not quite all, the tone has shifted "Space dream in doubt after crash" [http://www.theguardian.com/science/2014/nov/01/sir- richard-b...](http://www.theguardian.com/science/2014/nov/01/sir-richard- branson-space-tourism-project-doubt)

<comment> k-mcgrady Yeh, they really twisted what he said. Here is a direct quote from Branson in the same article:

"And once we find out what went wrong, if we can overcome it, we will make absolutely certain that the dream lives on."

In other words unless there is a flaw in the design that makes it financially unviable to continue they will solve the problem and push on.

<comment><USER10> "... if we can overcome it" sounds like doubt to me. Maybe less doubt than what the article implied, but I don't think it's that different.

</comment></comment></comment></comment><comment><USER11> This article (which was posted to HN yesterday but failed to gain traction) discusses the history of the SpaceShipTwo engine in significant detail. It's a worthy follow-up read.

[http://www.parabolicarc.com/2014/10/30/apollo-ansari- hobblin...](http://www.parabolicarc.com/2014/10/30/apollo-ansari-hobbling- effects-giant-leaps/)

<comment><USER12> Doug Messier (Parabolic Arc) is known for his bias against Virgin Galactic.

I thought his comments about Kevin Mickey (President of Scaled Composites) not wanting to stick around for questions yesterday were way out of line.

</comment></comment><comment><USER13> I was curious what the ultimate goal of Virgin Galactic, and the other sub- orbital space companies are. Since they are sub-orbital, they can't really take anyone to what I would consider "space" \-- you have this big rubber band (gravity) attached to you that immediately starts pulling you back home. So is the idea just so passengers could say they've "been to space" (really, just reached a height high enough to be in a super thin atmosphere)? Or is the idea that by going high enough that you get a few minutes of free fall, to give passengers a glimpse of what being in space is like?

Now I realize that the early Mercury program was sub-orbital too, but that was gaining knowledge and practice prior to developing Mach 25 (orbital) technology. Is that also the goal of Virgin Galactic, to use the current design as a stepping stone?

<comment><USER10> There is no connection between being _in space_ and being _in orbit_. You can be really far out in space without being in orbit (or rather, you are in an orbit that intersects the Earth's surface.) You are no less "in space" than the ISS crew just because you are only there for a few minutes.

<comment><USER13> I agree with that, but my point was that it doesn't seem very valuable to go "to space" when you can't stay -- kind of like how flying across the country, and flying over Nevada is different than "going to Vegas". So to me, the fact that they reach space really isn't the selling point, it is the fact that it is a thrill ride which lasts for however many minutes (more in line with a super roller coaster ride, or a step up from one of those parabolic curve plane flights).

</comment></comment></comment><comment><USER14> Serious question: why do people care about this?

<comment><USER5> I don't know why people care, but I can tell you why I care. I believe that becoming a multi-planetary specie is a worthy goal. I don't see if making rich people fly high for bragging points is a good step towards that goal. Maybe it is, maybe it's not. But it is similar enough goal that laypeople might confound them.

So what I see is that they have a less ambitious goal. Even if they are 100% successful it won't give us a fundamentally new capability. The project is seemingly mismanaged, and they have a terrible safety record. Further more events like this might alter the perception of 'space tourism', affecting the business prospects of other respectable organizations.</comment></comment>


Gmail Users Have No Reason To Expect Privacy - <AUTHOR> http://www.technostall.com/gmail-users-privacy/

<comment><USER2> I got rid of TV completely while at college for my BS, and I was a lot more productive and happy without it. I have a small TV now (19" LCD), but only watch Netflix or downloads on it. After going without broadcast or cable TV, I just can't stand commercials at all.</comment>


Our app is like Tinder for networking and we're looking for Beta testers - <AUTHOR> http://www.summitsync.com/beta.html <comment><AUTHOR> @jamartin1111, you did a great job doing us justice, thank you! And glad to hear you're liking our app. (Yes, Tinder for is not idea, but in the interest of tl;dr, the swiping functionality is a given when anyone thinks "Tinder")

Our mission is as follows: SummitSync is designed to connect people who want to meet each other by curating leads and making introductions. By providing our users with only the information they need, we save them valuable bandwidth so they can get to collaborating.

</comment><comment><USER2> Could you explain your app in one sentence without 'like Tinder for'?

</comment><comment><USER3> I'll try and help explain it as a new user. The app will sync your LinkedIn information to build a profile. From there you can look at events, communities, conferences, etc... that are happening in your area or an area you may be in. If you decide to join it, you will be able to swipe left/right on other attendees and if you match chat with them. I can see this to be very useful to find prospects or likeminded people to reach out to before getting to an event and using time there to meet folks. (Hopefully I did the app some justice with my explanation)

</comment><comment><AUTHOR> I mean, we're already pretty good, but we really want some feedback so we can be the best. Plus, you can help us out, and while you're collecting karma points for that, maybe you'll spend them right away on a life-changing connection.</comment>


Ask HN: Anyone from DigitalOcean hang out here on HN? - <AUTHOR> I have some questions for you...... I don't seem to be able to get the attention of any technical people at Digital Ocean via any other channel.... <comment><USER2> I'm sure I'm around here somewhere ;)

You can open a support ticket any time and we'll do our best to answer any questions you have. You can also email me at my name here @digitalocean.com.</comment>


How I Got My First 100 Users - <AUTHOR> https://medium.com/@r_kierzkowski/how-i-got-my-first-100-users-bd38abd8b5cf <comment><AUTHOR> Does posting on Medium make a big difference?

I wrote a blog about my struggles to learn Chinese, and it's self-hosted.

[https://pingtype.github.io/docs/blog.html](https://pingtype.github.io/docs/blog.html)

Also, where else should I tell people about the blog? As Roman says, posting around Facebook groups and buying ads didn't help him. I put so much effort into building a program, but now I don't know how to do the marketing, it feels futile. I'll give my code away for free, I just wish I knew how to tell people that it exists so it's not useless!

<comment><USER2> Some blogging platforms are less generic than Medium and if you write for their audience it can make a difference.

Some even do a bit of marketing for you.

I write posts about software development so I started blogging on dev.to

I think if I just blogged on my own server and threw it out on Twitter every now and then I wouldn't get too much people reading it.</comment></comment>


Why isn't everyone using DNSSEC? - <AUTHOR> https://blog.apnic.net/2017/06/28/isnt-everyone-using-dnssec/ <comment><USER2> [https://sockpuppet.org/blog/2015/01/15/against- dnssec/](https://sockpuppet.org/blog/2015/01/15/against-dnssec/)

The real answer is simple: _it provides very little value_. TLS was designed to assume that the DNS was insecure, and if you care about security, you need at least TLS.

</comment><comment><USER3> A fairly good HN technical discussion of DNSSEC with several comments by tptacek.</comment>


Show HN: Start a new habit with daily accountability - <AUTHOR> https://dailyhabitmail.com/ <comment><USER2> This is something really interesting. There are many apps, which tracks its users run streak, based on a certain activity. Like headspace for number of days meditated. This is cool, as you can start any habit with it.

I would suggest for a feature where users with similar goals can track each others' run streak. Also a mobile app for this will be great.

</comment><comment><USER3> Why would I use your product and not habit tracker on my phone with daily reminder?</comment>


Apple to abandon their XServe line  - <AUTHOR> http://www.apple.com/xserve/resources.html?aosid=p204&siteid=403761&program_id=2701&cid=OAS-EMEA-AFF&tduid=8ec33a93d3bb4f1e4f99cbcd7b271cac

<comment><USER3> I always thought it was awesome that they carried the attention to design over to their server line, but this move honestly makes a lot of sense. Enterprise server solutions isn't really their game.

<comment><USER4> Other than administering client macs, there really wasn't any benefit to running a cluster of mac servers. Apple's game has always been getting the difficulty threshold low enough that mom and pop can do whizzy things. In terms of servers, anybody running that type of hardware will probably have the expertise to do it from scratch, cobble together a solution, or outsource it to a contractor.

While there could be something in enterprise iPhone management, I think they play well enough with exchange's provisioning.

<comment><USER5> > Other than administering client macs, there really wasn't any benefit to > running a cluster of mac servers.

Bingo. Apple's server offering have always been (and will continue to be) expected to support a whole network of apple hardware. In that situation, xserves don't really make sense anymore, they're fairly crappy general-purpose servers and you don't need an xserve to support an OSX-based network and OSX's group utilities. The Mini Server is much smaller for minor networks, and the base Mac Pro Server offering is the same price as the entry-price Xserve, not really rackable but with far superior hardware: 2.26 quad, 3GB RAM and 160GB HDD for the Xserve, 2.8 quad, 8GB RAM and 2x1TB HDD for the Mac Pro.

Plus the Mac Pro

* comes with a GPU if you want a render farm

* scales to more memory (up to 32GB versus 24 for the Xserve, and bumping the Mac Pro to 24GB is $450 cheaper than the Xserve)

* scales to much bigger CPUs (you can get a better CPU on the Xserve by switching to the $3600 model, which starts with 2x2.26GHz quads and can get up to 2x2.93 quads, but the mac pro can still be upgraded to 2x2.93 hexas)

</comment></comment></comment><comment><USER6> Which of the remaining Apple machines take ECC memory? You really should not be running a serious server without ECC, which allows the hardware to detect and often correct transient errors caused by e.g. background radiation.

<comment><USER7> The Mac Pro uses ECC RAM (<http://www.apple.com/macpro/specs.html>), the Mac Mini doesn't and can't since it has a Core 2 chip and Intel only supports ECC w/ its Xeon chips.

</comment></comment><comment><USER8> I wonder what kind of machines they are using in their giant new data center.

<comment><USER9> Not sure how accurate this picture is, but I see xserve's and sun servers there: [http://www.cultofmac.com/interview-apples-gigantic-new- data-...](http://www.cultofmac.com/interview-apples-gigantic-new-data-center- hints-at-cloud-computing/14680)

<comment><USER8> That's of SystemX a Virginia Tech cluster dating back to 2003, not of Apple's data center: <http://www.arc.vt.edu/arc/SystemX/>

</comment></comment></comment><comment><USER10> Where does this leave Mac OS X Server now? Is it dead? Will they continue to develop it and for what purpose?

The only product that is currently using it is the Mac Mini Server as far as I know.

<comment><USER11> And the just-announced Mac Pro Server: [http://store.apple.com/us/browse/home/shop_mac/family/mac_pr...](http://store.apple.com/us/browse/home/shop_mac/family/mac_pro)

<comment><USER12> OS X Server is just OS X with some additional services and admin tools, and probably less effort to maintain than a whole different hardware form. Given that the Mac Pro Server was only just announced, it looks like that's the tactical fix to fill the gap in the lineup left by the X-Serve.

After the X-Raid line's name was already passed onto a third party (Promise) this isn't really surprising.

</comment></comment></comment><comment><USER13> It's always been challenging for me to administer a server running any Mac Server products. They've made so many tweaks to do things slightly different that everywhere else, it became quite difficult to troubleshoot.

<comment><USER14> I concur!

Ran a couple of Xserves a while ago to run web application stacks on it and most of the time I diverged from using the GUI to administer things I shot myself in the foot (Apache, firewalls, initscripts, networking etc.).

The nice hardware - those CPU load meters were gorgeous - <USER2> doesn't make up for those problems so I switched back to non Apple hardware + Linux and never looked back.

Don't fight the system is a nice mantra to follow when using Mac OS X Server and that's not hard when you use it to administer a collection of other Macs & the network they're on or when using the built-in services without wanting to tweak/upgrade the versions yourself (iCal server, Mail server etc.).

<comment><USER15> > most of the time I diverged from using the GUI to administer things I shot > myself in the foot

This is something you hopefully learned early or were told by an more experienced Mac admin— configuring, let alone automating, Xserves from a CLI is an exercise in futility as so many components system have been rewritten to do things "the Apple Way."

<comment><USER14> Learned that soon enough, only 2 Xserves were used and the rest of the rack quickly went back to Linux ;-) Although those puppies are still up-and-running of course (my Xserve adventure was in 2003)

</comment></comment></comment></comment><comment><USER16> Reading between the lines, does this mean XSan is dying? It's software, but like the XServe, it's a high level enterprise offering. Samba does a fine job for low-end stuff, but XSan is still needed for high-end, high-bandwidth applications.

<comment><USER17> xsan has always just been a rebranded san offering from quantum. It could go away, but then you just buy quantums' thingy.

<comment><USER16> Xsan uses Quantum's Stornext, but last I checked (admittedly a while ago), XSan _is_ the OS X client, so without Xsan, there is no OS X Stornext Client. (I'd love to be proven wrong on this though.)

</comment></comment></comment><comment><USER18> Abandon is too strong a word for the link given. Yes they are discontinuing it for new sales but they will still support existing customers.

<comment><USER19> It also looks like they plan to continue developing OS X Server. Plus, they still have a hardware server offering in the Mac Mini Server.

<comment><USER5> > Plus, they still have a hardware server offering in the Mac Mini Server.

And the Mac Pro Server.

</comment></comment></comment><comment><USER20> Lion Server? Has there even been talk of it? Dead now?

I'd imagine the only use case for server that couldn't be done easily in a better way was spotlight server, and it's only a matter of doing it more cheaply than available CMS solutions.

<comment><USER21> The only public talk about Lion has been entirely consumer focused. They haven't delved into anything technical or server-oriented.

I'd assume they're doing stuff in those areas, they just haven't done any PR.

</comment></comment><comment><USER22> My question is, what will Apple use internally for their server needs? I assume at least a part of their servers are running Mac OS X Server.

<comment><USER23> Apple mostly uses Sun Servers.</comment></comment>


ACM Code of Ethics - <AUTHOR> http://www.acm.org/about/code-of-ethics

<comment><USER2> I've rarely seen a code of ethics adequately specified such that it accomplishes its aims and can be followed. This is no exception. It seems well-intentioned. It seems that it would like me to be nice, be considerate, be honest, work hard and attempt to do good. I could agree with a statement like that previous sentence.

In an attempt to explain what it means, it comes up with things like:

Ensure that users and those who will be affected by a system have their needs clearly articulated during the assessment and design of requirements; later the system must be validated to meet requirements.

I don't write requirements of that sort, nor do validation testing in the sense implied. If I want to be in the ACM, this leaves me with the choice of either concluding, "Ah, I know what they mean and I'm there in spirit" or not participating. That sorta sucks. If I agree to a set of principles, I want to diligently follow it. I prefer a high-level "Don't be a jerk" approach to such things and sound human judgment entrusted to make calls if needed about propriety or identifying jerks.

</comment><comment><USER3> I'm a technology ethicist, and (generally) we despise these sorts of codes of ethics. Not only do they not actually tell you what to do when something happens, but they are regularly turned into "checklists" which allow people to say "Yes, okay, dealt with ethics, done" without actually encouraging them to think about the real impact their technology might have.

We tend to advocate a more participatory, ongoing ethical evaluation that is context-sensitive and allows tech developers and designers to be able to actually solve ethical problems rather than just ignore them or ad hoc deal with them when they really become problematic. Of course, though, this is more expensive than just reading a website (or ignoring it), so it doesn't tend to get incorporated into much tech outside of specific university research projects.

</comment><comment><USER4> How does the ACM square asking all paper authors to assign copyright to the ACM with rule 1.6:

"1.6 Give proper credit for intellectual property.

Computing professionals are obligated to protect the integrity of intellectual property. _Specifically, one must not take credit for other's ideas or work_ " (emphasis mine)

ACM demanding copyright in exchange for publication is not ethical by their own standards. They could switch from copyright assignment to a time-limited, commercial-only license. This would also help them meet 1.1 "Contribute to society and human well-being", since it would help to reduce bitrot.

</comment><comment><USER5> As an FYI, ACM's Queue magazine is much better than it used to be, and people are talking about it:

[http://everythingsysadmin.com/2010/11/acm-queue-magazine- add...](http://everythingsysadmin.com/2010/11/acm-queue-magazine-adds- system.html)

I've been an ACM member for a while, and they've come a long way. With recent political noise from the IEEE (in the wrong direction IMHO) I'm tempted to drop that membership...

</comment><comment><USER6> I can only imagine the machinations and flame wars leading to that document.

</comment><comment><USER7> ACM still has great contributors. but it's really some kind of dinosaur today.

Anyone here still get's most of the ground break stuff in CS via ACM instead of researchers blogs or something similar? honestly?</comment>


Favourite Definition of Requirments and Specifications - <AUTHOR> A lot of clients ask how they should write a specification for a piece of software, what it should include and how it needs to be written.  Usually they're actually talking about an informal requirement (a software developer needs to know what the client wishes the software to do).
This leads to sharing my favourite definitions of requirements and specifications; they are from Practical Cryptography by Niels Ferguson and Bruce Schneier.
Chapter 9, Pages 131-132.
"Requirements
Requirements are an informal description of what the program is supposed to achieve.  It is really a "what can I do with it" document, rather than a "how exactly do I do something with it" document.  Requirements are often a bit vague and leave details out in order to concentrate on the larger picture.
Functional specification
The functional specifications give a detailed and exhaustive definition of the behavior of the program.  The functional specification can only specify things that you can measure on the outside of the program.
For each item in the functional specifications, ask yourself whether you could create a test on the finished program that would determine whether tat item was adhered to or not.  The test can only use the external behavior of the program, not anything from the inside.  If you can't create a test for an item, it does not belong in the functional specification.
The functional specification should be complete.  That is, every piece of functionality should be specified.  Anything not in the functional specification does not have to be implemented.
Another way to think of the functional specification is as the basis for testing the finished program.  Any item can, and should, be tested.
Implementation Design
This document has many names, but it specifies how the program works internally.  It contains all of the things that cannot be tested from the outside.  A good implementation design will often split the program into several modules, and describe their functionality.  In turn, these modules descriptions can be seen as the requirements for the module, and the whole cycle starts all over again for the module." <comment><USER2> This is awesome. Totally agree with all of this.</comment>


Come for the tool, stay for the network - <AUTHOR> http://cdixon.org/2015/01/31/come-for-the-tool-stay-for-the-network/ <comment><USER2> _Some networks never had single-player tools, including gigantic successes like Facebook and Twitter._

I think he's spot on with the overall piece, but I think Twitter is a fine example of the principle too. Twitter _was_ a single-player tool for me at the start. I signed up after hearing about it around SXSW 2006 but there was no- one I knew on there so I just used it as a personal "microjournal" of sorts for several months as it was lighter than the Movable Type setup I was then using (which was amazingly slow at the time). It then _became_ a network for me as people followed me via my email address.

<comment><USER3> I was just about to chime in here regarding Twitter too. I recall it blew up in 2007 not 2006. Also, the winning factor of Twitter back then was indirect group texting. Once you signed up for Twitter with your phone, you could send a text to a specific number and it got blasted out to everyone following you. Instead of sending 10 texts to 10 friends, you just sent one. Anyone who bothered to respond, could just directly text your cell or tweet it themselves to carry on the group conversation. It was great for "Hey, I'm hungry... who wants Thai?"

<comment><USER2> I think my memory has created an inaccurate narrative for me. My account shows I signed up in December 2006 so I guess it wasn't SXSW that got me on after all :)

</comment></comment></comment><comment><USER4> Interesting to think about with respect to Fred Wilson's Dentist Office Software Story: [http://avc.com/2014/07/the-dentist-office-software- story/](http://avc.com/2014/07/the-dentist-office-software-story/)

</comment><comment><USER5> Always liked the single player vs multiplayer framework of breaking out products.

John Gruber's podcast, touches upon this in the recent episode with Ben Thompson as a guest [https://daringfireball.net/thetalkshow/2015/01/24/ep-108](https://daringfireball.net/thetalkshow/2015/01/24/ep-108)

</comment><comment><USER6> This sounds like a potential great way to tackle chicken egg problem in marketplaces. Single player / multiplayer is something I hadn't heard before but makes it very clear. It might not be feasible (eg what's single player on car sharing app?) but it's a good thing to think about.

</comment><comment><USER7> It's not merely kindling, if you have a good single player story, it indicates versatility. This sounds like a good thing to have.

</comment><comment><USER8> Another good example is how Disqus has layered their tool (better comments section) to a discovery platform.

</comment><comment><USER9> Framework could be applied to first-person shooters.</comment>


Ask HN: Are marketplaces dead as a fundable business model? - <AUTHOR> <comment><USER2> Treat crypto currency and image recognition as tools that can be integrated into the marketplace later. You can build your marketplace now. You can choose a payment processor that already accepts a crypto currency, if that eases your mind. And image recognition is available for free already. Maybe not drag'n'drop easy to integrate yet, but we will get there.

</comment><comment><AUTHOR> With etherium(crypto), large incumbent networks, AI(visual search) coming, does it make sense to start a niche marketplace which could expand into a big market? (web then phone interface)

</comment><comment><USER3> no</comment>


Chute app vibrates your phone to break falls - <AUTHOR> http://www.chuteapp.com

<comment><USER2> Sounds good. Does it work? Let's see some demo videos. I'm not convinced by an image flip/flop.</comment>


Love || Hate fat's JSConf talk. - <AUTHOR> http://blip.tv/jsconf/jsconf-us-2012-jacob-thornton-br%C3%BBlons-les-mus%C3%A9es-6093851

<comment><USER2> please do not change the title of posts

<comment><AUTHOR> Apologies. I'm new here and was just trying to contribute. I didn't mean to do anything wrong. I hear your point and will do better next time.

<comment><USER2> Not a problem at all, thank you very much for contributing. Heres a great intro - <http://ycombinator.com/newsguidelines.html></comment></comment></comment>


Show HN: PicoTorrent, a tiny BitTorrent client for Windows - <AUTHOR> http://www.picotorrent.org <comment><USER2> This looks pretty neat. I've been using qBittorrent on Windows, but it doesn't really support bulk operations, so I've been writing Python scripts[0] to accomplish what I need. Please, cater to the users that need to idle with tons of torrents open all the time and make it easy to import/export the current state of the torrents loaded into client.

Also, shameless plug -- I work on an open source BitTorrent tracker[1] that was adopted by Facebook for deploying their server software and have been playing around with a framework for writing tracker logic via middleware[2]. If you want to talk about any of the client <> tracker interactions, I'm totally down for discussion.

[0]: [https://github.com/jzelinskie/move_torrents.py](https://github.com/jzelinskie/move_torrents.py)

[1]: [https://github.com/chihaya/chihaya](https://github.com/chihaya/chihaya)

[2]: [https://github.com/jzelinskie/otoshi](https://github.com/jzelinskie/otoshi)

<comment><AUTHOR> Great suggestions! Actually, one of the inspirations for PicoTorrent came from this blog entry, [http://blog.libtorrent.org/2012/01/seeding-a-million- torrent...](http://blog.libtorrent.org/2012/01/seeding-a-million-torrents/).

I haven't had a chance to test it with a million torrents yet, but my development environment has a few thousand at least, so easy bulk operations are a requirement :)

</comment></comment><comment><USER3> I don't see the github repository for Picotorrent linked on the blog, so I'm linking it here, in case anyone else is interested: [https://github.com/picotorrent/picotorrent](https://github.com/picotorrent/picotorrent)

<comment><USER4> Thank you. I did not see any mention of the fact this is open source anywhere on their website.

</comment></comment><comment><USER5> How does this compare, featurewise/speedwise, to popular (yet simple and powerful) clients like Deluge?

I ask because I'm not seeing an FAQ, list of features or User Manual documentation on the linked page.

<comment><AUTHOR> Both are built on Rasterbar-libtorrent and should provide equal performance if configured the same, which I would definitely see as a goal.

Feature wise, PicoTorrent is lacking. Most popular features will be implemented, along with a plugin API. Right now, nothing more than the basics is implemented.

I'll try to put this, along with other information, in a FAQ asap.

<comment><USER6> >Both are built on Rasterbar-libtorrent and should provide equal performance if configured the same

Eh...Deluge has made a number of changes to libtorrent that aren't replicable solely by config tweaks. Such as lying about what pieces that client currently has, lying about connections and others in order to get the tracker to assign more peers and increase per-peer connections. Deluge also abuses the ever- loving-crap out of memory, since it doesn't use the system memory manager and, at least last I looked, their home built caching system was horribly broken (that is, they goto-failed their own manager) which leads to horrible flush to disk scenarios that kill speeds.

<comment><AUTHOR> Interesting! I did not know this. If their tweaks work, I guess Deluge may have a performance advantage.

We follow the latest vanilla libtorrent sources (not bound by releases), and try to keep our C++ as close to the Windows API as possible. The only dependency we have is libtorrent (plus Boost and OpenSSL since libtorrent depends on those).

</comment></comment></comment></comment><comment><USER7> Very nice. μTorrent has long been riddled with ad's (with sound for gates sake!) and Deluge feels a little slow and bulky on my machine. This looks like a lighter alternative.

</comment><comment><USER8> Installer 5,55MB, installed size: 20,6MB. That's not pico, more like mili- or centi- as compared to uTorrent. For comparison, another open source bit- torrent client Halite ([https://github.com/Eoinocal/Halite](https://github.com/Eoinocal/Halite)) weighs at 2,34MB (installer) and 12MB installed.

Installer didn't even ask where I want to install it and did not display any success message, informing about successful installation. Needs more install options for power users. Also portable (zip) version would be a big plus.

More comments more, maybe, because PicoTorrent fails to work in Sandboxie.

<comment><AUTHOR> Hi, the reason PicoTorrent is 20MB installed is that we ship the PDB file in the installer. In the future, the PDB file will be optional. The actual executable is around 5,5MB. We ship the PDB file with the installer to help with issues now in the beginning - to print stack traces (with symbol names) if it crashes, etc.

The installer will receive a nice update with a user interface in the next version.

Thanks for the input! :)

Ninja Edit: I'll take a look at fixing whatever is making PicoTorrent not work in Sandboxie.

<comment><USER8> Thanks for explanation. I sure hope final release will be really "pico" :D I'll try to test it out some more over the weekend on a real OS, not sandbox.

</comment></comment></comment><comment><USER9> For those who use private trackers, it would take awhile for this to get whitelisted.

<comment><AUTHOR> This is true, however we still run PicoTorrent under the default libtorrent peer ID which is whitelisted on a few private trackers as well.

</comment></comment><comment><USER10> Looks promising, I'm using it. Keep up your good work!

</comment><comment><USER11> how does it compare to uTorrent 2.2?

<comment><USER12> Something like 10-11x bigger installer lol. It's really tiny. Don't have a Windows box so I can't say how similar .EXE's, RAM, and CPU usage are.

<comment><AUTHOR> The PicoTorrent executable is somewhere around 5-6MB. RAM and CPU usage should be low to tiny if I haven't made a mistake and leak memory all over the place :) The reason our executable is so much bigger is that we have a few indirect dependencies on Boost and OpenSSL (via libtorrent).

I'm open for suggestions on how to reduce size.

<comment><USER12> I was just picking at you as the uTorrent author and his work were among best at low-fat, GUI apps. Steve Gibson at GRC comes to mind, too. 5-6MB is better than many.

Anyway, I'm not sure what can be done with Boost: just too complicated. Maybe replacing what you use in it with lightweight alternative. However, you could see if you can replace OpenSSL with LibreSSL. OpenBSD team trimmed out hundreds of KB of fat and problematic code out of OpenSSL when building it. You get better security, too. :)

[http://www.libressl.org/](http://www.libressl.org/)

Note: Mac OS X already uses it. So, it must work decent by now.</comment></comment></comment></comment>


Show HN: Practicing Rails, a book about learning Rails without being overwhelmed - <AUTHOR> https://www.justinweiss.com/practicing-rails/

<comment><AUTHOR> I've been writing posts about Rails on [http://www.justinweiss.com](http://www.justinweiss.com) for a little over a year now, and I've heard from so many people that are excited about Rails, that have bought all kinds of videos and tutorials and courses and bootcamps, but just can't build their own projects.

So, I wrote a book to help. It's not so much a Rails tutorial as it is a guide to programming, project management, and motivation, using Rails as a medium.

I'm happy to answer any questions you have!

<comment><USER2> I appreciate books and guides like this, but I've always though the countdown was scammy - I always see the countdown starting anew when I use another browser after the original countdown expired.

So I have to ask: is the promotion TRULY time limited?

<comment><AUTHOR> Yep! I was actually planning to drop the discount today (since it was originally a pre-order discount), but figured I'd extend it by a day or two for the release.

I know where you're coming from, though -- I've seen a bunch of scammy countdowns too, and those "only 17 copies left (of this book I can make infinite copies of)!" on other sites :-)</comment></comment></comment>


Bagger.js - Pure JavaScript implementation of the BagIt specification - <AUTHOR> https://github.com/libraryofcongress/bagger-js <comment><USER2> As one of the maintainers, feel free to submit questions here or by emailing firstname.lastname@example.com.</comment>


The Yale Dad Who Set Off the College-Admissions Scandal - <AUTHOR> https://www.wsj.com/articles/the-yale-dad-who-set-off-the-college-admissions-scandal-11552588402 <comment><USER2> Is there a non-paywall version? I can't read this article.

<comment><USER3> I use outline.com to read articles like this.</comment></comment>


Treating people like adults - <AUTHOR> https://www.hackerschool.com/blog/28-treating-people-like-adults Treating people like adults <comment><USER2> Getting people to actually act like adults can be frustrating at times.

One thing I've noticed doing consulting work for a lot of public sector clients, is that they LOVE signs. Signs, signs everywhere.

These include but are not limited to telling people:

* How to use the elevator

* How to use a sink

* How to use a garbage bin

* How to use a toilet

* How to use a dishwasher

The funny thing is, you go to the clients WITHOUT signs, and its so obvious why they need them. People seem to think 'I'm at work now, I don't need to clean up my shit'.

</comment><comment><USER3> i really like this post. you guys come across as smart and really caring / understanding about what you're doing. imho, small things like this really do make a difference. i truly believe that introspective, intelligent exploration of the social choices we make is critical to any kind of group work. this is what i always felt was strongest about "agile" \- at least, the kind described by cockburn - but which seems to have slipped away and been replaced by lists of rules...

i hope you end up happier!

</comment><comment><USER4> Can anyone explain to me, what all this has to do with "adults"? How does removing checkins and making one big group for dinner have anything to do with adults?

I really don't get it...</comment>


App.net just passed $400k - <AUTHOR> http://join.app.net

<comment><USER2> Random question of a skeptic: There is no 3rd party authority ala kickstarter verifying how much money is actually raised, right?

<comment><USER3> Well, I guess we can check by seeing how many active users there are, but I see your point.

</comment></comment><comment><USER4> Didn't expect that! What's Dalton going to do if it doesn't pass? Are they still pushing the idea, or are they going to move on?

<comment><USER3> I bet they just extend the date.</comment></comment>


Jgit – multiple Git base project management tool - <AUTHOR> https://github.com/Jintin/jgit

<comment><AUTHOR> jgit is a command line tool written in ruby. You can easily execute git command everywhere after use it. You can execute command all at once like 'jgit st', will execute git status on every project. You can group project or specify project by -g or -p. Just 'gem install jgit' to install. Hope you'll like it. If any one have advice please feel free to let me know. Thank you all.</comment>


How to Build Your Startup Without Hiring a Single Person - <AUTHOR> https://medium.com/swlh/how-to-build-your-startup-without-hiring-a-single-person-f31ac6f74308 <comment><USER2> While I dislike the outrage culture that is so prevelent in social media...I have to say that image is pretty awful. You come across as poster boy for weird sexist tech guy. What point is that image supposed to make ?!

<comment><USER3> True - it pretty much hints at BJs or something sexual, and nothing at all to do with building your startup. Clickbait image then

<comment><AUTHOR> It was meant to represent creativity.</comment></comment></comment>


Cracking Turkey - <AUTHOR> http://www.kernelmag.com/features/report/2350/cracking-turkey/

<comment><USER2> " _Most people die here without ever failing, but nobody realises that they died without trying._ "

That's a heartbreakingly true line about the mentality. My Turkish parents were raised to believe that "making it" meant having careers in much more established and traditionally respected industries, even though both of my grandfathers were small business owners in Turkey and there's a rich bazaar- based ecosytem and entrepreneurial heritage.</comment>


The Air Force just built and tested a new jet aircraft in one year - <AUTHOR> https://apple.news/Aw-L1YToPTN-4Q8kvJlPhvQ <comment><AUTHOR> I wish the article discussed how this was done in light of the fact that aircraft development usually takes decades. I'm willing to bet it was done by a different group of people under new management?</comment>


What Else Acts Like Cheap Wine and Cigarettes? - <AUTHOR> http://freakonomics.blogs.nytimes.com/2009/02/16/what-else-acts-like-cheap-wine-and-cigarettes/

<comment><USER2> A flag?!</comment>


Show HN: ProjectPoll – anonymous surveys for dev teams and PMs - <AUTHOR> http://projectpoll.co <comment><AUTHOR> Hi all, founder here -- does this problem resonate with anyone else?

I feel like I've been on a lot of projects that kinda blew up (in a bad way) at the end, and the PMs seemed surprised. But it was kinda predictable, to all of the devs, in a vague way. And there wasn't a great way to raise these vague concerns _during_ the project. :/

I think honest 'feelings' feedback from dev teams up to PMs could help. Track responses, see if confidence is trending down -- if things look bad, at least PMs know there's a problem.

Let me know what you think!</comment>


Is coding a blogging engine still worth the effort in 2013? - <AUTHOR> http://t37.net/is-coding-a-blogging-engine-still-worth-the-effort-in-2013-and-other-thoughts-about-content-publishing-tools.html

<comment><USER2> I recently moved off Wordpress (on shared hosting) to Jekyll (on GitHub) and could not be happier with the new setup.

<comment><AUTHOR> I am playing with Octopress (which uses Jekyll) tonight and it looks amazing.

</comment></comment><comment><AUTHOR> I came across this while looking into options to convert my Blogger blog to.</comment>


So, Where Are All Those Robots? - <AUTHOR> https://www.theatlantic.com/business/archive/2017/05/so-where-are-all-those-robots/528666/?single_page=true <comment><USER2> Depending on our economic policies, there are a few different ways automation's impact on labor can express itself. The key thing that automation does is that it substitutes for labor thereby making labor less valuable.

If labor is less valuable, it doesn't have to mean fewer jobs. It doesn't even have to mean fewer hours worked. It can just mean less money going to labor (i.e. lower wages).

If our economy is operating below its productive capacity, which it is, then our levels of production are constrained by how much people can spend. And if consumers get their incomes from labor, then automation means consumers have less spending money.

If consumer incomes are constrained by wages, you'd therefore expect our level of production to decrease with increased levels of automation. And because economic policies are keeping the hours worked high, you'd expect the amount of production per man hour to decrease.

Hence...

 _" 1\. The U.S. economy is in a productivity recession."_

Furthermore, if firms need to keep production levels low in order to clear markets, you'd expect that they wouldn't have much of a need to figure out ways to boost production.

Hence...

 _" 2\. Companies don't seem to be investing in technology nearly as much as they used to."_

Technology and automation allow the use of resources to be more efficient. One of those resources is labor. That means that in cases where we're actually using labor for production -- instead of, you know, just as an excuse to give people incomes -- we can get that labor really cheap.

 _" 3\. Globalization is a much bigger deal than automation for work and wages."_

Globalization _is_ automation.

But because we're Americans and we believe in the American dream, we need to force the labor market to provide incomes for hard-working Americans. Naturally, since many jobs amount to little more than token busy-work, we should then expect the labor market to become exceedingly boring and uneventful. After all, these are just fake jobs propped up by economic policy.

Hence...

 _" 4\. The U.S. economy's creative-destruction engine is broken."_

 _" This isn't what the end of work was ever supposed to look like."_

Yes it is. This is exactly what it's supposed to look like.

<comment><USER3> > The key thing that automation does is that it substitutes for labor thereby > making labor less valuable.

I think you may have gotten this backwards.

If you replace four pipe bending guys with pipe bending robots and highly trained maintenance mechanic, do you really think the highly trained mechanic is going to get paid less than single pipe bending guy?

Automation should increase wages for those lucky enough to get employed.

>Globalization is automation.

Globalization predates automation by at least few centuries.

<comment><USER4> But if a pipe-bending machine has a total cost of ownership of $100 per operating hour, your four pipe bending guys have a job as long as employing them costs less than $25/h. Where before they might be able get a higher wage, their wage is now capped and the cap is decreasing over time.

Of course there's other reasons to employ people (parent mentioned spending power, I would add political influence to the list). But the labor part of the employment decreases in value.

<comment><USER3> If labor part decreases in absolute value, then the bikes too get cheaper in healthy competition. So the net effect is just inflation.

Historically the period from inventing the assembly line to the large scale deployment of factory floor robots is roughly from 1920 to 1990. The same time period saw the highest wages/GDP ratio in US than ever before or ever since.

</comment></comment></comment></comment><comment><USER5> > _For now, I think it's hard to make the case that automation is even a > tertiary concern for the 2017 labor market. But the next recession will tell > us much more._

No one is claiming it is a concern for 2017, no? My understanding is that the debate is more what happens in the next 10-15 years and not about the short- term situation.

<comment><USER6> Exactly. Wait 10 years for the self driving cars to take over which will set 30% of all male workers without a job.

<comment><USER7> I'm with you on that concern, but on the other hand, it wouldn't be the first time society has seen a rapid mechanisation of significant parts of the economy (e.g., agrarian workers, textiles workers).

Yet every time it happens, there's a reorganisation, and eventually the people (or the kinds of people) who did those jobs are employed doing new things.

Is there some reason why everything is suddenly different this time?

Here's a couple of ways that spring to my mind, for how society could absorb the labor that would be freed up if driver automation happened:

\- As increasing numbers of professional people around the world are becoming cash rich but time-poor, there is, and should continue to be, a growing demand for people to provide domestic services like cleaning, home maintenance, personal administration tasks, child-care, etc.

\- As the number of machines continue to grow, there will be growing demand for people to work on the machines. Whether it's designing, programming, manufacturing, testing, transporting, fitting, servicing, cleaning, replacing, or disposing of the machines, there will be plenty of work for people of all kinds of aptitude.

<comment><USER8> No and thats precisely what is worrying. Those massive switches in the past have come with all manner of social unrest, revolutions, war and changes to the basic fabric of daily life.

We are just now seeing the impact of the introduction of computers into the workforce and that is causing all manner of issues, but the response to that so far is _the best case scenario_ when compared to say the industrial revolutions 300 years of massive change.

<comment><USER9> >come with all manner of social unrest, revolutions, war and changes to the basic fabric of daily life.

No need to be a Pollyanna. Unemployment rallies didn't lead to war, they were just unpleasant.

[http://www.chicagotribune.com/business/081024-great- depressi...](http://www.chicagotribune.com/business/081024-great-depression- photogallery-photogallery.html)

Economies are constantly changing and retraining and job migration are our norm, not our exception. Regardless of the current political climate, the reality is that you're not entitled to keep a job in some dying industry. Change has always been here, as much as we try to deny it. Hence the admission that we can't keep this train running and things like UBI are becoming politically feasible.

<comment><USER10> The Great Depression also played a part in the rise of nazism and fascism, and the abject terror of communism on the part of the rest of the world. And the rise of socialism in many of them.

And the Great Depression wasn't an industrialization-related economic shift; it was more of a hiccup following the tectonic shifts in the nineteenth century part of the industrial revolution.

<comment><USER9> >And the Great Depression wasn't an industrialization-related economic shift;

Again, that's not my point. It was large amounts of unemployment up to 50% in urban areas. If the GP is correct it should have led to a civil war, but it didn't.

<comment><USER11> [https://en.wikipedia.org/wiki/Business_Plot](https://en.wikipedia.org/wiki/Business_Plot)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Coming.

I work in public digitization and we're still a lot of years from implementing things like self driving cars. We're running tests of course, but a lot of places the road markings, or lack there off, aren't good enough for the current tech. Heck, in Denmark we also have a lot of specialized road sings that the AIs can't read yet.

Similarly RPA and machine learning are just in the trial stages with very few human resource available to make good use of it.

What we can tell from all these tests and proof-of-concepts though, is that the technology is going to be viable sometime in the future.

No one can predict exactly what will happen of course. As I've already mentioned it'll certainly create new jobs, but those jobs will require higher educations, and I think that's the challenge which worries us in politics. Because the people that are going to be replaced by self driving cars won't be easily reschooled for something else.

</comment><comment><USER13> Good luck buying an industrial robot right now. Anecdotal maybe, but from my personal experience all top 3 players are experiencing supply shortages due to strong demand.

<comment><USER14> Who are the top three?

<comment><USER15> I was curious too and found this list (sorry about the parent site):

[https://roboticsandautomationnews.com/2015/07/21/top-8-indus...](https://roboticsandautomationnews.com/2015/07/21/top-8-industrial- robot-companies-and-how-many-robots-they-have-around-the-world/812/)

1\. Fanuc

2\. Yaskawa

3\. ABB

4\. Kawasaki

The first one mostly has openings in Michigan, concerning machine vision and embedded NN -- from what I can tell.

</comment></comment></comment><comment><USER16> Calm before the storm.

Regarding point 2, can this be explained by the trend of turning CAPEX into OPEX by leasing and similar? I only heard about it in passing so maybe thats just a misunderstanding on my part.

</comment><comment> awinter-py Another article about productivity from an author who can't distinguish between measurable economic TFP and the common-use concept of productivity.

In fact, TFP (which is what they're charting) is the mystery factor that explains why earnings grows differently than its inputs, labor and capital.

It makes no sense to me to talk about TFP when moore's law is making devices cheaper and VCs / ad revenue are subsidizing omnipresent software.

The ATMs argument is tired -- even if it's right it's 30 years old.

Foxconn replaced 60k workers on their shenzhen campus with robots. How can this article not cite that?

Weak.

</comment><comment><USER17> I'm a fervent watcher of the show "How it's Made" and it blows my mind how an enormous amount of manufacturing is still done by hand. Particularly any seamstress, weaving, buffing, sanding or carving.

The show generally covers North American manufactures where you would expect far greater automation but empirically I have observed the opposite.

For example the other day I watched a Canadian worker skillfully weave a hammock. It looked like it could have been automated but I lacked the mechanical mind to envision how.

So given that manufacturing is actually a small subset of the economy but probably the most viable for automation (ie robots) its sort of disturbing to see an almost regression particularly in North America (again my empirical observations).

Service based jobs like hospitality I would imagine to be far harder to automate (or maybe not).

<comment><USER18> I've also noticed on that show how specialized all the machinery is. Even changing the size of a part might require a whole new machine.

I have to imagine there are big wins waiting for by have more general manufacturing equipment that can itself be mass produced.

</comment></comment><comment><USER19> One thing the general media don't seem to understand is that the whole discussion about robots isn't so much about AI but mostly about automation. We don't need intelligent machines to get there, we're already automating jobs/tasks. In our industry for example bots are everywhere.

</comment><comment><USER20> "Globalization is a much bigger deal than automation for work and wages."

I think this pretty much sums it up...

</comment><comment><USER21> The robotics market isn't coming for several more years, in my opinion, so I think the reason why there is a sounding of an alarm now is because by the time we realize it and it does get here it's too late for the labor market

</comment><comment><USER22> Quick aside from the point of the article...the "Growth in labor productivity..." and "Capital Investment in IT..." graphs are one of those fudged to present a particular point of view stats.

Wow, so capital investment slowed from 2007-2016. I wonder if anything happened during that time period that may have deflated these growth rates.

</comment><comment><USER23> So we are basically faster at creating new jobs than automating existing ones?

</comment><comment><USER24> they're already here... but unfortunately these algorithms are becoming the masters, an increasing workforce relies on an app to tell them where to pick up customers or where to pick up amazon products.

</comment><comment><USER25> Where too is the once promised paperless office ?

IMHO the robo jobpocalypse is as overhyped as the paperpocalypse was in the early 1980's

<comment><USER26> Were you making a joke perhaps? Paper disappeared from offices.

<comment><USER25> I agree, paper is absent from many offices, yet very many business still use some paper.

As the amount of businesses and transactions has increased by several orders of magnitude the overall effect is that more paper is being used than ever before.

</comment></comment></comment><comment><USER27> yeah where are them? [https://m.imgur.com/ZiJ0n6Q](https://m.imgur.com/ZiJ0n6Q)

sheeesh of course robototization adoption is slowing, most manufacturing is already there and until the next tech generation comes we reached the optimum split between local automated vs cheap manual outsourced

<comment><USER28> You seem to have a very skewed perspective on the state of automation in SMEs</comment></comment>


Do platforms work? - <AUTHOR> https://aeon.co/essays/workers-of-the-world-unite-on-distributed-digital-platforms <comment><USER2> There was an interesting point made on a podcast yesterday (Struggle Session EP 48 w/ Felix Biederman, i believe) todo with growing up online in the 00's and the social experience of being online and being a teenager. Many of us here can likely relate to feeling a bit out of place in our primary edu and the experience of going online to "find your people". Whoever you were comfortable "hanging out with" online, RPG people, emo kids, poets, FPS gamers, programmers, whoever - you could find them online.

Thats definitely still true today, but 10-15 years ago we didnt have this convergence of platforms so much. Instead all these communities existed on sites of their own with closer control of their space. The problem today is that everyone is thrown into one bucket, and everyone in that bucket is looking at one another and obsessing over current events (poorly) and using their real names. Platforms are like monoculture farming, and the more decentralized internet of the recent past was more like smaller gardens tended by loving gardeners. Sure, the new internet is more productive, but we can't say its the same thing as the diverse, small garden.

</comment><comment><USER3> What irritates me is that the article suggest that the concept of "value generated outside of firm" surfaced in the internet of modern times - I think it's much older and also not excluding classic cooperation structure. For example:

Second hand shops, DIY car shops, allotment garden owner association

<comment><USER4> Agree, but these were typically limited to "peripheral" transactions, where it made more sense for someone external to invest in infrastructure because each customer uses it rarely.

Main difference that IT provides is that it is now more practical to outsource core, everyday transactions that your life/business depend on, because somebody else can do the matchmaking and bookkeeping.

</comment></comment><comment><USER5> "In the future, one can imagine an interconnected ecosystem of collectivist groups that provide services and produce goods. Where once there was a corporation, instead we find a network of cells that have expunged hierarchies and collaborate for the common good – ride-sharing services linked up to peer- to-peer lending and medical and health providers. "

The author must be living on another planet. He's describing the present as if it were the future. The arguments used to oppose the present are to decentralize and disrupt the economic powers of today, as if some other kind of system is possible. These writers suffer from short-sightedness in their vision in that the solution they propose becomes that which is already here today.

</comment><comment><USER6> Platforms = your market is now regulated by a company.

<comment><USER7> Which, _yikes_

Ironically enough, local governments used to be the platform of the past. Local businesses and houses would pay taxes so that roads and police would be maintained. Lives would be lived and business would be done.

Now the town just wants to overtax and overregulate certain things (speed cameras), just like how Amazon has a policy of usually siding with the buyer unless the stars allign

<comment><USER8> I guess I don't know about your town, but if you attended a local city meetings where I live, you'd see the many things that get handled by the city.

<comment><USER7> I definitely acknowledge a bias and a blindspot on my part.

In my suburban town, the taxes mostly go towards teacher and police salaries. Not much go towards plowing, or etc.

I'm only here because my job is here. If I was able to work remotely, I would move to a patch of desert in Arizona where property taxes are like $200 a year, not $10,000 haha.

It's mostly a case of me not requiring these services. The only government service I've ever willingly used is unemployment insurance, which, I'd rather just not pay income tax instead like they do in New Hampshire.

<comment><USER9> I'm surprised to hear that you don't think you benefit from spending on education and police. Would you care to elaborate on those viewpoints?

From my perspective, it seems obvious that education is one of the best investments you can make in society, whether or not you have children. After all, it won't be long until those kids are running for office, managing corporations, etc etc. So it affects us all.

<comment><USER7> I would dare to say that good education at an affordable price would exist in a society that doesn't use tax money to fund it. It definitely depends on population density though.

There are towns and counties in the US that have absolutely no services whatsoever, and no crime occurs there. This is because they are not densely populated at all. Sure there are no jobs and nothing fun to do at night, but they are quiet and peaceful, and property taxes are quite literally $200 a year or less. Think of the desert of Arizona or New Mexico.

Then you have your mid-tier towns and counties that have taxes of maybe $1,000 - $3,000 a year, theres some crime, some jobs, overall not a bad place to live for the price still. Think of South Carolina, Vermont, etc.

And then you have your ridiculously overpriced, dense suburbs and cities. Long Island and New Jersey come to mind, where taxes on nearly any kind of house are $10,000 and up. It's not necessarily easy to find a good job to pay the mortgage, and you're paying those taxes whether you have kids in school or not.

I'll take South Carolina or Arizona, please. My gf and I just simply don't want kids and aren't afraid to live without services.

</comment></comment></comment></comment></comment></comment><comment><USER10> > Thanks to software, the internet and artificial intelligence, the expenses > that Coase identified can now be reduced just as well with tools from > outside the company as they can from within it. Finding freelance workers > via online marketplaces can be less costly, less risky and quicker than > recruiting full-time employees.

I wonder to what extent that's inherent, and to what extent it's accidental due to regulation making employees more expensive than they ought to be. Is what's happening to regular employment now akin to what happened to the household-service industry in the mid-20th century? Then, payroll taxes & regulatory compliance made it less & less efficient for individuals to hire their own service staff (at full- or part-time) than previously, and as a result relatively few folks have hired help nowadays.

It'd be pretty unfortunate if _all_ industries, not just household service, were so impacted.</comment>


University of Reddit - <AUTHOR> http://universityofreddit.com/

<comment><USER2> I remember seeing this before. The quality of the courses were often quite poor. And many instructors would start a course and not finish it, leaving the people following the course hanging.

<comment><USER3> > The quality of the courses were often quite poor. And many instructors would > start a course and not finish it, leaving the people following the course > hanging.

"Reddit". Big ambitions, then nothing.

</comment></comment><comment><USER4> Note this is a fairly longstanding vector (offshoot?) of Reddit; it's been going on for at least a few years, and was featured on Reddit's blog in August 2012: [http://blog.reddit.com/2012/08/university-of-reddit- explore-...](http://blog.reddit.com/2012/08/university-of-reddit-explore- any.html)

Here are the previous Hacker News discussions about it:

<https://news.ycombinator.com/item?id=5366423>

<https://news.ycombinator.com/item?id=4409219>

<https://news.ycombinator.com/item?id=1479143>

</comment><comment><USER5> As an ex-reddit user (and ex-ex-digg user) I know why this project isn't as popular as they thought it would be, it lacks a Cat section, a Meme section, a <insert cute animal> section, ...

<comment><USER6> Hey now, I totally added cats, memes, and bacon into my class.

</comment></comment><comment><USER7> Oh, for heaven's sake. Two Excel courses and an Office 365 course in the _Computer Science_ section? I do not think those words mean what you think they mean.

<comment><USER8> Am I missing something?

[http://universityofreddit.com/category/23442/computer- scienc...](http://universityofreddit.com/category/23442/computer-science)

\- Introduction to C++: A video guided tutorial

\- Intro to MySQL

\- ...

<comment><USER9> There are two Excel courses and an Office 365 course mixed in with those. They should be moved to a "Software Application" section or something.

<comment><USER10> I think they're trying to best duplicate a real universities course listings.

</comment></comment></comment></comment><comment><USER11> I just signed up but I can't tell what this is. Do they have courses on all these topics? Or is it a forum to discuss courses from other places?

<comment><USER6> It really depends on the teacher. Just make sure you check their class page, as it often lists where to find the content and if there are live sessions. To find the class page button, just click the plus sign next to the class name, and you'll see the button on the bottom right of the expanded area.

</comment></comment><comment><USER12> <http://www.ureddit.com/></comment>


Parental Leave in Tech: a crowdsourced spreadsheet - <AUTHOR> https://docs.google.com/spreadsheets/d/1GKWqhc3FVtSVKRZNBxyfwZ_QrB1f-i1T0-yBJ6X_YHM/edit#gid=0? <comment><USER2> Thanks for putting this together. Score for transparency!</comment>


How are young developers trained to cybersecurity? - <AUTHOR> Hi all, I'm making a thesis for my engineering school and I would like to ask some questions for new developers who just entered the market.
Where did you study and how long was the formation ?
Did your formation provided you with cybersecurity training ?
And if yes, which aspects ?
And finally do you apply those in your current job ?
Optional: your age and location ?
Thanks for your responses ! <comment><USER2> "How are young developer trained to cybersecurity?"

In short, they are not. Which is why you see so many high profile companies being hacked all the time.

</comment><comment><USER3> Cybersecurity in general seems to be mostly approached in an after-the-hack, damage control and -repair manner.

Actual security architecture deliberations are rare, the fundamental properties of our tools, the operating systems, programming languages and software, ignored and unquestioned.

Almost all systems are unable to provide secure modularity and resource sharing, because they simply cannot isolate and account for the effects and requirements of their components.

Since most systems we use and built on top of today emerged in the pre- internet era, they were not built with these capabilities in mind.

</comment><comment><USER4> First they are lied to and promised actual jobs even though the field is incredibly unfairly hard to get into. Then they are told to take the hardest possible cert that is often the least requested by HR, the OSCP.

<comment><USER2> Please explain the experience that has led you to write such an awesomely bitter post about this! :)</comment></comment>


How Dropbox Did It and How Python Helped (PyCon 2011) - <AUTHOR> http://us.pycon.org/2011/blog/2011/02/07/pycon-2011-announcing-startup-stories/

<comment><USER2> There's no actual discussion of this at the link; it's just a talk scheduled at PyCon 2011.

<comment><USER3> Still, apparantly it hits the right buzzwords to generate a lot of upvotes...

<comment><USER4> It's baffling that people are blindly upvoting before they even read the article.

</comment></comment></comment><comment><USER5> Good thing I'll be at Pycon this year, definitely checking out this talk.</comment>