Thoughts on Haml - <AUTHOR> http://www.jamesbritt.com/2009/4/30/thoughts-on-haml

<comment><USER2> James is right on about where HAML falls short; but thats not HAML's problem, its more of a preference. I will be the first to say that HAML is no appropriate for everything. Here is how I apply various templating engines in my Rails projects:

HAML - Great for application markup (as opposed to document markup... see ERB below) for a number of reasons. (1) application markup tends to be heavy in javascript where you need a clean DOM. HAML reduces the chance of screwing up the DOM and makes it easier to look at during development. (2) Lots of conditionals in the view and I'm too lazy to factor them out into partials or helpers. Sometimes its just easier to express if/then and loops in HAML than it is in ERB... slightly less markup.

ERB - Document/content markup. If I have big docs with lots of links and paragraphs, but nothing to heavy going on thats dynamic/conditional, ERB is the easiest way to go.

Mix 'n' match! Then you can have the best of both worlds!

<comment><USER3> I have to say, as a professional web developer, that I've never found that "application markup tends to be heavy in javascript", or that I've "(screwed) up the DOM". HTML isn't particularly difficult, although things like HAML might prove that doing it well without a helper abstraction is difficult.

Code management (breaking things up into appropriate templates and fragments) trumps things like HAML for ease of use and clean separation every time.

</comment></comment><comment><USER4> Eh, different strokes for different folks. My only major criticism of Haml is that it makes me actively adverse to how incredibly verbose HTML is, which probably isn't a good trait for a web developer.

<comment><USER5> Yea, I know what you mean. I found a cool tool that lets me do all my prototyping in haml before having to do any real Rails coding: <http://github.com/jlong/serve/>

</comment></comment><comment><USER6> I'd say his main points boil down to poor tooling and creating a solution for a problem that doesn't really exist... except that many of us do see issues with existing templating options and Haml+Sass works really well.

I will concede that it can cause friction with designers though.

</comment><comment><USER7> I don't understand the criticism that it's for people who don't understand HTML. How could you even use it if you didn't know HTML?

<comment><AUTHOR> I thought his point was that people who like it tend to be newbies to web development who are not able to make an informed critical judgment about its merits because they don't know enough of HTML to begin with - they learn HAML by seeing its output without understanding the HTML that underlies it. But I agree that this seems like a weak argument. I can't imagine working in web development without understanding HTML.

</comment></comment><comment><USER8> This was me until about the 3rd time I played around with Haml. Then it occurred to me how much noise I got rid of by using it, after which I was hooked.

Jquery + Haml is a very close impedance match and a real pleasure to use for development.

<comment><AUTHOR> "Jquery + Haml is a very close impedance match" - is that another way of saying they're a good combo or is there more to it than that?

<comment><USER8> It's actually more specific than that.

Take the following Haml that defines a div with an id of "foo" along with a span with class "bar" and content "Hello World":

      #foo
      %span.bar Hello World

If I wanted to hide those elements, I'd write the following jQuery in a separate file:

      $('#foo').hide();
      $('span.bar').hide();

That's really powerful stuff. The Haml syntax for defining elements looks exactly like the CSS3-style selectors used by jQuery, so much so that I often _cut and paste_ my Haml markup into my javascript files.

<comment><AUTHOR> Glad I asked. I had no idea there was such a close relationship.

</comment></comment></comment></comment><comment><USER5> I use real code to show how HAML kicks ERB-ass: <http://railsnotes.com/395-response-to-thoughts-on-haml>

</comment><comment><USER9> Web designers often send me half heartedly formated html that is full of repetitive nested structures that I do not understand. When trying to turn it into a collection of partials I have inevitably destroyed some important tag. Everything breaks and I have to start over.

Turning it into haml has two benefits. I can visualize the structure of repeating elements so I have a better idea what to break into partials and I will never forget a closing tag which causes everything to break in some horrific way.

</comment><comment><USER10> I agree with the author on editor support for closing tags. I often find myself noticing something is wrong when I tell the editor (emacs) to auto- indent everything and it doesn't look the way I expect it to. I also find ERB to be quite simple and straightforward.

That said, I'm quite interested in using Sass.

</comment><comment><USER11> I like James' perspectives, but the "If programming X irritates you, get better tooling" argument reminds me of another programming language, Java.

</comment><comment><AUTHOR> This post is a negative critique of Haml which points out that it is not an improvement over HTML - it makes working with designers more cumbersome for one thing. A somewhat different viewpoint from a StackOverflow user:

[http://stackoverflow.com/questions/93540/your-attitude-to- ha...](http://stackoverflow.com/questions/93540/your-attitude-to- haml/430325#430325)

<comment><USER5> That persons code doesn't do HAML justice.

I converted an ERB file to HAML. A quick glance shows it to be simpler... even though it's mostly the same code: <http://pastie.org/private/n8ipfrkxlremo4jwtxiww>

More detailed response is here: <http://railsnotes.com/395-response-to- thoughts-on-haml/></comment></comment>


A simple way to "get more people to code" - <AUTHOR> http://www.yosefk.com/blog/a-simple-way-to-get-more-people-to-code.html <comment><USER3> After 25+ years of coding and reading other people's code I would submit that the REAL problem is that the people who do code don't do it very well, some are downright stupid.

There are a lot of people out there who will never be able to produce anything beyond "Hello World" and some will struggle to get that far.

What if we focused early on identifying kids with good problem solving skill and other aptitudes that _might_ make them good programmers and encouraged them to explore those areas. What if we did that for every discipline?

No, that would mean taking an interest in kids instead of just herding them into classrooms where they can be safely ignored until they're 18. Let's keep doing that.

<comment><USER4> I think EVERYONE should learn to code just as everyone learns ARITHMETIC.

Imagine a world where only a few of us knew how to balance an account, or a few of us understood how much will they have left if they spent x amount at the gas station.

Now imagine a world where everybody has a basic ability to develop software.

All the above being said, the beginning is not programming, but learning how to Think, Read, and Write. Not programming language, but human language. When we have learned some basic thinking process (logic), then having the ability to easily program will follow.

<comment><USER5> _Imagine a world where only a few of us knew how to balance an account, or a few of us understood how much will they have left if they spent x amount at the gas station._

You're living in it. Math illiteracy is very common.

<comment><USER4> But Arithmetic is not. I am not making the case for Math, but Arithmetic. I am not making the case for Computer Science, but programming.

</comment></comment></comment></comment><comment><USER6> This piece is genius. _For those who don 't get it, it's dripping in sarcasm_. Not to say that the author doesn't think it would work (he may have some misgivings about just throwing money at developers), but that he's calling bullshit on the motives of those talking about "learn to code."

People are paid in more than just money. There's job security, interesting work, autonomy, and (more motivating than people think) social status. The vast majority of developers don't have anything but money, and frankly a lot of them don't even have money!

There are things more important than writing code (even good, well-engineered code aimed at solving real problems). There's: playing with your dog, going for a run, spending time with your family, and going out for a night with friends. People have chosen all these things over learning to code. _Let them_.

Is it not a BIG RED FLAG that the prime message is "Everyone should learn to code...well, everyone but me, anyway."?

<comment><USER7> _There are things more important than writing code (even good, well-engineered code aimed at solving real problems). There 's: playing with your dog, going for a run, spending time with your family, and going out for a night with friends. People have chosen all these things over learning to code. Let them._

This doesn't strike me as a particular good argument; for one, it implies that it's OK to not let people chose less important things than writing code (say, watch reality TV).

But besides, who exactly is trying to remove that choice? I don't see any advocate of "learning to code" saying we should force people to code.

 _Is it not a BIG RED FLAG that the prime message is "Everyone should learn to code...well, everyone but me, anyway."?_

Maybe. But then again, many of those pushing the message are programmers themselves.

<comment><USER6> _I don 't see any advocate of "learning to code" saying we should force people to code._

Perhaps not. But anything a teacher tells a learner to do is basically force. What choice does the learner have? They don't know any better.

This would be fine if what they were teaching were worthwhile. But it won't be: it will be "How to use Rails" (rather than, say, Ruby) or "How to use Bootstrap" rather than _actually learning CSS_.

</comment></comment></comment><comment><USER8> "If there's a shortage of programmers, we could pay programmers more money." \- the idea is driving salaries down, unfortunately. Even Apple who happens to own the largest hedge fund in the world, was trying to keep salary level constant by entering the illegal agreement with Google et al.

</comment><comment><USER9> Exactly right:

Tech companies wish to encourage people into code primarily in order to reduce their wage bill.

Zuckerberg and Gates are not credible authorities here.

</comment><comment><USER10> "Companies could increase the representation of younger people in programming by paying extra money to programmers below a certain age."

With ageism being considered "natural", what about giving incentive for old developers to keep coding instead ?

<comment><USER11> Think a few steps further down these lines and you'll be able to separate the people worrying about "teaching everyone to code" into evil (companies looking for cheap labor) and stupid (people thinking there are problems that need solving where there aren't any and it is "solutions" that breed problems, in this case a surplus of professionals in one area at the expense of other areas and the workers who've needlessly entered this one area.)

Or maybe self-serving and naive/idealistic would be better terms. But you get the idea.

Indeed any consistent argument in favor of motivating people to program would at least mention aging programmers and no such mention is to be found, or at least I never noticed it.

<comment><USER12> I take offense to your " 'teaching everyone to code' into evil and stupid" comment.

When I say "everyone should know how to code" what I mean is that everyone should know how to open a spreadsheet and do calculations, conditionals, iterative calculations, &c. From there I feel it's natural to then teach them a little of something along the lines of Python to do some simple calculations and algorithms.

I mean that people shouldn't be afraid to use a computer to do (gasp) computations. I don't think everyone will be a coder, engineer, or architect. I don't even think most people will enjoy it, per say, but they should know how to do it (just like someone people complain about having to take math, music, or art), using a ubiquitous tool should be part of a basic curriculum.

>Indeed any consistent argument in favor of motivating people to program would at least mention aging programmers and no such mention is to be found, or at least I never noticed it.

I have no idea what you mean

<comment><USER13> _> >Indeed any consistent argument in favor of motivating people to program would at least mention aging programmers and no such mention is to be found, or at least I never noticed it.

>I have no idea what you mean_

Our industry has a fierce bias against older people, and indeed keeping an eye on HN for relevant stories shows that even top talent can be left to hang. If you're around at a company for long enough you'll see how some senior folk are fired and replaced by fresh college grads, sometimes after grooming those newbies for a while.

<comment><USER12> Absolutely none of that has anything to do with what I said.

Also, just because people have shop class doesn't mean that everyone will become a carpenter.

</comment></comment></comment></comment></comment><comment><USER14> I wonder if he doesn't realize companies are just always claiming a shortage so that they can import more cheaper H1B workers rather than hire domestic...

</comment><comment><USER15> There is not a shortage of programmers, there is a shortage of inexpensive programmers.

<comment><USER16> Doesn't that imply that there is a shortage of programmers worth their salary?

<comment><USER6> Then...drop their salary? Are these companies being run by four-year-olds? "We lured developers with huge compensation packages because we only want rockstars, but we end up losing money on them!" Which is it? Is it a highly valuable skill that everyone should learn (why doesn't the company owner learn it then?), or is it "sneaky _non-unionized-and-colluded-against-by-Google-and- Apple_ developers aren't "worth" their salary?" Gotta pick one.

Some companies are just not the best use of dev time, and should die if they require it to survive. I feel _much_ better saying that about companies than people.

<comment><USER16> How could there not be almost nobody but "four-year-olds" in an immature and fast pacing technology sector?

<comment><USER6> But there are not. A _sector_ being new is not a constraint on the individuals.

Plus, pleading about inexperience seems a little late. It's _2014_. _The Mythical Man Month_ was written what, 40 years ago? Maybe I'm off and it's 30. Still?

Honestly as I think about it, _that_ is a book _everyone_ should read. Managing software development is a more valuable skill than the actual development.

</comment></comment></comment></comment></comment><comment><USER17> I believe the "get more people to code" movement wasn't about "we need more programmers". It was about what Alan Kay might call "digital literacy".

<comment><USER11> And why do we need digital literacy any more than machine gun literacy or brain surgery literacy or anything like that? Except Alan Kay, everyone knows perfectly well how useless programming is to anyone but the professional programmer.

<comment><USER18> I think the "learn to code" movement should eventually evolve into "learn to X", where X is something that does prove to be widely useful, and for which "coding" is a prerequisite skill. Data analysis strikes me as a possible value for that X.

</comment></comment></comment><comment><USER19> We're told that the software profession must be made more accessible, and that programming should be taught to all children. Great, I agree. No child without the command line!

Let's also consider another industry: cars. Car ownership per capita in the US is greater than the rate of households with Internet access -- 0.769 versus 0.748. [1,2] So professions related to cars have greater impact on people's lives, on average, than professions related to computers.

Furthermore, most car owners would agree that maintenance is expensive, very expensive. Not to mention the fact that most mechanics are men. Nobody has proposed that everyone should be a mechanic, let alone a mechanical engineer. The President has not called for more mechanics, more women mechanics, or for relaxed visa requirements for foreign mechanics. These things would be seen as ridiculous.

Until programmers form a regulated professional body, with its own lobby, they will continue to be singled out by the various lobbies of the IT and social justice industries (strange allies).

[1] 240 million car owners in a population of 312 million, in 2011. [http://wardsauto.com/ar/world_vehicle_population_110815](http://wardsauto.com/ar/world_vehicle_population_110815)

[2] 74.8% in 2012. [https://www.census.gov/hhes/computer/publications/2012.html](https://www.census.gov/hhes/computer/publications/2012.html)

</comment><comment><USER20> It is a real problem in Germany where IT market has 0% of programmers' unemployment, so they introduced Blue cards welcoming programmers from Eastern Europe. And it helps them, they get the workforce of moderate price, ready to learn and speak German. Their work language is English. So if it was a Real problem in the US, they would do the same. So far, it seems like another buzz.

</comment><comment><USER21> I agree that money is the solution to such problems, however reducing the incentive once enough programmers have entered the workforce would compel people to leave the field and do something else. If it was known that this reduction would come, it's likely that it might not have a positive effect on programmers and many people would not necessarily pursue a career in the field.

Also, one has to take into account that most people will just not cut it as programmers, no matter how much time or even practice they may put in.

</comment><comment><USER22> I would rather see developers in the community focus more effort into already existing libraries/frameworks and making them easier to install/setup/build an MVP.

</comment><comment><USER23> This is an understandable way to look at the problem, but I think it's largely wrong. You need to capture minds while they're still very open to learning. People are locking themselves into career paths by the time they graduate college, at least in America. Student loans means getting a second degree in something you rather do is largely impossible since you have to start paying down your debt when you graduate. A higher-paying job sounds great, but when it'll take an extra $400/month in debt for the next 10 years, it's pretty hard to justify. This leads to thinking "Huh, let's engage minds earlier".

Most people in high school aren't thinking super-hard about their careers. They're thinking about school and college. Even then, kids learn about "big" achievements - RNA, species classification, electron shells, WW2, White House scandals, etc. You're aspiring to be someone if you're in an area where you have scholastic resources, not just some programmer. You're not looking so hard at money. If you're in an impoverished area where graduation rates are abysmal and you're not even being taught science, the odds of being a professional athlete or pop star look about the same as going to college - <USER2> whole different set of challenges. Let's assume we're talking about high schools with resources to even have computer classes.

Paying more money doesn't make it a sexy profession - there are plenty of "famous" programmers that the HN crowd knows about, but none of their achievements are public. Creating a business like Amazon or Facebook doesn't have the same personal allure to most people like inventing a vaccine for polio does. I bet if you asked a classroom of high schoolers who Jeff Bezos is, 85% of the room would have no idea. There's no _personal glory_ to being a programmer.

With law, you can help people's lives directly - same with being a doctor. There's a social value to those professions that seems obvious and immediate (even though it might be far from the truth). Most people want to do good in the world, and being a programmer has no obvious correlation with that. It doesn't entice students because there's no history written about programmers, no scientific experiments you do in classroom, no math taught that correlates with programming. It's in academic isolation until college, and by then, it's too late.

<comment><USER6> "This is an understandable way to look at the problem."

Who says it's a problem?

<comment><USER23> The author. It's the heading of the first paragraph after the disclaimer.

<comment><USER6> The author also has scare quotes in the title and refers to the shortage as "supposed."

</comment></comment></comment></comment><comment><USER24> I think that all this "get people to code" movement is bullshit. If you like programming you are going to do it no matter what. For some years I was without a computer, but I still managed to program in my smartphone. I will always like programming regardless of the outcome. If one day I become successful because of this great. If not at least I lived my life the way I like.

</comment><comment><USER25> I think there's some moral issues in taking taxes from people who earn $40k and giving them to people who earn $100k.

Anyway, I think the issue of "not enough programers" is different to "not enough people can code." To keep beating the old writing analogy. One is "not enough scribes" and the other is "not enough literacy." At some point in history professional writing and literacy stopped being substitutes for one another.

Normal literate people didn't compete with novelists. Or looking at it another way, printing presses and literate public completely removed the need for scribes and (I think not coincidentally) we got lot more writers shortly after: novelists, pamphleteers and scholars.

So nurses who can code will not replace the programmers who wrote healthcare.gov but they might do different useful things.

</comment><comment><USER26> Let's get "more people to code well" first. Then let's get companies to compensate their employees fairly (i.e. more proportional to the amount of cash they generate with their if and for loops). Then maybe we can start thinking about enrolling more people in the game.

<comment><USER27> I second the first and last statements. As far as compensation goes, here, an average Java developer makes a least 3x of what is the average salary for the region in which I live. Yet all local companies are complaining about the quality of job applicants and interns. Those high salaries seem to be attracting quite a few lazy people seeking easy money.

</comment></comment><comment><USER28> One idea that comes to mind is the creation of a website with a list of problems that could be solved by coding, if someone would step up and do it. Regular citizens that are impacted by these issues would perhaps think they have a shot at solving a real problem for them, by coding something.

The main point is, some people might not be interested in coding just for the sake of it...

Is there such a list? Social hacks? Coding for change? What resources I could show a fellow citizen to get him/her fired up about coding?

</comment><comment><USER29> One of the suggested solutions is for companies to raise wages. As far as I know, these companies already pay high five-figures for new, full-time employees.

<comment><USER30> try six

</comment></comment><comment><USER31> Asking the government to create more coders seems like a good idea until you realize that our government doesn't 'know how to code'. Who would validate the code being submitted for benefits was good? That the children were learning? I realize this proposal is slightly humorous, but that was my first thought.

</comment><comment><USER32> This is flawed in its effects. While it may result in more coders, they will be concentrated in the areas with the available money to pay them more. I'd argue that this is very similar to what we are doing already. Programming is chasing the money and not the most pressing problems.

</comment><comment><USER33> Maybe we should also pay people to study math as well. [$10] for each Khan Academy lesson they pass. It'd cost ~$2,500 to educate one person on the entire math curriculum.

I think it's plausible, in the future, we will be paying people to learn.

</comment><comment> vezzy-fnord This is a rather forceful and coercive way to solve this (alleged) problem. I'd expect to see lots of mediocre labor pop up as a result.

<comment><USER13> It's not like the software world isn't full of mediocre labour to begin with.

</comment></comment><comment><USER34> Code is a tool. We don't want more people to code, we want more people to make cool new things and automate.

</comment><comment><USER35> "Like all brilliant ideas, my solution is simple". Too modest.

</comment><comment><USER36> Programmers already get paid more than most people. You're proposing a solution which has already been tried.</comment>


Ultimate Day Trading Platform/Information Collector - <AUTHOR>

Just a quick little concept I've been wrestling with for a few months for use in day trading. As you may be aware, lost seconds can sometimes mean lost opportunity... time is absolutely critical when it comes to day trading.
Many instruction guides/books/blogs I've come across says that if you are to day trade properly then you need to go to a firm to day trade, actually go to work at an office. Reason being there are proprietary software and subscriptions that these companies subscribe to that give the trader good resources. However, this can be a highly flawed mentality because of its closed mindedness. To think that a single proprietary software subscription with its highly technical trend analysis could be the one thing that gives an edge over everyone else is, to put it lightly, is at the very least foolish.
Anyways what I am wanting to do is to do is construct/piece together my own trading framework, not necessarily from scratch, but perhaps a patchwork of sorts.
1. RSS Feed: One that allows me to pull the headlines and the important information, updated constantly.
2. Trading Platform(I am envisioning a Hotkey Enabled, or Macro enabled - could even be done through Windows Speech Recognition for some things): I have come across an Open source trading platform called Marketcetera. 3. Audio/Video feeds 4. Pertinent legislation and their progress 5. Commodity related information (weather for crop, production for oil)
This list can go on, I imagine, for quite a while.
Reason I am bringing this up is I feel like there is a way to bring the necessary resources together in an effective way, and in a way that is more flexible than the premium subscriptions already out there.
I am eager to discuss this with those of you that this interests.
Disclaimer: I am aware of the inherent risks of day trading/taking short positions, this is something I feel I am moderately disciplined in and of course am hoping to not lose everything I have in the process. <comment><USER2> You should look into the Bloomberg Terminal and try and build something similar to it. <http://www.entrepreneur.com/article/204898> <http://www.bloomberg.com/professional/>

Keep in mind that the bloomberg terminal costs like $1500 a month. So if you do manage to build something even remotely familiar you should stop trading and sell the machine.

<comment><AUTHOR> A lot of great resources here, thanks so much.

</comment></comment><comment><USER3> There's a lot of different "versions" of HFT. HFT right now means millisecond response times. While UHFT means microsecond - collocated at the change. 1us=300m fibre distance.

The fact is, you probably don't have the knowledge to pull off UHFT, or HFT. What you're looking for is algorithmic trading, which is where smart, talented people can be very successful.

marketcetera has an open source platform for this sort of thing. You can write your algorithms in Java or Ruby.

To do HFT properly you need large amounts of capital. You'll be shaving fractions of pennies from trades, but doing a lot of them. For your typical trader with $100K or so, this is a losing proposition.

So, as stuck says your best bet is to sell shovels.

Best of luck.

<comment><AUTHOR> I suppose that could be where I end up down the road, but right now I am more interested in ( as you correctly concluded that I am without the large amounts of necessary capital for profiting from fractions of pennies) the daily/weekly volatility that is oftentimes seemingly unnecessary and counter to the longer term trends.

<comment><USER3> Algorithmic trading.

Hint: backtest on decades of data, not just the friendly waters we have now. Forward test your work for a few months before going live. Use the same amount of capital as you intend to trade with for all your tests.

Also, model with fat tails and decide if you're okay with those risks.

<comment><AUTHOR> Testing my theory is the next step, as no theory is perfect and will certainly change over time. Theories come and go, and may even be true for a time, but I need the ability to effectively test/execute whatever theory that may be.

What is your experience in trading, if you don't mind me asking?

</comment></comment></comment></comment><comment><USER4> fuzzypickle: The most successful companies in the trading business are the one's who don't trade! For example, thestreet.com makes most money with their recommendation systems (doubt if they even make a penny with their own trades). So if you are thinking of aggregating things and providing a service, it is a good idea - but if you are thinking of using it to your own algorithmic trading, it may be an overkill. Remember the trading world has some of the smartest people (doing machine learning, statistics etc) and you are competing with them in the zero-sum-game.

Also as full disclosure, I have setup a fully automated algorithmic trading (using IQFeed for realtime feed + IBAPI), but it wasn't HFT - but medium frequency intraday. I shut it down because it wasn't profitable. But if you are thinking algorithmic trading, you need to get into machine learning and statistics space (most of the info is just noise in this space). I have myself thought about the aggregation as a service, but never got around doing anything in that direction and would love to chat if interested.</comment>


Feds: Postal Service photographs every piece of mail it processes  - <AUTHOR> http://thesmokinggun.com/documents/woman-arrested-for-obama-bloomberg-ricin-letters-687435

<comment><USER2> I thought it had been common knowledge that the way handwritten mail is sorted is that it is barcoded and photographed, and then the address is keyed on by a human.

It doesn't take much imagination that these days each such address is kept, and that the three-letter agencies have a sample of everyone's handwriting, in case it is needed.

<comment><USER3> Only if the OCR couldn't process it, although the OCR has gotten a lot better so the "Remote Encoding Centers" see a lot less volume. You could always tell when your mail failed the OCR in the past because it would have a faint orange barcode printed on it -- this was used to track it through the human encoding system at the RECs.

</comment></comment><comment><USER4> The title is like an onion article. Of course it's photographed as it's sent-- how do you think all that mail is sorted and processed?

</comment><comment><USER5> Relevant: This NYT article from last month that profiled the mail scanning system and visual triage that is used to process the many unreadable pieces of mail that come through:

[http://www.nytimes.com/2013/05/04/us/where-mail-with- illegib...](http://www.nytimes.com/2013/05/04/us/where-mail-with-illegible- addresses-goes-to-be-read.html?pagewanted=all)

I guess it makes sense that every piece of mail is "photographed" at some point...in the sense that a scan is a photograph. So the act of photographing each mail isn't a surprise.

But, as opposed to the Verizon and PRISM cases, when you send a piece of snail-mail, you are literally sending it to the government to be handled, have its "metadata" read and recorded as necessary as a means for it to be sent to its destination.

On the other hand, the aggregation of data and retention of such may not be something we're all happy with, so what's the policy on that?

<comment><USER6> _" when you send a piece of snail-mail, you are literally sending it to the government to be handled, have its "metadata" read and recorded as necessary as a means for it to be sent to its destination."_

But I _don 't_ expect the metadata to be retained indefinitely (except if I requested special services such as tracking or proof of delivery). That has nothing to do with delivering my mail to its destination, just like the phone company retaining my personally identifiable GPS data indefinitely has nothing to do with providing phone service.

</comment></comment><comment><USER7> In other news, google knows the to and from address of every email sent from gmail.

</comment><comment><USER8> More interesting to me is where did the bimbo come up with ricin? I don't think that product has a SKU at most department stores.</comment>


Ask HN: South America or SE Asia for living a few years? - <AUTHOR>

I know many HNers are living in South America or South East Asia, working on their projects while being location independent.
Currently I live in Vancouver but I want to go somewhere (preferably tropic where I can dive, surf etc.) and work online. I'm having hard time deciding where to go.
The main advantage of South America for me is that I can learn Spanish, which is more useful than languages in SE Asia. On the other hand, SE Asia seems more secure and cheaper.
In South America I'm considering Medellin, Colombia and Buenos Aires, Argentina (Which are a little far from ocean). In SE Asia I'm considering Philippines and Thailand.
I'd like my expenses to be around 1000$/month (I live frugally).
So, South America or SE Asia? Please share your experiences. Thanks in advance! <comment><USER2> A few years, I don't know :-) Why don't you start with 3 months first? I've been traveling/living/working in Asia for 4 months now, Indonesia, Philippines and Vietnam. I'm currently in Hanoi, Vietnam where cost of living is very low (you can totally live under $1000/month here with a good apartment).

Considering your additional requirements: dive, surf I would make sure to check out Bali/Philippines. I've heard Cebu in Philippines is quite a dynamic city with beautiful beaches nearby. I wouldn't recommend Manila or Jakarta or even Bangkok if you are not into the giant sprawling metropolis kind of city.

I've also been in South America/Mexico, Brazil/Mexico/few countries in Central America are great for surfing. I haven't been in Colombia so can't tell you about it. Buenos Aires is my preferred city in Latin America: a very European feel, big without being a mess like Sao Paulo or Mexico City, quite cheap, great food (their meat is fantastic), lots of music, culture, bookstores everywhere, friendly people who like to party, etc. The north of the country is gorgeous (Salta, Humahuaca). But yeah, it's a bit far from the ocean :-)

<comment><AUTHOR> A few years is the plan, but I'll probably move between the countries every 3-4 months. I never thought about Bali, and looking into that now. Thanks!

</comment></comment><comment><USER3> Bali is a great place to be for a 1000$ dollars a month or less. Though that is in Indonesia and not the two countries you mention. I haven't been to either of those countries, but I guess they would have the same set of advantages too.

I have also lived in Colombia, and well my expenses were a little higher because I was living a little lavishly, I stayed in Cali / Bogota and Medellin for two months each, and Colombia is great too for what you want. I semi- rented/bought a motorbike, and it was a great convenience to have, if you want to look into that.

I would recommend SE Asia the first time around just from personal experience.

<comment><AUTHOR> I'm guessing you recommend SE Asia because of the number of expats living there? Based on my mini research about, it does seems like a good option for coding/having fun at the same time. I'll need to look at the internet availability/speed. Thank you.

</comment></comment><comment><USER4> I am from south america. Consider Uruguay (punta del este on summer for surf) and Chile ,if you are worry about security, they are near ocean and are the safest places to live.

</comment><comment><USER5> Malaysia -- English-speaking, good internet connectivity, growing startup scene, and very comfortable for below $1,000 a month.

<comment><AUTHOR> Thanks. Any specific city that you can recommend? Is Kuala Lumpur ideal place to live/work/enjoy?

<comment><USER6> I've heard that Kuala Lumpur is not that great and is mostly malls.

</comment></comment></comment><comment><USER7> SE Asia is about half as cheap (depending). So that helps.</comment>


70 tools no remote employee should do without - <AUTHOR> https://medium.com/@G___A/70-tools-no-remote-employee-should-do-without-84e42d4b6e06#.otos0riop <comment><USER2> Looks like an SEO hack. Just from the title.

<comment><USER3> Agreed, yet another example of somebody using Medium for 'link juice'.

At least most authors have the decency to cloak their advertising as an interesting self-help narrative.

</comment></comment><comment><USER4> only 70 tools. They make it sounds so easy to work remotely. I'd go absolutely insane if I had to open a fourth of these on a daily basis along with you know doing actual work.

</comment><comment><USER5> article not quite what i expected.

its just a list of 70 websites... "These resources will help you organize your work, verify your employer and assess the possibility of future cooperation."

<comment><USER6> Not to mention that some of the tools link to the Russian version of the site.</comment></comment>


Coronavirus Cluster from Mexico Cruise Ship Grows; New Case in Alameda County - <AUTHOR> https://sanfrancisco.cbslocal.com/2020/03/10/coronavirus-cluster-from-grand-princess-mexico-cruise-continues-to-grow-new-case-in-alameda-county/ <comment><AUTHOR> _> "We were ground zero and you have 2500 people walking out — right now in Sacramento, up in the foothills, whatever that might be carriers," she said. "What is going on…Just for my sanity (I would like to be tested) because I don't know if I'm a carrier or not."_</comment>


Ask HN: What SaaS platform do you recommend for your clients? - <AUTHOR>

<comment><USER2> For what category of tools? There are many SaaS companies out there, clients may need more than one.</comment>


The dark side of teen texting - <AUTHOR> http://www.pcmag.com/article2/0,2817,2413210,00.asp

<comment><USER2> > For parents, there's a pretty serious downside to all this teen texting, > however. A full 28 percent of polled teens said they had sent fully nude > photos of themselves over SMS. About a quarter of American teenagers > participate in "sexting," according to Wilson's sources, which include > research firms like Nielsen and Pew, as well as media and government > organizations.

What is the "serious downside" for parents now? I convinced two girls when I was 14 to show me their boobs. We didn't have smartphones back then. You think about nothing else when you hit puberty and is totally normal behavior.

Btw how do you send a full nude picture over SMS?

<comment><USER3> The big difference is, sending a picture puts it out into the world where it can be forwarded, saved, uploaded to the web, shared with the entire school ...

It can get way out of hand.

It's much more of a Pandora's box than the private "show me yours" that you describe.

<comment><USER4> Well, this seem to be a good case for the use of DRM.

But it's users the ones who will hold the keys for the kingdom, not corporations.

<comment><USER3> DRM only needs to fail once. Then an image is in the wild and can be endlessly replicated (think Streisand effect / network effect).

<comment><USER4> For a movie, or for the pictures of someone famous?

Yes, lots of people will be trying to break that DRM.

For a random no-one in some small country? Out of millions of random no-ones?

It's a lot better than the current no-protection-at-all scheme.

</comment></comment></comment></comment></comment><comment> guard-of-terra Aren't all of those sexting teenagers "sex offenders" according to the inexcusable USA laws?

Which really makes me want to stand up and go burn a church or two.

<comment><USER5> While I'm sure you can find many church members who would say it's wrong for teens to send nude photos to each other, I doubt you're going to find a lot of support for harsh, punitive government actions in response.

For that matter, I suspect you can find a lot of non-church members who would agree on one level or another its wrong (or at the very least a bad idea), but also would not agree to harsh punitive government actions.

This is out of control government and policians fearful to be seen being even remotely soft on child porn lest they get smeared by their opponents in the next election, not the ever-less-Puritan American public or any portion thereof.

<comment> guard-of-terra The peoblem is, we have an out of control situation and an utter lack of people to blame for this. Everyone it kind of not supporting the shit but nobody actively prevents the shit from happening.

The people to blame for this is the people not to blame for this.

<comment><USER5> No, I'm pretty comfortable blaming lawmakers for this. It's their job to keep the laws up-to-date, and they've failed in this case. It isn't random people on the street locking these kids up, except by a very extended and tenuous (albeit real, but still, small) connection, it's the lawmakers who keep it illegal without regard to human costs, who would rather send teens to prison and blaze them with the closest thing our society has to a Scarlet A (and ours is in many ways worse, certainly harder to escape), rather than risk their reelection prospects, who are to blame.

It may feel more gratifying to blame it on $DUMB_YOKELS, but given that this problem seems to exist everywhere regardless of their influence, it would seem to be an emotionally-driven decision, not a logical one.

<comment> guard-of-terra Lawmakers are just an example of people doing their job poorly. The only people ever defending these broken measures happen to "believe".

</comment></comment></comment></comment></comment><comment><USER6> Also, the dark side of infographics. Bar charts with just one bar make me giggle. :)

</comment><comment><USER7> They mention that texting is on the decline.

I wonder how much of that comes from iMessage on the iPhones, which as I recall, doesn't use SMS but rather data to send messages.

</comment><comment><USER8> Another mobile site fail, forced to use portrait mode and then you can't scroll down. I really wish I could block mobile sites on my iPhone.

</comment><comment><USER9> tl;dr

teens still use texting quite a bit (even though they were not around when it was invented). girls use it more than boys.

reason? because it's easier than calling.

there is also an infographic. fascinating!</comment>


The culture myth - <AUTHOR> http://brandonhays.com/blog/2012/07/02/the-culture-myth/

<comment><USER2> "Corporate culture engineering" has always struck me as a cargo cult. Large, immobile, boring companies try to reinvent themselves as small, nimble, exciting... by copying the _symptoms_ of a great corporate culture, not the causes.

Free food is not corporate culture. Scooters is not corporate culture. Beanbags is not corporate culture. They are the natural expressions of an already-working culture, and will not lead themselves to one just because you've decided to build airplanes out of straw and bamboo.

Shortly before I left Amazon I was given a plastic (code) ninja action figure, which was, supposedly, some kind of new corporate mascot. We were all encouraged to take pictures with this ninja in interesting places, as some kind of "fun" thing. But of course, you can't _order_ fun into existence, and the whole thing smelled very obviously of stuffy suits failing to get it. A fun, exciting company _invents_ traditions like this, not vice versa.

<comment><USER3> I have a bit of confusion about your situation so pardon me asking:

If you work in a team of four and your manager hands you a toy ninja and says "let's take pictures with it!", that is cool IFF there is no higher management?

Or, is it cool only if a peer thinks of it?

Or, the issue is that the idea came from more people at a distance more than X?

Or the issue is that they told you that you must take pics with it, rather than saying "you know what would be cool" ?

Or is it just a general "this doesn't feel right".

Because it would seem to me that your company _invented_ a tradition like that, it's just that you didn't like that it wasn't invented from the guy sitting next to you.

I understand and have experienced the feeling of looking at BigCo and thinking "boy, they are trying too hard to seem fun", but I am wondering how much of the judgement is the _existing_ notion that they are a boring corporate.

<comment><USER2> It is very much contextual.

At my current job, if my manager hands me the toy ninja, I would happily try to take pictures with it. Because my manager is very much knee-deep in the trenches with the rest of the devs, designers, and QA folk day in day out. He has, without fail, and repeatedly, shown that he understands the situation "on the ground" and has always treated our concerns with the respect and gravity demanded.

At Amazon there was not a chance - my manager was the guy barking orders from up high, funneling the whims of even higher management down with little to no filtering or defense for our ability to get it done. He was a straight pass- through, and it sucked. Him handing me the ninja would have been a damned insult (and it was).

The question is not job titles, it's entirely about the working relationship, and this is also why "inventing culture" fails. When you have an incredibly segmented workforce, where management is entirely separated from the grunts, and neither side have any respect for the other, any such "culture" is naturally a decree enforced from the top, rather than a genuine expression of what employees already feel.

</comment></comment></comment><comment><USER4> While the article is a well written summary on what corporate culture can be based on, I fail to see where the "myth" is. Is it that just having culture is all thats needed? I don't think that was ever a misconception. In fact, Delivering Happiness covers most of his points already (re: hiring for culture, openness & feedback).

I think a better and less link-baity title would have been "What culture should and shouldnt be". He didn't really disprove any specific "myth" and only really stated an opinion on how to implement culture. His two unsupported illustrations of bad culture ("Nerf guns and toy helicopters" leading to it being "hollow") were IMO not really myths at all just a setup for the rest of the article.

<comment><USER5> To my shame, sometimes I write the headline of a draft of a post weeks before actually finish it. I'd actually planned to change it, but basically spaced it during my furious 2AM writing session. Please note I didn't submit it to HN or anything, and I typically bristle at linkbait headlines.

But if there's any meat to the "myth" moniker, it's in the growing notion that culture _can_ be cargo-culted by bringing in no-track vacation policies or nerf guns.

</comment></comment><comment><USER6> Interesting thoughts. However for my business plan I have been looking at a bunch of other things and come to some other conclusions.

The first thing is, you can't build culture from the top-down and if you try hard enough you will look like Kim Jong Il. That there is a corporate culture is automatic though and it arises from the everyday way people interact in a business.

In the first days of a business, the founders tend to be very flexible, willing to take on eachothers' roles as needed to some degree. There aren't turf wars. Just everyone working together to make the company great.

Then you hire more people and a problem develops. People feel a need to quantify and control everything. And so management develops. What management really is there fore is to be a political filter which exists in between the employee and the executives and ensures that nobody takes proper risks.

My approach is going to be somewhat different. First we are going with a relatively flat model inspired by WL Gore, Valve and Github, and where we have to add management and escalation, we make these as non-management-like as possible.

Our key values are likely to be openness, collaboration, collegiality, and entrepreneurship.

We will hire quality employees and get out of their way.

Executives will work side-by-side with employees on projects deemed to be of critical importance. Leadership --- and followership --- will be distributed throughout the organization.

This all sounds great until one comes back to the culture issue. Is it even possible to manage corporate culture as one climbs the logistic sigmoid? Or does maturity bring habits? In other words, is it true you can't teach an old dog new tricks?

<comment><USER7> _People feel a need to quantify and control everything_

People don't feel this at all, inherently. Organizations say, we will evaluate you by these criteria, and upon that evaluation will depend your promotion/bonus/opportunity to work on projects of your choosing/whatever.

As soon as you do that, people make damn sure that what they do is counted, and that is a perfectly rational response. And unless everyone knows everyone (and their work) personally and in detail, there's no other way to structure or scale an organization that wants to attract ambitious people.

<comment><USER6> I think most people do reflexively seek to control whenever they aren't feeling secure about everything. When you primarily see risks, you want to make sure you don't go there. The harder thing is to make sure you know where you are going, instead of where you aren't. And there management gets in the way.

I am not saying that quantification isn't important. It is even necessary. What I am saying is I am not so sure that top-down structures don't get in the way more than they help.

</comment></comment></comment><comment><USER8> The manager I least appreciated had banners hung about with the slogan "Is it good for the company?", from office space. Working for him was depressing and, in my opinion, an incredible setback to my career. If anecodotal evidence is ever accepted as proof that shallow attempts at fostering corporate culture is detrimental, I shall more than ablige in providing my input.

<comment><USER9> Were the signs hung with any irony?

<comment><USER8> Too many levels of irony to sort out at this point.

</comment></comment></comment><comment><USER10> 'If an organization has a strong vision, high trust in its people, and tight feedback loops, it would be very difficult for it to have a "bad culture".'

Of these three, only "trust in its people" is relevant to the development of culture, in so far as culture means "a productive and fun environment that I/others would want to work at".

Organisational vision is important as it pertains to preventing myopia; tight feedback loops keep people on track - but a great culture is best achieved by hiring highly skilled people with a good sense of humour, tolerance towards the views of others, strong interpersonal skills, and perhaps a little bit of wackiness - and letting them do their jobs, whilst trusting that when they're goofing around having a laugh it will be positive for the energy of the company and not come at too great a cost to their work.

Edit: Removed emphasis on culture solely for attracting employees

<comment><USER11> I think that's a shallow view of what makes a company enjoyable to work for in the first place, however.

Tight feedback loops not only keep people on track, they provide amazing feedback about what you are doing. That security in knowing that what you are working on matters and that you are doing the job well creates security. Nothing is more important to the morale of employees, in my experience, than feeling appreciated and secure in their work.

The same thing applies to vision. I've met very few people in my life who are ok with picking up a pay-check while working on projects that are failing for companies that are adrift. A company that lacks vision, no matter how amazing the team behind it, will inevitably be a terrible place to work.

At least in my experience. After all, it's not enough for me to really like everyone I work with. I need the satisfaction of knowing that I'm doing a good job (feedback) contributing to something of real importance (vision).

</comment></comment><comment><USER12> The division I co-run at my company was created partially to ship product to market, and partially to ship culture as its other primary product.

We treat our culture as something akin to a shippable technology product, complete with user stories, implementation, measurement, learning, reiterating, etc.

Anyhow: [http://www.blackrimglasses.com/2012/02/16/culture-is-a- produ...](http://www.blackrimglasses.com/2012/02/16/culture-is-a-product/)

</comment><comment><USER13> The problem with mobs is that within a mob a lot of subtlety is lost. So when weighing the relative advantages of one thing which has diffuse, gradual, hard-to-define benefits versus another thing which has concrete, blatant, and immediate benefits the mob will almost invariably pick the second one. And this is a big problem for companies because as a company gets larger and larger it stops being a single group of friends or acquaintances and becomes, essentially, a mob.

Elements of healthy corporate culture such as trust are easily traded off by the mob for the seemingly superior "accountability" of micro-management, for example.

And you see the same patterns in everything at a big company. Ever notice how internal tools in a big company are typically of very shoddy quality? That's because the pain of poor tooling is diffuse and spread out over time while the effort required to create better tools would be immediate and concrete (representing some opportunity cost to develop some shipped feature or such- like). And the same calculus applies to refactoring and re-engineering efforts.

The same dynamics play out in society as large as well. It can be difficult to stand up and fight for individual rights such as freedom of speech or the right to own firearms in the face of strong, highly focused criticism. And if such rights hadn't been enshrined in the US constitution they would be that much harder to retain. Drug use being a perfect example. It can be a serious uphill battle to argue for the right to, say, use heroin and that such a right will lead to a better society. The same thing applies to, say, "letting" employees come into work at noon and work a 4 hour day sometimes.

</comment><comment><USER14> I would leave immediately if my boss handed me a plastic toy and told me to take pictures with it to prove I'm having "fun." That is controlling, manipulative, and degrading.</comment>


On Citizenship in open-source software development - <AUTHOR> https://medium.com/products-i-wish-existed/ddd1f7be1415

<comment><USER2> I run a lot of projects on github (<http://github.com/qdot>). Probably way too many, especially since it's mostly weird device drivers, which means I don't have a lot of people stopping by to help because the learning curve is kinda steep. This means I tend to have things bitrot as I move on to new and different hardware.

The problem is, hardware never dies, it just gets discontinued, its ebay price rises, and the people using it get more and more zealoty as the ranks of users are pared down to those who REALLY require whatever hardware it is. So any time I release a driver, I expect to get email from that point until the end of time. Which sucks, 'cause I have serious project ADD and get bored quick.

Here's two things I've come up with to help the situation in what little ways I can.

I've started releasing all software I think might require further community maintenance under an organization instead of my personal account. For instance, I've got a bunch of health device drivers that I wrote, many of which I don't care about anymore. Instead of letting them rot on my personal account, I opened an org for them (<http://github.com/openyou>). This means I can still have a part on the projects, as well as fork back to my personal account to keep pull request workflows going, but if community wants to come along and work on it, I just add them to the org, give them the perms, and we're good. Having the projects on the org makes things look a bit more "open" then just having it sit on my personal account.

I'm also trying to live in all parts of the cycle. This means if I find a project that's gone quiet that I still use (and I can't get ahold of the author, or if I can, get the authors permission, which hasn't been a problem thus far), I'll create an org, fork to the org, find people in the issues lists that have things that haven't been resolved, and reach out to see if I can get a community group started for new maintenance. This seems to work out well.

</comment><comment><USER3> What _should_ happen is that is that the BDFL (aka king) should appoint a successor if they cannot give a project the attention that it deserves. I've seen this happen successfully many times, and have never seen the "wrong" person chosen.

The problem is that this doesn't happen often enough. It's a very difficult thing to do, putting your baby up for adoption.

So what GitHub should do is a little bit of social engineering to encourage inactive maintainers to bless a fork. It's more than that, of course: you have to ask somebody if they're willing to step up. It's unlikely that one of the forks is comprehensive but there are likely people that would be willing to make their fork comprehensive rather than see the project abandoned.

Handing over the reigns to a committee does not work very well, in my experience. It's better than abandonment, but that's all you can say about it.

<comment><USER4> The biggest problem I've come across on Github is actually getting in touch with the prior maintainer. If the user disables issues on the repo, doesn't list their email nor their github username doesn't match up with something like twitter it becomes impossible to get in touch with them.

There's been 3 repos I've attempted to take over that had no one working on them for +6 months and this was exactly what happened.

<comment><USER5> If GitHub had an "adoption center" for unwanted projects, that would be a step forward. At least give it to a maintainer who's interested.

<comment><USER6> Maybe a maintainer can mark a repo as orphaned and others can bid to adopt it using their karma? Then the maintainer has a list of people to talk to about the future of the project... just helping make that transition easy would be nice.

<comment><USER5> A simple project setting that says "Advertise as orphan" would suffice. Then a banner would appear on the page saying "This project is looking for a maintainer!" and have something akin to an apply button where you might add a short comment about your interest.

With the "Login with GitHub" feature now available, this could even be a third-party service.

</comment></comment></comment></comment></comment><comment><USER7> On a more meta note, I find the channel of feedback and suggestions to GitHub to be virtually non-existent. I see plenty of great suggestions, and I myself have come up with a few, but they always end up as faint echoes leading to nothing. I find this particularly sad for a company that's marketed at being all about "open", participatory, community-driven, etc. The unreadable feeds on GitHub are emblematic of this problem. _EDIT:_ Ditto for the Issues system, which scales really poorly.

GitHub's a lot like Twitter in that, and I think it's a real shame. It discourages suggestions like these, in my opinion.

<comment><USER8> I've had good luck by just emailing email@example.com; they told me that this is their preferred way to submit suggestions/feature requests.

</comment></comment><comment><USER9> "automatic merging" upon consensus -- had to laugh at this idea, the ratio of merge requests that would merge cleanly, automatically is low. Generally they have to be rebased against the exact branch they are to be merged against with human intervention to rectify not only merge conflicts and broken tests but possible interaction issues with recent changes on master branch. In any case, arbitrary changes can (and sometimes should) be made to bring the branch in line with the main code. So branch merges that were "voted in" still need human intervention to merge. Should that then be re-voted on, given that merges and conflict-resolved rebases/merges can include arbitrary changes? Obviously, but what if more changes go into the target branch while folks are getting around to ratifying the rebased merge branch? There still needs to be trusted "merge officers" or whatever who can and will clean up, test, and merge popular branches which were voted on. You can't get around that.

<comment><USER10> As the maintainer of an an alternately alive/not-really-alive github-based project, a problem with changes being voted in is that many submitted PRs are of fairly low quality.

Just because an _idea_ is needed by the consumers of a project doesn't mean that any given _implementation_ will be satisfactory. Many voters will tend to be uncritical and/or have different standards. E.g. did the submitted change include tests? Did it pass existing tests? Did it implement a feature that was actually needed (e.g. did it solve a "docs" bug via a "code" patch)? Bikeshedding over existing functionality? The list goes on.

I'll also note that GitHub's great CI integration support (used by Travis CI, the Jenkins GitHub plugin, etc.) can significantly aid the proposals in TFA. E.g. a PR that doesn't pass CI would automatically be ineligible for merging.

</comment></comment><comment><USER11> I got so much flack for suggesting a year ago on a repo. The 'maintainer' came back with the point that he/she gave commit access to everyone-ish. The problem with that is you will get very aggressive individuals who will commit, and then others who will revert and this cat<->mouse game continues on until the community suffers, the project dead.

Just some food for thought.

I think all these experiments are worthy. Who knows what will happen but lets try.

<comment><USER12> > The problem with that is you will get very aggressive individuals who will > commit, and then others who will revert and this cat<->mouse game continues > on until the community suffers, the project dead.

Which is exactly how wikipedia works (with the concept of admins who can protect pages, though). I wonder if this could apply to FOSS development.

<comment><USER13> _doesn't work_. Edit wars and arbitrative administrativia are a major social problem on Wikipedia, and it has a problem retaining contributors.

</comment></comment></comment><comment><USER12> Great idea. Maybe a quick fix for that, before implementing such a different change, would be to automatically point to the most active fork in project description when there hasn't been activity for a while.

Being able to accept in a fork a PR made in upstream would be great, too.

<comment><USER14> Agreed. And this wouldn't have to wait for github to implement. Perhaps its possible to create a webservice that could examine the forks in a network graph to identify the most active fork -- and provide a url for the repository that resolves to this most active fork. Something like bestfork.com/reponame --> github.com/newmaintainer/reponame

EDIT to be more precise, my example github link should read github.com/ _defacto_ maintainer/reponame

</comment></comment><comment><USER15> I still think there should be one maintainer with absolute control. Otherwise, "citizens" could take away someone's open source project with "democracy" or mob rule.

Imagine building something you are incredibly proud of to grow legs and walk away before you wanted it to.

<comment><USER16> People who equate open source (really peer production, but they don't understand the difference) with democracy always forget that in democracy the citizens have to pay taxes.

<comment><USER17> You pay taxes for government, regardless of how democratic it is or isn't, not for democracy.

</comment></comment></comment><comment><USER18> Article would have been MUCH better if he showed actual examples of these problems (specific github repos, dates, current state). Beyond that, I think Github fits the natural tendency of projects to be heavily driven by a small number of individuals. The idea of democratization is often silly on open source projects because the level of merit between individuals varies massively.

<comment><USER19> > actual examples of these problems

I think anyone who uses github enough has run into more than a few.

Look at github's very own fork of one project:

[https://github.com/github/aws-s3/tree/url_for-with- parameter...](https://github.com/github/aws-s3/tree/url_for-with-parameters)

<https://twitter.com/davidnwelton/status/304972225411440641>

</comment></comment><comment><USER20> I think almost every active user has something they want from GitHub, so I thought I'd get this off my chest in the comments:

Personally, I use Issues a lot, and if it would be great to be able to upload any file related to that issue.

I understand how that could be costly, and you might not want to push such a potentially complicated feature onto your 3.4m.

So:

\- Let the majority use your free (meaning no-extra-costs) storage with current limitations.

\- Add a tab under the repo settings labeled 'File Storage'

\- Under Repo X > Settings > File Storage, let me use my own S3 key/bucket pair for that repository's Issues files.

(Example: PSD, .zip/.rar/.tar/.bz2, etc related to the project.)

Thanks for listening.

</comment><comment><USER21> Should this be handled by Github? Package systems like RubyGems seem like the natural point to designate an "owner" of a library.

<comment><USER22> Yes this is a crucial point. For most end users, the version on PyPI, CPAN, RubyGems, whatever, is the canonical version. Only the original author has the right to push a new release there. So whatever solution Github and/or its community comes up with for the overall issue, it needs to take account of this.

</comment></comment><comment><USER23> If you add karma to Github you'll need to actually turn it into a currency that you can buy/sell/exchange/etc.

<comment><USER7> I'm not really sold on this idea, and if it ends up getting implemented, it should definitely be on a per-repo basis.

I might very well turn something like this off, so the "karma" should only exist within the sphere of a repo or (forked) project.

This would just lead to a StackExchange-like gamification of the whole system.

<comment><USER24> Agreed. A dev with 100s of "karma points" on a certain PHP project should start at 0 on other projects (both of the same and different languages).

</comment></comment></comment><comment><USER25>
       1. Gets lots of karma from silly/fake projects
       2. Send in a PR to a high profile project with obfuscated malicious code
       3. ???
       4. Profit.

<comment><USER26> Why can't you do this now?

<comment><USER27> Yeah, I'm not really sure what his point was with that. It's not that the article proposes a god github account that call push to any repo without being watched.

</comment></comment></comment><comment><USER28> Voting seems unattractive to me. If I trusted somebody and had enough respect for their work to give them commit access to a repo of mine, then I'd also trust them to merge whatever 3rd party patches they wanted. No point in tying things up with a slow layer of democracy. I can imagine having problems getting people to bother to vote at all on work they have no interest in.

Actually I don't have my own repos these days, but it's irritating to me how large the barriers to contribution really are in the free software world. We have complicated software, often more complicated that it should be, written in all kinds of different languages and frameworks, to the point that just finding the latest sources, getting the dependencies, figuring out how to build it is hard enough, then also understanding it well enough to make your changes, and then also dealing with the idiosyncrasies of whatever person or group is maintaining the thing, to actually get a patch accepted. It's not easy even for a decent programmer.

</comment><comment><USER29> Or try and make github/bitbucket into something like an open source app store. Provide features to allow project creators/developers to build a business model around their own projects. Not all can be commercialized but I am sure some can be - having a support business model.

This could be on lines similar to nginx/varnish etc.

Sourceforge tried sometthing like this, but maybe there were flaws in how they tried to implement it.

You would need something like an SLA created once which can be shared by similar projects and have project leaders/communities (OSS Project leaders/communities) use variations of it which they use to provide support for their customers.

All fee collections/payments etc happen through a github/bitbucket gateway.

</comment><comment><USER30> I think github is moving there...

Currently it has graph on individual's profile that tells what he has contributed. \- Something like OpenBadges can be added to "top contributor to repo" etc.

One can compare fork and see age of the same. So say original contributor is no longer maintaining it, one can check fork. Visually.

\- A good value addition could be showing it somehow on front page.

Issue voting - Yes, number of people watching could be good.

My addition would be \- Explicit mention of license mention on landing page. like google-code \- tags like google-code

</comment><comment><USER31> Actually I think this is the project for another service.

GitHub would put too much at risk in following such a huge change in its core.

Really, this is a good idea, for a competitor.

<comment><USER7> There are two sides to this: a problem and a suggested solution.

People abandoning projects are a real problem. One way to go about it is to give all the people watching it a notice when the repo owner hasn't interacted with the repo in, let's just say, three months.

They could just leave it at that, or they could add a post mortem note with the most popular forks, or call for a vote for the unofficial official replacement repo.

The problem is real, but like you, I don't like the suggested solution all that much.

<comment><USER32> > People abandoning projects are a real problem

This is a real problem, and I hope Github tries to address it before it becomes a desolate wasteland in 5-10 years. :-)

</comment></comment></comment><comment><USER33> Isn't this the model that Linus Torvalds (effectively) uses with Linux? He ultimately is the maintainer, but delegates responsibilities to trusted individuals for large chunks of the codebase.

And they gain that responsibility based on prior work.

<comment><USER34> Well, Linus still ultimately pulls from his lieutenants' repos though. Nobody has direct push access to Linus's repository but Linus (if I recall, at least.) That's functionally equivalent to github's pull request system.

What's better about Linux is the fact that Linus cares enough to keep things up to date and have a functioning release process with freezes, etc. All of that can be done in github, it just requires maintainers to put in the effort.

</comment></comment><comment><USER35> Ummmm, this seems like mental master-BEEP(watch your mouth shaft)

Core redesign of GitHub's product from hosted source control repository to Open Source social construct. This seems like a completely different product from GitHubs core.

<comment><USER13> GitHub might provide mechanism, but there is way too much policy in these proposals. Much of it could be implemented outside, though. If it's successful GitHub might take steps to remain the centre of gravity.

</comment></comment><comment><USER36> If owner has abandoned his project why not fork it and fix it yourself?

<comment><USER37> Because now you're on the hook to maintain that fork forever. And because your fork, by definition, has diverged from "the mainline" because there really isn't any "mainline" anymore. You might have 2 or 3 or 10 or 100 _other_ people who also forked just to fix one random bug or whatever, but there's no real cohesion or interaction between all these isolated forks.

Best case, one of the forks clearly emerges as "the" new primary repo and everybody shifts their focus there. But that doesn't always happen. It's a real problem with the fork-centric model that Github promotes. Of course, one could argue that this state of affairs is still better than the "old way" where forking a project was a very heavyweight process and rarely happened at all. But that doesn't mean the current model couldn't be improved further.

Is this Citizenship idea the right way? I don't know, but - at worst - it's a good discussion to have.

<comment><USER38> > but there's no real cohesion or interaction between all these isolated > forks.

Isn't _this_ the real issue that should be fixed then? Some way when you form a repo, you get notice of all the forks and PR's of the original repo, giving you the possibility to merge everyone's work and become the defacto upstream.

<comment><USER37> _Isn't this the real issue that should be fixed then? Some way when you form a repo, you get notice of all the forks and PR's of the original repo, giving you the possibility to merge everyone's work and become the defacto upstream._

IMO, yes. Providing some kind of mechanism to make it easier to gain cohesion between all the disparate forks is definitely at least part of the answer. I haven't spent a lot of time thinking about this, though, and I don't pretend to have any real concrete suggestion in mind.

</comment></comment></comment></comment><comment><USER39> I think this could be a great opt-in feature.</comment>


How the Biggest YC Companies Got Started - <AUTHOR> http://mixergy.com/ycombinator

<comment><USER2> Raldi, I made a change in response to your comment: "I think it would be a lot more ethical if you presented it openly as such, right from the start. For example, the big button at the bottom of the page could say, "Subscribe to our interview-of-the-week series!""

The button is changed. It didn't occur to me that people would think that this wasn't coming via email over time. I guess I was too close to this project.

<comment><USER3> Thanks! I've edited my comment.

</comment></comment><comment><USER3> The interviews are trapped behind a spamwall. You can't reach them until you divulge your email address. Once you're on the list, only then do they admit that they actually only have one interview available so far, and send you a link to download it.

Edit: Originally, I included the direct-download link here. But Andrew's made some changes to the site's UI in the past hour which directly addressed my biggest objections, so I'm removing it.

<comment><USER2> Mike, I have the interviews. They're interviews I recorded over the past 6 years.

I'm trying a new way of distributing them. It's an experiment to see if giving 1 interview at a time will get more people to listen to each interview. In the past, I put all the interviews on a single page, but I looked at the data and noticed that most people download the interview with the biggest name and ignore the others. I think the less known people are often more helpful.

And I would never spam you. I'm asking for an email address because that's the easiest way to do this. The original idea for this was to have it come out via RSS so you could get a new one in your podcast app every couple of days. But that seems like a pain.

<comment><USER3> I think it would be a lot more ethical if you presented it openly as such, right from the start. For example, the big button at the bottom of the page could say, "Subscribe to our interview-of-the-week series!"

<comment><USER4> Andrew has spent a lot of time and energy compiling this reference. I don't think it is unreasonable for him to get an email address in exchange. We all love free content but we frankly are not entitled to it.

<comment><USER2> Thanks Garry.

My goal is to give people 1 interview at a time and see if they listen to more interviews than if I give them 10 at once.

I went with email because it was easier than the other options.

<comment><USER3> Have you considered adding a tip jar, or a for-pay, instant-access-to-any- interview option?

</comment></comment></comment></comment></comment></comment><comment><USER5> Quite possibly the worst article submission ever that is voted up only on its merit of a good clickbait title.

<comment><USER2> What don't you like about it? Say more. I'm open to your feedback.

<comment><USER6> It might a combination of these few things:

1\. Only a single interview 2\. No interviews with actual YC-backed founders 3\. Has a spamwall 4\. Has a bunch of audio ads at the start

Edit: Andrew has addressed all four issues almost immediately. I believe that my fourth issue was just me making a frivolous point. My initial impression was that there were no interviews at the moment (besides the one with Jessica Livingston) and hearing a few ads after jumping through the hoop felt like I was deceived. Thanks for the clarification, Andrew.

<comment><USER2> 1\. Only a single interview

>> I might have explained it wrong. It's multiple interviews. (After reading your comment, I made a change to the text above the email box.)

2\. No interviews with actual YC-backed founders

>> I'm sending my interviews with the founders of Airbnb, TwitchTV, inDinero and other YC-backed companies.

3\. Has a spamwall

>> I would never spam you. I'm not an anonymous internet guy. Many people from HN have been to my house for dinner of the office for a drink. If I ever spammed, I could never look them in the eye.

4\. Has a bunch of audio ads at the start

>> You're right. I'll ask my editor what it would cost to have the ads edited out of all my old interviews. If someone here has a suggestion for how to do it, let me know. It might be too expensive to do to over 1000 interviews, but you're right and it's something I should explore.</comment></comment></comment></comment>


Ask HN: Learn to Code or Learn to Lead? - <AUTHOR>

I'm a new co-founder of a start-up that uses predictive analytics, which is my area of expertise - mainly forecasting and agent-based modeling.  I code badly and in all my work I have always partnered with people who code my ideas. I've been reading that if you want to be effective at your start-up, learn to code.  Should I learn to code or learn to lead the coders?  Your insights appreciated. <comment><USER2> My ideals of a leader is someone who can learn from their team and use that to synthesize a team vision. Your leadership would improve greatly by asking for help on coding better.

<comment><AUTHOR> Thanks for the reply. Next question: do you recommend a place to learn? There are a number of places out there. I could ask my team but they are busy coding :-).</comment></comment>


Augmenting Human Potential with Omatum - <AUTHOR> https://www.omatum.com/ <comment><USER2> So I was excited to understand what this tool was all about, but I got lost in the text pretty quickly. At first it seemed like a personal organization tool, then it looked like a team management tool, then I wasn't really sure and bailed. If you were giving me an elevator pitch, what would it be?

</comment><comment><USER3> The sales pitch here seems to be: we can organize your whole life better than you can, but in order to buy into that I have to believe that technology is capable of being better at general purpose intelligence than a human, which is obviously not the case today. This quote attempts to speak to the technological advantage:

> _The human brain processes twelve tasks per minute. Omatum can process, > maintain, and update 60 tasks per open instance at the speed of your CPU._

It's unclear how this is defined, but one thing is for sure, I don't measure my success or happiness by number of tasks processed. Personally my goal is make solid progress on one critical task each day, and I put a lot of effort to optimizing those tasks, and clearing other blockers and mental detritus (which, btw, often comes in the form of random apps, tools and notifications). I'm open to the idea of data-driven tools helping me make better decisions, but doing things faster is not a good pitch by itself.

There is supposedly some underlying tech here with broad applicability that drives all these products, but the marketing neither describes that tech, nor does it explain a concrete use case. As a result, neither the engineer nor the consumer in me sees a compelling value proposition.

My advice is go concrete, and prove your value for one specific use-case first. If you can get a passionate group of users around that then you can build on that. Going too broad before you have traction will likely elicit a "meh" response from most visitors.

</comment><comment><USER4> > Life is a complicated symphony of events, it isn't easy to arrange a perfect > solution on your own.

Implicit here is the assumption that there is a problem (life itself?) to which a solution can be arranged, and that "arranging a perfect solution" is a worthy aim.

Why does one need to seek a "solution" to a symphony?

</comment><comment><USER5> I don't buy it, but I do like the general idea of intelligence augmentation [https://en.wikipedia.org/wiki/Intelligence_amplification](https://en.wikipedia.org/wiki/Intelligence_amplification)

</comment><comment><USER6> I honestly thought this was a parody and kept scrolling in hope of a punchline :(</comment>


Color of My IP - <AUTHOR> http://colorofmyip.com <comment><USER2> The same principal as [http://whatcolourisit.scn9a.org/](http://whatcolourisit.scn9a.org/) what colour is it?

</comment><comment><AUTHOR> Added IPv6 support</comment>


Why is South Korea using a wooden computer to communicate across the DMZ? - <AUTHOR> https://theoutline.com/post/2851/why-is-south-korea-using-a-wooden-computer-to-communicate-across-the-dmz <comment><USER2> Here I was, thinking they might be using an abacus for some reason, only to discover they're talking about a _case_ , not a computer.

Wooden cases have been used many times over the years. In fact my first computer back in 1978 had a wooden case: North Star Horizon. S100 bus, Z80, 16K RAM, 90K Floppy.

[http://www.old- computers.com/history/images/Timeline_10-77_N...](http://www.old- computers.com/history/images/Timeline_10-77_Northstar_2.jpg)</comment>


TED turns away mother and her baby at conference for women - <AUTHOR> http://mashable.com/2015/05/28/ted-women-turns-away-mother/

<comment><USER2> Here we go again. Please explain to me how just because women do something that is about as regular and expected as possible like having a baby, that they should somehow be exempt from rules and preventative measures to assure that not everyone is disturbed by what is inherently as psychotic asshole of a human as we get. A baby doesn't care that hundreds of people have paid significant money to attend a presentation by an expert in a field, which is also being recorded and will be distributed around the world in hopes of educating people far less privileged that said baby. It is not unreasonable to not allow any human that cannot be respectful of others around them. Unfortunately, babies are kind of assholes that don't give a shit what you or anyone else around them want.

<comment><USER3> What's next? Banning people with mental disabilities from conferences/anywhere else really because they might inconvenience you? Banning disabled people because they might require more space and block your view?

And what the f __* are you even talking about here? "in hopes of educating people far less privileged that said baby."</comment></comment>


Lambdas in C# 3.0 (2007) - <AUTHOR> https://msdn.microsoft.com/en-us/library/bb308966.aspx#csharp3.0overview_topic7 <comment><AUTHOR> C# had cool stuff way before JavaScript, but it feels like it doesn't get the credit it deserves because there aren't enough hipsters using it. </rant></comment>


Welcome to Tech: Where everyone is sexist and there are no safe spaces - <AUTHOR> https://medium.com/@guisebule/welcome-to-tech-where-everyone-is-sexist-and-there-are-no-safe-spaces-9ecc05fad3ea <comment><AUTHOR> Sorry guys, I have had enough of third wave harpies.</comment>


Apple to Ramp Up Work on Augmented Reality Headset - <AUTHOR> https://www.bloomberg.com/news/articles/2017-11-08/apple-is-said-to-ramp-up-work-on-augmented-reality-headset <comment><USER2> The cyberpunk and tech enthusiast in me can't wait for AR "headsets" to get to a point where they are super light and indistinguishable from normal glasses, but then the cynic in me believes we'll end in a world not far from what was portrayed in that recent short video Hyper Reality[1].

I am looking forward to those first few years of it where the tech is wild and new and people are playing with it in new and interesting ways. Just imagine how much you can do with it. You can have augmented TV and movie experiences. Pairing your AR headsets with your video game console systems (or PCs) for augmented video gaming experiences, not to mention complete self-contained AR games. Augmented concert experiences will be a thing. Museum augmented tours instead of your basic audio tour.

[1] Hyper Reality - [https://vimeo.com/166807261](https://vimeo.com/166807261)

<comment><USER3> It's going to be a total panopticon.

<comment><USER4> pan·op·ti·con, paˈnäptiˌkän, noun

a circular prison with cells arranged around a central well, from which prisoners could at all times be observed.

<comment><USER3> What do you consider to be "real" embedded development platforms?

</comment></comment></comment></comment><comment><USER5> They are hyping AR and the ARkit, but thus far no recent AR apps for the iPhone have blown me away. The majority of the apps just overlay info thru your camera view though those Measuring Tape apps are innovative in concept.

AR Glasses if they are not bulky and feel/look like sunglasses I can see them being adopted. Then the whole overlay of info in your real world view makes the best sense/UX.

Overall I want to see innovation like using AR Glasses to change your view like view how things looked at this spot 50 to 100 years ago. Being able to see a daylight view when it's nighttime.

</comment><comment><USER6> Was pretty worried when Google Glass failed that it was going to impose a decade-long 'AR winter' on us. With this and Hololens, maybe I needn't have been so concerned.

<comment><USER7> I call it the 'AR Shower'.

[http://images.gawker.com/18m28bzmemr1ojpg/c_scale,fl_progres...](http://images.gawker.com/18m28bzmemr1ojpg/c_scale,fl_progressive,q_80,w_800.jpg)

</comment></comment><comment><USER8> It's interesting to imagine what a distant future would look like where everyone wears these things. For example, if every vehicle on the roads were either a self-driving car or was driven by a driver using AR, we could get rid of traditional road signs.

Imagine speed limits that dynamically change based on time of day or traffic conditions, streets that dynamically switch between being one-way or two-way, etc.

I think the chances of that happening in my lifetime are vanishingly slim, but it's still a fun thought experiment.

<comment><USER9> Can't digital signs accomplish that? And if you're not driving the car, then the car can get notified of the changes without there needing to be a human visible sign.

I have a hard time believing the long-term future is everybody wearing something over their eyes. Seems like the better alternative is just to make the environment smarter.

That or implants.

<comment><USER8> Sure, but you could even e.g. dynamically change the number of lanes and their direction, which would be much harder to do smoothly with physical signs and lane markings. Roads could become wide unmarked surfaces of pavement where everything is dynamic.

When smartphones went from having small screens and physical buttons to iPhone-style blank slates for any content, they got a lot more powerful and people came up with lots of innovative uses for them. You could imagine the same thing happening with my example of roads when it becomes essentially free to test new ideas for how traffic should flow, etc.

But again, this is all just a thought experiment. I don't expect it to actually happen.

</comment></comment></comment><comment><USER10> This is one of those I'll beleive it when I see one rumours

</comment><comment><USER11> Finally! I've been really impressed with the Microsoft Hololens and I was hoping to see more action in the AR headset arena. This is a great move in my opinion!

</comment><comment><USER12> Augmented Reality Headset that conveniently hides the cash stashed offshore by Apple.</comment>


Don't bother trying to style custom form controls—they break in Firefox - <AUTHOR> http://coderwall.com/p/a7tbrq

<comment><USER2> A better message would be "don't style form controls; leave that up to the user-selected operating system look and feel."</comment>


Sharding data models - <AUTHOR> https://www.citusdata.com/blog/2017/08/28/five-data-models-for-sharding/ <comment><USER2> For financial transaction services I can recommend sharding first by customer, then by ledger. As a result, instead of enforcing double-entry book-keeping standards within a single database, do it at an application-specific middleware server layer to enforce only the guarantees you need.

As with all decisions, there are tradeoffs. For a little more up-front complexity and a tiny nominal performance hit, this allows maintenance, encryption, non-uniform storage paradigms to suit individual ledgers, rolling upgrades, storage location migration, and other cool stuff which is typically painful with traditional all-or-nothing RDBMS architectures.

<comment><USER3> Presumably you want a fairly strict consistency guarantee for whatever double- entry invariants you do have. Does that cause a lot of complexity when you kick it up to the middleware layer?

<comment><USER2> It depends what you mean by significant. SQL update becomes a two phase commit with double network connection setup, execute, teardown latency as a worst case. External auditing must be made. Sounds like hell.

A flip-side view is that, in many cases, if you really want to trust your data (not your database), then you want to be doing this stuff to a large extent anyway... which means that, basically, it's just enforcing good practices that should have already been present.

Complexity and per-TX latency increases, but for that you get maintainability and a great deal of flexibility. Nothing is free... take your pick!

</comment></comment></comment><comment><USER4> Citus is a pretty powerful tool. We recently used Citus to help scale one of our databases and wrote a blog post about it: [https://hipmunk.github.io/posts/2017/Aug/16/a-fare-cache- in-...](https://hipmunk.github.io/posts/2017/Aug/16/a-fare-cache-in-a-sharded- data-cluster/)

<comment><USER5> What were the before/after performance and load numbers? Your post mentions that data-refresh frequency was an issue, but doesn't mention what sort of problems it caused. Would love to hear how the move affected query perf

</comment></comment><comment><USER6> Then there's the 0 model for sharding - don't shard, just replicate everything, everywhere, with eventual consistency and MVCC

<comment><USER7> Sharding and master to master replication are two different things.

The tradeoff of master to master replication limits you to CRDTs, append only logs and manual merging of conflicts by the end user. Alternatively if dataloss is an acceptable tradeoff you can also use a last write wins strategy.

Sharding is basically having one isolated "database" per X (User, location, etc) but the tradeoff is you can't have transactions across two databases.

Document databases usually do both. Each document is it's own tiny database with atomic updates which then can be distributed over the cluster and they support multi master replication for availability/automatic failover.

<comment><USER8> Or you can do multi master replication, where you write to all replicas synchronously (and deal with downtime of replicas by continuing if you manage to write to a majority of them).

</comment></comment></comment><comment><USER9> What ORMs out there natively support sharding well? I use Django the most and whenever I look into Django sharding, I don't see very many options being kept up to date...

<comment><USER10> I'm not sure any do completely out of the box but many are very close.

We've created a library at Citus to make rails sharding turn-key, activerecord-multi-tenant. We have a Django one in the works, if you want to take a look and give us any feedback on it please drop us a note. From what I've seen hibernate has some out of the box support, but we only have a few customers leveraging it so not as familiar with it.

<comment><USER9> Unfortunately, I don't think I have the time to test anything rigorously, but I would definitely be interested in learning more about the Django solution when it's more mature! Is there a mailing list or something I could sign up for?

</comment></comment></comment><comment><USER11> What distinction is being made between sharding by entity and sharding a graph? The approach seems to be the same, just with different naming.

<comment><USER12> Yeah, that section doesn't seem to be making much sense. I don't think there are actually any real examples of "graph sharding" in the wild. The graph databases that are available, like Neo4j, don't usually natively provide horizontal partitioning. (Of course -- the problem of finding the minimum k-cut of a graph is itself NP-complete. Doing this incrementally with a dynamic graph is even harder.)

The one solution that was mentioned, Facebook's TAO, isn't actually really a database; it's a cache, which means that it doesn't _really_ have to deal with sharding in the way that persistent stores do. And it doesn't really shard at all; it basically stores a complete copy of the world's social graph in every region, which it can just populate from that region's MySQL replicas. (It's amazing the things you can do when you can be eventually consistent.)

(From what I recall, the main social network's MySQL _also_ isn't really sharded by graph in any fancy way; it's basically "just" hash-sharded by entity ID.)

<comment><USER13> dgraph does try to provide horizontal scaling out of the box. The sharding is done by predicate - cf [https://docs.dgraph.io/deploy/#multiple- instances](https://docs.dgraph.io/deploy/#multiple-instances) for a documentation link ; I am not sure how it behaves for very frequent predicates though

</comment></comment></comment><comment><USER14> I would have liked to read more about graph sharding. The article was rather sparse about it.</comment>


The Captive Aliens Who Remain Our Shame - <AUTHOR> http://www.nybooks.com/articles/2017/01/19/american-revolution-captive-aliens-our-shame/ <comment><USER2> Based solely on seeing this title scroll by on HN, I was so hoping this was going to be a piece about Roswell...

<comment><USER3> My guess was Orcas or another intelligent animal. Kind of a shame because the content of the article is good but you'd have no idea what it is about by the title.</comment></comment>