Ask HN: Dropped out of education what would you do next? - <AUTHOR>

Ok, I was at university studying an average course, It was boring and wasn't taught in any way which motivated or inspired. What would you do next? I am learning Ruby, teaching my self jQuery. I know HTML and CSS and I am keen to learn everything. If you were me what would you do? Go begging or an intern job? Freelance? Any help will be gratefully received. <comment><USER2> If I was you, I'd get my ass right back in school. Boring? Difficult? Don't see the point? Guess what, buttercup...you will be competing people who _DO_ have a degree, who start their day much earlier than you and work until far after you are exhausted. You need every advantage you can get. It sounds like you like technology. Go back to school. Pick something you can reasonably see yourself doing (comp sci? engineering?). Get that degree. Learn to code in your spare time.

<comment><USER3> No real need to elaborate on this, as it's the correct advice.

Valid reasons for leaving college to go into software development include having build an app/site/open-source-thing that's exploding to the point where you've demonstrated beyond a doubt that you're good at this stuff and therefore don't need a piece of paper from a 3rd party saying as much. It doesn't sound like you (original poster) have done that yet.

The quick test is this: Has Twitter offered you six figures to come work for them? If not, then no, you don't get to skip college yet. Stick it out until that happens, then go. Otherwise all you're doing is stacking the deck against yourself.

And in the meantime, try a bit harder to enjoy your time at university. Forty- year-old you will probably look back at it as one of the best parts of your life.

<comment><USER4> > And in the meantime, try a bit harder to enjoy your time at university. > Forty-year-old you will probably look back at it as one of the best parts of > your life.

That's a very depressing thought for a large number of people.

<comment><USER5> "One of the best" != "the best."

I wouldn't in a heartbeat trade my life now for what I had then. But looking back, if life is a series of ups and downs then my university years would definitely fall under the "ups" column.

I have met some very close friends during that time that I still keep in contact with 10 years after graduating (I just flew out to SF to meet one such friend's new baby last month), and the circumstances under which I met those friends were all very positive.

</comment></comment></comment></comment><comment><USER6> If the courses are boring you, take different courses. Take a course in statistics or biochemistry or microelectronics or geology or economics or history or psychology or anything else that sounds even vaguely interesting to you. See if there is something else out there that inspires you. Knowing X and programming will make you much more employable for almost any value of X.

Or if you're really absolutely sick and tired of university take a year off and work whatever job you can lay your hands on and then go back, maybe to a different school.

</comment><comment><USER7> Go on craigslist and work for crap money until you have ~10 clients, then start finding new clients (real clients) at real rates ($60+).

At that point, no sane company will say no to you. Or you can just keep consulting.

</comment><comment><USER8> If it is feasible for you, go to a better school. If you want to experience a "real world" taste - you can do that by part-time freelancing.

</comment><comment><USER9> > It was boring and wasn't taught in any way which motivated or inspired

Instead of going to university to be taught, go there to learn. You are responsible for your own learning process.

That's not to say that university courses cannot be boring, are being led by people without any interest or experience in helping you by your learning process. In those cases: choose other courses with better teachers, be pro- active and ask the teacher questions you're interested in, engage in the learning community at large, do side-projects, and so on.

</comment><comment><USER10> I had the same question - I study in a system that emphasizes on rote and knowledge rather than on understanding. I graduate with a bachelors in CS in a few months and am extremely unhappy with the education I've gotten. I plan on taking a year off and studying on my own - starting CS from scratch really, taking a couple of Udacity/Coursera classes and possibly finding a job/internship at a startup near where I live, hoping that it would lead to something of an epiphany or a life changing experience.

</comment><comment><USER11> Try and go to industry events. Meet people, get involved in projects, and make a name for yourself.

I'm lucky in that my university course is great and there are lots of hackathons and similar events taking place in the CS department, but I've been to quite a few outside of university.

<comment><AUTHOR> This is a good idea. Thanks

</comment></comment><comment><USER12> Go back to uni - you've just put yourself at a massive disadvantage compared to everyone who successfully graduates.

If you absolutely do not want to do that, then you need to create something that makes a ton of money. I'd get started now if I were you.

</comment><comment><USER13> This is shameless self promotion, but have you thought about doing a programming bootcamp like Bitmaker Labs? <http://www.bitmakerlabs.com/>

</comment><comment><USER14> I would continue to hack away and find a job where a company will pay you to code. Plain and simple. =]</comment>


Netflix using fake Twitter accounts to promote new movie - <AUTHOR> https://twitter.com/samiswine/status/1078506903909523456 <comment><USER2> Wow, not surprising to me.

I noticed an explosion of Birdbox memes on social media yesterday. I hadn't heard of the movie and did some research. Mediocre reviews and the plot seemed like ordinary horror/thriller. Still, these memes were popping up everywhere. No way this was organic.

<comment><USER3> Yeah I'm just sitting here thinking, "Oh."

I had to block mentions of this show's title on Twitter. It was getting ridiculous.

</comment></comment><comment><USER4> Almost zero data here. Zero investigation or reference material. Almost no editorial. Only an arbitrary clickbait accusation. But it says "Netflix" so HN FP here we come. This is Obama "invading" West Texas and declaring martial law to take over a Walmart all over again.

<comment><USER4> ... and now we're all talking about Bird Box. Thanks "hollywood babylon" for the meta-advertisement.

</comment></comment><comment><USER5> Would such a thing be legal, per FTC guidelines on social media endorsement? (Let's set aside whether Netflix is "really doing this" for a moment.)

The FTC's Sponsorship Identification Rule requires influencers and marketers to "clearly and conspicuously disclose their relationship to brands when promoting or endorsing products through social media."[1] This is the reason you see hashtags like #ad on promoted posts from celebrities. Violations of this rule "can result in penalties far larger than any imposed to date by the FTC."[2]

I'd think that creating phony, low-follower accounts _en masse_ to promote a product would not circumvent the rule, simply because these accounts don't belong to "influencers." But I don't know. Can anyone with a better legal grasp on this chime in?

[1] [https://www.ftc.gov/news-events/press- releases/2017/04/ftc-s...](https://www.ftc.gov/news-events/press- releases/2017/04/ftc-staff-reminds-influencers-brands-clearly-disclose)

[2] [https://www.allaboutadvertisinglaw.com/2018/01/fcc- revives-i...](https://www.allaboutadvertisinglaw.com/2018/01/fcc-revives-its- own-native-advertising-rule-sponsorship-identification.html)

</comment><comment><USER6> A $110 billion company cannot be bothered to buy realistic looking shill accounts.

<comment><USER7> I'm pretty sure fake media that is really a company posting masquerading as an independent review, or is actually an unflagged advert (ie doesn't show unambiguously that it's an advert) are illegal in the EU.

So, perhaps the "fake looking accounts" is on purpose so as to (arguably) not be fraudulent; as buying well hidden accounts would be a very clear contravention of the law.

</comment></comment><comment><USER8> So they've hired some social media marketing company?

</comment><comment><USER9> Are we at the point just reading a tweet and believing it immediately? What if those accounts are created intentionally to create such tweet?

</comment><comment><USER10> I guess they're thinking the ends justify the memes.

<comment><USER11> Oy.

</comment></comment><comment><USER12> I watched the movie last night and it was good for what it is. I wonder if Netflix wanted to jump start something they genuinely thought was good but was being buried by all the other things they are offering. Maybe they thought the ends justify the means if their costumers are entertained.

<comment><USER13> The movie drives me crazy, because they had an amazing premise and set up a meaningful metaphor, and then totally just dumped it.

I think at the beginning the doctor literally says "ignoring your problems won't make them go away", it's extremely on-the-nose, and the bulk of the film is about trust and teamwork and that seems like it's going somewhere, and then you get to the end, and it like... nothing. Nothing is learned. Nothing changes.

The doctor even comes back at the end and you go "oh boy here comes the moral when we learn what this movie really was about" and she's all like "yay now we can be blind to our problems together" roll credits. There was so much opportunity in the premise and it's totally squandered.

<comment><USER14> I was hooked at the start just for the Lovecraftian cosmic horror concept rather than some sort of moral metaphor (didn't notice) but it just goes nowhere after the cool introduction.

Though at first my reaction was "oh look, it's 'A Quiet Place' but with sight instead of sound."

Funny how we're here discussing it now on the front page of HN though. If this tweet gets picked up by HN and other large forums, then I'll have to give Netflix marketing a "well played."

</comment></comment></comment><comment><USER15> "Suspiciously low tweet/follower count" seems like an awfully low bar to set for claiming that it's a bunch of bot accounts. Not everyone spends their life making posts on social media.

<comment><USER16> That's why they used a ratio instead of pure volume numbers. Why are so many people following these accounts that don't even tweet?

<comment><USER17> the point is that using ratios to determine engagement doesn't mean that an account is fake or a bot, or that the followers are fake or bought.

people mistakenly believe even influencers have bot or bought followers, just because their engagement is low

its just a poor metric to make a conclusion, and you'll have to accept that nobody knows anything

</comment></comment></comment><comment><USER18> Studios have been doing this sort of thing for years. Not too surprised Netflix would do the same.

Hopefully they'll never got as far as making up a fake critic to promote the movie like Sony did with David Manning.

</comment><comment><USER19> Counter-theory: a bot builder needs to test out his bot code, and used tweets about Bird Box movie as the test subject to shill for, hoping to drown amongst the other fans, rather than something that might get flagged.

Seems just as plausible, if not more..

<comment><USER20> Indeed, or the bots are just scraping the most popular content from the big meme accounts, which all seem to be sharing these Bird Box memes at the moment.</comment></comment>


Ask HN: Are there technical solutions to the net neturality problem? - <AUTHOR> Could one, for example, connect to the sites you want to connect to through a VPN, thereby bypassing extra ISP charges that you might otherwise encounter were you to connect to the sites directly? <comment><USER2> From my perspective, the main issue comes in that we only get a single point of connection to the internet -- our ISPs who, because they have monopolies over many areas, can manipulate our traffic with little to no repercussion.

A simple solution would be to remove this monopoly, though there may currently only be a non-technical solution -- to legally break it up.

There may be a technical solution in transforming internet into some sort of peer-to-peer based wide area mesh network, though this would take a lot of time and effort.

</comment><comment><USER3> To begin, you should state what you mean by the NET NEUTRALITY PROBLEM. Once we understand and agree on the problem, we may be able to comment on whether a "technical solution" exists.</comment>


Florida stops releasing MEs' death counts after they report higher total - <AUTHOR> https://www.salon.com/2020/04/30/florida-stops-releasing-medical-examiners-coronavirus-death-counts-after-they-report-higher-total/ <comment><USER2> > _The efforts to keep public health information under wraps came as Florida > Gov. Ron DeSantis, a Republican, moved to reopen parts of the state 's > economy after he delayed issuing a stay-at-home order earlier in the > outbreak. DeSantis on Wednesday announced the plan to reopen, as the state > saw its largest spike in coronavirus deaths since the pandemic began._

Well, fancy that.

</comment><comment><USER3> and the worst part is everyone is going to point to FL and go see the heat is helping.</comment>


Shipwrecks Under Istanbul - <AUTHOR> http://www.newyorker.com/magazine/2015/08/31/the-big-dig

<comment><USER2> I'm a Turkish citizen, Istanbulite, now 23 years old. I have happened to witness all of this in person in this city. I wear two identities, if I can say so, one is that I'm from the bosphorus, Bogazici, and the other is that I belong to the near east. This sort of findings delight me a lot. It proves that at the end of the day the human is to measure, that he be the one to be measured, and that after tens of thousands of years all we have been able to do is better tools, nothing more. Regarding the Erdogan and the rest, he's just the tip of the iceberg. The Turkish have been miserable all the time, and recently more, because, as a turkish proverb proceeds to say, _the feet became the head_. If it wasn't him to be made so powerful by the crowd of angry ignorant fundamentalists, it would be someone else. In this country of genocides, now one is active against the population of _reasonables_.

<comment><USER3> What makes you the "reasonable" and others "ignorant fundamentalists" again? The hubris of elitism has never ceased to amaze me.

<comment><USER4> "Fundamentalist" as in "religious fundamentalist."

[https://en.wikipedia.org/wiki/Islamic_fundamentalism](https://en.wikipedia.org/wiki/Islamic_fundamentalism)

Compare their goals to then successful work of Ataturk in 20th century in Turkey:

[https://en.wikipedia.org/wiki/Atat%C3%BCrk's_Reforms](https://en.wikipedia.org/wiki/Atat%C3%BCrk's_Reforms)

<comment><USER3> Also on the subject, sadly, no matter his visions and good intentions, he was a victim of perfectionism and elitism. No matter what the outcome is, Ataturk was totalitarian at the end and some of his reforms were either unnecessary or executed terribly.

Besides, what is the point? Why are we comparing those two again?

<comment><USER2> You're right in your point that M. Kemal was a victim, but he was not a victim of perfectionism and elitism. He was a victim of some blind nationalism, his admiring of the Occident and his dismissal of the parity of different cultures. He and other people thought that the Europe was better than the other, whereas in fact it was merely different. The revolutions were top down, fascistic, and forced. As you will see, if you read in an objective manner, some history, nearly none the revolutions have changed the things for the better for all. There are still many turks that sustain that Kurdish the language was invented in the 70's, that all the languages descended from turkish, that American indigenous people, Italians, Sumerians and other ancient people of the asia minore were of Turkish descent, that Armenians are the ones that made a genocide at the beginning of the 20th century, etc. People identify themselves basing on lies here. What gives a totalitarian person room to do what he wants? A bunch of hero-gazers that have nothing to base any thought on. See that I do not call people stupid or smart, many ignorant are smart. It's good when one knows that he knows or that he does not know, but the evil is the ignorance of the ignorance, which is our ill as a community of the Near east.

<comment><USER3> Oh we do agree in the blind nationalism issue, no objections here. I do agree ignorance of ignorance is a terrible thing as well. However, unlike you I try to refrain blanket statements on people of near east, or any other place.

<comment><USER2> Doesn't the fact that I'm a person of the near east justify me trying to reflect upon _my_ people? I mean, given that I live here, I get to, and have to interact with this people, that I walk among real islamic fundamentalists, real PKK terrorists, real corrupt politicians and their actual supporters? I agree that it's not reasonable to make blanket statements, but I do indeed show the people I make statements about. All I do is to reflect upon the society that I belong to, that I live within and that affects me in the most direct manner.

<comment><USER5> Not if you seek objectivity. You have your own biases _, which do not go away because you live /interact there.

It is common for people closest to a subject to have the biggest blind spots.

_ the wonderful nature of our own biases, perceptive and cognitive, is that it very difficult for us to see them.

<comment><USER4> There is another direction too: farher people should also be vary of not ending with thinking "let them eat cake," from the position of somebody not directly affected by the real problems of those who live them.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> > That's when they found the remains of a Neolithic dwelling, dating from > around 6000 B.C. It was previously unknown that anyone had lived on the site > of the old city before around 1300 B.C. (...) In the Stone Age, the water > level of the Bosporus was far lower than it is now; there's a chance that > the people who left those prints might have been able to walk from Anatolia > to Europe.

That part is really interesting. For those HN-ers not interested in those times, there is the "Black Sea deluge hypothesis" ([https://en.wikipedia.org/wiki/Black_Sea_deluge_hypothesis](https://en.wikipedia.org/wiki/Black_Sea_deluge_hypothesis)) which says something like this:

> The Black Sea deluge is a hypothesized catastrophic rise in the level of the > Black Sea circa 5600 BC due to waters from the Mediterranean Sea breaching a > sill in the Bosporus strait

<comment><USER7> Doggerland[1] and Sundaland[2] were also above the sea at that point. I wonder if there were neolithic cities, the precursors to Uruk, that are lost beneath the sea.

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

[2] [https://en.wikipedia.org/wiki/Sundaland](https://en.wikipedia.org/wiki/Sundaland)

</comment></comment><comment><USER8> "Byzantine shipwrecks found during the construction of the first-ever tunnel under the Bosporus held up work for years."

Why does it have to take that long to dig up these ships and start the works?

<comment><USER2> Man, it's tedious work to unearth those stuff. One cannot use big shovels and machines, sometimes you have to work with fingertips and painting-brushes. And the so-called old-city (what I hate to call Fatih) is, I mean whenever you dig a hole you find something. By my school there is the constructions site for another entrance to the already-existent metro station, and it is still not completed after maybe two years. And all they wanted was to dig down a single storey entrance that then linked to the one that already was there. Then they found some 2500 yrs-old Byzantine sarcophagi, and, you may guess the rest...

</comment></comment><comment><USER9> The ridiculous lack of pictures in this article makes Jules Verne books feel like albums.

</comment><comment><USER10> Only part way through, but what an incredible story, both from the perspective of the historical findings and the modern progress in transport for locals.</comment>


JavaScript Programming Patterns - ZLOB-o-ZLOB http://www.klauskomenda.com/code/javascript-programming-patterns/ <comment><AUTHOR> Who's voting this up? Did you actually read this drivel?

 _The second solution is dealing with the creation of a singleton, which means creating an object and assigning values (e.g. functions) to its properties._

???

 _JavaScript is object-based rather than object-oriented. In JavaScript, you just need to call the constructor function of your (custom) object with respective parameters to create an object._

You just have objects with properties and methods that you create by calling functions with parameters. This is not object-oriented due to some crazy reason I'm going to make up right now so that JavaScript seems edgy and cool. It's not a stupid language, man, you just don't get it!

 _As stated above, this pattern is not that handy here, but consider a situation when there is some heavy and complex computing involved. You certainly do not want to do that each time the function gets called. Peter calls this kind of function definition a "promise"_

Yeah that's not a thunk, it's a Design Pattern. Also that's a really stupid way to execute it, bro.

I like how this basically works its way through ever more obfuscated "patterns" and arrives at "Revealing Module Pattern" with an incomprehensible tangle of object properties and initialization methods. The first, straightforward way – which he wrote to try to parody as "oldschool" bad style – is the best way to do this here, though he assigns properties on objects needlessly and uses 'this' without a good reason. The rest of the examples are like a joke.

Actually, reading this again now, it's pretty hilarious. Maybe I'll vote it up, too.

<comment><USER2> I up voted it. I skimmed it in a few minutes (reading your rant and typing this response took longer). I'm rather fluent in JavaScript so I didn't learn much new, but it seemed like a nice short comparison of some of the mechanisms of using JavaScript.

Perfect, and complete, probably not. Useful to someone trying to grasp the basic options available, sure. The "old school" style may be the best way for you, but certainly would cause problems with many developers or while trying to use some large JavaScript libraries (though fortunately most those tend to use some type of encapsulation (except the unfortunately ubiquitous Prototype)).

If you don't like JavaScript patterns or the subject doesn't interest you read the link head line and move on. If you are interested, I think the article is a nice brief summary of some ways to use JavaScript.

</comment></comment><comment><USER3> Hmm, that "old way" is wrong. The way it would have been done in 1998 is something like

          BBC
          NYT

and so on. With no further Javascript needed. Except I wouldn't have trusted "style", and the browsers without styles probably wouldn't have been able to change background colors for links at all, but that's obviously not the point here.

...

To be honest, this is probably how I'd do it today, too. The natural objection about it being not "semantic" or whatever is something I'd fix in the generation code, where it would be perfectly "semantic". There isn't a single one of those techniques that isn't an amazing pile of code to accomplish something very simple. Yeah, I understand this is for didactic purposes, but I'm finding it hard to see past this point. YMMV.

</comment><comment><USER4> easiest & most flexible is still this:

      var myNamespace = {};
      myNamespace.foo = function() {
          var privateFoo = 1;
          this.publicBar = "test";

          var privateFn = function() {};
          this.publicFn = function() {};
          return this;
      }

      // usage
      myFoo = new myNamespace.foo();

as crockford says & in my experience <http://javascript.crockford.com/private.html>

this also allows you to do prototypal inheritance, which is not possible with other "module patterns" - whatever that is, they are just singletons.

<comment><USER5> I agree. For small projects I use the same pattern but in the global namespace. I normally also create an intentional closure when initiating the object, this way I can refer to the parent object regardless of whether it's methods have been copied away or not (like when you assign an object method to an event handler)

      var testObject = function()
        {
        // Make sure the 'this' object is always available
        // to the object's methods via the 'thisObj' variable
        var thisObj = this;

        this.publicVar = "This is a string";

        this.alertBox = function()
          {
          alert( thisObj.publicVar );
          }
        }

      object1 = new testObject();

      window.onload = object1.alertBox

<comment><USER4> I know what you mean. When I have lots of event-handlers in a prototype I like to assign

      var self = this;

but that's bikeshedding

<comment><USER5> What do you mean by 'bikeshedding'?

<comment><USER4> <http://catb.org/jargon/html/B/bikeshedding.html>

wether we should call it thisObj or self :)

<comment><USER5> Ah gotcha. I checked the definition at a few places but the context still seemed unclear.

I agree, one way or the other is fine. Do you use 'self' because you're a Ruby coder? That actually the reason I would stay _away_ from it! But then again I'm easily confused :-p

</comment></comment></comment></comment></comment></comment><comment><USER6> I used to live by the "revealing module pattern", although I didn't know that's what it was actually called. Currently, I do something along these lines:

var MyObject = function() {

       var _obj = {}

       var privateVariable = 'foo'
       var privateMethod = function(){}

       _obj.publicVariable = 'bar'
       _obj.publicMethod = function(){}

       return _obj
     }()

To me, it makes the separation of public and private methods and variables easier to observe.

Also, an unrelated note: I've stopped using semicolons round about 6 months ago and have never looked back. It makes my life simpler, I'm happier, and my sex life has never been better.

EDIT: Removed syntax error (the "var" in front of "_obj.whatever")

<comment><USER7> >> I've stopped using semicolons round about 6 months ago and have never looked back. It makes my life simpler, I'm happier, and my sex life has never been better.

This sounds pretty dangerous to me. Crockford has this to say <http://bit.ly/r9EZO> about it.

<comment><USER6> My mom always told me that I had a limited supply of semicolons in my semicolon bucket, and to not waste them on languages where they aren't strictly required.

Now, maybe she was just joshing me... but I'm not taking that chance.

<comment><USER8> Leaving them out leads to horrible ambiguity and potential issues. Up to you though :)

<comment><USER6> I haven't had a single issue in the 6 months of daily Javascriptin' since I've stopped using them.

As I mentioned in another thread, I don't minify my application code so maybe it's not as important as it is for other people.

</comment></comment></comment></comment></comment><comment><USER9> I recently found JS.Class:

<http://jsclass.jcoglan.com/>

It provides Ruby-style inheritance patterns for Javascript. Initially I was skeptical (most of the other attempts at adding OOP structure to JS have been awful), but it's simplified my code significantly. I've also found that it plays nicely with jQuery, as long as you know when to be functional and when to be object-oriented.

</comment><comment><USER10> I like that he doesn't call them "design patterns".</comment>


Pen and paper rule (2006) - <AUTHOR> http://drezner.foreignpolicy.com/posts/2006/05/26/pen_and_paper_rule

<comment><USER2> What we need is something that looks and acts like paper, but also captures the user's input and provides a sort of intellisense for math.

Something like the child of a kindle and a plam pilot (or wacom tablet). The OCR and math-lookup part would be really hard but potentially really interesting.

</comment><comment><USER3> I still prefer pen and paper for notes, sketches, and mockups - I find the process of writing the thought down imprints it much better in my memory than typing it and that helps me comprehend the problem better.

</comment><comment><USER4> The title here needs an exclamation point, because is not "a rule", as in a noun, but rule, as in a verb, in the slang sense.</comment>


Ask HN: How did you land an early job at a future Unicorn? - <AUTHOR> I'm using the word Unicorn loosely here.<p>For those that were first/early employees of eventually very successful companies, how'd you hear about and get the job? <comment><USER2> My first co-op in 2016 was 6 months at Desktop Metal. They're worth at least $1.5B (Forbes article from 2019). I got the co-op through school--Northeastern has a well established co-op program and they have lots of connections to companies looking to hire college students. I'm pretty sure I found it through the school's own career planning tool. When I joined they had only been in business for around a year and half but were already doing very well in the metal additive manufacturing space.

</comment><comment><USER3> early is going to depend on what you mean by early, but first means you either know the founder(s) or you know a friend of the founder(s). Generally you will have worked with them in the past.

My last one we weren't a unicorn (though did aspire to be :)) and I think we were a year or so in before anyone was hired that there wasn't an existing connection to.</comment>


Managing High Availability in PostgreSQL – Part III: Patroni vs. PAF vs. Repmgr - <AUTHOR> https://scalegrid.io/blog/managing-high-availability-in-postgresql-part-3/ <comment><USER2> Also check out our Zalando Postgres Kubernetes Operator which is powered by Patroni: [https://github.com/zalando/patroni/](https://github.com/zalando/patroni/)</comment>


Jeff Bezos to keep 75 percent of couple's Amazon stock after finalizing divorce - <AUTHOR> https://www.cnbc.com/2019/04/04/mackenzie-bezos-to-keep-25-percent-of-couples-amazon-stock-after-finalizing-divorce.html <comment><USER2> Obviously a lot of details have not been made public, but as high-profile / high-stakes divorces go, this all seems remarkably amicable. At least based on what's been reported publicly.

<comment><USER3> It appears they just grew apart, rather than a surprise to either party.

<comment><USER4> Wait, wasn't the surprise that either the Saudis (reportedly) hacked his phone (or maybe her brother found them), found out that he was having an affair, sent the sexts to the National Enquirer who reported on them, making the affair's existence known to her?

<comment><USER5> No, they were already separated.

</comment></comment></comment></comment><comment><USER6> > MacKenzie said she was "happy" to be giving Jeff 75 percent of their stock > in Amazon along with voting control of her shares. She also left Jeff with > all of her interests in the Washington Post and Blue Origin, Jeff Bezos' > aerospace company, according to the statement.

This makes a lot of sense. They probably both realize that the stock could be worth significantly less if he didn't maintain control of all three companies, given that the market was already reacting to that possible outcome.

> Jeff remains the richest man in the world, even after losing $35.6 billion > in Amazon stock.

I wonder if part of this settlement was because he actually cares about being the richest person in the world and she was kind enough to make sure he stays that way?

<comment><USER7> _I wonder if part of this settlement was because he actually cares about being the richest person in the world and she was kind enough to make sure he stays that way?_

I think you already answered it. I think she's smart enough to know the value of what she has will be more certain if Jeff has control.

And she's also smart enough to know that $35B is way more than she could ever spend/use/invest/whatever.

</comment></comment><comment><USER8> Well first of all: my respect to any divorcing/divorced couples to maintain a cooperative and respectful relationship.

That said, to maximize the value of the few percent of Amazon stock that she now owns, giving voting rights to Jeff Bezos is a good move.

</comment><comment><USER9> Just for perspective. This makes her the third wealthiest female in the world and not very far from the first place which is held by Françoise Bettencourt (L'Oreal) whose net worth is 46 billion.

<comment><USER10> Was she the wealthiest female in the world before the divorce?

<comment><USER11> Probably depends on how much of the stock was technically "hers" prior to divorce proceeding - maybe not much?

</comment></comment></comment><comment><USER12> Her share of Amazon is still worth $35.6 billion, making her something like the #25 richest person in the world. It seems reasonable, but my intuition sucks when it comes to money piles that big. She could start her own rocket company, with enough left over to buy an Elon Musk (#41).

<comment><USER13> It's reasonable that someone can forcibly extract 35 billion dollars for being married to someone?

<comment><USER12> "Forcibly extract?" They were married for over 25 years, since long before he was a gazillionaire, so it hardly seems like gold-digging. Also, Jeff still has more or less infinite money.

</comment></comment></comment><comment><AUTHOR> According to Bloomberg MacKenzie Bezos becomes the fourth richest woman in the world via the Amazon position, worth ~$35.75 billion, and the 25th richest person overall.

Francoise Bettencourt Meyers, whose mother owned 1/3 of L'Oreal until her death a few years ago, is the richest woman in the world ($53.6b). After that is Jacqueline Mars (Mars candy empire) and Alice Walton (Walmart heir).

MacKenzie is only 48 years old, it'll be interesting to see what she pursues with her time and money.

<comment><USER6> Or another way to look at this is that up until today, she was entitled to 1/2 the wealth, so she dropped down a few places.

</comment></comment><comment><USER14> Who cares? This has no place on HN.

</comment><comment><USER15> I always believe in 50/50 but i think she did the right things here because Jeff Bezos = Amazon. There comes a point in which having more money just does not make any slightest difference.

<comment><USER16> You "always believe in 50/50" but "she did the right things here"? This are fundamentally inconsistent viewpoints.

<comment><USER15> In normal circumstances which applied to most public population, a 50/50 split of shares is fair.

But Jeff Bezos doesn't belong to a normally distributed population, his is an outlier case statistically, with Amazon being an extremely important asset that not only affects their personal lives, but also has enormous impacts and responsibility to the public.

Jeff Bezo's personality and leadership are crucial for the organization. You can't apply the same principles to his case vs. the majority of public.

The key to being effective is the ability to recognize the differences in special circumstances, and knowing how to be flexible so you can adapt to those situations. I can tell it's not easy for most people.

One of the biggest problems today is most people only perceive the world as either black or white, and there are no "in-between", or "grey-zones", or "outliers". But the real world in our lives has never worked like that. This viewpoint is producing a lot of narcissists and their "you are either with me or against me" attitude, which subsequently contributing to a lot of hatreds around us.

Emotionally intelligent people are the ones who truly understand the meaning of the word "compromise", in order to produce a win-win result. That's what separates them from the rest.

<comment><USER16> I don't understand why you're headed down tangents about narcissism and emotional intelligence, and I'm not going to bother engaging on all of that because it's irrelevant and seems mostly about you asserting not-so-subtly that you're smarter than everyone else.

What I will say is that you shouldn't speak in absolutes if that's not a position you actually hold. You rambled about black and white while you ignored that _you_ made a black and white statement initially, which is why I replied at all: "I always believe in 50/50".

Replace "always" with "generally" and there wouldn't be a conflict in what you wrote, and I wouldn't have replied, and you likely wouldn't have gotten downvotes (which I presume were for the inconsistency in your comment).

<comment><USER15> When I mentioned of "emotional intelligence", I was referring to Mackenzie Bezos, for her willingness to compromise because she clearly understood how important Jeff's shares and voting rights were to Amazon. Not everyone could have seen or acted in such manner. This was why I said she did the right things.

Your multiple attempts in replying, not only to my personal comment but also to others', indicated you were seeking a proper explanation for my "inconsistent viewpoints". That was what prompted me to address the issue of many people in today world who don't seem to possess the ability to pivot under special circumstances, only because they are just so rigid in holding to their previous beliefs, no matter it was right or wrong.

The wording that I used, "always" which according to you should have been "generally", has its own purpose of further solidifying and emphasizing the importance of being able to recognize the right acts, no matter how strong our previous beliefs might have contradicted it. The downvotes on my comment are merely the perfect illustrations, and an accurate reflection of current public trend displayed by those who possess such incapability.

Based on your last comment, I am not sure if you truly understood the benefits of such "inconsistent viewpoints", so I will leave you with a short link below. It also happens to be about Jeff Bezos the man himself:

[https://www.lifehack.org/articles/work/do-you-change-your- mi...](https://www.lifehack.org/articles/work/do-you-change-your-mind-a-lot- jeff-bezos-smart-people-always-change-their-minds.html)

<comment><USER16> > _The wording that I used, "always" which according to you should have been > "generally", has its own purpose of further solidifying and emphasizing the > importance of being able to recognize the right acts, no matter how strong > our previous beliefs might have contradicted it. The downvotes on my comment > are merely the perfect illustrations, and an accurate reflection of current > public trend displayed by those who possess such incapability._

This is borderline word salad. Convoluted writing doesn't make a weak point look strong. It does make you harder to understand, but maybe that's your intent.

You're now trying to frame this as me holding you to some previous viewpoint that you've since renounced, but that's not what happened. You expressed two contradictory viewpoints in _a single sentence_.

At this point I'm assuming you just misspoke and are unwilling to admit even that small error, because the alternatives are that you literally don't understand what "always" means or that you are unable to see the logical inconsistency between "always X" and "this time Not-X".

I think you should take another look at your own replies here, because while you talk about narcissism in others, you're the one exhibiting an inability to acknowledge your own errors and a need to accuse those who point out your errors of lacking basic reasoning abilities.

<comment><USER15> You are literally the one that are trying very hard to hold onto the technicality of my wordings, and twisted it such a way to fit in your interpretation and criticism of my comment, while I have already given you more than enough explanation on my part regarding my message.

The wordings in my comment are completely irrelevant here, whether it should have been "always" or "generally". The main point being discussed here is you are obviously viewing "inconsistent viewpoints" as a negative trait while in fact it is positive and desirable in my personal interpretation.

My previous comments were simply an analysis of the current world trends which I have observed. I even clarified to you that I was referring to McKenzie Bezos so I am unsure why you were being so defensive and even aggressive in accusing me of such.

Let's just leave it here as we should never force our own personal views onto others. I have provided more than enough of my personal opinions on this subject. Everyone has the rights to interpret the world in whichever ways they wish that fit with their personal ideologies.

<comment><USER16> Wording is not irrelevant. Your comment didn't make sense. I took the time to explain what was wrong with your comment rather than just downvoting quietly like others had. Your response was to go down the defensive path and to argue irrelevant tangents rather than take a moment to consider that maybe you expressed your viewpoint poorly. You're now accusing me of "twisting" your comment by literally quoting it. Inability to be self-critical is not a positive trait.

I agree we should let this drop since it's going nowhere and we've both wasted enough time.

P.S. Your article was about _changing_ opinions, not holding or presenting opposing opinions simultaneously.</comment></comment></comment></comment></comment></comment></comment></comment>


T-Mobile May Suffer if AT&T Deal Fails  - <AUTHOR> http://www.nytimes.com/2011/09/02/technology/t-mobile-may-suffer-if-att-deal-fails.html <comment><USER2> Never mind T-Mobile -- I'm an AT&T iPhone user and honestly I was excited about them adding the network infrastructure of T-Mobile. I'm now out of contract and fear being stuck with them for two years if this deal doesn't go through.</comment>


Ask HN: Why is Stripe API documentation lacking so badly? - <AUTHOR> I really enjoy working with all parts of Stripe, except for reading their API documentation because it is lacking so much. <comment> git-pull Easy snags when learning Stripe's API:

1\. Internalizing core objects, like the Customer, Card, Tokens, and Source. And Plans / Subscriptions. Card/Source can feel ambiguous, since the API lookups are similar.

2\. Order for creating / pulling up some objects. Customer's can attach a source upon creation, but can also attach it later. But you can't just look up all cards - you retrieve a card by looking up the customer first.

This helps later on if your user wants to update their billing info. Think about it: You pull up the customer first. Then a customer has cards they can delete, update, or add.

Plans must be created before subscriptions. That's another huge favor. Because on your front end, you can have the user switch between plans and have a consistent selection site-wide. Rather than just declaring an arbitrary price.

3\. Understanding the difference between stripe.createSource (a reusable billing object) and stripe.createToken (a temporary billing object) [1]

4\. Getting effective coverage in billing systems. Requires a ton of mocks. In order to simulate the responses to create the mocks, you have to play with the test API to get the desired outputs. The docs don't give you that.

In fact, stripe-mock [2] doesn't give you all the possible scenarios. So there's going to be a lot of time spent "bullet proofing" a subscription system. Especially if it's self-service.

I'd estimate it took about 1.5 months to get it fully working when I did it at a startup. The second time around, it's taking more time since I want to be able reusable enough to use on other websites / clients. Maybe 2-2.5 months.

[1] [https://stripe.com/docs/sources/cards#create- source](https://stripe.com/docs/sources/cards#create-source) [2] [https://github.com/stripe/stripe-mock](https://github.com/stripe/stripe-mock)

</comment><comment><USER2> Are you looking at their docs[1] or their API docs[2]? While both are helpful, they solve slightly different needs.

[1] [https://stripe.com/docs](https://stripe.com/docs)

[2] [https://stripe.com/docs/api](https://stripe.com/docs/api)

</comment><comment><USER3> I've found their API docs to be extremely helpful in the past. What do you find to be lacking?

The team are very responsive, so as zapperdapper mentioned, I'm sure they'd welcome a bug report with details of what you're having trouble with.

</comment><comment><USER4> That's something I haven't heard before. I'm sitting here thinking Stripe pioneered good, in-depth API documentation. What exactly do you feel is lacking? I've been using Stripe for years and haven't had any issues with their docs.

</comment><comment><AUTHOR> I'm glad to hear no one else has this problem. Must be isolated to my computer then. The docs are written really well and it is super clear how to use it. It is just my computer that hangs everytime I visit that page

</comment><comment><USER5> I hold the position that Stripe has truly great documentation and should be held up as a standard for other people writing documentation to work towards.

I haven't found it to be lacking for any of my use cases.

</comment><comment><USER6> Have you ever tried to use PayPal's documentation? Might make you feel better about Stripe :)

</comment><comment><USER7> >it is lacking so much.

Stripe API documentation is the best i've ever seen, I really don't see what could be improved

Do you have any exemples in mind ?

<comment><AUTHOR> I wasn't clear - I really like the documentation, but my browser lacks (a lot) every time I visit the docs page. But must be my computer, since no one else has this problem

<comment><USER8> The word you're looking for is probably "lag", not "lack".

</comment></comment></comment><comment><USER9> You could file a bug report with Stripe letting them know where you think they could improve their docs.</comment>


AOL's Latest Dumb Business Plan - <AUTHOR> http://www.slate.com/id/2237107/?from=rss

<comment><USER2> "That's the difference between producing content and producing journalism." Quite a bold, powerful statement. I wholeheartedly agree that there is a distinct difference between the two, but not that one is "bad" and the other is "good"

Instead, I would argue that they serve different ends.

Producing "content" is the quick and easy, but not "bad." Producing content to satisfy the fleeting curiosity of the masses is not "bad," it is simply not going to produce quality work. It is a perfectly valid business though. There is nothing inherently wrong or evil about producing content that will satiate an individual's quick desire to get a few facts about something topical.

On the other hand, producing "journalism" should not be considered "good" simply b/c it holds itself to a higher standard. Yes, it may produce better work, but that alone does not make it a viable business plan.

Associated Content should not be condemned simply because it does not produce quality content. AC serves a specific niche well and profits from that service. How is that evil?</comment>


Centrifuge: a reliable system for delivering billions of events per day - <AUTHOR> https://segment.com/blog/introducing-centrifuge/ <comment><USER2> I'm currently investigating a very similar problem (very high throughput webhooks, specified by customers, to unreliable endpoints) and was considering an architecture involving a set of queues partitioned by webhook response time and/or failure rate.

So if your webhook is bucketed into the 0-100ms queue and your responses start to exceed 100ms, you'd be bumped up to the 100-500ms queue which is more likely to have periodic queuing delays, and upwards from there depending on your response time / failure rate. If your API later recovered and started responding faster you'd be moved back up into the faster queue. That way we could offer different (soft) SLAs for different classes of response times, and scale the workers independently per queue.

I'm curious if there are known issues that people have run into with this approach? The main unknown was how many workers we'd be willing to throw at consistently slow endpoints to try to keep the slower queues from backing up too much, and possibly some flapping as endpoints could respond quickly under low throughput but slow down as soon as they move up to the faster queues.

<comment><USER3> I really like this approach. You could even automate it where the 0–100ms queue's workers could sever the connection after 100ms and re-queue the message on the next level up, while also incrementing the timeout counter. You could do really interesting things by incrementing and decrementing a timeout counter... e.g., it gets decremented when the transaction completes under the line for the queue it's in. That could help with flap.

</comment></comment><comment><USER4> Ugh. This is only tangentially related, but Segment has always looked great, but is so incredibly, ridiculously overpriced for web analytics.

If you want to slap it on your website for basic analytics, you better not get any traffic to speak of, because they charge you about $.01 per monthly tracked user, anonymous or identified.

If you get 100k visitors per month (not even THAT much), it's $1,125/mo. Their pricing estimator stops at $2,375 / month for 225k monthly tracked users.

God forbid you put it on your site or in your mobile app and then anything you do goes viral. It'll bankrupt you.

Who on earth is this aimed at? Is this only suitable for tracking logged in users? Or only suitable for enterprise companies?

Better yet, what about what they're doing is so difficult and expensive, when many of the places you'd be sending these analytics (which will be handling the same number of events) are free or cheap at this level of use?

Segment has always seemed cool, but overpriced for web analytics by a factor of 20-50x.

OK, rant over.

<comment><USER5> Segment isn't a web analytics tool, so much as a data dispatching service. Send data to Segment, which in turn sends it to the services you have configured.

Think of it as a central data store for your business that has built-in integrations to move that data to other providers such as Google Analytics, Salesforce, Mailchimp etc.

<comment><USER4> Yep, that's what makes it so cool and useful.

But if one of those services is Google Analytics, for example, then you probably want to use it with all visitors, which is excruciatingly expensive if you get hardly any traffic at all.

</comment></comment></comment><comment><USER6> >> To implement per source-destination queues with full isolation, we'd need hundreds of thousands of different queues. Across Kafka, RabbitMQ, NSQ, or Kinesis–we haven't seen any queues which support that level of cardinality with simple scaling primitives.

I've been posting this a lot recently but it keeps coming up as the relevant solution, Apache Pulsar supports millions of topics without much overhead and offers the log semantics of Kafka with better scaling and per-message acknowledgement: [https://pulsar.incubator.apache.org](https://pulsar.incubator.apache.org)

</comment><comment><USER7> Hey HN, author of the post here. A number of Segment engineers are hanging around today, and we are happy to answer questions in the comments. Thanks in advance for any feedback and thoughtful discussion!

<comment><USER8> This is a very interesting blog post and some great engineering, congrats!

I fail to understand the following aspects though, maybe you can clarify them a bit:

* How does a director recover from a failure? From my understanding it would require fetching all job IDs from jobs that are in an active state via the job transactions table (which sounds expensive) and then loading the associated meta-data from the jobs table? Is that correct?

* Do you assume that the director will have archived all non-completed jobs when deleting the database? Do you try to gracefully shut down the director first then? From my understanding it seems you perform a "drop table" statement on a given database and then regenerate the tables, but this would require being sure that all the jobs have been processed or archived.

<comment> achille-roussel On your first point, you're correct. Directors scan their databases on start to rebuild their cache and reschedule the jobs that need to get retried. The scan is usually quick for data that was recently inserted since they're likely in cache, it make take a couple of minutes to scan everything. Because we keep the database to a small size we can cap how long this operation will take. We also scan the database in reverse order (using the primary key, thanks to the rough ordering of KSUIDs), to help reschedule he most recent jobs first, which is possible because the scan can happen concurrently with tye jobs processing.

On your second point, archiving actually happens in the "drainers", not the director. It's the component that picks up unused databases and flush their data back into the set of running directors. We initially built archiving into the directors but it turned out to steal too much resources away from job processing so we moved it out into the drainers, which actually gives us opportunities to do it more efficiently (for example creating larger archives, which helps with compression as well).

Sorry if we cut some details off of the post, there is plenty more to tell about this system but it's a lot for a single blog post ;)

</comment></comment></comment><comment><USER9> I wonder if this would have built on Apache Pulsar ([https://pulsar.apache.org](https://pulsar.apache.org)) if it had been in open source and on the Segment team's radar at the time they started on Centrifuge. I work with one of the architects of Pulsar, and his first thought on seeing the blog was that Segment's scenario had a lot of similarities to what he and the team and Yahoo set out to do when they first built Pulsar there several years ago.

</comment><comment><USER10> My spidey sense is telling me that this could have been achieved with a few Erlang VMs and a lot less moving parts.

It's a supervisor (Director) with a bunch of actors communicating with different 3rd party API's. The state mechanism could ostensibly get abstracted away so the underlying DB is irrelevant.

<comment><USER11> One of the challenges for us is that our downstream API integrations are almost all Javascript (and often provided by the integration vendors themselves). Rewriting the hundreds of integrations we provide into Erlang wasn't a viable option for us.

<comment><USER10> Interesting. How does the Go code interface with that?

<comment><USER11> The integrations gateways are built into HTTP services, so the Director is an HTTP client to those gateways. (The image under "All Together Now" omitted our integrations gateways -- architecturally, they lie between the Director and the actual third-party API endpoints.)

<comment><USER12> I don't know much about Erlang - wouldn't it be able to interface with HTTP in the same way?

<comment><USER11> Erlang certainly can be used to implement an HTTP client, but once you step outside of Erlang's actor model and virtual machine, you lose those benefits that it provides in terms of message passing behavior.

<comment><USER13> (the state of http clients on Erlang is also pretty abysmal.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Great post!

> To keep the 'small working set' even smaller, we cycle these JobDBs roughly > every 30 minutes. The manager cycles JobDBs when their target of filled > percentage data is about to exceed available RAM.

I'm confused - why does JobDB's memory trickle up over time? Isn't it a database? Are you using MySQL's memory storage engine or something?

<comment> achille-roussel There are no issues with memory utilization of the MySQL databases other than once the working data set don't fit in memory anymore it has to be fetched from disk on cache misses, which slows down fetches. Disk utilization of the Job databases increases over time because we don't do any deletes to avoid extra write operations (a delete is basically a write). Once a database disk utilization reaches a defined threshold it is swapped for a spare, then drained, destroyed, and reinitialised to be reused later on.

I hope this gives some clarity, let me know if you have further questions.

</comment></comment><comment><USER14> Awesome write-up! Curious on the decision to choose MySQL since it's a write- heavy load with minimal querying. Would something like Redis be better suited? I'm not super familiar with Redis so just curious about what other DBs were considered.

<comment><USER15> The biggest problem with Redis compared to MySQL in this use case is persistence. You could technically run Redis using the different persistence options [https://redis.io/topics/persistence](https://redis.io/topics/persistence), but it is not going to be as safe as storing things in a RDBMS.

</comment></comment><comment><USER16> Hi, thanks for the great write up. Can you provide some more details about how you handle the RDS side of the rotation process and maintaining the spares?

</comment><comment><USER17> Thanks for the post! It was really a good read.

In a similar position I would have tried MQTT that should handle quite well a great number of topics.

Did you guys tried such protocol?

<comment> achille-roussel Correct me if I'm wrong, but MQTT is just a network protocol, it doesn't solve storage, retries, failure resilience, etc... it's well suited for pub/sub operations over TCP, not so much for ensuring "exactly once" delivery of messages.

<comment><USER17> Yes, you are correct. MQTT is a network protocol.

You build your infrastructure on top of it to support stuff like storage, retries, resiliency, etc...

However, it does gives you some guarantee, namely that the message will oblige its QoS (at most once, at least once, exactly once).

On top of these guarantees, you build whatever you need.

Honestly, I am quite glad that you are writing these posts, it is a great service for the community and if you end up open sourcing it, the project will bring a lot of value to everybody.

Thanks for your posts :)

</comment></comment></comment><comment><USER18> By age 35 you should have written your own queuing system at least once.

<comment><USER10> Exactly.

</comment></comment><comment><USER19> Ok, I've read through most of this (really cool post btw!) and I still can't figure out if this project is using the Centrifuge stack or not:

[https://github.com/centrifugal](https://github.com/centrifugal)

It looks like not, but that's a hell of a naming overlap.

I looked at Centrifugo a few years ago to deliver live Hearthstone games (in game replay format) through the web. It's a pretty sweet project.

<comment><USER11> It is not. The naming resemblance is strictly coincidental :)

<comment><USER20> Well I for one think that it's not really "cool" to just copy the name for more or less the same thing.

BTW, it also appears there is an active US trademark (#78010053) for "centrifuge" in the computer database context. Isn't that an issue, too?

<comment><USER11> By coincidental, I mean that no copying was intended. It was strictly an accident.

<comment><USER20> Ah ok; I have made a habit of typing "<name> {software,github}" into google as well as the WIPO trademark search when picking a name for a new project.

I started doing that after having to go through two iterations of renaming a project after finding out the old name was somehow encumbered... of course after we had already used it in front of other people; it was very embarrassing.

<comment><USER11> Honestly, I don't think any of us had heard of this other project when we coined the name internally. If someone had raised it up the flagpole, we certainly would have considered it.

Still, do keep in mind that it's not the name of a product offering - it's solely an internal name for the technology.

<comment> achille-roussel That's correct, we were multiple months into the project and already using it in production when I came across (the other) centrifuge. We chose to just go with it because it wasn't worth changing all the code and everyone's habit of referring to centrifuge with this name.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> What is with the rash of bad naming decisions these days?

It started with "Cucumber" or "Celery" or something a few years ago didn't it?

I'll skip ranting about how "Go" was a terrible name for a PL (and only mention parenthetically how they gaffled that name from a different PL!) They have "Grumpy", and something called "Thanos" (good luck searching for that until the hype for that comic book movie dies down.) I feel like I've seen several other projects recently that have been named after other things.

<comment><USER22> Yes, fortunately Ruby, Python, Julia, Java, Delphi, Elixir, Lisp, Forth, Groovy, and Rust are all unique words with no other meaning.

<comment><USER21> Oh hey everyone, sarcasm! You don't see a lot of that every day. ;-P

And Elm, Swift, Logo, Pascal and Haskell and Ada, Icon and Self, Opal and Occam and Maple...

There's a lot of them: [https://en.wikipedia.org/wiki/List_of_programming_languages](https://en.wikipedia.org/wiki/List_of_programming_languages)

If all your friends name their projects after something and then jump off a bridge, it's still a dumb thing to do.

<comment><USER22> Yes, sarcasm but, much like jumping off bridges recreationally, naming programming things after existing words is an old practice. Lisp is 60 years old. Complaining about Celery and Centrifuge seems as disingenuous as sarcasm. We can agree on Go though. Some words are simply too common.

<comment><USER21> Well met. And you're right, the practice is older than I said (and not even confined to computer stuff for that matter.) I just feel like I've seen a rash of generically-named projects recently and that's why I went off when I saw this one. (I've also been on imgur this last week and I think it's affecting my communication style.)</comment></comment></comment></comment></comment>


Peer-to-peer WebRTC camera streaming for OBS - <AUTHOR> https://obs.ninja/ <comment><USER2> The website claims this is open sourced, it is not open sourced.

There's no definite license with the code on github.</comment>


NBA Licenses Epilogger for BIG Tour - <AUTHOR> http://blog.epilogger.com/media/nba-canada-licenses-epilogger-for-big-tour/

<comment> mauricio-OH I don't understand what "exclusive use" means - does that mean the NBA will not use anyone else?

</comment><comment><AUTHOR> It took some hustle but we made it happen. If you can dream it you can do it! Here's to the next big thing.</comment>


A Meditation on Lunch, Or, Why You Should Eat Alone Sometimes - <AUTHOR> https://thezaxis.co/2018/03/07/a-meditation-on-lunch-or-why-you-should-eat-alone-sometimes/ <comment><USER2> One nearly vegan fellow and a striking good read!</comment>


The NCSC's first 'UK cyber survey' published alongside global password risk list - <AUTHOR> https://www.ncsc.gov.uk/news/most-hacked-passwords-revealed-as-uk-cyber-survey-exposes-gaps-in-online-security <comment><AUTHOR> Their.txt list of the top 100,000 passwords to avoid can be found here:

[https://www.ncsc.gov.uk/blog-post/passwords-passwords- everyw...](https://www.ncsc.gov.uk/blog-post/passwords-passwords-everywhere)

</comment><comment><USER2> Well, I guess filtering out the idiots that use '123456' is at least ONE reason to use a '8 characters or more' password rule.</comment>


A modest proposal to save American democracy - <AUTHOR> https://www.vox.com/2020/1/14/21063591/modest-proposal-to-save-american-democracy-pack-the-union-harvard-law-review <comment><AUTHOR> The proposal can be found here: [https://harvardlawreview.org/2020/01/pack- the-union-a-propos...](https://harvardlawreview.org/2020/01/pack-the-union-a- proposal-to-admit-new-states-for-the-purpose-of-amending-the-constitution-to- ensure-equal-representation/)</comment>


Axiomatic CSS and Lobotomized Owls - <AUTHOR> http://alistapart.com/article/axiomatic-css-and-lobotomized-owls <comment><USER2> This is possibly the best ALA article since "The look that says Book": [http://alistapart.com/article/the-look-that-says- book](http://alistapart.com/article/the-look-that-says-book)</comment>


Ask HN: What are you doing to develop immune system? - <AUTHOR> <comment><USER2> Seven years ago I noticed I was getting really nasty allergies this time of year. I had never had allergies before. They got worse as I got older. My overall health did.

Two years ago I changed my diet and dramatically increased my exercise (keto and Brazilian Jiu-Jitsu). I had no colds or allergies anymore. Well, that's not entirely true. I realized that I had had a few colds. They started the way my colds always did but lasted less than a day instead of nearly a week like they used to. And the allergies are completely gone.

I caught my first cold two months ago. That was right after burying my step father (the stress of his death coupled with flying to see him when he went into the hospital and hugging on a lot of family I hadn't seen in years weakened my immune system I guess)

So... diet and exercise worked for me.

</comment><comment><USER3> Wim Hof method, it involves breathing exercises and some form of cold exposure.

[https://www.wimhofmethod.com](https://www.wimhofmethod.com)

</comment><comment><USER4> I see a lot of comments about sunshine exposure. Just want to make a counter- point. My neighbor died of skin cancer after a lifetime of sun exposure. He was in his 60's, not a spring chicken, but not elderly yet either. Now I have a new next-door neighbor :(

Also some very young people die of sun exposure.

I have anecdotal experience that vampires often look many years younger than their sunshine peers. As well as some hard evidence from truckers with the left-side (window facing) of their face greatly aged compared to the right.

It might be wise to moderate the time in the sun. Get some vitamin D, but everything in moderation.

</comment><comment><USER5> in (some) order of importance:

\- lots of sun WITHOUT sunscreen (diet and/or astaxanthin prevent sunburn), need cholesterol to biosynthesize vit. d

\- reduce glucose spikes / increase insulin sensitivity with low-carb diet

\- eliminate nutritional deficiencies: most effective is carnivore-ish diet in my opinion, meat and animal products are the best sources of bioavailable nutrients

\- eliminate stressors in food: stimulants, coffee, etc.

\- resistance / strength training

\- cardiovascular training

\- cold exposure (ice baths are awesome, I don't personally have access or a personal setup)

</comment><comment><USER6> For me this pranayama works :

[https://libre.video/videos/watch/c4b30e57-0c23-47fa- aae2-8c5...](https://libre.video/videos/watch/c4b30e57-0c23-47fa- aae2-8c50545f0fbc)

And several studies done on this pranayama

[http://www.aolresearch.org/published_research.html](http://www.aolresearch.org/published_research.html)

</comment><comment><USER7> Exercise. Balanced nutrition (macro and micro). Sleeping enough to wake without an alarm. Avoiding toxins and intoxicants (nicotine, alcohol, etc.)

</comment><comment><USER8> I have an indoor bike, doing high intensity 4 times/week. I'm currently reading about Wim Hof - to see what I can apply on myself.

</comment><comment><USER9> Exposing my body to all sorts of environment from radiation to a high level of stress and observing what is the outcome

<comment><USER10> Good idea, I also recommend starting a regiment of bullet training resistance.

But make sure you start with a small caliber like a 22. and work out way up to the higher calibers to build immunity gradually.

<comment><USER9> I am a 9/11 suvival

<comment><AUTHOR> Wow... Can you elaborate a little?

</comment></comment></comment></comment><comment><USER11> I've been trying lemon, ginger and honey tea. at least it keeps me hydrated.

</comment><comment><USER12> A good immune system is kind-of luck-of-the-draw; that aside, I'm exercising daily.

</comment><comment><USER13> staying in the sunshine

</comment><comment><USER14> trying to be mindful about belly breathing and hydration.</comment>


Ask HN: Who is actually doing Customer Development? - <AUTHOR>

Founders, are you doing customer development? Why or why not?
For those who are, what have you found to be the most useful aspect of it? The hardest?
I ask because it seems like the HN and lean startup communities don't overlap that much and I'm curious why. <comment><USER2> What's interesting to me is that customer development (at least the early stages) is a more commercial-friendly form of participatory design.

I did a PhD in embedded computer systems design which described "realistic" methods for designing new products with small teams through intense engagement with your future users. This was in an academic setting though, and I'd been wondering how to "sell" the idea of participatory design in much the same way user-centred design had been to companies as an alternative to traditional design methods.

Then I read Steve Blank's customer development strategies. Beaten to the punch. So I'm curious - is Steve aware of PD? What inspired CD?

Anyway, to answer the OP - working as an external designer/developer for a small dental firm, I found that our approach, which was very similar to CD in a lot of ways, was very useful for learning what _truly_ mattered to the customer. You are able to cut away the cruft from the design process very quickly. It's hard to tell what people want by watching them, it's hard to tell what they want by having them tell you, but it's easy when you collaborate with them in the design process.

The hardest part is it takes up a lot of time, but when you're establishing a toe-hold in the market, that's ok, and it's a differentiator for your company. We made a lot of people very happy by fulfilling their needs really well.

<comment><USER3> I always felt participatory design was never worked out or explained as well as customer development.

They were definitely on to something, but the focus seemed wrong (have your customers help you design your product). Customer development's focus is straight on (have a hypothesis, test it with customers and pivot). Much stronger way of thinking about the process.

<comment><USER4> I agree with you. Participatory design is not the same as testing a Hypothesis, which is what CD is about. The easiest way of thinking about it is what Henry Ford said "If had listened to my customers I would have bread faster horses". What Ford did was look at the Activities of his customers (need to go from a to b faster), and their needs and then came up with a Hypothesis which was the car.

He still researched the market, he still listened to his customers, but he did not use the customers solution, which is what Participatory design is about.

<comment><USER2> Participatory design is not about having your customer design for you, which is a common misconception. If it was, then every PD project would end up like the Homer Simpson car.

It is about engaging the user as an equal and not treating them as a abstract problem you are designing for. As I said, it's about including them in the design process in a way that you come up with a design that truly suits their needs.

</comment></comment></comment></comment><comment><USER5> We are at hypernumbers.com

Our product makes it possible for normal users to build websites and applications via a spreadsheet paradigm.

What we are selling is control, convenience and lower cost.

I walk around with my iPhone and go into shops and small businesses, small offices, anywhere there are Excel users without technical support, and do my speil. Lines that work in person are rolled back into the web offering.

We want to sell direct on the web, but you get much more real and understandable feedback from direct selling, so as long as the people you are pitching to IRL are representative of your target web demographic, it works fine.

The key things is: * I have an opinion * things customers tell us are facts * things customers do are facts * what is the cheapest and quickest way to test my opinions and replace them with customer facts

It works well.

</comment><comment><USER6> It was important enough for us that we moved from SF to London to be closer to our customers.

The big mistake we kept making was starting to sell a product idea when we should have still been listening and understanding. Other mistakes were assuming validation from one customer segment would translate to others and not understanding the customer's budget and purchase approval process as early as we could have.

Even with those mistakes, the gains have been tremendous. I think the literal process in the book is overkill for most web businesses but I would never walk away from the principles.

</comment><comment><USER7> I'm doing (or at least trying to do) customer development on a B2C startup.

Why? Because after a fair bit of product development experience (mostly agile, mostly outside of the startup world) many things about CD resonated strongly with me. For one quick example, the bits about listening to your customers but not necessarily doing what they say are handled with more insight and nuance than most methodologies. This (and Blank's resume) gave the process enough credibility to me for me to attempt to follow it.

I don't feel I'm far enough through the process to answer "the most useful aspect" part yet, although I think most of the core process that I've tried has been useful. CD is actually a pretty small process: It doesn't really that many steps, it just takes time and discipline to execute them.

The hardest parts for me so far have been

(a) getting really crisp on the problem/solution hypothesis

(b) approximating customer visits in a B2C environment

<comment><USER3> "the bits about listening to your customers but not necessarily doing what they say are handled with more insight and nuance than most methodologies"

Exactly. Most other methodologies are stuck in "listen to your customers, somewhat". Customer development says: "test your hypothesis and pivot". Resonates more with me too.

Too bad that the language they use is so markety.

</comment></comment><comment><USER8> At Smartupz we are trying to do the lean model and customer development. It's much harder then it looks - first problem is that people you are trying to approach (in our case small/medium business) have no time. So you must be very clear in terms of your value proposition so they can immediately "get" your app and share their opinion.

Creating crisp/short value proposition statement is damn hard.

Second thing - throwing at people MVP or just a presentation with the proposed functionality works fantastic! We get tons of great feedback without actually having to write a single line of code. When we eventually start writing code - functionality is much more "down to earth" and customer is willing to test it because it's partially his baby.

cheers, Jarek.

</comment><comment><USER4> Our product webnographer.com is very much following Steve Blanks ideas of testing the Hypothesis. Webnographer is a online tool for remote usability testing. To start off we have been offering the tool combined with a consulting service, this has led us to to actually get very close to customers and understand their needs. From day one we have been charging customers, and therefore get rapid feedback if people will actually pay for it.

What is hard? All start ups are hard, but compared to the other start ups I have been involved in following the "customer development" mantra has been easier, because the feedback is faster and you can alter coarse faster. No business plan is ever going to be spot on, and no Hypothesis is either. Blanks ideas means that feedback is faster, and therefore risk is lowered, without reducing profitability. The more traditional seams like the waterfall method compared to agile.

</comment><comment><USER9> We launched a product recently <http://sociaholic.com> and applied lean startup principles.

Problem Hypothesis: The existing Twitter to Facebook integrations and apps don't preview links/videos when publishing to Facebook from Twitter, thus by limiting the desirability to click on a link on facebook pages.

Execution: Design to launch along with a video in less than 2 weeks, the goal was to validate our solution has a market. We update your facebook page from twitter in nice way (previewing links, converting @handles, etc)

Validation: Our first week: Over 200 active users out of ~250 signups, conversion rate (homepage to adding twitter account) ~30%. 2% dissatisfied customers (5 out 250 people uninstalled)

The product has a much bigger vision and Customer Development is doing wonders and we plan to do this for every step we move forward.

<comment><USER10> Great domain name btw.

<comment><USER9> Thank you.

</comment></comment></comment><comment><USER11> <http://justin.tv/startuplessonslearned/videos/>

Among those: Dropbox (yc alum), IMVU, Aardvark. Their videos are pretty enlightening.</comment>


What's your one song? Jack started us off at SUS13 - <AUTHOR> http://open.spotify.com/user/staylor09/playlist/7tkGvWGn0dy3qGn9RjD0Nk Jack Dorsey gave us the one song that supports and inspires him. What's your one song?<p>I've created a shared playlist on Spotify. <comment><USER2> Mysterious (With Music Box) by Yuko Ohigashi, a brilliant (very) young composer.

<comment><AUTHOR> Added!

</comment></comment><comment><AUTHOR> I've added Ludovico Einaudi - Nuvole Bianche.

</comment><comment><USER3> Strange Fruit Project - Hasta Luego

</comment><comment><USER4> Destroyer - The Bad Arts

<comment><AUTHOR> I couldn't find it on Spotify - feel free to add it to the playlist if you can find it.

</comment></comment><comment><USER5> Nujabes - Arurian Dance

<comment><AUTHOR> Is it on Spotify?</comment></comment>


DIY Apodization Filter - <AUTHOR> http://www.4photos.de/camera-diy/Apodization-Filter.html <comment><USER2> To those like me who are not into photography, this is equivalent to multiplying by a sinc or gaussian before a Fourier transform, to avoid artifacts caused by sharp windows.

[https://en.wikipedia.org/wiki/Apodization](https://en.wikipedia.org/wiki/Apodization)

</comment><comment><USER3> Nice, I'd never heard of this technique before to create 'smoother' bokeh.

Although I have seen some examples of people cutting a shape in card and placing in front of the lens, to create different shaped bokeh, like hearts etc.

</comment><comment><USER4> This works best in lenses that have zero vignetting, like the purpose-designed Minolta/Sony 135 STF and the new FE-mount 100 STF.

By comparison, the Fuji 56/1.2R and the Laowa 105/2 with apodization filters lose the effect in the corners where the vignetting cuts off the soft edge of the blur circle.

</comment><comment><USER5> Is there a shop where one can buy lenses, lense tubes, and filters relatively cheaply? And by cheaply I mean under $50 for a lens.

I want to experiment with building a custom digital camera for robotics purposes, starting from an image sensor. The quality of the image need not be very high (comparable to a webcam), but the customized lens should allow me to achieve things like magnification and specific focal depth.

<comment><USER6> You could try looking into C-mount CCTV camera lenses. C-mount is an old standard that is still widely used for technical gear (or at least was back when i was doing microscopy), and is used in (some) CCTV cameras, so there are plenty of cheap but practical lenses for it.

I came across it because at one point, there was a vogue for using these lenses with an adaptor on Micro 4/3 cameras. The idea was that you'd just dropped getting on for a thousand pounds on a camera body, so couldn't afford a lens, so you'd buy some thirty quid lens from China and use that. Needless to say, it didn't take people long to realise that was really stupid.

<comment><USER7> > I came across it because at one point, there was a vogue for using these > lenses with an adaptor on Micro 4/3 cameras. The idea was that you'd just > dropped getting on for a thousand pounds on a camera body, so couldn't > afford a lens, so you'd buy some thirty quid lens from China and use that. > Needless to say, it didn't take people long to realise that was really > stupid.

I think people were also attracted to adapting those lenses because there are readily available CCTV and machine-vision lenses which are, compared to typical photographic lenses, extremely fast (like f/1.0 and lower). This is for applications like security cameras which need to be able to work in dim lighting conditions, or machine vision applications that require a very short shutter speed. Of course what the Micro 4/3 crowd eventually came to realize is that in order to achieve a fast lens at a modest price point, those lenses trade off other qualities like resolution and distortion, which are less important in their intended applications, but seriously compromise the lens for photography.

<comment><USER8> I'd like to see lenses with the opposite trade-off: slow (ie. diffraction limited) but excellent optical properties. They'd be ideal for outdoor and long exposure deep focus shots, and it should be possible to make them smaller and lighter than normal lenses. But these lenses seem not to exist despite their potential utility. People focus on low f-number just because it's easy to measure, and assume everybody wants blurred backgrounds.

Is there any source for high quality slow lenses?</comment></comment></comment></comment>


Some Notes On iTunes LP - <AUTHOR> http://jayrobinson.org/2009/09/11/some-notes-on-itunes-lp/ <comment><USER2> I wish there were more LPs available out the door: I don't like the current selection, but I'd _kill_ for a Tubular Bells LP done in this vein.

I can't wait till this catches on and there are thousands of LPs to pick from. This is the sort of extra functionality that makes buying music rather than stealing it worth the consumer's money.

</comment><comment><USER3> Great[edit: !!!] Would be even cooler if it fully worked in Safari and other browsers.

I guess they didn't include fonts because of licensing woes. I wonder what that does to accessibility.

<comment><USER3> The "Great." is entirely non-sarcastic. Funny how "Great." has come to denote sarcasm. I would guess that is why I was downvoted. If you mistake my "Great." for sarcasm the comment is indeed vile. My mistake.

<comment><USER4> An exclamation mark helps - "Great!"

<comment><USER3> See my edit :)

</comment></comment></comment></comment><comment><USER5> One thought I've had:

Do this for education and textbooks. Has anyone tried to create a simple iTunes LP themselves and open it in iTunes.

</comment><comment><USER6> I wish I could find info for artists on creating these. So much potential for creativity here, and I hope that's opened up to indies sooner than later and not just the majors.

</comment><comment><USER7> Interesting for two reasons: gives an incentive to buy the album not pirate, and gives an incentive to buy _from iTunes_ \- not from Amazon or another service.

</comment><comment><USER8> I see no point to this at all, but seems some people like it. When I listen to music I'm appreciating the creative output of the artist; there's no need for it to be dolled up by animated web pages and visualisers and what not. In fact I find that kind of thing distracting and usually annoying, like those DVDs which have some half-ass custom menu effect meant to "put you in the mood" or something; I wish I could just skip it.

Still, glad (and somewhat surprised) to see it's not an encrypted, proprietary black box. Kudos to Apple for that and a great advertisement for the excellent Webkit.

<comment><USER6> I can see if this is poorly done it will become annoying like a repeating DVD intro for sure. But as an artist, this also gives an opportunity to be not just musical but visual and even interactive. If it's based on webkit, sky's the limit for what you can embed. A listener chatter box? Why not? These could totally hook up to a server for interactive elements and ongoing content updates. You could tell a whole story in one of these.

I love vinyl LPs because the larger visual format is more immersive and I take the time out to enjoy the experience. On the computer, I find all music becomes background music, which is a shame. So I'm really looking forward to what artists (myself included, hopefully :) will do with this. I hope it lives up to that experience and becomes the new standard "LP" that other players adopt too.

<comment><USER8> ... but if you want to do that, why not just have a website so everyone can look at it? You don't need to tie it to people who bought the album on iTunes.

I understand your point about music moving into the background when you're at a computer, and agree to some extent, but I think that's more to do with the fact you are sitting in front of an entertaining multi-function device rather than on a couch in front of a dedicated stereo system. It is possible to set up the latter even with a computer, and you'll still be distracted by all the possible activities with your computer even if you have a bundled web site to look at.

I agree that it's good to have something album-related to look at, to allow you to concentrate on the music more. Personally I think computers are the worst possible device to fulfil this role but don't have any other solutions.

<comment><USER6> Very true about computers. I find even with CDs I don't get the same thing as with vinyl though. It's just not as compelling an artistic medium.

As to putting it on a website, that could work and some people have done exactly that, but this is cool because it turns that novelty into a product you can sell (access to a restricted area of a band's website on the promise it'll be there in a year's time is a hard sell by comparison) and this is where people know to go to buy music now so the expectation that it will cost something is already in their minds. So this just works better as a saleable product.</comment></comment></comment></comment>


Sports Illustrated Moves Fantasy Football onto Facebook; Tries to Catch Up - <AUTHOR> http://ryanspoon.com/blog/2008/08/03/sports-illustrated-moves-fantasy-football-onto-facebook-tries-to-catch-up/# <comment><USER2> Welcome to 2007.</comment>


Working at (Google Vs Microsoft) - <AUTHOR> http://www.reddit.com/r/programming/comments/awqu6/things_ive_learned_at_google_so_far_not_me_the/c0jswdb <comment><USER2> This guy's report of his experiences at MS don't add up to me. My reply in the reddit comments...

> I still have the freedom to work on anything I want

I'm confused by this. In my 8 years at MS I have never heard of anyone being able to work on anything they want. Perhaps you are at MSR? At any rate being able to work on anything you want (full-time) is not typical of MS or most large corporations.

> They are out for blood in everything they do, and I've found that to be a > surprisingly interesting motivator.

Also not my experience. People at MS are surprisingly normal, and the company has a pretty good track record of working with partners when it makes business sense. This comment strikes me as even more odd when coupled with the "I get to work on whatever I want" one quoted above.

I'm also puzzled that your reddit logon is "lnxaddct". I have nothing against Linux, but surely that is one of the things you can't work on at MS?

<comment><USER3> There may be a reading of 'anything I want' that the poster intended. I don't get micromanaged much. I do 'anything I want' as long as the end results are the results that my feature team is driving for. No one particularly cares what tools I use or what approach I use as long as it's going to get the job done.

The rest, I agree with you (JamieEi) about. People seem aware of the competition, but typically discussions are about how we can provide a better experience.

As for the username, I was developing on linux before I came to MS. Presumably the poster was a big linux fan before being hired at MS.

<comment><USER4> The thing is that it's in the context of someone at Google saying they can work on anything they want, meaning pretty much anything.

</comment></comment></comment><comment><USER5> _They also require everyone to rotate being "on-call". I went to Amazon's party last week (the "100% Peculiar" party), which was awesome but it was a Saturday night at 8:00pm and one of my friends who works there got called in. They had on-call rooms at the party._

This is a great policy. At some companies there is a lot of finger pointing, but when the devs share the pain of the ops guys, everyone knows they're on the same team.

<comment><USER6> Yeah, just as long as the dev who caused the problem in the first place doesn't get rewarded for working so hard to fix it when it's a crisis.

<comment><USER5> At 3am, he won't think about the rewards.</comment></comment></comment>


Nice Ivy League Degree. Now If You Want a Job, Go to Code School - <AUTHOR> http://www.bloomberg.com/news/articles/2015-05-07/coding-classes-attract-college-grads-who-want-better-jobs

<comment><USER2> Maybe I'm biased, but I upvoted based on the title alone.</comment>


Kotlin 1.1: What's coming in the standard library - <AUTHOR> https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-whats-coming-in-the-standard-library/ <comment><USER2> I feel kotlin is a bit undervalue. It is a great modern language which can replace java completely.

Along with swift, they should be the general purpose programming languages in the near future.

<comment><USER3> Kotlin is one fine piece of engineering. It's only too unfortunate that the same Achilles' heel is holding it back as Scala: there is only so much you can do while remaining compatible with JVM and the Java standard library. Actually, it's even worse: Kotlin swore a seamless compatibility with Java. Maintaining compatibility against a moving target has the potential to make things quite messy. An early example of that presented itself just after Kotlin 1.0 release, when Java 8 came out with with new and shiny functional Collections API - incompatible to Kotlin's.

<comment><USER4> > when Java 8 came out with with new and shiny functional Collections API - > incompatible to Kotlin's.

This makes no sense.

Kotlin has no collections, it just uses Java's.

<comment><USER5> He/she means the changes related to streams, I would say.

</comment></comment></comment></comment><comment><USER6> While Kotlin itself is a nice modern swift-like language, it'll never get the same type of adoption unless Google makes it a priority.

I'm a lead Android developer and I've inherited a Kotlin codebase mixed with Java, and here's why I refuse to create any new classes in Kotlin:

1). Compile-time is slow. I know there are plenty of work-arounds but I don't want to modify the build-properties to the point where it's hard to replicate when onboarding new engineers. The closer to the default-project settings, the better and the less resistance. Android dev itself is a very fragile framework to begin with.

2). Abuse with nullable types. I've been a lead iOS engineer too and this is what I have observed as well with Swift. I can't even count the amount of Crashlytic reports that have been caused by a model not binding properly.

3). It really doesn't save that much time at the end of the day. A language is a language is a language.

4). Community/docs does not have as much reach as Java in terms of docs.

This speaks more to the previous developer than the language itself, but this has been the most unstable code-base I've ever worked with.

I specifically avoid web-development for the bandwagoning hype when the shiniest new piece of tech comes out. While I think it's great that Jetbrains is trying to make a competitive language to Java, I think there are too many forces working against them.

Java's old, boring and predictable, but that makes it a great language to a build a stable app with.

<comment><USER4> > 3). It really doesn't save that much time at the end of the day. A language > is a language is a language.

That's a... surprisingly uninformed statement from a "lead" developer.

<comment><USER6> Too many engineers get caught up with the minor details of the syntax of a language and ignore the business implications of using an untested technology.

My job as a lead is to help scale my team, properly architect the application as well as reducing any risk / uncertainty while delivering new features to the platform.

The syntax doesn't save that much time in my personal experience. The actual amount of words that's typed might be less.. it can be cleaner than Java but if my team is spending a higher amount of time debugging Kotlin issues relative to working with the Java codebase then we've got a problem.

\---

> That's a... surprisingly uninformed statement from a "lead" developer.

That's a... surprisingly snarky / unhelpful remark with no counter to my statement.

</comment></comment></comment><comment><USER7> Kotlin has been useful to me and easy to learn. It dovetails so well with exisiting java libraries that no Kotlin revolution (rewrite everything) is necessary. The most notable frameworks are in android land (Anvil, Bansa -- like react, redux). But on the backend, you can use stardard stuff. That's why Kotlin has been well accepted but not made a huge splash.

</comment><comment><USER8> "onEach" looks helpful. I actually just added such a function to my own Go extension project, although I named it "tee". The benefit is that when you have a long chain of map -> filter -> reduce, you can insert a tee as a sort of "porthole" into the current state at any location in the chain. Very handy for things like debugging and logging.

<comment><USER9> it looks exactly like Java's peek(), not sure why they don't use the same naming.

<comment><USER2> It is not like java peek at all (or I am missing what peek do your refer to).

Peek is to get the reference of the first element. OnEach makes a lazy operation for every element on the sequence. I would say that onEach is more like map but lazy.

<comment><USER10> It's just forEach that returns the collection/sequence instead of returning Unit. Don't overthink it. It's not like map.

<comment><USER2> > On iterables it behaves like forEach but also returns the iterable instance > further. And on sequences it returns a wrapping sequence, which applies the > given action lazily as the elements are being iterated.

like forEach and also returns the iterable instance or like map, it is the same.

For me the key thing is that onEach applies lazily for sequences.

<comment><USER10> No, it's not like map.

Map builds a new collection based on the function you provide it. At the end of a map call you end up with a potentially transformed collection instance.

<comment><USER2> You should consider change your tone when you talk to people. It is quite rude.

It is not a map and it is not a forEach, that is why they created it.

> At the end of a map call you end up with a potentially transformed > collection instance

The difference between onEach and map is that map returns a new collection that can have different type of elements. But onEach can modify the internal state of the objects when applied. Also onEach is lazy and map is not lazy in kotlin (as far as I know).

Why did I make the comparison with map and not with forEach? Because forEach is basically a translation of a for and map is a functional function and onEach it is also a functional function. You can agree or disagree with my way of trying to explain things, but being rude in your comments saying you are not right (when I know) and them providing another solution that you also know it isn't right, feels like a troll comment.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Can I use it to code full featured modern Android application without Java?

<comment><USER12> Yes. Just one example I have in mind: [https://github.com/yshrsmz/monotweety](https://github.com/yshrsmz/monotweety)

<comment><USER11> Really interesting, thanks!</comment></comment></comment>


What if scroll bars on the iPhone X worked like the game "Snake"? - <AUTHOR> https://github.com/ZevEisenberg/ScrollSnake <comment><USER2> This is neat. Although Apple seems a bit touchy when it comes to their iPhone X notch. In the new iPhone X human interface guidelines Apple states that apps should not "mask or call special attention to key display features." I would guess that rules snake scrollbars or games that use the notch as a boundary. It's a shame really.

[https://developer.apple.com/ios/human-interface- guidelines/o...](https://developer.apple.com/ios/human-interface- guidelines/overview/iphone-x/)</comment>


PEP-526: Syntax for Variable and Attribute Annotations - <AUTHOR> https://mail.python.org/pipermail/python-dev/2016-August/145991.html <comment><USER2> I'm really not liking this shoehorned type annotation system. It's a significant decrease in readability.

On top of that, the fact that there is no builtin benefit within the language of using type annotations slows down its adoption _greatly_.

I wish some of the typescript lessons would have been learned. Typescript _really_ got optional typing right. But instead we're left with a system which requires imports, abuses __getitem__ syntax and yields no benefits out of the box. All that because nobody wants to touch the parser -- the same sort of bad decisions which has led to the awful lambda syntax staying there so long.

And the worst part is, from there I see no path to a proper type system that doesn't massively break backwards compatibility. Mishandling such a core feature could kill the language.</comment>