Ask HN: What projects are perfect for learning a new language? - <AUTHOR> I get that the best way of learning is to try to build something but is there a list of projects that accentuate a language's purpose/paradigm in a way that building said project has the best time to learning ratio? <comment><USER3> If you're interested in python, go, ruby, js(serverside), php then do this:

\- Make a simple website. This will teach you how to handle routes, serve files, using best practices and other http 101 stuff

\- Make a more advanced server with database connectivity[1]. This will show you how different languages handle database connectivity, database design, sessions, ORM and other webserver stuff.

\- Now make the same website using a framework. Eg: express for nodejs, flask for python and so on. I don't recommend using bigger frameworks like RoR or Django at this point. This will teach you what makes the language's ecosystem tick[2]. It will also show you how frameworks help you build websites faster.

\- The last step will be to use a CMS on the language of your choice. This will teach you how to deploy apps on the cloud, webserver, etc. At this point you know the internals of how (almost)everything under the CMS is working and you should be pretty confident in building a custom website all by yourself.

Notes:

[1] You ideally should be database agnostic but use whatever database the programming environment imposes upon you. For example, use mongodb when programming in nodejs. Once you work out the kinks of using a database, you can use other databases like rethinkdb, mysql, etc.

[2] Large frameworks are opinionated and impose their own ORM, app wrappers, terminology, etc. Use a small easy to learn framework like flask for python, slim for php, etc and then move on to the bigger frameworks.

<comment><USER4> This is good advice, and I would just add four things:

First, if you are building a web site you might want to really have in the world, then as a bonus you have it! (Think portfolio, or a blog that actually belongs to you...)

Second, if you do this for more than one language you will have a basis of comparison, and this will be valuable to you in and of itself. It might even be valuable to other people! And maybe a topic for the web site....

Third, if you don't want to deal with the inevitable combination of HTML, CSS and Javascript (and various templates, frameworks, etc) that go into making a real website, then consider making an HTTP API instead. You'll still learn a lot, but it'll be more focused.

Finally, you might find you have a particular thing you want to do differently than you see it commonly done. Web sites, web frameworks, and API's are great places to scratch that itch.

However, be wary of rabbit holes. I'm currently in the middle of writing the web thing I wanted to have "just so," in its second form in Go, having already built it twice in Perl and once in NodeJS, and I _think_ I'm on the right track right now but at this point who knows.

(I've learned a lot of Go this way, but this is not an efficient way to actually create software.)

</comment></comment><comment><USER5> I like Hogan's book "Exercises for Programmers". Also, some lists of ideas I've recently been looking at:

[https://docs.google.com/document/d/1TyqD2_oDtiQIh_Y55J5RfeA9...](https://docs.google.com/document/d/1TyqD2_oDtiQIh_Y55J5RfeA91JJECc97xYIKM112H9I/edit?pref=2&pli=1)

[https://github.com/karan/Projects](https://github.com/karan/Projects)

[http://www.dreamincode.net/forums/topic/78802-martyr2s-mega-...](http://www.dreamincode.net/forums/topic/78802-martyr2s-mega- project-ideas-list/)

</comment><comment><USER6> I like to build something that I've programmed before in another language. Maybe this seems redundant. But if you have the problem fresh in your mind, it leads to asking the kinds of (Googleable) questions that get you very quickly to a base-level understanding of the new language. It also sheds light on the areas where the language is better/worse at specific things than the lang you are used to working with.

<comment><USER7> I used to use this method, but I've started to back away from it, because I often find that it encourages my own Blub programmer nature. Re-implementing an old project immediately shows me the ways in which the new language is worse, but often obscures the benefits.

As a personally embarrassing example, I once returned to Python after three years of heavy Scheme usage. I spent a week porting an almost trivial application and it felt like Python was fighting me every step of the way. Had I not had past pleasant practice with Python, I would have abandoned the language as useless.

Finally, at the end of the week. I realised that I was trying to write Scheme in Python, which work about as well as writing Python in Scheme. Python has for loop and I should be using them.

About twenty minutes later, the app was ported. It wasn't my finest hour.

<comment><USER8> I sometimes see the opposite.

        We took an app written and maintained for the last 10 years in language A, and re-wrote it from scratch in language B.

        The new codebase is smaller, more maintainable, and runs faster!!!

</comment></comment></comment><comment><USER9> A personal project that's been frustrating you and could be solved better in the new language/framework. This gives (a) motivation to do something in the new language (b) gratification from the new language/framework's new features (c) low risk since it's not work.

Almost everything I have picked up by myself over past few years has been this way. Golang (frustration with concurrency in Python), JavaScript/React/Redux (frustration with "native" GUI frameworks), Android SDK (Speed, sensors pre- html5-webview), GraphViz (frustration with "project management") etc.

</comment><comment><USER10> One answer to that question, which I have bookmarked: [http://blog.fogus.me/2009/05/29/pet- projects/](http://blog.fogus.me/2009/05/29/pet-projects/)

· Lisp interpreter

· Lexer generator

· Knuth's Pac-Land

· Linear Algebra library

· Workflow engine

· m-ary tree

· Now Do This app

· Project Scaffolding generator

· Gap buffer

</comment><comment><USER11> I like to use a simple name generator, used to generate names for game characters. It's virtues are that it's simple enough to write in less than an hour, complex enough to give you a sense of how the language and its standard library work, it uses standard I/O streams and reads files, it uses random numbers, and it involves some manipulation of strings and sequences.

The basic idea is:

1\. read a file containing a list of sample names, one name per line

2 convert each name into a sequence of triplets; as an example, 'Fred' becomes the list ['Fre', 'red']

3 choose a random starting triplet

4\. choose a random non-starting triplet that matches the start. A triplet matches the previous choice when the last two letters of the previous one are the same as the first two of the next. Repeat with the new triplet as the start.

5\. When you reach and end triplet or the length exceeds some limit, stop and merge the triplet. Merging the sequence means merging them two at a time left- to-right. Merging two triplets means dropping the first two letters of the one on the right and tacking the remaining letter onto the one on the left.

Besides being easy and kind of useful for learning languages, it's also kind of fun. With the right input lists the names generated can be pretty funny.

'Corichadwinardo'

'Tadforgio'

<comment><USER12> That's really neat. I like that it's solving a language problem and coming up with something intelligible and fun. It is also right in the sweet spot for complexity. A nice "hello programming language" exercise indeed

</comment></comment><comment><USER13> Any project that you want to do right now and that you think the language can handle properly. The most important part is motivation, and a project-at-the- gates is one of the best drivers. This not only works for languages, but also frameworks and tools.

</comment><comment><USER14> I am not sure if this will be considered as self-promotion, but if you are trying to learn something related to web, feel free to borrow from my list of projects:

[http://vikaslalwani.com/projects/](http://vikaslalwani.com/projects/)

All the source is available on GitHub and I am sure you will have lot of fun creating these :) Feel free to contact me if you need any help.

</comment><comment><USER15> I'm writing a longer response to this targeted as a resource (e.g. "I know this, I want to do this- how do I approach the problem?"), but without knowing what background you come from we really can't answer this question. E.g. what languages/paradigms you're familiar with already, if any, and what you want to accomplish?

I.e. _why_ do you want to build project $foo or learn paradigm $bar? To make web apps? To get great at Project Euler and Code Jam? To expand your mind from a theoretical POV? To get hired at in finance to trade securities?

CS hasn't gotten has large as other fields but it's pretty expansive. A little more concrete information as to what you desire your endpoint to be will help us a lot. Otherwise, one might ramble on for half a thousand words on compiler theory when you really want to target FPGAs.

Edit: Dr Matt Might just blogged about PL's[1]; pretty relevant to you, OP. Post-read, definitely the information you're looking for. Scheme and Haskell (or really, any H-M type inference based language... you don't need to commit to typeclasses and pure functional idiomatic lenses over, say, OCaml's modules and semi-purity to 'reach enlightenment'...though perhaps them be fightin' words around here ;) ) If you liked pre-relativistic mechanics, SICM is a funner text than SICP (contentious remark #2 ! I'm just lookin' for a nerd fight now!). Both are well-written texts accessible to most anyone (i.e., don't be scared, the furthest they go into is perturbation theory)

 _If, on the other hand, you 're interested in enlightenment, academic research or a start-up, the criterion by which you should choose your next language is not employability, but expressiveness...Here you'll find descriptions of four good languages to learn--Haskell, Scala, ML and Scheme-- with a list of my favorite features for each, and pointers on where to learn more._

[1] [http://matt.might.net/articles/best-programming- languages/](http://matt.might.net/articles/best-programming-languages/) I'll forgive him for this URL slug since the caliber of his content is significantly above average.

</comment><comment><USER16> I always start out with a simple raytracer / path tracer (spheres only).

It's always nice to see visuals appear (in a file or on screen). It's like a compliment for the work done.

And you will learn a lot of basic stuff like loops, scope, types, and so on.

</comment><comment><USER17> For interpreted languages like Perl, Ruby, R, Python, etc., I usually write a C extension. Usually C extensions have to communicate with the runtime using their internal data structures, and those data structures determine how everything else works.

That and glancing at the AST if the language is open source.

</comment><comment><USER18> If you like math at all, www.projecteuler.net/problems is worth a look. They pose math related problems that are intended to be solved programmatically. Once you've solved a problem correctly you are given link to the problem's forum page, where others people have posted their solutions.

Whats truly great is that you are forced to solve the problem on your own, and then you can see how others did it, both in your chosen language(assuming it's a somewhat common language), but also a myriad of other languages.

</comment><comment><USER19> For getting into new web-dev frameworks/languages I often do these three steps:

1\. hello world (simply getting something on the screen)

2\. todo list (display a simple data-set and interact with it)

3\. blog (display a relational data-set and interact with it, maybe some auth stuff)

But I would like to know how these steps would look for embedded stuff.

<comment><USER20> If you mean embedded systems, this is what I would do when working with a new microcontroller:

1\. Make a LED blink - the Hello World of embedded.

2\. Output a PWM signal from a pin to control a motor or to a speaker output.

3\. Read an analog signal using the onboard ADC. A temperature or luminosity sensor is a good start.

4\. Write a light OS that can execute multiple tasks simultaneously - <USER2> user input, read analog sensor values, perform a calculation, keep track of time, etc. This will need all of the above + interrupt handling.

<comment><USER19> Nice thanks :D

I already imagined that the hello world of embedded is a blinking LED , haha.

So these things (PWM, ADC) are "standard" to all embedded systems?

<comment><USER15> I am of the firm belief that Arduino's are great to get those who aren't already motivated into learning EE/CE. Seeing a responsive blinking LED or whatnot is great to get people to the 'oh man, how does this work?! I want to learn more!!'. You're already at that phase. You presumably have a baseline of CS knowledge. Do it the 'right' way, and use a PIC or an AVR. (I don't care which, no holy wars, avr fans ;))

This[1] is a great place to start. I keep on meaning to write a 'hardware for CS guys' guide, that'll suffice for now.

[1] [http://umassamherstm5.org/tech- tutorials/pic32-tutorials/pic...](http://umassamherstm5.org/tech- tutorials/pic32-tutorials/pic32mx220-tutorials)

<comment><USER19> A friend told me PIC and AVR have different purposes.

AVR for controlling and PIC for computing.

</comment></comment></comment></comment></comment><comment><USER21> For golang kubernetes is pretty good, i learnt a lot of tricks just reading code, but you quickly learn it was the wrong language on so many fronts.

<comment><USER22> You mean it was a mistake for kubernetes to be written in go? If so, I would love to hear a bit about it.

<comment><USER21> I think so. The lack of parametric types leads to an explosion of types for each concept, and where they don't do this a load of casting from runtime.Object and interface{}. The lack of exhaustive pattern matching is responsible for many bugs, oh we forgot to add a case for runtime.InternalEvent etc... However our project will be using Kubenetes library and thus we're also doing it in Go. MetaAccessor another eye sore. It's all a trade-off I guess..

</comment></comment></comment><comment><USER23> I have a friend who likes to write fractal generators when he starts looking at a new language because it gives him a sense of what it can do and how it does it in terms of loops/recursion, data structures, math, and visualisation.

</comment><comment><USER24> Don't want to hijack this thread, however, it is mildly related:

What projects are perfect for learning Erlang (which might involve both the functional and concurrent aspects of the language)?

</comment><comment><USER25> I think that depends on the language. A couple of ideas: Copycat standard unix tools such as grep, ls, dd. Implement an economy simulator. Implement a simple neural network (you can find the formulas for backprop online). A tennis tournament planner. A Sudoku solver using SAT constraint propagation. Invent a simple layout language and implement an interpreter/renderer which renders text and images in a pdf file.

<comment><USER26> I would extend "standard unix tools" to (old) "standard unix services". I learned a lot from the final project in "Haskell Programming from First Principles", which was to implement a server for the finger protocol.

</comment></comment><comment><USER27> I always like writing a small calculator (takes stuff like 1 + 1.5 and outputs 2.5) using a top-down parser. They're relatively easy to make if you're comfortable with top down parsers. It makes for an nice couple-hours project to wet your beak with the language.

</comment><comment><USER28> There is a good collection of simple games that you can clone in the Invent with Python website [http://inventwithpython.com/blog/2012/02/20/i-need- practice-...](http://inventwithpython.com/blog/2012/02/20/i-need-practice- programming-49-ideas-for-game-clones-to-code/)

I guess what you're looking is the general skill of being able to model things with a programming paradigm.

</comment><comment><USER29> I'm interested in the subset of such projects that are not only good for learning but also useful to others released as open source. Anyone care to give ideas?

</comment><comment><USER30> Different languages are better suited to different tasks. Web development is generally best done in a higher level scripting language (Python, PHP, Ruby). If you need something where the language is likely to be a bottleneck for speed look more towards C,C++, Java. R is popular for stats and pretty graphs. So really it depends what you want to build or what language you want to learn.

</comment><comment><USER31> Break the Vigenere cipher [0]. It's not very web-specific, but it'll at least get you up to speed on strings, collections, control structures, file I/O, modules, etc.

[0][https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher](https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher)

</comment><comment><USER32> I vote for a little webby something. Get the lowest-level web framework you can find for the language, and then make a hello world. You're bound to learn strings, functions, processes and types, at the very minimum, and a web-based something is also a very easy platform from which to expand incrementally into new territory.

</comment><comment><USER33> For learning programming languages, I would definitely go and write algorithms and data structures with them. Like quick sort, stack, queue etc. It's some how teaches you the language primitives really well. Currently learning Haskell and doing the same.

</comment><comment><USER34> I used to learn by writing asteroids clones. Fun and you get to try out the language features.

</comment><comment><USER35> It isn't a web-centric project, but a ray tracer is a very simple (at its heart), yet almost infinitely upgradeable project. Given how computationally heavy it is, that may knock out using that idea for PHP, Ruby, Python, Perl, etc...

</comment><comment><USER36> I recommend you to build a content management system for a desktop environment.

<comment><USER37> For a desktop environment? What do you mean by that?

</comment></comment><comment><USER38> One of my little go to exercises for just getting a handle on a new language is building a Sudoku solver. Usually just console output, with a command line flag to output timings.

Found that as a pretty good little first step.

</comment><comment><USER39> A game of Snake, a simple database, a little web server, a small compiler.

</comment><comment><USER40> Implement the common search and sort algorithms, solve a few Project Euler challenges, and build a full-fledged todo-list or photo sharing application.

<comment><USER41> I will second the first part of this - algorithms and data structures. You have to hit the middle ground for those as the language may provide some. So try implementing binary search trees or splay trees and some graph algorithms. You should not pick too many - perhaps 2 from each genre.

At some point you will put these behind you, use pre-written libraries and graduate to an application.

</comment></comment><comment><USER42> An IRC bot is always fun to write.

</comment><comment><USER43> You should definitely Reimplement prolog. It doesn't matter what language you using.

</comment><comment><USER44> I always end up rewriting Tetris and a basic MUD in whatever language I'm learning.

</comment><comment><USER45> I a doing a large webscraping project as a first in Ruby now. Learning heaps.

</comment><comment><USER46> Side projects.

</comment><comment><USER47> The list will depend on the language, platform and your interests. Build something that interests you and challenges you a little but isn't too overwhelming.

<comment><USER48> What parent says, but to add to it here is a list I stumbled across which you may use for inspiration:

[https://github.com/karan/Projects](https://github.com/karan/Projects)

</comment></comment><comment><USER49> IMHO the best way to learn any language is to build its compiler.

<comment><USER50> Would you clarify what you mean?

Are you saying to compile the source of the compiler, or write a compiler for that language (in that language)

<comment><USER49> I mean, write a compiler for a reasonable subset of a language you're learning. You can use the language itself to do so, yet most languages are not necessarily designed for writing compilers, so it's ok to use something else instead.

This way you'll quickly understand the semantics of the language and will get an early exposure to its dark corners.</comment></comment></comment>


The freemium business model: giving away pays - <AUTHOR> http://buytaert.net/the-freemium-business-model-giving-away-pays

<comment><USER3> The questions I have while working on my project is when to introduce the mium in freemium.

(1) Would you be wise to introduce the premium version at launch with the free version if there is enough value, even without that established free base to leverage off?

(2) Should (being the emphasis here in refering to good business conduct). Should a business have paying customers when a product is in beta version and isn't yet completely tested against up and down times, bugs etc...?

(3) If one were to go the route of having free users before having paid users, should the free users have access to what may be removed and added to the premium release in the future, for the initial purpose of gauging whether there is interest for certain features over others?

To elaborate on that last concern. If users do get to use everything for testing purpose, am I going to get into one of those weired battles with community when certain things get shifted over (even if everyone was notified at the beginning that this would occur).

<comment><USER4> My own experience is with software that was free for a year before my first sale (though I made it available for sale pretty much near the start). So I did do what you are thinking. But I developed it entirely in public: the first version (released) took me 2 hours to write. This approach was great for countering my perfectionism.

(1) Yes. You don't need a free version to sell stuff. But what does "leveraged" mean in your case? If it's a network effect, where your offer has _no value_ unless there are already users (e.g. a dating site), you would need some way to build up users.

(2) _All_ products are incompletely tested... it's an opportunity to show customer service... and version 2. There's a question of degree here of course. You're right, you do have a chance to try it out on free users - although bugs are just as annoying for them as for mium/fee customers. Maybe the way to think about it is: are they paying for the _benefit_ you offer, or for the _absence of bugs_? People complain, but they still buy - because they know no-one is perfect. Provided you treat them with respect, they may even like you more because of it.

(3) People don't like it if you take something away, especially if they started to rely on it. It creates bad feeling. I think a free trial (time limited) will give you the info you need.

<comment><USER3> I can relate to the perfectionism syndrome. But the release early, release often theme seems not a good counter while going at paying users. Sometimes that early release simply isn't worth paying for yet, it may take several iterations to get to something that is worth a package fee. I agree all products are incomplete both in testing and in functionality and that should be used to temper perfectionism.

Though there seems to me a difference between releasing early to get people to use it, and releasing to get people to pay for it. The release early and often theme I tend to think should not be broadly applied to both.

Perfectionism aside...thanks for answering my questions.

<comment><USER4> _Sometimes that early release simply isn't worth paying for yet_

If so, no one buys it - no problem :-) (assuming they can evaluate it first, e.g. free trial).

 _Though there seems to me a difference between releasing early to get people to use it, and releasing to get people to pay for it._

I don't know. You could be right. But both require a _benefit_ to the user; and both exact a _cost_ from the user - of learning; time and effort of changing behaviour to integrate it into their life and apply to their problem; constraining other choices/products to integrate with the product (depending on what kind of product you have). It's natural to think _price_ is the cost of something - but it's simply not. (It's true though, that customers also think of it that way).

 _hehe_ I'm getting a bit of the answering-the-comment-while-being-edited syndrome :-) It's a bit disconcerting seeing from the other side.

</comment></comment></comment></comment><comment><USER5> Freemium is certainly a better model then "we'll figure it out later", but I think it is very dependent on specific markets. The reason I say this has a lot to do with my own project.

I'm working on software that builds and maintains business websites. Sorry for being vague, but I'd rather SHOW you guys when it's up. So in this case I think the freemium model will hurt my business and my customers, here's why:

No lead qualifying -

If you are targeting a specific niche having a free product encourage anyone and everyone to sign up. This drastically reduces the conversion rate. I know the argument here is one of marketing, but if a client signs up for a pet application and does not have a pet, is he really going to be an effective marketer? How many accounts have you set for free services you just wanted to "test out". For me I'd say about 20, and I've never been back since. I'd imagine they still have my accounts though.

No client incentive -

In my specific case my clients (businesses) will use the software to create a website. If the service is free, they essentially have no incentive, no motivation, and no time limit to proactively use the system. Consider the case where everyone had to pay the monthly fee up front, but came with a money back guarantee. "Did we not prove our product was useful? No problem, here's your money back". If a customer pays for your services, he definitely is going to spend time given it an authentic test run - his money is on the line!

Paying customers cover free versions?!

Again, depending on the product, and payment structure, your much more likely to generate more revenue from EXISTING customers, than you will be acquiring new ones. This is a very fundamental business/marketing principle.

Low efficiency -

If your business requires any type of customer support, the price for free jumps dramatically. Resources would be better spent servicing pre-qualified leads.

Paying customers are customers that value you. Doesn't that just sound like its a nice thing? I know we ought to work hard for our customers, but if you ENCOURAGE people to place no value in your service, you are asking for trouble no?

\</comment><comment></comment><comment></comment><comment></comment><comment>--

So seeing as how my business is not launched yet, these are all just theories in need of testing. They also, as I said, may or may not apply to certain industries and products. But overall I think its worth mentioning.

</comment><comment><USER4> How to enforce the division between free and premium?

I guess you choose a natural line, that doesn't need explicit enforcement - like 300 photos on flickr. There's no fuzziness about whether you have >300 photos or not, and the consequence of the older ones disappearing is gentle and non-punitive.

You can do the same thing with a software license, by having versions with different functionality - feature subset, capacity limits. Some companies have a "community" version that is free.

He's also talking about models where you benefit from the "free" users - <USER2> selling software, bug reports and feature requests are valuable information, for product quality and market needs.

One danger is that if you whet people's appetite with a free version, you can be priming them as fuel for a free/open source competitor! E.g. Photoshop _enabled_ The Gimp; Unix vendors _enabled_ Linux. This happens if they really need/want some feature in the premium version, but it's too expensive for them.

Maybe this concern doesn't apply to retail/consumer subscriptions because they aren't expensive; definitely not worthwhile anyone creating an open source competitor in the first place; and not targeting programmers (who could create a competitor).

</comment><comment><USER4> As a software vendor who wants to be benevolent, but not rip myself off, I really like this about Freemium: _do "good" and "well" at the same time_. (see links to pg's "be good" at the end)

But for selling software, if you were truly benevolent, wouldn't you give it all away for free? Denying people who can't pay reduces the good you are doing - doesn't it?

Maybe an answer is that there's nothing wrong when people pay - because then they _do_ get the value you created. It's only an issue when people cannot pay, and you deny them, because it's only in that case that your potential for doing good is unfulfilled.

I think the latter case only happens when (1) your prices are too high for the value particular users get from your software; or (2) too high for their wallet.

I think the solution to the first problem is to price your software (roughly) in proportion to the value customers get from it. E.g. "per seat" or "per server" or "volume-base" pricing does this. It's better to under-price than overprice (in reality, there's a huge range of values that customers get from a product, some get much more value from it than others - if you price too low, some get a fantastic bargain; too high, and you deny some).

For the second problem, some kind of charity version is appropriate, where you give it away to someone who just can't afford to pay for the value they would get from it. e.g. student versions. In economic theory, a loan would probably be appropriate; but a gift is nicer and simpler.

These problems become simple if your software actually helps people earn or save money themselves - then it's a non-issue that they can and should pay for it.

essay: <http://paulgraham.com/good.html>

video: [http://www.omnisio.com/startupschool08/paul-graham-at- startu...](http://www.omnisio.com/startupschool08/paul-graham-at-startup- school-08))

<comment><USER6> Balsamiq wrote a good piece about what to do for case #2:

<http://www.balsamiq.com/blog/?p=382>

<comment><USER4> HN discussion thereof: <http://news.ycombinator.com/item?id=337821>

</comment></comment></comment><comment><USER6> He says that Open Source + Freemium provides marketing + development, but that you need a premium product that pays the bills. Similar to my argument here:

[http://www.pchristensen.com/blog/articles/freemium-isnt-a- bu...](http://www.pchristensen.com/blog/articles/freemium-isnt-a-business- model-its-a-marketing-and-trust-strategy/)

</comment><comment><USER7> Good idea, though I'm digging Chris Anderson's journey through freemium on his blog.

</comment><comment><USER8> What do you do if the users abandon you?

<comment><USER9> Improve your product. If they're not 'sticky' you're doing something wrong. That said some things will always be high churn - dating sites, house purchase sites etc - So you'd want to maximize the revenue as much as possible while you have the user.</comment></comment>


David Foster Wallace's commencement address. Kenyon College (2005) - <AUTHOR> http://moreintelligentlife.com/story/david-foster-wallace-in-his-own-words

<comment><AUTHOR> I didn't know him when he was alive. But when I read this speech for the first time this week, I felt for the first time that someone really understood (and felt) how I feel in a very deep level.

I know the message of the speech may seem very simple (introspection) and delivered in a superficial way, but I think it goes much deeper than introspection or just "being in the present".

Sometimes when I am in a crowded place (being in NY, thats not very hard), I just stop doing whatever I am doing and just look around me at everyone and see their faces and their expressions and try to understand (speculate) their life. I get very conscious of my existence, at that very moment, instead of mindlessly rushing like a hungry animal I just pause and stop doing whatever I am doing, no matter how important it is, and try to reflect on my present moment and all the people around me.

This line really resonate with my feeling, "It is unimaginably hard to do this, to stay conscious and alive in the adult world day in and day out."

Its kind of hard to describe. Anyone else feels like that?</comment>


Edward Snowden and the disaster of privatization - <AUTHOR> http://www.reuters.com/article/2013/07/11/us-cohen-outsourcing-idUSBRE96A0T620130711

<comment><USER2> As usual: if you want to see the real reason - follow the money.</comment>


Intel CEO Bob Swan Explains Delay in Improving Chips - <AUTHOR> https://fortune.com/2019/07/16/intel-ceo-bob-swan <comment><USER2> This sounds like that excuse you can give in an interview when they ask you what's your biggest flaw and you say "I'm a perfectionist," or "I work too much," etc.</comment>


Has GitHub been down more since its acquisition by Microsoft? - <AUTHOR> https://nimbleindustries.io/2020/06/04/has-github-been-down-more-since-its-acquisition-by-microsoft/ <comment><USER2> GitHub is a _lot_ more enticing now it has free private repos and the launch of Actions. I suspect they're a lot busier than they were before Microsoft. More features also naturally means more status tickets.

</comment><comment><USER3> Has nimbleindustries.io been down more since Github's acquisition by Microsoft?

<comment><USER4> Sorry... we probably should have put a CDN in front of our humble Linode box earlier. Here's a cache link:

[https://web.archive.org/web/20200629103627/https://nimbleind...](https://web.archive.org/web/20200629103627/https://nimbleindustries.io/2020/06/04/has- github-been-down-more-since-its-acquisition-by-microsoft/)

Edit: Cloudflare seems to be working now. Wow, that was really easy to setup.

<comment><USER3> :-) Cloudflare is amazing, yes. Everyone should use it by default, I say.

<comment><USER5> Man, I really want to say we don't because of the implications of too centralised an internet, but there's no way it isn't a transitive dependency.

<comment><USER6> What the hell are you building that there has to be Cloudflare in the dependency tree at some point?

<comment><USER7> Any javascript CDN?

<comment><USER8> I'm sure there are more Node.js modules for that than you can count.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Taking the numbers at their face value this is a good exercise in some text book statistical test of hypothesis.

Incidents: Before 89. After 126. What is the chance of this happening if the 'rate' of occurrence has not changed ?

Assuming an unknown but constant Poisson rate, we get the probability of observing what has been observed to be 0.00225.

A fortuitous thing about this test is that one does not need to know what that unknown constant rate is.

<comment><USER10> Maybe Github has grown significantly since then. More complexity, more down time.

<comment><USER11> Well, Github introduced way more new features since Microsoft took over.

</comment></comment></comment><comment><USER12> It could also mean that they are more active and creating more chaos due to more changes.

shameless and useless advertising.

<comment><USER13> On my team our downtime is very closely correlated with how much we're working and changing the product. I'd be surprised if GitHub is much different.

<comment><USER14> exactly. Before M$ there wasn't much product movement at Github :/

<comment><USER13> I think they got out of the rut before Microsoft's involvement, but I suspect MS has allowed them to accelerate a lot of it with more investment and a more defined direction.

I've heard that for a number of years the Product org at GitHub essentially considered the product "finished", and that it did not need more features. Things like the rise of GitLab and the "Dear GitHub" letter, plus I believe a change of leadership, helped that completely turn around. Obviously that took time to yield benefits, so I think they've been in a much better place for quite a few years now.

<comment><USER7> > and a more defined direction

Except for Atom :(

</comment></comment></comment></comment></comment><comment><USER15> It's easy to see from the uptime history [1] that there have been many more incidents in April-June than in January-April.

Don't know if that has anything to do with the Microsoft acquisition, but it is concerning.

[1] [https://www.githubstatus.com/uptime?page=1](https://www.githubstatus.com/uptime?page=1)

<comment><USER16> They're still averaging 99.81% up-time over the last three months. This means they have been down for a total of 4 hours out of 90 days. I don't think it's all that concerning.

<comment><USER17> The gold standard here is 5 9s, not 2.

They have paying customers that are being inconvenienced by this. We lost time over this multiple times in the last few weeks.

So, not good. IMHO they are having some major issues with their release process that they need to address. Standards have slipped there; they used to be better at this.

<comment><USER3> The numbers on Github Enterprise might be different. They probably roll out changes to the free/$4 per month Github first.

<comment><USER18> Isn't enterprise the self-hosted solution?

<comment><USER19> I believe Enterprise has a self-hosted option, and you can have Enterprise without the self-hosting.

</comment></comment></comment></comment></comment></comment><comment><USER20> This is a thinly veiled advert, and tells you literally nothing concrete, apart from Github's status page is updated more. The article even admits this!

</comment><comment><USER21> Mirror on wayback machine: [https://web.archive.org/web/20200629103627/https://nimbleind...](https://web.archive.org/web/20200629103627/https://nimbleindustries.io/2020/06/04/has- github-been-down-more-since-its-acquisition-by-microsoft/)

</comment><comment><USER22> Ironically this link is down for me.

<comment><USER4> Author here, just put a CDN in front of the blog so maybe that will help.

<comment><USER23> CDN's not working i'm afraid (SSL error, 403 forbidden if you ignore it)

</comment></comment></comment><comment><USER24> Ironically, Firefox tells me to stay away from your website. Which, I will.

update: the website is back and well now from my end.

<comment><USER4> I can't reproduce, would you mind emailing me a screenshot of this? (I'm the author) colin at any of the domains in my bio.

<comment><USER24> I would have happily complied. On a welcome note, however, the backend changes made after the initial hickups brought the website back on its feet.

</comment></comment></comment><comment><USER25> Has anyone noticed their search has gotten worse? I sometimes will search for some code that I know exists in a repo, but it gives no results, and when searching a little later it shows them as I expect.

We have Github enterprise, and Slack notifications when Github has any issues. Nearly every week there's a problem, sometimes it's resolved in a few minutes, other times it goes for an hour or so. I've pondered the question if there has been more outages since the MS acquisition and in my experience that's a hard yes.

</comment><comment><USER26> What I don't get is how they can be down for hours on end. If I make a deploy that turns out to be buggy, I'll roll my site back to a stable previous version within minutes. Sure, that's not always possible if I've made incompatible database schema changes, but in my experience those are very, very rare (i.e. I almost always add db columns, and only rarely delete or rename columns - and when I do, I do so after those columns haven't been in use for a while).

<comment><USER27> I'm sure these down times are more about infrastructure problems than just database updates and I'm also sure that this infrastructure is a little more complexe than your site.

<comment><USER26> I'm sure their deployment process is way more complex than mine. I'm also sure that unlike me, they have engineers dedicated to managing the complexity. GitHub is a company that has blogged about how easy they have made deployment and how they deploy many times a day. I don't believe there are any compelling reasons why that ease of deployment shouldn't also extend to re-deploying previous versions of their service, so they don't need to leave a bad version up for hours.

<comment><USER28> I think you're missing the point a bit. Not all changes are simple code deploys. They take time to diagnose, mitigate and fix. This is especially true when you have a lot of services that talk to each other, working on infrastructure that can support so many services and users.

</comment></comment></comment></comment><comment><USER29> Independent of whether it's been down more frequently since the acquisition, I find Github's status page reporting to be lacking. It's also quite generous with definitions of outages and downtime.

For example, on June 22nd they had an issue whereby half of their nameservers were responding with an empty answer for queries for github.com. A very nice explanation is here: [https://news.ycombinator.com/item?id=23605409](https://news.ycombinator.com/item?id=23605409). So for roughly half of users (including myself) this would have manifested itself as a complete outage. It also lasted for a good couple of hours. Yet on their status page it's listed as a 46 minute degradation only.

So relying on their status page reporting to draw conclusions about availability (as Statusgator seems to) will mean that an overly optimistic picture of availability is presented.

</comment><comment><USER30> I really wish there was an option to decouple the core git functionality from the 'fancy' stuff (PRs, actions, issues) etc. When your CI pipeline runs directly from your git repository, not being able to commit/merge means you cannot release to production.

For binary artifacts, you can get around dependencies on a single provider by mirroring, but because git is mutable, you can't just mirror the repo and allow changes there, because you need the same permissions, ssh keys etc. for the repositories and because changes will need to be synced back to the source repository. You might as well not use Github in the first place and self-host (with all the problems that entails).

As far as I know, none of the major git providers offer this - I've experienced outages with GitLab, Bitbucket and GitHub that all affected the production environment (luckily, it's never been critical so far).

<comment><USER31> That is exactly how GitHub is architectured. There have been a lot of time I've been to able to push/pull but GitHub pages was down or their web backend was down.

Bitbucket is the worst in this regard.

</comment></comment><comment><USER32> Definitelly by my perosnal experience.

Part of it might be due to covid, but it started happening before that.

On the positive side, github had tone of changes since then, all seem to be good ones, so its understandable that it has more problems now as well.

</comment><comment><USER33> A number of the staff who left GitHub in protest of the ICE contract were senior SRE. I wonder if the data says anything about the dates of their departures...

</comment><comment><USER34> Looking at the chart, there were more warns but fewer downtimes so I'd say no. There was one giant downtime that happened, but I don't know why it happened so it's hard to say if there was a cause relevant to the acquisition. The other downtimes that happened seemed to be slightly longer in duration than before.

</comment><comment><USER35> I'm more inclined to believe this is due to the increased reporting and attention to the status rather than an actual increase in downtime.

However, I have no hard data to suggest that, only my experience as someone who's had to manage and maintain reports like this.

</comment><comment><USER36> Anyone from GH willing to share - anonymously maybe - some insights? I really find the lack of post-mortems from GitHub outages a bit... weird given GH audience. I think all we dev could learn from a properly written public GH post-mortem.

<comment><USER37> It´s Microsoft, when has Microsoft shared a downtime postmortem?

</comment></comment><comment><USER38> Personally I think it is connected to adding more features to GitHub. Microsoft is rolling out more and more small but also big changes, and as everyone knows, this always can have a few minutes downtime for each update.

</comment><comment><USER39> This analysis has a significant comparability problem because of added features. The core git-repository service is almost never down, but GitHub Actions has had a lot of reliability problems (you can see this clearly on the status page). But GitHub Actions is new, so it skews the recent availability problems up. Unfortunately, as the post notes, the detailed status information is _also_ new, so it's not really possible to analyze the data accurately.

</comment><comment><USER40> Irony aside, there is some degree of credibility lost when offering a critical opinion on availability and your cloud hosted site throws a 502

</comment><comment><USER41> I have zero evidence but I would not be surprised if they are busy absorbing Azure Devops into GitHub and that's causing some hiccups.

</comment><comment><USER42> This was prompted by the latest "Github is down" (now transformed to "Github was down" by the arrow of time):

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

</comment><comment><USER43> Github is evolving pretty rapidly than I thought it would. I like their new changes. Deep underneath it being with Microsoft just reminds me of oracle/google debacle. Definitely discourages big projects to be hosted there.

</comment><comment><USER44> There's already one news on front page [https://news.ycombinator.com/item?id=23675864](https://news.ycombinator.com/item?id=23675864)

Can we merge them? Mods

<comment><USER45> > There's already one news on front page

And the comment that is currently at/near the top and mostly discussed happens to link to exactly this site.

</comment></comment><comment><USER46> I mean makes sense. They are probably migrating their infrastructure over to Microsoft's and such.

Disclaimer: I don't work at MS so no clue, but have been part of acquisitions

<comment><USER47> I'm sure MS is super uncomfortable with GitHub's AWS bill. I've just assumed they're fast-tracking a migration to Azure

</comment></comment><comment><USER48> Yeah really. I feel the same thing. Can't comment anything right now and Ive been trying for the past hour. It dies every three weeks.

</comment><comment><USER49> How has traffic/attacks changed since acquisition? Microsoft name surely gives them an even larger target on their back.

</comment><comment><USER50> The charts and diagrams in that post are really nice, how did you make them?

</comment><comment><USER51> If it has, what is p?

</comment><comment><USER52> Any chance that prior to acquisition there was more focus on stability —- because it was assumed there would be a buyer —- than upgrading to the latest version of Rails and adding features?

</comment><comment><USER53> maybe this down caused by cloud migration from AWS to Azure?

</comment><comment><USER54> tl;dr yes - and an exception to Betteridge's law!!! [https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headline...](https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines)

<comment><USER55> tl;dr maybe - is that an exception?

</comment></comment><comment><USER56> Anecdotally, yes. I almost never saw internal error pages before, now I've been seeing them every week for a few weeks. Some people need to be fired.

</comment><comment><USER57> What's really wonderful is when Github goes down I get a flurry of people broadcasting on Slack channels that they can't work and all their builds are failing, and I'm wondering What they want me to do about it. Should I get out and push? Call Bill Gates? Tweet Trump? When Github doesn't work that's your excuse to go get coffee, grab a pint, browse Hacker News, etc. - people should be happy with GitHub goes down. (Or self-host gitea and work from that if your so determined to keep on)

</comment><comment><USER58> They are porting things over to ASP.NET on Azure.

<comment><USER51> If the implication is that asp.net or Azure are unreliable then think again

</comment></comment><comment><USER59> Yes.

Last time it was down was just 6 days ago: [0]

I think its time to look for alternatives or frankly in the long term, follow what some open-source orgs are doing and self-host instead.

[0] [https://news.ycombinator.com/item?id=23604944](https://news.ycombinator.com/item?id=23604944)

</comment><comment><USER60> Both the link and github comments are down for me too; I am unsure whether it has been down more since the acquisition but this is unacceptable to me. I have been trying to post a comment to an issue i made for the last few hours and every time it says "You can't comment at this time" which I find very misleading. It should say "Sorry, our system has a problem, please try again later". The implication of the current message is that my permissions are wrong or something else has happened.

This has bumped self-hosting all my repositories much higher up my list.</comment>


Not Just Mike Pence. Americans Are Wary of Being Alone with the Opposite Sex - <AUTHOR> https://mobile.nytimes.com/2017/07/01/upshot/members-of-the-opposite-sex-at-work-gender-study.html <comment><USER2> When I was in college I was a team lead at Best Buy for a while. I was in charge of a mostly female team of cashiers, and I was alone with them in the cash office frequently while they counted their tills.

I made one of the cashiers mad by reprimanding her, and she decided to get back at me by claiming that I grabbed her and shook her while we were in the cash office.

I never touched her, and luckily we still had video from the day she claimed it happened. After my manager reviewed the tape with her, it was clear she was lying, so she dropped her claim.

Despite what we might wish, society treats men and women differently, and women are viewed as being particularly vulnerable. If a man had accused me of something similar, no one would have cared. When a woman accused me, without that video, I would have been fired.

It's a complex situation. In many cases, people don't believe women when they really are assaulted, or they're force to share the blame when they're blameless. But in other cases the pendulum swings too far in the opposite direction. Like many things it's primarily a function of the relative power of the victim and the accuser.

A powerful man can get away with harassing much less powerful women. But a relatively powerless man will quickly find himself in a world of hurt with just the hint of an allegation. A company doesn't want to fire their CEO without hard proof (or at least a lot of bad press), but they'll drop a low level employee quick just to avoid the slight possibility of looking like they aren't taking sexual harassment seriously.

I'm not going to let that experience keep me from being alone with a women at work--I don't think I'm very likely to run into another women like that again and avoiding being alone with a women in a modern workplace is just too difficult. But I do understand the rationale driving people to be cautious.

I do want to make it clear that I think that the vast majority of times when a women reports assault or harassment, they're telling the truth. But I do think that in some situations where we've started to completely shift the burden of proof to the accused (some employers, certain colleges etc..), we run the risk of creating perverse incentives and punishing an awful lot of innocent people.

<comment><USER3> Your point about having video evidence brings up an interesting question for me, how does the HN community generally feel about pervasive workplace surveillance? It seems based on some of the articles I've read about harassment, that many times people will only feel comfortable coming forward when they have hard evidence such as texts, emails, video, etc against the perpetrators.

Seeing as we, in the US at least, seem to be fairly comfortable with having a pervasive surveillance state(lets ignore for a second whether this is rational, I personally believe the pendulum has swung way too far to the side of surveillance) due to the threat of terrorism, maybe we should also embrace this in our professional lives.

I personally think harassment in the workplace probably affects the day to day lives of more Americans than terrorism does. Is it time to institute these kinds of surveillance practices in the workplace? Maybe have 24 hour video/audio surveillance at work, disallow off work socializing between employees holding differing levels of seniority, only allow approved, and recorded, methods of communication?

For the record, I'm not sure how I would feel about such things, I'm leaning towards it being fraught with all sorts of negative unintended consequences, so if its a stupid idea please let me know, I'm simply curious to hear some opinions.

Edited for clarity.

<comment><USER4> I think having constant surveillance can have a negative impact on work life. I know that when discussions moved to Slack at my work place there was a very different way to communicate due to us knowing our conversations may be read. Not that there were any instances of harassment, but sometimes it can be relieving to tell a coworker that your boss is a dick. It can help get feelings out before they build up.

I do see some value in surveillance, such as the GP's instance (whether or not it's true -- it's a reasonably plausible story). I, however, don't think that constant surveillance that upper management has free reign over is good. I did have an idea about this. Is there a way to have a file (such as video/audio) encrypted in such a way that it can only be decrypted with multiple keys? In GP's case, GP and the employee that made the accusation? That way you can still feel safe(-ish) that your small slacking off won't risk your job, while allowing for evidence in serious situations such as GP's.

<comment><USER5> There's also a difference between saving different levels of stuff within Slack. It can go all the way to saving everything including private channels and direct messages: [https://get.slack.help/hc/en- us/articles/220548947-Apply-for...](https://get.slack.help/hc/en- us/articles/220548947-Apply-for-Compliance-Exports) or just for channels: [https://get.slack.help/hc/en-us/articles/203457187-Custom- me...](https://get.slack.help/hc/en-us/articles/203457187-Custom-message-and- file-retention)

Make sure you know who's reading your DMs if you use Slack to e.g. complain about your manager. As someone able to make these decisions, make sure you know who has access and audit that. The story of the manager firing someone for performance reasons when the real reason is that they overheard something they didn't like is as old as the hills.

</comment></comment></comment></comment><comment><USER6> I'm really amazed that the data is that close for "having a work meeting." (25% of women say inappropriate vs 22% of men)

That's a lot higher than I was expecting. It makes me wonder why as well. Is it just "inappropriate" (what I imagine Mike Pence thinks)? Does one side think the other side is trying to do something inappropriate or is trying to lead into something?

At least in many jobs I've had, 1:1's were basically required time (though, not usually productive time). It's crazy thinking so many working relationships people might be on edge or think of as inappropriate.

Of course, the source of the data is "registered voters", not people who have jobs.

<comment><USER7> For the situations where the manager and the managed are of the opposite sex and one or both are aware of their own ethical and spiritual vulnerabilities maybe it'd be a good idea to have a 2:1 or 1:2 instead of a 1:1.

<comment><USER6> I hope you're joking, but if you're not, that sounds like a horrible idea to me.

Being a woman, and having had 1:1's with male managers for pretty much my entire tech career, I've never heard of this happening. I don't know what spiritual vulnerabilities you are talking about, but in terms of ethics if you can't work with a female employee, you shouldn't be a manager.

You're basically telling the person that you can't trust them enough to be alone with and honestly communicate with them when times are good. What happens when things get difficult?

<comment><USER8> It's not really about trust. It's just business and mutual protection.

I'm not sure which way to feel on the issue, but it's hard to deny that the recently reported harassment happened while both the victim and the abuser were alone together, or shared a private channel of communication. If you eliminate this aspect, you might eliminate the harassment along with it. That seems like a positive outcome.

In practice, that may not be achievable, or it might be a bad idea for other reasons. But anything that results in a positive impact seems worth considering.

<comment><USER6> If you're worried about mutual protection, it would seem that you don't trust the person.

You also seem to imply that harassment is more about having opportunities to harass, rather than a person wanting to commit harassment and waiting for the right opportunity. If someone wants to do something, I figure they could be very patient in waiting for their time.

Also, how would you know until everyone is already uncomfortable? The only way it sounds like to fix that is to trust no one, ever, and have everyone travel in groups of at least 3?

<comment><USER9> Your conclusion sounds completely absurd, but I agree with you. In fact, even walking around in groups of 3 is dangerous if you keep talking because what you said might be interpreted as offensive and all 3 people would hear it.

I guess I don't understand what you would propose as a solution...

Current situation is obviously not working.

Right now the following is happening:

1) Ladies get harassed by those with more power because it's a way to get dates. They could potentially lose their job/opportunity if they disagree to go on a date. This leads to 2.

2) Men get false accusations because women do not currently have to provide proof for low rank employee harassment cases.

3) Culture is changing in such a way that more and more things are considered offensive to say.

4) People are choosing to have fewer 1-on-1 (or at all) interactions with coworkers because of these issues. It's unfair to discriminate against just some coworkers because you might suspect they will be trouble. As a result, you might be forced to not have 1-on-1s. Might be forced to give up all non- strictly-work-related conversations with everyone at work.

At my current work, all of us are now walking as a group to lunch in silence. It is extremely awkward but it seems like this is the only possible outcome of such a system.

I guess my own current solution is to leave US/Bay Area for basically any other country. I rather not deal with these dangers since I want to have friends at work and any non-work related conversation might be considered offensive by someone in a group of 20 or so people.

<comment><USER5> Legitimately curious: if you walk to lunch in silence, why even go to lunch together? What would you talk about? Purely work? I'm sorry for you, that sounds like a really unfun workplace with bad culture if it's as bad as you say. Why stay there if it's that bad?

<comment><USER9> It takes a few months to find another gig. Also the main person complaining is about to leave.

Hoping things will go back to normal after that.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Here in Japan I regularly hear about women or families saying Japan isn't as safe as it appears. I never understood it, because the data doesn't back it up, and I've never experienced any trouble in nearly 5 years here.

I don't have a TV. When I catch TV though, the news programs can harp on a minor crime here in Tokyo like a convenience store robbery for a good thiry minutes. These friends watch a lot of TV. I think media narratives drive these paranoias.

<comment><USER11> I live in Phnom Penh and I'd say the crime here is about as bad as an average larger American city, but in a different way. There is more petty crime, especially theft. I've lived here 4 years and never had any problem really, but I see visitors and expats alike getting robbed frequently. I've avoided it because I don't carry anything worth stealing and I am not the type of person that thieves target.

<comment><USER12> How do you avoid being the type of person a thief targets? Is it a brawny/threatening look, or just not using an iPhone in public?

<comment><USER11> Both if possible. Don't look wealthy, do look like you can defend yourself, being male helps, being young helps. It's unfortunate, but there are reasons that I don't get messed with ever and yet other people set foot off the plane and are robbed mere hours later (my uncle for example, who visited me in Phnom Penh).

I don't mean to blame anyone for being robbed, but being a little clueless and careless is definitely one of the main causes too. People forget that the cost of a new iPhone is almost the same as the average yearly wage in Cambodia. It's like seeing someone walking in a big US city with 20,000$ in hand, from the thief's perspective.

Cambodia is a very nice place in general though.

<comment><USER13> > People forget that the cost of a new iPhone is almost the same as the > average yearly wage in Cambodia.

Good point!

From a thieves perspective it is probably not just the value of the visible goods - it's also about the arrogance such behavior exhibits - people who show off kind of deserve to get a reality check.

</comment></comment></comment></comment></comment><comment><USER14> It's a cultural issue with Americans. There seems to be a belief there that equality is not really equality but a battle of the genders imo. Women and men alike obsess over the differences and have very traditional dating structures/marriages. Gender equality in Europe makes the states look like a joke

<comment><USER15> Hit the nail on the head. Americans are in constant battle, whether sex, sexual orientation, race, religion, etc. It's not as 'equal' as it seems, and if it is, it's because persons go out of their way to cater to those groups. It would be nicer just to see them no differently at all, but I digress.

<comment><USER9> > just to see them no differently at all

I agree but you can't say this sentiment out loud in some US big tech companies. In fact, saying it out loud may lead to social outrage + job loss + career suicide.

A closely related issue to the main one being discussed here.

</comment></comment></comment><comment><USER16> What are people so uptight about?

Not that I understand why, but it makes some sense if religious people are somehow shy to that, but atheists?

Are people afraid of perception or afraid of misinterpretation or afraid physically, are there that many unhinged people out there?

You can totally make friends with people of the same sex you are generally sexually attracted to and it does not mean or have to end up in a weird uncomfortable moment. Just be people. Think how you made friends pre-puberty. You just went and talked.

<comment><USER17> I'll speak up with an example from a man's perspective; it has nothing to do with attraction or religion, it's just not worth the risk.

If I'm one-on-one with a woman and a misunderstanding makes her feel uncomfortable or threatened and she accuses me of misconduct or sexual harassment I'm at an enormous disadvantage without any witnesses. When even being accused could be career ending it's best to bring someone else along.

I have absolutely no problem going one-on-one with my friends who are women but I can't say the same for strictly co-workers.

<comment><USER16> I understand your PoV. I would say it would be extremely rare for a woman (or man) to make baseless accusations from uncertain interpretations. People who bring forward accusations are typically people who've had the same untoward thing done to them repeatedly.

That said, one has to acknowledge there are genuinely malicious people --but they typically have a pattern and it will not be their first time making false accusations.

<comment><USER18> >> People who bring forward accusations are typically people who've had the same untoward thing done to them repeatedly.

Sounds like you've already pre-inclined towards a guilty party then, before you even heard evidence from both sides. And if there is no evidence, the man is in a world of trouble.

I have personally witnessed a man in the office be fired for "sexual harassment" shortly after escalating an accounting audit issue. Convenient timing and very effective way of dealing with an accounting issue.

<comment><USER16> I don't doubt that can happen --there are vindictive, retributive people out there. That kind of person would not need a 1:1 or drive home, etc., to bring forward an accusation.

<comment><USER19> This is true, but it would be more difficult for the mud to stick if it hard for that person to prove you spent large amounts of time alone with them.

note: I don't believe that many people would be vindictive like that, but the impact of such an accusation is so large means that even a very small chance of it happening is something worth protecting oneself against.

<comment><USER18> You are right, most people are not like that. How many people are? 1%? 2%? 0.5%? I work with hundreds of people, we have dozens of meetings a month, we might meet with over a thousand people a year in a large company.

Not throw in tough situations. People trying to cut legal/ethical/accounting corners to make their numbers. People hoping not to get caught. People doing whatever they need to to prevent getting fired. People trying not to be in the bottom 10% (and thus let go.) In the context of all this -- yes, people start using every tactic and social weapon in their toolkit. It takes 1 accusation and you are done.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> I wrote this when the Pence story broke in March.

>>>>>>>>>

I wanted to write this yesterday, but thankfully I didn't, because Jia Tolentino did a much better job than I would have in the New Yorker.

[http://www.newyorker.com/culture/jia-tolentino/mike- pences-m...](http://www.newyorker.com/culture/jia-tolentino/mike-pences- marriage-and-the-beliefs-that-keep-women-from-power)

What bothers me about Pence's "no meals alone with women who aren't my wife" and "no working late with female aides" rules isn't that he's trying to protect women from himself. He rightly understands that he's a powerful man, and many women have been harmed, sexually or otherwise, by people remarkably like him. Kudos to Mike Pence for getting that, even if he also doesn't get that many men have been harmed in just the same way.

What bothers me is that he (apparently) pays no heed to the question of how to protect women from himself while still ensuring they can have equitable careers. "You go home, honey; Jack will stay and help me" is saying that women and men have different roles to play in Pence's staff, and that's quintessential sexism (and may be illegal). And as the article points out, "no successful woman could ever abide by [Pence's no-meals-alone rule]."

Anyway this article frames the issue really well.

<comment><USER21> If it's done properly, there are alternatives. Instead of having drinks one- on-one, you invite a mutual friend, or you go for lunch, coffee, or a jog. I don't think these alternatives are natural to most people, but I do think they can be taught. In good organizations, they are.

</comment></comment><comment><AUTHOR> There are two factors at play here:

1\. General religiously-driven norms, which are shifting in the US (e.g., VP Pence)

2\. Concern, or overly-cautious / over-concern over what happened last week with Binary Capital. Clearly there is a middle ground between the frat-house that Binary Capital was and the monastery environment VP Pence might suggest.

</comment><comment><USER22> I think people might underestimate the religious side to this. I'm Dutch, and the vast majority of Dutch Evangelical pastors, elders, or youth leaders avoided meeting church members in a 1-on-1 situation across gender.

There are some obvious reasons for this, like false accusations by the many less-than-stable members, as well as the therapeutic nature of many meetings (rife with possible line-crossing from both sides, psychologically).

Less obvious reasons would include a more fundamental belief in the 'sinful' nature of the flesh. Again, the vast majority of Evangelical leaders I know strongly believe that even the best of people can be tempted into sinful acts, and a pragmatic solution is to avoid the temptation in the first place.

I might be wrong, but I get the impression that society in the USA, on the whole, and even now, leans a bit more toward puritanical and/or Evangeical beliefs, or at the very least they're part of mainstream thought. If true, it could explain how so many Americans are wary of being alone with the opposite sex.

For example, I find that in my Western European surroundings casual hookups seem much more part of the day to day fabric than they seem to be to my American friends. It strikes me as not unreasonable to conclude that if casual sex is more acceptable here than in the USA (publicly, anyways), what constitutes crossing the boundaries of propriety in the USA might not be considered in the same way over here.

Specifically, I've worked in more than one relatively boring, conservative corporations where at the bigger parties various people 'hooked up' with various other people, some of them involving clear power-discrepancies. Nobody batted an eye and the whole thing seemed to be a 'what happens in vegas' type of thing, warranting some juicy gossip at most.

I'm not saying that this is how things should be, to be clear, just that generally my impression is that the USA is generally more uptight (best word I can think of, but I don't mean it disparagingly) about these things.

</comment><comment><USER23> I've never had that thought or known anyone else. What states are those? There's gotta be a major difference between areas. In my area, if anything, meeting with the opposite sex can insinuate something.

</comment><comment><USER24> > _When he needs to meet with women at work or his church, he makes sure doors > are left open and another person is present._

Saint-Simon, the memorialist descibing life at the court of Louis XIV of France in the late 17th century, tells how, when the King had a meeting with his current mistress, he would leave all doors open so that no one would wonder about what was going on.

The problem was, when the King met with other women (or men) he would have the doors closed, so the fact that the doors were open was a tell! ;-)

</comment><comment><USER21> Two surprises about this article: 1 - 25% of women think it's inappropriate to have a work meeting with a man. 2 - 41% of men think it's appropriate to have a drink one-on-one with a women.

<comment><USER25> Yeah the drink thing is definitely inappropriate.

<comment><USER26> This article and thread have been fascinating to me. I am from NZ, so maybe this is a US-cultural thing?

The idea that getting a drink with a women-not-your-spouse being inappropriate is so crazy and weird to me! Do you not have female friends? How do you spend time with them?

<comment><USER2> If you're married or in a relationship in NZ, your spouse is fine with you getting drunk alone with someone of the opposite sex?

<comment><USER26> You can't drink without getting drunk?

(To answer your main question though: I'm OK with it, maybe that's just me though. I know we are a small nation but I don't know _everyone_.)

Edit: Since we're on the subject, I just spent a week living in an AirBNB apartment with a female work colleague (work meetup in a different city). Just us two. Before this thread I didn't even think that was weird. Americans: is that weird?

<comment><USER2> Bad phrasing. Do you think the average New Zealander is ok with their spouse going out for drinks alone with someone of the opposite sex?

I'm pretty sure that most Americans wouldn't like that, and I think jealousy and insecurity are pretty common among humans of all countries.

About the AirBNB thing--it's pretty context dependant. If you are both single and working for a small startup and you did it voluntarily, I think most Most Americans under 40 wouldn't find it too weird.

If you're working for a large company, or your startup made you share, I think most of us would think it's strange.

If you're in relationships, I don't know very many people who would be fine with their spouse/SO doing it.

<comment><USER26> So I _think_ they would be, but yeah, I can only really speak for myself. I have rolled back through my memory, and I have had drinks with women alone before, though not much, but probably as many times as I've had drinks with guys alone before.

I just asked my SO and she is OK with it, and thinks people here (we live in London now) would think similarly.

> I think jealousy and insecurity are pretty common among humans of all > countries.

So right, this is interesting! To be clear: if my SO went out for drinks with a guy from work I probably _would_ be jealous and insecure about it, at least a little bit. But that's _my_ failing, not hers, and is for me to get over. It's not fair for me to stop her from chilling out with a friend just because said friend is a dude.

So maybe that's the main difference?

<comment><USER2> The thing is most people realize that their SO would be bothered by it, and won't do it.

He/or she doesn't have to freak out and demand you stop to be "not OK with it". You clearly wouldn't be OK with your SO doing this despite saying you are, and she'd likely pick up on your feelings.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Mike Pence, Americans and pretty much all of humanity up until the last two generations or so (in most cultures).

</comment><comment><USER28> Sex is one of the greatest things both now and in the past of bringing out stupid behavior in people. The number of people who have destroyed their wealth, jobs, and/or reputations is staggering. It is not just of matter of more training or consequences. Even with such punishment as being impaled alive [http://www.executedtoday.com/2017/03/15/1718-stepan- glebov-l...](http://www.executedtoday.com/2017/03/15/1718-stepan-glebov-lover- of-the-tsarina/)

or with the threat of eternal damnation, people still had sexual relationships that were deemed illicit.

I doubt our worst punishments will come anywhere close to that which was inflicted in the past, and if punishments and stigma in the past could not control sex, I doubt they will now. The underlying issue is that sex is driven by the limbic brain and is not entirely susceptible to reason. This is a hard problem and one that society will struggle with for a long time.

<comment><USER29> As dumb as it is, it's also the only reason you are alive. Some people see their main goal in life as to find the best partner they can.

Sex is closely related IMO.

<comment><USER30> > it's also the only reason you are alive

Yep, sex is the recursive part of a function that is life.

<comment><USER31> Seems like a function without a purpose.

<comment><USER30> That's not true. It has a recursive purpose. Life has to exist in order to bring more life into existence. It's the struggle of order vs. entropy.

<comment><USER31> > It has a recursive purpose. Life has to exist in order to bring more life > into existence.

Can't say I'm a fan of this.

</comment></comment></comment></comment></comment></comment><comment><USER32> As a man in a position of power women will sexually harass you in a "good way".

To a religious conservative, i.e. Pence, these women are just like drug pushers.

</comment><comment><USER33> Wasn't the problem less about his personal dining habits, and more about cutting off female lobbyists, given his role in politics? No-one cares if Bob down the road is uncomfortable eating 1:1 with a woman not his wife, because he's not a political powerbroker.</comment>


The red and green specialists: why human colour vision is so odd - <AUTHOR> https://aeon.co/amp/ideas/the-red-and-green-specialists-why-human-colour-vision-is-so-odd <comment><USER2> > Instead of having good vision, dogs, horses, mice, antelope – in fact, most > mammals generally – have long damp snouts that they use to sniff things > with. It is we humans, and apes and monkeys, who are different.

What a load of bull. Dogs and wolves eyes are facing forward, as do cats', owls', jumping spiders' main eyes, and generally those of most hunting predators. Eyes facing forward is good for depth perception and judging speeds and thus hunting, a bigger field of view is good for detecting threats from any and all directions and thus for prey animals. The location of the eyes depends mainly on where the animals sits on the predator<->prey scale. Apes tend to be apex predators, thus the predator eye location.

<comment><USER3> Dog have worse resolution, color perception and depth perception than humans. [http://servicedogcentral.org/content/node/391](http://servicedogcentral.org/content/node/391)

<comment><USER2> I was contesting the statement that forward-facing eyes somehow make us special. They don't. They are a trait we share with most predators.

<comment><USER4> But our primate ancestors who originally evolved forward-facing eyes were not predators. Makes much more sense to think it was to help in swinging from limb to limb in trees.

</comment></comment></comment></comment><comment><USER5> As a colour-blind person, this article both makes sense to me, and at the same time it doesn't.

I _have_ often wondered why human colour vision is not evenly distributed across the spectrum of visible light. This seems like a decent enough model for why that might be the case.

However, that makes it very peculiar that there are so many people with colour-blindness like me, especially if it would be such a strong evolutionary advantage. One would expect selection pressure to have removed those genes from the gene pool by now.

My own pet hypothesis is that it has to do with humans being a social species. For us, individual specialisation has much bigger evolutionary benefit, since it is shared, and a lower evolutionary cost, because other members of the group can compensate for shortcomings.

To give an overly simplified "economic" model of it: when we collaborate properly, the net performance of a group is not the average performance of all members, but the sum of the _maximum_ performance of individuals.

So back to colour-blindness. It is fairly well-established that dichromatic colour-blindness helps see through certain types of camouflage. In a hunter/gatherer society, having _one_ member of the group who is good at spotting prey animals (or dangerous predators, for that matter) is a huge advantage for the group, and your friends can assist you with getting ripe berries.

<comment><USER6> There is an alternative hypothesis. That it's just an evolutionary accident. Possibly it's a side effect of some other factor that is significant.

I mean, we get a lot of evolutionary traits because of bias through natural selection. But there's probably not much reason to lose a trait if there's no selection pressure to. It still may happen,of course. It's possible we'll all have brown eyes some time down the road. But it's not obviously because of natural selection.

<comment><USER5> Of course, there may be no strong selection pressure against it. But the odd bias for red-green distinction has been there from the earliest primates, suggesting there is a strong selection pressure in favour of specialising in red-green hue distinction. This then goes directly against having no ability to distinguish so many green and red hues.

Well, unless the only genetic way to maintain this bias includes a risk of colour-blindness, but I kinda doubt that.

Tangent: actually, eye colour is very strongly influenced by natural selection. Specifically, IIRC it's one of the prime examples of social and/or sexual selection pressure being stronger than other pressures, precisely because it has no other survival advantage/disadvantage associated with it otherwise. Since social success is essential for individual survival in our species, being discriminated against for ethnicity in general is a selection pressure (and before I am misunderstood: evolution is an amoral context- optimiser and Social Darwinism is one of the worst perversions of a scientific theory ever).

<comment><USER7> > Tangent: eye color is very strongly influenced by natural selection...

Maybe, but then what's your explanation for the prevalence of brown eyes due to natural selection?

<comment><USER5> Do you realise that you are implying that sexual selection is in favour of light eyes in general? This was not what I stated.

I merely talked about differentiating in- and out-groups, which is localised, meaning the _homogeneity_ of an eye colour within an ethnicity can be explained through sexual selection.

Regarding the prevalence of brown eyes, light eyes and hair are a recent and recessive mutation. That is all that is required to explain why it is localised and less common: it is limited to people who descended from the point of origin of the mutation. In this case that would be Northern Europe.

[http://learn.genetics.utah.edu/content/basics/patterns/](http://learn.genetics.utah.edu/content/basics/patterns/)

</comment></comment></comment></comment></comment><comment><USER8> The article made me doubt, so I called my dogs. All my dogs have the eyes clearly in the front, so I spent some time trying to find dog races with eyes on the sides on google Images. I found none.

It is not a good idea for your credibility that the first thing you say in an article is blatantly false.

</comment><comment><USER9> So are trichromatic people colorblind to tetrachromats?

BTW. Wikipedia says that trichromatism was normal for mammals in the past, and then they lost one or two cones, which would suggest a different development path. The article does not touch on this.

Or did distinct cones were reduced, and then one of them split into two again? It's also interesting whether chemical structure of cones is similar. I guess I gotta do some research on my own.

</comment><comment><USER10> The article would have been more interesting if they addressed the peculiar fact that half of all women and all of spiders are tetrachromats. It would be interesting to add the cones for additional frequencies into a genetically engineered monkey. I can imagine that having vision in the infrared and UV would make animals better predators (like Predator)

<comment><USER11> Not half of woman. More like 2%.

[https://www.snopes.com/politics/medical/tetrachromacy.asp](https://www.snopes.com/politics/medical/tetrachromacy.asp)

</comment></comment><comment><USER12> It would be interesting to design a UI colour scheme specifically with this in mind, with strategic use of red vs green for focusing attention in a way that parallels the eye's natural biological tuning, as a similar approach to accessibility UI design for colour-blindness.

If anyone knows anything like that that's been tried I'd be really interested.

<comment> GuB-42 I don't know if it is ironic or if there is something I didn't understand...

That's because you just described traffic lights.

Now, I don't think a lot of biological research have been done when deciding the colors of traffic lights, there is research about why they feel so obvious.

The idea is: Red is the most noticeable color, good for signaling danger or requiring attention. Green is distinct from red, it is also the brightest color, so it is good as a complement for red. Yellow is simply the intermediate between red and green.

<comment><USER12> Agreed that we probably end up on that naturally for things like traffic lights or danger signs, but I was thinking more interns of a full UI with that approach as an integral, conscious design consideration... based on more in depth and sophisticated study of replicating colour schemes in a natural environment in a broader sense.

</comment></comment></comment><comment><USER13> [https://imgur.com/a/jdVqE](https://imgur.com/a/jdVqE)

Boy that's some next level webpage design!

<comment><AUTHOR> Url is optimized for mobile (and without the banner). This one is more suited for desktop use [1].

[1] [https://aeon.co/ideas/the-red-and-green-specialists-why- huma...](https://aeon.co/ideas/the-red-and-green-specialists-why-human-colour- vision-is-so-odd)

<comment><USER13> Interestingly, this link works properly on both mobile and desktop. Wonder why the original link is even needed.

<comment><USER14> To avoid loading the images with the page. They appear later through a JS mechanism (to the disappointment of noscripters).

</comment></comment></comment></comment><comment><USER15> Incredibly stupid experiment. As someone who is red-green color weak, just as 10% of the male population is, I feel insulted by the implication of this article and the obvious glossing over the fact that not all humans see green/red very strongly. This is lazy science, seriously asking people to differentiate between images of apes that want to mate? It made no sense, you basically proved that some people are colorblind... ok. Did you plan and write this over a weekend? Why did you even bother?

<comment><USER5> As a fellow colour-blind person (protanomally): you're reading implications that are not in the article.

<comment><USER15> ...</comment></comment></comment>


PyPI now offers two-factor auth - <AUTHOR> https://pythoninsider.blogspot.com/2019/05/use-two-factor-auth-to-improve-your.html <comment><USER2> Am I missing something or is there currently no way to print out a list of recovery codes? Will I lock myself out of my account if I lose my phone?

Edit: There's a ticket already opened for that

[https://github.com/pypa/warehouse/issues/5800](https://github.com/pypa/warehouse/issues/5800)

<comment><USER3> You won't lock yourself out. I just did a quick test and if you reset your password (via an email link) then you are automatically logged in. At this point you can even disable 2FA. So 2FA is protecting against logging in with a stolen password, but it's not protecting against logging in if you have access to the account's email account.

Whether or not that's the intended behaviour is another question...

</comment></comment><comment><USER4> The FAQ says "you were asked to provision an application (usually a mobile phone app) in order to generate authentication codes".

As far as I could tell, the only way to provision an application was through a mobile phone app.

I don't have a smart phone (haven't felt like I needed one).

The setup page says "Scan the QR code with your application of choice".

I don't have anything that can scan a QR code.

What are the non-mobile ways to use 2FA with PyPI?

The FAQ only links to apps for smart phones.

<comment><USER5> >I don't have a smart phone (haven't felt like I needed one).

super off-topic but my phone and desktop both only have 4 gb of RAM. the phone seems to say "all right boys and girls we got 4 GB here let's try and make it work. Let's dust off these O() notations etc". meanwhile my mehsktop is like come on you're not really going to open another tab" and rolls it eyes at me, makes me feel like I should come back when I have 4 Tb of RAM and a 64-core monster. Right now I have 8 tabs open on my desktop and I feel like I need to be closing some. seeing the ;) sign instead of the tab count on mobile is no problem. (it does that over 100 tabs).

you might want to give mobile a try just because it's like not being treated like a second-class citizen anymore. (since your browser's devs don't have 64 GB on theirs either.) if you get a data plan the messenger apps (facebook messenger, whatsapp and viber) are very convenient as well.

I don't use any other apps daily except maps and evernote.

<comment><USER4> You have felt the need for more desktop RAM but haven't done so.

I haven't felt the need for a smart phone, and haven't done so.

These are different, yes?

FWIW, I've felt the need to not have a smart phone. My feature phone is small; I can drop it in just about any pocket. It's cheap; I've had four phones which ended up in the laundry (see 'just about any pocket'), and destroyed phones other ways, and $20/phone means I don't worry about it. And I love having a 1+ week charge time.

</comment></comment></comment><comment><AUTHOR> Actually, the upload API doesn't seem to be protected -- I just uploaded a package to test.pypi.org with twine using nothing but my old pypirc despite having enabled 2FA. So I suppose this is of limited value, at least at the moment.

Relevant warehouse issue: [https://github.com/pypa/warehouse/issues/994](https://github.com/pypa/warehouse/issues/994).

<comment><USER6> Implementor here. Yep, this is correct: 2FA (TOTP currently, WebAuthn is in the pipeline[1]) will protect sign-ons in the PyPI web interface, and we (Trail of Bits) will be adding support for scoped API keys for uploads.

[1]: [https://github.com/pypa/warehouse/pull/5795](https://github.com/pypa/warehouse/pull/5795)</comment></comment>