Comparison of Programming Language Package Managers - <AUTHOR> https://docs.google.com/document/d/19HNnqMsETTdwwQd0I0zq2rg1IrJtaoFEA1B1OpJGNUg/edit <comment><USER2> One of the things that I've found to be important for (and generally under- documented by) package managers is resolution strategy.

pip, for instance, eagerly resolves the highest version of a dependency first found in the tree and doesn't backtrack AFAIK [1]. Cargo sounds as though it behaves similarly, but will actually backtrack [2]. I've also seen package managers like 0install that will use SAT solvers to solve dependency constraints [3].

I've found lack of backtracking on conflicts to be frustrating, but I'm curious how the other two (and other conflict resolving strategies) compare in practice.

[1]: [https://github.com/pypa/pip/issues/988](https://github.com/pypa/pip/issues/988)

[2]: [http://doc.crates.io/cargo/core/resolver/index.html](http://doc.crates.io/cargo/core/resolver/index.html)

[3]: [http://0install.net/solver.html](http://0install.net/solver.html)

<comment><USER3> pip's lack of backtracking is doubly irritating, because it installs packages as it goes. It would be great if it would fetch all of the required manifests and make sure that the install was going to succeed before it starts spewing stuff everywhere, but instead it will happily back itself into a corner where A->B->C(v1) and A->D->C(v2) conflict and so it leaves the system with A, B and C(v1) installed and prints a nice red stack trace.

<comment><USER4> Yep it's maddening. We use pip-compile [1] at work and check-in the then totally-resolved requirements.txt. That is working for us well. However I still head-desk every time I just want to install a local package (with pip install -e) to work on it and pip runs amok, naïvely downgrading/upgrading/doing-whatever-it-pleases :/

[1] [https://github.com/nvie/pip-tools](https://github.com/nvie/pip-tools)

</comment></comment></comment><comment><USER5> At least three things wrong with respect to Bundler/RubyGems:

1\. RubyGems is the package manager. Bundler is a meta-layer on top of that which does full dependency resolution to find the right version before installing. Bundler builds on the capabilities provided by RubyGems (and will be integrated into RubyGems in the future).

2\. Bundler does support vendoring. It is widely discouraged, but I take advantage of it in my app packager for deploys at work (Cartage: [https://github.com/KineticCafe/cartage](https://github.com/KineticCafe/cartage), specifically cartage-bundler [https://github.com/KineticCafe/cartage- bundler](https://github.com/KineticCafe/cartage-bundler)).

3\. RubyGems and Bundler can use alternative sources (my work applications use both public and private sources simultaneously).

One thing I don't see that would love to see tracked and solved is authenticity verification. RubyGems has support for signed gems but it's not widely used and hasn't really been validated as Correct.

They should probably also look at CocoaPods and Carthage (iOS and macOS build dependencies) and whatever Swift provides.

<comment><USER6> > _It is widely discouraged_

It is also widely encouraged. Some engineers:

1\. Don't trust dependencies to always be there.

2\. Write apps that need to work in disconnected environments -- ie with no internet connectivity.

I work on the Cloud Foundry buildpacks team for Pivotal. Being able to stage and launch apps in a disconnected environment is A Big Deal for a lot of companies.

<comment><USER5> Absolutely. That's sort of a fundamental reason why I wrote Cartage. I like some of what Capistrano does, but the general insistence on being able to `bundle install` on the target server is questionable, and the earlier practice for Rails apps of keeping the gems in Git resulted in other problems.

Heroku mostly does this right with its 'slug' system, and I made Cartage specifically to be able to make deployable packages that use dependencies. You have a build machine that's connected to the network and can reach RubyGems (and, in the future with some plug-in work, other packaging systems—I expect to add Node, Elixir, and Lua soon) and that will vendor the resulting build and give you a tarball that is _just_ installable with all of the dependencies of your package.

<comment><USER6> Cloud Foundry has staging and run steps, much as Heroku does, to the point that a lot of Heroku buildpacks will run without modification ... _if_ you're in a fully connected environment _at staging time_. It's not an accident: Cloud Foundry was in part consciously inspired by Heroku in the early days, so adopting the buildpacks model was natural.

However, as I noted above, this model breaks for _disconnected_ environments, in which neither the staging container nor the runtime container have internet connectivity.

Heroku's ruby buildpack code runs bundler, Cloud Foundry's buildpack is a soft fork of Heroku's, so either you vendor your dependencies _before_ sending it to Cloud Foundry for staging, or you get a failed staging step when the code in the staging container can't dial out to a remote repo.

<comment><USER5> Yeah. That makes sense. My run steps are in Ansible, so it made sense for me to make something that's just a packager. The nice thing about Cartage is that it can make use of already-vendored packages (old way) or you can create the deployment package from a developer machine. I really should write it up one of these days, but I'm so busy getting my team's pipeline fully fed that I haven't had time to properly shout out about Cartage (because, frankly, it's kind of awesome if I do say so myself).

<comment><USER6> Cartage looks neat (thought Googling it took a few tries).

To me it "looks" like a buildpack, insofar as you are taking something, injecting its dependencies and producing an artifact that's ready to run by itself. If you ever whack bin/detect, bin/compile and bin/release onto it, it'll probably work well enough as a buildpack in connected environments.

<comment><USER5> Thanks. We're going to add Node, Lua, and Elixir plug-ins soon to enable standalone running. The nice thing about making just a tarball at the end of the process is that it should be relatively easy to make anything else (Docker image, AMI, etc.) with that.

[https://github.com/crohr/pkgr](https://github.com/crohr/pkgr) is the only thing that's _nearly_ similar, and it does a few things differently than Cartage ([https://github.com/KineticCafe/cartage](https://github.com/KineticCafe/cartage) for anyone else following this subthread). Pkgr is a little more opinionated on using the OS environment and making sure that OS-level dependencies are fully declared…I leave that to Ansible, for the most part.

<comment><USER6> If you had an option to package the runtime, you could use the binary buildpack[0] to run Cartage tarballs.

[0] [https://github.com/cloudfoundry/binary- buildpack](https://github.com/cloudfoundry/binary-buildpack)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Call me old fashioned, but I find it annoying that every new language nowadays seems to want to pull in its own package manager, redundantly parallel to the perfectly good one my operating system provides. I am already perfectly fine with installing my software through apt-get. Why oh why do I need pip, and gem, and npm, and CocoaPods, and cargo, and NuGet, and on and on and on...

Using a new language is no longer a matter of cracking open a book, installing a compiler, and firing up vim. You've got to change your whole lifestyle now.

<comment><USER2> Global installs are the root of a lot of headaches when building software in the same way that global mutable state is the root of a lot of headaches when developing it. Nix may be the one system package manager that is the exception to this rule (I don't have experience with it, so I can't vouch towards that, but I hear great things). However apt-get is incredibly bad at getting you the dependencies you need for a reproducible build.

I've seen this argument come up a few times now, and I have a hard time reconciling this rosy view of system package managers at the center of a development process with my own experiences. That process was never as easy as "cracking open a book, installing a compiler, and firing up vim" and usually entailed a fair amount of trial and error, environment variable fiddling, and sadness from having to chase down a derelict PPA (or the equivalent) hosting the actual dependency version I need. Then more sadness as the number of projects I work on increases and my dependency versions bifurcate.

<comment><USER6> > _Nix may be the one system package manager that is the exception to this > rule_

Some peers of mine recently experimented with building a Nix buildpack and concluded that it won't work. Nix has hardcoded paths for its core directories, and won't work in a security-constrained container.

<comment><USER8> I have no idea where you got that idea. Nix has built in support for building normal non-privileged Docker containers. The paths are hard-coded but just like hard-coded /usr/whatever paths in other unix software, that's what the chroot in the container is for.

[http://lethalman.blogspot.ca/2016/04/cheap-docker-images- wit...](http://lethalman.blogspot.ca/2016/04/cheap-docker-images-with- nix_15.html)

<comment><USER6> The paths that are hard-coded are non-negotiably incompatible with how Cloud Foundry locks down its containers.

Other language managers don't hard-code and will allow stuff to run from a local directory.

<comment><USER9> They (other package managers) have to rely on at least a hardcoded elf interpreter or they don't provide binaries and probably don't even handle external dependencies.

<comment><USER6> > _on at least a hardcoded elf interpreter_

Some rely on gcc, but again, it can be run from a local directory. Various dynamic libraries can be looked up by setting environment variables or passing parameters.

I think Nix is a great idea, but I'm not aware of an argument for hardcoding those root paths which truly holds water. It makes sense of NixOS, sure, but that's because it's an environment with top-to-bottom control.

The rest of us have to be good and share our toys.

<comment><USER8> Okay you should have clarified that in your original comment, it's not that Nix is incompatible with unprivileged containers (it includes built in support!) but only with a specific container system that isn't even the most popular one (Docker AFAIK).

As for why those paths have to be hard-coded: they don't it's a config variable you can change. When you change it you give up using other people's binaries so you have to build everything yourself, which is exactly like every other distribution system that relies on hard-coded /usr/whatever paths for binaries. The FHS standard is incompatible with Nix's guarantees and dropping it is where it gets all of its power, so it has to use something different, and it chose to make that path /nix/store/whatever

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I know Dart isn't super widely used, but it's package manager, pub, is probably a good reference for this. We put a ton of work into it, and Dart users regularly single it out as one of the compelling parts of the Dart platform.

[https://www.dartlang.org/tools/pub](https://www.dartlang.org/tools/pub)

It hews pretty closely to Bundler's model (versions, version ranges, lockfiles, shared dependencies), though. So I don't know if it gives you much insight beyond "Yes, another language team things Bundler is on the right track."

Personally, I have a hypothesis that states that all programming languages either have a package manager that works like Bundler or will end up getting one.

<comment><USER6> Based on my work in buildpacks, I agree with the sentiment but I'm not as hopeful as you are.

</comment></comment><comment><USER11> Perl's CPAN has tooling for diffing versions through the use of MetaCPAN (a top-notch site which every language should try to emulate). For example, here is a diff of the URI distribution:

[https://metacpan.org/diff/file?target=ETHER%2FURI-1.71%2F&so...](https://metacpan.org/diff/file?target=ETHER%2FURI-1.71%2F&source=ETHER%2FURI-1.69%2F)

This information is also available through an API for integration into command line tools.

<comment><USER12> IIRC, and I could be wrong, CPAN was the first to go down the route that many modern toolchains now provide. We've looked at it.

In fact, the original creator of Glide (Go package manager) wrote about Perl and CPAN when talking about Go at [http://technosophos.com/2015/09/02/dont- let-go-be-condemned-...](http://technosophos.com/2015/09/02/dont-let-go-be- condemned-to-repeat-past-mistakes.html).

<comment><USER11> Yeah, I think it was. The only thing older was probably CTAN, but it didn't have the same structure.

Other things from the Perl ecosystem that should be copied are:

\- CPAN Testers which automatically tests every package on multiple systems from Windows to Solaris. This helps identify portability, backcompat, and regression issues.

\- CPAN mirrors which ensure that there isn't a single point of failure. This might not be as important now with fast networks and high uptimes, but it also ensures that everyone can replicate all of the code at anytime. I believe R's CRAN does this.

<comment><USER13> CPAN Testers also test on different operating system versions. And hence also test the Perl binaries, for a lot of different versions, by literally running the combined test suites for all of the (public) Perl code.

I really, really don't get why this isn't copied to the rest of the open source language environments. (Masochism? :-) )

</comment></comment></comment></comment><comment><USER14> I don't get why "pip" is checked in "Has separate manifest and lock files". Actually it doesn't have that feature (which Bundler for Ruby has, for instance). This very feature comes with a third-party package called "pip- tools", or possible alternatives, but raw pip doesn't have this ability directly afaik.

Fwiw pip isn't even able to enforce versions correctly (packages are installed as the file is read, and can conflict with previously expressed constraints). Or report installed versions correctly (it's possible that packages are half- installed or installed but not reported as such by pip commands).

<comment><USER15> Pip has a constraints file now. Running

      $ pip freeze -r requirements.txt > constraints.txt

after you've installed all your packages gives you a constraints file that can be used to reinstall exactly the same versions:

      $ pip install -r requirements.txt -c constraints.txt

<comment><USER14> Didn't know that option thanks. Better than nothing, but unfortunately your environment is still subject to the remarks in my second paragraph. So pip- tools is still required if you want more guarantees.

</comment></comment></comment><comment><USER16> One thing about Cargo's lack of 'vendoring' on the checkmark list; there is [https://github.com/alexcrichton/cargo- vendor](https://github.com/alexcrichton/cargo-vendor) , and soon there will be [https://github.com/rust-lang/cargo/pull/2857](https://github.com/rust- lang/cargo/pull/2857)

<comment><USER6> On the CF buildpacks team in NYC, lack of vendoring prevented us from completing a buildpack that would work in disconnected Cloud Foundry installations.

We were sad.

<comment><USER16> Hm, even without the above stuff, `cargo fetch` should enable you to do offline builds just fine.

<comment><USER6> Can you point to a man page? We weren't able to find a reference doc on the cargo site.

<comment><USER16> "cargo --list" will show all commands, which shows fetch. "cargo fetch --help" then shows the help for fetch.

We certainly have some work to do on Cargo's docs. Please don't hesitate to open a thread on users.rust-lang.org if you run into some kind of issue. In addition, I actually live in Brooklyn; if Pivotal ever needs a hand with Rust stuff, just let me know, I'd be happy to swing by your office and talk about whatever.

<comment><USER6> Right, we've hosted you for a few tech talks (I'm that Australian guy who MCs).

Email me on ... uh ... wednesday, maybe? We could get you to visit to check the buildpack work we did last week.

</comment></comment></comment></comment></comment></comment><comment><USER17> Since I had starting looking for an alternative to NPM I have discovered a couple of things:

* All current package managers are either language or OS specific. What if you have an application with code written in multiple languages?

* NPM didn't have any kind of integrity checks for its packages, and I assume most package managers don't either. If you download a corrupt package, for example, you won't have any idea and it will still install.

* Some package managers do better than others with regards to managing packages. I found NPM encourages dependency hell and very little management tools for dependent or installed packages.

* A lot of package managers seem to intermix packaging, distribution, and a registry. The registries tend to have limited names to pick from (like real estate) and can result in legal problems. Also if registration to the service catalog is required you cannot self-host or self-manage the distribution of your application.

I am trying to work on a solution to these problems at [https://github.com/prettydiff/biddle](https://github.com/prettydiff/biddle)

<comment><USER18> > * All current package managers are either language or OS specific. What if > you have an application with code written in multiple languages?

guix and nix both work cross-language and cross-distro. Still OS specific though since only linux AFAIK. Also, containers partially solve this problem.

> * NPM didn't have any kind of integrity checks for its packages, and I > assume most package managers don't either. If you download a corrupt > package, for example, you won't have any idea and it will still install.

Any package manager that doesn't do integrity checks is a bad package manager. The only one I know of currently that doesn't is npm, but I haven't looked deeply into every available package manager.

> * A lot of package managers seem to intermix packaging, distribution, and a > registry. The registries tend to have limited names to pick from (like real > estate) and can result in legal problems. Also if registration to the > service catalog is required you cannot self-host or self-manage the > distribution of your application.

What package managers don't let you self host? I'm truthfully not aware of any. Even NPM does according to a quick google.

> I am trying to work on a solution to these problems at > [https://github.com/prettydiff/biddle](https://github.com/prettydiff/biddle)

From your readme: "biddle is inspired by the incredible awesomeness of NPM". Since NPM is literally the worst package manager I have ever used, that line makes me want to stop reading and never touch biddle. I'd word it differently.

Edit: Reading biddle further. Dependency management and central hosting are some of the primary reasons to have a package manager. At least for me, that kills any interest at all. I imagine there's a niche market though?

<comment><USER4> I often see drive-by bashing of npm, but rarely any justification. What exactly is wrong with it?

(Aside from the lack of package integrity check, which I'll grant, sucks).

<comment><USER19> I think it's not bashing of npm specifically so much as it is the node ecosystem it serves and depends on; at least in my mind it's difficult to separate node from npm. That said, for what it's trying to do (read a list of deps, resolve vs. registry, download and unpack) it seems to do a fine job of it.

My major complaint about npm is the choice to allow version range operators on dependency declarations. We know the node.js ecosystem places a high value on composability, so using lots of tiny modules which themselves depend on lots of tiny modules is the norm. This is a problem though because range operators get used liberally everywhere, so getting reproducible builds is like winning the lottery.

There are other things I don't like about using npm: node_modules/ is big and has a lot of duplication (even with npmv3), it's pretty slow, historically it has been unstable, its still crap on Windows, etc. - but for someone who has 'ensures reproducible builds' as part of their job description, the way its modules get versioned is its worst feature.

<comment><USER4> For reproducible builds (or at least 'to get the same versions again') you should be using 'npm shrinkwrap'. (Of course there's probably more you should do to get true reproducible builds, but that goes for any package manager).

The range operators are important, else you'd never be able to resolve 2 packages that want a similar versioned sup-dependency e.g. jquery 1.12 because without range operators those 2 packages would have declared minor version differences (1.12.1 and 1.12.3) depending on when they were published. This would mean you'd always end up with duplicated dependencies.

I'd argue 'node_modules is big' is not a fault of npm. If the package or app you're trying to install generates a large node_modules dir, that is something you should take up with the package maintainer. See buble vs babel - buble has a way smaller dep tree.

npm is only slow in the ways that all other package managers are, when installing large dependency trees or native dependencies (like libSass) and it is way faster than say pip and rubygems in this regard. When I 'pip install -r requirements.txt' at work, I literally go and make a coffee.

Also never experienced any instability, though I may have been lucky. Certainly it has been very stable for the last year or so when I've been working with a lot. Could you elaborate on why it is crap on Windows? I did think all major issues (e.g. deep nesting problem) were now fixed ...

<comment><USER18> The main problems we ran into with shrinkwrap were:

It shrinkwraps everything in your current node_modules directory.

This includes platform specific dependencies that may not work on other platforms but now will cause npm install to fail instead of just printing a message about it.

So our current workflow has to be:

1\. Update package.json 2\. rm -rf node_modules/ 3\. npm install --production # This doesn't include any of those pesky platform specific packages 4\. npm shrinkwrap 5\. npm install # Get the dev dependencies

As far as the other comments about npm, I just generally have more problems with it than rubygems/bundler and the general OS package managers.

<comment><USER4> Ah okay, I've never used shrinkwrap across platforms (dev in Linux or Linux VMs, deploy to Linux). That does seem like a PITA.

> As far as the other comments about npm, I just generally have more problems > with it than rubygems/bundler and the general OS package managers.

I generally don't :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> I'd like to see how one of the oldest package managers, Perl's CPAN, stacks up.

<comment><USER21> It's in the list, and does better than basically everything else.

</comment></comment><comment><USER22> This should probably use Stack for Haskell as well, which was designed to solve various common issues that arise when using cabal as a package manager.

<comment><USER23> Is stack really a package manager? It seems to me that it's more of a build manager, delegating package management to cabal/stackage.

<comment><USER22> I see your point, but I'm not sure if it matters. Stack might be built on top of cabal, but I never use cabal directly at all anymore, and stack cleanly addresses a _lot_ of problems that you'll run into if you exclusively use cabal-install for package management. Stack actively installs packages and dependencies on your system.

</comment></comment></comment><comment><USER24> I'm confused as to why composer (PHP) got an X for "Central package repository"... isn't Packagist a central registry? And other package managers allow packages from source.

I'm not arguing the point just trying to understand the decision.

<comment><USER25> You're not actually downloading the package from Packagist. It acts only as a metadata repository that points you to a source repository. For the others, I would assume they act as both a metadata and a source repository.

<comment><USER24> Thanks for the clarification. I'm shocked it is the only one like that.

<comment><USER12> It takes a bit of work to store versions and manage them as a central repo. Composer will fetch the sources, as a tarball from GitHub if possible, and cache them locally. They are skipping being the central store and deferring to root sources.

They removed a lot of complexity by doing that and I bet more than a few people didn't notice.

</comment></comment></comment></comment><comment><USER26> Which one allows to import multiple versions of a lib/module/package with different versions? (Not primarily but also an issue of the package manager.)

<comment><USER27> Npm allows that.

<comment><USER23> How do different versions of the same package interact with npm? Since JS is a dynamic language, it seems that there could be problems if a function in one version of a package returned a value which was then fed to a function in a different version.

<comment><USER26> You typically import it like:

       var foo = require('foo');

The lib's functions are accessed solely via the foo object. There is no interaction when different libs require different versions of a lib because the access the lib via different objects/modules. This actually is the one aspect of javascript I wish other languages would copy.

</comment></comment></comment></comment><comment><USER28> Surely if a package manger provides the ability to store in VCS then it's admitting defeat for reproducible builds. I'm thinking npm here

</comment><comment><USER29> Cargo supports vendoring and enforces semver. Not sure why that document disagrees.

<comment><USER16> The difference is in the central repository: Elm will compare your types to the previous versions and how the versions diff, and refuse to let you upload a package that makes a backwards incompatible change without bumping the version.

At least, that's my understanding of what they meant.

<comment><USER5> Elm also, according to a Changelog podcast I just heard, does not allow releasing below version 1.0.</comment></comment></comment>


Support requests: How software gets better - <AUTHOR> http://www.recursion.org/2013/3/13/support-requests-how-software-gets-better

<comment><USER2> Any recommendations for keeping track of email support requests? I'm getting beyond the point where I can just reply straight from gmail. Ideally something I can just self host to avoid a monthly fee, but I'd be open to paying for a really good solution. Has anyone had any luck outsourcing support questions? Especially for support emails in the middle of the night, it would be nice to have someone answer basic questions and then escalate the difficult ones to me.

<comment><USER3> We use SupportBee and it works pretty well for shared email support. It's a paid product but it's affordable and the pricing isn't based on the number of people.

<https://supportbee.com>

Depending on your business you can probably get away with only answering support requests during business hours.

</comment></comment><comment><USER4> Very true. We have been used customer's feedback as a primary source of ideas for growing our software products. Instead of copying features from competitors, listen carefully to the questions and requests that your customers have.

(It's also often that customers will sponsor new features just to get them faster)</comment>


Nix Build of GHC to Run Haskell on Android - <AUTHOR> https://github.com/wavewave/nix-build-ghc-android <comment><USER2> Nix and its companion NixOS are fantastic. Cross-compiling toolchains are the kind of thing that you have always been able to do, it would just take you two days of fiddling to set up.

With Nix, one person can do that work and it can work perfectly first try for anybody else with just a git clone and a command.

<comment><USER3> In my APrinter firmware project[1], I rely exclusively on Nix for building for multiple microcontrollers, including AVR and many ARM ones. It's great - I can tell anyone "just get Nix (on Linux) and run this command". They can even run the configurator as a local web application, all that is needed is nix-build then run it.

I even took it one step further and made a nixops deployment expression for setting up an online service (like [http://www.aprinter.eu/](http://www.aprinter.eu/)), which will itself compile firmware for you as configured.

[1] [https://github.com/ambrop72/aprinter](https://github.com/ambrop72/aprinter)

<comment><USER4> I do wish that Nix had a more googlable name though - for more obscure topics you get a lot of spurious hits for "*nix".

</comment></comment></comment><comment><AUTHOR> Reddit comments: [https://www.reddit.com/r/haskell/comments/3memrm/nix_build_o...](https://www.reddit.com/r/haskell/comments/3memrm/nix_build_of_ghc_7102_as_a_cross_compiler_for/)</comment>


Attackers at U.S.-Afghan Base Wore Coalition Uniforms (Jalalabad) - <AUTHOR> http://www.nytimes.com/2012/12/03/world/asia/taliban-bombers-attack-air-base-in-afghanistan.html

<comment><AUTHOR> This is HN-relevant because Jalalabad hosted the "Jalalabad Guest House" which had the MIT Fab Lab -- a project to let Afghans have access to Internet, a makerbot, etc. I stayed there a few times (it also had a bar...), and it was one of the very few bright points about the US occupation.

Jalalabad used to be safe enough to walk around without a weapon (although, in local dress, but not seriously hidden), shop downtown, visit the local hospital (we set up a wifi node on top of a water tower), etc.

Now, it's not. That's not really progress. The US should GTFO Afghanistan now.

<comment><USER2> I'm with you. God knows the place needs help (no pun intended), but what its currently got isn't the help needs/wants. I don't pretend to have an answer, but what it's got seems to me to be further alienating the country.

<comment><AUTHOR> The NGOs (actually, mostly individuals, mostly religious people) who were in Afghanistan from 1970s to 2001 did a lot of good. I met several -- really amazing how they managed to survive and do good things.

If the military left, along with all the big NGOs, maybe something organic would come about to help.

<comment><USER2> I'm guessing that Pakistan's influence once others have left is a bit of a concern. Were you in Afghanistan?

<comment><AUTHOR> Yeah; I was in Iraq and some other places 04-07, and Afghanistan, Iraq, etc. 2008-2010.

Pakistan's influence primarily is a concern to India. The US has essentially no vital national interest in Afghanistan -- that ended as soon as AQ basing ended, approximately early 2002 (although maybe late 2001).

It is a horrible backwater, and we should allow Afghans who are reasonable, want to build a better life, etc. to emigrate to the US (and particularly now, those who assisted us 2001-2012), but should get out otherwise.

About 10% of the total US spending makes its way to AQ and Taliban, due to payments made for security and logistics to "militias". The central government is potentially even more corrupt and opposed to US interests.

The only good thing to say about Iraq was that it was a good distraction from the fundamental quagmire that is Afghanistan. The US could have gone into Iraq, decapitated the regime, and quickly withdrawn, similar to Panama. We chose to screw it up (assisted by Turkey, the "sometimes" NATO member...), but it wasn't fundamentally as predoomed as Afghanistan.

<comment><USER2> And while Iraq wasn't as predoomed, it would likely have been more human-life- efficient to have left it alone. Can I ask what your role was? US military? I'm always fascinated hearing American service men and woman having opinions similar to what I and those I know hold. The view we get from US dominated media is the extreme right, bomb and be gone sensational type stuff. Even a cursory reading of Afghan history gives a deep sense of the complexity of occupying the place.</comment></comment></comment></comment></comment></comment>


Try AV1 codec now in YouTube - <AUTHOR> https://twitter.com/demuxed/status/1040066934224502784 <comment><AUTHOR> Just tested a few and the quality is quite a leap forward. AV1 1080P looks almost as good as VP9/MP4 4K in my tests. Check the Halo one out in particular. Wish they had some 4K available.

Caveat: "At time of writing, these transcodes are encoded at a very high bitrate for decoder performance testing."

Also, I wonder why Firefox isn't supported, since it does AV1 decoding?

<comment><USER2> It is supported if you activate media.av1.enabled and media.mediasource.experimental.enabled in about:config

<comment><AUTHOR> It does indeed work, thx.</comment></comment></comment>


A Response: "Ph.D. candidate's breakthrough stymied by bickering over credit" - <AUTHOR> http://simonbarker.tumblr.com/post/26207270881/will-that-be-trash-or-credit-a-response

<comment><USER2> Discussion of the first story: <http://news.ycombinator.com/item?id=4181312></comment>


Thunderbird 3 released - <AUTHOR> http://getthunderbird.com/

<comment><USER2> I just installed it. It looks substantially better due to a less cluttered interface, and search seems vastly improved. So far, I'm impressed.

<comment><USER3> There do seem to be some questionable UI pieces. I don't like the look of the reply/reply all buttons. They're especially bad if using the 3 pane (veritical view with message pane).

The tabs are pretty sweet though. I like having everything open in the same window vs a bunch of separate email windows.

</comment></comment><comment><USER4> > The new attachment reminder looks for the word attachment (and other words > like file types) in the body of your message and reminds you to add an > attachment before hitting send.

I'm embarrassed to admit that this will help me considerably.

<comment><USER5> Gmail has had this for quite a while now.

<comment><USER6> So has tbird, actually.

</comment></comment></comment><comment><USER7> I'm in heaven.

I just performed the same search I spent 10 minutes on a couple days ago to see if the new search would have worked better under those circumstances, and I was able to narrow it down and find the missing message in under 2 minutes.

Fantastic work Thunderbird Team!!!!

<comment><USER8> If you're seeing a lot of email traffic, you need to move the indexing to an actual external search engine and write your own 'search' plugin; both Lucene and Sphinx would rape native TB search in performance. And the index can be shared across a team as well, say, in a sales force.

</comment></comment><comment><AUTHOR> Vimperator fans will want to monitor the Muttator add-on page for updates: <http://www.vimperator.org/muttator>

<comment><USER9> vim : Muttator :: emacs : ?

Don't I wish....

<comment><USER10> Attention downvoters:

You are apparently not familiar with analogy syntax.

Daemmerung is simply asking if there is a similar plugin, but using emacs syntax.

<comment><USER9> Thanks, Walter.

I've tried using XKeymacs (<http://www.cam.hi-ho.ne.jp/oishi/indexen.html>) to this end, but had problems with the previous Thunderbird. Perhaps I should try again with 3.0.

</comment></comment></comment></comment><comment><USER8> Thunderbird, Firefox and Emacs. Seriously, the three pieces of software my life would be meaningless without. Greasemonkey and Lisp are the crack cocaine of software, that is, if crack allowed you to realize an innate higher potential in yourself.

I have never scripted it myself, but I have paid someone else to do it and my thunderbird add-ons account for at least 20% of my income. If you're doing a lot of marketing and lead generation, you owe it to yourself to tame this beast to your advantage. Specially for one-person shops, you can bypass the whole CRM shenanigans with a well kept TB strategy. Good luck!

<comment><USER5> Could you elaborate?

</comment></comment><comment><USER11> Looks like it tries to download every email in Gmail and index it locally. God. My maillist subscription just made my HDD explode. Didn't IMAP provide some sort of search function already?

<comment><USER12> IMAP does provide a search function but it's substantially slower than downloading and indexing your emails locally..

<comment><USER13> I quite like the iPhone's compromise: it stores and indexes the most recent 50 or so messages, and when searching provides a "Continue search on server" button. Thunderbird (or others) could have a larger store of recent messages, but this would avoid downloading thousands of mailing list emails.

</comment></comment></comment><comment><USER14> This seems like a good time to mention my favourite add-on, Nostalgy (update for 3.0): <http://alain.frisch.fr/soft_mozilla.html> . It makes keyboard control easy. From the description: 'Save time and get back the productivity you were used to with mutt/pine/eudora!'.

<comment><USER15> Nostalgy is a very good extension. But since I can archive mail in TB3 using the key A, then I think that nostalgy is not that necessary, which means that TB3 is much better than TB2 :-)

</comment></comment><comment><USER16> Just tried it here, I normally use Mail.app.

First impressions were "oh, this isn't so bad," but then I started using it. It feels very janky, the interface is a bit disfunctional (going to File > New Folder gave absolutely no visual feedback as to where it put it, and if you have the filters window open and make a new folder you have to close and reopen the filters window for it to notice the new folder). The one thing I saw that I liked was the "Reply to Mailing list" button, but that just didn't work, at all. The To: recipient was the person who wrote the email, not the list. Also, I couldn't figure out how to open a new tab.

E for Effort I suppose, but it's seeming less and less relevant, and if major releases are this buggy I can see why.

<comment><USER17> I downloaded it and tried it, and unfortunately it has the same two problems that I hate about version 2:

1) There is no option to say "reply using the same 'from' address that the mail was sent to." This means that you either have to set up an "identity" for every possible e-mail address you use, or you have to reveal your "main" identity to anyone who sends you an e-mail (and possibly confuse them in the process).

2) If you get new mail and read it on your iPhone or any other computer while thunderbird is open, then the status icon/indicator will get permanently stuck in "new mail" mode and you have to restart the app to get it to disappear.

On the plus side, the search is excellent.

<comment><USER18> > There is no option to say "reply using the same 'from' address that the mail > was sent to."

Huh? I've used Thunderbird 2 (on Windows) forever and I rely on this feature all the time, with multiple IMAP accounts and multiple email addresses for each of the accounts. It just works perfectly.

<comment><USER19> I suspect you might be mistaken.

Do you just mean you've configured multiple email addresses into thunderbird and get to pick which one to use, or have you really found out how to do "reply using the same 'from' address that the mail was sent to." in thunderbird?

(I use a different email address for each webapp I sign up to but obviously don't want to have to add each one to thunderbird, so this feature would be awesome)

</comment></comment></comment></comment><comment><USER20> Just curious - what's the appeal of non-web-based email? I'm forced to use Outlook at work, but I can't imagine having to install something to get my personal mail, and having to back up my personal mail. Do people do this mostly because they're concerned about their data privacy, or because it's easier to work when you don't have internet access, or what?

<comment><USER21> You having the full control over your data.

Do you really not backup your mails? Do you consider them not important or do you glorify your provider? I highly recommend making your own backups for anything you consider worth saving.

<comment><USER22> Just because I have control, doesn't mean the data is safer.

It's the practical realization that Google is likely to have a more recent, redundant backup of my data than me. The amount of effort to ensure that P(losing my backup) < P(google losing a backup) isn't worth the effort except for a few very important pieces of data.

<comment><USER23> Of course your google account could always be disabled for some reason....

<comment><USER22> That's true, and a much better reason than data loss.

</comment></comment></comment></comment></comment><comment><USER24> I've been using the CuteBird theme for a couple years which mimics the Apple mail client design. Now that I have upgraded to TB3 the theme is no longer compatible and the default theme, even with the improvements, just looks bad.

</comment><comment><USER25> Ver 3 - Used for a few days, buggy, want to go back to version 2 for the time being and upgrade later. Can't find ver 2. Any suggestions.

The Woof Man

</comment><comment><USER26> Using Firefox 3.5.5 no fixes yet 12/11 for TB & Lightning. What a doozy! Remember satellite to mars, feet & meters? Here is one right on earth.

</comment><comment><USER27> Lightning calendar add-on is not compatible.

<comment><USER28> The nightly for the 1.0 branch is compatible, and fairly stable. I have been using it for months with TBird 3 pre-releases, and am using it in 3.0 right now.

</comment></comment><comment><USER29> if its not better than gmail, i don't think anyone cares.

<comment><USER30> I think there is a valid point hidden inside this flame-bait. GMail (and other web-based email clients) are making inroads against traditional desktop email clients. I used Thunderbird for a long time, but just found GMail's client much more intuitive and faster. The best part is that web apps are getting faster and faster as JS engines improve.

This isn't the case for desktop clients, at least from my experience. Bloat always sneak up on you. Sure, this happens on web apps too (e.g. Google Wave), but it doesn't feel as bad because we're used to web apps being "slow" (only to get faster the next year). For desktop clients, once you're bloated then you pretty much stay that way.

I loved Thunderbird and I was excited about Thunderbird 3, but really, I don't see a reason why I would want to leave GMail.

Of course, I'm not using "enterprise" email for work or anything. But even enterprise email will be web-based eventually.

<comment><USER31> Interestingly, I find Gmail's client an absolute pain to work with. It's the best browser-based client, but that really isn't saying much.

</comment></comment></comment><comment><USER32> It's the orange space rocket, one that launches from under a pool, right?

<comment><USER33> If you look closely at the launch page (top left), they've actually snuck in a look-alike rocket.

<comment><USER32> I could't find it... Is's too good a reference to let it pass.</comment></comment></comment>


FriendFeed to add Realtime APIs next week - <AUTHOR> http://www.techcrunchit.com/2008/10/17/friendfeed-to-add-realtime-apis-next-week/ <comment><USER2> Aren't these things just moving back towards web-chat? Quite funny really.

<comment><USER3> It's not anonymous this time.

<comment><USER2> Um it wasn't last time either...

<comment><USER3> As I remember, webchat was (is?) anonymous by default.

Friendfeed is not anonymous by default. My point was that subtle changes in context seem to matter a lot - eg. tumblr vs blogspot. I use tumblr and still cannot tell you what it does that blogspot does not - blogspot just feels heavy.

So, even though friendfeed circles back to webchat, it might encourage entirely different kinds of things since people know each other by default and even know a bit of the social graph now.</comment></comment></comment></comment>


UK: Universities to Trawl Through Students Social Media to Look for Suicide Risk - <AUTHOR> <comment><USER2> This seems to be the article [https://www.telegraph.co.uk/education/2019/06/04/universitie...](https://www.telegraph.co.uk/education/2019/06/04/universities- trawl-students-social-media-look-suicide-risk-new/)

Subtitle "The scheme would be data protection compliant, and students would have to opt in."</comment>


Analyzing iOS apps: *.ipa files - <AUTHOR> https://eberl.se/blog/analyzing-ios-apps/ <comment><AUTHOR> (author here) Do you know about a way to get more info about code signing of an _.ipk /_.app when no *.mobileprovision is contained?</comment>


Ask HN: Technology in 2017 - <AUTHOR> 3D printing, AI, VR, Self driving cars,  .... Which tech are rising next year <comment><USER2> The year of Linux desktop</comment>


The Strengths and Weaknesses of 'Mr. Robot,' According to a Hacking Expert - <AUTHOR> http://www.playboy.com/articles/mr-robot-hacking-expert <comment><USER2> > playboy.com

 _sigh_

I'm going to have an awkward conversation with my IT guy one day

<comment><USER3> Agreed. That might make this a terrible click-baity link, sorry.</comment></comment>


Coders Can Skip College - <AUTHOR> https://www.google.com/#q=coders+can+skip+college

<comment><USER2> They absolutely can, no question about it. Don't expect it to not have costs, though: [https://medium.com/@opirmusic/why-software-developers- should...](https://medium.com/@opirmusic/why-software-developers-should-still- choose-to-go-to-university-if-someone-else-is-paying-45091d22acc1)

</comment><comment><USER3> Smart way to link and allow bypassing the paywall. Thanks.</comment>


How Feminists Ruined Women's Careers in Programming - <AUTHOR> http://www.linuxjournal.com/content/girls-and-software

<comment><USER2> Please don't rewrite titles, and especially not to make them baitier.

This article is a dupe: [https://hn.algolia.com/?q=girls+and+software#!/story/forever...](https://hn.algolia.com/?q=girls+and+software#!/story/forever/0/girls%20and%20software). For the policy on reposts, see the FAQ linked at the bottom of the page.

<comment><AUTHOR> Ahh ... all apologies. I'll remember this in the future. Thanks for the heads- up!

</comment></comment><comment><USER3> Faked title. Actual title is "Girls and Software"</comment>


Alexis Ohanian says men are unhealthy, insecure, and paralyzed by patriarchy - <AUTHOR> https://qz.com/work/1415102/hww4-alexis-ohanian/ <comment><USER2> Just what I love the most - some famous millionaire waltzing onto my timeline, speaking for me to others and telling me how to think. My world is going just fine without you, thanks.</comment>


Startup Matchmaking - <AUTHOR> http://differential.io/blog/announcing-differential-connect

<comment><USER2> Startup Matchmaking is a cutesy title for a recruiting ad. Call it what it is, add Cincinnati to the title, then post it in the monthly Who's Hiring</comment>


Should a graduate with no experience offer to do menial work? - <AUTHOR> http://www.articulateventures.com/articulate-blog/category/should-a-graduate-with-no-experience-offer-to-do-menial-work

<comment><USER2> Doing menial work won't give you any more experience than doing group assignments in college, a summer internship, any extra curricular, etc.

If recent grads can't find an employer, the best thing for them to do would be to employ themselves. That is real experience, they'll find what they're good at & what they like doing. They might even find out that they don't need to find another employer. :)</comment>


Help Me Refine This Idea: AppSumo + W00t + Prizes.org - <AUTHOR>

I have an idea, that I think is relatively novel, but it can get pretty complex pretty quickly. So I would love for you guys to shoot it down and offer suggestions. Pointing out existing services would be OK too...but not the ultimate goal.
Idea: AppSumo + W00t + KickStarter + Ad Platform + Prizes.org = People competing to drive dollars into someone's pocket.
Use Case: I, as a startup founder, wants a specific goal (say 300 paid users). I would like to be able to run a campaign that achieves exactly that, and I don't want to pay upfront.
This is the workflow. Set a goal, 300 paying users, and get sponsored prizes (not sponsored by me, but someone else that buys attention from this particular campaign) - say Amazon wants to sponsor with 100 Kindles + 37Signals wants to ante up 20 iPads. So the prize pool is 100 Kindles & 20 iPads.
Those prizes are awarded to the top 120 'performers'. This would be adjusted by number of prizes and impact the sponsor wants to have. Naturally, the more people competing for the prizes is the more likely the result will be finished quickly. Who can perform? Anyone within that target demographic.
In my case, I would want to target designers...so designers that blog and tweet can participate - or rather, would have a higher chance of succeeding. Each participant registers for a unique URL or some trigger that we can attribute to their performance.
They then tweet, blog and facebook that campaign. As their referrals convert to customers, they get points. There is a league table that is public so everyone can track how everyone (and the pool) is doing. If there is a time period (say 1 week), and the goal is not completed, no prizes are awarded. If the goal is completed, the prizes are split accordingly (in this case, the top 120 get either a Kindle or an iPad).
The platform makes a % cut from the revenue it sends the startup, and possibly from any advertising revenue that is generated (it's possible that companies will eventually bid to be a sponsor...once they become a sponsor, they pay for that slot - plus the prize).
So the general idea is that many people benefit - the startup in this case & the advertisers (because the viral campaign is built around their brand, i.e. people are competing for prizes they sponsored).
phew
Why can this not work or how can I refine it so it is more easily explained?
Anyone interested in either sponsoring prizes or helping get this off the ground? I am a Rails developer.
P.S. If you steal it and run with it....well....I am hoping you don't, because it's something I am genuinely interested in. <comment><USER2> This is similar to what MoreNiche is doing, and other affiliate networks. They have competitions and award prizes like iPods, and game consoles to top 5 or top 10 people with the most affiliate revenue. The hard part is actually getting those affiliates. You just can't expect just any normal Joe, or designer to be able to drive meaningful traffic to any startup.

And noone will steal and run with this. It's not a trivial business you can just start in a weekend.

<comment><AUTHOR> Interesting re: MoreNiche. Never heard of them...but it just seems soo 'affiliate network-ish'. All of those competitions and such, they seem so scammy. I am trying to come up with a way to get people as involved as they are with the AppSumo deals, without being so scammy.

You are right about it being non-trivial.

<comment><USER2> How are they scammy? The affiliates want to make money, the networks want to make money.. sure some of the affiliates try shady techniques, but the affiliate network themselves are not scams - they do give prizes and reward top performers. Do you just view their products (health/beauty products) as scammy?

<comment><AUTHOR> Not sure what it is, to be honest, but the entire value proposition usually doesn't turn out to be what you thought based on the impression you were given. Consistently underproviding value after a user has given up some personal info or whatever else, seems scammy to me.

I do know that there are some legit networks out there....just saying, as a general rule, I have seen too many affiliate networks that appear scammy. Almost seems to be the norm, than the exception.

I am sure I am not the only one with that impression either.

</comment></comment></comment></comment><comment><USER3> I've seen this model work well with charity fundraising.

Usually the prizes on offer are 'money can't buy' type prizes, lunch with a well known person, a trip to hangout at a famous location etc.

That way it's easier for the prize-givers to offer repeatedly and it's a unique experience for the winner.

If it was on behalf of for-profit companies, you need to examine the motivation of prize givers. Why would they want to give away those prizes?

Alternatively you could flip the idea on it's head and instead of expecting sponsor companies to donate prizes, just set up a really solid referral system, This process is pretty tricky using existing methods.

So a company that wants users starts a campaign. Your site generates a unique url for each promoter so that they can tweet/share. The company then tracks the signups through your leaderboard and rewards each promoter per sale, perhaps with a bonus for the top performer.

Nothing motivates like helping others to earn money. I guess it's similar to how Clickbank works in a way.

<comment><AUTHOR> This is interesting...the motivation for the prize givers, I was thinking, is simply to fit into their 'brand awareness' budget. Specifically, I was thinking of targeting companies that have new product launches and such (e.g. publishers with a new book, or Amazon with a new version of it's Kindle, or Apple with a new version of it's iOS devices, etc.).

As for the referral system, that seems a bit scammy to me. It's what existing affiliate networks to do - which is what I was trying to get away from...if that makes sense.

Btw, I agree about the charity fundraising...that's kinda where I got the idea, but was trying to find a way it could work for for-profits.

<comment><USER3> Yea, the affiliate industry always comes across as scammy and spammy, but it's still huge business. Maybe it needs a fresh new open and legit take on it. People want to earn money, companies want new users.

If you're trying to move away from it sounding scammy, then 'Win a Free Ipad' won't project the right image.

I think your idea could work if it's given the right kind of branding.

Think bit.ly meets kiip.me (so short urls for sharing and promoting results in user signups = real world rewards)

<comment><AUTHOR> You definitely are right about the 'Win a Free iPad'. That's a good point - which kinda cuts to the heart of the current incarnation of the idea.

Will have to re-consider everything.

The short urls definitely make sense.

</comment></comment></comment></comment><comment><USER4> Sounds like an affiliate program, with sponsored payments to the affiliates. Affiliate programs can work, and are apparently a pain to get right.

However, I don't really see why Amazon et al. would be happy to sponsor such a program; and anyway, 100 (ad-free) Kindles plus 20 iPads for 300 users seems ridiculously high, ~$70/user at retail prices. (Amazon's own affiliate program pays out ~8% to its more successful affiliates, which would imply that Amazon expects to derive value equivalent to a ~$875 purchase from _your_ customers.)

<comment><AUTHOR> You are right...about the affiliate program.

Also re: Amazon deriving value - you are right....I would need to find a way to demonstrate that this value does exist and show it to Amazon.

Because what I was thinking is targeting people promoting a new product (or some other launch). That way, they are in the 'building buzz' around that product/launch phase. I think it's a lot easier to quantify the buzz around a new product launch, than justifying the marketing expense of a regular marketing campaign.

Thoughts?</comment></comment>


There Is No Male-Female Wage Gap  - <AUTHOR> http://online.wsj.com/article/SB10001424052748704415104576250672504707048.html?mod=googlenews_wsj <comment><USER2> I always figured you would assume the market is in equilibrium, unless you can prove it isn't by e.g. evidence of intentional discrimination, that sort of thing. In an efficient market -- a market in equilibrium (I took economics a long time ago) -- everyone earns what their labor is worth. Any wage gap in such a situation is by definition still fair: everyone is getting what they earn.

</comment><comment><USER3> An Opinion piece in the Wall Street Journal isn't worth the electrons used to produce it. The Wall Street Journal specifically disclaims the truthfulness and factuality of anything in its Opinion section, and we ought to take them at their word - this is a propaganda piece, not intended to inform but to disinform.

This is just laughable:

<http://www.iwf.org/about/>

What that says, in disambiguated English, is that it's a propaganda house funded primarily by the Scaife and Olin foundations.

<comment><USER4> _this is a propaganda piece, not intended to inform but to disinform._

Can you dispute _anything_ in the opinion piece, or is your whole argument "Look, it's in the WSJ"?

</comment></comment><comment><USER5> So because there are more unemployed single or married men who have less education than single women with education the wage gap is closed? This is nonsensical.

The most laughable part of this is when they just throw out that single women make more than males. You might as well say "The cost of oranges and apples are relatively different if you compare orange juice to apple seeds"

Why'd they go with single women? Because married women, specifically those with kids, make a lot less money. I'd imagine if they only used black men without a high school education, there'd be an even greater pro-male wage gap.

Here's some good data to illustrate how complicated the wage gap and employment gap issues are and why overly simplistic stories like that are, well, embarrassing:

[http://www.nytimes.com/interactive/2009/11/06/business/econo...](http://www.nytimes.com/interactive/2009/11/06/business/economy/unemployment- lines.html)

<comment><USER6> He makes neither of the two assertions you attribute to him. He's saying the wage gap is closed because for single males vs single females, women make the same (or more). He doesn't compare single females to all males. The "wage gap" claim is that men and women make different money for the same jobs. It doesn't have anything to do with women with kids obviously making less money overall due to that affecting their career.

Not saying I agree with the article or think it pulls in the whole picture, but you are completely misrepresenting a lot of things.

<comment><USER5> The way I read it, SHE (Ms. Lukas, a woman and the author of the post) certainly is. See:

"Men have been hit harder by this recession because they tend to work in fields like construction, manufacturing and trucking, which are disproportionately affected by bad economic conditions. Women cluster in more insulated occupations, such as teaching, health care and service industries." (comparing without demographic isolation)

"The Department of Labor's Time Use survey shows that full-time working women spend an average of 8.01 hours per day on the job, compared to 8.75 hours for full-time working men. One would expect that someone who works 9% more would also earn more. This one fact alone accounts for more than a third of the wage gap." (comparing with demographic isolation, with no mention of wage differences between men with children and women with children)

Again, my point is that saying "men and women make X money for Y jobs" doesn't make much sense, and doesn't illustrate whether or not the wage gap is closed or not and more importantly, any subset of data can be compared with another subset of data to illustrate that it is or is not closed. The author here uses really simplistic arguments to make a case that isn't true.

The fact is, that if you leave out women with children and women who've only negotiated their salary once, then the wage gap doesn't look so bad. But throw in their first jobs and women with children, and it's significant.

<comment><USER6> Sorry I even checked and still misread the "Ms."

But isn't "men and women make X money for Y jobs" the only legitimate way to look at the wage gap? What other comparison makes sense at all? If not the above, then what wage gap are people complaining about?

Why bring women with children up? Is it not expected (in the statistical sense, not in the duty sense) that women with children will tend to have sacrificed some amount of career? Are you saying that a woman software developer makes more money for the same role as a woman software developer with a child?

<comment><USER7> _What other comparison makes sense at all?_

I don't endorse it, but comparable worth is popular.

[http://www.scu.edu/ethics/publications/iie/v3n2/comparable.h...](http://www.scu.edu/ethics/publications/iie/v3n2/comparable.html)

</comment></comment></comment></comment></comment><comment><USER8> Between the title and "WSJ.com" you can almost predict the entire article. One admits, however, mild surpirse that the author literally admits to only doing "a cursory review of the data," such is suspected but rarely explicitly confirmed.

<comment><USER9> Not to mention stupidity like this: "hoice of occupation also plays an important role in earnings. While feminists suggest that women are coerced into lower-paying job sectors, most women know that something else is often at work. Women gravitate toward jobs with fewer risks, more comfortable conditions, regular hours, more personal fulfillment and greater flexibility. Simply put, many women—not all, but enough to have a big impact on the statistics—are willing to trade higher pay for other desirable job characteristics."

On one side, there's a long history of studies/research showing coercion of women into certain job sectors. On the other hand, this author says, "most women know something else is often at work". So yeah, about par for the wsj.

</comment></comment><comment><USER10> I'd love to see a comprehensive study of male/female wages within specific industries, because I think that would be much more informative on the relative biases specific to industries, but this link isn't it. Instead, this is an opinion piece that does not take its sources seriously, and instead uncritically hand-waves away what is quite possibly a legitimate concern.

<comment><USER11> I would have liked to see more citations and numbers, but what specifically did you think was hand-wavy?

</comment></comment><comment><USER12> I lol'd.

Headline is stating something completely different from the study.

Even within the study.. how about a study of wage gaps by industry rather than within the universe of "22-30 year old urban workers"? Maybe there are more male fry cooks and more female advertising execs in that age group?

When feminist groups talk about a wage gap, they talk about different pay levels for the same job, and as far as I'm aware that still exists.

</comment><comment><USER13> A plausible explanation I read about the wage gap (if there is any, contrary to this headline) blames it on the fact that wages are bounded from below (minimum wage) but not from above. If you have two groups that would normally have the same average but one is more dispersed, such a truncation on one side will lead to the gap.

</comment><comment><USER14> There hasn't been a massive wage gap in the software engineering field since at least 1995.

<http://www.nsf.gov/statistics/issuebrf/sib99352.htm>

If you combine the premise of this WSJ article with the above data from the NSF, can we say that men now make less than women?</comment>


Diagrams that changed the world - <AUTHOR> http://www.bbc.co.uk/news/magazine-11798317 <comment><USER2> An article about diagrams, missing most of the diagrams.

Takeaway: Florence Nightingale was responsible for the Pie Chart.

<comment><USER3> Technically, it's not a pie chart, it's a _rose diagram_ or _polar area diagram_. More info here:

<http://vis.stanford.edu/protovis/ex/crimea-rose.html>

</comment></comment><comment><USER4> The article is interesting, but the layout is very confusing. I was quite confused when I saw (what turned out to be) a sidebar about the Pioneer plaque in the middle of the section on the Argand Diagram. The section heading "Diagram of Deaths" also seemed to be misplaced, and I was confused about the link between complex numbers and death, till I got to the next section about Florence Nightingale and pie charts.

</comment><comment><USER5> How is the periodic table not in there?</comment>


Making a Rubik's Cube studio seem effortless - <AUTHOR> http://www.37signals.com/svn/posts/1002-making-a-rubiks-cube-studio-seem-effortless

<comment><AUTHOR> Thought this had some neat ideas for making a studio not feel like a closet. I'm tempted to put my bed under a platform like this and put my desk/chair on top of it.

Anyway, maybe handy for starving bootstrappers out there living on ramen.</comment>


Why my books are no longer for sale via Amazon - <AUTHOR> http://www.tobiasbuckell.com/2010/01/31/why-my-books-are-no-longer-for-sale-via-amazon/

<comment><USER2> _But Amazon pretty much, right now, has a monopoly on online bookselling. They're huge. As a result, this becomes nearly a form of de facto price fixing._

This is not a reason to prefer Macmillan over Amazon. Amazon might arguably have something that is almost a monopoly on online bookselling, allowing them to de facto dictate the price of books purchased online (though not offline, except to the extent that price wars dictate that competitors charge less).

Macmillan has an _actual_ monopoly, guaranteed by Congress, on producing Macmillan books. Macmillan is telling Amazon to engage in _actual_ price fixing. Macmillan has told Amazon that if Amazon does not set their prices to _exactly_ what Macmillan says they should be, when Macmillan says this should be, Macmillan will use its _actual_ monopoly to forbid Amazon from distributing their books.

Macmillan is doing this to avoid channel conflict -- i.e. establish actual price fixing backed up by the power of law to forbid there to be price-based competition among the various outlets who sell their books.

It turns reality on its head to portray Macmillan as the pro-consumer champion of a vibrant, competitive market here.

<comment><USER3> At the same time, it also turns reality on its head to portray Amazon as being pro-consumer in this case (where's the good old Amazon that helped force Apple out of music DRM by launching Amazon MP3?). In this struggle, it seems that both sides are trying to price-fix, but to different prices, and without much concern for either the consumers or the authors that are so directly affected by their falling-out.

Other good perspectives:

* [http://scienceblogs.com/principles/2010/01/the_amazon_kerfuf...](http://scienceblogs.com/principles/2010/01/the_amazon_kerfuffle.php)

* [http://whatever.scalzi.com/2010/01/30/a-quick-note-on-ebook-...](http://whatever.scalzi.com/2010/01/30/a-quick-note-on-ebook-pricing/)

* <http://malkingrey.livejournal.com/577241.html>

<comment><USER4> The difference is that Amazon is trying to price-fix a _ceiling_ , whereas Macmillan is trying to price-fix a _floor_.

<comment><USER3> The question of which is ultimately better for the consumer is non-trivial to my mind. Not to mention that, because publishers tie author royalties to the physical cost of production, the authors stand to lose a lot in this struggle.

<comment><USER5> How can any price greater than 0 be the best price for a _consumer_.

<comment><USER6> If something won't be profitable to make, it won't be made. The best price for the consumer is the lowest price at which the item desired by the consumer can still be produced.

<comment><USER5> If something can't be made it's price is infinity. If it's custom but possible to create it's price is high. If it's mass produced it's price drops. If it's pubic domain it's free.

PS: Saying people will not make it at some price just means it's actual price is higher.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Bing cache (Google didn't have cache):

[http://cc.bingj.com/cache.aspx?q=why+my+books+are+no+longer+...](http://cc.bingj.com/cache.aspx?q=why+my+books+are+no+longer+on+sale&d=246522576906&mkt=en- GB&setlang=en-US&w=5cdaaa1b,c8bd6c71)

<comment><USER8> Always makes me smile when people apologize for using Microsoft when they (in theory at least) could have used someone else. (this is general, nothing personal intended ximeng)

</comment></comment><comment><USER9> I haven't really been following this situation, and I'm far from an economics expert, so I have a few questions for anyone who understands this stuff better than I do:

First off, I'm not quite sure about what the issue is. I seem to remember that Amazon said they wanted a hard ceiling, no books selling for >$10. The article claims that what the publisher wants is the ability o change book prices based on demand. Correct me if I'm wrong, but I thought that all Amazon was saying was "You know the $10-15 range you wanted to price eBooks at? You can't do that."

Second is more of an economics question. The article mentions Price Fixing in relation to gas prices, and how fixing the prices caused gas prices to go up due to hoarding. How does that work in a Monopoly, where the publisher not only controls the only source of the books, but can also make more of a single work at a negligible cost? (Yes, I understand that there is an outlay at the beginning, but after that the cost of producing additional copies of the eBook is nearly non-existent. You don't have to keep a stock of the eBooks that you can potentially lose money on, you don't have to pay in advance to have each copy produced. This changes things, but I don't know how.)

<comment><USER10> > I thought that all Amazon was saying was "You know the $10-15 range you > wanted to price eBooks at? You can't do that."

What do you mean by "all Amazon was saying"? That's the crux of the issue: whether publishers will allow themselves to be told by Amazon that they cannot sell over a certain price in their market, or whether they will be allowed to sell at whatever prices they choose.

It's a fundamental question about how the online book market, so dominated by Amazon, will work.

Your second paragraph doesn't have a clear question; what exactly do you want to understand? I'll try anyway:

The marginal cost of producing eBooks doesn't really effect the price-fixing problem. The OP's point is that publishers need the flexibility to try out pricing schemes on the Amazon marketplace to discover what works, but Amazon won't let them. Ultimately, he claims, this will lead to worse results for the consumer because Amazon will be an inefficient marketplace due to the inability of the publishers to recoup costs on books with high initial prices which they can then follow with low prices later.

<comment><USER9> The "All Amazon was saying" is because, reading the article with little-to-no outside information about the situation, the author makes it sound like Amazon isn't setting a price ceiling, but an absolute price. I was trying to verify that that was the case, since the article seems to be saying that the only price point will be $9.99.

I seem to remember a price point being thrown around in one of the threads here that The Publisher/Author share 30% of the price of the book, the distributor takes ~40%, and the marketplace (Amazon, bookstore) takes 30%. From what I've read from these posts, it seems like the Publishers were fighting over the wrong thing entirely. If Amazon is acting like both Distributor and Marketplace, they currently take 70% of the sale price of an eBook. Why are Publishers arguing about the total price, rather than their cut of it?

Looking at the recent move, Amazon now offering 70% to the publisher, with the requirement that they get the lowest price point, and that that price point is less than $10, it seems like that should have been what the publishers were fighting for the entire time. If both distribution and selling of the book are being by the same company, for the same effort as just selling the book, there's no real reason for them to be double-dipping and taking that huge of a portion of the sale price.

</comment></comment></comment><comment><USER11> His ebook costs breakdown is pretty revealing. $3000 for an original cover? I hardly realize my Kindle books have covers, since they auto-open to the first page. $1000 for a designer? Use a standard font and template.

Book publishers have crazy overheads, with authors typically receiving only 10% of the cover price. Editors and proofreaders make sense, but it's hard to see how everything else adds value. The current publishing model seems to be a big part of the problem here.

<comment><USER12> The Kindle book cover would also probably be used for the Amazon thumbnail image, as well as other marketing purposes. Standard template sure, but little things do make a difference, and tweaking is a smart thing to do.

There will be room for quality design in e-publishing, just like there is in print.

$3000 would be a lot for self- or niche-publishing, but if I were making a mass market attempt, I could see spending that much. It makes a difference.

<comment><USER11> Marketing is worth spending money on if it brings in more money than you pay. I'd agree that it might be worth it if you're shooting for a bestseller, but the author lays it out as an unavoidable expense.

I love books, and being a writer sucks as a way to make a living even for very talented people, but the solution has to involve radical change to the publishing model. Big publishers seem to take a massive cut without improving the quality of the end result. I'm a big supporter of authors looking at alternative models, like Peter Watts with free downloads in the hope of donations:

<http://www.rifters.com/real/Blindsight.htm>

</comment></comment></comment><comment><AUTHOR> Submitted for having a pretty good explanation of the economics of ebook publishing (through major publishers), and discussion of the recent Amazon- Macmillan dispute.

<comment><AUTHOR> Specifically, the big point I thought interesting: at the moment ebooks seem to have a pretty small demand which falls off fast, so they sell more like limited editions than mass-market. This _might_ make it difficult to justify releasing to ebook without higher prices.

(I don't have a strong opinion on who's right or wrong here, as I can argue it from both sides. But I'll admit I generally sympathize more with authors than anyone on this, and they seem to have the least amount of control in the publishing process.)

</comment></comment><comment><USER13> >Right after I was laid off the $4 difference between $9 and $14.95 was a bit much.

I think he means the $6 difference.

</comment><comment><USER14> Amazon real issue may not be the price issue but that Amazon isn't dictating what the price shall be, someone else is. Amazon may think that if they loose control over price, they loose control over their site.

</comment><comment><USER15> surprised to see no mention of books on bingo :-)</comment>


Continuous Integration for Android Applications - <AUTHOR> http://chairnerd.seatgeek.com/continuous-integration-for-android-applications/

<comment><USER2> Small thing: I think you mean the Play Store, not the App Store

<comment><AUTHOR> Good catch. I'm updating the post :)</comment></comment>


Instructure Launches To Root Blackboard Out Of Universities - <AUTHOR> http://techcrunch.com/2011/01/31/instructure-blackboard-universities-coates/

<comment><USER2> Every single student at my university would cheer for joy upon hearing this news. Blackboard is as stunted a piece of development as they come and additionally is an incredibly expensive piece of software, especially considering the quality.

The user experience is so bad that many course lecturers make their own site or just avoid using websites at all. The only question I have though is how do you pitch it to universities when the people who suffer under the product usually aren't the ones making the purchasing decision?

<comment><USER3> As part of the deal, include "training" for those making the decisions, and make sure they know its at a nice resort in <insert seasonal vacation destination>.

</comment></comment><comment><USER4> As someone who was suckered in Blackboard backend administration and still haven't managed to get free I decided to give this a spin.

This is my impression after 30 minutes of fumbling with it:

The look for end-users is clean and feels great. Way better than Blackboard for end-users. Canvas seems to promote a more self-service adhoc approach which would be attractive for small installs.

Unfortunately the admin interface seems non-existant.

How do I sanely create and populate thousands of courses?

User admin tools are primitive. Where is the ability for the administrator to change a users password? How can I see what classes they are enrolled in, what their roles are, etc? Can the administrator globally disable a user for non- payment without deleting?

How do faculty roll the content from one course into multiple sections and then roll that content over to a new course next semester? No anti-cheat integration?

Anyway those are the concerns I was able to find in the first 30 minutes.

It looks undeployable here which is a shame. Here is to hoping it gets better soon.

Edit: I just spotted the course copy functionality. Scratch that one off the list. Still not impressed with the central admin tools exposed in the UI. Our faculty would prefer not having to populate the user lists in their courses, etc.

Edit 2: Thought I'd be done playing with it but not yet. I can't get over how awesome the end-user UI is. As I just sent off to a co-worker: "The end-user UI is stupendously good compared to Blackboard. Stunningly good in comparison. It's like taking the best of Facebook and turning it into an LMS. Hide this from users."

Definitely has my interest.

<comment><USER5> Devlin from Instructure here. It's great when someone actually takes the time to dig into the application and give some real feedback. Thank you.

From the sound of things I think you are using one of our free-for-teachers accounts, which gives you complete control over a course and not to the administrative tools that an admin would have. This is why it feels self- service and adhoc for small installs, because it is :)

We can integrate with a variety of SIS systems in batch/real-time for auto- populating thousands of courses. You can integrate with auth systems like LDAP and SAML too. We have features for migrating content from other vendors and also from semester to semester.

I'm happy to chat on the phone, answer questions here or you can set something up by emailing me email@example.com .

</comment></comment><comment><USER6> OK, despite having read the article, the thread, and working for a major US university, I still have no clue what this Blackboard thing does, or what _LMS_ stands for (though I have learned that everybody hates Blackboard). Can someone explain what class of product we're discussing?

<comment><USER7> LMS = Learning Management System

Blackboard hurts Universities because it's overly expensive and unintuitive for the price.

This new site looks great. I worked on <http://moodle.org/> back in the day which is a great opensource alternative. It's now deployed in most if not all California State Universities. This is a great space to work in.

<comment><USER8> _It's now deployed in most if not all California State Universities._

Most of the CSU campuses are still using Blackboard. MOODLE is used by around 6 of the 23 campuses and is being piloted by a few others.

<comment><USER7> this article says different.

[http://campustechnology.com/articles/2008/11/csu-system- adop...](http://campustechnology.com/articles/2008/11/csu-system-adopts- moodle-lms-services.aspx)

although I think <http://www.moodlerooms.com/> is slightly different.

</comment></comment></comment></comment><comment><USER9> Best of luck to them. It's quite difficult to convince faculty to switch over from tools they are comfortable using -- especially porting over their existing lessons and modules. Focusing on the UI is definitely the right approach as Bb is clearly lacking in this space. Regardless, the LMS market is long overdue for a shake up.

On another note, many universities already run and contribute to the open source Sakai LMS. It's a Java-based LMS developed and maintained by a consortium of universities. A small to mid-size university can get it running very quickly as a pilot on 1 or 2 servers using Tomcat and MySQL. It's easy to customize and it integrates seamlessly with existing university portals via CAS. Throw in a SAN for user files and it's a very powerful, scalable and low- cost LMS option that is much more usable than Bb.

<comment><USER10> I have a professor who uses Sakai (the university as a whole used Blackboard, but switched to Moodle, another open source option, this year). Sakai may be better than Blackboard, but that's not saying much. The ui is still terrible and it's filled with inconsistent and confusing behaviors. I've no idea what it's like from the instructors perspective, but as a student it's barely usable.

Moodle is about the same as Sakai in this regard, but Blackboard is simply terrible. This is clearly a market that needs to be shaken up, and I hope these guys are the ones to do it.

<comment><USER9> I agree that there are some UI issues in Sakai. I particularly dislike how the back button does not work as expected due to the way the sessions are maintained. However, with the source being available, it is only a matter of time before improvements are made.

</comment></comment></comment><comment><USER11> Any bets on how long before they are sued by Blackboard?

<comment><USER12> I asked pg at startup school about doing an edtech startup, and his answer was something like "Well, schools move to slowly to ever get traction, but if you ever did get traction, Blackboard would sue the crap out of you immediately."

(That said, I'm still planning an edtech startup. Best of luck to instructure!)

<comment><USER13> Does Blackboard have some patents in the space that they leverage when suing? On what grounds do they sue?

<comment><USER14> Yes, an analysis here: <http://mfeldstein.com/blackboard_patents_the_lms/> The executive summary is "any groupware that involves student interaction."

</comment></comment></comment></comment><comment><USER15> My college uses Blackboard. Well, "uses" is a strong word... We have Blackboard installed on the intranet, students generally avoid using it.

</comment><comment><USER15> I though Moodle was already doing that? <http://moodle.org/> Although, they probably don't have a Tank Destroyer, or even one flamethrower :-)

<comment><USER16> We should buy them one and send them to Blackboard HQ.

edit: I should probably disclose that my employer uses Blackboard and my brother-in-law sells moodle services.

</comment></comment><comment><USER17> I think any serious competitor is going to have a hard time since Blackboard has been known to sue on their ridiculous patents... their legal history is sickening...

<http://en.wikipedia.org/wiki/Blackboard_Inc>.

and

<http://www.downes.ca/blackboard_patent.htm>

<comment><USER18> From getting to know the guys at Instructure over the years I'm sure they have considered everything that might be coming down the pipe. If anybody can navigate the waters and succeed competing with Blackboard, it's them.

</comment></comment><comment><USER19> It'll be welcome. It's a long time since Blackboard was the thing that actually saved us from <shudder> Lotus LearningSpace.

</comment><comment><USER20> I wish them well! There's definitely room for innovation in this space.

One thing that bothers me, though (and this is based on a quick run-through of their demo, so I'm prepared to be set straight if this is not correct):

It looks like they've made the same mistake as Blackboard, WebCT, etc. by making resource type (files, assignments, discussion forums, etc.) the primary organizational method rather than organizing by instructional unit.

It may make good sense from a programming perspective to put all the discussion forums together, all the downloadable files together, all the external web links together, but that's not the mental model that teachers use. To a teacher teaching (e.g.) American history, the PDF of the Gettysburg Address and the PDF of the Declaration of Independence don't "go together". Instead, the Gettysburg Address "goes together" with the discussion forum on the American Civil War and the link to the National Park Service page on the Battle of Gettysburg.

Most teachers would prefer to build the Civil War unit in one place, rather than clicking back and forth between the file section and the discussion forum section and whatnot.

Canvas does have a "Module" type that lets you do this, more or less, but it's not the primary schema for organization.

If they want this system to have maximum comprehensibility and usability for teachers and students alike, I'd recommend that they promote their Modules to the top level, and make them the primary organizational method for the system.

Moodle gets this right -- few of the others do. When you start a new Moodle course, you see a list of weeks (or topics) to which you can then add files, discussion forums, web links...on an ad hoc basis. While you CAN click on links in Moodle to see all the files in one place, all the assignments in one place, and so on, in practice no one ever does that (except maybe at the beginning of the semester when the students click on the assignments link to make a note of all the due dates).

You don't have to copy Moodle slavishly, but _please_ don't copy the organizational schemas of Blackboard and WebCT. They just plain suck.

</comment><comment><USER21> Blackboard is a terrible piece of software. This should be viewed as a charity mission to rescue students from the ineptitude that is Blackboard.

<comment><USER22> Agreed. I work tech support here at my university, and the calls received about Blackboard are ridiculous and are always no fun to troubleshoot. I like the company name, 'Instructure', but where does 'Canvas' come into play? Didn't we just see that with 4chan's new shindig?

<comment><USER23> I was wondering the same thing, and also made the mental connection with the 4chan Canvas earlier today. Can anybody clear this up?

</comment></comment></comment><comment><USER24> My school has been primarily blackboard, but some of my classes were actually ported to canvas at the beginning of the spring term. I have to say canvas is a lot friendlier and actually a joy to use. I dont know if its how my school has Blackboard signed up, but just the fact that I stay authenticated for longer than 10 minutes is a nice step up.

Most of the papers teachers post open up using scribd which is so much easier than dealing with a docx file or pdf.

I think Instructure is taking a step in the right direction, and I hope they can make through all of the crap Blackboard and Universities will give them.

</comment><comment><USER25> I hope they are successful.

Not sure I would have used the slide about Napoleon's march into Russia though.

<comment><USER26> Yeah, I didn't get that either. It seemed to imply that Instructure was about to get their ass handed to them as Napoleon did on his ill fated venture. Seemed contrary to the tone of his post supporting the startup.

</comment></comment><comment><USER27> We need more things called canvas. At least this one looks more useful than the last one.

</comment><comment><USER28> This quote is from the Technology page on the instructure.com website, "In the 1990's it was Java and in the 2000's it was PHP and .NET. The platform for Web 2.0 and beyond is Ruby."

Is PHP really considered old technology? FaceBook and a ton of other new and relatively new startups, including fflick.com use PHP. I am working on a startup and I certainly want to stay ahead of the curve with the latest technology; I have decided on PHP—because I am most proficient with this over the others. I know Ruby is like the hot, new girl right now, but that does not necessarily make PHP and Java old technologies. Am I wrong? Must I go after the hot new girl to keep my mojo?

</comment><comment><USER29> Godspeed.

Blackboard is an abomination.

</comment><comment><USER30> For my computer architecture class at Berkeley, they decided to give Bb a try. It lasted about three weeks before they gave up and reverted to the tried and true command-line scripts for submitting assignments and viewing grades. Hopefully canvas will fare a little better.

</comment><comment><USER31> <https://www.piazzza.com/> a free alternative, that I think is here to improve in class discussion. hell with blackboard?

<comment><USER32> Over 1/2 of students at Stanford use Piazzza and they are rapidly spreading throughout MIT, Harvard, Princeton, and many more campuses.

</comment></comment><comment><USER33> The program makes sense, if they have a decent approach to the university admins and get a following, I see them expanding fairly quickly.

</comment><comment><USER34> The flame thrower is his, but how about the operator? Double hit points if she is also the M-18 operator...

</comment><comment><USER35> How expensive _is_ Blackboard?</comment>


MobX Delorean – Time travel debugging for MobX-React applications - max-marcus Delorean is an intuitive, in-app debugger, enabling developers to gain insight into their MobX-React projects with only two lines of code. Time travel functionality allows users to step back and forward through a log of their application's state, replicating MobX observable transactions. Paired with singular undo and redo actions, Delorean makes it easy to pin point exactly when and why a bug occurs. Our next update will include multi-timeline time travel and a visualization of your application's MobX data flow.<p>https://github.com/BrascoJS/delorean <comment><AUTHOR> Obligatory HN "naming clash!" nitpick: there's an existing Flux library called Delorean ([https://github.com/f/delorean](https://github.com/f/delorean) ), although it's been overtaken by Redux.

Still, looks reasonably interesting. (As a Redux maintainer, I'm also required to point out that Redux was built around the concept of "time-travel debugging" in the first place.)

</comment><comment><USER2> This will be so helpful to track my steps while debugging! Very nice.</comment>


22 Things You Should Give Up If You Want to Be a Successful Developer - <AUTHOR> https://iamdi.dev/22-things-you-should-give-up-if-you-want-to-be-a-successful-developer/ <comment><USER2> These are all good points but the one I wished people would follow all the time is number 10. I've had to debug code that the original programmers thought was clever and short but every time I've had to spend extra, wasted, time deciphering it. Clever code does not equal good code. The goal should be simplicity.

10\. Give Up Writing Smart Code "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."

— Brian Kernighan

<comment><AUTHOR> By default, it's difficult to follow the rule of writing simple, readable code. We want to show how smart we are, how we can write something that others cannot do. It is in our nature.

Over time, when we gain experience and self-confidence, we begin to appreciate the simple and understandable code.

Another, more difficult, way is to consciously apply the "avoid smart code" rule and follow it every time you solve a problem with code</comment></comment>


MORE FEATURES WON'T SAVE Your PRODUCT - <AUTHOR> http://blog.mojotech.com/post/44224044723/more-features-wont-save-your-product

<comment><USER2> for Nick Kishfy:

I'd be curious what you think of Balanced's product development strategy:

We have an undisputed product leader (our CEO), but we got so much demand for a feature (ACH debits) that we built it, not exactly as our customers wanted, and after originally telling them know. Essentially, we used an issues thread and a public repo on Github to test our assumptions with our developer community. I'd be curious to hear your thoughts. You can read the whole thing here: <https://github.com/balanced/balanced-api/issues/2>

I also left this comment on the original blog post: [http://blog.mojotech.com/post/44224044723/more-features- wont...](http://blog.mojotech.com/post/44224044723/more-features-wont-save- your-product#comment-815923080)</comment>