Samsung and Google Sign Global Patent License Agreement - <AUTHOR> http://global.samsungtomorrow.com/?p=33461 <comment><USER2> These types of agreements might mean that we move from "software patents held by tech giants" to "software patents held by a cartel of tech giants". That would be worse.

An agreement like this might avoid the next high-profile lawsuit, but instead of fixing the patent system it's tapering over the most visible symptom, creating a patent oligopoly in the process.

Maybe I'm seeing things, but I'm just having Google's ongoing anti-poaching scandal fresh in mind.

<comment><USER3> Nothing systemic has changed. It's just a little harder for Apple to be litigious with Samsung and Google, that's all. There are still plenty of other players in the patent lawsuit business.

</comment></comment><comment><USER4> Everyone worried about this agreement somehow being used offensively against other companies should chill. Samsung has similar agreement with IBM and Sony, which I believe have been in #1 and #3 spot in US patents granted for last decade or so.

Samsung+Sony cross-license in 2004 [http://www.sony.net/SonyInfo/News/Press_Archive/200412/04-12...](http://www.sony.net/SonyInfo/News/Press_Archive/200412/04-1214E/)

Samsung+IBM cross-license in 2011 [http://www-03.ibm.com/press/us/en/pressrelease/33588.wss](http://www-03.ibm.com/press/us/en/pressrelease/33588.wss)

Apple broke into top 50 in the ranking starting about 2 - 3 years ago.

</comment><comment><USER5> Does anyone know if that also includes Motorola's patents ?

</comment><comment><USER6> It's unfortunate that patent sharing is not covered by anti-competitive laws.

</comment><comment><USER7> This is fantastic news and something I really hope every other major tech company starts to do. Maybe they finally realized that the money they hemorrhage to their legal departments can be better served elsewhere.

<comment><USER8> Apple don't play this game and they have key patents

<comment><USER9> Rockstar Bidco, owned by Apple, Microsoft, Sony, Ericsson and Blackberry.

They use this legal vehicle to create shell companies armed with ex-Nortel patents to attack Android manufacturers and Google itself.

So they (Apple) very much play this game, and this evolution can be seen as a response to the threat that Rockstar Bidco poses.

Software patents are bad all around: given their infantile lifespan they sure have caused a lot of trouble already and their offensive usage will really hamper anyone not protected by a big company.

</comment></comment></comment><comment><USER10> Big win for Google. Access to IP in all sorts of markets they've yet to explore.</comment>


Twitter client source stats for the past week - <AUTHOR> http://twittersource.info/lastweek

<comment><USER2> _According to our data, 90% of active Twitter users use official Twitter apps on a monthly basis._

As soon as I saw that, I immediately thought "I'd like to see the breakdown by tweet source," since that's really just a hollow number that means that 90% of active Twitter users sign into Twitter.com at least once a month. Much, much more of the actual content creation and consumption still happens on third party apps.

And to continue the recent pie chart hate on HN, I really wish this was just a series of bar graphs or something that gave me exact numbers instead of having to guesstimate that web makes up 1/3rd of tweets.</comment>


Dilbert on Software Architects - <AUTHOR> http://www.dilbert.com/comics/dilbert/archive/images/dilbert20122245080304.gif

<comment><USER2> My title contains the word "engineer." That's what I'm good at. At least, I think. I'm good at solving problems, building tools, and doing the design and engineering for a system or feature.

However, there's no "engineering" to be done at the moment. Some days I wish they _would_ just change my job title to "code monkey." It would really be a better fit with the actual work.

</comment><comment><USER3> The Roman Emperor Majorian described himself as one "who still glories in the name of senator." I glory in the name of "programmer." I would prefer nothing more, regardless of what my other responsibilities may be, because it's the most pleasing title to me.

</comment><comment><USER4> I prefer "Programmer Emeritus". I ask my clients to kiss my ring. (For some clients, I put my ring in my back pocket first.)

</comment><comment><USER5> I like "code monkey"

I've had all kinds of titles: PM, architect (project, enterprise, and system), senior developer, lead, tech lead, design team lead, DBA, trainer, mentor, coach.

I've had 'em all -- and I like "code monkey" the best.

</comment><comment><USER6> I think Wally's dream is possible! Especially if we consider architecture as the "normative restriction of design freedom."(Dietz, 2007) And if successful, I think Wally should start his own company!

<http://ocastaneda.weblog.tudelft.nl/2008/03/04>

</comment><comment><USER7> I want the title Artifex.

</comment><comment><USER8> Wally could always quit his job and become a cartoonist ...

</comment><comment><USER9> "Systems Analyst" any one!!!</comment>


Ask HN: Why do threads disappear? - J-dawg A thread I was following (https://news.ycombinator.com/item?id=11559612) has disappeared from 'Ask HN'.
Currently there are several stories on the first and second pages of https://news.ycombinator.com/ask that are both older and have fewer points than that thread.
I was only able to find it from my 'saved stories' page.
How does this happen? <comment><AUTHOR> In this specific case, I assume people flagged it, which sent it far down the ranking.

In general, the ranking algorithm has a bunch of (not precisely documented) other inputs against spam and flamewars which also can change the ranking from the expected value.

<comment><USER2> If I remember correctly, the ranking algorithm penalizes stories that have more comments than upvotes.</comment></comment>


"insane" evacuation from NYC, movers say, as residents head south - <AUTHOR> https://www.foxbusiness.com/features/coronavirus-insane-exodus-nyc <comment><USER2> [https://local.theonion.com/8-4-million-new-yorkers- suddenly-...](https://local.theonion.com/8-4-million-new-yorkers-suddenly- realize-new-york-city-1819571723)

 _At 4:32 p.m. Tuesday, every single resident of New York City decided to evacuate the famed metropolis, having realized it was nothing more than a massive, trash-ridden hellhole that slowly sucks the life out of every one of its inhabitants._

</comment><comment><USER3> > The New York market has seen a 40 percent uptick in interest for move-outs > when compared with last year

"Insane" should probably be taken in context here. A 40% uptick in business year on year is probably pretty huge for a relatively stable industry like moving companies. But if, say, 3% of New Yorkers move out of the city annually and that goes up to 4.2% it's not going to have any dramatic consequences to the city.

</comment><comment><USER4> NYC always has its share of people done and ready to be recycled to the suburbs. Someone has to clear out and make room for new blood. This is pulling forward some of that demand. None of the people I know leaving weren't on the fence already for years.

</comment><comment><USER5> Keep in mind this is Fox. Also, I don't remember ever sharing my age or income level with movers I've hired.

</comment><comment><USER6> A pandemic, big-city riots....

If we get one more pandemic sweeping through, then I'd say movements out of population centers will really tick upwards.

<comment><USER4> I get the world is more interconnected than ever before. Still, in my 45 years this is the first pandemic. I think people expecting one every year or two will find they are waiting a very long time.</comment></comment>


Ask HN: How do I fix my chicken/egg problem? - <AUTHOR> My friend and I are working on a startup called Officehours. The first stage was a mentoring tool. Now, we're expanding it with a newsfeed (https://officehours.io/streams) containing articles and product launches.
I'm struggling with the product launch aspect. Few startup folks know about it, so I'm reaching out individually, asking folks to post launches there. (This is made harder because we require folks to complete a profile before they can do so.)
On one level, I contemplate approaching this like Product Hunt, and adding launches for others. I don't like this idea though as it takes the control away from them (and it'd look like I'm the only one posting content).
So, my question: Do I keep reaching out to folks, and just putting in the time, knowing it will grow eventually (we did just release it)? Or, do I say "screw it" and add others' products without their knowledge? Or, is there some other approach I haven't considered? <comment><USER2> Do you mind if I ask how you decided a newsfeed with articles and product launches is the best direction to move your startup in? Did you consider other angles and discuss with your potential customer segment what their biggest pain points are? Usually, something isn't gaining traction because you are going about it in the wrong way, or you're not solving a pain point that is big enough.

<comment><AUTHOR> The pain point is one I've talked to a number of founders/writers about. They create stuff they're happy with, and then struggle to get the word out.

For example, one of these folks has a pretty decent following (you've likely read his stuff), solid list, and a number of books published. Last summer, he and I had a long email discussion about this. He noted that this (reaching new readers/buyers) was the one problem he just couldn't solve. He found sites like HN increasingly difficult to crack, posting through other major media sources (e.g. Lifehacker, Huffington Post, Newsweek) low-yield, and social media less and less effective.

So, all of this is part of a larger plan. Our core service has been in place for ~2 years. Through it, folks talk one-on-one, and get feedback, advice, ideas. We don't have a ton of users, but it generally seems to work pretty well. In fact, someone yesterday noted that their 10 minute OH session led to an hour-long Skype call, and then an in person meeting.

The problem with the initial product, and the one I think competing services also run into, is that there's limited reason to come back to such a service—and make a habit of it. That is, you don't check an advisor site on a regular basis, because you typically only need help from time to time. My hunch is that a lot of people heard about the service, thought it was viable, and then promptly forgot about it.

The reason for adding Streams (the feed) is to give folks more of a reason to check back in—and to create starting points for discussions. For example, one might read an article, find the content interesting, and then want to ask further questions one-on-one. We also see this tying into questions, as folks will be able to post a question, and then have an advisor either respond to it in a comment, or offer a one-on-one. All of it relates to helping folks build connections, share their stuff, and find new ways to collaborate.

I should probably also clarify something. I'm not so much fearful that this won't gain traction. (It's only been live for three days, and traffic is up 5x for each of those days.) That said, I know the process of building out such a thing is substantial. I refer to it as "the empty dance floor." No one wants to dance, until someone is—and after a few more do, everyone leaps in. We experienced the same with our initial product. It took us weeks to get the advisor base ([https://officehours.io/advisors](https://officehours.io/advisors)) past a dozen people—then it started growing on its own.

So, my question isn't so much one of: "why doesn't this work?" because I think it can. It's more of an: "is there a smarter way to reach out to new startup founders, and get them involved?"

</comment></comment><comment><USER3> 1\. "made harder because we require folks to complete a profile before they can do so". Can you make it easier?

2\. If you're promoting someone's else's launch seems like they'd be happy about it.

<comment><AUTHOR> 1\. We will make that easier, once we're past the closed beta. I'm just trying to do is throttle this area a little. My concern is that if we open it up entirely, we'll find it polluted with spam. So, we're setting a completed bio as the baseline for posting new content. (And, yes, I realize I'm somewhat responsible for the Catch-22 I describe.)

Once we see that it's working properly and have a bit more time to build in some mechanisms (i.e., prompting members to complete their profiles, in order to gain post permissions), we'll open up posting to the entire community. In a perfect world, we'd already have that in place. However, we need to get some critical stuff sorted first (i.e., the ability to edit posts).

2\. Yes: I think so, too, especially because I remember essentially begging folks to "hunt" us on Product Hunt, when we first started Officehours. This is the weird part of where we're at. I know that this is something I was looking for, a few years ago. In fact, I even wrote this post, on the subject: www.erickarjaluoto.com/blog/places-to-post-your-startup. However, getting those first folks to participate is often a little challenging. ;-)</comment></comment>


Apple's Evolution in Lego - <AUTHOR> https://ideas.lego.com/projects/efdc9919-0435-4a50-ab6d-a74f7aa7113d <comment><USER2> These sets look great. Only 5 more days to vote for them!</comment>


Why Favicons Rule the Internet - <AUTHOR> http://robots.thoughtbot.com/post/458915155/why-favicons-rule-the-internet

<comment><USER2> I thought TCP, IP, DNS and some others ruled the internet. Must have been mistaken.

</comment><comment><USER3> I twitch every time I see a site without a favicon. I can't even explain why it bothers me so much.

<comment><USER4> I twitch every time I see a site using the Sun favicon. It's less and less these days, but my bank still hasn't fixed theirs...

</comment></comment><comment><USER5> Favicons... Designers care, some developers care & internet addicts care.

the rest? nor really.

<comment><USER6> People who like to see at a glance where a bookmark goes often care. Bad titles are one thing, but not even knowing what's at the other end of the link is really irritating. Likewise, it's nice if you use browser tabs.

It's so simple to add a favicon and the branding payoff is immediate -- why wouldn't you? Most of the large community sites I've worked on or with have benefited from this trivial change far out of proportion to the 90 seconds it took to Gimp a photo/logo down to size.

</comment></comment><comment><USER7> I've said this before and I'll keep saying it: every site needs a favicon! It's a shame something so simple to create isn't everywhere yet. One example - <http://www.pulseapp.com/> \- which is the only site on my bookmarks bar without a favicon.

<comment><USER8> I've more or less stopped paying attention to favicons ever since I started using chrome because they don't show up on the URL bar anymore. They're still there on bookmarks, true, but I basically don't use bookmarks anymore either. And most of my bookmarks bar is full of js bookmarklets (like Readability) that don't have favicons anyway.

<comment><USER6> They're on your tabs if you use a recent version of Chrome, which I find useful.

<comment><USER8> Wow. You're right. Not quite sure how I managed to miss that.

</comment></comment></comment></comment><comment><USER9> Another example of branding. I quite like them though, as it is much easier to visually identify my bookmarks quickly

</comment><comment><USER10> Anyone know of a Firefox or Chrome extension that lets you assign a favicon to sites that don't otherwise define them (or perhaps override their existing choice)?

<comment><USER11> IdentFavicon: <https://addons.mozilla.org/en-US/firefox/addon/7765>

Hashes the domain and generates a unique favicon.

</comment></comment><comment><USER12> I do like favicons on my sites.

</comment><comment><USER13> _I'm here to talk to you about why they're great, and how this is probably Microsoft's greatest contribution to mankind, ever._ This is just a stupid remark to make, I don't think I have to explain why.

<comment><USER14> _Hyperbole is a rhetorical device in which statements are exaggerated. It may be used to evoke strong feelings or to create a strong impression, but is not meant to be taken literally._

I think we should add a rhetoric attribute to html tags. That way people can tell if something is sarcasm, exaggeration, metaphor, satire, etc.

<comment><USER15> <http://twitter.com/w3c/status/2027402192>

(Suggestion for <sarcasm> tag)</comment></comment></comment>


Online Porn's Effects, and a New Way to Fight Them - <AUTHOR> http://online.wsj.com/article/SB10001424127887323628004578456710204395042.html

<comment><USER2>
        "When I asked one successful 29-year-old last week if she feels porn influences
        her life, in bed or out, her answer was typical. "A thousand percent," she said.
        This woman finds herself repeatedly in porn-informed situations that are
        unpleasing, even unpleasant, while—crucially—her partner feels nothing's amiss."

Uggg... the problem in situations like this can equally be attributed to men that watch too much porn as women who don't watch enough. It's purely relative. A person who watches more porn and a greater variety of porn, is more likely to be better informed (and stimulated) by a greater variety of sexual situations. They've developed taste.

This really is no different than someone who has a broad range of tastes and interests in other pleasure seeking activities such as music, movies, fashion, design, etc. For example, someone who has listened to lots of music and lots of types of music or someone who pays a lot of attention to fashion and dressing, is going to have a broader range of tastes and be more selective and critical in those arenas. This selectivity and criticalness is going to extend to dating and their expectations of their partner.

        "When I asked one successful 29-year-old last week if he feels fashion
        influences his life, his answer was typical. "A thousand percent," he said.
        This guy finds himself repeatedly in fashion-informed situations that are
        unpleasing, even unpleasant, while—crucially—his partner feels nothing's amiss."

That statement can be rewritten for a variety of situations where taste is involved. Heck, you can rewrite it for one situation in particular that tons of guys can relate to, situations that are romantic:

        "When I asked one successful 29-year-old last week if he feels romance
        influences his life, his answer was typical. "A thousand percent," he said.
        This guy finds himself repeatedly in romance-informed situations that are
        unpleasing, even unpleasant, while—crucially—his partner feels nothing's amiss."

When to get flowers. When to buy dinner. When to open the door to be romantic, when not to so you aren't a chauvinist. Romance porn is all over the place... tv, movies, books, etc., yet we aren't having a serious discussion that we as society have a romance problem, are we? (I'm looking at you Disney).

On top of the issue of taste, comes the issue of awareness of what is good and what isn't. When you watch a lot of porn, you become more discriminating in what is considered good sex and bad sex, and you're likely to be more vocal about it when it's not up to your expectations, because the other person is simply ignorant about it.

In the arena of sex, the simplest example I can think of is what constitutes a good blowjob. There are only two ways to know what a good blowjob is. Either you've had the privilege of receiving one (pretty hard to do if you're a woman) or you've watched enough porn and related the things past partners have or haven't done with what they could be doing that you've observed in porn (if you're a guy) or reactions your partner has or hasn't had and what you were doing at the time compared to the reactions you've seen in porn and what the person giving the blowjob was doing (if you're a girl or a gay man). My experience is that there is a direct correlation between how good blowjob someone gives is and how much porn they watch. This isn't even meant to be a sexually discriminating point either. This can also be applied to cunnilingus as well. You either need someone else to show/tell you what you should or could be doing (direct instruction) or you need to observe a skill being practiced enough to extrapolate lessons from it (direct observation and mimicking) and try to apply those lessons through trial and error.

tl;dr = I bet you that 29 year old who "finds herself repeatedly in porn- informed situations that are unpleasing, even unpleasant, while—crucially—her partner feels nothing's amiss," is probably unpleasing or even unpleasant in bed, and crucially feels nothing is amiss.

PS as much as I like bikeshedding on topics like this, wtf is this doing on Hacker News?

</comment><comment><USER3> be scared... be very scared</comment>


Red Dead Redemption 2 revisited: six months after the hype – By Film Crit Hulk - <AUTHOR> https://www.polygon.com/2019/4/22/18298277/red-dead-redemption-2-review-rdr2-story-design-criticism <comment><USER2> yep sums up why this game sucks and why the gaming press sucks</comment>


A Novelist Teaches Herself Physics - <AUTHOR> http://nautil.us/issue/75/story/a-novelist-teaches-herself-physics <comment><USER2> From the article:

> I also loved Louisa Gilder's The Age of Entanglement and Kip Thorne's Black > Holes and Time Warps. That one was slow for me, but it was like being in the > kind of physics class I always dreamed of taking. At Harvard I had taken a > class, Physics for Poets. The professor said in an impatient way, "If you > can't follow the math, then you don't have to, but I can't really explain it > without the math, so just do the best you can."

And this is true. You can't learn physics by listening to a physicist talk or by reading popular science books. The title of the article gave me the impression that the author picked up a university-level book in physics and worked through it. As far as reading popular science goes, I think a lot of SF authors do that. And there are also SF authors who dig deeply into the science they write about (e.g., Greg Egan, Peter Watts, etc.).

</comment><comment><USER3> Is Nautilus seriously reporting uncritically on a novelist "teaching herself physics" by reading pop science books? Is this a joke?</comment>


Heartland Tech Weekly: How Duo Security Built a $2.35B Company in Ann Arbor - <AUTHOR> https://venturebeat.com/2018/08/08/heartland-tech-weekly-how-duo-security-built-a-2-35-billion-company-in-ann-arbor/ <comment><AUTHOR> I've known Dug Song for close to twenty years. I remember when Duo was just starting about five years ago. It was just four or five employees with their desks pushed together at the Tech Brewery, a local co-working center.

Dug started a weekly entrepreneur meetup at 5 o'clock every Friday where you could have a beer and hangout. Good times!</comment>


Cambridge Analytica creator has State Department contract - <AUTHOR> https://www.axios.com/cambridge-analytica-may-still-have-an-open-contract-with-th-1521494535-64a045dd-bfe3-4a7a-8439-a54f1ae13860.html <comment><USER2> It's not like Obama didn't "suck out the whole social graph" from Facebook who "didn't stop us once they realized that was what we were doing" because "they were on our side".

[http://www.syracuse.com/us- news/index.ssf/2018/03/facebook_d...](http://www.syracuse.com/us- news/index.ssf/2018/03/facebook_data- mining_cambridge_analytica_farmville_obama.html)

[https://www.fastcompany.com/40546816/obama-campaigns- targete...](https://www.fastcompany.com/40546816/obama-campaigns-targeted- share-app-also-used-facebook-data-from-millions-of-unknowing-users)

I don't see why anyone wouldn't assume it's the default operating mode for Facebook.

<comment><USER3> Because it's axiomatic that absolutely the last thing that happened in 2016 is Trump legitimately won after the media lied about consensus.</comment></comment>


How we got 1,500 GitHub stars by mixing time-tested technology with a fresh UI - <AUTHOR> https://medium.freecodecamp.com/how-we-got-1-500-github-stars-by-mixing-time-tested-technology-with-a-fresh-ui-b310551cba22 <comment><USER2> Despite the title, the article raises an interesting point: why do we prefer new code, with less features, to old but robust projects.

> _Unfortunately, we were affected by cognitive bias: old code is bad code. > But the truth can be the opposite. The old code is battle-tested by > thousands of users in hundreds of different projects. Most of the critical > bugs have been fixed, the documentation is complete, there are tons of > questions and answers on StackOverflow and Quora._

I'm quite guilty here; I've realized that I always check the date of the last commit on Github before testing a project. I feel like I do this more for small projects where documentation and use cases might be missing, and for which I'm expecting help from the community.

<comment><USER3> Old last commit date could mean two things:

1\. Project left in unfinished state and development stalled, in which case it's reasonable to run away from it.

2\. Project done (fulfilling it's purpose) and turned to maintenance mode, in which case I'd be quite happy (as a matter of fact I'd prefer) to use it as I know I'm dealing with a stable codebase and don't need to be afraid of breaking changes in the future.

I think it would help if maintainers would state the "completeness" in the README file.

<comment><USER4> This used to be indicated by version numbers:

\- 0.x = version in some beta/alpha/unstable state

\- 1.x = version in somewhat stable/complete state

</comment></comment></comment><comment><USER5> Also their user onboarding literally forces a unknowing user to create a GitHub account then star their specific repository.

Making GitHub stars ultimately meaningless, if they ever meaned anything.

<comment><USER6> I always assumed stars were just a form of bookmarking for me to find projects again easily, since there is no other method than 'watching', which results in too much info

</comment></comment><comment><USER7> Hey, I'm the author of the "GraphQL Visualizer" tool ([http://nathanrandal.com/graphql- visualizer/](http://nathanrandal.com/graphql-visualizer/)) that they mention in the article as inspiration for their project.

This new project is quite nice and definitely a step up from mine.

Also wanted to mention that there is a CLI version of the visualizer at [https://github.com/sheerun/graphqlviz](https://github.com/sheerun/graphqlviz) for when you want to quickly visualize a GraphQL endpoint for documentation purposes, etc. Keep up the good work!

</comment><comment><USER8> _But after looking at the source code we found a fatal flaw in this tool: it used Graphviz — a decades old tool written in plain C and compiled to unreadable JavaScript using Emscripten._

Are the "decades old" and "plain C" aspects supposed to be bad things? It seems like the real problem is "compiled to unreadable JavaScript". Graphviz is a great example of "if it ain't broke, don't fix it".

<comment><USER9> "Decades old" often means that it is mature, has relatively few bugs, and is not going to soon go through some major API-breaking re-architecture just because the maintainer wants to experiment with a new framework-of-the-week. "Written in plain C" means I will likely be able to call/integrate it into my project with little fuss. These are both things to actively look for when browsing for open source libraries.

</comment></comment><comment><USER10> Ignoring the fact that Github Stars are a aweful metric for anything else than vanity, "More bells and whistles" feels like a terrible advice and you should much more focus on a "easy-to-get-started" readme with just the minimal amount of beels and whistles to effectively communicate what your thing is really about.

<comment><USER11> I'm extatic one of my project reached 100 stars. Sometimes we need to feel good.

<comment><USER12> Agreed. I also think there's a lot of satisfaction in knowing that you got those stars in a completely organic manner.

</comment></comment></comment><comment><USER13> How much do github stars sell for these days?

<comment><USER14> Apparently, around $325 for 1500 stars: hxxp://githubstars.com/

<comment><USER15> [http://githubstars.com](http://githubstars.com) this a really helpful site. curl project got 5k stars from it :p

<comment><USER16> I believe your parent comment censored censored the link to avoid boosting the site's page rank. You may want to edit your comment (or not).

<comment><USER17> Can you explain what that means/what happens?

<comment><USER8> Search engines rank sites (in part) according to the number of other sites that link to them. Wikipedia is ranked very highly in Google largely because many, many sites link to Wikipedia.

The PageRank algorithm to compute these kinds of rankings was one of Google's early innovations, and was the secret to its initial dominance over the early-2000s search engine market.

<comment><USER18> But the links all have rel="nofollow"

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Or how about simply not succumbing to the latest UI trends, which will be different next year anyway?</comment>


Ask HN: How do you learn your way around a new codebase? - <AUTHOR>

I've been spending the past few weeks learning about various new technologies/libraries that interest me. While it's been fun, I find that my ignorance and lack of a systematic way of exploring new codebases lead to simple mistakes that take me hours to track down. Also, when a class spans multiple source code files, it can be difficult to contain it all in my head. In principle abstraction barriers should mitigate this, but in practice this isn't always the case and sometimes I need (or, perhaps, want) to go to the lower level to see what's going on. As of late I've been drawing inheritance and call stack diagrams to help with my understanding.<p>Do these problems sound familiar? Are there any general strategies that you use when you want to quickly understand how a codebase works? <comment><USER2> Find the edges and work your way in.

Find the core and work your way out.

The edges depend on what kind of application you're talking about. A web app will have different edges than a GUI app, and so forth.

Find the main method or equivalent, and follow the trail of instantiation. Usually you'll find that configuration takes place somewhere in this code path, which is another place to come back to later and start connecting the dots.

When all else fails, identify and follow a single trail of execution all the way through the code. Find another and follow it. Pretty soon you'll start to get a sense of where to find the core of the code.

Identify the presentation classes and work back from them to identify the business logic.

Identify the data access layer (either file or database) and look at the app in terms of what it's pushing into and pulling out of the data.

There are some code analysis tools out there, though I've never managed to quite fully grasp them, using them to look at the code can sometimes help you get a sense of the structure. One that is tantalizing, for java, is SA4J aka Small Worlds:

<http://www.theserverside.com/news/thread.tss?thread_id=24255>

There are others out there. There used to be a copy&paste detection tool in sourceforge... I might be thinking of this one:

<http://pmd.sourceforge.net/cpd.html>

Add comprehensive logging:

Add a log statement for all method/subroutine/function/procedures, and then run the app while watching the logs, to get a sense of what gets called, when.

You can try to go a step further, and log all returns (and the values returned) but that can be a more challenging task. On the other hand, figuring out where to insert those log statements will also force you to engage with the code, so it's worth it if you've already picked the other low-hanging fruit.

Speaking of engaging with the code; don't underestimate the value of refactoring the code as a way of learning your way around it. It's much more engaging and less likely to induce highway hypnosis if you're _actively_ working the code instead of just skimming it.

Obviously you use good revision control, and ideally keep a pristine install of the code alongside your experimental working working set, to compare behaviors.

Don't be afraid to throw away the refactored code if you find you've bogged down (and keeping that clearly in mind can help you avoid analysis paralysis).

Good luck, Jim!

</comment><comment><USER3> Some quick advice:

1) Pair Program w/ someone Senior - best way to learn is to ride shotgun, literally.

2) Fix bugs first - trace a single feature, take things apart

3) Use the Source - Make sure you've got the source to both the primary product any any 3rd party/open source libraries. You should be able to chase any line of code down to it's source.

4) Draw Diagrams or Make Tables

5) Don't Hesitate to Break Out the Debugger

6) Use source control "blame" - find out who wrote the code and talk to them about it

</comment><comment><USER4> Using a debugger has been useful to me lately. They can take a while to learn (depending on the language and environment), but they're well worth it. You get to step through everything that the interpreter sees. The only drawback is you can get lazy, as it lets you read only what you need to read. You won't be disappointed unless you know the codebase well enough for the debugger to be tiresome.

</comment><comment><USER5> I compile the source with a good IDE, e.g. Visual Studio, so I can:

1\. set breakpoints

2\. right-click on an identifier and "Go to Definition"

3\. search in entire "Project" or "Solution"

I've found helpful on Unix systems:

U1. grep -R ...

U2a. ls -lR > lslr.txt [if tree is big, this is slow]

U2b. view lslr.txt in an editor [no longer slow, even if tree is big]

<comment><AUTHOR> Thanks for the tips. My recent projects have been in Python or JS, but I've been looking into things like PyDev or PyCharm so I can do stuff like this. Thus far I haven't been using anything much more heavyweight than a text editor.

When I code in Java I'm used to doing this stuff already, but the codebase sizes for those projects tend to be much larger.

</comment></comment><comment><USER6> I've recently started working with a decent size codebase in C. At first I spent quite a while looking through the code, but didn't really learn that much about it.

Eventually I bit the bullet and just dove right in, not afraid to break things. I had figured out more in 10 minutes than I did in a whole hour of passively looking through the code.

</comment><comment><USER7> You have to just dive in and change something and then build/run it.

Ie you have an expectation, that if you change A then A' will happen.

Make the change, build and test it. If A' does happen then make a bigger change B with the expectation that B' will happen.

Again build and test this. Soon you'll find that either B', C' or D' doesnt happen and then you'll have to debug it.

This is the quickest and fastest way to really learn the codebase IMHO.

Passively looking at files is not going to help. And its just a big waste of time.

Now doing this will be painful but its better to go through the pain now rather than when you have a customer breathing down your neck for a fix.

</comment><comment><USER8> Try to make a modification that should be simple. For example, in a web app update the text shown when there is a validation error on the server side. Make the modification, get it deployed and working on your local dev machine.

This should take you around most high level areas of the system and in my experience show you just how nice or complicated of a system you just inherited.

</comment><comment><USER9> Having someone who knows the code base spend even just one hour with you can be extremely valuable.

</comment><comment><USER10> Fixing bugs, or refactoring small things.</comment>


C++ "auto" considered (mostly) harmful - <AUTHOR> http://denisbider.blogspot.com/2015/11/auto-considered-mostly-harmful.html <comment><USER2> Well, the examples could probably be better here.

The first example comparing references to copies ignores the fact that you can certainly say "const auto &x = Function();". And really, there's no harm in doing that all the time; if the result is actually returned by value, you'll end up with a stable reference to a temporary object that is only destroyed at scope exit time.

Similarly, I see nothing wrong with consistently saying things like "for (const auto &someObject : someContainer) ..." because it really doesn't help the user to keep typing out all that template garbage each time, and actually introduces unnecessary dependencies on those specifics when the class changes. In fact, ever since lambdas and std::function<> came along, I don't even _want_ APIs that expose things like map types and iterators directly; I much prefer having simple forEach() methods that call whatever function I want, hiding the specifics of the container(s) inside the object.

A case where I really like "auto" is for stuff like "auto x = new ObnoxiouslyLongClassName::ObnoxiouslyLongSubclass();" because it's completely clear and doesn't require repetition of unfortunately-named objects.</comment>


Why Agile and Scrum Are Terrible - <AUTHOR> https://michaelochurch.wordpress.com/2015/06/06/why-agile-and-especially-scrum-are-terrible/ <comment><USER3> I've seen this kind of strawman argument against Agile before, though this one builds a bigger and more detailed strawman than I've seen before. The problem here is not Agile, it's slapping the label "Agile" on something and then doing something totally different.

The great thing about Agile is that it's _not_ business driven. I mean, of course you the work for business reasons, and the business people who have determined what they need, need to be available to the Agile team (for example in the form of a Product Owner in the case of Scrum), but in the end, it's the team of developers that makes the decisions about _how_ they do it.

Of all the claims that this article makes about Agile, I haven't spotted even a single one that's correct. All of them are quite obviously false. The article is a piece of junk.

<comment><USER4> It seems like you are invoking the No true Scotsman fallacy. There's a lot of companies that do "Agile" and "Scrum" that are exactly like he describes. When Feature X has to be done this sprint because it's already been sold to (Board|Client|Investors|Other Dept), there's not much time to think about "How?", it's more like "If I'm going to be working Sat and Sun again?".

I'm sure there are organizations out there where Agile/Scrum is working fantastic for them in practice, and developers are happy with their work and career prospects. I just have yet to encounter one in the wild personally.

<comment><USER5> Words have meanings, or they are useless. So, let's define "agile". It doesn't mean "apply a label to any process that you already have". So, where do we find a definition for agile? Probably the best candidate is the Agile Manifesto. But there's not much concrete process there, so now what?

I worked in an agile (and, in fact, XP) environment for a while. The rule there was that the product manager owned the decision of what stories went into the project, but the technical team owned the estimates. That's kind of agile-y (we're doing stories and estimates, yay for us!), but it's also just good engineering management.

If you're in a situation where "Feature X has to be done this sprint because it's already been sold to (Board|Client|Investors|Other Dept)", you're in trouble whether or not you call your process "agile". The trouble you're in doesn't have much to do with whether you're agile or not, either - it has to do with management that doesn't listen to engineering reality. (However, it is a violation of at least one of the principles from the agile manifesto - sustainable pace.)

<comment><USER6> > So, where do we find a definition for agile? Probably the best candidate is > the Agile Manifesto. But there's not much concrete process there, so now > what?

So, now we recognize that "agile" doesn't describe the elements of a software- development process, it describes a set of priorities which are used for determining what process is adopted, and how the processes adopted are applied, in a particular organization (a set of priorities which specifically calls for consideration of the particular people involved and how they particularly interact.)

<comment><USER5> Fair enough. But that means that the complaints about agile don't really have much to do with agile, they have to do with bad processes that are trying to implement agile. (Scrum is more concrete, though, and can be more validly criticized or defended without as much confusion over the definition.)

<comment><USER6> > But that means that the complaints about agile don't really have much to do > with agile

Well, yeah, that's usually the problems with complaints about agile -- they aren't about agile, they are about a specific set of processes (usually ones developed, adopted, and applied by an organization _not_ applying the principles in the Agile Manifesto) which that particular organization, or the consultant selling them, called "agile" as a way to hook on to the popularity of the buzzword.

> Scrum is more concrete, though, and can be more validly criticized or > defended without as much confusion over the definition.

In principal, sure, Scrum is subject to process-based criticism, although lots of criticism of Scrum are about "what I've seen organization X, that claims to be using Scrum, do" rather than "the framework defined in the Scrum Guide".

</comment></comment></comment></comment></comment></comment><comment><USER6> > It's probably not a secret that I dislike the "Agile" fad that has infested > programming. One of the worst varieties of it, Scrum, is a nightmare that > I've seen actually kill companies.

Scrum is not a variety of Agile. Agile is, per the Agile Manifesto, an approach to software development which prioritizes (among other things) individuals and interactions over processes and tools.

Scrum is a tool (a process, arguably, though it describes itself as a "framework" as opposed to a "process", since any complete process will need to add to what is presented in the Scrum Guide) laid out in a "definitive guide" providing the "rules of the game". An organization might be applying Agile principles and use Scrum, but those are largely orthogonal concerns.

> So what are Scrum and "Agile"? I could get into the different kinds of > meetings ("retrospective" and "backlog grooming" and "planning") or the > theory, but the fundamental unifying trait is violent transparency, often > one-sided. Programmers are, in many cases, expected to provide humiliating > visibility into their time and work, meaning that they must play a side game > of appearing productive in addition to their actual job duties.

This does describe the actual process in many places, but it has nothing to do with "Agile" or "Scrum". It is a fairly common management failure that was common among the canned one-size-fits-all processes many things that the Agile Manifesto was a _reaction_ against; Scrum -- as defined in the Scrum Guide -- insofar as it incorporates what might be described as "violent transparency", does not do so in a one-sided manner.

"Lots of things that are called 'Agile' have problems because continue to do things -- which are also common without the 'Agile' label -- that the Agile Manifesto was a direct response against" isn't a substantive criticism of Agile, though its a good warning -- as is, after all, the Agile Manifesto itself -- against buying a canned process or tool and applying it just because the person selling it says the word "Agile".

</comment><comment><USER7> The comments on the main article are too long. This isn't a problem with Agile/Scrum. This is a problem with poor management and not setting up teams for success. The entire point of Agile is to enable teams to deliver on their own schedule and by their own rules, with the team made up of all the people who will enable that to happen.

<comment><USER8> The OP makes real points about the failings of Agile. The Engineering team ends up subject to the whim of the Product Owner, or worse yet the PO is absent and things stall. Senior Engineers get marginalized, since they do things that can take longer than a sprint or have to do with internals not directly related to business needs. And Engineering is about a lot more than features.

Agile works for some development groups. But it definitely does NOT work for many others.

<comment><USER3> All the points it makes about Agile are utter nonsense.

In what way does the engineering team end up subject to the whim of the PO? The PO needs to provide the details of what the business needs ( _someone_ needs to do that, after all), and what the priorities are, but he's in no way in charge of the team.

If the team has no PO for a significant amount of time, that does mean that a vital part of the team is missing, but I'd like to see any dev team build something without any idea of the business needs. It's the PO's job to communicate those needs, and the great thing about Scrum is that he does so as part of the team, rather from some distant ivory tower.

I also don't see in what way Senior engineers get marginalized. If anything, _everybody_ gets treated as senior, because everybody gets ownership, responsibility and decision making power about the project (though in reality, it's of course the seniors with the clearest ideas and tend to end up with most of the control over the team).

And there's generally plenty of room to include stories (even very large ones if they can't be cut up, though they usually can) about internals, infrastructure and R&D on the backlog.

It's absolutely true that it's not for everybody, but your criticism and that of the article don't hold much water.

<comment><USER5> I think that the PO criticism is this: An incompetent or indecisive PO can cripple an agile process. That's true, but (except possibly in the case of a startup), there's _always_ a non-technical layer of management over you somewhere, and if that layer is incompetent or indecisive, your project is equally in trouble. Labeling that layer "PO" and the process "agile" changes exactly nothing about the problem.

I've been in an agile process. It worked, mostly, but it broke down when the PO didn't have the time to do the work. (It was huge for an agile team - <USER2> people - which put a huge amount of pressure on the PO position).

For the next project, the PO "didn't have time" to give us actual requirements - just "improved reporting". In the most amazing display of agile that I've ever seen, the development team lined up a series of customer conference calls to expose their requirements for reporting, and proceeded to run the entire development process without a PO. And that worked amazingly well...

... right up until three weeks before the scheduled end of the project. (We were probably going to miss by a week, on a six-month project.) _Then_ product management showed up and said "We like what you're doing. But we need these additional things as well. Oh, and we can't change the end date." Predictably, that was the end of agile, as well as the end of any management reality for that project. (You think you can add three months of work without changing the end date? The real world will demonstrate to you that you cannot in fact do that.)

<comment><USER3> 30 people in a single team? Yeah, that's way, way too big. I've been in some teams that were technically too big, but those were still less than half that.

Still, good job making it work despite utterly dysfunctional management there. Agile does require that management understands what you're doing and what their role in that is. But again, that's true in any other situation too.

<comment><USER5> Well, it worked _really_ well for the release before that. It took a really strong proponent who was willing to hack process as we went along, but it worked - for us, for a while.</comment></comment></comment></comment></comment></comment>


British Airways outage caused by contractor - <AUTHOR> http://www.irishtimes.com/business/transport-and-tourism/british-airways-outage-caused-by-contractor-1.3105343 <comment><USER2> There's no way that turning off a single power supply should have caused this, unless the infrastructure had previously been hollowed out by poor decisions. Where was the redundancy?</comment>


Go 1.12 Released - <AUTHOR> https://blog.golang.org/go1.12 <comment><USER2> _o/ hello HN, this release ships with seamless opt-in support for TLS 1.3 in crypto/tls. (Gated by the GODEBUG=tls13=1 environment variable.)

I'd be happy to answer any questions about it, or about the rest of the Go cryptography libraries!

<comment><USER3> OK thanks, basic question, but.. What is TLS?

<comment><USER4> The S in HTTPS. The technology that is securing your HTTP connections, but also used by other protocols.

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

<comment><USER3> Oh ok.. thank you! (Somehow I'd never heard of that.)

<comment><USER5> Cool, that means that browser developers and web server developers are doing their jobs halfway right :)

<comment><USER3> hehe I guess so. Was a bit shocked to read SSL is deprecated! Still had that on my "Things to learn about one day" list! ...Ah, I did get this error trying to curl something earlier today "error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version" \- seems my computer hasn't heard of it either.

<comment><USER6> SSL and TLS are really the same protocol, except that newer versions are called TLS. Many software stacks still refer to both as SSL, but these days we only use TLS.

My understanding is that the renaming was mostly politics between Microsoft, Netscape, and the IETF in the 90s. See more details here: [http://tim.dierks.org/2014/05/security-standards-and-name- ch...](http://tim.dierks.org/2014/05/security-standards-and-name-changes- in.html)

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Go 1.12 fixes a bug in os.File.Sync() on MacOS, which didn't actually fsync() properly.

This affects several popular database libraries.

[https://github.com/golang/go/issues/26650](https://github.com/golang/go/issues/26650)

</comment><comment><USER8> > libSystem is now used when making syscalls on Darwin, ensuring forward- > compatibility with future versions of macOS and iOS. The switch to libSystem > triggered additional App Store checks for private API usage. Since it is > considered private, syscall.Getdirentries now always fails with ENOSYS on > iOS.

Hooray! I'm surprised it took as long as it did, since IIRC this was something that broke constantly…

<comment><USER9> I've only heard of one or two breakages...

<comment><USER10> Well, in internet parlance its broken every single time. On the other hand if I like something then broken thing will always work flawlessly for me

</comment></comment></comment><comment><USER11> Perfect timing for me. I was just about to push out a new release for my code counter [https://github.com/boyter/scc](https://github.com/boyter/scc)

It appears to be ~3-4 ms faster when counting repositories like redis which is rather nice for me as a free speed boost. Probably related to the changes to GC listed here [https://golang.org/doc/go1.12#runtime](https://golang.org/doc/go1.12#runtime)

<comment><USER12> I'm impressed every release by Go's GC improvements. IIRC, they started with a terrible conservative GC. It was slow and (particularly on 32-bit platforms) ineffective. But then they made it increasingly precise, then targeted 10 ms pause times, then sub-millisecond, and so on. All with far fewer knobs than the Oracle JVM.

I understand there's still a cost compared to non-GCed languages, but I think it's mostly RAM usage (perhaps affecting CPU cache effectiveness and thus efficiency) rather than tail latency.

<comment><USER13> I feel that Go really excells in getting out of your way. I rarely find myself fighting with the language or runtime. The few occasions I have have been related to native interop and generally mean I'm having to look at the internal fields of slices or strings to modify data effeciently, and even that isn't too diffit.

<comment><USER14> I _often_ find myself fighting with the language but the runtime more than makes up for it.

In particular the GC & thread scheduler are great. The fact that they are accessible and digestible by the average go dev is so impressive a testament to their authors and their focus.

</comment></comment></comment></comment><comment><USER15> Glad to see syscall/js is still seeing updates. This seems like a excellent chance to share server and client code by being able to cross compile to wasm.

Go team: please reduce the binary size of wasm files!

<comment><USER16> The large binary size is mainly due to the Go runtime being packed into the binary itself. You can compile with "-ldflags -s" to make it slightly smaller. But it will almost never be comparable to Rust/Emscripten binary sizes.

OTOH, there is a new project called TinyGo ([https://tinygo.org](https://tinygo.org)) which generates LLVM byte code from Go. This allows a subset of the Go spec, sans any GC or runtime, and generates binaries comparable to Rust/Emscripten.

</comment></comment><comment><USER17> Honest question for core devs: why do you need my phone number and address to accept any code and pull requests?

<comment><USER18> I was the one who converted Google's CLA system from "Please fax us this form" to a web form. At the time (2007, 2008?) I added all the fields from the fax template to the web form. But we dropped the phone number & physical address years ago. And they were optional even before that.

Nowadays we ask for your name, email address, and optional GitHub username.

</comment></comment><comment><USER19> Fmt will print maps out in sorted order? I guess that will confuse many newcomers even more

<comment><USER20> To me it's a deeper issue that this and breaches the single responsibility principle.

fmt should only print, not manipulate the data it is asked to print.

I believe that the spec says that maps iterate over keys effectively at random and so that should be the result of any operation that iterates over keys.

<comment><USER21> The `fmt` packages is described as being for "formatted i/o". It seems that ordered maps, while not "i/o" is reasonable to describe as "formatting", so it's fine to do it in this package I think.

`fmt` has always made things look prettier, that's part of what formatting is about.

You could equally argue that `fmt` should not round floats or pad numbers with zeros or spaces.

<comment><USER20> Formatting and making things prettier is not manipulation. When I call a function called "fmt.Println" is expect it to print, not sort.

<comment><USER9> As far as I can tell, it's not manipulating, it's _formatting in sorted order_.

<comment><USER20> Sorting is manipulating...

<comment><USER22> The data itself is not being "manipulated", though. By definition it is unordered. You are not guaranteed that whatever order you get when iterating the keys will remain the same. But any string rendering of the map would put the keys in an "order" and thus would be "manipulating" the data according to you. Why not have the order be useful to humans?

<comment><USER20> I'm very surprised by those vitriolic comments...

Really I have never seen print change the order of the data it is given (that's manipulating, indeed) for the sake of what seems to be laziness.

If there is a real need for sorted iteration then it should be external to print, possibly a new API of maps.

<comment><USER23> You're missing the point entirely. Maps have no defined order. You cannot "change" the order of a map, because it has no order. `[foo:1 bar:2]` is the same map as `[bar:2 foo:1]`, there is no difference.

For printing purposes that means that it doesn't matter which order you print something out in. ANY order is equally correct. So you might as well choose the one that makes the most sense to human eyes, which is to print them out ordered alphabetically on the keys.

Just because the printing function is choosing alphabetical order to print things out in, it's not "manipulating" anything. Literally nothing about the map changes.

<comment><USER20> > You're missing the point entirely. Maps have no defined order. You cannot > "change" the order of a map, because it has no order.

Clearly, I am not the one missing the point...

The order maps iterate is not the point. The point is that e.g. a 'print' function should print, not sort and change the order.

> just because the printing function is choosing alphabetical order to print > things out in, it's not "manipulating" anything

Again, the printing function does not 'choose', it manipulates the date returned by sorting them.

My point is that, to follow good design principle, this sorted iteration should be a public API of maps.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> This is so great, although I tried to update my docker container and the official docker container is still in rc.

<comment><USER25> I had to check what the Go docker image does.... It does NOTHING, it just builds and installs Go, why would you even need a container for this?

<comment><USER26> Either as a base for a development environment, or a disposable container to compile your go programs.

For example, compiling your program with a different version of Go can be done just by changing the tag on your compile command, and doesn't require that you have any development tools or compilers installed on your machine (except docker).

</comment></comment></comment><comment><USER27> Been meaning to make the dive into learning Go for a while now. My semester is finally slowing down so about to make the jump. I'll be doing a lot of digging on my own, but please link any resources that you feel were helpful for you.

<comment><USER28> [https://www.rust-lang.org/](https://www.rust-lang.org/)

</comment></comment><comment><USER29> Very happy to read about the improvements in releasing memory back to the OS. Hopefully this will help prevent our go apps in containers from getting OOM killed.

</comment><comment><USER30> Something I consider off-putting about Go is that you need a Google account to contribute.

[https://golang.org/doc/contribute.html](https://golang.org/doc/contribute.html)

> A contribution to Go is made through a Google account [...]. Google accounts > can either be Gmail e-mail accounts, G Suite organization accounts, or > accounts associated with an external e-mail address. [...]

Does anybody else feel the same way?

<comment><USER31> The fact that Go is mostly controlled by Google doesn't bother you, but that does?

(I consciously avoided getting a Gmail account for years until I bought an Android phone which requires such an account, so I understand where you're coming from but this issue seems meh to me.)

<comment><USER32> > (I consciously avoided getting a Gmail account for years until I bought an > Android phone which requires such an account, so I understand where you're > coming from but this issue seems meh to me.)

Gmail accounts are not required for Android phones. To utilize the Google services on an Android phone, which 99% of people will choose to do, a Google account is required.

A Google account can be but doesn't have to be a Gmail account. You can use any email address to create your Google account.

</comment></comment></comment><comment><USER33> Wow, AIX support! nice!

</comment><comment><USER34> Is iOS a thing for Go?

<comment><USER35> Sort of... it works with GoMobile but because it doesnt use LLVM there is no support for bitcode which means WatchOS and tvOS are off limits and maybe iOS someday.

<comment><USER36> Would this be solveable with go-llvm?</comment></comment></comment>


Microsoft to Productize and Integrate F# with Visual Studio - <AUTHOR> http://blogs.msdn.com/somasegar/archive/2007/10/17/f-a-functional-programming-language.aspx

<comment><USER2> Awesome. This is the third great announcement from a big tech company in two days (along with Amazon and EC2, and Apple and the iPhone API).

Now I just need to hope for another great announcement tomorrow from a certain small LLC.

</comment><comment><USER3> See? Microsoft is still capable of innovation (it's a pragmatic dialect of a 10-15 year old language, but still, it beats Java and C#).

</comment><comment><USER4> Hmmm, why not just use Lisp?

<comment><USER5> F# = OCaml</comment></comment>


Here Are No Women On StackOverflow… Or Are There? - <AUTHOR> http://www.banane.com/2012/06/20/there-are-no-women-on-stackoverflow-or-are-there/

<comment><USER2> We have had article after article claiming it is obvious women are being oppressed in the tech industry. Every week there is one of these. Many make bigoted claims about male engineers, enforcing stereotypes of male geeks I have never actually seen in industry.

Where are the technical articles written by women? There are plenty of contributions complaining about oppression, while attacking men and claiming absurd stereotypes. Where are the technical contributions?

<comment><USER3> _Where are the technical contributions?_

A selection of some of the major early contributions in chronological order;

first programmer - Ada Lovelace

foundational paper for computerized algebra - Grete Hermann

original programmers of the ENIAC - Betty Jennings, Betty Snyder, Fran Bilas, Kay McNulty, Marlyn Wescoff, and Ruth Lichterman

first compiler written - Grace Hopper

first person to use a computer in a private home & first developer of an operating system (LAP) for the first minicomputer - Mary Allen Wilkes

And all of this was done before Mary Keller became the first American woman to earn a PhD in Computer Science, in 1965, and it wasn't until 1989 that IBM had their first female fellow, Frances E. Allen.

If you are claiming to be finding it hard to find technical contributions to computer science by women and that you see no evidence of discrimination, it means you are being willfully blind, at best.

<comment><USER4> Wil van der Aalst – business process management, process mining, Petri nets

Hal Abelson – intersection of computing and teaching

Serge Abiteboul – database theory

Samson Abramsky – game semantics

Leonard Adleman – RSA, DNA computing

Manindra Agrawal – polynomial-time primality testing

Luis von Ahn – human-based computation

Alfred Aho – compilers book, the 'a' in AWK

Amos Nuwasiima – PHP Programming book

Frances E. Allen – compiler optimization

Alexander Scaranti – Image Processing, Image Retrieval

Gene Amdahl – supercomputer developer, founder of Amdahl Corporation

A. Annerl – multidimensional processing, computational complexity theory

Andrew Appel – compilers text books

Bruce Arden - programming language compilers (GAT, MAD), virtual memory architecture, MTS

Sanjeev Arora – PCP theorem (Hahaha. Right, I want to see who came up with Ketamine theorem.)

A. E. Hugo - parallel computing on heterogeneous multicore architectures[citation needed]

John Vincent Atanasoff – computer pioneer

Ali Aydar - computer scientist and CEO of Sporcle

Leonard Ayunar - Computer Programming Enthusiast, 1997 - At Present Software Developer

That's just surnames beginning with A. - <http://en.wikipedia.org/wiki/List_of_computer_scientists>

<comment><USER3> I wasn't trying to find a massive list, droithomme asked _"where are the technical contributions"_ by women in computing, not _"who has the biggest list"_. Really, all I needed to write down was Grace Hopper. Compilers being fairly useful in the field.

<comment><USER4> Did everyone miss the point of that comment? Most of the names on my list are not women.

<comment><USER3> I know they are not. I was commenting on that. I assumed that you posted a big list to demonstrate the lack of women in CS.

[edit] reading over, I could have been a lot more clear. I should have said _"which group"_ rather than _"who"_

</comment></comment></comment></comment></comment></comment><comment><USER5> I for one dont care who answers my question, man, woman, member of long lost indian tribe from amazon or a teapot, as long as the question is answered and i can get on with my work.

In fact, I fail to see the point of this article. Even its title fails to make a point. It does succeed in producing headline-baiting effect which implies sexism in StackOverflow community.

<comment><USER6> If the goal is to get the most and best answers, and you're not engaging all demographics, then you can get more and better answers by doing that.

<comment><USER5> It seems that there are 3 types of people answering question on StackOverflow:

1) People genuinely wishing to share their knowledge

2) People that are chasing gamified elements of the reputation system

3) People that belong somewhere between #1 & #2

I dont see anything that prevents any demographic from participating as long as fall into one of these 3 categories. And i dont see how being of a particular gender or race or ethnicity precludes one from sharing their knowledge on StackOverflow

<comment><USER6> Then you're not paying attention to the society around you. You really think women and men have equal proclivities for engaging in public competition?

</comment></comment></comment></comment><comment><USER7> This article is interesting because I had never considered gender to be a component of the community at StackOverflow. To me, it is about questions and answers, both of which are measured for quality. It seems to be a pure meritocracy.

In the end, I don't think it matters what the gender of the participants is. But if for some reason the site could better serve people of either gender, it'd be interesting to know what tactics could accomplish that.

<comment><USER8> It's important to have a diverse group of people asking and answering questions. If the diversity is so low that the site can't even attract a non- minority like women, that doesn't bode well for the quality of the community.

<comment><USER9> Why? If I'm able to get quality answers what advantage does racial/sex "diversity" in and of itself bring to the table. Should I feel extra good about getting a quality answer from a black female programmer over a white male one? If so why? It would seem to me that using diversity to assess community quality on a programming Q&A site is a poor measure given it has no bearing on programming ability. Unless of course one is purely interested in aesthetics.

<comment><USER8> _If I'm able to get quality answers what advantage does racial/sex "diversity" in and of itself bring to the table._

I think this is a wrong assumption. Qualitatively, it should be obvious that a diversity of perspectives and backgrounds would yield more answers. (Also a larger group of contributors can post more content to the site.) Empirically, multiple studies have shown that diverse groups are better at creative problem solving. Example: [https://www.npr.org/templates/story/story.php?storyId=685821...](https://www.npr.org/templates/story/story.php?storyId=6858215)

<comment><USER9> It's not obvious at all unless you're talking about a diversity of programming backgrounds in which case I agree. C++ doesn't work differently when it's used by a black or female programmer. Same goes for programming perspectives in general. I don't design my classes differently because I grew up in the inner- city (nor would I need to tailor an answer for someone who did). I think your taking an argument usually reserved for social environments that are more dependent on interaction and group dynamics (e.g. a classroom) and trying to apply it to a more static engineering one. And while that study did find that increased diversity improved performance on "business measures", it did not find a causal link that specifically pointed to diversity as the reason, although I'm not sure it would have much bearing here anyway. Being creative in a broader business/social context is not the same as solving the type of specific engineering/programming questions generally found on SO. Programming skill is completely divorced from race/gender/class and that's something we should all be happy about.

</comment></comment></comment></comment></comment><comment><USER10> I honestly think that a lot of the perceived sexism on anonymous places, like the supposed gender downvotes in this instance, just is the Internet being the Internet.

Okay, this may be a little sexist, but my impression is that women take negative stuff on the Internet (wether it's a mean comment or a downvote) more personal than men does. It may be because the emotional part of the brain is more developed in women's brains or just because they often don't have the same Internet experience as many men does. Stack Overflow can be a tough and ruthless place, but that doesn't make it sexist at all, even if some women are turned off by it.

Anyway, by looking for a meaning for something that doesn't make sense, like the downvotes in internet communities like in this case, you'll most likely find something (but often not the real reason). It's easy to "see" ghosts - that doesn't make them real.

Sexism is real and should try to be prevented, but unfortunately sometimes it seems to go a little bit overboard - either by actively looking for it (and finding it everywhere) or making it sound like there aren't any differences between men and women.

<comment><USER11> I think you make a good point, I don't know why you're being downvoted.

After all, the author of the article specifically mentions: "They don't want the grief of getting downvoted (because they are a woman)"

But the constructive question this leads to is: suppose the upvote/downvote/karma/etc. model is fundamentally "competitive" and men find themselves more comfortable with it than women do. (I'm not saying this is the case, I'm just saying "suppose".)

Then, is there an alternate model that could be used which women would find more rewarding, and participate more in? That would still promote good content and behavior, and be able to counteract negative influences like vandalsim, garbage answers, etc.?

I don't have the answer, but would love to hear insights.

</comment></comment><comment><USER12> "StackOverflow is a meritocracy, therefore women should feel just as welcome as men." Some women tell you that it's not. Is your first reaction: [a] we should honestly try to listen to their feedback , or [b] publicly hypothesize that they're probably just whining because they can't take the heat? One of these answers leads to change, the other demonstrates how an egalitarian space turns unwelcoming.

Sick of hearing how sexist Internet forums are? Good! Let's keep working to change that. Other than discouraging people from pointing it out I mean.

<comment><USER7> To whom are you responding? I cannot find your quotation anywhere else in the discussion, but I used the word "meritocracy" and I'm worried you interpreted my comment elsewhere in the thread as hostile.

<comment><USER12> Not at all. It's a rhetorical quotation; I'm not responding to any one person. (I suppose that's part of the issue: it's rarely any one person that's behaving badly; it's the cumulative effect.)

</comment></comment></comment><comment><USER13> I'm starting to get tired of the hand wringing around the issue of an anti- woman bias surrounding the software development/tech space.

Out of curiosity, does the same standards of equal representation exist for predominantly woman dominated communities in the case of men?

<comment><USER14> Men tend to do better than women in female-dominated fields, it's been called by some the glass escalator: [http://www.forbes.com/sites/jennagoudreau/2012/05/21/a-new-o...](http://www.forbes.com/sites/jennagoudreau/2012/05/21/a-new- obstacle-for-professional-women-the-glass-escalator/)

</comment></comment><comment><USER9> _So there's good news, there are women on StackOverflow. The visible ones are far below the representative % of women in the industry._ So you can safely determine that it's an unfriendly-to-women place.*

Oy vey...

</comment><comment><USER15> I know I shouldn't feel this way but I never see the poster of questions or answers as women? I'm not saying at all that I think the value of a woman programmer is any less than a mans, I just do not encounter women in programming, full stop.

I actually started reading that post then as if it was from a man and I thought they were making a sexist remark about "are my women here". When I discovered it was a woman, I read it again in a different context completely.

I don't know what other peoples regions are like but whenever I encounter a programmer anywhere, they are male?

<comment><USER16> Wow, at all? That's surprising. Certainly there are more males in tech, but that's still unusual. If you don't mind me asking, what region are you from?

Sadly, even as a woman, I myself am often guilty of assuming other programmers are men, if I don't have any evidence to the contrary.

There was a new york times article recently about the same problem in a different, and far more gender-balanced, field: medicine. [http://well.blogs.nytimes.com/2012/06/14/assuming-the- doctor...](http://well.blogs.nytimes.com/2012/06/14/assuming-the-doctors-a- he/)

<comment><USER15> I have never in my years encountered a woman developer, ever. I live in UK near Manchester.

I have encountered my fair share of female SEO's but never actually a developer?

I don't think from my point of view it can even be classed as stereotypical when it's just the way it appears to be? (Where I am at least)

I don't think it matters either way but it is equally something that I have ever thought about.

<comment><USER3> One of the best coders I know is female. She left the UK to work out in the far east where she is considered less of an oddity.

<comment><USER15> Well as I was writing that post I got to thinking, woman (in my opinion) generally have a better idea of logic. Organisation and planning come second nature to a lot of women I know, where men (in general again) it takes more to get the planning right.

This makes me think that women would be better at programming, as a generalisation.

This obviously cannot be applied to all people but in my opinion and experience women are more logical and organised.

</comment></comment></comment></comment></comment><comment><USER5> Lets put this all to rest:

@spolsky says that 24% of SO visitors are women

<https://twitter.com/spolsky/status/215906113470742528>

</comment><comment><USER17> If most of the SO community was female but you didn't know about it, would your observations somehow differ from these? Would you notice?

</comment><comment><USER18> This might be a crazy idea, but if more men posed as women, women would feel less intimidated to participate, and douchebags would have less effect on the actual women in the community.

<comment><USER19> If more men posed as women online, they'd know how bad men are to women online.

<comment><USER5> define online plz

There are plenty of venues where this is true, i just dont believe SO is one.

</comment></comment></comment><comment><USER20> Typo in title.

Here -> There</comment>


Testing Web Apps with Python, Selenium, Django (Interview with Harry Percival) - <AUTHOR> http://pythontesting.net/podcast/harry-percival-pt009/ <comment><AUTHOR> I interview Harry Percival, author of "Test-Driven Development with Python".

We discuss:

* testing django with unittest and pytest * layers of testing (test pyramid) including functional testing with Selenium, integration tests, and unit test. * where tests should live * test isolation * testing by development team without a QA group * double loop TDD * having Harry's book available for free</comment>


Ask HN: Private video sharing sites? - <AUTHOR>

I'm looking for a site where I can host private videos - that is have videos hosted behind a password of my choosing. This isn't porn, but family videos. I don't want them on youtube or facebook or anywhere else for the world or my "friends" to see. I want to be able to distribute a password to a select few that'll allow them to login and see my videos.
I want access to be password only, that is not have to have others sign up or register with the service. They can can just hit the page, bang in the password, and access my posted content.
Any suggestions?
Thanks <comment><USER2> <http://vimeo.com> lets you do this.

</comment><comment><USER3> I upload to YouTube and make it so only people that have the URL can access the videos, meaning they don't show up in search results. You can also make the videos private so you have to specify who can view them (25 max). Not exactly what you seem to be looking for, but it's an idea

</comment><comment><USER4> Until a few days ago drop.io; but they're gone now. You could use the public folder of Dropbox. Make a subfolder and put the videos in there. The url should be obscure enough. You can't put a password on it though.

</comment><comment><USER5> If you have some spare hosting, you could setup phpmotion and password protect.</comment>


GitHub's Hg-Git mercurial plugin - <AUTHOR> http://hg-git.github.com/

<comment><USER2> Wow. These guys are on top of their game. I'm impressed!

I've been using Mercurial at work, and generally Git at home. This could definitely simplify my toolbox a bit. I need to spend some more time with Git, but right now Mercurial is edging out for me.

</comment><comment><USER3> I wonder if this is related to the GSOC 2009 project? [http://socghop.appspot.com/student_project/show/google/gsoc2...](http://socghop.appspot.com/student_project/show/google/gsoc2009/hg/t124022472367)

<comment><USER4> It is not related. I happened to really get going on this project at roughly the same time as the GSOC stuff came out, but the student that was working on that seems to have stopped.

</comment></comment><comment><USER5> Presumably this changes the hashes? Is there some tool that converts git sha's to hg sha's, so you can still do something like `hg log <some git sha someone gave you>`? I guess that sort of stuff will cause the most confusion, just like local revision numbers can cause confusion (with hg and bazaar).

<comment><USER4> There is a mapping from Git SHAs to Hg SHAs. Technically we could add a command to run an Hg log from a Git SHA since we have a one to one mapping, but it's generally easier to not have to really know what the Git stuff is. You should be able to work in Hg with all your normal workflow, but push and pull from a server with a git+ssh protocol instead of an Hg server. It should be mostly transparent for the Hg user, and a developer using a Git client should not be able to tell that commits authored by an Hg developer was even using Hg. The data stored by both systems are not hugely different.

<comment><USER5> OK, but what about sha's you get from others? Someone references a sha in an email, or on IRC, or you find a reference to something in a bug report, or a gitweb search..

</comment></comment></comment><comment><USER6> This is how GitHub is going to win BitBucket. Maybe.

<comment><USER7> Why does one have to defeat the other?

<comment><USER6> Don't have to. My guess is that one is going to come out on top eventually.

<comment><USER8> Github seems to already be quite on top of Bitbucket. But both can live together nobody has to win or lose.

</comment></comment></comment></comment><comment><USER9> Slick, but isn't it only half the job? If I use mercurial to clone from a git repo, is there a way to publish the work I do on top using mercurial in a way accessible to git users?

Still, this is a step towards it not mattering which tool you use if you want or need to collaborate with others—definitely a good thing.

<comment><USER4> Yes, you can push to a Git repository and hg-git will convert the hg commits you did in the meantime to Git objects and push them upstream. The tool is losslessly bi-directional. Developers using Git or Hg clients can push and pull from a Git server without necessarily knowing what client the other developers are using.

<comment><USER10> what if someone changes git history? some rebasing or something like that? how does it affect downstream hg clients?

thanks.

<comment><USER11> "what if someone changes git history? some rebasing or something like that? how does it affect downstream hg clients?"

I was under the impression that even among Git users, editing the history of something you've already pushed to others/allowed others to pull from is to be punished by public humiliation.

</comment></comment></comment></comment><comment><USER12> Now we only need one that go the other way so I don't have to use git to clone stuff from github.</comment>


Pumping up an antenna from a stream of sea-water - <AUTHOR> http://hackaday.com/2017/01/09/pumping-up-an-antenna-from-a-stream-of-sea-water/ <comment><AUTHOR> I remember reading about something similar made from Hg. It was in a military application for a high-powered antenna auto-tuner, and EMP hardened.</comment>


Using HTTPS? The URL may not be fully encrypted, hence can be tracked - <AUTHOR> https://stackoverflow.com/a/38727920 <comment><AUTHOR> When request is made over HTTPS, the server name in the URL may not be encrypted, only the path to the resource will be encrypted.

i.e.

if you type [https://www.example.com/path/to/my/resource?show=pretty](https://www.example.com/path/to/my/resource?show=pretty) then the www.example.com may be sent in plain text only the path part will be encrypted.

</comment><comment><USER2> TL;DR: SNI sends _hostname_ (not whole URL) in plaintext, ESNI (encrypted) is not widely supported (not in Chrome, off by default in Firefox, visited domain also needs to support it).</comment>