Gerrit is good, if opinionated in ways that we have to put work into onboarding for. That said, it only covers a small subset of what Phabricator does -- it's missing the entire issue tracker part, most importantly.
Yeah: the only feature I thought gerrit provided--active blocking code review--is actually the one feature of Phabricator that I had no interest in... I loved all of the other features.
I suspect that JoshTriplett is complaining about the `amend` workflow required to update a single gerrit patch with revisions.
If you're used to the GitHub pull request style, you'd be more likely to make a small commit and add it to the request. In gerrit that approach results in a separate patch for review, which isn't what such a person would want.
(Personally, I've come to appreciate gerrit's model for strongly encouraging building patches that are encapsulated single-reviewable-changes, in a way that lends itself to never having a commit that'd break the build if you landed on it e.g. during a git bisect.... But it's also something that surprises people who've not used gerrit before, in my experience.)
That's part of it. But also, if you start with a 4-patch series, and you want to publish a v2 that's changed to a 3-patch series, Gerrit doesn't seem to handle that very well. In general, I'd prefer if patches are kept together in one review, rather than a separate review for each.
Gerrit handles this perfectly - you can just add the third commit to your stack (and even amend the earlier ones) and it works as expected, adding it to the relation chain.
Gerrit is a code review tool first, with code browsing not being a core focus.
GitHub and others are frequently code browsing tools first, with code review coming second. "Code hosting has look like GitHub" is unfortunately a common myopia.
Phabricator (from the little I used it) seems closer to Gerrit than other code hosting.
I'm aware of that article. My comment doesn't really pertain to trademarks, but I think my comment pertains equally well to copyright and patent laws. While it may be true that US law treats them differently, they are fundamentally the same thing—a mechanism to reward work that results in ideas, not tangible objects—and it often makes sense to discuss them at the same time, especially when we're broadly discussing how they should be handled as opposed to to the specifics of how US law handles them now.
I really doubt it matters. F1 student visa isn't dual intent either, but a lot of foreign students end up marrying US citizens and adjusting to green cards in the US.
Thumbtack - San Francisco (H1-B and interns welcome)
Thumbtack helps people accomplish personal projects central to their lives. Thumbtack can help you remodel your kitchen, get photographs taken at your wedding, or teach your kid how to play the piano. We are a two-sided marketplace that connects buyers and sellers in these service industries. We work hard to empower small business owners nationwide to grow their businesses.
Thumbtack's core values are 1) help locally, scale globally, 2) obsess over our customers, and 3) improve relentlessly. We look for people who have raw talent and drive, work well with others, are motivated to improve, and are personable and intellectually curious.
Our engineering team is a lean 14 people, and supports the larger Thumbtack team of 500. We work in a beautiful office in SoMa, eat family-style meals cooked by our in-house chefs, study CS theory together, build robots, brew beer, and provide annual stipends for self-improvement. We offer competitive salary and equity along with great health insurance and a flexible vacation policy.
We're hiring software engineers with the following kinds of expertise:
* Front-end
* Back-end
* Site reliability / DevOps
* Analytics and big data
* Statistics
* Data science
* Android
* iOS
Thumbtack - San Francisco (H1-B and interns welcome)
Thumbtack helps people accomplish personal projects central to their lives. Thumbtack can help you remodel your kitchen, get photographs taken at your wedding, or teach your daughter how to play the piano. We are a two-sided marketplace that connects buyers and sellers in these service industries. We work hard to empower small business owners nationwide to grow their businesses.
Thumbtack's core values are 1) help locally, scale globally, 2) obsess over our customers, and 3) improve relentlessly. We look for people who have raw talent and drive, work well with others, are motivated to improve, and are personable and intellectually curious.
Our engineering team is a lean 12 people, and supports the larger Thumbtack team of 500. We work in a beautiful office in SoMa, eat family-style meals cooked by our in-house chefs, study CS theory together, read and debate literature at book club, brew beer, and provide annual stipends for self-improvement. We offer competitive salary and equity along with great health insurance and a flexible vacation policy.
We're hiring software engineers with the following kinds of expertise:
* Statistics
* Data science
* Front-end
* Back-end
* Site reliability / DevOps
* Analytics and big data
* Android
* iOS
The funny thing is that I knew it, but wrote `for v := range array` anyway at least a few times! My point is, it's not very intuitive. Thankfully, the compiler catches that, unless it's `[]int`.
The idea is it's `for k := range object` to iterate over the keys, and `for k, v := range object` to iterate over the keys and values, whether the object is a slice, array, map or string. The only exceptional case is a channel, which has no indices/keys.