skysight-inc/HackerNews huggingface dataset:
I think a top-down approach is pretty much the only way to do it: Start at a high level of abstraction: packages, modules, namespaces, etc and their relations. Pick one that seems related to some core functionality or central to the change you intend to make and dive deeper: interfaces and data structures within that unit and possibly other related units they depend on. Ideally, up to this point you shouldn't even have to worry about function definitions and algorithms, just declarations, types and relations.

While static typing helps a lot with this kind of exploration and navigation, I don't know of any IDEs or other tooling for any language that would really help you with it.
Sure, you can probably generate UMLs or something, but it usually requires some additional tool and the output is pretty static. You can't just zoom in from a package-level view to an interface-level and then keep zooming until you are eventually shown line-by-line implementation of a specific function.

I've been thinking about this lately, and I've come to the conclusion that the way we think and reason about code is pretty far from the way our tools present it to us. I tend to think in terms of various levels abstractions and relations between units, yet the tools just show me walls of text in some file system structure (that may or may not mirror the abstractions) and hardly any relationships.
seriously, how about finding a better place to work with more financially healthy coworkers? If someone need to payback a pizza bill with Paypal, there's something very wrong with these guys
I think this is it. They should change the blueprint of their body and rotate eyes and snorkel by 90°. A pretty major adjustment.

This also means we could teach something about swimming to dolphins :-)
One other reason is that cetaceans need to come back to the surface for breathing and so their movements are more vertical axis based than horizontal vs. fishes. Horizontal tail propulsion allow a faster pitch control for swimming creatures than vertical + horizontal fins.
> The women's and civil rights movements went against the traditions of plenty of millennial old cultures such as the "Kalahari Bushmen and the Han Chinese, the Carthaginians and the Aztecs"[0] as well.

Don't forget that liberal madness about replacing monarchs with elected government!
The 'inbreeding' argument doesn't, and has never, held water. Not that I'm about to jump my sister; but as a point of science its not terribly significant. Cousins can actually have closer DNA than siblings; cousins are often allowed to marry (varies state by state). The idea that only horrible monsters will result is silly; its how all purebred farm animals are created.
I learned a few things from this post outside the usual "technical" explanations:

1. They have CORE Haskell contributors on their payroll to deliver this type of project (what this mean is that no... Haskell isn't any better than other language, it's just that they have people who know Haskell very very deep to the compiler level...)

2. In-house custom language eventually does not scale (the EOL is much much much shorter than other programming languages), plan for that :)
Their commitment to open source is truly amazing - I am currently in the process of interviewing with them, and am increasingly in awe of the company.

Surprisingly, their massive open office is the quietest office I have been in. It is a really nice workplace.
Love is blind and should be allowed as long as it's not hurting anybody. I can't believe it was just 11 years ago since the first legal Gay marriage happened in United States.

But still, this makes me super happy, that a president would write something like this, so publicly. It gives me hope for the humanity.
1. I make sure I can build and run it. I don't move past this step until I can. Period.

After that, if I don't have a particular bug I'm looking to fix or feature to add, I just go spelunking. I pick out some interesting feature and study it. I use pencil and paper to make copious notes. If there's a UI, I may start tracing through what happens when I click on things. I do this, again with pencil and paper first. This helps me use my mind to reason about what the code is doing instead of relying on the computer to tell me.
If I'm working on a bug, I'll first try and recreate the bug. Again, taking copious notes in pencil and paper documenting what I've tried. Once I've found how to recreate it, I clean up my notes into legible recreate steps and make sure I can recreate it using those steps. These steps are later included in the bug tracker. Next I start tracing through the code taking copious notes, etc, etc. yada yada. You get the picture.
One issue with this scenario - once Uber is no longer paying drivers, it should become a lot cheaper, making it viable for a lot more people to get rid of their cars and just rely on Uber. So that'd decrease the pool of people to loan their cars to Hypercar. Effectively everyone would be "ride-sharing", but through Uber.
> Content providers need to get paid just as much as taxi drivers, taxi drivers even moreso. Content providers can take advantage of the zero marginal cost of them distributing their product, taxi drivers are stuck working at an hourly wage, and for them not to receive at least an hourly wage is tantamount to theft.

This is ultimately just your reasoning. It is either 1) our place as individuals to decide which laws are more necessary (and thus it is fine for some of us to think transportation laws are disruptable or not), or 2) to hold a strict view of regulations and be as unsympathetic to people that write DRM evaders (regardless of the purpose).
"In forming a marital union, two people become something greater"

I wonder if the american constitution has the word "two" hardwired anywhere.
A side note: The Haskell runtime is written in C so Simon Marlow is also one of the best low level C hackers I've ever met.
I stopped enjoying physically moving large amounts of dirt in my late teens, after years of being free labor for my parents' landscaping efforts.

I still enjoy tunneling underground, making neat passageways, modifying the world, and finding things. It's my greatest pleasure to play on my Minecraft server. This is where I do my digging, tunneling, and many other things.
>> With kindness and charity, but with firm resolve, persons of good will should give civil disobedience to this court ruling and all that flows from it.

lol wut. In a single sentence you basically just said to nicely riot
> We tend to think of laws as these unchanging concepts ...

I think the best analogy here is, people tend to think of them as code.
This demonstrates one of the strengths of compiler frameworks: once the feature is available in LLVM, lots of compilers and VMs can use it easily, even newer ones like Rust or Microsoft's LLILC.
Who gets to decide what's immoral and what is only unfair? And just because a French person puts on his consumer hat, does he suddenly cease being a citizen? By granting monopoly rights to one group (the taxi industry) you limit the rights of another group (everyone who wants to get from point A to point B). If the war on drugs, gay marriage, and free love teach us anything, it's that violence can't stop consenting adults from transacting with each other.
I only spoke with such confidence in my previous post because I thought I had worked on high end machines. I worked with a number of Sun and oracle machine with CPU failure detection and CPU hot swapping. But This feature was always flaky. I am eager to learn about what I missed.
It's rarely "just" a port. It's usually because the new language has better characteristics. These days porting can be a very gradual, as-needed process - partly because of thrift, another Facebook tool!

One of the big parts of becoming a professional for me was accepting that code has a lifecycle; code is written to make the business money at the time, but it's entirely normal for it to change and die as time goes on.

(That said, you should just write everything in Haskell and then you won't have these problems. When was the last time you saw a company port code away from Haskell?)
>States screwed up when they took the civil part of marriage and associated it with the ceremonial part in a church.

Couldn't agree more. To me the correct answer is that the government should grant civil unions, and not recognize marriages in any legal way. Marriage should be between people and their religious institution. Want to get married? Great! Go to your church and sign your civil union documentation when you're done with the ceremony to get all the governmental perks. If your church doesn't want to allow homosexual marriage? Fine! Homosexuals can find an accepting congregation and get married there. Or they're non-religious, and can just go get a civil union without the marriage.

The real problem with the gay marriage debate hasn't been the inequality, or the bigotry, it's the fact that a religious institution got mixed up with a legal institution. So instead of teasing them apart, we've decided that the legal definition now partially defines the religious institution. That is why some people are going to continue to be somewhat justifiably angry about this. If we just gave them separate definitions, it would let people self-select private institutions whose definition they agreed with.
Bos manages the internal tooling team at Facebook. It is little surprise that Facebook's internal tooling is acquiring a functional programming flavor.
As someone who has faced racial and religious discrimination, I would say no. I prefer it when people are more easy-going. Fine if you don't like who I am as long as you leave me alone.

I see this as another descent into a general milieu of intolerance and hostility, a kind of madness of crowds that seems to possess cultures every few decades. This rarely ends well.
Hi Kevin and Sam, I'd like your advice on startups that connect real people/experts with those who need them.

Background: I'm building freedom.biz, which is currently a course for retail business owners who'd like to take their business to the next level. I sent out a survey to those on my interest list, and it became clear that I couldn't personally fulfill all their needs. However, I know people who can.

I'd love to build a company that connects vetted experts with the business owners who need them. I've seen startups in this realm, but they all feel generic and unfocused. What do you think would be a competitive advantage in this realm? What would you like to see that's not out there right now?
Maybe it was both.
We used to use a tracking/shame trello board (unpayed/paid/verified columns). The debts sometimes took a long time to be paid, but nothing was left unpaid.
As to abuse in a typical 2 person marriage, yes, you're right, but this is also something that I believe society tries to deal with. There are always going to be abusive relationships, regardless of how many people are in them, but I do think that my question (opinion, whatever you want to call it), about how power and relationships change depending on the number of people involved is something to consider.

I totally agree with the fact that marriage is none of the government's business. But at the same time, we would probably want to change some tax laws and social benefits if polygamy became legal.

(I really couldn't care less if polygamy is legal or not. Yes, if there is a relationship of 5 women and 5 men, then there is no difference than traditional marriage system. But I really do wonder about what happens when you have 1 male with 10 wives, and 9 other young males with zero wives. In the past, this has traditionally lead to some form of revolutions. I haven't seen anyone actually answer this question yet, just people calling me a troll and a bigot.)
You're assuming that this reflective spray increases safety. You're then telling people who don't buy and use this product that they're stupid. And you're not saying anything about the dangerous vehicle drivers who cause most road deaths.
> Who gets to decide what's immoral and what is only unfair?

A government, as governed by its citizens. That's what laws are for.
Yes, but "it's icky" didn't form arbitrarily, ex nihilo. If you go one level deeper and ask why it's considered icky, you may find justifications, some good, some bad, some outmoded, some relevant.
I tend to do that mostly for concurrent programs, as I want to see what happens without blocking the entire system like a debugger would.

For medium/large programs I'll often prefer a debugger because I can easily and quickly try to diagnose the problem without having to wait for a new build to complete with the added traces.
It really shows what an investment they are willing to make in the language. They aren't just training up internal engineers, they're bringing in some of the best in the community.

I'm hugely excited that Facebook is making this investment and giving some of the developments back to the community. There are many smaller companies that would be interested in Haskell but don't have the resources or expertise to tackle some of these complicated problems.

Facebook is blazing the trail for production Haskell and the rest of us can follow.
No, the problem is that nuclear is overall safest it contributes a large portion of electricity and small percent of all deaths. Because it's both a powerful source and its nature makes people very careful, so they generally are good at avoiding stupid mistakes.

The nature of other power sources is that have a slow trickle of uninspiring deaths - worker falls into turbine (OH NO THE TURBINES ARE EVIL!), person falls off a roof installing solar panels, workers killed in a mine, workers killed on the oil rig. They are so small and numerous it becomes background noise.

When nuclear powerplant goes bad, it goes with a bang. International press coverage, rescue operations, etc. Look at Fukushima. It took a friggin' tsunami to mess up that old plant and even then, they managed to avoid Chernobyl scenario.
As per the article there has been a 15m underwater limit off each wall in butterfly, freestyle, and backstroke since 1998. Though the article doesn't state it there was a 10m limit in backstroke 1988, that was relaxed to 15m in 1991.
The rule change was spurred after David Berkoff and Daichi Suzuki[1] battled in the 100 backstroke in the 88 olympics going mostly underwater on the first length[2]. Though FINA said it was for safety concerns, it was more likely that they wanted the strokes to be preserved and not have swimming boil down to a breath holding contest.

[1] http://swimswam.com/david-berkoff-daichi-suzukis-underwater-...
[2]https://www.youtube.com/watch?v=ztDlHwqD7pA
Is it possible there was some naturally-occurring source of DMT down there? This is almost too crazy to be believed.
A very simple method that helps me is to make sure I tackle a new code base on a large monitor, vertically oriented, with small font size. Add to that a pane that shows the file/class structure. Seeing more at once helps ground me in the types of interactions in the code and the code landscape.
Background:
Every day in South Africa low income people suffer through 2+ hour commutes into work using public transport. This has a serious impact on their lives, due to long wait times and inefficiencies. I interviewed a single mother, who only got home after 7pm and leaves at 6am in the morning.

We have built a ride share matching system:

Our goal is to make use of unused seats in cars matching drivers and passengers. We do not put any cars on the road (i.e Uber), We match to drivers on their daily commute.

Our Biggest Problems:

1. We are quite successful at converting people who are posting to online classifieds etc. We have strategies to get these users. We grew week on week by as much as 50% but then we hit a negative growth week. In order to continue growing, we need to expand into other areas.

We also have an un-balanced market. Demand for rides is much higher than rides offered.

2. We have not figured out how we will make money yet. Our initial hypothesis was a transaction fee.

The passenger and driver will be traveling together on a regular basis. Once we match them, we run the risk of being dis-intermediated.

You could make an argument that a payment directly into the bank account is more convenient than cash, though i am not sure that is a strong enough incentive.

3. Our churn/attrition is very high, There is no need for the system once they start traveling together. We have churn built in to our model.
> Yes. Uber is violating the guidelines set out for classifying workers as independent contractors. Based on Uber's requirements, they should be properly categorized as employees, with the taxes paid by employers for their employees properly paid.

I specifically asked about minimum wage laws, which are what you held up as being important for protecting workers.

As for contractors versus employees, that's under widespread debate, and is not nearly as clear-cut as you're suggesting.

> And its not up to the tech industry to decide which laws to obey and which to ignore because its convenient for their VCs. Want to change the law? Go change the law.

Sometimes the most effective way to change a bad law is to demonstrate that the world doesn't end when it's ignored. As long as you're willing to accept that you might well get penalized for doing so. (Which in turn can spark critical evaluation of whether such penalty is right or wrong.)

And as long as we're talking about deciding which laws to obey, how about the taxi folks setting fires and other violent acts? Perhaps those much more serious crimes ought to get addressed, as well.
I find this method primitive at best. How do you manage it?

Don’t be primitive about it. :-)

The serious answer is: use a good logging framework. In particular, I’d suggest something that can log at selective levels of information for different parts of your system.

If your project’s culture is to instrument your code like this routinely, it can be a very useful asset, and it’s no more disruptive in practice than say adding comments or writing tests. In each case, with experience you get better at judging where to focus your efforts and how much detail is worth including by default, and if that turns out not to be enough you can always add more while you’re working in that area.

With modern tools for recording and analysing logs, there is relatively little useful information that you can easily find using a debugger but can’t easily find from good log output. On the other hand, logging has some big advantages: you can capture how your system changes over time, you can record and review concurrent behaviour cleanly, you can capture information from different parts of distributed systems that might be written in different programming languages or running on different devices.
From my experience with windows 8 is even slower, it consistently stays there for 5 minutes saying it is installing etc (but sometimes the drive is ready within 30sec, but the message stays)
>Children are not considered capable of consent.

Children (minors and the "age of majority") and age of consent is defined by law. While we have come mostly to an agreement on the age of consent for many things, nothing prevents us from changing our definitions or age of consent for varying activities.
Well, I know I'm probably a minority in saying this, but I'm disappointed - not because I don't think everyone should have access to the government rights attached to marriage, but because it seems our country doesn't actually want to fix problems at the root.

What is the root problem? People on both sides of the debate agree (if given the option) that the government probably never should have messed with marriage, at least not as the cultural/religious thing that it is.

In a nation where we care so much about the separation of church (broadly defined to include ideologies that may not be formal religions) and state, I don't understand why we're seeking to only expand that connection.

What should happen is the government should stop defining marriage of any form (leave that to religion or personal tradition), and simply define all these rights under civil union (or a similar phrase with no significant religious/cultural attachment).
Most of the press keeps a neutral tone, which is professional.

Approximate translation of Les Echos on my desk: "2500 taxis [...] protested against UberPOP, a service provided by amateur drivers", "the government puts pressure on Uber, the company behind the service".
The baker in question specializes in weddings. They may refuse customers if the function at issue is not a wedding. The baker considers the formalized celebratory union of anyone other than a man + woman to be not a wedding.

Now, based on no legislation (as one dissenting Justice makes scathingly clear), a new "protected class" has been created. The baker still considers a pair entering that "protected class" not a "wedding", a view the ruling notes still should be respected and free to hold & act on.
Definitely Splitwise.

Depending on your coworkers, amusing games about who gets to buy each other lunch may ensue as people attempt to get a really nice splitwise score, or demand repayment in the form of remote-controlled helicopters. (But that's startup life for you.)
That's strange because when we do this, the person who initially paid usually ends up with more cash back after everyone else repays. Maybe this is a good way to measure the honesty of co-workers.

But I am the same way and hate trying to 'collect dues'. One approach would be to have everyone take turns paying for the entire meal and not worry about collecting individual payments. They do this in some countries regularly (I think Spain is one) - people take turns paying for everything so it works out in the end. Although I do recall a Spanish friend saying there was one person in her group who would habitually take longer to come up in the roster of "person paying entire meal".

It's an interesting idea for an app though. Instead of you nagging late payers, the app could send email reminders to them. There could be stickiness to an app that has some reputational knowledge of how individuals have paid up in the past. Sort of like a fico score but among friends or coworkers.
I work on AOSP, which is a fairly larger code base. During the early years, the documentation on the internals of Android was close to non-existent. Plenty of tutorials in Mandarin/Cantonese, but not many in English.

A good way to get hang of the code base was to read it (usually using a tool like sourcegraph [0], pfff [1], open-grok [2], doxygen [3], javadocs [4]). Although a lot of people have argued that code is to be not treated like literature [5], but in this case, there was no choice.

The second step was to see if assumptions about the what the code does is correct. This is usually achieved by adding log statements, writing sample apps, and debugging in general.

Repeat the steps above, over and over again.

Checklist:

1. No matter what you do, you absolutely need to document everything you understand / misunderstand about the code base.

2. Never underestimate value of having a different pair of eyes look at code you have hard time reasoning about.

3. Be in constant search for resources (like books, blogs) available on the code / topic of your interest. You'd learn amazing amount by reading through other people's analysis. Stackoverflow is a great start. Heck, you can even ask well thought-out questions on Quora/Stackoverflow.

4. Hang out on related IRC channels / community mailing lists. For things written in esoteric languages such as OCaml, I found these to be pretty helpful.

5. You could blog about it, share the information you know over email lists, setup wikis; and people who know better would correct you. Its a win-win.

Good luck.

[0] http://sourcegraph.com/

[1] https://github.com/facebook/pfff

[2] https://opengrok.github.io/OpenGrok/

[3] http://www.stack.nl/~dimitri/doxygen/

[4] http://www.oracle.com/technetwork/articles/java/index-jsp-13...

[5] http://www.gigamonkeys.com/code-reading/