Why Does Moby-Dick Sometimes Have a Hyphen? (2015) - <AUTHOR> http://www.smithsonianmag.com/smart-news/moby-dick-has-mysterious-hyphen-180957512/?no-ist <comment><USER2> English hyphens are kind of one of the world's worst language features of all time. They're supposed to indicate when two words are being joined together, until people get tired of using the extra symbol and then just drop it altogether and mush the words together into a proper Germanic compound word.

This can happen incredibly fast in linguistic terms -- anybody remember "e-mail"?

Since compounding words happens naturally in English grammar, hyphenation is some weirdo vestigial hangover from the times before English was written with spaces and the "rules" are entirely arbitrary and up to whatever style guide you happened to have studied in school.

In some bizarre twist of fate, hyphenation is on the decline and instead of just compounding two words together like any decent Germanic language, some style guides are encouraging people to keep the words separated with spaces, coming a full 180 degrees from the original use of a mark to compound words for clarity in texts made without spaces.

Is it "on-line", "on line", "online", how about "log-in", "log in", "login"?

It shouldn't go beyond notice that the hyphen seems to exist as a way to prevent compounding in the proper Germanic way, but isn't needed at all for Latin or Greek based compounds or neologisms.

Language prescriptivists can make a real mess of things and really screw the languages up for the rest of us. Trying to Romanize English was a terrible idea.

<comment><USER3> I agree with much of what you said, but this:

> "log in", "login"?

Is a bad example, because these two have taken on two slightly different meanings: the spaced version is the verb, and the single word version is the noun.

<comment><USER2> It also turns out that English tolerates noun/verb homophones just fine, the orthography doesn't change the pronunciation at all and it doesn't really matter in this case.

<comment><USER4> You sound like you know more about this than I do, but I find _login_ as a verb distasteful and believe such usage should be avoided. What would you do for the past tense? You'll decompose the word to its natural verb, _log_ , and write _logged in_.

Also, I, for one, still favor _e-mail_ , but I'm definitely in the minority there.

<comment><USER2> I think the problem I have more is that most of this business hinders communication by trying to establish rules that are orthogonal to the language -- usually with some kind of prestige agenda towards Romanticizing English. Hyphens to compound words were simply a convenience and clarification mark for a time before we used spaces. We use spaces now, hence we don't need hyphens anymore to compound words.

What we do need is a more reasonable set of conventions that are well harmonized with the mechanics of the language.

e.g. Shall we use "login" as a verb? Then we're going to get verb tenses like "logined" and "logining". Are we, collectively, okay with that? Then fine, we'll use that.

If we don't like that then we won't compound the words in the verb usage and continue on with "logged in" and "logging in".

But then we'll have this weird case where the verb "log" almost always means "to keep a record of", _except_ when followed by "in" or "out". But languages tend to not like this kind of exceptionalism and we'll probably be in a state where we keep evaluating just compounding them and applying the existing tensing rules.

<comment><USER4> Personally I prefer _sign in_ over _log in_. Partially because _to sign_ seems to carry a stronger connection to the intended meaning, _to authenticate_ , than _to log_ does.

<comment><USER5> It's the same metaphor—you're signing the (virtual) logbook to get in.

<comment><USER4> Good point, it is the same metaphor, but signing is the essential action. What do you do with the log book? You _sign_ it.

Another reason I prefer _sign in_ is because there's less discord about its usage. I have never seen anyone try to write _signin_. Maybe they'll hyphenate it, but even then people seem less inclined to use _sign-in_ as a verb compared to _login_.

<comment><USER6> My general rule (I don't remember where I picked it up. Maybe the Chicago Manual of Style?) is that the verb form is that the hyphenated or single-word form is the noun or adjective, and the unhyphenated form is the verb.

\- He will log in to the system.

\- What's your login?

\- Please sign in.

\- That's the sign-in table over there.

Along these lines, does the button/link describe the action (click the button to _log in_ ) or the type of button (the _login_ button).

The question of whether to to use sign in or log in is separate.

I go back and forth on prescriptivist vs descriptivist versions of language, though at the end of the day, languages that are in use change. I think it makes sense to create the equivalent of a stylebook for a publication or site so that there's consistent usage (prescriptivist), but understand that there are going to be inconsistencies across the use of language as a whole (descriptivist).

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> So when I finish a book, I'll occasionally switch over to Moby Dick while I figure out what book to start next. Over the course of like a year, I've made it past the 50% point.

It's honestly a terrible book. The author is more obsessed with whales than his characters. There are entire chapters dedicated to whether whales are fish. Other chapters that describe every tiny detail about the whaling industry.

I mean I guess it's good if you want to understand historical whaling. But it's hardly an enjoyable read.

<comment><USER8> There's a big different between "a[n objectively] terrible book" and "not something I like".

</comment></comment><comment><USER9> WTF with the auto playing video on mobile when you scroll down? I guess I'll be avoiding smithsonianmag links...

</comment><comment><USER10> TLDR: We don't know

...and, let's face it, nobody cares. Move on, dear reader.</comment>


Front End JavaScript Error Tracking - <AUTHOR> http://grexi.github.io/console/

<comment><USER2> This is a cool project- I've been working on a version of this using Sentry, a PhantomJS web scraper and a simple XHR.

Admittedly, HTML2Canvas (or anything that creates <canvas> from the page so it can be screenshotted) is pretty cool and allows this great sort of annotation/selection capability where a user can choose to highlight what went wrong and provide some feedback. That's great. I found html2canvas to be really resource heavy when taking the snapshot, and there was no way to do it 'automatically'. Why does that matter? When debugging, I want _history_.

My ideal bug-reporting tool would not only give user specs, stack traces and a screenshot, but a history of screenshots going back to an arbitrary length so I can figure out exactly what the user was doing that triggered that error. Trial and error could lead one to the correct sequence of screenshots but I've found one per 10s / 6 max (so 60s of history) to be a pretty good way to do it.

So if you know you want history, how do you get it? You can't use html2canvas to just take snapshots the entire time the user is using the page (I've tried (work account on GitHub): [https://github.com/niklasvh/html2canvas/pull/270](https://github.com/niklasvh/html2canvas/pull/270)). It's far too slow, memory heavy, and if done asynchronously can create really strange render bugs if the user scrolls or mutates the DOM. Some of these issues can be fixed but it will forever be slow and take a ton of CPU. So I came up with something else.

At the same time I was working on a web scraper + screenshotter using PhantomJS that talked to RabbitMQ. I thought: why render the screenshot at all on the client? I have all the same resources; I can recreate the environment from source, on my own time, asynchronously, without making the client do the work for me and slowing down their browser. So the implementation I came up with does the following:

1\. Maintains a rolling 5-element array of HTML snapshots (usually via document.firstChild.outerHTML), tied to setInterval. That part is easily configurable to your preference. The snapshots even contain a virtual cursor element that I just track using mousemove events. 2\. On error, collects the usual data using Raven (the client-side library that reports to Sentry, the open-source error aggregator). 3\. Rather than hit Sentry directly, the browser POSTs to a local route. That route separates the HTML snapshots from the Raven/Sentry data, and creates UUIDs for each snapshot to create S3 filenames. 4\. The Sentry data is sent to Sentry along with the S3 filenames, and the HTML + filenames are put on a RabbitMQ queue. 5\. A separate process is listening to the queue, grabs HTML off the queue and renders the page using the CSS (no scripts) from the running webserver. The screenshot is then uploaded to S3. 6\. A Sentry plugin displays those images in the bug report, assuming the S3 urls are valid. They may take a while to resolve but they usually show up in < 2 minutes.

Since there are a lot of moving parts, I've always wanted to create a simple devops service out of this, but I haven't had the time, being busy with other projects. But if there is interest, I could open-source some of the components.

</comment><comment><USER3> One of my friend had made a similar project around 2 years back.. its called errorception.com.

I think it seems to be doing good now..

<comment><USER4> You might want to check out Atatus, www.atatus.com.

Their next release (out in the next few weeks) will feature Contextual Error Tracking - which helps a developer to know what user actions happened, find out what input the user gave, identify in what context the error had occurred, easily reproduce the error from the steps listed, etc.

They also provide a detailed Stacktrace and Environment report.

Note: I'm not affiliated with Atatus directly. I know them as they work out of my coworking space, but I'm a big fan of the tool and hopefully, first in line for the next release.</comment></comment>


A Call for More Professionalism in Tech - <AUTHOR> https://speakerdeck.com/garann/bacon-is-bad-for-you

<comment><USER2> OMG You can't say that.

There now that is done, this needs to happen. Being professional means accepting the things you can't changing, and changing the things that you can. Being professional is about being a real profession, getting paid like it and delivering value no matter what you are doing. Ping pong tables, red bull and casual dress codes aren't perks for professionals because they know that they can afford that by delivering value, they'd much rather buy it with money they earned working their 9-5 job. Being professional means that you respect your colleagues, but still push them to do their best. Ultimately, it is the opposite of what our field has become, and most business people think its a joke (read everyone else we work with). The best technical people I've worked with were real people, with real hobbies and passions. They didn't sit behind a desk and have "cool" projects but rather they did excellent work, went home to brew craft beer (or whatever), and had real stories/experience and had lived real lives. I don't honestly give a shit if you wrote an operation system or a programming language if you are intolerable to work with or just a plain uninteresting person. Being technically able to great for technical jobs, but I'd rather hire a professional that gave me 8 hours of his/her best, than some guy who was boring as hell but gave me 12 hours every day (including weekends).</comment>


Apple to deploy 1Password to all 100,000 employees, acquisition talks underway - <AUTHOR> https://bgr.com/2018/07/10/apple-1password-acquisition-deal/ <comment><USER2> This is clickbait journalism at its worst. Let's look at the all the ways this story is designed to mislead and deceive:

* Provocative headline, designed to attract attention

        * Use of the word "Exclusive" to imply that this is important information

        * Says acquisitions talks *are* underway, despite having little or no evidence of that

* Reliance on anonymous second or third-hand sources - the only evidence for "acquisition" is something that an employee overheard the CEO say

* Update, placed at the end of the story, that disconfirms the story

* Placement on aggregator sites like Reddit and Hacker News in order to drive pageviews

I rarely say this about stories on the frontpage, but in my opinion, this story should be flagged and deleted. There's no content here, and driving traffic to bgr rewards them for putting out this kind of fake news. This story reads like someone took Ryan Holiday's book, _Trust Me I 'm Lying_ and treated it as a field manual rather than a set of warnings.

</comment><comment><USER3> "Rumours of my acquisition are completely false. My humans and I are happily independent and plan to remain so."

[https://twitter.com/1Password/status/1016710603359096846](https://twitter.com/1Password/status/1016710603359096846)

<comment><USER4> That's a relief. Apple acquiring 1Password would torpedo any chance of getting a decent implementation on Windows. The implementation and integration on OS X are sublime, but Windows still leave a LOT to be desired.

<comment><USER5> I agree that 1Password on Windows has issues, but I feel like the developers got screwed by Microsoft on this one: they went all in on a UWP version, then had to throw all that out and basically start from square one when it became clear that UWP was a dead end. So I cut them some slack on that score. 1Password for Windows is improving, it's just taking a while (version 7 is a big step up, for example)

<comment><USER6> UWP is such a dead end that all new Windows 10 APIs are UWP only.

<comment><USER7> Last time I checked, about half of the windows market is running Windows 7 which doesn't support UWP. So UWP is a dead end for anyone who needs broad compatibility.

<comment><USER8> Windows 7 is a dead end. UWP is the future, however shitty it currently may be.

</comment></comment></comment></comment></comment></comment><comment><USER9> There's rumors that Apple will release a Prime like service. It would be very nice to see Music, 1Password, iCloud Storage, and whatever TV show they are working on bundled into an annual subscription.

<comment><USER10> It would be lame if Apple bought 1Password and continued to charge for it. It doesn't have the same economics of stuff like storage or music streaming and should be free if backed by a company like Apple. I have no problem at all paying Agile Bits, but I don't want to pay Apple for a password manager.

<comment><USER11> So, on one hand, I agree, password managers/FIDO should basically be part of every OS/browser and tech companies should come together to make it all interop seamlessly for the good of society.

On the other hand, the biggest barrier to adoption that I have found is people losing their master password. And supporting good account recovery is difficult and expensive. A subscription service that actually had a real way of validating identity for account recovery could be something worth paying for, for people who are not very tech savvy.

Maybe we can come up with a good account recovery service without dedicated customer support folks, but the moment you have a bad experience, you're probably going to go back to Password123.

<comment><USER12> Any possibility of account recovery completely torpedoes the product's security.

<comment><USER11> But in the real world, should there be account recovery, or wide spread password reuse where hacking random sites gets people's passwords to more important sites.

<comment><USER13> Neither. And that's a false choice.

</comment></comment></comment></comment></comment></comment><comment><USER14> Could someone please try to convince me why I should be using anything other than Bitwarden? In years past I'd exhaustively review my options for password manager. When LastPass was acquired by LogMeIn I stumbled upon Bitwarden and haven't seen any news or commentary which has caused me to rethink that decision.

Edit: zero affiliation with Bitwarden

<comment><USER15> Why don't you convince us?

1Password seems to be OK. I use it and pay subscription. Except for frustrating login experiences with some websites, don't have any problems.

Never heard of Bitwarden, doesn't seem particularly compelling compared to 1password.

</comment></comment><comment><USER16> 1Password is amazing. Hopefully Apple doesn't even touch them, and they continue developing that CLI that's been hinted at and teased a few times.

<comment><USER17> Isn't the CLI already released? See [https://support.1password.com/command- line/](https://support.1password.com/command-line/)

I haven't used it, so I'm not sure how feature-complete it is.

<comment><USER18> I tried to use it, but the syntax is way more complicated than it needs to be to retrieve a simple password. After 10 minutes of trying to figure it out I gave up and just used pass instead.

If anyone knows how to use it to retrieve passwords / copy them to the clipboard, I'm curious because we use it at work.

edit: It looks like it might be possible [0], but it requires a long command or a command alias. The lack of tab completion is kind of problematic though.

[0] [https://gist.github.com/justinline/e11ac0f08f267502b9e963624...](https://gist.github.com/justinline/e11ac0f08f267502b9e96362457d03c6)

<comment><USER19>
        op get item <name or UUID> | jq '.details.fields[] | select(.designation=="password").value' | sed 's/"//g' | pbcopy

will put the password for <name or UUID> on your clipboard on a Mac. (I'd probably wrap everything before `| pbcopy` in a function so it's easier to call and use directly if you don't want to copy the value)

</comment></comment></comment></comment><comment><USER20> I don't understand this deal. What's in 1Password that isn't in iCloud Keychain or easily added to it? Windows and Linux support? Is that worth much to Apple? If so, why?

<comment><USER21> When 1Password noticeably improves the usability of all your competitors' platforms, buying it and killing it makes sense.

<comment><USER22> I'm a LastPass user and have never used 1Password, but is 1Password really better than the competition (like lastpass)? Buying your only competitor and shutting it down is great, but buying one of many similar competitors just seems like it would bolster adoption of the others and improve _their_ market position more than it would improve _yours_.

<comment><USER23> 1Password is an order of magnitude better regarding the UI and UX.

</comment></comment></comment></comment><comment><USER24> I've never understood the appeal of paid password management services like 1password. Is there any benefit to using this over something like KeePassXC + Dropbox?

<comment><USER25> Usability. 1Password on my Mac and iPhones with iCloud as backing storage "just works", and I trust iCloud more than Dropbox for secure storage.

Disclaimer: Using 1Password 5, which was a one time payment.

<comment><USER26> KeePassXC and Dropbox "just works," and it works on Windows, macOS, Linux, *BSD, Android, iOS, ...

Dropbox can be swapped out with other storage services.

<comment><USER27> > KeePassXC and Dropbox "just works," and it works on Windows, macOS, Linux, > *BSD, Android, iOS, ...

At least on iOS, this doesn't appear to be meaningfully true. With 1Password if I have navigated to a site's login page in Safari, all I need to do is hit the 1Password Activity button and it will populate my name and password.

With "Keepass Touch for iOS" my options are either: "You're browsing wrong. If you want to log in to something, use the integrated browser" or "switch apps from safari to Keepass, copy username to clipboard, switch back to Safari, paste username, switch back to Keepass, copy password, switch back to Safari, paste."

No thanks. This is still meaningfully behind in the usability department.

</comment></comment></comment></comment><comment><USER28> If Apple has thus far dogfooded iCloud keychain, will it now suffer? :(

<comment><USER29> Could it possibly become any worse? The UI has always been lacking, and functionality has gotten worse over time (e.g. aws-vault cannot actually work without popping up a prompt window every other minute since a recent update to OSX). Discoverability is poor, there are a hundred keychains ("login", "icloud", "system") and even I as a security conscious IT professional don't know what they mean, god have mercy on the casual user finding their way. Where are which passwords stored? WiFi passwords are stored across multiple chains depending on OS updates, but not migrated across. To view the password of a single item I have to enter my password twice, for some reason: once to.. unlock the keychain, once to unlock the item? Or to allow "keychain" access to the item? What?

God, the icloud keychain cannot die soon enough. What a shit show.

<comment><USER30> Wow, it's interesting how different people's perspective can be.

One of the deciding factors for me switching 100% to iOS and MacOS was the unified keychain across all browsing and apps. For the first time in _ever_ I rarely do password resets in an app. There are a few apps that "brilliantly" roll their own password input fields and those don't work, but they are rare. And a few websites that split the username and password onto separate screens that are kind of hit or miss, but again rare. And on the ios12 beta, the keyboard grabs one-time sms codes and auto-inputs them with one tap.

From my layman's perspective I have one keychain and it has everything in it. And it just works 99% of the time. But I don't use it for AWS anything. I don't know or care about the different kinds of keychains -- they just work.

Not doubting your experience, just wanted to throw out there another one.

I only wish Authy (my current preferred 2 factor token generator) was more integrated with the Apple keyboard, but it has a widget that makes things pretty quick.

</comment></comment></comment><comment><USER31> The 'acquisition talks' appear to still be a hearsay rumor but who knows. I am an Apple hardware/OS user, but I prefer other companies' services. Worried if there is an acquisition that Apple will make an inferior product and shutdown 1Password :/

<comment><USER32> Apple already has an inferior product, the password syncing service built into iCloud. I'm not sure I see what value 1Password has to them at all except for it's cross-platform support and more robust feature set.

<comment><USER31> Agreed, worried an acquisition would just absorb 1Password into the existing inferior product.

I hate it when big companies do this. They often shut down good products and then years later they've only implemented a fraction of the acquired product's feature set into their own product.

</comment></comment></comment><comment><USER33> I'm hoping this leads to a better integration API for password managers in general on iOS. I use Bitwarden, and it's a real pain to log in to native apps using it - you have to copy/paste between the Bitwarden app and the app you're logging in to.

I've spoken with the Bitwarden team and they indicated that it was a limitation of iOS and there wasn't anything they could do on their end.

</comment><comment><USER34> App store preview link: [https://itunes.apple.com/us/app/1password/id568903335?mt=8](https://itunes.apple.com/us/app/1password/id568903335?mt=8)

(no additional info, just for convenience looking it up)

</comment><comment><USER35> I think this is in fact a good omen for the Standalone version of 1P. If Apple is going to be using that, you know they will not discontinue it as I was fearing they'll do some day or another.

</comment><comment><USER36> May be they're just testing iOS 12 third party password manager integration?

</comment><comment><USER37> Acquisiton? This doesn't bode well for the Windows version of 1Password.

</comment><comment><USER38> Why wouldn't they extend their own native password management tool instead?

</comment><comment><USER39> If this is an acquisition, Apple would integrate 1Password into their ecosystem, enriching it immeasurably, but the Windows, Linux, and Android versions would almost certainly be abandoned. That's a shame.

<comment><USER10> Apple makes Windows and Android apps, I don't see why this has to be different.

<comment><USER40> They make a very limited set of Windows and Android apps that are all clearly intended to drive sales of Apple Music and their hardware. (One of their three Android apps appears to be a "move to iOS" one, too.)

1Password for Android doesn't drive any Apple product sales.

</comment></comment></comment><comment><USER41> Hope they keep things working well for current customers

</comment><comment><USER42> Off topic : does anyone know why using these kind of software would be more secure than storing the password ourselves in text files ? I fail to understand as hackers / virus makers just now need to hack one software to get everything

<comment><USER43> Seems obvious, these managers store the passwords in an encrypted file. Requiring one (hopefully) really good password to lock it all down plus a 2nd factor option like ttop or fingerprint.

I only have to remember one long complex password that I have never used anywhere else and that secures and encrypts all my other passwords. And rather than searching and copy pasting, a browser extension can fill in passwords when I request.

Add to that, a password manager generates a long and complex and unique password for every account I have so I don't have to make one up or go to another source to create it.

And one of the coolest features, though it doesn't work everywhere and I am only familiar with LastPass, is its ability to automatically change passwords. On certain sites, I can tell it to rotate all the passwords in my file. It logs in and makes the changes for me.

<comment><USER42> You can encrypt a text file on your computer as well. Doesn't change the fact that once decoded in memory or sent via the web browser it's all clear what your password are (here are the true security threats)...

</comment></comment></comment><comment><USER44> I prefer and pay for 1Password's subscription but I already tested the export and import into enpass.io: It works very well!

If the acquisition takes place, I will switch immediately. I am against vendor lock-ins and Apple is the first company I associate with that.</comment>


Game Detection/Identification API Using Tensorflow and Go - <AUTHOR> https://github.com/s32x/gamedetect <comment><USER2> This is really interesting. Shouldn't it have a "Show HN" prefix?</comment>


The psychology of how being told what to do impacts our productivity - <AUTHOR> http://blog.goodsense.io/2013/02/16/the-psychology-of-how-being-told-what-to-do-impacts-our-productivity/ <comment><USER3> > _Some product manager/project manager/engineering manager already broke > things up into user stories. Those user stories were further broken down > into tasks. The tasks were then evenly divided amongst all the engineers. > Each engineer didn't have much of a say in it. Some might call this slave > work. It was the most unproductive time of my life._

This is one of the central dilemmas. To some people, it sucks -- they'd rather be programming rockstars, solving big problems in a way that's interesting to them.

But in most of the real world, when you've got various stakeholders, a big project, lots of programmers whose work needs to be coordinated, with standards, and you can't get bogged down in n-to-n communication, this is just how it often has to be. Face it, _most_ work in this world is "slave work", if that's how you want to call it (although I think that sounds rather insulting, when you think about how an unfulfilling office job you're free to quit is a million times better than _actual_ slave work).

And part of being a professional and mature programmer is realizing that, look, that's life. Sometimes you will get a job with a big say in how things are done, be super-independent, and it will be amazing. And sometimes you'll look back five years later and realize how it was a great learning experience for you, but you over-engineered it in a language or with a library that nobody could use afterwards, the whole system was replaced a year later, and you effectively wasted a lot of time and money of the company's.

But at the same time, sometimes you _do_ need rockstar programmers, who are talented enough to be given free reign, and they'll produce amazing results, as long as you don't micromanage them, or even barely manage them at all. Different projets are different. And different employees are different, too.

<comment><AUTHOR> But this is also hacker news -- where people don't settle on normal work. They're bold enough seek out only meaningful work. Either by starting their own company or joining one where they can make a huge impact without the typical fluff.

<comment><USER4> thats a bit broad - define meaningful work? - why is it more meaningful to go work at say a YC funded startup - than it is to go work for a larger corporation working in the same space? Lets face it - most startups dont make a huge "impact" - on anything other than the pockets of investors and founders - and that too in a small percentage of the successful cases that get overly romanticized!

<comment><USER5> He didn't define meaningful, because it's subjective and unique individual, so it might well be working for a larger corporation. His point was that the attitude around HN is to look for meaningful work as opposed to work that just pays the bills.

<comment><USER4> why cant "just pay the bills" be meaningful? - for more than 70% of the world thats very meaningful. Its also flawed to assume that everyone on HN is someone sitting in the valley with a bunch of job offers.

<comment><USER5> You wouldn't call it "just paying the bills" if it was meaningful. Meaningful in this context means something that you would do for free. At least, that's how I define it.

That's not to say that 70% of the world's struggle is meaningless. It means survival.

Also, you don't have to be in the valley to wish for meaningful work. I'm not and I do look for work that I enjoy doing.

<comment><AUTHOR> I have many friends who are working just to pay the bills. And they hate their jobs. Most people actually dislike their job in some way.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> This is the exact philosophy that businesses use to promote perfectly good specialists to "management."

Some people _need_ structure. Some people don't want to define the plan because they take it personally and any minor failure is, to them, a personal catastrophe.

Not wanting to be "the boss" is a perfectly acceptable way to be productive. Some of the brightest developers in the world are the most productive when you let them sit in front of their workstation and code on something that flexes their brain.

The key is identifying how each individual is wired and what their motivating needs are. Not everyone wants to be promoted to tell people what to do, or have more control.

<comment><AUTHOR> Would you want a developer who needs to be told exactly what to do? Or would you rather have a developer can define what to build in the product and then build it.

I don't understand why you want to promote people so they can tell other people what to do. As a manager, it's more beneficial to have an employee who can tell me what they want to do.

<comment><USER7> There's a middle ground: developers that need to be told _what_ problem to work on, but who are smart enough to take it from there.

It's very useful to have a few of those on the team, because as a manager it allows you to ensure certain priorities are met, whilst giving those that thrive on freedom the space they need.

So, to answer your question: I'd rather have both.

<comment><AUTHOR> This is why it's so hard to hire right now. The people who can and are willing to do both can work anywhere they want.

</comment></comment></comment></comment><comment><USER8> The key thing when working with engineers is to give them a problem to solve - but don't tell them _how_ to solve it. As a programmer I relish the challenge of problem solving. But I hate being told how to think.

 _In this case I was part of a scrum team at a large company. Some product manager/project manager/engineering manager already broke things up into user stories. Those user stories were further broken down into tasks. The tasks were then evenly divided amongst all the engineers. Each engineer didn't have much of a say in it._

This is definitely a management mistake that I've been on both sides of. Getting everyone involved during with architectural process accomplishes several things: 1) Everyone comes away with a bird's-eye view of the project. 2) Everyone has input into the decision making process. When done properly no one feels out of the loop or under another's direct control.

 _Some might call this slave work. It was the most unproductive time of my life. I spent an hour at the gym every day. Another hour eating lunch. Several hours surfing the internet. I was really bored sitting under the fluorescent lighting. It felt like a chore to write code._

I can understand this attitude, but only up to a point - as a professional programmer you should be able to handle an assigned problem, figure it out and complete it. Instead of taking a long lunch take a few minutes to talk to your boss and voice your concerns. There's no excuse for half-assing it.

<comment><AUTHOR> I never said I was slacking off. In fact I got more done than anyone else on the team. It just felt like I was there only to work.

I openly told everyone how I felt. That's when I decided I didn't want to be a professional programmer anymore. I talked to boss man and we mutually agreed that there was no way for me to be happy being a cog in the wheel.

<comment><USER9> You can be a "professional programmer" without being a "cog in the wheel" so directly. At the end of the day though, we're all cogs in the great machine of society. The sooner you accept that, the sooner you can be happy in your work

<comment><AUTHOR> I'm a little delusional. I believe that having the ability to choose what I work on makes me happy. This is why founders like being founders. They don't want to accept things the way they are. They just want to make it better for everyone else.

</comment></comment></comment></comment><comment><USER10> Wow, psychological reactance.. there's a name for my illness! I thought I was the only freak who procrastinated immensely on a task just because someone ordered me to do it--especially if I was just about to do it anyways. Since I was a kid I would get bummed because if I did as ordered, the person would think I was only doing it because I was told, and self motivation has always been my biggest driver. Luckily I love my day job exactly for the lack of direct pressure from superiors.

<comment><AUTHOR> I thought it was only me too. I didn't understand why I hated being told what to do. I would purposely start new skunkworks projects instead of doing what I was supposed to.

</comment></comment><comment><USER11> When I hear stories about how someone successfully broke into the highly competitive <insert name> industry without any previous experience the quote from IT Crowd comes to mind: "When i started Renholm Industries I had just 2 things in my possession. A dream and 6 million pounds."

</comment><comment><USER12> This is _highly_ contextual. If the US were to go to war with China, can anyone imagining the USN being more productive by saying to its sailors "Choose what you want to do and how you want to do it".

Or on a smaller scale, professional sporting teams are _much_ more effective when they're able to work to a common plan than just being a bunch of individual stars. The teams of individual stars may feel better because they each get to behave the way they want to, but overall they're less productive.

<comment><AUTHOR> I was speaking on behalf of personal productivity. Not team productivity. But there are definitely failures in professional sports too. When one player doesn't feel like he's not being included enough then communication breakdowns ensue.

<comment><USER12> Much of this debate centres around whether you define 'being productive' as 'enjoying your work' or 'providing value'. I've certainly done work which was enjoyable and progressed quickly in it due to that fact, but in the overall scheme of things had negligible value for the company - that's not productive work, in the sense that most people would use.

<comment><AUTHOR> Well, which is more important for you personally?

<comment><USER12> Having fun, obviously, but that's not the title of your article.

<comment><AUTHOR> Neither is providing value.

<comment><USER12> 'Productivity' is the efficiency of creating product. You'd be drawing a pretty long bow to suggest that most people would call 'having fun' product over 'something that provides value'.

<comment><AUTHOR> I don't think I implied anywhere that having fun meant being productive. I did imply however that having fun will make you more productive.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> i think its a lot more to do with how you're told to do something. Additionally - this effect strongly varies from person to person - you might be better off titling your post "the pysch....impacts MY productivity". Working in the corporate world and on startups I've seen 3 types of people -all equally productive (mind you im not talking about how happy they were or how much fun they had - but since your point is productivity lets stick with that).

Type 1 - entrpreneurs/intrapreneurs - these were the kinds who figured out their way within organizations to make their own niche - do whatever they truly felt like doing - and people typically let them do their own thing - because they delivered results. Of course they had to play the occasional bit of politics - but that is a part of any job or field, and you're never working in a vaccuum where this wont affect you.

Type 2 - the 50/50s - these are people who can overtime become Type 1s - <USER2> like beign given some goal or target and a genera framework / project to work on - and then take it from there - checking in every now and then but mostly figuring their way out - and being allowed to figure their way out.

Type 3 - the TaskRabbits - these are the folks that make up i'd say 60-80% of a company (depending on the industry and company culture it can vary.. a creative agency might have a lower percentage as opposed to say ..a bank). They work with strictly defined rules, have goals and targets defined for them. They usually (atleast the non mediocre ones) try had to get their goals met within that time frame - and wouldn´t be able to perform as well without having all that structure set up for them.

<comment><AUTHOR> The productivity impact is common enough where it didn't happen to only me.

<comment><USER4> what?

<comment><AUTHOR> The article resonated with a majority of those who read it.

</comment></comment></comment></comment><comment><USER13> If you're an engineer doing scrum, and the product owners are "telling you what to do", imo you're doing scrum wrong. Engineers should be involved in turning user stories into tasks.

Even outside scrum, even in a traditional workplace, good managers don't "tell you what to do", because they know it's demotivational. Good managers explain to you why something needs to be done, that is, how it will benefit the enterprise, and let you do it.

<comment><USER14> I was once in the room when one of the guys who wrote the book on Scrum described how many companies implement it. For those who don't know, Scrum says that team members should answer three questions each working day:

      1. What have you done in the last day?
      2. What are you doing today?
      3. Are you experiencing any impediments to your work?

Here is how he said these questions get implemented:

      1. Did you do what I told you to yesterday?
      2. Here's what I want you to do today.
      3. Fuck the third question.

<comment><AUTHOR> Haha, so true. Especially when engineering managers are the scrum masters. They repurpose scrum to get status updates.

</comment></comment></comment><comment><USER15> So, If I write a blog post about Framing Effect I will get lots of karma points too?)

<comment><AUTHOR> If you're not going to do it I will.

People frame things in a different way to make it sound good all the time. "If you can crank out this code by EOD you're going to be a hero." versus "If you can crank out this code by EOD you still won't get a raise until next year."</comment></comment>


What Is Nix? - <AUTHOR> https://engineering.shopify.com/blogs/engineering/what-is-nix <comment><USER2> This article is a good explanation of how nix works at a high level, and I'm excited to see nix getting some really prominent support, but for some reason it never tells you what the point of all of this is, so I think many folks might feel turned off by it. In other words, I don't believe it ever compellingly answers the question that constitutes its title. The word "package" doesn't even appear until near the end of the article! This is probably a second or third article to read about nix rather than the very first thing that exposes you to it.

The point of nix is just to create completely reproducible builds and package management, including support for multiple versions of packages side-by-size with no issues. It's sort of a next-generation package management system that tries to avoid most of the pitfalls that OS package managers have fumbled with up to this point. It's really that simple.

"nix" as a term refers to a system of multiple components that work together to achieve that goal. There's the package manager itself (called Nix), the language that build instructions are written in (also called Nix), an existing ecosystem of predefined packages (called nixpkgs), and an optional Linux distro that uses Nix the package manager as its package manager (called NixOS).

<comment><USER3> What I'd really like to see is a realistic, end-to-end tutorial for either 1) deploying a relatively straightforward web application (like Dokuwiki or ZNC), or 2) setting up a basic desktop for day-to-day use. I feel like I've seen a lot of "snippets", I feel like I understand how Nix works and what it's supposed to be good for, but I don't have a coherent sense of the steps involved in actually using it for mundane things.

<comment><USER4> Look for nix users' "this is not a dotfiles repo" repo on GitHub.

<comment><USER3> Care to clarify and/or add a link? I'm not sure what this means. (Edit: I did not downvote you)

<comment><USER4> [https://github.com/ihebchagra/dotfiles](https://github.com/ihebchagra/dotfiles) I guess sometimes they are called dotfiles haha.

[https://www.google.com/search?q=personal+config+github+nix](https://www.google.com/search?q=personal+config+github+nix) seem to be a good search

Perhaps I misremembered how many of them make throw shade on dotfiles repos, or perhaps it is just that google isn't good at finding such things ("not dotfiles" won't work).

</comment></comment></comment></comment></comment><comment><USER5> We're using Nix where I work as well, and while I can say it was not the most user-friendly to set up, once we got it in place it has reliably worked for the last two years.

We used to have a long and flaky shell script which set up the development environment for new engineers and CI machines (for iOS development on macOS, specifically). Now we have a very simple script which just installs nix and runs alls builds through the nix-shell. This makes builds on local machines and CI very easily reproducible. It also means that when dependencies change, we just update our nix config, and the new dependencies will automatically be fetched for all of our engineers and CI machines — no need to manually re-run the setup script.

This is my favorite part of Nix — you can do `nix-shell --run "<some command>"`, and it will make sure you have all of the correct dependencies (downloading if necessary), then run the command with those exact dependencies. This is especially magical when engineers working on other platforms have conflicting dependencies — a problem we no longer need to worry about.

<comment><USER6> You can use Nix on MacOS X and with nix you don't need brew.

I used it for few years that way.

If you use nix-darwin + home-manager you can also configure your mac the way you would NixOS.

Amazing tools that discovered not long ago (they aren't specific to os x) is:

niv - makes pinning to specific repos/versions in repos much easier which helps with reproducibility, especially pinning of nixpkgs version which is now controlled in your source code.

direnv + lorri - you no longer need to invoke nix-shell just cd the directory and all tooling you need for your project is suddenly available which is AWESOME.

Here's an example of using them together with packaging a python project[1] if you have lorri and direnv installed and cd to the directory, not only you have the right python version installed but also all dependencies and even the "hello" command becomes available, as if you installed it through `pip -e .`

[1] [https://github.com/takeda/example_python_project](https://github.com/takeda/example_python_project)

<comment><USER7> I've had luck with using the approach in here [https://nixos.wiki/wiki/Python#Emulating_virtualenv_with_nix...](https://nixos.wiki/wiki/Python#Emulating_virtualenv_with_nix_shell) because it allows the escape hatch of using pip if something isn't packaged and I want to quickly try something out. I have also been meaning to try mach- nix which may obviate the need for pip at all. Having a good standard skeleton for a python/nix project would be super helpful to add to the wiki, etc.

<comment><USER6> I tried multiple solutions myself, this one is the closest to what I want, because:

\- overlays the packages on top of nixpkgs \- understands setup.cfg and can get dependencies from it

It is still not perfect, but when I find some time I think to submit a PR to nixpkgs to improve setupcfg2nix. Particularly it doesn't understand tests_require which you can list dependencies to run unit tests. Nix has equivalent checkDepends.

</comment></comment></comment></comment><comment><USER8> A lot of misunderstanding and overexplaining in these comments. The reality is that Nix is a complex system of many parts, under active development, and yet is perhaps the best infrastructure we have for creating deterministic, hermetic, reproducible builds. I've worked on one of the largest Nix systems and it saves our entire dev team hours. Everything is only built once, on a large set of specialized remote builders, then shared among all of our devs, CI, and deployment infrastructure. Perhaps this is common in FAANG, but Nix enables this even for small teams and individual developers.

If thats something you would like to learn more about but are having trouble getting started, I'm happy to help. Email is in my bio. We could setup a call or chat session or whatever.

<comment><USER6> This is what I'm personally looking for, are there some kind of tutorials how to configure nix in an organization to do CI/CD best practices etc.

</comment></comment><comment><USER9> I'm still confused. What _is_ Nix? Is it an OS, or a package manager? From the looks of it it's a package manager that I should be able to use it on any POSIX system, but I doubt that's the case?

<comment><USER10> It's kind of a mess.

Nix is a collection of tools and systems that together form a highly reproducible build system.

Nix is also a declarative, largely pure and lazy programming language that you use to design and specify the different build outputs for the Nix build system.

Nixpkgs is, more or less, the only project written using Nix (and a lot of shell). It's a collection of many thousands of "derivations", many of the things you'd expect to be able to fetch from brew or apt. Each derivation encodes the steps to use Nix (the build system) to construct that output.

NixOS is a Linux distribution built atop Nix, Nix, and Nixpkgs. The basic claim to fame here is "totally declarative system setup" where you write all of the configuration for your system in Nix, using Nixpkgs and some other NixOS specific tooling and libraries, and then "build" the entire system with high repeatability.

Then there are a few other related projects such as Hydra (a CI server and binary cache builder—most of the time you don't build with Nix, just download the proper thing from the cache) and NixOps (an extension to NixOS which provisions whole fleets of servers declaratively).

Finally, you don't need to run NixOS in order to benefit from Nix. Nix and Nixpkgs are (largely) compatible with MacOS and Linux. That means you can install Nix onto your existing MacOS or Linux system and use it a lot like you'd use brew or apt. That said, the premiere Nix experience is always NixOS.

<comment><USER11> I've had the (dis)pleasure of working with several projects that have been built by developers that have religion around Nix. These projects were contract work where the client paid a significant amount of money, and the final product was really poor quality. One of them is a financial application that has strict security requirements, so having a reproducible build system and some of the other qualities of Nix sounds great, however, the auditor, which is one of the top auditors in this industry had this to say in their report:

> Overall, we found the dashboard code to be difficult to review and build. In > particular, the manner in which the frontend JavaScript is compiled made it > difficult to comprehensively evaluate. Given that this includes the driver > code for Ledger devices and handling of user input, we believe this to be an > area of concern and poses a significant risk. Building the dashboard took > hours on an AWS EC2 VM (with a four-core CPU and 32 GB RAM) and while much > of that build time is attributable to Nix's way of building dependencies, > the code complexity adds unnecessary risk. We encourage a rework of this > area of the project to follow more idiomatic web development practices and > patterns. This would make the code more comprehensible and conducive to > security evaluations, therefore reducing the risk of vulnerabilities that go > unnoticed.

<comment><USER12> I haven't used Nix, but I would have thought that builds would be fast, due to how cache-able the dependencies should be.

<comment><USER13> We've been using Nix for deploying a Rails app for an enterprise customer for quite a few years now. One area where it shines for us is the ability to build it on relatively recent version of Ubuntu and deploy to a (almost EOL) RHEL6 box. Bundling, assets and various other tasks take just a few minutes. We also have ~20 Go services that are also deployed via Nix, and building takes seconds.

However, it can be quite cumbersome to get a Nix expression to the point where it builds reliably for something that takes multiple steps like a Rails app, especially if you're building on macOS and deploying to Linux. It's come a _long_ way in recent years, but with Enterprise customers now embracing containerization we migrated everything to that and haven't looked back.

<comment><USER14> I'm having a hard time parsing -- you migrated everything from nix to containers (containers removed the need for nix) or to nix+containers (containers solved the "having to build for multiple platforms" issue)?

<comment><USER13> Ah my apologies - We use Bazel to build our services, and the output artifacts were then pulled into Nix and deployed as Nix packages. Bazel has _excellent_ support taking the same application code and creating Docker images from them ([https://github.com/bazelbuild/rules_docker#language- rules](https://github.com/bazelbuild/rules_docker#language-rules)), and the tools available for deploying containers is orders of magnitude more feature- full and higher quality than what you get with Nix today. So we no longer have Nix anywhere in our pipeline, and all of our artifacts are now deployed inside containers.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Nix is a powerful package manager. I can confidently compile and run multiple incompatible versions of software simultaneously. I can build projects from years ago. I can package large projects from different ecosystems (python 2/3, c/c++, go, javascript) and be confident they will not interfere with each other. I can try bleeding edge software with no risk to it interfering with my system. It is faster and less hassle than juggling various Docker containers and VMs. It protects me from dependency hell.

But overall: it makes me more productive. It is my secret weapon to manage the complexity of software development.

<comment><USER15> As an example, what's minimally required to run two different versions of program-x from the command line. Can I do something like this easily?

        cat-8.22 /etc/passwd | cat-8.3 -A

<comment><USER7> Minimal example:

      export v824=$(nix-build 'channel:nixos-15.09-small' -A coreutils)
      export v830=$(nix-build 'channel:nixos-19.09-small' -A coreutils)
      $v824/bin/cat /etc/passwd | $v830/bin/cat -A

You can get better specificity by using a nixpkgs git repo/hash instead of channel or adding `--no-out-link`, but this is minimal.

<comment><USER16> Even more concise:

nix run -f channel:nixos-19.03 hello -c hello | nix run -f channel:nixos-20.03 ripgrep -c rg Hello

</comment></comment></comment></comment><comment><USER17> Stumbled upon NixOS yesterday and today its frontpage, 1st link. Same thing happened with OpenBSD the day before. Whats tomorrow, Qubes? I wonder what the chances of coincidence are if I investigate one new OS per day. [https://www.foxypossibilities.com/2018/02/04/running- matrix-...](https://www.foxypossibilities.com/2018/02/04/running-matrix- synapse-on-nixos/) [https://en.wikipedia.org/wiki/NixOS](https://en.wikipedia.org/wiki/NixOS)

<comment><USER4> No tomorrow could be BSD and Nix [https://github.com/NixOS/nixpkgs/pull/82131](https://github.com/NixOS/nixpkgs/pull/82131)

<comment><USER6> Oh nice, thanks for doing the work.

</comment></comment></comment><comment><USER18> We're doing a project right now to try to migrate to using nix for our python code that runs on a raspberry pi. It's been great in many areas, but pretty annoying when something doesn't work. You have to dig deep to fix errors.

Of course we're trying to get numpy to cross compile from x86 to armv7 which involves cross compiling gfortran to get blas... so I guess a few bugs [1] are expected.

Otherwise I've been really impressed.

[https://github.com/NixOS/nixpkgs/issues/88449](https://github.com/NixOS/nixpkgs/issues/88449)

<comment><USER7> Cross-compiling is finicky in any ecosystem, things like numpy especially so. When working on armv7 projects, I got a few TinkerBoards and ran the builds native. The first one took a while, but i just kept my binary cache up to date and normal CI/CD builds were fast. I'd also push core builds to [https://arm.cachix.org](https://arm.cachix.org). I haven't updated it recently, but I am considering doing that again.

</comment></comment><comment><USER19> A company I worked at embraced nix. Beforehand I was a big docker fan and had few issues with it (yes there were occasionally caching issues and damn it docker figure out the issue with hyperkit on mac os, but largely its a productive tool). From an outside perspective nix just felt like alot more work, and nearly no one (except the people that set it up) could ever get it to work. So basically the entire build process for the core of the system was something that literally no one in the company wanted to touch. I'm sure if I was an insider on the tool I would appreciate the added stability you get on the backend, but at face value it seemed like it just made builds unapproachable on the front end. I'm happily back to using docker and haven't looked back.

<comment><USER6> Out of curiosity, any reason why you didn't want to understand it? You spent time learning docker, why this was different?

</comment></comment><comment><USER20> I haven't worked through the entire text but I absolutely love the manner of explaining.

I often feel when I'm reading an explanation the author is reluctant to really break something down to the essentials and ELI5 ... which ironically can be conceptualized as the most intellectual way to understand something. Please explain it from as close to first principles as possible. Assume as little as possible.

Maybe it is because the author thinks it is an intrinsically hard concept (as per the intro).

Or maybe this person is just kinda awesome at explaining stuff.

</comment><comment><USER21> The only takeaway I get from this article is...

 _Why_ is Nix?

And from skimming along the comments, both on HN and on Disqus, there's a lot of confused people trying to understand/describe the difference between Nix and Docker, because although the article described how Nix works in a very technical way, it didn't explain what it can be actually used for.

<comment><USER22> It's a package manager written in such a way as to properly solve the problems with existing package managers which docker patches over. It uses deterministic builds and careful isolation of dependencies to ensure that the environment it creates is the same each time, and that you can have packages which depend on conflicting versions of another package installed at the same time.

The entire OS is _accurately_ described by a config file, and this can be reproduced exactly using just that file.

In contrast to traditional package managers: handles conflicting dependencies, state is tracked through editing the config file, not a serial of install/uninstall commands which mutate the state of the system. Config files of installed packages are also controlled through nix config.

In constrast to docker: properly reproducable (Docker will re-run the same commands in the Dockerfile, but there's no guarantee you'll get the same result. For example, basically any package installation from a traditional package manager you run in the Dockerfile will not reproduce when run later because newer versions of packages will be installed), also more efficient in terms of space usage. However, AFAIK it does not namespace networking and so on (nixOS has its own containers system which does do this however).

</comment></comment><comment><USER23> I have always wanted to try Nix, but not sure how installing software from source outside the package system works. With Arch Linux, it's pretty easy to create an AUR package if it doesn't exist, or simply install it outside the package system. Is it easy to create Nix packages (based on the features of Nix, I'm guessing no)? What about if you don't feel like creating a package?

<comment><USER24> Creating nix packages is actually pretty easy once you get the hang of it. Maybe a tiny bit more involved than AUR packages since it's a new language and all, but it's not _that_ much more difficult. When I was using nixos on my desktop machine, I made packages for my own personal tools, so it integrated in the system.

It's also very easy to customize a package to suit your needs, and in fact makes for a very nice system to hack on open source projects. You can mostly setup an override in your $HOME to make a package's source come from your local disk, and when you install the package it will compile locally instead of getting a prebuilt binary.

If you don't go through their packaging system... It's really easy to end up in a mess. There are ways to simulate a "normal" linux from within nixos, essentially making a chroot in which the various libraries are in their normal locations (achieved through an overlay filesystem). I believe that's what they do to run the Steam client. I assume (though never tried) you could use this to run other binaries without packaging. But then... what's the point?

</comment></comment><comment><USER25> Really it's kind of a minimalist linux distro with the capacity to coexist harmonically and/or parasitically with another operating system. Don't try to say 'oh it's like arch' or 'yeah it's a bit like Ubuntu', because no, it isn't, and by design. It seems that as much as design meant to go a particular way, there it went.

It does pretty well directly on the hardware, but seems to want to live (like it is) in a container, though that might just be it's style ;) it certainly seems to be _convenient_ for containers.

It has a certain otaku appeal and ninjatsu stealth. I'll probably like it a lot some day soon but at the moment it just screams 'exotic' in my ears while I'm asleep at night.

This probably isn't helping so I'll just stop now.

<comment><USER26> > It has a certain otaku appeal and ninjatsu stealth. I'll probably like it a > lot some day soon but at the moment it just screams 'exotic' in my ears > while I'm asleep at night.

I'm trying to refute this characterization, but I am sitting in front of my desktop with an anime background in SwayWM on NixOS. Is there something I don't know about correlations between seemingly unrelated hobbies?

<comment><USER27> NixOS, Emacs, Haskell, tiling window managers.

They're a clique in the tech world. I think a unifying theme is to have a small foundation that the user can develop within.

Going a bit further on my soapbox, you might also be into philosophy, anime, election reform, baduk, and math. Is the underlying personality trait systemizing/stubbornness, wanting to break everything down, and rebuild it according to defined principles?

[http://dreamsongs.com/RiseOfWorseIsBetter.html](http://dreamsongs.com/RiseOfWorseIsBetter.html) would call this approach the MIT style of design.

@nntaleb might suggest they overestimate their principles and their ability to enact their principles, and call them IYIs. :)

(This comment itself is my admission of being an IYI.)

</comment></comment></comment><comment><USER28> For me nix(OS) began from much simpler upside: now I never forget that handmade one line tweak somewhere out there - all Linux system goes in one nice config.

</comment><comment><USER29> This sounds similar to BuildXL[1] (originally called Domino) which Microsoft uses to build Windows has been in use 6 years. It does this sandboxing using Detours on Windows which intercepts system calls and allows you to described packages in a language called DScript. I think you need something like this if you don't use a system like Bazel that keeps build dependencies well isolated. Even then the system you use can leak into the build.

1\. [https://github.com/microsoft/BuildXL](https://github.com/microsoft/BuildXL)

</comment><comment><USER30> This article suffers from the same problem every nix article I read suffers from: it dives in too deep from the get go. When you sit somebody down in front of a computer for the first time in their life, you're not going to explain what it is composed of, what happens in when your mouse button is clicked and why Windows vs Mac vs Linux is a thing.

Please, first tell me what nix is, provide me with a few commands to get me started, make a few comparisons to what the audience should reasonably know, and then make this your second or even third article on the subject.

<comment><USER31> That's kind of the approach I took in this playlist: [https://www.youtube.com/playlist?list=PLRGI9KQ3_HP_OFRG6R-p4...](https://www.youtube.com/playlist?list=PLRGI9KQ3_HP_OFRG6R-p4iFgMSK1t5BHs)

However, there is really an important and subtle set of concepts to grasp in order to actually understand Nix, and not just mess around with a package manager tool incidentally built with it. It's fine to not understand them, but they are what this article tries to explain.

<comment><USER32> FWIW... I read this article as someone who doesn't know what Nix is. Like no idea at all besides the name sounding familiar. After reading the first few paragraphs I feel I'm not the target audience for the article, which it totally fine, but based on the title of the post, I assumed I was.

<comment><USER31> Yeah, it was a last-minute title change that I now regret.

<comment><USER32> Yeah, that's tough :(

On the bright side... sounds like the community (or at least me) would really be into another article as a primer.

</comment></comment></comment></comment></comment><comment><USER33> We use Nix for all our developer tooling at CircuitHub. It's not the easiest thing to get into - but once you do - it solves so many problems! Great to see a large company like Shopify get in on this.

</comment><comment><USER34> I feel someone should say something about guix here. I don't have anything worth saying about either though

<comment><USER35> Anecdote about the subjective difference between using both:

I've used nix and nixos on and off since the early versions, but it never really clicked with me, and every time I want to write or just read nix expressions I have to reread lots of documentation like I'm starting from scratch again, whereas I would probably still be able to write a debian package from memory alone despite many years of lack of practice. This leave me with the impression that nix has to be a full time job.

In another hand, I gave guix a try recently and was really surprised by how easily all the pieces fell together "naturally".

Also guix being a smaller community, it might counter intuitively be moving faster (due to less care for not breaking things or less bureaucracy, depending on your views). Indeed, another issue I have with nix is how jammed their input queue of PRs is.

<comment><USER36> I'd say the PR quite is less bureaucracy and more a high number of packages with not enough hands to process them all.

</comment></comment></comment><comment><USER37> Wondering if folks would prefer spack ([https://spack.io/](https://spack.io/)) given its heavy adoption in the HPC community.

</comment><comment><USER38> After reading the article, I am still asking the same question: What is Nix?

Edit: from their website [https://nixos.org/](https://nixos.org/):

> Nix is a powerful package manager for Linux and other Unix systems that > makes package management reliable and reproducible. It provides atomic > upgrades and rollbacks, side-by-side installation of multiple versions of a > package, multi-user package management and easy setup of build environments.

</comment><comment><USER39> Really looking forward for knowing how Shopify use nix and what problem the find with it.

I was advocating for it in my organisation but eventually we decided for a different technologies...

<comment><USER40> Burke Libbey has a few talks that are available on YouTube including a presentation at NixCon about the work he is doing at Shopify. I would highly recommend checking them out if you are interested in Nix.

<comment><USER31> Hi! Yes, and here's the link to my recent Nixology playlist: [https://www.youtube.com/playlist?list=PLRGI9KQ3_HP_OFRG6R-p4...](https://www.youtube.com/playlist?list=PLRGI9KQ3_HP_OFRG6R-p4iFgMSK1t5BHs)

<comment><USER41> Hey! At the end of your article you mentioned you're hiring. Are the positions remote? If yes, how can I get in touch?

<comment><USER31> Yes, we're hiring! You may have seen the news today that we're all in on remote now. Send an email to email@example.com, I'm as good a point of contact as any for Nix stuff.

</comment></comment></comment></comment></comment><comment><USER42> I like the idea of Nix. It's definitely the future of package management and build systems. But it's solving a problem we knew how to solve in the 80s: dependency hell is solved by statically linking everything. In fact in the Windows world it's still like this. If you need OpenSSL, for example, it should be in your source tree and compiled in the same build pipeline as your application.

<comment><USER43> Static linking is unfortunately broken for many projects though, primarily because every C/C++ dependency has a slightly different incantation to make it work. It also doesn't address the problem of languages which expect dependencies to be files on the filesystem, like python or ruby.

</comment></comment><comment><USER44> Nix is a cool ecosystem but getting builds quite expensive on conventional CI/CD system. One can reduce costs by running custom Hydra CI instance but I would love it to be a bit better. Working with private stuff is a mess and requires deep knowledge of the system, hard for newcomers to pick up. Also, NixOps super cool extension to manage a fleet of instances.

</comment><comment><USER45> Is Nix only handling the build part (with configure flags etc.) or is it also used to configure services, for example?

I'm not versed in devops/provisioning etc., but say, I had a NixOS system with some server software (mail server, DNS server, whatever).

Would I still want to use Chef/Puppet/Ansible, or is that included in the Nix ecosystem?

<comment><USER43> NixOS exposes config options as variables you can set in your configuration.nix file. Also, external config management tools generally interact poorly with nixOS, because they assume a system which is managed imperatively.

</comment></comment><comment><USER46> It looks similar to "npm with ipfs/docker (layer-fs)". My initial guess is it may use more disk space like snap. Because it requires exact version of dependency. Unlike in npm/pnpm that access wide range of dependency version as long as it satisfy the server version.

</comment><comment><USER47> Nix seems wonderful, but I have one question: If nixos.org and github.com disappeared tomorrow, are users sufficiently enabled to keep the project going, or are those two single points of failure?

</comment><comment><USER48> is there still relevance for this way of building in the world of Docker - especially with Packer and LinuxKit ?

Packer allows us to create highly repeatable OS builds with all the right configuration and packaging. For example, this is AWS official Packer build for their EKS AMIs - [https://github.com/awslabs/amazon-eks- ami](https://github.com/awslabs/amazon-eks-ami)

<comment><USER43> Docker kind of sucks for development though, because you need to reinstall all your devtools into the container and have to wire up your IDE to support docker. With nix, you just write a shell.nix, run nix-shell and can then use your regular tools in that environment.

Also, nix builds are far more reproducible than packer builds. With nix, you get an environment that is guaranteed to be identical down to the hash of every single file as long as you use the same version of nixpkgs. Packer and similar imperative tools typically install whatever version is the latest in the distro repo, and building the image 2 months apart will grant you different artifacts without investing a lot of effort into pinning everything.

</comment></comment><comment><USER49> I really wish nix was the solution, but I'm not sure it is. I currently don't install anything on my base system, but do it via docker. Looking through my dockerfiles, currently I have stuff installed via:

* apt

* apt preceded by apt-key add

* wget/curl

* pip & pip3

* git clone

* go get

* npm install

* snap

And that's even though I try to avoid esoteric package managers as much as possible. (For example, there was some package recently where the recommended method was brew for linux, and another that wanted to be installed via conda.

There's just so much stuff out there that insists on using some random packaging system. docker, even though it's a bit flaky, abstracts that away.

<comment><USER50> nix is the solution. It's totally different from any random packager you've seen. It goes the reversed direction of abstracting dependencies away: it makes dependencies explicit (and reproducible!)

<comment><USER49> I get it, but my point is that unless it can cope with packages that aren't in the ecosystem, it will just add another variant rather than solving the problem, as per [https://xkcd.com/927/](https://xkcd.com/927/)

It reminds me a lot of [http://www.vestasys.org/](http://www.vestasys.org/)

<comment><USER4> Nix at this point is almost 20 years old, and we have 10,000s of packages.

If that meme wants you to blame something, it should be Docker.

(First of all, it's younger. There's big tons of effort with Docker and yet nothing is reproducible, and DPKG, APT and all their ilk can't even be deprecated but instead are used awkwardly within the Docker ecosystem.)

</comment></comment></comment></comment><comment><USER51> Hearing about Nix couldn't have come at a better time. Having just got a new Mac, seems like the perfect time to try a fresh Nix-only setup.

<comment><USER50> from now on every new machines will be easily replicated with configs from older machines: copy the config file over, type one command and let nix does the rest

</comment></comment><comment><USER52> "All software exists in a graph of dependencies."

And some of these graphs consist of a single node. Junk the jank!

<comment><USER53> I mean, if you count the compiler/interpreter (which nix does), realistically that's a bare minimum of two.

<comment><USER6> Nix comes with its own glibc, so that's 3, although I guess while it is not the default you could compile statically.

<comment><USER53> If you compile statically, you've got musl, which is still a (build-time) dependency.

<comment><USER6> There's a confusion between build and runtime dependencies. From Nix point of view. Even if you compile statically your code still depends on libc, it's just that you include the libc in the resulting binary. With Nix all dependencies are listed for your application. Because if no compiled version is available in binary cache, Nix will get a compiler and build one. This is actually awesome, imagine there's a program in nixpkgs that you want to use, but you want to have it linked with different libraries.

For example pgbouncer[1] can be linked with different DNS resolvers, which have their strengths and weaknesses (currently it is linked with c-ares which probably is what most people want, but until version 1.10 that wasn't true) you can override the derivation and use different dependency. Nix will build on the fly the new version that does do what you want, and this is awesome.

[1] [https://www.pgbouncer.org/install.html](https://www.pgbouncer.org/install.html)

</comment></comment></comment></comment></comment><comment><USER54> Too bad that Nix don't work with fish shell

<comment><USER16> I'm using Nix and Fish and have been for a year or two now. I remember some issues initially but NixOS and home-manager have boolean options to enable Fish and it Just Works nowadays.

</comment></comment><comment><USER55> I don't understand what problem it solves

</comment><comment><USER56> I loathe to be so critical, but I have no idea what this is.

I'm sorry to say but this is a bad article - either that - or nix itself is a mishmash of things impossible to explain.

I just see red flags everywhere.

If it's 'A' \- then maybe take some time to do a high-level introduction and some context.

\- 'Everything depends on something else' \- really? Most 'installed software' doesn't depend on a whole lot else. Does the author really mean server software? Development environment?

\- "The easiest place to start is the Nix Store. Once you've installed Nix, you'll wind up with a directory at /nix/store,"

No! That's not easy, because what he&& is Nix, why and how would I install it, and what is the 'nix store'? Starting to explain something by introducing a whole bunch of other unknowns without description or context is going in the wrong direction.

\- "This directory, /nix/store, is a kind of Graph Database. Each entry (each file or directory directly under /nix/store) is a Node in that Graph Database, and the relationships between them constitute Edges."

WHAT? We are now 3 layers deep in a rabbit hole of unexplained things.

\- " Nix guarantees that the contents of a Node doesn't change after it's been created."

What is a Node?

If the issue is 'B' \- i.e. the inherent overlap of technologies that Nix makes it hard to explain ... well maybe it could be broken up.

Take a minute to give some context for what Nix is, the kinds of people that use it, what problems it solves, and then have some exceedingly basic introductory examples so that people have a frame of reference for what you are talking about.

Then you can step by step, go into the weeds.

<comment><USER57> > \- 'Everything depends on something else' \- really?

Yes. Really.

> Most 'installed software' doesn't depend on a whole lot else.

Yes it does. Your ignorance of this fact does not make this any less a fact.

> Does the author really mean server software? Development environment?

All of it.

<comment><USER56> I thought this was satire when I first read it.

But no, people around are really do have serious challenges with language sometimes.

Here's some help:

The vast majority of software that users install on their computers depends only on what the user would perceive as the 'OS' itself. For example, if one were to install 'some app' that works for Mac OSX version X.X and later, there wouldn't be any contemplation of 'dependencies', to the point wherein the vast majority of users wouldn't even grasp the concept.

Granular package or system-level dependencies are something that only developers are aware of.

Of course, the fact that nobody but developers would contemplate 'dependencies' should be obvious to anyone who interacts with regular people.

<comment><USER57> > the fact that nobody but developers would contemplate 'dependencies' should > be obvious

Is it perhaps lost on you that the vast majority of people discussing this technology are developers?

And you accuse _me_ of having serious challenges with language. Yikes.

> The vast majority of software that users install on their computers depends > only on what the user would perceive as the 'OS' itself

Yes. And those dependencies are _implicit_. You know, _exactly_ as the article describes.

> to anyone who interacts with regular people

This is a thinly-veiled ad-hominem argument. Does this approach of snootiness and condescension normally work for you when interacting with "regular people"?

</comment></comment></comment></comment><comment><USER58> Talks to the Raccoon server, I believe.

</comment><comment><USER59> A messy pile of unnecessary, redundant abstractions which "solves" nonexistent problem.

Stable interfaces (the main principle behind literally everything in nature) and semantic versioning will do the job.

systemd-like cancer. And, of course, look, ma, I am so smart.</comment>


Show HN: Metachat – encrypted, feature-rich group chat - <AUTHOR> https://metachat.app/ <comment><USER2> I don't see any benefits over services such as discord where you can do the same more or less using a prefix and a word like that, and then just search for the prefix and word

Edit: Aside from the end to end encryption</comment>


Rethinking Passwords - <AUTHOR> http://queue.acm.org/detail.cfm?id=2422416 <comment><USER2> Most sites suck because they want seemingly random passwords that are hard for people to remember. Most sites seem deathly afraid of spaces too and want relatively short passwords.

While many sites would think this is a good password "x5tRwz3m" Length: 8 Strength: Weak. Entropy: 36 bits. Charset Size: 62 characters Is impossible for me to remember. A easy to remember mixed (seemly, but not random) password like that is much easier to generate and use in a off-line dictionary attack.

"I like Microsoft's login page." Length: 30 Strength: Very Strong. Entropy: 147.3 bits Charset Size: 73 characters

is a sentence and people are pretty good at remembering them.

Add in a tiny bit of complexity "I like M?icrosoft's login p!age."

Length: 32 Strength: Very Strong. Entropy: 163.5 bits. Charset Size: 83 characters.

It is exceptionally unlikely that a cracking attempt will reveal that password and that some other type of flaw will be needed to reveal the password or gain access to the account.

<comment><USER3> What did you use to calculate entropy? 147.3 bits for "I like Microsoft's login page."? Looks highly unlikely that a proper sentence consisting of 5 dictionary words has 147.3 bits of entropy. For comparison, a truly random string of 30 characters from 73 charset has ~185 bits.

<comment><USER2> The site I used was <http://rumkin.com/tools/password/passchk.php>

Other tools also... <https://www.grc.com/haystack.htm> <http://www.passwordmeter.com/>

<comment><USER3> Yeah, password strength estimators are often wrong.

</comment></comment></comment></comment><comment><USER4> One guideline for passwords isnt exicitly mentioned here which is that passwords should be kept secret. People are bad at keeping secrets and there are many reasonable justifications for sharing your password with a trusted friend. Passwords proved identity only if secrecy is assumed. Who is responsible/suffers more if I share my passwords, me or the system administrator?

</comment><comment><USER5> I'm looking forward to the day that I can use more than just English letters and a couple special characters. It was pretty disappointing to me that I couldn't open the kana keyboard while setting the lock password on my iDevice. Unlike stuff on the web, their system is closed and serves just that one purpose. Am I missing something horribly obvious here?

<comment><USER6> Yes, encoding and character sets are difficult. Having say even a simple ü in your password brings up a ton of encoding nightmare. Solvable nightmare, but not one i'd want to tackle for passwords. Could they be used, sure, but there is a lot to it. Also you can turn off the simple lock numeric lock screen and use the japanese keyboard if you want (or any others you've turned on). Just swipe off simple passcode under passcode lock.

<comment><USER5> I've never used the simple lock– I have a long passphrase that I prefer. It still won't let me change keyboards, despite setting the OS language being set to Japanese. It's up-to-date software wise, but was purchased in the US so...

</comment></comment></comment><comment><USER7> > The question for today's security specialists is, what still makes sense > from the 1985 guidelines?

Indeed. Today every webapp developer is a security specialist.

> Certain audit reports (e.g., date and time of last login) should be provided > by the system directly to the user.

In 2013, this still makes sense, but is not often implemented.

</comment><comment><USER8> Supergenpass. Remember one password, generate a unique one per domain. Use a browser extension. Or Android App. The one master password never leaves the local machine. Want something more? Use a Yubikey to store your master password or a postfix of the master password -- that's how I log into my banks, type in a password and then touch my Yubikey Nano which adds another huge amount of characters (the Yubikey needs to be reprogrammed to store a fixed password not an OTP).

<comment><USER3> Supergenpass is only okay(-ish) if your master password is a large enough completely random string (e.g. 128-bit string: `head -c16 /dev/urandom | base64`). If you use weak password (e.g. the one you can remember), it's trivial to bruteforce it, as it uses

        MD5(master_password || ':' || domain || length)

to derive passwords.

Another problem with any Supergenpass-like password generator is that once the attacker steals or guesses your master password, she will be able to generate your _future_ passwords. I describe password generators like Supergenpass as a rough equivalent of password manager with the attacker having a permanent read-only access to the encrypted database.

</comment></comment><comment> guard-of-terra Passwords are bullshit. Passwords are the way that the IT moves the responsibility for the users' data, privacy and money over to the users. Of course, users will never use passwords that are any safe, but now they are to blame for this. It's so horribly hypocritial that it makes me cry. We should all be ashamed of this and not get any sleep until the matter is resolved. The problem is: we sleep just fine and make our sin worse.

<comment><USER6> Your comment is bullshit. Allow me to explain why, I'm not attacking you but the idea that this is an IT problem. IT has nothing to do with the problems of passwords in computer security. Their policies, while likely now outdated are there to act as CYA "industry best practices". The issue they're up against is they cannot secure your data with bad or poorly chosen passwords in the current environment.

Your vitriol is misguided here, while at the same time understandable. The "requirements" of things like one upper case letter, a digit, a nonchar etc... were put in place when systems had only 8 characters for passwords. Ideally these wouldn't be hard requirements but work on a sliding scale based on length. In other words, 8 chars NEEDS the extra entropy and character classes to work. The longer you go however the less need you have for this requirement. Not that it goes away mind you, just that once you reach 12 char passwords, requiring those character classes becomes less useful than optimizing for something a human can remember.

Basically I agree, requiring many character classes is non-useful and harmful. But only for long passwords, or passphrases rather. "one two three four" is a much harder password to crack, even with perfect foreknowledge that I only used lowercase words, didn't capitalize, and didn't put a punctuation character on the end than say "Ab&2x.!(" is. The latter looks like it would be harder to guess, but its length betrays its search space. It is also less secure in that it encourages users to write the password down.

Moving on to the real crux of the issue.

The bigger underlying problem you elude to, but never enumerated, is that security wise, we've _NEVER_ had mathematically proven security in computers up until about 3 years ago, if even that. Even then this is leading edge research. What I mean by that is cryptography right now has only recently had _A_ mathematical proof of it doing what we want it to be doing. Basically, making sure that A and B can communicate without worrying about third party C reading it. Even then this new cryptography could be flawed.

Read up on homomorphic encryption, Craig Gentry's Phd thesis paper: <http://crypto.stanford.edu/craig/craig-thesis.pdf>

And a more general introduction to its concepts (the math is quite involved): [http://www.americanscientist.org/issues/pub/2012/5/alice- and...](http://www.americanscientist.org/issues/pub/2012/5/alice-and-bob-in- cipherspace)

The problem here is we are in the dark ages of cryptography and computers. We like to think we're running on advanced things here, but the truth is this stuff is anything but. Things change, slowly. But you can't make fundamental shifts quickly just by hunkering down to solve things. It has to be provably useful.

As to alternatives to passwords, I can't find the research paper right now but there was research done that would have you play games/type stuff and look at how you type/do things. The best part is you yourself don't even know your own password, it is a tertiary aspect of you behavior. The intention was for securing data for military purposes so that even under torture you wouldn't be able to give up your own secrets. This too is only a few years old.

Hopefully some security minded people can correct me on my hastily written reply here or tell me why I myself am wrong. >.<

</comment></comment><comment><USER9> I memorize one pass-phrase to an encrypted file of machine-generated random passwords for the sites I use. Downside is the extra protection needed for that file, but it's encrypted 256bit and only viewed behind a secure network. Any better way?

<comment><USER10> I would still prefer lastpass with 2 factor authentication enabled. Any reason you are not going this route?

Sidenote: I wish my 2nd factor for passwords opened my front door and started my car. Kill physical keys, keep passwords.

<comment><USER9> Basically I feel more comfortable managing my own encrypted vault rather than sharing it (even encrypted) with a 3rd party.

</comment></comment></comment><comment><USER11> You need a password you can remember? Here's a starting point:

<http://www.multicians.org/thvv/gpw-js.html>

<comment><USER3> Yeah, don't use it:

      pik = Math.random(); // random number [0,1]

<comment><USER12> What exactly is the problem there? (considering context)

<comment><USER3> Math.random is not CSPRNG [http://en.wikipedia.org/wiki/Cryptographically_secure_pseudo...](http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator)</comment></comment></comment></comment>


Stay Away: Ban Second Homes? (2016) - <AUTHOR> https://www.economist.com/leaders/2016/05/12/stay-away <comment><AUTHOR> > Everywhere else, the best policy is to increase supply. As long as homes are > scarce, only those with deep pockets will be able to afford them.

I've changed my mind on this: I think as long as there are people with deep pockets, anywhere desirable will be expensive regardless of supply. Like when dieting, "you can't out exercise the fork", you can't out build the wealthy.

The housing crisis is a wealth inequality problem. Trying to build out of it destroys the character of cities and their access to nature and for what? To appease the always too deep pockets of people buying up multiple houses...</comment>


How can one use deep learning to improve image recognition - <AUTHOR> https://infrrd.ai/products/image-recognition <comment><AUTHOR> Find out how to improve the visual search experience, conversions, recommendation and overall engagement using this image recognition platform.

#AIaaS #ImageRecognition #DeepLearning #IDC #IntelligentDataCapture #DataCapture #EnterpriseAI #MachineLearning #NLP #TextAnalytics #infrrd</comment>


WakaTime – Quantify your coding - <AUTHOR> https://wakatime.com/

<comment><USER2> I don't see the point of this other than the "cool i spend 50% more time in [insert language here] than [insert language here]" factor.

Also: [http://martinfowler.com/bliki/CannotMeasureProductivity.html](http://martinfowler.com/bliki/CannotMeasureProductivity.html)

<comment><AUTHOR> For me, it's a tool to track my time i'm spending on which projects.

<comment><USER2> How do you track time that you spend on the project that is not done inside the editor; for example research?

<comment><USER3> Exactly my thoughts. Many projects are more about the research, and less about the time purely spent coding. Many times, my research time > coding time, so it would be cool if WakaTime made a Chrome plugin that could track that time.

<comment><USER4> I use rescuetime to track browser page titles. I use wakatime for tracking too.

</comment></comment></comment></comment></comment><comment><USER5> As far as I can tell it measures the number of hours one has spent coding using each language. Does it measure anything else?

I went to the site hoping that it would explain what metrics it is gathering and why those metrics might be useful. It might just be me, but I couldn't find that information.

<comment><USER6> It also measures the time spent in a git repository. The free version sends you a weekly email with the breakdowns. I've used it for over a year now, really happy with it.

You can also compare yourself to other developers, aka a leaderboard.

<comment><USER7> > You can also compare yourself to other developers, aka a leaderboard.

That's a feature with negative value. Top developers, at least in a business context, are those that help business realize their goals for their web product. One way top developers do this is to find solutions that involve writing less code, since code is a liability.

<comment><USER8> I found it useful when I saw myself on the top of the list some months ago and decided to take some days of because I was working way too much.

</comment></comment></comment></comment><comment><USER9> I'm now using this to know in which projects I've worked during the week. I think it's quite expensive for what it is.

</comment><comment><USER10> My research group investigated this approach to software metrics collection and analysis for about 10 years with an open source project called "Hackystat". We wrote around 50 papers and there was a startup based on our approach (that was later aquihired.) You can find a list of papers we wrote here:

[http://www.citeulike.org/group/3370/tag/hackystat](http://www.citeulike.org/group/3370/tag/hackystat)

The first one, "Searching under the streetlight for useful software metrics" is our attempt to summarize the strengths and weaknesses of this approach.

There are significant challenges associated with making this kind of data actionable, and significant political/social issues associated with collecting this data at all.

</comment><comment><USER11> What I'd like to see is a tool that relates commits to bugs and feature which could have a dollar value assigned, therefore making it possible to capture value created in a given day/week/month.

</comment><comment><USER12> Reminds me of [http://codeivate.com](http://codeivate.com), I really like it although it has some rough edges

<comment><USER13> unfortunately codeivate lost me when I switched to Atom.io... the plugin is on a queue for more than a year :( [1]

[1] [http://codeivate.userecho.com/topic/417377-atom- plugin/](http://codeivate.userecho.com/topic/417377-atom-plugin/)

</comment></comment><comment><USER14> What questions can you answer with this data? Hours spent coding is a vanity metric, it doesn't offer actionable data.

</comment><comment><USER15> cui bono

What are they doing with my data?

</comment><comment><USER16> Alan Hamlett is awesome and I wish that team all the best!

</comment><comment><USER17> Used wakatime via phpstorm. Interesting product.</comment>


Nielsen Finds Older Adults Are Embracing Digital Video - <AUTHOR> http://www.nytimes.com/2014/09/08/business/media/nielsen-finds-older-adults-are-embracing-digital-video.html?ref=technology

<comment><USER2> I work in this space, and recently heard a presentation from a major broadcaster who somewhat surprised me: many folks were predicting the end of TV and broadcast television due to the digital age.. Streaming, DVR, etc. What was surprising to me was: the exact opposite has happened: Viewership is up to record levels, time spent consuming broadcast media is waay up per person across almost every segment. These broadcasters produce all this content, which _used_ to only be available limited hours in the day. Folks whose schedules did not permit them to view it, just simply couldn't. Now with DVR, Streaming, and multiple devices, we are able to consume the content we want on demand -- anywhere and anytime.

So when taken in totality, these TV Networks and content producers have radically expanded their coverage in the last 10 years. They get more eyeballs across more demographics. As long as they meet the consumers where they are (online, mobile, OTA), they will continue to see increased viewership, which should result in higher ad revenue.

</comment><comment><USER3> anecdotal of course, however my parents (late 70s) usage of digital video can be traced to the ease of access provided through their iPads I gave them. I never set out to have them use them beyond browsing and mail, but even seniors are curious and next thing I find is an iPad with word games and links to various teaching sites, or in my dad's case - woodworking. The local print newspaper even directs subscribers to its own web site which is chock full of video.

As the entry price of tablets decreases it should continue the trend nielsen is detecting, so how do broad cast and cable networks move will be fun to watch. There are still some hold outs, content only available through one medium.

<comment><USER4> Same here. My dad never watched video or listened to audio over the Internet until he got his iPad. Now it's tuned to the MLB app for every game, and he watches TV shows from iTunes and Netflix.

</comment></comment><comment><USER5> My not-super-computer-literate 70 year old mother got a Fire TV and didn't really need any help getting it going. It's now her primary source of TV content.

I think we can credit things getting a lot easier to use.

</comment><comment> guard-of-terra I've taught my mother to download torrents a month ago - to fuel her Popcorn set-top box.

Should probably check if she has any more problems.</comment>


WordPress: unsafe at any speed - <AUTHOR> http://blog.erratasec.com/2014/05/wordpress-unsafe-at-any-speed.html <comment><USER2> I agree that WordPress has serious security issues and the one in this article is indeed a big one, but what a crap article...

"As it turns out, this may not even be the worst problem. The standard WordPress configuration is built on the LAMP (Linux-Apache-MySQL-PHP) system, which has been obsolete for more than a decade. The problem with LAMP is that it doesn't scale."

Saying LAMP is obsolete is quite a silly statement. But either way, what does that have to do with the security of WordPress?

</comment><comment><USER3> I don't know about the security part, but to say that "The problem with LAMP is that it doesn't scale" or that "SEO bots take down your blog" is simply wrong.

I host a WordPress blog in a $20 DO box and load time is about a second for a typical post (measured with tools.pingdom.com). This is a blog with more than 50.000 visits / month. NGINX, not Apache, but still.</comment>


Open consultation: Online Harms white paoer - <AUTHOR> https://www.gov.uk/government/consultations/online-harms-white-paper <comment><AUTHOR> People on HN sometime wonder where legislation comes from.

This white paoer is the start of increased regulation of online communities for the UK.

Some online communities are likely to see increased regulation.

I guess the two main priorities will be any site that features gambling (and most lootboxes will fall under this) or ads for gambling products; any site that features user generated content that actively promotes suicide, self harm, or eating disorder.

We're also likely to see tightened regulation for sites where extremist radicalisation happens.</comment>


24in60 Will Be Closing Down - <AUTHOR> http://www.24in60.com/shutdown

<comment><USER2> It would have been great to have cop-opted some outside help to keep it going.</comment>