Rust turns three - <AUTHOR> https://blog.rust-lang.org/2018/05/15/Rust-turns-three.html <comment><USER2> The 1.0 release still feels like it was just yesterday. :)

As with any mention of Rust 2018 and the rustfix tool, I want to emphasize how seriously compatibility is being taken:

 _> You can use old editions indefinitely on new compilers; editions are opt- in.

> Editions are set on a per-crate basis and can be mixed and matched; you can > be on a different edition from your dependencies.

> Warning-free code in one edition must compile, and have the same behavior, > on the next.

> Edition-related warnings, e.g. that an identifier will become a keyword in > the next edition, must be easily fixable via an automated migration tool > (rustfix). Only a small minority of crates should require any manual work to > opt in to a new edition, and that manual work must be minimal.

> Most new features are edition-independent, and will be usable on new > compilers even when an older edition is selected._

[https://blog.rust-lang.org/2018/03/12/roadmap.html](https://blog.rust- lang.org/2018/03/12/roadmap.html)

<comment><USER3> > Most new features are edition-independent, and will be usable on new > compilers even when an older edition is selected.

What happens when you have specified an older edition, but use a feature from a newer edition (possibly without realizing it's from a newer edition), it works fine on your newer edition compiler, then try and build it on a compiler supporting only the older edition? Is that a potential issue or am I interpreting it incorrectly? It kinda seems like maybe features should be edition dependent.

<comment><AUTHOR> It's not 100% clear to me what you're seeing as the issue here.

> but use a feature from a newer edition (possibly without realizing it's from > a newer edition)

You'd have to specify the newer edition for it to work.

> try and build it on a compiler supporting only the older edition?

This is kind of a moot point given that there's only one real compiler right now, but it would fail to compile.

<comment><USER3> > You'd have to specify the newer edition for it to work.

That seems to contradict this:

> Most new features are edition-independent, and will be usable on new > compilers even when an older edition is selected.

I understand it's currently a moot point, I'm just trying to understand if I'm interpreting it correctly.

<comment><AUTHOR> If it's an edition-independent feature, then it doesn't require the newer edition, so a compiler that doesn't support the new edition wouldn't have any problems.

Maybe it would help to step through a strawman?

Let's say that "impl Trait" didn't land last week, but lands six months from now, after the 2018 edition ships. Alice is working on a library project using the 2015 edition. She uses "impl Trait". Since it doesn't require the 2018 edition, it just works. Bob uses Alice's library, and uses a compiler that doesn't support Rust 2018. That's fine, as Alice hasn't used any 2018 specific things.

That's my understanding of the scenario you're talking about. Did I get it right?

The other scenario would be this:

It's 2019. Alice is working on a library project using the 2015 edition. She tries to use the "catch" keyword, which requires edition 2018. When she tries to use it, her code will fail to compile. She has two choices: 1. not use the feature 2. update to edition 2018. If she chooses the latter, when Bob tries to use her library later, but his compiler doesn't support the 2018 edition, it will fail to compile.

This is basically all of the usual backwards and forwards compatibility stuff, even without editions. If you try to use ? on a 1.0 version of rustc, your code won't compile, as that was added much later.

<comment><USER3> Thank you for the explanation, I believe I understand it now. I had originally interpreted that in a manner to assume that all new features would be tagged with an edition but would be usable on older editions if the compiler supported the feature, but with your explanation I realized that my interpretation of "edition-independent" was off the mark.

<comment><AUTHOR> Great! Glad to get it sorted. That's a totally reasonable interpretation; we had to debate if that's the way we wanted to do it, or not. In the end, it seemed to mostly add complexity to remove features from people, and that seems like a bad tradeoff.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> For me, Rust has made programming fun again. And I find that a langauge has done that maybe twice in my programming career.

I love Rust. It's fun and fast.

</comment><comment><USER5> I have one gripe about Rust:

The Rust people appear to be actively proud of their documentation, and they appear to be proud of their memory model.

But the documentation of the memory model in the reference manual is seven short paragraphs of waffle, mostly defining various words in terms of other undefined words.

I was mildly surprised at the state of the reference manual when they declared 1.0, and I'm distinctly disappointed that it's still so bad.

<comment><USER2> The Rust memory model is basically "the C11 memory model, except static checks prevent the unsound parts". We don't have much of a choice, given that we basically pretend to be C at the LLVM IR level and that we want to heavily leverage LLVM's existing optimization passes, which were designed with C in mind.

The "reference" isn't normative, it's just an unprincipled dumping ground for random bits of syntax and semantics and probably should have been deleted years ago, or at least renamed to something with less authoritative weight than "reference" to avoid misleading people as it often does. The Rust devs absolutely do want to thoroughly specify the language someday, though the immediate priority is making sure that Rust survives its first ten years.

<comment><AUTHOR> > it's just an unprincipled dumping ground

This is not the case, and I don't appreciate you disparaging others' hard work like this.

The reference is _accurate_ , but not _complete_. Anything inaccurate is a bug, and if they're found, we fix them like any other.

<comment><USER2> _> > it's just an unprincipled dumping ground

> This is not the case, and I don't appreciate you disparaging others' hard > work like this._

It is the minimally-charitable interpretation of my statement to assume that I'm trying to disparage the people behind the reference. The document itself is lacking, which is a statement we can make about many nightly/unstable things without disparaging the people working on them; exacerbated in this case because the reference ships as part of the stable documentation, which implies a degree of quality that it does not yet live up to, especially given the high expectations that people have when they of a language reference document such as ECMAScript's or ISO C++.

Starting from the first page of the reference, Notation: [https://doc.rust- lang.org/stable/reference/notation.html](https://doc.rust- lang.org/stable/reference/notation.html)

The first paragraph links to a section on special Unicode productions. This section defines identifiers in terms of Unicode's XID_start and XID_continue, but this is referring to the unstable non_ascii_idents feature, not anything in the stable language. There is a footnote noting as such, and saying that the situation is expected to improve soon, but this feature gate has existed since before 1.0 and AFAIK no RFC has ever been written to describe this feature, so this footnote gives a false sense of optimism. Furthermore, as per the discussion at [https://github.com/rust- lang/rust/issues/28979](https://github.com/rust-lang/rust/issues/28979) , it's very unclear whether or not the stable form of this feature will end up using XID_start or XID_continue. My fix is [https://github.com/rust- lang/rust/pull/50790](https://github.com/rust-lang/rust/pull/50790).

In the same section on Special Unicode Productions, it defines the non_null character class as any Unicode character but null, and then the non_eol character class as any non_null character except for newline. Below it then defines a grammar for line comments as two forward-slashes followed by zero or more non_eol characters. But this is incorrect, because Rust does allow null characters in comments: I don't expect that a code example will survive network transmission, but modify the following program by replacing $ with a null to see that it only prints "2", not "1\n2":

        fn main() {
            // test $ println!("1");
            println!("2");
        }

I doubt that this is a bug in rustc, because Go, which like Rust also mandates UTF-8 source files, considers newline to be the only way to terminate a line comment and AFAIK has no issues with accepting nulls. We also allow other nonprinting characters in comments. This same error exists for the classes concerning what is valid in char and string literals. My fix is [https://github.com/rust-lang/rust/pull/50791](https://github.com/rust- lang/rust/pull/50791).

Going back to the Notation page, the next paragraph has links to the sections on unary and binary operators. The section on the dereference operator has a typo: "variance" should be "variable". The section on the question mark operator has the typo "errornous". The operator table should have a footnote specifying that integer division rounds toward zero (as opposed to applying a floor function, e.g. [http://mathworld.wolfram.com/IntegerDivision.html](http://mathworld.wolfram.com/IntegerDivision.html)). (Given the existing footnotes specifying the behavior of the right-shift operator, I assume this is the proper place for this.) Further down, the section on type casts is incomplete; the coercion table misses that non- capturing closures can be cast to function pointers. The section on assignment expressions should note that assignment expressions evaluate to (). Fixes at [https://github.com/rust-lang- nursery/reference/pull/337](https://github.com/rust-lang- nursery/reference/pull/337).

The Notations page links to a section on tokens. The Characters and strings table has a column labeled "# sets" that uses notation like "0...", which should have a footnote for clarification. The section on Character escapes refers to the previously-defined term "7-bit character code" as an "8-bit code point escape". In the section on Byte and byte string literals, the grammar definitions for ASCII_FOR_CHAR and ASCII_FOR_STRING exclude forward slashes, when they should exclude backslashes. The section on invalid integer literals says that overflowing literals are invalid, but they're not (this one is arguably something that ought to be changed, and I've opened [https://github.com/rust-lang/rfcs/pull/2438](https://github.com/rust- lang/rfcs/pull/2438) to discuss changing it). The section on valid integer suffixes omits the new 128-bit types. Fixes at [https://github.com/rust-lang- nursery/reference/pull/338](https://github.com/rust-lang- nursery/reference/pull/338) for these.

That covers all pages reachable from the first two paragraphs of the reference and notes all the errors that are obvious to me in a single pass. I don't intend this as a disparagement of the documenters--language references are _damn hard_. There's surely plenty that I've overlooked. The degree of detail is overwhelming and the inherent authority of the word "reference" means that stakes are high. Compared to our other stellar docs the reference is notably lacking, and releasing it alongside them is an outlier from our usual standard of quality. Several large concepts are missing (such as, AFAICT, the type inference algorithm); the section on unsafety may even (if I'm properly interpreting the mood of the members of the unsafe code guidelines working group) be verging on misleadingly dangerous (suffice to say I think the Nomicon should be nightly-only as well (which is also not intended as a disparagement of Gankro's efforts)). The fact that people are still interpreting the reference so authoritatively suggests that more steps could be taken to reduce confusion. At the very least I think it should moved to nightly-only (and likewise remove its mention from www.rust-lang.org)... and maybe also add one of these: [http://images.mentalfloss.com/sites/default/files/styles/ins...](http://images.mentalfloss.com/sites/default/files/styles/insert_main_wide_image/public/under%20construction1_0.gif) :)

I apologize for the phrase "unprincipled dumping ground", it was a rash way of saying that the reference is developed in an ad-hoc way where sections are (mostly) added or improved without apparent overarching guidance or large- scale vision, hence all the missing pieces and parts that still date back to 1.0. I also apologize for suggesting that it ought to have been deleted; I still harbor a latent prejudice against the reference for all the years where it existed without anybody noticing that multiplication's precedence was specified as somewhere between addition and subtraction. :)

<comment><AUTHOR> > It is the minimally-charitable interpretation of my statement to assume that > I'm trying to disparage the people behind the reference.

An "unprincipled dumping ground" says something about those who are maintaining it. It's not about charitable interpretations, it's about the contents of what you said.

> I apologize

Thank you. But...

> I still harbor a latent prejudice against the reference

That you do things like this perpetuates the situation you complain about. You're involved with the Rust project; to see you say things like this has even more weight than some random person. Furthermore, to say the things that you've said also demonstrates that you don't actually know what's going on with the reference, making it extra frustrating.

Please reconsider your actions here. They only hurt, not help.

> That covers all pages...

Thank you! All of these things would make _great_ bugs, and I know you know where to file them. Doing so would be a _tremendous_ help, and is exactly what we need to make the reference better. That's what we need more of, not disparaging it and those who work on it in front of thousands of people.

</comment></comment></comment></comment></comment><comment><USER6> Having finally gotten back to rust after one false start (using it for the Synacor Challenge), I'm glad to see it continue to flourish.</comment>


Why I Wake Up at 4:22 AM - <AUTHOR> http://www.alleywatch.com/2015/04/why-i-wake-up-at-422-am

<comment><AUTHOR> I submitted this just to give myself the opportunity to say that I am __so __jealous of people that can do with ~5-6 hours of sleep. It 'd be impossible for me to do more than two or three days in a row with less than 8 hours of sleep.

The amount of sleep you need changes so many things in your life..</comment>


The Sortix Operating System - <AUTHOR> https://sortix.org/ <comment><USER3> I'm always disappointed when I see a new operating system on here if being able to talk directly to God isn't one of its core features.

(But seriously, purely from the feature list, this looks like an incredible achievement.)

<comment><USER4> I write to /dev/null all the time. You should try it.

<comment><USER5> So in the beginnings of time it was /dev/null, but /dev/null felt so empty and lonely; so he created init... but init was envied by his brother systemd, that killed him..

<comment><USER4> Careful. This story is plagued with daemons and forks.

</comment></comment></comment></comment><comment><USER6> >> There's a lot of technical debt that needs to be paid, but it's getting better.

You should just leave these sort of statements out of your introduction. It's generally assumed all projects have some degree of technical debt, and you'll lose more users (i.e. most) than you'd gain (i.e. 0) by trying to treat the subject with candor.

In other words, don't sell yourself short. Speak directly to why someone would want Sortix right away. In your intro, speak as if Sortix exists, fully formed, and complete. Let people come to their own conclusions about the quality.

For example, I'd rewrite the opening sentence from

        Sortix is a small self-hosting Unix-like operating system developed since 2011 aiming
        to be a clean and modern POSIX implementation.

To

        Sortix is a clean and modern POSIX implementation.

Believe me, I've never released a project that I thought was complete. That's not because I've never released a project, it's because I'll probably never consider any of my projects "complete". There will always be more to add, more to take away, more to do. It adds nothing to my description to call my projects incomplete. The game is thus figuring out when to cut my engineering- self off and engage my sales-self.

<comment><USER7> Being German, I think rather differently (probably this is a different culture; US citizens might think differently) about this. Consider

        Sortix is a small self-hosting Unix-like operating system developed since 2011 aiming
        to be a clean and modern POSIX implementation.

vs.

        Sortix is a clean and modern POSIX implementation.

If it isn't yet a clean POSIX implementation, the second one is a blatant lie to a potential user (which they will and should not forgive). On the other hand, the first one is quite honest in that is clearly tells what is there and the clear commitment to reach a clean and modern POSIX implementation - <USER2> fair and honest.

<comment><USER6> I don't think BMW, with their slogan "The Ultimate Driving Machine", shares your notion of what it means to be German, then. Or even Volkswagen with "Das Auto", is it really _the_ car, or just _a_ car?

It'd be lying if he were to say "we have 100% POSIX compliance." Very few OS projects can claim that. It needs to also be version-qualified, as there are several POSIX standards and even Windows can claim compliance with some of the versions.

My point is that this information of the current state of the project does not belong in the _introduction_ to the project. The fact that it is a Zero-Point- Something version number is information enough that the project is incomplete.

SpaceX "...DESIGNS, MANUFACTURES AND LAUNCHES ADVANCED ROCKETS AND SPACECRAFT". They don't add caveats about completeness or design flaws or anything of that sort _in their introduction_.

And my reduction is just a call-out. The introductory section of the site is three paragraphs and a sentence long. It's not an introduction at all, at that point. All of these extraneous details are specifically making the introduction _less_ clear, not more.

<comment><USER8> > I don't think BMW, with their slogan "The Ultimate Driving Machine", shares > your notion of what it means to be German, then.

Or maybe they understand that different marketing approaches are required in different cultures. The slogan BMW uses in German-speaking markets is "Freude am Fahren" (roughly, "driving pleasure", or to be somewhat more literal, "pleasure while driving"), which is a bit more modest than "The Ultimate Driving Machine".

<comment><USER7> So true. "The Ultimate Driving Machine" would rather be seen as confirmation of the "swaggerer image" that BMW sometimes has (and BMW is in my observation trying to get away from).

</comment></comment></comment></comment></comment><comment><USER9> Cool! Why?

(I have also spent the last year working on a homebrew OS kernel, so please trust that my "why" isn't intended as an attack! For me, the answer was simply "to see if I can", and I really enjoyed the project, but I'd love to know what motivated you in particular - especially as you seem to have achieved a very impressive amount)

<comment><USER10> To paraphrase Cave Johnson, OS dev isn't about why, it's about why not!

<comment><USER11> Also to get your OS into space. That's definitely on the bucket list.

</comment></comment></comment><comment><USER12> I have always wondered why so many hobby operating systems seem to be so POSIX focused? Why not explore other designs or make your own?

<comment><USER11> I assure you there are plenty of room for designing your own operating system even if you implement POSIX. POSIX is a pretty reasonable minimal system interface for C programs. I osdev for fun and to challenge myself and I find a very ample supply of interesting things to work on. If I went and did something different, perhaps in another language, it would likely be equivalent to the POSIX system concepts largely, except custom and probably worse. If I really wanted a custom design, I would want it to be at least a magnitude better.

<comment> zupa-hu Sortie, would you share what POSIX reference you used for the implementation? I wanted to read and understand it for a while, but I never made through the only one I found [1]. Maybe there are alternative sources?

[1] [http://pubs.opengroup.org/onlinepubs/9699919799/nframe.html](http://pubs.opengroup.org/onlinepubs/9699919799/nframe.html)

<comment><USER11> I use that POSIX 2008 edition myself, and the PDF edition that I got through my university library subscriptions. I simply look up interfaces and headers in it. It's not a gentle introduction though to POSIX programming. But if you know the basics, it's useful to look up in. I generally use the [http://wiki.osdev.org/Cross-Porting_Software](http://wiki.osdev.org/Cross- Porting_Software) method when porting new stuff, that is, I just cross-compile it. I see what doesn't compile, look it up in POSIX, and implement it.

<comment> zupa-hu I see, thanks a lot. That osdev wiki seems a great source in general. Woohoo! :)

</comment></comment></comment></comment></comment><comment><USER13> I always see the person who made this post on OS dev wiki. They are brilliantly helpful and a champion of the hobby OS community.

</comment><comment><USER14> I've been watching your posts for quite a while at osdev.org, sortie. Great job sticking with this! So many people (myself included) start on an OS dev project only to get bored or give up a few months in. For anyone interested in hobby OS development who isn't familiar with osdev.org, check it out! They have a great wiki with tutorials, as well as discussion forums.

</comment><comment><USER15> Very cool. I _love_ seeing these home made operating systems. Nice to see an in-house C implementation! The feature list is very impressive. Screen shot of GCC running in the terminal is straight up smooth!

</comment><comment><USER16> I haven't been able to get chvideomode to work under Virtualbox. The OS itself is rather cool, I think I will try to write a simple graphical demo to try it out.

<comment><USER11> I appreciate you actually trying my OS and leaving a comment. chvideomode really should work under VirtualBox. If there's a bug on my end, I would really like to fix it. Could you show up in #sortix on Freenode IRC for a debugging session?

</comment></comment><comment><USER17> Very cool that it managed to become self-hosting.

</comment><comment><USER18> Why does the logo critter have trapezoid feet?

<comment><USER11> Who ate the Apple logo?

</comment></comment><comment><USER19> Off topic, I always thought libm was a bit too brief a name for the math library.

</comment><comment><USER20> In C++!. that's cool! But I laughed by just thinking at what Linus Torvalds would say lol.

</comment><comment><USER21> That logo...

<comment><USER22> .. is lovely: [https://users-cs.au.dk/~sortie/sortix/screenshots/sortix- nee...](https://users-cs.au.dk/~sortie/sortix/screenshots/sortix-needs-a- better-shell.png)

</comment></comment><comment> zupa-hu It's amazing how far you got alone. Respect. I'm also too curious on the "why". While I greatly respect the achievement, I'm sad to think it's wasted effort. I deeply wish you have a secret strategy - while I doubt.

<comment><USER11> My utility function is to write a good operating system that I like. Any effort towards that goal is not wasted. If I can use it on my computers, which I can, I'm happy. Note the existence of secondary benefits. Sortix libz is a cleaner fork of zlib, and other portable replacement libraries are underway. Other hobbyist OS developers learn from my work and advise. I make third party projects more portable and file upstream bugs. These things benefit all of us, regardless of the market share of my OS.

<comment> zupa-hu I see, cool. Thank you for explaining, I think I didn't get the point. Last point of the Roadmap [1] is hilarious.

[1] [https://gitlab.com/sortix/sortix/wikis/home#roadmap- to-0-9-r...](https://gitlab.com/sortix/sortix/wikis/home#roadmap- to-0-9-release)</comment></comment></comment>


Eric Schmidt to become technical advisor to Alphabet - <AUTHOR> https://abc.xyz/investor/news/releases/2017/1221.html <comment><USER2> At the bottom of this thread is a comment by 'AmIFirstToThink' which has been inexplicably marked "dead". It seems to be the only reply as of writing this that makes the connection of Schmidt's stepping down to his strong bets during the 2016 election.

A little-noticed WSJ piece from October would support that idea:

> [Google] Employees donated $1.6 million to her campaign, about 80% more than > the amount given by workers at any other corporation, and Executive Chairman > Eric Schmidt helped set up companies to analyze political data for the > campaign. Mr. Schmidt even wore a badge labeled "STAFF" at Mrs. Clinton's > election-night bash.

> His support of the losing side didn't go unnoticed among the victors. As > President-elect Donald Trump was preparing for a meeting with tech > executives at Trump Tower not long before his inauguration, he asked > strategist Stephen Bannon whether Mr. Schmidt was "the guy that tried to > help Hillary win the election," according to someone who heard the > conversation.

> "Yes," said Mr. Bannon. "Yes, he is."

> Google, one of the most powerful players in Washington in recent years, is > now facing the consequences of its lost political clout—and is moving > mountains to regain it.

[https://www.wsj.com/articles/googles-dominance-in- washington...](https://www.wsj.com/articles/googles-dominance-in-washington- faces-a-reckoning-1509379625)

<comment><USER3> What do HN people think about a law to prevent corporate executives from giving money to politicians?

<comment><USER4> If you care about democracy, you want to make it easier for individual people to spend a lot of money on politics.

As with so many regulations, it mostly benefits the people who have enough resources to work around them:

With strict limits per person, you need a huge established machine that can reach out to many individuals to get your donations rolling. Without limits, you just need to convince one eccentric billionaire. While the latter is still hard, it's still much easier done than the former.

<comment><USER5> Yes, because we want people with sufficient money to be the only ones with a voice, and we want their voices to massively outweigh the voices of everyone else. That's definitely what someone who cares about democracy would want.

<comment><USER4> The supposedly money-restricted alternative is not the democratic utopia you paint, but the place where only established machines can compete.

</comment></comment></comment></comment></comment><comment><USER6> > Alphabet expects that its board will appoint a new, non-executive chairman > at its next meeting in January, meaning that it will join the ranks of Apple > and Microsoft as major companies with non-executive chairman.

Could someone provide some context around this topic of executive/non- executive chairpersons?

Edit: The above quote is taken from the original link which this HN post pointed to - [https://www.cnbc.com/2017/12/21/eric-schmidt-is-stepping- dow...](https://www.cnbc.com/2017/12/21/eric-schmidt-is-stepping-down-as-the- executive-chairman-of-alphabet.html)

<comment><USER7> > Could someone provide some context around this topic of executive/non- > executive chairpersons?

An executive chairman is something of a weird beast; they are both chairman of the board and an executive employee involved in managing the firm (as an employee, they usually report to the CEO, but the CEO is accountable to the board, which the chairman, well, chairs.) The exact division of duties between an executive chairman and the CEO is different in every firm using the arrangement, I would expect.

A non-executive chairman is just the head of the board and not involved in day-to-day executive management of the firm, only oversight of management.

<comment><USER8> Well you can be the chair of the board and CEO so then that's not too weird.

<comment><USER7> Chair and CEO is less weird than separate executive chairman and CEO. The executive chairman model is more analogous to if, say, the CIO or CFO was also the board chair.

</comment></comment></comment></comment><comment><USER9> One of the most interesting debates was between Eric Schmidt and Peter Thiel back in 2012, especially in the positions that Eric staked out:

[https://www.youtube.com/watch?v=PsXFwy6gG_4](https://www.youtube.com/watch?v=PsXFwy6gG_4)

<comment><USER10> Wow, Peter Thiel, is annoying, to say the least. He sounds like someone who lives in a bubble that is completely decoupled from the real world. He doesn't even let anyone else make any point.

Am I even allowed to say all these without getting sued or banned?

<comment><USER11> I watched this video before. He is very annoying but I am mostly agreeing with him.

</comment></comment></comment><comment><USER12> Bloomberg titles this quite differently:

 _Alphabet 's Schmidt to Step Down From Executive Chairman Role_

[http://www.sfgate.com/business/article/Alphabet-Google- Eric-...](http://www.sfgate.com/business/article/Alphabet-Google-Eric-Schmidt- to-Step-Down-12448538.php)

<comment><USER13> Makes more sense than the current HN title.

</comment></comment><comment><USER14> Investors are seeing this as a non-event. He's still going to be around, just a much more limited capacity.

More interesting is who they decide to appoint.

<comment><USER15> Who they decide to appoint will only be interesting if they appoint somebody interesting, which seems unlikely. Larry Page is still running the show, and moving from an executive chairman to a non-executive chairman will probably only mean that the board has less power than they did before.

Odds are they appoint somebody politically well-connected, and that person then gets to use the "chairman of the board at alphabet" title to lobby various governments in Google's favour, rather than they appoint somebody who is going to do any serious oversight of alphabet's executives.

<comment><USER16> Interesting. Obama could be a good bet if he would take the job.

(Perhaps the departure was predicated on Obama agreeing in advance)

<comment><USER17> Honest question: Why would Obama be a good bet? Or is this comment a joke?

<comment><USER16> Obama could personally call any world leader and talk about taxes, privacy, regulation, etc. with authority.

He would also be generally pragmatic, likable, and qualified.

<comment><USER18> Objectively speaking, he would generally be considered likable by about 47.9 [1] of the voting public. It wouldn't be unreasonable to assume that the vast majority of employees of either Alphabet or Google would agree with your assessment, and indeed likely most in the tech sector. But I'm not sure any polarizing figure would be a good fit outside of those niches.

[1] [https://en.wikipedia.org/wiki/United_States_presidential_app...](https://en.wikipedia.org/wiki/United_States_presidential_approval_rating)

<comment><USER19> 47.9% (on average) approval rating by Americans for his job as President (and consequently positions his cabinet, Congress and his party took). It's a barometer of how Americans feel about the USG, too.

If you polled him right now across worldwide audience about his stature, it would probably be north of 70%.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Schmidt will still be on the board.

IR release: [https://abc.xyz/investor/news/releases/2017/1221.html](https://abc.xyz/investor/news/releases/2017/1221.html)

<comment><USER21> When he was hired, there was a pact with Larry and Sergey that the three would run the company for 20 years: [https://www.reuters.com/article/us-google- executives/top-goo...](https://www.reuters.com/article/us-google- executives/top-google-execs-pledged-to-stay-20-years-report- idUSN3026301220080131)

</comment></comment><comment><USER22> Is it just me or does anybody else think that the reason could potentially be a sexual harassment?

<comment><USER23> Something is fishy which is why they released this info just before the holidays so that the general public forgets about it soon.

<comment><USER24> There is some amount of gossip floating around: [http://www.dailymail.co.uk/news/article-2371719/Googles- Eric...](http://www.dailymail.co.uk/news/article-2371719/Googles-Eric- Schmidts-open-marriage-string-exotic-lovers.html)

Not that the Daily Mail is a credible source, but there is a little smoke.

<comment><USER22> It has got to be more than love rat though. He must have crossed a line somewhere.

</comment></comment></comment></comment><comment><USER25> Is this related to #metoo?

<comment><USER26> For anyone wondering: there have been some rumours that Eric Schmidt has been indiscrete in the past, more specifically that he described that he had an "open marriage" and that he had relations with "exotic dancers".

As far as I can tell, there is no reason to think that his close collaborators at Google didn't know about and discovered something unsavoury recently. More to the point, there is no reason to think his behaviour (although offensive to some) was ever non-consensual.

It's entirely understandable that, after more than a decade at the helm of the most incredible companies of all time, he's stepping down to simply retire.

Given the times, the question bears being asked -- although as far as we can tell, No.

<comment><USER27> Cool, I always wanted our sexual culture to revert back to the puritan 1600's.

<comment><USER28> It's not a reversion, it's a continued evolution. As Dworkin noted:

> Empirically speaking, sexual liberation was practiced by women on a wide > scale in the sixties and it did not work: that is, it did not free women. > Its purpose—it turned out—was to free men to use women without bourgeois > constraints, and in that it was successful.

The hippies became Reaganites and women were allowed to participate in the economy to some extent, but that freedom also came with the expectation of sexual availability. You see it even now: suggest that maybe we should prohibit relationships between coworkers, and men flip out. The idea that we might categorically close off some spheres of life to sexual advances, so that women can work in peace and build their careers, induces apoplexy.

<comment><USER27> Weird though, because school/work is the most common place for couples to meet. Your opinion is another example of ivory-tower syndrome, or living in an ultra-liberal bubble.

Coworkers abstaining has more to do with risk (greater on the men's side). Elites have always tried controlling sexual freedom and exploration because it threatens their control over literally creating future elite generations.

The sexual revolution absolutely improved women's prospects from the Eisenhower era. Instead of forced to religious-coupling or pushed into traditional female roles, instead women were able to more freely choose their mate.

<comment><USER28> Work is at 10% of relationships and rapidly falling: [https://arc-anglerfish- washpost-prod-washpost.s3.amazonaws.c...](https://arc-anglerfish-washpost- prod-washpost.s3.amazonaws.com/public/ARQXH32AVQ4KTP4255WUYDHHUQ.png). In a few decades it's going to be socially unacceptable to hit on coworkers. "If I were looking for a date, I'd be on tinder!"

As to the sexual revolution, read Dworkin's take on it. Her point that it is a distinctly a man-centric view of sexual freedom is prescient. It's not just about being free to have sex whenever/with whoever you want, but also freedom to live aspects of your life without dealing with sexual advances. It's about the freedom to go to work and have coworkers look at you as someone who can help advance their careers, or someone who they can mentor, not a potential date.

</comment></comment></comment></comment></comment></comment><comment><USER29> [https://www.recode.net/2017/6/13/15788892/alphabet- sharehold...](https://www.recode.net/2017/6/13/15788892/alphabet-shareholder- proposals-fair-shares-counted-equally-no-supervote)

Larry and Sergey have special voting shares so its their company. In this case how much does the board really matter. Sergey and Larry can do what they want.

<comment><USER30> Have you looked at Alphabet or other big company board? One thing you will notice is that lot of board members are actually from giant investment funds (3 in case of Google, much worse for companies like Microsoft). Regardless of who owns voting shares, these investors have huge say on how things gets done.

For example, they can threaten to dump their stock or not buy in anymore. Because of small daily volumes relative to market cap even small dumping can have huge price swings in stock. For public companies, their stock is literally a currency. They use it for acquisitions, hiring and so on. These investors can reject motions in board voting and usually always want to tighten screws for short term gains.

Now you should have more understanding on why Google was forced to hire people like Ruth Porat as CFOs and why she can cut down on so many projects for "more business focus" and increase "shareholder value". Owning majority voting shares are not that useful as they were hyped up to be.

</comment></comment><comment> oh-kumudo What is he doing as of late? I don't really feel his presence bears too much significance for today's Google..

<comment><USER31> "In recent years, I've been spending a lot of my time on science and technology issues, and philanthropy, and I plan to expand that work."

</comment></comment><comment><USER32> good news that he is getting less power

</comment><comment><USER33> We've updated the link from [https://www.cnbc.com/2017/12/21/eric-schmidt-is- stepping-dow...](https://www.cnbc.com/2017/12/21/eric-schmidt-is-stepping- down-as-the-executive-chairman-of-alphabet.html), which points to this.

</comment><comment><USER34> As it happens, I posted a blog post on some issues about Google, Mozilla, and the debt-based economy:

[http://yuhongbao.blogspot.ca/2017/12/google-mozilla-and- debt...](http://yuhongbao.blogspot.ca/2017/12/google-mozilla-and-debt-based- economy.html)

I now have email threads with jrockway and ChuckMcM on this.

<comment><USER35> Your blog post has an unreadable presentation and looks like blog spam, unfortunately.

<comment><USER34> I agree that I really should clean my blog up. Creating a blog post is easier than linking to individual tweets. This is the Blogspot default look.

<comment><USER36> Consider re-writing it as prose, instead?</comment></comment></comment></comment>


The lunacy of the "iPhone 4S is a disappointment" crowd - <AUTHOR> http://www.edibleapple.com/2011/10/11/the-lunacy-of-the-iphone-4s-is-a-disappointment-crowd/

<comment><USER2> What the heck, I'll bite.

I'm underwhelmed by the 4S, just as I was underwhelmed by the iPAD. I don't see the appeal of either of those at the price point at which they are offered. In my opinion they're not significantly better than the technology we had in 2000 (although the battery life is tons better). There's very little I can do on those devices that I couldn't do on my iPAQ, or on my tablet computer back then.

I'm happy a lot of people are thrilled with them though, as that means that the state of the art will eventually move to a point where I get to see the value. Now, please, go enjoy whatever it is you enjoy and stop trying to justify your decision to the rest of us.

</comment><comment><USER3> "a measly iPhone 4S with an A5 chip, an amazing camera, voice recognition, iOS 5, and 1080p HD video recording."

Well, even looking at his list from the perspective of an iPhone 4 user...

A5 chip: I don't think my iPhone 4 is slow in anything I do. I guess the 4S is better at playing FPS that are terrible on a phone anyways.

Amazing camera: Nice feature, but the iPhone 4 camera is pretty good already. I doubt this is as dramatic as the 3GS to 4 camera upgrade.

Voice recognition: Might use it in the car sometimes. This used to be available for the iPhone anyways, and no one used it.

iOS 5: I get this on my iPhone 4.

1080p HD video recording: iPhone 4 already does 720p and I've never felt it lacking.

<comment><USER4> Perhaps you weren't the target marget. Look at the 4S compared to the 3GS. iPhone 4 owners are still under contract while 3GS owners are at the end of their contract.

As a business strategy, the goal would be to encourage 3GS owners to upgrade. Similarly the iPhone 5 will be positioned to entice iPhone 4 owners to upgrade.

<comment><USER3> True, but by that logic, it would almost make sense for Apple to go to a 2-year upgrade cycle, since the 3GS to 4 upgrade is also definitely worthwhile for those users. The main reasons they didn't already upgrade are not being off contract yet, and waiting for the iPhone 5 release.

</comment></comment></comment><comment><USER5> I agree with the tone of the people posting comments here: The hardware refresh is nice, but it's nothing special.

If this were an Android phone, that would be OK as the next super-device would be no more than a month away. As it's the iPhone, though, this means that people are stuck with a device that is only just on par with current Android devices for the next year.

</comment><comment><USER6> I was firmly in the "there's nothing disappointing in this release" camp before reading this. But I have to say this sounds a LOT like what people used to say about the Mac pre-Jobs' return. As Windows was slowly catching up you'd hear about the elegance of the Mac and how features weren't as important as usability. And it was true but it was also true that Windows was gaining on the Mac far faster than the Mac was improving.

I do think there are some neat things in the 4S but there's no doubt that Android phones have made a leap in the next year while the iPhone just made a step. So while I'd still put the iPhone in the lead I think there's an argument to be made for the 4S being a disappointment.

(and for the record I bought one for full price because I've needed a 64G iPhone to fit all my music for years now so I'm not an Android fanboy)

</comment><comment><USER7> Nobody said the iPhone 4S wouldn't sell nor that it was a bad phone. Just that we were hoping more from Apple, and that the company didn't do anything innovative this year. I still think the same, but I'm hoping Siri will prove me wrong (because it would be really cool), but I don't count on it.

</comment><comment><USER8> Don't they realize that the point of buying the new iWhatever is to let everyone know how elite you are? iFans are more impressed with the color something comes in than whats inside it.

</comment><comment><USER9> Yeah, I think the problem with the 4S is that it's a fairly minor update. Look at the difference between the "smartphones" before the original iPhone and after, the iPhone and the iPhone 3G(S), and then the iPhone 4. Each was a significant upgrade in both technical prowess and on-board features. However, the consumer market has already seen -everything- the 4S with this year's Motorola, HTC, and Samsung offerings.

</comment><comment><USER10> What is the point of this article? The iPhone 4s was a slight improvement over the iPhone 4, and frankly I'm still shocked to hear things like the RAM is the same and the processor still clocks at barely 800Mhz. For Apple, this is fine. But saying that my iPhone 3gs-holding-friend shouldn't be disappointed _just because Apple is selling millions of them_ , is just silly. He's disappointed because I'm about to have a 1.5Ghz dual core phone with 1GB of memory and a resolution higher than the computer I used in highschool just 4 years ago in a thinner form factor than his phone. He will love his iPhone 4s and I will love my phone, but I don't understand the tone of this article. Is it really so unreasonable to want LTE given the available phones on the market that have LTE? Or a form factor that is more competitive.

I guess from where I'm sitting, I'm used to Apple kicking everyone in the nards from a tech specs perspective, and I don't think that's the case this go-around.

<comment><USER4> Yes it is unreasonable to expect LTE. The current chips wouldn't fit in the iPhone 4 form factor and would use more power (i.e. less battery life). And of course LTE coverage is a lot less than 3G coverage.

So the tradeoff doesn't seem reasonable to me at this point in time. Next summer there will be different chips, a redesigned form factor (probably) and better LTE coverage and so the tradeoff will go the other way.

<comment><USER10> Phones on the market and phones that will be on the market in 23 days beg to differ on those claims. Thinner chassis, LTE, at-least-tolerable battery life, twice the ram, twice the proc speed (and dual core), etc.

<comment><USER4> I was thinking in the context of Apple. Redesigning the form factor every 12-15 months has a cost. For this reason, redesigning the _iPhone_ to incorporate the LTE chips wouldn't make sense since Apple seems to aim for a 24-28 month refresh on the form factor.

I wasn't suggesting that it was impossible if you were designing from scratch.

Battery life is important. So yes you can sacrifice battery life for more power hungry 1st generation chips but it isn't _wrong_ to decide that the battery life is more important.

Seems like the effective CPU+GPU capability of the iPhone 4S is at the head of the pack. When you add in the overhead that Android software has I don't think it is necessary for Apple to goose the processor specs in order to get fantastic end-user experience. This also saves power. Again tradeoffs that have to be made and the ones Apple picked seem entirely reasonable to lots of customers (based on pre-sales orders).

<comment><USER11> CPU+GPU wise iPhone 4S is lacking. There are phones on the market right now with Exynos at 1.2 GHz (Exynos is basically A5 minus Apple logo), which is in part reason for the disappointment with 4S.</comment></comment></comment></comment></comment>


Aspects of Categorical Recursion Theory - <AUTHOR> https://arxiv.org/abs/2001.05778 <comment><AUTHOR> This includes a fresh take on the foundations of the correspondence between cartesian closed categories with simply typed lambda calculus that underlies the beautiful work of Conal Elliott in [http://conal.net/papers/compiling-to- categories](http://conal.net/papers/compiling-to-categories).

<comment><USER2> I am not sure I understand what are the strongest motivations behind "compiling to categories". Is this an improved formal verification motivation? What does it gain over existing programming languages? In what scenario does a working programmer decide to utilize these concepts? Genuine questions, btw.

<comment><USER3> It gives a turn-the-crank construction for programming languages.

* Describe the values you wish to study

* Find a category whose objects are the types of your values

* Give the category Cartesian closed structure

And now you have a lambda calculus with exactly the structures that you want to study!

MarshallB is an example of a language constructed this way.

<comment><USER2> ah ha, so it is a nice formal framework for domain-specific language creation.

I think it could be really useful to design a walk-through of how exactly it can be used as such for everyday programmers.

<comment><USER3> Read "Compiling to Categories" [0] for the basics of the conceptual framework and how it applies to everyday programming.

[0] [http://conal.net/papers/compiling-to-categories/compiling- to...](http://conal.net/papers/compiling-to-categories/compiling-to- categories.pdf)

<comment><USER4> > _how_

Well, looks like it doesn't... (Not that it's the point of this research.)

</comment></comment></comment></comment></comment></comment><comment><USER5> See also "Generalized Arrows" [https://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-...](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-130.html)

Abstract:

> Multi-level languages and arrows both facilitate metaprogramming, the act of > writing a program which generates a program. The _arr_ function required of > all arrows turns arbitrary metalanguage expressions into object language > expressions; because of this, arrows may be used for metaprogramming only > when the object language is a superset of the metalanguage.

> This thesis introduces _generalized arrows_ , which are less restrictive > than arrows in that they impose no containment relationship between the > object language and metalanguage; this allows generalized arrows to be used > for _heterogeneous_ metaprogramming. This thesis also establishes a > correspondence between two-level programs and one-level programs which take > a generalized arrow instance as a distinguished parameter. A translation > across this correspondence is possible, and is called a _flattening > transformation_.

> The flattening translation is not specific to any particular object > language; this means that it needs to be implemented only once for a given > metalanguage compiler. Support for various object languages can then be > added by implementing instances of the generalized arrow type class; this > does not require knowledge of compiler internals. Because of the flattening > transformation the users of these object languages are able to program using > convenient multi-level types and syntax; the conversion to one-level terms > manipulating generalized arrow instances is handled by the flattening > transformation.

> A modified version of the Glasgow Haskell Compiler (GHC) with multi-level > types and expressions has been produced as a proof of concept. The Haskell > extraction of the Coq formalization in this thesis have been compiled into > this modified GHC as a new flattening pass.</comment>


Killing the Internet to save Hollywood - <AUTHOR> http://www.nypost.com/p/news/opinion/opedcolumnists/killing_the_internet_to_save_hollywood_lSWv0ymGvqWbvn5siAQgsK

<comment><USER2> A better title might be, "Killing the internet to preserve the old methods of distribution so segments of the movie industry dont have to adapt."

Hollywood is trying to fight against an enemy that they don't understand. They think censoring piracy will stop it, when it's obvious that it wont. Gabe Newell said it best - "In general, we think there is a fundamental misconception about piracy. Piracy is almost always a service problem".

<comment><USER3> Their arguments are also pretty inconsistent. They complain about piracy, yet Avatar, a movie released in the age of piracy, is the highest-grossing movie of all time.

They aren't afraid of loses from piracy, instead they are afraid that they'll have to start producing quality content instead of dumb movies like Jeniffer's Body, Jack and Jill, Season of the Witch, Red Riding Hood and Shark Night.

<comment><USER4> I would hardly call Jennifer's Body a dumb movie.

<comment> iso8859-1 It is certainly dumb compared to the movie they ripped off (Carrie).

</comment></comment></comment></comment><comment><USER5> I'm not sure that Hollywood is, in fact, dying. The evidence[1][2] suggests that Hollywood has been making more money in the 2000's than ever before.

1\. <http://the-numbers.com/movies/records/> 2\. [http://www.thewrap.com/movies/article/2010-box-office- more-r...](http://www.thewrap.com/movies/article/2010-box-office-more-record- revenue-fewer-tickets-sold-19915)

They are having record breaking revenue years in 2009 and 2010. It's not like they are suffering the downtown that the newspaper industry has and they don't have nearly the legal protections that Hollywood has and while they are struggling, they are adapting.

If Hollywood were to take a new approach to entertainment, who's to say they wouldn't be having even higher revenue than they are having now? It just seems like a fix for a problem that doesn't exist.

<comment><USER6> So, I've been thinking. I know the whole "don't attribute to malice..." line, but isn't it possible that SOPA is an effort by big media to control all online content? Is there anything in the proposed laws that mandates rights- holders actively pursue violators? (Trademark law does have this requirement.)

Could SOPA be used as a tool to weaken content-driven tech startups, until they can either be shut down or scooped up at bargain basement prices by a studio? Would it be completely inconceivable that an industry guilty of payola (multiple times over) might collude to use SOPA only target web properties not owned by an RIAA/MPAA member?

Hell, I don't even think collusion would be required. All it would take is a massive cross-licensing deal covering online media. Then BAM! You're logging on to Sony Facebook or sharing a link on Twitter by TimeWarner. What if the true targets of SOPA aren't the pirates, but rather the small tech startups that have been making so much noise about how harmful passage would be to their business model. The small tech startups that aren't so small anymore and, day by day, are looking more and more like the future of content.

I begin to wonder if the studios are not so ignorant of technology trends as we might hope, but rather see a way to ensure that our computer screens are controlled by the same groups that control our television and movie theater screens...

<comment><USER7> Those small tech startups are exploiting a loophole in the law to allow them to monetize the studios' content. There is nothing unethical about monopolizing access to content you create.

Think of how profitable cable & satellite TV is now. If they applied that model of guaranteed revenue to the entire Internet, and eliminated piracy 100% with SOPA II, they will make hundreds billions of dollars more.

This is not about stopping piracy, it's about gaining control and a market of guaranteed revenue regardless of the junk they put out through it. In other words, this sinister conspiracy you suggest is just in fact good business, they 100% know about technology trends and thus is why they seek to control, manipulate and police the Internet at this early stage rather when it's too late to take it over.

</comment></comment></comment><comment><USER8> As a Canadian I worry more about US media corporations influencing Canadian politicians which leads to laws being passed. Bev Oda being the the example of an MP that money can buy.

It's bad enough to have DMCA, HDCP, copy protection up the yin yang but when some suit in LA influences what laws are passed in a foreign land I say that's grounds for extradition of the executive and treason charges (or whatever the term would be) for the Canadian politician.

If the situation was reversed I'm sure people in the US would freak out if a music executive from Canada bribed a US congressman to help get laws passed.

</comment><comment><USER9> Title aside, I thought it was a good article that summarized the problems with SOPA, from multiple angles, for the largely disinterested populace out there.

</comment><comment><USER10> "Save Hollywood," eh? As if SOPA will actually achieve any of its purported goals? As if there's any saving Hollywood needs except from itself?

I'm all for encouraging folks to fight SOPA, but perhaps we could save our up- votes for articles with more accurate titles.

</comment><comment><USER11> I wish journalists would stop referring to SOPA as the "bill to stop piracy" or the "bill to save Hollywood". Even this article admits that SOPA is not going to do a thing to stop piracy. It's easily circumvented. The _only_ thing it's going to accomplish is killing the Internet. There's no upside to it.

</comment><comment><USER12> This isn't about saving Hollywood... Its about stopping the 99.99%'s of the populations first amendment platform - the internet. Its about stopping sites like Wikileaks and blogs that speak their opinions about the gov and politicians. thats my $.02

</comment><comment><USER13> The title suggests that Hollywood is in trouble which isn't the case at all.

<comment><USER14> Hollywood suggests it is?

Title lessens abstraction of their War On *.

</comment></comment><comment><USER15> NyPost is killing content delivery and monetization by not making that article accessible through Safari on iOS.

<comment><USER16> looks fine on ios safari to me

<comment><USER17> Yeah, just shows me a full page ad for the iPad app, and tells me their content is now exclusive to their app.

Would be interested to know what causes it to vary...

But yes, a touch of irony there.

<comment><USER18> Safari is gonna need support for spoofing headers, all these companies want to get their foot in the door by having you use their app

<comment><USER15> Download Terra, which lets you spoof headers as FF or whatever you want.

</comment></comment></comment></comment></comment><comment><USER19> Good article. When I'm agreeing with someone from the Cato institute, you know things are serious.

</comment><comment><USER20> Actually everywhere in the world the big problem is the law makers of every country does not fully understand what law they are going to make. They just follow their party stand to save their political position.</comment>


Best practices in modern web projects - <AUTHOR> http://blog.arvidandersson.se/2014/06/17/best-practices-in-modern-web-projects <comment><USER2> Ugh. Pull requests again? OK, look, unless your team is so large that you can't effectively communicate otherwise, pull requests are just friction. Use feature branches, then merge them when they are ready. Trying to pretend like your two person team is a huge open source project with many distributed part- time and full-time developers is cargo cult at its worst.

<comment><USER3> Or don't use branches at all. Develop on trunk/master with continuous integration. It reduces work-in-progress, exposes conflicts sooner and has a host of other knock-on benefits.

<comment><USER4> To 'CI' [per se] I say "yes, of course." It's a best practice. But it is not a substitute for branching! I want to choose when I'm exposed to conflicts. "Sooner" is usually -- but not always -- "better". Summary: strong disagreement on this radical approach.

<comment><USER3> I don't consider not-branching to be a radical approach. If you are using branches you really aren't doing CI, because you aren't integrating continuously.

<comment><USER2> So there are projects where I don't branch: ones where I am the only committer, and there are no features. For example, my puppet manifests for all the servers I manage. It either works, or I roll it back.

However, feature branches are just multi-stage commits. Sure you can invest hours of your life setting up CI, then writing code, not testing it locally before pushing it to master, getting an obscure error from the test/deploy process, fixing it again, pushing again, getting another error, etc. But you probably want to, you know, ship the product.

Having said that, if your workflow actually resulted in you writing better code faster and you ended up shipping earlier and making more money, I'd love to read about it.

<comment><USER3> "Sure you can invest hours of your life setting up CI, then writing code, not testing it locally[...]"

Maybe I've misunderstood, but why aren't you testing it locally? With trunk based development you make your changes, run a local build and push if it passes. Everyone (including any CI servers) runs the same build process.

The trick is that you have to be able to push to master without breaking it, which is scary to many developers and usually requires a shift in thinking. How do I do large refactorings? (you don't - do many small refactorings instead). How do I add a half-finished feature? (break the feature into many smaller features, use feature toggles, etc.)

<comment><USER2> Of course. And this relies on your CI system having 100% unit and system test coverage, including testing external API's, CSS bugs, browser compatibility, etc. Are you certain that your system does that? More importantly, are you certain that investing the time into testing that your checkout button is not covered up by some random element due to a missing ";" character in your CSS file or a missing 0 in the width percentage value will eventually pay off? It should be scary to push to master if you hold master to be deployable at all times. Unit/system testing or not, you will never have guaranteed test coverage, and even if you try to get to it, you will spend infinitely more time doing that, than doing a reasonable amount of unit/system automated testing + good human QA.

<comment><USER3> That's really a function of your QA process, not anything specific to branching strategies. If you can automate everything such that continuous delivery (or even deployment) is possible - great. If not, deliver at whatever pace your QA allows (and strive to increase that pace). Trunk based development does not imply a diminished QA process.

Yes, there is always going to be a feedback delay between you making a change and the full impact of that change being known (even if your feature is bug free, will the customer want to use it?), but we should be bringing that feedback forward by moving changes through the pipeline as early as possible. Feature branching delays feedback, which is why I reject it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> The "12 Factor App" manifesto [http://12factor.net/](http://12factor.net/) is in the same vein as this, perhaps a bit more in-depth.

I like the idea of these guides generally. I think it'd be more valuable if they linked to example production code that followed the principles however, since there's no substitute for the real thing.

Come to think of it, I've never seen anybody write up any kind of index of (for example) Github projects that exemplify good design patterns for people to look at. Or some kind of recommended code reference list.

<comment><USER6> I like that idea too, but I suspect that there are pretty much zero non- trivial projects that actually follow best practices like these consistently. Maybe I'm wrong.

</comment></comment><comment><USER7> I disagree with "Keep the master branch deployable at all times." Both my CSS framework Min ([http://minfwk.com](http://minfwk.com)) and several other popular GitHub projects use the strategy of 'only use one branch, and use tags to mark stable versions'.

Min's only branch (gh-pages, so we can serve the site with GitHub) is usually "unstable" (in the sense that a CSS framework can be unstable.) If someone wants a stable release, that's what Git's tag system is for.

<comment><USER8> I think the idea is sound, but the reasoning isn't. Keeping master deployable at all times forces breaking changes off into feature branches so unrelated pieces of functionality can't interfere with each other's release schedules.

Keeping master deployable for bug fixes doesn't make sense to me, though. Are you going to deploy new features sitting in master because something else had a bug? Just go look up the last release tag, make your bug fixes there, then merge them into master.

I've been bitten too many times by unstable features holding up releases on master (both my features and other team member's). Feature branches do a wonderful job of solving this and the required merge back into master gives you a nudge to prevent scope creep.

</comment></comment><comment><USER9> These aren't really best practices, they're too abstract. Best practices would be exactly how you do said practices the best way possible.

A more appropriate title could be "list of must read articles for modern web development".

<comment><USER10> I'm not sure about that; I feel like I got a lot from the article without following the links.

<comment><USER9> This didn't cover anything useful it just said what everyone was already aware of, the only useful part was the links. Everything else was like saying to spread butter on toast use a butter knife.

<comment><USER11> >just said what everyone was already aware of

What you mean is it just said what you were already aware of.

Not everyone does know all of these things, a list of things with generalised statements along with links to more detailed information is incredibly useful to someone who is just getting into the field, which I guess is exactly who this article is aimed at.

</comment></comment></comment></comment><comment><USER12> I wouldn't call the part about configurations (in the post and in the 12 factor app reference) a best practice. Using environment variables is a hack that has negative side effects including security side effects.

This statement is just silly: "A good goal is that the application can be open sourced at any time without compromising any credentials." It's silly because the use of environment variables doesn't prevent anybody from putting them in a shell script that gets committed to git...

<comment><USER13> You're reversing the "goal" and "practice". It's not that Environment Vars allow you to "open source / credentials".

It's (goal) "be able to open source any time without compromising any credentials". One method (practice), use Environment Vars. Evars being a poor choice in your and somewhat my opinion, does not translate into the goal being poor. It's a laudable goal.

<comment><USER12> Being able to open source code without compromising any credentials is a great goal, but using environment variables doesn't really accomplish it UNLESS your code only runs on a PaaS, which will always supply all of your app's env vars, but it's unrealistic for a number of reasons.

First, there'll be extra vars that your PaaS won't fully manage, so you'll have to keep track of them yourself and then later configure the PaaS environment, so your app can access them. Second, for non-PaaS applications/deployments you still need to manage the environment variables.

The variables don't magically appear by themselves :-) They need to be stored somewhere... This "somewhere" is likely to be the git repo (for the app), so you are back to square one on this.

</comment></comment></comment><comment><USER14> I am sad that this article does not contain the word 'Security'.

</comment><comment><USER15> "Git

First of all, use git for version control. It is modern, works great and the majority of developers are either comfortable in using it or want to start using it.

Its a pain in the arse to learn, overcomplicated for 90% of the cases it is used in. How many people actually need a _distributed_ version control."

(I use Git. It is powerful and useful, but the justification for using it in the article isn't really great. No mention of Mercurial or other version control systems).

<comment><USER16> The benefit of standardizing on a tool that is "good enough" is worth it imo. Learning git is easier than learning svn, darcs, hg, perforce and git and juggling between them when you want to submit patches to open source projects or get new clients.

<comment><USER15> I am not going to argue with you on that point, because that is the reason I am using GIT. CVS would be far more suited to my personal use cases.

<comment><USER17> I'm curious how CVS is suited enough to _anyone 's_ use cases to be worth discussing when SVN exists.

</comment></comment></comment></comment><comment><USER18> All of this really covers the primary thing I preach when working with new devs. "You shouldn't be the only one who knows how to set this up and run it."

One thing that might be missing is good code documentation. Using DocBlock for PHP, for example. Ideally this is maintained in code, but that can get bloaty. At the very least, a git repo of markdown files. Even the built-in github wikis would suffice.

</comment><comment><USER19> >Serve these through a CDN that is optimised for serving static files to ensure high transfer speeds and therefore increased user happiness.

I was not aware this was that common or even considered always the best practice. Is this really the best practice for any website? How exactly is a CDN more optimized than nginx on a dedicated server with 1GB connection?

<comment><USER20> Is there an entry level CDN. Enter your credit card and get access, upload files and go. For a few bucks a month.

<comment><USER21> Look at CloudFront from AWS. CloudFiles from Rackspace used to also include built-in (no additional charge) distribution over Akamai as well, though it had limitations on the number of purges you could do, I think.

</comment></comment></comment><comment><USER22> Honest question: what are the benefits of using environment variables over having an actual configuration file (that is obviously not added to version control) ?

<comment><USER2> Unless your environment demands it, it doesn't matter. In fact, it can be a bit of a pain in the ass to implement on your own, if you are not using Heroku or some such. The main point there is to not put secrets into your git repo. How you accomplish that for the most part doesn't matter.

</comment></comment><comment><USER23> No idea how this is getting so many points. There's absolutely nothing of any practical interest here. Use version control and documentation... End of post. I'd say these are more industry standard practices than leading edge.

<comment><USER24> There will always be a new freshman class. Every year, someone joins HN (or the community at large) knowing next to nothing. We should welcome those people, not make them feel bad for being new.

<comment><USER25> Yep. HN wants to avoid _eternal_ Septembers; occasional Septembers are fine though.</comment></comment></comment>


FDR's Income Tax Return from 1913  - <AUTHOR> http://www.visualizingeconomics.com/2010/02/28/franklin-delaware-roosevelts-income-tax-return-from-1913/

<comment><USER2> Also worth checking out: [http://reason.com/blog/2010/01/28/fdr-tax-increases- dont-app...](http://reason.com/blog/2010/01/28/fdr-tax-increases-dont-apply-t)

FDR: Tax Increases Don't Apply to Me

(Quoting TaxProfBLog:)

Throughout his first term, President Franklin Roosevelt paid taxes at the rates in effect when he took office, even as statutory tax rates increased. His position was that paying tax at a rate higher than that in effect at his inauguration reduced his salary, which violated the Constitutional provision that states that the president's compensation "shall be neither increased nor diminished during the period for which he shall have been elected."

He also claimed his 1937 return was too complicated for him to figure out.

</comment><comment><USER2> One other note: according to the CPI, $10,000 1913 dollars is almost $215,000 2009 dollars.</comment>


Deep Learning: Not Just for Silicon Valley - <AUTHOR> http://www.fast.ai/2017/02/27/not-just-silicon-valley/ <comment><USER2> I'm now in week 4 of the first round of this MOOC (here: [http://course.fast.ai/](http://course.fast.ai/) ) and it's incredibly intuitive, highly recommended. It's less about the mathematics, more about what has been proven to work, and based on these scores I've gotten quite high in the Kaggle competitions the classes go through (Cats & Dogs, State Farm, Titanic)

The Jupyter noteboks are sometimes still quite messy and deserve some cleanup, but it's all open anyway, should submit a PR...

<comment><USER3> For the course setup they say to use an AWS instance. I have a machine with a decent Nvidia GPU in it. What software does it use for the deep learning? Do you use the Nvidia suite directly [1]? Or does Theano [2] have everything built in and you just need drivers?

1\. [https://developer.nvidia.com/deep-learning- software](https://developer.nvidia.com/deep-learning-software)

2\. [http://deeplearning.net/software/theano/index.html](http://deeplearning.net/software/theano/index.html)

<comment><USER4> All of the popular deep learning libraries need cuda drivers with cudnn from nvidia which are free . This course uses theano and keras which are open source .

</comment></comment></comment><comment><USER5> Will the videos of Part 2 of the course be available?

<comment><USER6> ISTR they said they'd be available around May.

<comment><USER7> excited. cant wait. literally.

you got a source for this?

<comment><USER8> "This 7-week course is designed for anyone with at least a year of coding experience, and some memory of high-school math. You will start with step one—learning how to get a GPU server online suitable for deep learning—and go all the way through to creating state of the art, highly practical, models for computer vision, natural language processing, and recommendation systems. There are around 20 hours of lessons, and you should plan to spend around 10 hours a week for 7 weeks to complete the material. The course is based on lessons recorded during the first certificate course at The Data Institute at USF. Part 2 will be taught at the Data Institute from Feb 27, 2017, and will be available online around May 2017."

[http://course.fast.ai/](http://course.fast.ai/)

<comment><USER7> Thanks!

</comment></comment></comment></comment></comment><comment><USER9> Happy to see this article on the front page, since I gave it first upvote last night. Good luck to you, sounds like you are doing great things!</comment>


How to make a Kindle cover out of a real book - <AUTHOR> http://ebonical.elementalise.com/kindle_project

<comment><USER2> The thought of tearing apart/desecrating a written book gives me the shivers. It doesn't matter if it's in a language I don't understand. Or maybe it's just me :)

<comment><USER3> It's weird, but the kindle changed my relationship with books. Before the kindle they were something sacred, and a I had a big spreadsheet with the books I had, I had read and I wanted to have, and annotations regarding the lent status.

Now I read more, but value each individual book less. It's weird.

</comment></comment><comment><USER4> If you don't want to do the work yourself you can also buy pre-made ones: <http://www.etsy.com/shop/vintagecovers>

<comment><USER5> These aren't quite the same thing. He (she) is removing all of the pages.. riveting elastic bands to the back cover and and just leaving you with the hardback portion.

The one described int he article is more akin to the dodo case..

<http://www.dodocase.com/>

</comment></comment><comment><USER6> This reminds me of a recent Charlie Brooker article in The Guardian regarding the Kindle and eBooks. His articles are always worth a read, and his comments on the Kindle being a "safe" way to read a book in front others definitely hit home for me, as I read most of my books on public transport too.

[http://www.guardian.co.uk/commentisfree/2010/feb/15/charlie-...](http://www.guardian.co.uk/commentisfree/2010/feb/15/charlie- brooker-ebook-convert)

</comment><comment><USER7> Reminds me of someone putting an external hdd into a Moleskine, complete with Moleskine icon on the desktop. Pretty sweet.

</comment><comment><AUTHOR> A secret book within a book.

</comment><comment><USER8> Reading is hard

</comment><comment><USER9> It was a pleasure to cut?

<comment><USER9> I guess there aren't too many readers around here.</comment></comment>


Ask HN: Getting a USA bank account as a foreigner? - <AUTHOR>

Is there a way to get a bank account in the USA?Reason: to accept intl payments (Stripe isn't available here)
Will be visiting the USA soon, and I'd like to open a bank account if possible.
Thanks. <comment><USER2> I'm not sure if that is possible. However you may want to look into applying for a ITIN from the IRS before you visit, as you'll likely need one for tax purposes if you're able to open the account (assuming you don't have a US SSN for some reason, or are eligible for one).

Hopefully someone else can weigh in on opening a US account for non-US citizens or residence. I assume illegal immigrants in the US must have them so presumably it is "possible?" Or does the IRS issue illegals SSNs?

<comment><USER3> It used to be that banks would let you open an account without an SSN but they would automatically close it after a period of time if you did not provide one. However since the "Know your customer" regulations Banks are a lot more skittish about opening accounts for people without the proper identifiers.

Probably the best way to start is to talk to your existing bank and see if they have arrangements in place for this sort of thing (most of the large ones do). They can probably also tell you what identifiers you will need to obtain. Be warned generally these kinds of account either require you to maintain a minimum balance or pay a monthly fee.

</comment></comment><comment><USER4> Did you try to google your question first? :)

E.g. [http://money.stackexchange.com/questions/5028/can-i-open- a-u...](http://money.stackexchange.com/questions/5028/can-i-open-a-us-bank- account-even-if-i-dont-live-in-the-country)

<comment><AUTHOR> Thanks for the link, I had googled some questions that led me to a couple of Kickstarter blogs about opening a bank account outside USA (tl;dr: Ask a relative).

</comment></comment><comment><USER5> I recently opened a bank account in SF without an SSN. I'd recommend Charles Schwab's global Investor account (no ATM fees globally).

<comment><AUTHOR> Charlie, thanks!

btw, did you find any good android resources for designers?

Send me an email if you need any help with that (email in my profile)</comment></comment>


Keith Kellogg: who is Trump's acting national security adviser? - <AUTHOR> https://www.theguardian.com/us-news/2017/feb/14/keith-kellogg-who-is-trumps-acting-national-security-adviser- <comment><AUTHOR> >After his retirement Kellogg joined a series of contracting firms including tech giant Oracle – the company gave him a leave of absence to help the Bush administration in Iraq. "I was given the opportunity to establish a homeland security business unit at Oracle," he told the Washington Post in 2005, "based on the skills I developed in the military and on the value that information technology can bring to homeland security."

>Kellogg later joined another tech contractor, CACI, in 2005, and then left for a defense contractor, Cubic Defense, in 2009, where he was responsible for the firm's "ground combat training business". In March, after Kellogg joined Trump's campaign as an adviser, the New York Times reported that the last defense contractor to employ the retired general "had no information on his whereabouts".</comment>


The Internet as Television - <AUTHOR> http://blairreeves.me/2018/12/12/the-internet-as-television/ <comment><USER2> The "paradox of meritocracy." Meritocracy is seen, universally, as a good thing - the people who work the hardest get the most. But at a certain point, if you want to stand out at anything, you have to basically put every waking moment into something.

There was a really interesting article on Polygon recently[1] about how making video games is basically impossible now. There are so many developers making so many great games. Studios with 3 hits in the past go bankrupt off of a 4th game which is (only) alright.

But what's the alternative? We go back to a world where connections and your parents determine how far you can go? That's no good either!

The scary thing about the efficient market hypothesis is that it basically guarantees a feedback loop of people pushing themselves to the edge, farther and farther out, in order to do what they like.

[1] [https://www.polygon.com/2018/9/28/17911372/there-are-too- man...](https://www.polygon.com/2018/9/28/17911372/there-are-too-many-video- games-what-now-indiepocalypse)

<comment><USER3> >Meritocracy is seen, universally, as a good thing - the people who work the hardest get the most.

This is not what meritocracy is about. Meritocracy is about achievements, not just working hard.

<comment><USER4> Yes, in fact because you can work infinitely hard at digging a hole and filling it back up again we would certainly not want a world that distributed rewards according to the labor theory of value.

<comment><USER5> It's my understanding that the labor theory of value is only concerned with "socially necessary labor," and not completely valueless labor -- digging and filling in a hole ad nauseam.

<comment><USER4> That isn't that much of a fix, because you can add hole digging/filling in any amount to the schedule of any socially necessary worker. Someone who digs and fills a hole in the course of welding a pipeline will engage in more labor than someone who just welds the pipeline, but they will both accomplish the same goal of welding the pipeline.

You might say, "by labor I mean the difficulty of accomplishing the task when operating at the greatest possible efficiency," but an idealized, infinitely smart programmer could write perfect, bug-free code as fast as they could type, and an ideal physicist could make all possible theoretical inferences instantly.

<comment><USER6> I don't understand your counter-argument; time spent doing useless things on a schedule in which non-useless work is accomplished doesn't mean that the time doing useless things is suddenly valuable. Any capitalist knows that they don't want to be paying someone to do work that doesn't produce value. The person who only welds the pipeline spends less time getting the task done, which is obviously the aim here.

Socially necessary labour is defined as labour performed under normal ("averagae") conditions of production using tools of average production potential. At least in the Marxian schema (which I'm not really here to defend) skilled difficult labour is only a greater magnitude of simple, unskilled labour. For Marx, the quantitative relationship between them (and indeed between value and socially necessary labour time) was not only not necessary to derive, but arguably impossible in a complex economy. The important part was that it worked. Value works "behind the backs" of participants in an economy to shift their labour to more profitable regions of the economy.

I'd recommend Cockshott et al.'s "Classical Econophysics" chapter on Value which clears up a lot in the Ricardian and Marxian schemas: [http://ricardo.ecn.wfu.edu/~cottrell/ecn265/value.pdf](http://ricardo.ecn.wfu.edu/~cottrell/ecn265/value.pdf)

<comment><USER4> You're right in that the further you get from "the labor theory of value" the better you do, like mixing a bowl of Doritos with a bowl of celery. Smith admitted a little bit of market valuation, and in doing so was a little bit better than completely wrong.

Quoting from your link,

> _For the modern reader an alternative version of Smith's calculation may > seem more natural: the 'labour commanded' by a commodity represents the time > you would have to work (say, at the average wage) in order to buy the > commodity. In both cases – Smith's version and the modern one – the > calculation of labour commanded is the price of the item divided by some > measure of the wage, usually an average._

Clearly, _N_ hours of work at an average wage _W_ is just a roundabout way of expressing a quantity of money _NW_ , and from there Smith believed in market pricing.

<comment><USER6> Smith's error (which turned him to "market pricing") was not recognising the dual character of labour, which is solved in the Marxian schema; capitalists purchase labour-power, which is a commodity with an exchange value (i.e the labour commanded by it is the amount required to reproduce it) of W and a use value (value in use) of concrete labour itself, which is the capacity to create value. Unlike Smith's idea, this is compatible with both varying value of money, varying wages (assuming there is something to vary the wages) and useful in explaining the role of profit.

On the whole, though, I dispute the notion that the LTV must be abandoned; you are already starting from the position that a bowl full of celery is a good thing, but I'd say that we'd do just fine with the Doritos, and the case for a bowl of celery lacks the explanatory power of the bowl of Doritos.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> One detail that really bugs me about this article:How is a cellist making 81k 2013 dollars _as a cellist_ a failure of the web? That sounds like a decent amount of success to me, for what is a pretty niche genre. Would anything other than playing in an orchestra even allow a cellist to make even close to that before the web? Seems very strange and/or out of touch to claim this as a failure.

<comment><USER8> A cellist at a top city orchestra might make more than that, but those spots are few.

<comment><USER9> Top orchestras pay well into 6 figures. $80k is definitely above average.

</comment></comment></comment><comment> m-i-l One of the most exciting and transformative things about the world wide web at first was the concept of "disintermediation", i.e. that small independent shops could reach out directly to customers via their web site, or (using the example in the article) artists could reach out directly to their audience. What has happened of course is in many ways the exact opposite of this, the "re-intermediation" of even bigger and even more dominant organisations than in the pre-internet era. Not sure what the solution to this is though. Even if there were a standard easy to use open source set of tools for users to build their own sites/apps and ecommerce facilities with very little effort (little enough to compete with near-zero effort), which integrated with a variety of low cost hosting providers so they could deploy and run at little cost (little enough to compete with zero cost), you'd still face the problem of how users would find these sites/apps - via an internet search or an app store?

<comment><USER10> Disintermediation did happen. I can reach my fans directly. Many independent shops have their own website. But disintermediation doesn't mean guaranteed customers, just that the independent shop owner doesn't have to pay $1000 in rent every month to sell.

Disintermediation is the cellist being able to sell on iTunes for $0 to anyone in the world, compared to having to ink a record deal and get lucky just to be in record stores.

<comment><USER11> > _Disintermediation did happen. I can reach my fans directly. Many > independent shops have their own website. But disintermediation doesn't mean > guaranteed customers, just that the independent shop owner doesn't have to > pay $1000 in rent every month to sell._

What we wanted to see was people buying 90% of the time from smaller shops, directly from producer websites, direct artists sites, and so on.

Instead, the intermediation is just what happens the 10% of the time, which is probably even worse than what happened pre-internet (when e.g. music fans in England would get most of their music from indies, not from Spotify and co).

</comment></comment></comment><comment><USER12> It is my opinion that internet giants are destroying creativity on the internet. Creativity has to be paid for, whether it is journalism or artists.

As a publisher of the medical technologies news website (since 2004), I can tell you that what we have now is monopolized internet. Few entities, like Google and FB, took over the internet and crafted the landscape to their advantage. They monopolized ads revenue, search traffic, and they are actively spying on the general public, taking away any possible advantages from publishers and creators. So website for doctors cannot make money by advertising to doctors. Doctors will see Google ads on Candy Crush game. The result is a dearth of advertising money for creators. Google and FB own the biggest slice of internet money...

In the olden days we had websites and blog networks being born, Gawker, Weblogs Inc, TechCrunch network, political networks, etc etc. And what do we have now? Central stations with fake news shenanigans and retarded memes. While publishers, including your local newspaper and your favorite websites, are struggling. And your privacy is being exploited.

<comment><USER13> I think you are putting the blame on the wrong entity here. It isn't google or facebook who are to blame, it's the large news and media companies.

Google or facebook doesn't care which creators get paid. They actually want a variety of creators to get paid. The large news and media companies care greatly.

Vox, huffingtonpost, etc are media that are fairly new and they thrived in an open environment. But they are struggling because large established news and media companies have pressured google and facebook into giving them preferential treatment. So traffic that may have gone to vox, huffingtonpost, etc in the past is now being redirected to the nytimes or cnn.

You may have a medical technologies site, but if google or facebook has to favor large news sites over smaller specialized sites like yours, then you simply won't be getting much traffic.

Look at youtube. It's now mostly CNN, SNL, John Oliver, Will Smith, etc recommendations. Look at google news. Go look at reddit and any other social media platform. What used to be a user driven platforms are now traffic drivers for large media companies.

This is why it's so strange to see smaller players supporting the established media in attacking social media. What do you think will be the outcome? Social media is going to serve large media corporations.

Facebook nor google cares whether your medical site or the nytimes gets the view. They are middle man taking a slice of the ad revenue. They used to be pretty fair and showed the most relevant results. If your article had more traction than the nytimes article, your link would rank higher than the nytimes. Now, it's almost certain that the large established media companies will get the first billing.

</comment></comment><comment><USER14> The author raises some good points about a few gatekeepers controlling the majority of the audience, but then condemns recommendation algorithms and believes no one has attempted to solve the discovery problem. How does one miss the obvious when it's right in front of their face?

Discovery is fundamentally hard because its success is judged by two parties whose interests align on paper -- for publishers to find a receptive audience, and for a consumer to find enjoyable content -- but the market is so vast that a missed match isn't just that, but often a match for a different pair. And consumer attention is vast, but ultimately finite, in that it suffers from oversaturation and requires novel and exciting experiences to stand out from a sea of similar offerings.

So platforms use recommendation algorithms to try and guess the sort of stuff every person likes, and try to surface content they're more likely to appreciate, instead of surfacing something completely random. Content that's brand new has no data on its audience, so a chicken-or-egg problem occurs where popular content can bubble toward its most fitting audience, often growing until it can't, while never-before-seen content languishes in a popularity vacuum, desperate for out-of-band help.

The classic out-of-band help is word of mouth. Sponsored, promoted content is a kind of in-band help, allowing platforms to make money and producers to jumpstart their exposure, but has the same structural properties as popularity: those most equipped have the potential to rise the most, while those least-equipped are disadvantaged once more.

<comment><USER15> These are good points. Somewhat tangentially, I think my gripe with recommendation algorithms is simply my lack of control. If I had some knobs to fiddle with, I'm sure I could tune it to surface way more diversified content that I'm interested in.

Particularly with YouTube, I've recently gotten the feeling that their algorithm has pigeon-holed me into a couple different interests, and I rarely see videos outside those recommended to me. Even if it were just a slider from "our best guess <\</comment></comment><comment>> throw in some risky recs", it would feel a lot better.

</comment><comment><USER16> It's easy to blame Facebook and Google for this "problem", but on the technical side, nothing has changed that prevents independent creators from setting up their own platforms to distribute their own content. It's as easy as it's ever been to rent some shared hosting, FTP over static HTML files, and start posting links to it around the web. There's still no guaranteed audience, though.

Facebook and Google are only "gatekeepers" to the extent their users treat them as such.

<comment><USER17> It's dangerous to set up one's own content distribution platform. The moment the media industry will perceive one as a competition or copyright trolls as a profitable target, one'll be torn into pieces.

<comment><USER16> Sorry, but that's just paranoia and scare mongering.

It's easier than ever for individuals to self distribute their own content. It costs less than $10 a month using Dreamhost (or dozens of others) and PayPal (or Square). Unless it's illegal or highly controversial nobody's going to shut it down.

</comment></comment></comment><comment><USER18> >In a lot of ways, it would be a turn back to the early days of the web that some of us remember, except with much more democratic participation this time. And it's a much more appealing vision for the internet than billions of people scrolling through their Facebook feeds.

Very much a dreamer I see. This basically can't happen and he nailed why at the beginning. It WAS a thing for the small minority, outsiders, geeks. It will never go back to that.

Does make an interesting point though. That most of us here remember life before the internet (assuming demographic here is older than Reddit), but for 20-somethings that do not... fundamentally they MUST see it as something totally different than I do.

More like how people my age see electricity, of course it's always existed and always will, it just _makes sense_ it's always been there. We don't appreciate the work it must have taken or that anyone made decisions to shape it what it is today, nor that it could be "done wrong" or used to be better, because if mistakes were made surely someone would have fixed them by now!

</comment><comment><USER19> Maybe I wasn't hardcore enough, but my youth started trapped in AOL's walled garden. It took a long time to realize there was an internet outside of it.

<comment><USER20> You broke out, that's all that matters. :) I was once trapped inside the CompuServe walled garden. It took a while to discover there were BBSes outside of it.

</comment></comment><comment><USER21> Ironically, jumping header on top of this page, that jumps to cover text that you are reading right now when you scroll, reminds you that you are living in this dark "instagram age" of interwebs.

</comment><comment><USER22> > there are ... tons of creative products that you ... would truly love, if > only you knew about them – music, art, stories, and more. The problem is > that you don't know about them yet ... This "discovery" problem is one that > no platform on the web has really bothered to address in a meaningful way

Pandora attempted this, and for me, it worked. I think Pandora succeeded because they took the effort (in the Music Genome Project) to understand how to categorize music, so they could build a really good recommendation engine.

<comment><USER23> I'm always surprised when people are enthusiastic about Pandora. maybe I just haven't tried it enough (and/or recently enough). when I use Pandora I find that it plays a bunch of related artists that don't actually sound very similar. for instance, if I make a Death Cab for Cutie radio station, I just hear a bunch of mainstream indie rock from the mid/late 00s. I'm sure that modest mouse and dcfc are very close on an association graph, but they don't really sound anything like each other.

<comment><USER22> I've had better luck if I give Pandora a bit more input data (try the "add variety" button).

That being said, I used to listen to Death Cab and I'm not sure what to recommend either. Maybe Andrew Bird?

I think the lesson to be learned here is that recommendation engines are difficult.

</comment></comment></comment><comment><USER24> Blair, I'm working on exactly the solution you've alluded to in your post.

Knophy.com is going to change the way we think about monetizing content. I haven't posted on SHOWHN yet as I'm not quite finished with the prototype, but check it out and please email me at my username at gmail.

Our thoughts (from what I can tel in this article) and goals greatly overlap and I'd love to work with you both as a creator and to get your feedback on how the site works for you.

It's absolutely time we give the power back to the individual, and that is the core philosophy of Knophy.

Oh, and also-all of this necessarily NEEDS to be open source and as decentralized as possible. So few can't possibly be looking out for the betterment of the many.

</comment><comment><USER25> For me the Internet as Television is most noticeable in how the gatekeepers enforce their content preferences.

Remember how the TV media pretended Ron Paul didn't exist whenever he ran for president and was doing well in polls? (Daily Show clip: [https://www.youtube.com/watch?v=dWet2SbU07c](https://www.youtube.com/watch?v=dWet2SbU07c))

Similar windows of premeditated thought are being applied to the internet all the time; but the Jon Stewarts of the world that would point them out don't get to leverage the legitimacy of Viacom to avoid being called an old coot.

</comment><comment><USER26> We all have a television set on our office desks, and we're wondering why millennials are on average poorer than their parents ...

</comment><comment><USER27> People see the problem, but they have yet to see the solution. The solution to walled gardens is smart contracts platforms like Ethereum. People will eventually see this, but it'll take some time. Centralized organizations are NOT the future of the internet.

<comment><USER28> I really shouldn't engage with this, but if you are suggesting that we will eventually have a "decentralized" version of Facebook that's built on something like Ethereum's smart contracts then I think you are placing too much weight on the probability that people care about decentralization.

<comment><USER27> I'm placing a high probability that the UI/UX for these systems will improve drastically over the next decade, and that a decentralized FB will be more efficient and transparent than the current platform.</comment></comment></comment>