United Airlines offers air miles as bug bounty reward - <AUTHOR> http://www.zdnet.com/article/united-offers-air-miles-as-bug-bounty-reward/

<comment><USER2> The major discussion was over here: [https://news.ycombinator.com/item?id=9548053](https://news.ycombinator.com/item?id=9548053) (united.com)

Other submissions include:

[https://news.ycombinator.com/item?id=9551237](https://news.ycombinator.com/item?id=9551237) (nbcnews.com)

[https://news.ycombinator.com/item?id=9551000](https://news.ycombinator.com/item?id=9551000) (united.com)

[https://news.ycombinator.com/item?id=9548330](https://news.ycombinator.com/item?id=9548330) (techcrunch.com)

[https://news.ycombinator.com/item?id=9546659](https://news.ycombinator.com/item?id=9546659) (united.com)

[https://news.ycombinator.com/item?id=9545689](https://news.ycombinator.com/item?id=9545689) (thestack.com)

[https://news.ycombinator.com/item?id=9544458](https://news.ycombinator.com/item?id=9544458) (tripwire.com)

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


IBM's Newest Invention Mimics the Human Brain on an Atomic Level - <AUTHOR> http://www.thewire.com/technology/2013/03/ibms-newest-invention-mimics-human-brain-atomic-level/63412/ <comment><USER2> Cargo Cult Mentality.</comment>


Should humanity keep schtum about its existence? - <AUTHOR> http://www.economist.com/news/science-and-technology/21644127-should-humanity-keep-schtum-about-its-existence-yoo-hoo-were-over-here <comment><USER2> Yes.

The most feasible interstellar communication is extermination, as you are just sending a starship and not decelerating it on the other side.

The killing star and the forge of god are science fiction and let's keep it that way.</comment>


GhostBSD 1.5 Screenshots - <AUTHOR> http://easylinuxcds.com/blog/?p=3935

<comment><USER2> Okay it boots to GNOME, that's always a start... for the uninitiated, what is GhostBSD, how is different from *BSDs, and why would anyone want to go through a "tough" install to use it?</comment>


Saluting Walt Mossberg's career - <AUTHOR> https://qz.com/1042984/recode-whatever-walt-mossbergs-next-adventure-may-be-tech-journalism-owes-him-everything/ <comment><USER2> I hate to be a hater, but I was never too impressed with Mossberg's reporting. My opinion is that his platform was stronger than his content. I suppose my claim is Mossberg was the New York Times Best Seller List of tech writing.

<comment><USER3> Any odds you could name a few journalists whose reporting you find more impressive than Mossberg's?

<comment><USER4> From a technical pov Anand Lal Shimpi perhaps? He didn't kill it on the prose or suave approach, but on the technical detail and exactitude.

<comment><USER5> The CPU guy from Ars Technica was extremely good as well.

<comment><USER6> He is, but it seems silly to compare him to Walt Mossberg. They do very, very different kinds of tech journalism.

</comment></comment></comment></comment></comment><comment><USER7> A journalist among journalists.

He was probably Steve Job's most respected tech journalist. That's saying a lot. When the early iPhones launched, only a handful of journalists had a review device; Mossberg was one of them.

As opinionated as Jobs was, Mossberg was one of the few people where he would not criticize nor argue when Mossberg had feedback for Apple products.

<comment><USER8> Mossberg and Jobs were pretty close friends in Job's later years it seems.

<comment><USER9> Here's Walt Mossberg (nee Mosspuppet) interviewing Steve Jobs. Definitely NSFW. Tempus fugit.

[https://www.youtube.com/watch?v=Sr4pPAn-m5g](https://www.youtube.com/watch?v=Sr4pPAn-m5g)

<comment><USER10> By the way, the male equivalent of "née" that you're looking for is "né".

<comment><USER9> I didn't know there was a female/male distinction. In my defense, Wiktionary says: _In the original French, the masculine form né should be used when the subject is masculine. In English, this distinction is not always followed._

But even ignoring gender I still kind of screwed it up. I was really going more for "a.k.a.".

And I'm quite sad that so many downvoted the Mosspuppet. I really loved that character. He really added some fun to the otherwise somewhat stuffy Walt Mossberg.

<comment><USER11>
      And I'm quite sad that so many downvoted the Mosspuppet.

I bet most people thought you were coining a derogative term for Mossberg with the implication he was a puppet (mouthpiece) of Jobs/Apple. Not a literal puppet character. (I know I did.)

</comment></comment></comment></comment></comment></comment><comment><USER12> I was confused that the huge photo at the top of the article is not of Walt Mossberg.

<comment><USER13> The original version of the article has an actual picture of Walt, and also the "majestic, elegantly curved Millau Viaduct with its cable stays spread like sails":

[https://mondaynote.com/a-salute-to-walt- mossberg-e3c562288f0...](https://mondaynote.com/a-salute-to-walt- mossberg-e3c562288f03)

</comment></comment><comment><USER14> Wasn't there a story some time ago about the WSJ having run a hit piece at Apple's/SJ's behest, but using a different reporter's byline so as not to besmirch the Walt Mossberg brand? Apologies if I am misremembering...</comment>


You might not need Redux - <AUTHOR> https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367#.8uj9cpd6i <comment><USER2> It's sad that a post like this is needed... I wouldn't consider doing a modern spa/webapp of even medium complexity without a state machine similar to redux or redux itself. In a team setting it allows you to establish workflows that are consistent and easier to understand.

Also, your reducers and action creators don't need to live together, I tend to import from the base directory into feature based structure/directories. A given directory/feature does not need to contain all of actions(creators), reducers, dumb/smart/pf components and sub-components. But by organizing data/handlers into features and components into features, sometimes in the same directory, it makes it easier to find/discover, though it may seem chaotic at first. Imho, it's better than having to traverse through a deep tree to go from a component to a reducer, etc.

I really like redux, and I'm personally inclined to lean on it, even if it makes the code slightly more complex, that complexity is consistent and easier to follow than just about everything else I've seen.

That said, if you have state that doesn't need to be persisted, then go ahead and keep that at a component level. You can have a higher level component with your actions and setstate, then pass them down to more simple components, or pure view functions.</comment>


Show HN: Add S3 Capabilities to Azure Blob Storage Using Minio - <AUTHOR> https://blog.minio.io/add-s3-capabilities-to-azure-blob-storage-using-miniofirst-of-all-why-cant-we-use-azure-api-73a61952294a <comment><USER2> S3Proxy gateways to Azure as well as Backblaze, Google Cloud, and Swift:

[https://github.com/gaul/s3proxy](https://github.com/gaul/s3proxy)

<comment><USER3> It's Java though. Minio runs on my rpi0 in an ~80Mb docker container.

<comment><USER2> Java hate is unnecessary. S3Proxy has low memory usage and a similar image size.

<comment><USER4> Perhaps a better response would be outlining how much memory it actually takes? This way people can decide (i.e. if they care deeply about the memory footprint)

<comment><USER5> I ran the docker container and it uses 56.97MiB without any requests going through.

        docker run -d --publish 80:80 --env S3PROXY_AUTHORIZATION=none andrewgaul/s3proxy
        docker stats

</comment></comment></comment></comment></comment><comment><USER6> The great thing about using Minio in front of Azure is that Minio supports pre-signed url generation whereas (as far as I know) Azure does not.

<comment><USER2> Azure shared access signatures provide the same functionality as S3 pre-signed URLs with a few extra features:

[https://docs.microsoft.com/en- us/azure/storage/common/storag...](https://docs.microsoft.com/en- us/azure/storage/common/storage-dotnet-shared-access-signature-part-1)

</comment></comment><comment><USER7> The idea behind using S3 or other PAAS is to not run and maintain your own servers. While minio is great if you want to run your own S3, depending on it to use a different PAAS is not the most convincing use case

</comment><comment><USER8> Serious question: why? I mean, maybe as a really, really lazy hack if you've got free azure credits and don't ever plan on actually supporting Azure in your codebase. But that seems like a very, very corner case. Would anyone ever actually do this for something production? Why wouldn't you just write native azure support, it's not THAT difficult.

<comment><USER9> I probably use 20-30 apps that support using S3 that I can think of right now. Not all of them are maintained by me or even open source. Other than a proxy, it's impossible for me to change some of them.

In terms of use case: my company has a customer that requires us to locate an instance of our product in Azure, and some of that infrastructure is much easier to move with a compatibility layer.

You might as well ask why there are any standards in software and networking at all, as each new protocol or library isn't THAT difficult to support.</comment></comment>


Show HN: A site for devs that just want to RTFM and learn about Bitcoin - <AUTHOR> https://bitcoindocumentation.org/ <comment><AUTHOR> Hi HN. I built this because resources to learn more about building with Bitcoin are scattered throughout the web and hard to find. Rich content for technical people to consume is buried within websites, fragmented and hard to pry out of places like Stack Exchange (unless you know what you're searching for). For example, on [https://bitcoin.org](https://bitcoin.org), one needs to dig in through the dropdown menu, and then navigate to a series of pages to get to material. On [https://bitcoincore.org](https://bitcoincore.org), it's a similar process. So, with that in mind - I've been working with another contributor, Cornelius Schumaker and have put together a vanilla, purely technical version of Bitcoin documentation - it's completely distilled so that a person with a technical or engineering-related background can dive right in and get started with Bitcoin. Thinking there is a lot of opportunity here to do all kinds of extensions to it, how-tos, readmes, more guides, faqs, etc.

The goal is to make this a one-stop shop for all things technical to help people who already have engineering backgrounds, get started developing with Bitcoin.

If anyone has any questions or feedback, please let me know. Thanks. :)</comment>


Tipping Etiquette Around the World  - <AUTHOR> http://www.mint.com/blog/goals/tipping-abroad-03022011/

<comment><USER2> Not a good chart. I live in Europe. I have lived in France and Germany. Both in those coutries tipping is not very common. You only tip when you are having a really fancy dinner with loads of people. In states you tip everything and everyone... which is crazy.</comment>


Can GLSL macro expansion do this? - <AUTHOR> http://stackoverflow.com/questions/10467672/can-glsl-macro-expansion-do-this

<comment><USER2> I wonder what are the odds that the OP has benchmarked both f * f * f * f * f and pow(f, 5) and found the former to be faster in his application?

</comment><comment><USER3> How is this news?</comment>


Extreme imaging using cell phones: SeeInTheDark [pdf] - <AUTHOR> http://graphics.stanford.edu/talks/seeinthedark-public-15sep16.key.pdf <comment><USER2> Nice PDF. Some cool new stuff, smart decisions & remarks (noise, hotpixels, matching frames, etc).

If you have an iOS device, check out the app Average Cam Pro[1]. I've had it on my iPad for several years now. It does an awesome job taking noise-free, detailed pictures (as long as you don't hold it in your hand) by taking up to 100 pictures and merging them. You can adjust exposure etc. after the fact. Great stuff.

I have yet to find a good replacement for my Android phone. The closest thing to [1] is Multiple Exposure Camera [2] which has a terrible interface and no exposure setting, but some other nifty settings to remove moving objects etc. (note: just don't use the 0s interval or it crashes)

[1] [https://itunes.apple.com/us/app/average-camera- pro/id4155778...](https://itunes.apple.com/us/app/average-camera- pro/id415577873?mt=8)

[2] [https://play.google.com/store/apps/details?id=com.conslazy.m...](https://play.google.com/store/apps/details?id=com.conslazy.multipleexposurecamera&hl=en)

<comment><USER3> I just installed average camera pro. Very blurry. Not useful for indoor photography. Does not allow for adjustment of the shutter speed. Don't buy.

It's Nothing like what the paper describes.

<comment><USER2> Operator error. Like I said, it's not for handheld use (the only way to get blurry shots).

Correct way:

\- Settings: Set the number of shots to 32 or higher. 1s interval. 3s pre- start timer

\- Point at scene. Lean it against an object (don't touch/move) or mount on a tripod.

\- Select exposure/focus/whitebalance with longpress (I select a light part of the scene, exposure/gain can be adjusted upward afterwards).

\- Lock exposure/focus/whitebalance (could be an L in the middle, or text on your screen left, boldface is locked in)

\- Shoot.

\- After it's done (don't touch!) adjust the exposure if needed.

====

If you want even higher quality images, you can subtract banding noise (also mentioned in the PDF by the way).

In order to get the banding noise image for your camera:

\- set shots to 128, delay 5 seconds

\- point lens at light source (e.g. on table, don't move)

\- hit shoot, put piece of white paper over the lens

\- wait ~2mins (till it stops shooting).

\- Select N in middle, "save image as noise fingerprint".

Then take another shot of a scene. Once final pic shows, hit N, now say "remove banding noise".

</comment></comment></comment><comment><USER4> That was a great read, back in the early 80's at the Image Processing Lab at USC there was a project to turn, what was then, a new "CCD" imager into something that could collect images that were useful for image analysis. At the time these "TV" cameras were equivalent to a really low end web camera. What we came up with was basically the first half of this talk, taking frame after frame and integrating it into the frame buffer with a filter function. Sad that I can't find the technical reports in Google Books.

</comment><comment><USER5> Very impressive! I have an app on my android that follows the same basic idea (accumulate frames) but doesn't come anywhere near this.

Unfortunately the author, in a reply to a youtube comment, stated that this is work he did for Google and doesn't know if the company has any plans for this.

<comment><USER6> He's Marc Levoy and he knows Google's plans very well; he just can't talk about them on YouTube, since it's the stuff that gets announced on stage at I/O and similar events.

</comment></comment><comment><USER7> There is an old free software package ALE ( [https://unix4lyfe.org/ale/](https://unix4lyfe.org/ale/) ) that does some of the processing like this. It was much easier to get working if you had linear light images... and registration of really noisy images was quite hard on it.

</comment><comment><USER8> Here's a (v short) video by the paper's author showing the app in action with there manuscript that features early on in the paper: [https://youtu.be/S7lbnMd56Ys](https://youtu.be/S7lbnMd56Ys)

</comment><comment><USER9> In php is quite simple to merge images by pixel, I also tried to delete moving object [https://github.com/br1n0/phpPhotosMerger](https://github.com/br1n0/phpPhotosMerger)

<comment><USER10> Nice job

</comment></comment><comment><USER3> Is this what makes the google pixel phone camera so outstanding? it would explain why a technically inferior camera (slower aperture, no optical image stabilisation) outperforms both apple and Samsung flagship phones.

</comment><comment><USER11> Mirror [85 MB]: [https://dl.dropboxusercontent.com/u/9910153/seeinthedark- pub...](https://dl.dropboxusercontent.com/u/9910153/seeinthedark- public-15sep16.key.pdf)

<comment><USER12> Another mirror in case it goes over the dropbox limit: [http://files.jjcm.org/seeinthedark- public-15sep16.key.pdf](http://files.jjcm.org/seeinthedark- public-15sep16.key.pdf)

<comment><USER11> Thanks, it did :)

<comment><USER13> I just want to say, I only came for the comments, but clicked after seeing people report so many downloads that it went over your rehosting limit.

The pictures in the PDF are absolutely stunning. I encourage everyone to have a look.

If anyone needs a quick spoiler (a pair of comparison images I copied from the PDF into a gallery for you) here you go:

[http://imgur.com/a/THJbf](http://imgur.com/a/THJbf)

</comment></comment></comment></comment><comment><USER14> Hubble - does it take one long exposure or similarly multiple short ones?

<comment><USER15> A bit of both. Hubble can have single exposures that are hundreds of seconds long - but remember it's in low orbit, so eventually the subject will fall beneath the horizon. Most Hubble observations stitch together exposures from multiple orbits. Ultra Deep Field is an extreme example which comprises ~a million seconds of exposure over 400 orbits: [https://en.m.wikipedia.org/wiki/Hubble_Ultra- Deep_Field](https://en.m.wikipedia.org/wiki/Hubble_Ultra-Deep_Field)

<comment><USER16> In astronomy you need multiple exposures to get rid of cosmic rays, which appear as bright lines or dots. A median filter can be applied to the exposures. HST uses tools called drizzlepac and multidrizzle to combine multiple dithered images to better make use of the telescope's native resolution which would otherwise be degraded by the detector.

</comment></comment></comment><comment><USER17> >Need long exposure, but cell phones have no shutters.

Mine have... 1020 and 808.

</comment><comment><USER18> excellent! now someone make an app out of this.

</comment><comment><USER19> Sounds interesting, too bad the server is dead</comment>


Chinese city 'plans to launch artificial moon to replace streetlights' - <AUTHOR> https://www.theguardian.com/science/2018/oct/17/chinese-city-plans-to-launch-artificial-moon-to-replace-streetlights <comment><USER2> "That's no moon..."

</comment><comment><USER3> Now that's a moonshot.</comment>


Just launched Mobile-friendly website before Google update.Any glitches? - <AUTHOR> http://www.cloudways.com/

<comment><USER2> I didn't look from mobile, so not what you asked, but here are some first impression comments.

1\. Rendered in desktop Firefox I was pleasantly surprised. There was no horizontal scroll bar, everything rendered withing the size of browser that I was using, not one that a designer assumed. So many "busy" sites (lots of UI features and activity) seem to assume full screen browsers. So, nice.

2\. Rendered in desktop lynx (a text-only browser) looked like full content and activity was available and sane. I haven't done much on the front end, but when I do I check it in lynx, assuming that if it doesn't suck there then it's probably usable on mobile and in accessible readers.

3\. Related to 2, it appears that the order of content displayed in lynx is essentially the same as desktop firefox. You can see counter examples if you look at any advertising-heavy commercial site in lynx; you'll see pages of content that were never meant to be displayed, followed way at the bottom by the actual content. The actual content may or may not be in the same order as the desktop experience.

I think of content ordering as meta-content. You present it in a particular order for a reason. So again, nice job here.

4\. I am not a UI or UX professional and I don't know what I'm talking about. This is based purely on what has annoyed me in the past. Your site has very little annoyance for me.

Screenshots:

[http://i.imgur.com/dv5iTUR.png](http://i.imgur.com/dv5iTUR.png)

[http://i.imgur.com/SDHEmRm.png](http://i.imgur.com/SDHEmRm.png)

<comment><AUTHOR> Thanks for the help brother :)</comment></comment>


Reflections on NixOS - <AUTHOR> https://zenhack.net/2016/01/24/reflections-on-nixos.html <comment><USER2> People need to stop thinking of NixOS as another Unix-alike, because it isn't, in very much the same way that MacOS used to be a Unix-alike, but isn't any more, either.

NixOS is rebuilding important pieces of the foundation. Why? To address a basket of problems we have been complaining about with Unix for a very long time. Is it worth the hassle? Well, have you ever lived through a kitchen remodel in your house? That's a hassle, too, but you end up with a better kitchen.

IMHO NixOS is pointing the way forward, but is probably not the last word in next-generation operating systems. The existence of NixOS and Guix (and similar) are exciting, because they are part of the ferment creating the thing on which we will eventually converge.

<comment><USER3> Why isn't macOS a Unix-like anymore?

<comment><USER4> macOS is BSD Unix under the hood with the Mach kernel [1]. I'm tired of hearing this nonsensical talking point that macOS has strayed too far to be considered Unix. What does that even mean? Perhaps someone should inform The Open Group who controls the official Unix specification that they are wrong. Even though it shells like a unix, users like a unix, signals like a unix, files like a unix, networks like a unix, streams like a unix, and threads like a unix, because of reasons never enumerated, macOS is not Unix. /endrant

[1] [https://developer.apple.com/library/mac/documentation/MacOSX...](https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/SystemTechnology.html)

<comment><USER2> A kernel is not an OS.

I'm thinking perhaps some measure of porting effort is the appropriate metric. There is a reason Mac users can't simply point to a bsdports repo.

<comment><USER5> Uh, yes it is. It is a very core part of an OS. Without it, the OS does not function.

<comment><USER2> Kernel is necessary, not sufficient. Nobody ships just a kernel and calls it an OS.

<comment><USER5> Right, linux never just ships as a kernel for others to consume.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I use NixOS since last spring and I adore it so much that I almost credit it with making me like computers again.

It's a kind of bumpy ride sometimes but for me there's no other distribution that's even close. Packaging the Nix way does require patching upstream and that's probably inevitable.

It would be nice to help with the documentation situation, though I'd note that the NixOS manual and the Nixpkgs manual _are_ seriously helpful and quite comprehensive; it's just that there's another type of guide that would really help.

<comment><USER7> > Packaging the Nix way does require patching upstream and that's probably > inevitable.

Not to familiar with Nix, can you explain why? Anything that can't be handled simply by applying small patches to the upstream during packaging?

<comment><USER8> "patching upstream" in this context means "applying patches to the upstream during packaging".

Nix and Guix require programs to work with a directory layout that differs significantly from the standard. Simple things like `#!/bin/python` don't work anymore, because they aren't explicit enough.

<comment><USER6> Yeah, thanks. To add to that, the Nixpkgs "standard library" includes lots of convenient tools for patching like this, and much of the common stuff is done automatically by the standard package function. The #nixos IRC channel is a good place to ask if you run into trouble when packaging something.

Generally, making NixOS packages is really delightful. Even the patching stuff is straightforward and easy to use. Now that I've learned the basics, I routinely make small packages.

With many typical packages the _only_ thing you need to do is specify how to fetch the source, plus the list of build dependencies, and there are built-in functions for fetching from HTTPS or Git.

</comment></comment></comment></comment><comment><USER9> Avid NixOSer here. While it's sad, that we're not there yet in terms of user- friendliness, I still think, given the radical approach, NixOS takes, it's increadibly feature-complete. I find it easy to tweak, too, but that might be due to previous experience with functional systems.

For the specific suggestions in the article, I'm not convinced that they are possible, while retaining the same benefits:

\- Filesystem snapshots are not enough to deal with, e.g. slightly different builds of the same shared library

\- Namespaces, however are. In fact, there is buildFHSEnv in nixos, to take advantage of those.

\- Hiding of runtime dependencies is done with the intent to minimize "accidental success", because that leads to unstable systems.

\- Also a package could, e.g. depend on a patched version of Python2.7, that you'd never want to accidentally end up on the system path.

Having packaged some, I do feel the author's pain though. I wonder, if we couldn't get rid of a lot of upstream grind, by encouraging usage of fhs-env namespaces.

<comment><USER10> I think the right term here instead of "filesystem snapshots" here is "btrfs- like filesystem subvolumes" which are reflinked CoW volumes based on a snapshot.

</comment></comment><comment><USER11> Disclaimer: I'm core NixOS developer

It's great to see such articles as they dive deep into psychology when it comes to new technology. It's really hard to unlearn.

It takes effort to realize that the promised gain is bigger than the pain coming from doing what we're used to doesn't work.

<comment><USER12> It sounds like you're blaming the users for not "unlearning" enough to be able to use NixOS.

As long as you have that attitude, you'll be driving away users. How do you think you can improve your software to make it easier for users to "unlearn" stuff you think is bad?

<comment><USER13> As a near-fanatic NixOS user (now!), I agree with both you and GP. The learning curve is brutal, so it took me a while to get started, but it's paid off several times over.

It's unfortunate that humans can't trust each other enough that saying "You'll like it after a few months" is good enough, but it's also an inevitable fact of life; for starters, the speaker might be mistaken. I don't think NixOS is for everyone, at least not yet.

And it's hard enough to run arbitrary software that, yes, you do need to learn the Nix language. In most cases it's as easy or easier to package the application for NixOS than it is to run it without packaging, which on the one hand is a benefit to the Nix ecosystem, but on the other hand can be a little annoying. There are workarounds...

But the workarounds require some unusual understanding to begin with.

I think one of NixOS' major flaws at the moment is documentation. There's the wiki, but it's both somewhat outdated and very much not comprehensive. As for Nix, it's been best explained in a series of _blog posts_ , and as good as the Nix Pills series is, you have to find it before you can read it. It's also somewhat short on HOWTOs.

Most people don't like to spend hours writing documentation, though.

The existence of NixOS, and work done on it, is a massive positive externality. Even if it doesn't catch on, it's going to inspire half a dozen clones in the next decade or two. Unfortunately I don't see a good way to get more effort put into it, especially the boring bits (such as documentation)...

I suppose this comment is my way of trying to change that.

<comment><USER14> Would you suggest the Nix Pills series now? I notice it's 2 years old.

<comment><USER15> As a "common user", I'd say _very much yes_. It goes quite deep into the internals, and touches underlying ideas and basic mechanisms of Nix, which I don't think are expected to change [ever].

That said, note that it starts to be relevant when you're starting to _write_ Nix expressions (meaning, write something in Nix language). Sometimes also when you want to read them and understand them. Which... is probably quite soon after starting to use Nix/NixOS, if you'll want to tweak some configs or add custom new packages. If you're really, really just doing first steps with Nix/NixOS, and/or just use the default packages with only simple tweaks, I'd say you don't need to read it _yet_ (I personally wouldn't grasp enough basics then to understand WTF the articles are talking about at that point).

</comment></comment></comment></comment></comment><comment><USER16> As a NixOS user I've certainly encountered some of these issues. While Nix and NixOS are really nice, the first thing I'd recommend to a new user would be to learn the Nix language, as it's pretty much a requirement for getting anything done.

I agree with the author that per-user configuration is a bit overkill for the common use-case of a single user machine, but you have to go out of your way to use it (via the "nix-env" command), so I think it's a bit of a non-issue. Since Nix can be used from any user's home directory anyway (this is often how it's used on non-NixOS systems), it's not necessary for Nix/NixOS to contain this per-user feature; however, by doing so they gain a huge space optimisation by re-using the same store. The same can be said for NixOS containers, which I don't use but I see why it's there.

As for making packages available at runtime, that's what the "propagatedBuildInputs" attribute is for. Sometimes Nix can actually automagically figure out runtime dependencies, since it looks through files as they're installed to see if they contain references to other store paths; if so, those paths are added to the runtime dependencies.

<comment><USER17> No, that is _not_ what `propagatedBuildInputs` is for. `propagatedBuildInputs` should be used very sparingly, in most cases wrappers are the better solution.

For example, consider if every package that contained bash scripts would put bash in `propagatedBuildInputs`. Then I could not use a different version of bash for my user environment than those packages I installed used!

Also, `propagatedBuildInputs` are not even propagated into the user environment, the attribute that does that is `propagatedUserEnvPkgs` (not sure if that name is fully correct), and it is very sparingly used within nixpkgs.

<comment><USER16> > `propagatedBuildInputs` should be used very sparingly, in most cases > wrappers are the better solution.

propagatedBuildInputs is a widely-applicable hammer, and the article's tone made it sound like the author wanted a quick fix. Wrappers certainly provide a better outcome, but require more thought and case-by-case caveats; i.e. they're more appropriate for widespread adoption in nixpkgs, but not so much when throwing something into packageOverrides to stop a build script complaining.

> For example, consider if every package that contained bash scripts would put > bash in `propagatedBuildInputs`. Then I could not use a different version of > bash for my user environment than those packages I installed used!

Well, wrappers aren't the answer here either; fixing up the shebangs is. Functions like stdenv.mkDerivation will do that automatically.

I've not come across propagatedUserEnvPkgs before, but I also don't make much use of the user environment. I spend most of my time in nix-shells :)

</comment></comment></comment><comment><USER18> I used arch for a long time, but got tired of having to fix things every time I upgraded the box. And got tired of having to upgrade the box every time I wanted to install a new package, and found that my installed version of arch was too old.

Nix's language is a giant PITA. But the box runs quite solidly. Hell even my nvidia optimus works - for the first time on any distribution.

For things that don't work well, I shove them into a docker image. Like the arduino IDE.

</comment><comment><USER19> I used nixos for a few weeks and then went back to Debian.

* I share the concern of the author on symlinks farm. It is scary! I would like it to be dealt with in the filesystem layer (Plan 9 had a snapshot based filesystem - fossil - years ago). Symlinks have all sorts of weird semantics on different Unix machines.

* Another of my gripe with nixos is that it makes Unix, a single user machine! Sure, packages need not be installed in a user-local way. I may be ignorant of other possibilities here.

* More care for licenses. I still use Debian because they really care for licenses. Last I looked, nixos was in no way close to Debian in terms of documenting the various copyrights and licenses of files pertaining to a package.

Otherwise, Nixos is a great idea and a huge step forward.

<comment><USER16> Regarding licenses, most (all?) packages in the official nixpkgs repo have license metadata, and you can set your configuration to forbid/allow proprietary packages (the "allowUnfree" option), or use a whitelist (e.g. forbid everything except Flash).

Guix is a GNU project, and doesn't allow proprietary packages in their collection at all.

<comment><USER19> Yes. But the amount of information in the debian/copyright file is a lot more than just one scalar flag. I think that level of detail on the licenses is extremely important.

</comment></comment></comment><comment><USER20> PLAN9 namespace is a perfect solution for this kind of package isolations. I can imagine a perfect NixOS plan9 hybrid, only if APE were good enough. Perhaps people(TM) should really pool resources together and make that happen.

<comment><USER21> It's very early in the project lifecycle, but that's along the lines of what I'm planning for my hobby OS[1]. Right now I'm planning on using Genode/seL4 for the kernel and doing a plan 9-style userspace in Rust. Genode has a Linux virtualization/compatibility subsystem that I hope to use to bootstrap Linux "flavored" namespaces.

[1]: [https://www.heartcore-os.org/](https://www.heartcore-os.org/)

</comment></comment><comment><USER22> funnily enough I tried the same sort of switcheroo a few weeks ago as well and just ran into too many issues for it to be useful for me at the moment as well. I tried to contribute back fixes for the the problems I ran into, but just couldn't figure out how to fix all the problems I had with the way things were being done :( PostGIS and a few Gnome 3 desktop issues basically drove me back to Arch where stuff just works.

I'm sure I'll try nix again, and again, until maybe one day it just works as well. I really do love the features it brings not just on paper but in practice.

<comment><USER23> Yup, same. Nix was awesome, and i was convinced that for my laptop (OSX) and my home server, it was all going to be NixOS and Nixpkgs from here on out.

Then i started running into external dependencies.. one after another, having to patch them to make them work with nix.. it was just such a headache, and honestly i was in _way_ over my head. I am not that well trained of a linux user, but Nix sort of required me to be. So, i had to backoff for now.

I really hope i can use it again soon.

</comment></comment><comment><USER24> Correct me if I'm wrong but isn't the better solution to this containerization? The application will in a literal sense own the system.

You also get inherent security (unless someone figures out how to escape their vm).

I member someone had a website talking about this. The use of a file system with revision tracking, containerization for security, and sending files between VMs to make things work.

<comment><USER25> The great things about NixOS is that you can describe the entire state of your system in configuration files, and then after running `rebuild` know that what's on your computer _exactly_ matches that configuration.

Can you do that with containers?

For instance, I'm on NixOS `16.09.git.20f009d (Flounder)`. Here's my configuration: [https://github.com/seagreen/vivaine](https://github.com/seagreen/vivaine). I know my machine exactly matches the combination of that NixOS version + those config files. My impression is that this is messier with containers because while you can make a snapshot and know the snapshot is frozen, as you modify snapshots over time they'll begin accumulating cruft due to things like installing programs, uninstalling them, snapshotting, but still having some leftovers from the install. I'd like to hear from someone with more container experience here though.

<comment><USER24> Is there any real advantage to that opposed to say running this on my arch machine...

       yaourt -Qe|grep -v "(base"|grep -v "(xorg"|grep -v "lib32"|cut -f 2 -d "/"|cut -f 1 -d " " > package_list.txt

Then to reinstall...

       pacman -S package_list.txt

And copy in my home directory. After a reboot everything should work the same way I have it setup (I keep every change I possibly can in my home directory. It's everything aside from two scripts that aren't actually needed)

The difference is I generate my config via usage, not via definition. I don't actually know what I need to use my computer, I've just always used it. I can back everything up and create essentially the same machine (since my distro Manjaro is rolling) every time I need it.

For me, this is a solution that is a bandaid fix for a completely different problem: the lack of rolling distributions and the lack of storing old versions. These are both package manager and os developer problems. Once we leave the space of OS revisions rather then having "The OS" and having it up to date or out of sync with the main os we will fix these problems.

I don't know, am I seeing something wrong?

<comment><USER26> You don't get features like transactional rollback to prior revisions of your system definition, which is never an important feature (until it suddenly is). This also seamlessly allows non-privileged multi-user package management without duplication of programs or anything like that, so you don't need to poke your system admin or alternatively pollute $HOME (and in turn pollute your bash/zsh config for library paths, require fixing up include paths for anything you compile using $HOME stuff, etc). This feature is actually particularly important, because it allows you to set up individual, 'hermetic' (or 'pure') build environments for every project, using 'nix-shell', even on multi-user machines.

If the project supports Nix, you can just go in and run 'nix-shell', and your machine is magically populated with the needed dependencies to build it (or using already existing ones), and you drop into a new `bash` with a cleaned environment and custom $PATH for that project. You can then leave that shell (after you submit your patch to an upstream project or whatever) and garbage collect the installed dependencies.

The model also permits things like transparent, remote multi- system/architecture builds (why build the Linux kernel in my chosen configuration on my laptop when I have a 16 core server somewhere else, why SSH into my OSX machine to run a build when Nix can do it with the same description, etc,) -- and in the future when binary determinism is worked out, a single checkout of the Nixpkgs repository will (hopefully) be able to serve as completely-reproducible build chain, allowing anyone to produce identical binaries and identical Nix packages. (And since Nix works on any Linux system, you can run that build anywhere).

NixOS of course supports general container technology as you mentioned in your first post, so you can also use that to your hearts desire.

In practice NixOS is quite powerful but there are still many glitches and user-facing UX issues that are problematic. It is definitely not for everyone.

</comment></comment></comment></comment><comment><USER27> Trying to set NixOS on a armv7 board (NVIDIA Jetson Tegra K1), There is a customized linux 3.10 kernel that comes with the board and I'd like to know how to integrate that on NixOS. Currently I managed to boot the board using a generic armv7 image which runs on SD card I got from this page - [https://nixos.org/wiki/NixOS_on_ARM](https://nixos.org/wiki/NixOS_on_ARM) . But I cannot activate any services like ssh or install drivers like nvidia, cuda iwlwifi and bluetooth on Nix. Any support will be appreciated. NixOS manual doesn't explicit between different architectures and I think it's mainly written for running NixOS on amd64 PCs or similar architecture but not arm. What am I missing here, where should I look into or read about to set a properly running system on my arm board? Thank you!

</comment><comment><USER28> So this probably just saved me a trip down NixOS road, which was on my (ever too long) todolist for some time now.

Last year, I finally put my private systems under configuration management, but just like the author, I was concerned that both the configuration management tool and the system package manager like to exert complete authority over the system without knowing about each other, a recipe for disaster.

In the end, I wound up writing my own configuration management tool, Holo [1], which relies on system packages to install applications and deliver configuration files, and implements the additional logic to provision things that the package manager does not understand (users, groups, SSH keys, etc.).

One thing that's missing from Holo right now is a validation pass that the whole system matches the expectation described by the configuration packages. (Right now, only files that were touched by Holo can be monitored for changes, but not files installed by the package manager.)

But it turns out that that's a hard problem. A normal Linux system has a lot of moving parts that are not accounted for by the system package manager. See for example the positively huge list of exceptions in [2]. Of course, the bulk of these quickly-changing files are data, which can be skipped easily by just ignoring /run, /tmp, /var/cache, /home and so on. The question remains what to do with the rest: implement some sort of parsing for auto-generated configuration like /etc/passwd, /etc/ssl/certs and so on, or just rely on snapshots of known-good states designated by the administrator? I'm still undecided.

[1] [http://holocm.org](http://holocm.org) (the site seriously needs an update)

[2] [https://github.com/graysky2/lostfiles/blob/master/lostfiles](https://github.com/graysky2/lostfiles/blob/master/lostfiles)

</comment><comment><USER29> Not sure if I'm reinventing the wheel, but incidentally I've been working on this lately:

[https://github.com/CyberShadow/aconfmgr](https://github.com/CyberShadow/aconfmgr)

It's like basic traditional configuration management, but it's two-way: it takes the difference between the user-managed configuration and the current system state, and rectifies this difference by either editing the configuration or the system. A second invocation is a no-op. If your configuration is in version control, this allows easily tracking any unaccounted changes to the system.

</comment><comment><USER30> I used NixOS for about six months, and while I think the core of NixOS is great, but I never liked KDE and how much it kind of forces it on you.

Gnome support is kind of horrible, and it felt like I either had to commit to something incredibly low-level like XMonad, or KDE.

<comment> vertex-four I don't think many NixOS users use desktop environments, generally speaking, and NixOS users tend to wind up being NixOS contributors as it stands right now. XFCE's available, though, for something lightweight.

<comment><USER30> I mean, the Live-CD has KDE running by default, so I kind of assumed that was the standard.

<comment><USER13> It had to have _something_ , right?

There's no 'standard', but KDE is used more often and therefore has fewer bugs. XFCE works fine. If you want Gnome, well, I haven't tried it, but they always welcome patches.

</comment></comment></comment></comment><comment><USER31> Am I the only one that caught the homestarrunner reference?</comment>


The Dangerous Art of the Right Question - <AUTHOR> http://blog.trailmeme.com/2010/07/the-dangerous-art-of-the-right-question/

<comment><USER2> Slightly off-tangent, but:

 _What is the top reason people leave jobs? (Answer: they dislike their immediate manager)_

I know this, everybody knows this, and still it amazes me how few places have bottom up (or so called 360) assessments of their managers.

<comment><USER3> Yeah, I once asked about that kind of review at a company that didn't have it, and everyone automatically assumed that I hated my manager and wanted to get her in trouble. In fact, the opposite was true. For some reason people think that the only purpose of upward feedback is to rat on your boss.

<comment><USER2> Sad isn't it. And good managers want that feedback, but if there is no workplace structure for it, it's hard to obtain properly because HR isn't handling the anonymity, training on how to give the right sort of feedback and so on.

Hmmm. Maybe I should set up a surveymonkey template or something for people who are interested in doing it themselves.

</comment></comment></comment><comment><USER4> FWIW, this is the same guy who wrote the gervais principle series of posts. [http://www.ribbonfarm.com/2009/10/07/the-gervais- principle-o...](http://www.ribbonfarm.com/2009/10/07/the-gervais-principle-or- the-office-according-to-the-office/)

</comment><comment><USER5> These "right questions" sound an awful lot like half-answers to me.

<comment><USER6> "The ability to ask the right question is more than half the battle of finding the answer." - Thomas J. Watson

"A problem well-defined is half solved." - John Dewey

</comment></comment><comment><USER7> The corresponding questions do not really correspond, and their possible usefulness is questionable. The supposed correspondence on the Middle East is notably lame.

<comment><USER8> _The supposed correspondence on the Middle East is notably lame._

I think the inability to come up with a great question about the Israeli- Palestinian conflict corresponds pretty well with the fact that there are no known good solutions to it (except the "if only they would..." kind of solutions.)

<comment><USER9> The 'different comm styles' ... I did not cite the reference, but there is a documentary about how Arab-Israeli conversations tend to break down badly even when both sides go in with win-win positive intentions. It showed some deep cultural diffs (specifically, Arabs don't like to be interrupted, while Israelis thrive on it...it's deeper, but that's the highlight point). Seems like anyone who could figure out how to resolve that diff could organize better peace talks.

BTW, if it isn't clear, I am the author of the post.

I've lost my password for HN and can't see a way to recover, so I haven't been responding to HN comments on my posts. Anyhoo, caved and logged in using my Google id now...I am the same as lost-password vgr on some older threads. If someone can tell me how to recover my password, I'd appreciate it. Kinda like my vgr handle.

</comment></comment></comment><comment><USER10> Great article. The distinction between formulaic and versus insightful questions seems very similar to the difference between top-down and bottom-up processes.

</comment><comment><USER11> I do not think it is useless to ask what makes me happy. You know there are such things as forests and trees. You start with differentiating big themes, such as what makes me happy, or what do I want, or what will I be doing in ten years time, or am I really in love, you focus on one of the big themes and then you go into the specifics.

Its harder to start from the bottom up when the matter is so pervasive and complex.

<comment><USER12> I _think_ the article is trying to convey that asking those questions about an existing business is not helpful. I first read it as 'These are all bad questions that are never useful,' which is obviously false. But in the situation where there is an existing in depth knowledge base, they are better replaced with more topical questions.

I baulked at 'What is our goal?" since that is the first question I ask after someone requests help. But if I am expected to already be acquainted with the situation, I wouldn't ask.

<comment><USER9> I use 'what's your goal' as a conversation starter as well, but if it gets bogged down there, I start to tune out.

I think you and I may differ in what we consider 'useful.' I don't classify procedural starting points as 'useful' except in a ritualistic sense. So in that sense I think I stand by my rather extreme-sounding view :)

</comment></comment></comment><comment><USER13> "Patented formulas"? WTF</comment>


Ask HN: Why Is SRCSET IMG Tag Developer Adoption So Slow? - <AUTHOR> <comment><AUTHOR> I am wondering why support for retina images is actually really uncommon. Even on a lot of tech startup pages i can only see poor resolution images. Why does nobody seem to care about retina images on their websites?</comment>


Wikipedia on Herbert Hoover: he didn't fail for lack of bailing - <AUTHOR> http://en.wikipedia.org/wiki/Herbert_Hoover#Republican_Primaries <comment><AUTHOR> I used to think of him as a straight-up failure that left things a mess until Roosevelt came along and fixed everything. There's more to it that that.

 _"...Years later, libertarians argued that Hoover's economics were statist. Franklin D. Roosevelt blasted the Republican incumbent for spending and taxing too much, increasing national debt, raising tariffs and blocking trade, as well as placing millions on the dole of the government. Roosevelt attacked Hoover for "reckless and extravagant" spending, of thinking "that we ought to center control of everything in Washington as rapidly as possible," and of leading "the greatest spending administration in peacetime in all of history." Roosevelt's running mate, John Nance Garner, accused the Republican of "leading the country down the path of socialism"._

And later:

 _Even so, New Dealer Rexford Tugwell[27] later remarked that although no one would say so at the time, "practically the whole New Deal was extrapolated from programs that Hoover started."_</comment>


Should EnQ Get to Sell Spots in IRS Phone Queue? - <AUTHOR> http://www.forbes.com/sites/peterjreilly/2016/02/21/should-enq-get-to-sell-spots-in-irs-phone-queue/ <comment><USER2> Nice job Andrew. So that's what the big secret was at Cluecon! :)</comment>


Virus Explorer – visualize and compare viruses in 3D models - <AUTHOR> https://www.hhmi.org/biointeractive/virus-explorer <comment><USER2> It would be great if there was an "expert" mode on this, with a bit more detail on the coat protein structures. Modern molecular biology is so abstracted, you often lose sense of the actual scales of things. Being able to look at things as a whole like this really enable intuition to kick in.

It looks like they've tried to get surface density of proteins right, but I'd love to know if those densities are about right. This is all important for understanding viral receptor binding, and the importance of multi-valent interactions.

</comment><comment> black-tea Viruses (in particular, RNA viruses) are great to study if you want to learn how genomics and the genetic code works. They are much nicer than studying large organisms because you can understand every part of them. They have just a handful of genes which correspond directly to proteins found in the resulting virion.

In fact, viruses like HIV and influenza are very much like compact computer programs. Every part of them has a particular purpose and interfaces with the host organism's mechanisms. It exploits the host and forces it to reproduce the virus. HIV's genome is even compressed using overlapping reading frames. It almost seems like it must have been designed.

One really cool part of the virus reproduction is that it must get the host to both reproduce and _express_ its genome (ie. make proteins out of it). These things happen at completely different parts of the cell, yet somehow enough of the reproduced genomes end up in perfectly formed virions that the whole thing keeps working. Fascinating.

</comment><comment><USER3> Unrelated to the subject matter: the interface is beautiful and reminiscent of old fashioned encyclopedic textbooks I used to love as a child (they had odd names like "Giant Book of Answers"). I would love to read Wikipedia in this type of format.

</comment><comment><USER4> For a second I thought it was going to be 3D visualization of malware source code

</comment><comment><USER5> looks like god took a lot of time to design them.</comment>


Ask HN: Would a book on "Data Engineering" be useful? - <AUTHOR> Hi All, I have been working in the field of data engineering before it was a real title.
I was recently approached by a publisher to gauge my interest in publishing either simply on data analysis or data engineering.
When I google for "data analysis" there are obviously a whole lot of resources available. But data engineering on the other hand has less resources but have gone through bigger innovation in past few years.
So what are your thoughts? Will a book on data engineering covering latest tools, git repo structure, working with models, deploying at scale be helpful? Any ideas on what should be included/excluded. Really appreciate any inputs. <comment><USER2> I cant give you any pointers on what topics to cover. But there is certainly market. I know that data engineering and finding relevant resources is one of the challenges faced by many startups today

<comment><AUTHOR> Thanks for your feedback. I have heard similar stories.

</comment></comment><comment><USER3> I'm currently working with a publisher on a book that provides an intro C# and XML. The way that I have gauged what to put in is to think about what info I needed when I first started. That got me only so far so I took to the internet and started searching what kind of questions people are asking about handling XML. From there I was able to add topics/information that would solve problems of real people so that others who may have the same problem have a resource to go to.</comment>


Offer HN: I own blog.gg and would like to find it a new owner - <AUTHOR>

It's going to expire soon and I really don't want to renew it. I'd like to give it to someone on Hacker News, but I'd still like to at least make my money back on it. <comment><USER2> I'd like to buy it. I've emailed you.

</comment><comment><USER3> Sent you an email as well.</comment>


Mozilla's Uncertain Future - <AUTHOR> https://civilityandtruth.com/2020/08/13/mozillas-uncertain-future/ <comment><AUTHOR> Newer submission with discussion: [https://news.ycombinator.com/item?id=24166385](https://news.ycombinator.com/item?id=24166385)

</comment><comment><USER2> Great overview. the author says that it is for non-technical people, but as a tech-person I thought it was a great summary.</comment>


Google Spent Years on a Secret Plan to Dominate This $830B Industry - <AUTHOR> https://www.inc.com/bill-murphy-jr/google-spent-years-on-a-secret-plan-to-dominate-this-830-billion-industry-nobody-even-noticed.html <comment><USER2> Hi Google, my bags were lost on the way to my holiday!

Answer: Here are similar situations to yours that we found! Have a nice day.</comment>


IBM unveils chips that mimic human brain. - <AUTHOR> http://www.computing.co.uk/ctg/news/2102735/ibm-unveils-chips-mimic-human-brain <comment><USER2> It was funny to found Skynet & John Connor references in the readers comments. It's also pretty funny that if someone makes/invents a system with Skynet capabilities, there is a posibility that they will name it Skynet. Thus making the terminator series a self fulfilling prophecy!!!!

</comment><comment><USER3> I love the examples:

What was the last major catastrophe? Oh, yeah, we could monitor for tsunamis.

What's a common problem people have? Oh, yeah, we could flag bad produce at the store (not even sure what that means...).

What do people expect? Oh, yeah, we can make them smaller and faster.

The real value sees to be decision-making. Rather than yes/no, which Von Neumann machines do well, these answer "I think so"/"I don't think so". Should be fun to watch, and I hope I get to try coding against one some day. I'm sure that will be a far more mind-altering experience than learning ruby. :)

<comment><USER4> seeing these kinds of chips get implemented into other domains would be really interesting too (and comparing them against their traditional counter parts), like rapid stock trading machines, or second opinion machines at the doctor's office (hopefully never the only decision maker) and more broadly, just strategy planning.

<comment><USER3> I think Watson would make a better primary diagnostic tool than most doctors, but there is an interesting question about decisions. There are so many variables involved in medicine that having something that can actually synthesize all of them seems like it would be a net positive, but I'm not sure what it would take for me to feel comfortable about the machine making a decision on my treatment. I can't imagine the time won't come (during my life) where diagnostics and treatment can be done by machine.

</comment></comment></comment><comment><USER5> This could be a breakthrough technology for robotics and AI. For years it has looked liked a new computer architecture would be required to let robots make all of the complex decisions in real-time that humans take for granted, especially in the realm of perception.

If these chips can do what they say they can (well), I can't wait to see how they change robotics!

</comment><comment><AUTHOR> Ray @ TED [http://www.ted.com/talks/ray_kurzweil_on_how_technology_will...](http://www.ted.com/talks/ray_kurzweil_on_how_technology_will_transform_us.html)

</comment><comment><USER6> Duplicate of this story from today: <http://news.ycombinator.com/item?id=2898229>

</comment><comment><USER7> it starts with the words- " new generation of chip", "supercomputing", " significant step" and ends with "grocer's glove".In any case, these IBM Research guys didn't say a word about robots, space ships, etc. I think it's just noise. But they know how to raise money $21m it's not a joke.

</comment><comment><AUTHOR> After I read this article I started thinking about Kurzweil's documentary, Singularity. How much longer before we can all become immortal Cyborgs? Is singularity as near as he predicts? (notice the capital C in Cyborg. PWND.)

</comment><comment><USER8> Finally we might get smart bots in video games!</comment>


Tell us why your language sucks - <AUTHOR> http://www.drmaciver.com/2008/02/tell-us-why-your-language-sucks/

<comment><USER2> SQL: Requires your vendor to wrap in basic programming constructs or wrapping the SQL yourself in the code of your choice.

No ability to create dynamic functions on the fly. Why can't I do something like:

SELECT something, {some custom function here()} FROM sometable GROUP BY something

I almost want something macro like in there. I previously worked on apps that had fluid, ever-changing business rules. Where you might read in several range values to check some other set of values for inclusion in that range, count the values in the range, or average them, or check them for thresholds, etc. In Oracle, you can easily write your own custom grouping function, but you can't do it on the fly. I probably should have written the code to dynamically parse the intended SQL and build the dynamic SQL and custom function on the fly. Live and learn.

Analytic function windowing. Every time, I have to re-grok exactly how to do it properly.

Hierarchies. SQL sucks for doing this simply. I've used proprietary stuff (CONNECT BY in Oracle) and built my own nested set models as well. Both are fun technically and work, but are hell to support - during code reviews and sessions I see the eyes start to glaze over whenever I've dealt with hierarchies in SQL.

</comment><comment><USER3> I think "T"'s comments on the Python community are depressingly close to the truth.

It is very easy to find pythonistas on python-list who are eager to tell you how wrong you are, or how you shouldn't even _want_ to do <X> because it's not "pythonic".

I think Yegge was right, and that this is the main thing holding Python back.

That said, I still generally like the language itself.

</comment><comment><USER4> Python: for the reasons mentioned in the article, but also the frequent release changes. There's great stuff in 2.6 like Queue objects but 2.4 is always installed.

Also unlike Perl and Java, there's still no tool that converts custom formats to native OS packaging.

And the colon on the end of function declarations serves no purpose.</comment>


LROC Image Browser - M175569775 - <AUTHOR> http://wms.lroc.asu.edu/lroc_browse/view/M175569775 <comment><AUTHOR> This image shows a section that's about 2 miles high by 15 miles long. You can zoom in to about 15 meters.[1]

[1] sorry for garbled meaning here.</comment>


Ask HN: How do you remind yourself of your goals? - <AUTHOR> <comment><USER3> I've tried a lot of productivity tricks and the one I find most effective is to create a mantra. First off I have a todo list and every morning and night it tells me to say my mantra. Secondly I focus on only one thing or habit at a time - everything else which may be important still needs to wait its turn. I then just say whatever my goal is 10 times twice a day and after a week it starts to become difficult to stray from my goal. It usually takes a month or two and then I can start working on my next goal while remembering to maintain my previous ones. Make sure your goals are as concrete as possible - <USER2> else should be able to read them without much context and understand exactly what to do.

<comment><AUTHOR> Yeah, good points you make here. I have somehow arrived to the same conclusion. I'm actually working on this little app [https://everydaycheck.com](https://everydaycheck.com) . It helps to work on your goals every day, but there are some goals that don't seem to fit in. I still feel like I'd be also good to have a list of the main goals clearly defined for me to read every morning and with some extra context to remind me of why I want to accomplish them

<comment><USER4> I just found everydayCheck yesterday. It will fit a lot of the daily goals I have. For goals that aren't daily I use a site like 43things.com, which is in desperate need of an alternative, by the way. I tend to look at my 43T goals every couple days. Something like everydayCheck will definitely help me though!</comment></comment></comment>


Is it too late to learn to think/write code? - <AUTHOR>

I an 32 years old. Have been a design professional [Architectural Design] for 10 odd years now. I have been lethargically trying to develop a web application for a while now. I have realized over time that the same lead-by-example leadership that I have been able to demonstrate for multi-million dollar real estate and built-environment projects... is not applicable for the world of machine-language... since I am green on even the basic parameters and constraints in question.
My [much younger] technology savvy friends tell me  - "There is a _time_ for everything" - effectively  calling me out to be an over-the-hill humbug.<p>I think of this as baloney. So my question to HN is in two parts: 1.Are you _ever_ too old to learn to write code? 2. If not, where do I start?<p>[Warning: People with answers to #2 might frequently be asked stupid questions by me in the future] <comment><USER2> I started learning software at 32.

I got a couple of things out of your question:

1\. You're wondering if it's worthwhile. 2\. You're struggling to finish something that's likely already within your capabilities.

Yeah, it's definitely worthwhile. I've brought a small software company further than a business I spent five years on (a PR agency) in a much shorter amount of time including the time it took me to learn a few languages. Having said that, I became addicted to it and spent nearly 5k hours on programming my first year and almost that much the second. It took no effort because I was hooked as soon as I started. I think you need to ask yourself if you really love writing software and are afraid to completely commit to it (it is time consuming and somewhat intimidating) or if you just think it's any interesting possibility for a career change. If it's the latter it probably won't be worth it for you.

If it does excite you, I'd suggest picking very small projects (and yeah, with an easy language like Python) that you can finish within a short period of time. There's nothing like _finishing_ projects to motivate you and give you confidence to try different things. From a career/business perspective, once you've shipped a few things you'll have some credibility even if you don't have a ton of experience.

</comment><comment><USER3> It is not too late. The biggest problem people generally have learning something significantly new later in life is fear of looking stupid. As long as you don't mind looking stupid, you should have no problems. By this, I mean displaying your ignorance in asking for help, showing people your not-yet- beautiful-oreven-working code, and so on.

I would suggest Zed Shaw's <http://learnpythonthehardway.org/> is probably one of the best self-paced and self-taught courses on truly beginning programming available on the internets right now.

In general, assuming normal health, the only major changes in terms of ability to learn occur in early childhood. There is evidence that you learn much more easily as a very young child, and structural patterns, around language in particular, become harder to change after puberty. This seems to be accepted in cognitive development circles, but the research is not overwhelming.

<comment><USER4> +1 for "internets". Oh how I miss that dubya. :)

</comment></comment><comment><USER5> I wouldn't say it's too late. As with any adoption of new thought processes, you'll face a few challenges in overcoming conflicting ways of thinking if any, but it is definitely doable.

Here are a few "How to" guides with references to other resources that I've found helpful from my time scavenging hacker news:

[http://www.jpstacey.info/blog/2011/03/13/how-construct- web-d...](http://www.jpstacey.info/blog/2011/03/13/how-construct-web- developer-twelve-months)

<http://www.silvertreksystems.com/checklist.html>

<http://krainboltgreene.heroku.com/log/2>

I generally do better with task oriented learning, so I find it helpful to have something specific that I want to build, but everyone has a different learning style. Either way try to have fun and enjoy the learning. Good luck!

</comment><comment><USER6> I am 34 & learning. My answer to your question is whatever you think. If you think it is too late then you are right. The opposite holds true and I hope the latter is your belief. <http://JaretManuel.com/hackerville> list some of the resources in this posts comments and replies. Go create some luck! Best success.

@JaretManuel

</comment><comment><USER7> To answer #1, I offer you the biographical sketch of Jens Skou, who decided to take up programming in 1988...at the age of 70: [http://nobelprize.org/nobel_prizes/chemistry/laureates/1997/...](http://nobelprize.org/nobel_prizes/chemistry/laureates/1997/skou.html)

<comment><USER8> Yep this is a great question. I don't think it is ever to late. Just like any job/skill there must be a commitment that must follow. Programming is something that is nothing more than another job it just so happends that many people start young as a hobby. I don't think this means anything but that they got a slight head start. I like you started programing later in life and I'm 33. I have been studying programing and am getting my degree in software engineering in a month... As far as my degree is concerned, I have not really studied programming exclusively until my last 30 credit hours (there was alot of system admin, network, and OS stuff prior on top of a few basic programming)which lands around the time I was 31ish. Most of the stuff I could have learned on my own without a degree. I recenlty got my first job as a .net programmer at 33. I would suggest that if you are going to web dev think in teams of stack. Like .net C# or vb.net, html, css, javascript, and SQL or PHP and mSQL. This sounds like alot but maybe start with heavy emphasis and priority learning the background language as far as syntax(vb, c#, C++, Java). Then do small (very small no overkill) projects developing a test database, test website, and so on. I suggest this approach cause you will be focused on the backend programming language and developing skill while incrementally building comfort for a tiered based environment. You can focus on learning the html, javascript and sql slowly overtime and not at the same pace as the background language of your choice. This is okay because in a 1yr or so you will be able to code effectively for backend and have comfort with the rest of the abstraction. This approach has worked for me and if for me anyone can do it!

<comment><USER8> This last post was directed toward the original post. I just could not find anywhere to respond the originator of the topic but only to the responders on the post.:)

<comment><USER9> Same problem for me.

Anyway, call me mad, but we are too used to believe that each specific domain of knowledge must take years to be fully understood. That is just not true. What is stopping you from going from engineering to economics, or from business to programming, or from medicine to architecture, etc.?

The real shame is that we don't have a proper learning system. Universities are wasting the time and brilliance of millions... the real learning is on the field or sharing with people or reading (alone) good material. And that doesn't take too long...

</comment></comment></comment></comment><comment><USER10> 1\. No.

2\. To get into it casually, I recommend that people start with Hackety Hack. If you're more serious, I would go take some class. Honestly, that's how I got started...I took an 8 hour class on HTML at the local university computing center.

</comment><comment><USER11> 1\. You are never too old to learn anything.

2\. <http://www.codeschool.com/courses/rails-for-zombies>

</comment><comment><USER12> I am currently teaching a few people how to program. If youre interested in joining us, drop me a line at firstname.lastname@example.com

</comment><comment><USER4> One piece of advice, programming is hands on, and that is the best way to learn it.

</comment><comment><AUTHOR> I missed putting in an "Ask HN:" on my post. Sorry

</comment><comment><USER13> Don't just learn to code, learn to program. I m of the opinion that one starts with the classics, like C, that will make everything else (e.g. Python) fall into place. Also, despite the sex appeal of rails, I'd start with PHP, that will introduce you the underlying technologies of web dev.

P.s. It's only too late when you are dead. I started a phd at 29. Just beware cause it's addictive, and you may end up smelling a little more</comment>


The Lawyer Who Defended Dzhokhar Tsarnaev - <AUTHOR> http://www.newyorker.com/magazine/2015/09/14/the-worst-of-the-worst <comment><USER2> What really puzzles me is why in the aftermath of the bombing, the Tsarnaev brothers drove round Boston for three whole days in a car registered to their home address and only got caught after being recognized by a police officer and fellow gym member, less than a mile from the outrage. We could ask Dzhokhar Tsarnaev except, he was shot in the throat/caused a self inflicted knife wound and spent most of the trial in a drug induced haze.

<comment><USER3> I'm willing to go with "young and stupid". And you've come up with an excuse for license plate scanners; for all we know, one that since then has been used to procure such systems.

<comment><USER3> Amplifying on the "stupid":

It's stupid to screw around with improvised explosives, absent a _really_ compelling need. Lots of subtle dangers, like static electricity, lots of people kill themselves trying it.

It's stupid to plant them in a venue with a zillion cameras in operation.

It's stupid to kill a police officer and not have the wherewithal to take his gun because of its retention holster, without even using a knife to remove it from his belt, or, hey, just undo the belt, to try harder later.

It's stupid to release the guy who's car you hijacked for a while.

It's stupid to attack a part of the country that's notoriously mostly on your side (in the _National Lampoon 's_ General Alexander Haig Jr. Republican Map of the World the Boston area was one of three that shared the color of the Warsaw Pact). Not to mention enrage them enough so that the jury votes for the death penalty.

Etc. The were not the smartest jihadists in the drawer.

Of course, plenty of the above depends on believing the Official Story, but it does paint a consistent picture.

I'd add that I'm hardly resistant to government conspiracies, they just have to make sense. E.g. the immolation of the religious dissidents in Waco sure looks like it was pre-planned _by a very small number_ of members of the FBI's Hostage "Rescue" Team. Means, motive, opportunity, all in alignment, and it could be done by a small enough group that they could keep the secret to their graves.

What is the claimed alternative Boston Marathon Bombing motive here? How was it even vaguely commensurate with the consequences if discovered? What does Occam's Razor suggest? Etc.

<comment><USER4> > What is the claimed alternative Boston Marathon Bombing motive here?

It's part of the perennial efforts to control guns:

[http://www.examiner.com/article/lautenberg-introduces- gunpow...](http://www.examiner.com/article/lautenberg-introduces-gunpowder- control-legislation)

<comment><USER3> Note, this is something I've been part of the fight against since the early '70s.

To my knowledge, they scavenged flash powder etc. from fireworks, although of course they could have bought smokeless powder. Although that would very likely have looked a lot more suspicious or left a clear trail to them if by mail order, not that they were at all good at OPSEC.

Ah, no other country in the world has a gun culture quite like ours, I suspect our hobby of reloading is unique. So I'll bet the on-line recipes for these pressure cooker bombs depend on fireworks, which are a nearly universal thing, and the brothers didn't think of/wanted to take a chance on substituting a smokeless powder.

Not that it matters for a POS like Lautenberg, but it's also the case that anyone thinking such an event would result in real action against reloaders--- almost certainly a minority of gun owners---is not well connected to reality.

Not that this government didn't attempt a deadly conspiracy with this aim like Fast and Furious, or hasn't in the past with a much higher body count, Waco, but this doesn't seem to be one. If it was, why not e.g. have someone use an "assault weapon" against a crowd attending an event in a stadium (which is the beginning plot of a novel I've heard about).

<comment><USER4> Hi, hga. Thanks for the very lucid response. I agree with you, this might be nothing. I'll admit I don't know what I'm talking about when I mention the "this is a drill" announcement and the Boston Globe tweet. I had heard of those things but not researched them. I did research, however, on the two unidentified individuals that I mentioned before, suspiciously not paying attention to the race and sporting big black backpacks in the shape of the bomb. I am to this day without answers as to what these two official looking people were doing.

Yes, no other country is like the USA where people are free to keep guns and we intend on keeping it that way. If folks don't like it, they literally have every other country in the world as an alternative. But here, we are not the property of the government and we reserve the right to react to it. Americans used to be historical people, they understood that we shouldn't get involved in "foreign entanglements". Do you at least agree this country has been taken over by an elite intent on disarming citizens via piecemeal policy implementations?

It would be interesting to hear your opinion on Sandy Hooks as well. Many politicians and law enforcement officers had to be silenced and it was a more obvious excuse to pass legislation.

<comment><USER3> You're welcome.

 _Do you at least agree this country has been taken over by an elite intent on disarming citizens via piecemeal policy implementations?_

Not exactly. The history roughly goes:

      Actions to suppress dueling
      Actions to keep guns out of the hands of freedmen/blacks post-Civil War.
      Actions for/against different immigrants, e.g. Sullivan Law for the Irish.
      End of discrimination, enforced against all, guns are icky!

Well, the first of the latter Federally was more against the non-wealthy, the 1934 NFA required a $200 "tax", at minimum $3.5K in 2015 dollars (owning gold was outlawed around the same time, and the people's gold confiscated at $20 and change/oz was repriced to $35).

However:

 _It would be interesting to hear your opinion on Sandy Hooks as well. Many politicians and law enforcement officers had to be silenced and it was a more obvious excuse to pass legislation._

I'm not sure what you're getting at here, but there's always been serious pushback. E.g. the NFA originally proposed including handguns, and that was zapped in a Congress that was generally giving FDR what he wanted.

I believe that the '70-80s represented the high water mark of gun US control. Vicious enforcement of the GCA of '68 was spiked with the FOPA of '86 (albeit with new machine guns banned to us), the nationwide sweep of concealed carry started with Florida in '87, the gun grabbers had a lot of fun with "assault weapons" bans, but they're now not an issue outside of "communist" states like California and Massachusetts, etc.

Pretty much all the 21st Century "progress" in gun control has been in traditionally anti-gun states, even post-Sandy Hook, with the notable exception of Colorado. And that, and the new angle of laws that ostensibly outlaw temporary sharing and renting of guns, are happening because it's a pet cause of billionaire Bloomberg. Either through initiative in Washington, or the legislature in Oregon, but the rest of the gun control apparat is on life support.

However, the _Zeitgeist_ is such that the enforcement authorities are quick to say they won't enforce the unconscionable parts of those laws. So who knows, those Jim Crow laws weren't enforced against white until say the '50s or so, '60s especially.

The situation mostly seems to be in mostly in stasis, with small gains and losses in the various pro- and anti-gun states, the Supremes seem to have decided we only have a right to keep arms, we guess that'll be the result of the appeal of _Peruta_ to the 9th Circuit (California and Hawaii), but the 7th Circuit ordered Illinois to go shall issue (!) which they did (!). Ah, this is still be fought out in D.C., and that might put the Supremes on the spot, we're currently winning the courts albeit not on the ground.

For the foreseeable future I don't see any major changes. Maybe California will go from iffy to horrible (Jerry Brown is sane here (!)), but much of the rest of the country thinks the state is generally going that way in all areas.... Me, I feel the best I have since way back in the '70s when the BATF was stamping out gun culture ... through atrocities which resulted in a fierce reaction. I expect that pattern of attack and counter-attack to continue, and in the meanwhile, Americans have been arming themselves like never before, soaking up pretty much every rifle of military utility available. If worst comes to worst, we're prepared.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Nancy Gertner's views discussed in TFA are interesting. When the prosecution can suppress evidence of remorse on such specious "national security" grounds, what can't they suppress? Do we really need federal prosecutors to have such massive advantages? Again we see the folly of Guantánamo poisoning everything. Oh, and here's Carmen Ortiz again!</comment>


Hacking StumpWM with Common Lisp - <AUTHOR> http://www.kaashif.co.uk/2015/06/28/hacking-stumpwm-with-common-lisp/index.html

<comment><USER2> Glad they included quicklisp in this intro, it's always good to get beginners able to install libraries so they can get maximum value quickly.

swank + stumpwm is an awesome way to live. I've recently become a fairly big proponent of gnu guile, I hope the guile-wm project gets some love soon.

</comment><comment><USER3> I used to use/contribute to Stump - I really liked it at the time. Can't actually remember why I moved away, possibly craved the relative simplicity of i3.

<comment><AUTHOR> I have today moved from i3 to emacs + stumpwm + swank. The docs are scarce, I'm stranger to common lisp (though I've know my elisp rather well, and also have used some scheme and some clojure), but still the repl is invaluable. I like how much it resembles Emacs, the stumpwm. Also, because it is common lisp based, maybe I'll get to learn some common lisp, which I wanted to do for a while.

Comparing the two, well, I do not really use a window manager for more than switching between emacs, firefox and displaying the battery, dropbox and wifi status, so pretty much any wm would be enough for me. Still, the easy integration with emacs and the repl connection is a good thing to have. Especially compared to e.g. xmonad, which you compile every time.

<comment><USER3> The trouble is, the repl is only really useful whilst you're extending stump or your configuration. You want to actually control the WM with keybindings, not tapping out lisp into a repl.</comment></comment></comment>


Work and Meaning: View from a Senior HP Manager - <AUTHOR> http://theonda.org/articles/2009/07/03/work-and-meaning <comment><USER2> His perspective appears to be from one who is young and self-involved, so I'll be kind: the 60% that he hates have personal goals other than promoting HP's agenda. These goals could be raising a family, taking care of an elder, etc; he will never know. Remember the sacrifices your parents made for you. Working for any company (Ycombinator startups included) will never return the love you give it.

Bottom line: develop your skills, have integrity, be a professional. But, remember that it's just a paycheck at the end of the day. A company will lay you off the moment you are no longer useful to it. This isn't necessarily a bad thing; just don't have undue illusions about it.

<comment><USER3> _the 60% that he hates have personal goals other than promoting HP's agenda._

So do the much of the other 40% percent. Does someone wanting to get things done and the passion to get interested in what they are working on immediately make them a promoter of an agenda that is not their own? Is what we decide to work on _always_ a product of external expectations? If so, I suspect your understanding of human behavior is faulty. Not everyone works for money because they have people depending on them or a company line to toe. Not all of this is about deciding the more noble sacrifice, or even about sacrifice at all, ok?

Developing skills is good; having integrity is good; being a professional (whatever that means) can be good. But if you make what you do just about the paycheck, or if you justify that stance by waving at other people who depend on you, I don't know that I can consider that a stance that demonstrates integrity. It demonstrates a willingness to sacrifice, for certain; this is something you consider very noble. But sacrifices can be made for reasons that are anything but noble, and even sacrifices that are noble are not necessarily ones that are wise.

For instance, you raise the point about raising a family, and the way that makes a person become a 60%er. Quite frankly, I wish I would start seeing people around me sacrifice less to their families. Of the men I have met who are married and have families, I can't say that all or even most of them are happy with the balance they feel forced to make. It is almost as though the family goal, or at least the degree to which they feel obligated to focus on it, was foist upon them by someone else. They want to focus on other things too, but they can't and not risk having people sneer at their "bad parenting". I have recently had to endure a good friend going through a divorce, brought on because he sacrificed his creative spirit to be the family man. It was very noble of him, but it was also amazingly dumb as he learned in hindsight. His family would've held together far better if he had pushed harder for time to be creative and accomplish his other goals in life. Instead, he let it fester, and it imploded in his face.

And as for my parents sacrifices to me, I do remember, and I wish they had made fewer or at least different sacrifices. I would happily give back a number of the presents they gave me when I was younger to see them happier and personally more fulfilled more often. I would not have minded a smaller house, less privacy, fewer toys, or similar withholdings if it just meant I could look back and not feel like such a fucking burden on them. I think it would've allowed me to develop a more positive outlook on life and what it has to offer sooner, rather than having to realize on my own later on that a lot of this self-sacrifice people do gets us largely nowhere.

So no, this is not all about picking the sacrifices we make, with the realization that in the end we're all gonna get screwed and have to except the sublinear returns we do get. It is about realizing that how we treat ourselves, and how much we make sure we are feeling fulfilled in life, has a huge bearing on how we treat those who we care about and who care about us, regardless of the bullshit we tell ourselves about how we can strictly segment our lives. All that is bollocks, and it has real consequences; just ask my now freshly single friend.

</comment></comment><comment><USER4> I suspect there's just a wee bit of hypocracy taking place here.

One has to wonder if this truly was the case, and he came to these conclusions in a reasonable timeframe (on the order of 1 year), why on earth he's bothered to stay with HP for 2 full years?

Very likely this was due to an "earn out" clause in the acquisition agreement of Tabblo (his start-up).

So, in other words, the author has stayed-on for...the paycheck.

<comment><USER3> There might be hypocrisy, but I suspect that is not the case. It is possible that the A player 20% he encounters is enough to make him feel like the value he gets out of working at HP is greater than the value he might get going somewhere else. Not all the value one derives from an employer is in the form of currency.

<comment><USER5> HP is a vast company, 150,000+ employees. 30,000 of those are of a quality that if they move companies, press releases get written? Doesn't ring true to me.

</comment></comment></comment><comment><USER3> _They have the skills to get things done, the passion, and perhaps most importantly, the patience required to make elephants dance (big companies get stuff done). Every time I meet one of these gems, I walk away believing a little more in the human condition._

I really wonder how often these three traits are all found in one person. I have a hard time imagining a person being passionate and able to get things done, but being willing to move forward at a rate mandated by the rest of a large, bureaucratic organization. Perhaps this is the group of people that is competent but also feels a stronger obligation to those they support to have something stable.

My reaction to this is slightly different than the authors: I actually find myself fearing for the human condition. Whenever I meet these people, I find that they are often on the brink of ceasing to care. They'll keep their skills, and keep learning new ones, if only because they are insatiably curious. They'll remain patient, because what they are dealing with at that moment is likely the hardest test their patience will have. But, they'll lose the passion, either because they tire from constantly pushing against the elephant, or because the feeling of obligation will force them to, so that they don't burn-out and potentially leave those who depend on them unsupported.

One might argue that their passion isn't lost, it is just redirected to other things (children, family, other hobbies, etc.). This I have a hard time believing, because I've run into people at small, young companies who _are_ passionate about their families and hobbies, but they are _also_ passionate about their work. These are the people that make me believe a little more in the human condition; they are the ones that have decided that sacrificing their fulfillment, although noble and heavily encouraged socially, has its own risks that are not trivial. It's possible that they _can be_ fulfilled just by family and other hobbies, and their work doesn't have to matter. If they can't, depression will fill the cracks, and will bleed over into every part of their lives, in spite of how much they may claim success in compartmentalizing. Even if they can, treating this as a zero-sum game seems broken to me, if for no other reason than the people I've known who are counterexamples.

<comment><USER6> sounds like atlas shrugged

</comment></comment><comment><USER7> "...you will never get more than a paycheck..."

That pretty much nails it.

Almost every time I asked someone in a large institution about putting up with something that obviously made no sense, I got the same 3 word reply, "It's a paycheck."

<comment><USER8> Which often means "I tried and tried to change that thing that made no sense, until I was told that I would be fired if I didn't stop."

<comment><USER9> In my experience, that's almost never the case.

<comment><USER8> In my experience, that's almost always the case.

EDIT: Just to expand a little. In my experience (and Philip Greenspun would support me: [http://philip.greenspun.com/ancient-history/managing- softwar...](http://philip.greenspun.com/ancient-history/managing-software- engineers)), managers generally are less up to date on technology than the people that report to them. While they may be more "in the know" about the concerns of the business, it's almost invariably backward-looking, i.e. what got the company this far, and protecting those gains. Add to that the rigors of trying to climb the career ladder, the increased status that makes most people less "hungry," and it's just common sense that change comes from the bottom. Good managers recognize that, and try to manage it. Bad managers just say "No." There's a lot more bad managers out there than good ones.

<comment><USER9> My experience challenges your experience to a duel to settle this for good!

<comment><USER8> Resumes at dawn!

</comment></comment></comment></comment></comment></comment><comment><USER10> It's all about mindset.

The startup mindset is focused on building something great.

The big company mindset on survival within the organization.

At least that is what many of the founders I have represented have reported back to me after having their companies acquired and after having gotten roped into employment stints with the acquiring company.

In almost all such cases, once the employment period expires, they can't wait to get out.

I am sure this is not any kind of universal rule, but it often happens.

BTW, not endorsing this particular author attitude in particular, which I found off-putting in itself.

</comment><comment><USER11> There are two kinds of workers. Those that say Yes - let's do this, yes, let's build it. And the other kind are those that say No.

Why do they say one or the other? It has to do with the perception of risk and reward.

Crazy new Yes guy says, let's do this! And the long-time No thinks, this won't make my stock options go up, and if I fail, I'll be punished by management.

It is unpleasant to be one kind and interact with the other.

Big companies tend to have an outsize appreciation of negative risk. We might look bad in the press, etc. So the general behavior tends towards consensus and risk-mitigation quite naturally, rather than risktaking. You need the right mix of both.

</comment><comment><USER12> His 60% has got to be untrue. Much more likely it's 60% of the people he is actually exposed to.

While reading, I was expecting the 60% to be the salt of the earth, the nameless drones who did the unsexy work that no one else wanted to do, the professional service workers, the documentation workers, the QA folks, etc.

<comment><AUTHOR> Also, may just mean 60% of the managerial class.

<comment><USER8> That was my impression. It's an obnoxious perspective.

<comment><USER13> I don't know. Have you ever worked in a large IT department or large organization? It can be very, very painful when 10% of the people are working their ass off and the rest are kind of skating. Even worse the 80% can make projects harder than they need to be by layering on meeting after meeting because they approach all projects with the same techniques - large or small.

<comment><USER5> It's very difficult to fire people in most countries. If you've got someone who was never particularly good at their technical job (or hasn't kept their skills current), you kind of have to transfer them to a hands-off position to keep them from damaging anything directly, and the only way to do that and everyone saves face (i.e you don't get sued for constructive dismissal) is to promote them to management.

And that does protect the codebase and the production systems in the short term, in the long term, all the reports they insist people write that don't create any new and valuable knowledge, all the meetings they insist people attend that don't communicate any information or make any decisions, etc, are enormously damaging, not only directly in lost productivity but in the damage to the morale of those who are still motivated.

So most management really _is_ bad, but not because of anything inherent in the management role - because the wrong people are doing it for the wrong reasons. There needs to be much more up-or-out [http://thedailywtf.com/articles/up-or-out-solving-the-it- tur...](http://thedailywtf.com/articles/up-or-out-solving-the-it-turnover- crisis.aspx) .

<comment><USER8> I really enjoyed that article. Thanks for the link.

</comment></comment></comment></comment></comment></comment><comment><USER14> i dont seem to hate his post as much as most here do. In fact if anything, im suprised that he went so lightly on the 20% Peter-principle-bucket folks.

While I agree on the breakdown, my personal feeling is that the lame 20% is the reason why the other 60% exist. They allow it, and through incentivizing the wrong behavior grow it. If they stamped it out (and they are the people in the position to do it) n% of the 60 will up their game (because it now becomes the strategy closely allied to their own self interests) and n% will leave, which I think is an ok result n the long run anyway..

</comment><comment><USER15> And which category does the author fall into?</comment>