Genetic evidence suggests that, four millennia ago, Indians landed in Australia - <AUTHOR> http://www.economist.com/news/science-and-technology/21569688-genetic-evidence-suggests-four-millennia-ago-group-adventurous-indians

<comment><USER2> >> Sadly, the archaeological record has yet to reveal tandoori ovens or fossilised chapatis in Australia.

Only marginally relevant to the article but it never ceases to pain me when I see another piece of evidence that the delicious and varied south indian cuisine is not well-known outside south india.

<comment><USER3> I share your pain.

Blame it on the surfeit of "Balti houses" in UK which have managed to crowbar faux north indian cuisine as _the only_ Indian cuisine into brit pop culture!

<comment><USER4> Try west London, particularly Hounslow. Plenty of south Indian cuisine and at very reasonable prices.

</comment></comment></comment><comment><USER5> In similar news, researches recently found that Madagascar was colonized by Indonesian people, not people coming from mainland Africa. Moreover, there were only about 30 female settlers (no information about male settlers as the study was done on mitochondria DNA, which is only passed from mother to child, but not from father to child).

<http://www.economist.com/node/21550759>

[http://rspb.royalsocietypublishing.org/content/279/1739/2761...](http://rspb.royalsocietypublishing.org/content/279/1739/2761.short)

<comment><USER6> _In similar news, researches recently found that Madagascar was colonized by Indonesian people, not people coming from mainland Africa._

The genetics study is a confirmation of a fact that was known for a long, long time on linguistic grounds. (All of the major languages spoken on Madagascar are Austronesian languages, cognate with the languages from farther east like those of Indonesia and Polynesia.) The travel of some food crops to Madagascar with the early seafaring settlers also suggested this.

</comment></comment><comment><USER7> Link to the original publication: <http://www.pnas.org/content/early/2013/01/09/1211927110>

(I'm sorry that it is behind a paywall.)

Irina Pugach, Frederick Delfin, Ellen Gunnarsdóttir, Manfred Kayser, and Mark Stoneking. Genome-wide data substantiate Holocene gene flow from India to Australia. PNAS 2013; published ahead of print January 14, 2013, doi:10.1073/pnas.1211927110

</comment><comment><USER8> Near my hometown in Australia human remains have been found that are older than any existing model of human migration says they aught to be.

Nobody has come up with a good explanation of how human could have been in Australia so long ago.

<http://en.wikipedia.org/wiki/Lake_Mungo_remains>

</comment><comment><USER9> If you're interested in the work being done to understand Indus script, Rajesh Rao delivered a TED talk with plenty of machine learning goodness:

[http://www.ted.com/talks/rajesh_rao_computing_a_rosetta_ston...](http://www.ted.com/talks/rajesh_rao_computing_a_rosetta_stone_for_the_indus_script.html)

<comment><USER10> Rao's claims are nonsense, according to computational linguist Richard Sproat (Bell Labs, University of Illinois, OHSU, now at Google):

<http://www.cslu.ogi.edu/~sproatr/newindex/indus.html>

<comment><USER11> ...and the counterargument has been debunked too. A lot of complaints were just ad hominem attack alleging Tamil supremacy, Tamil ethnocentrism. The first note of dicord that strikes you as an Indian is that bar one, all authors of that paper were from North India. If any Tamil bias is expected from that rergion it would be a bias against Tamil.

I dont know why Rao's claim (well they arent quite claims either, not yet atleast, they are rather a call for further investigation) have been so spectacularly blown out of proportion and why people get so upset about it.

Sproat at least does not say that Rao in any form claimed that his work "proves" anything one way or the other, rather that it was the "discussion" around the paper that claims a proof. I would have been happier if that distinction was made clearer.

In anycase if you search HN you will find an interesting thread discussing this topic. Learned quite a bit from it.

Here is the previous discussion <http://news.ycombinator.com/item?id=4061748> and some here as well

<http://news.ycombinator.com/item?id=4154755>

EDIT: @kylebgorman I dont consider myself qualified enough to agree or disagree, but have to say that I was taken aback by the push back it received, particulay the vociferous allegation of Tamil supremacy.

EDIT @kylebgorman wait I didnt say that the paper or the criticism was ethnically biased, but that ethnic bias was a major criticism that was levied against Rao's paper. This comment on the thread will have some examples <http://news.ycombinator.com/item?id=4062129> rebuttals, counter rebuttals, , counter-counter... you get the idea.

<comment><USER10> The many computational linguists who have discussed these papers in public fora have expressed disgust with the scientific naïveity of the Rao et al. paper; the pushback is due to its very poor scientific merits (in contrast with its very high publication profile), not some ethnic bias as you seem to allege.

</comment></comment></comment></comment><comment><USER12> This is very interesting, I always thought of Australian natives as having been a part of an out-migration of similar populations (remnants of which still exist, e.g., Andamanese in India, small populations in Thailand, Malaysia, and Philippines, etc...) from South/South-East Asia -- with intermarriage between further migrations (Indo-European speakers, Austronesians, etc...) and these remnant populations leading to form the different ethnic groups along the route of migration.

I wonder if another possible explanation for the Dravidic SNPs is due to intermarriage with Indonesian population -- themselves probably bearing some Dravidic DNA due to India's influence on Indonesia at one time -- that traveled to Northern Australia from the late middle ages until early 20th century for fishing and trade purposes.

</comment><comment><USER13> It seems a little bit generous to allow 30 years per generation. The current average maternal age at childbirth in Western Europe is apparently around 29.5 years old.

Wouldn't we expect that to be earlier in aboriginal cultures?

<comment><USER14> Only if you assume a generation is keyed on the "first" birth; it is matrilineal; that culturally child-birthing begins as soon as puberty kicks in (rather than being forestalled by social taboos or customs); and that puberty kicks in at roughly the same age then as now, even in an area of scarce resources.

I might think, off the bat, that 30 years is too high as well, but I also might assume they picked that number for a reason. Certainly, I'd like to know what it is as well, as that number is one of two key variables that creates the time-span value used for dating.

<comment><USER15> > ...it is matrilineal...

Bear in mind they are counting mutations on the y-chromosome, which is based from father to son. Over a wide range of cultures men on average mate with women who are younder than them, so the time between generations by patrilineal descent will be greater than the time by matrilineal descent.

<comment><USER13> Ahhh, that makes a lot more sense. Thanks.

</comment></comment></comment></comment><comment><USER16> It's interesting the hypothesis that the dingoes came in the same migration. Is there any study of the genome of dogs/lingoes classified by geographical origin?

</comment><comment><USER17> A scenario: <http://westhunt.wordpress.com/2013/01/15/a-three-hour-tour/>

</comment><comment><USER18> If this is true, is there any evidence of cultural or technological contamination? Surely these seafarers brought a lot of new ideas and technology with them (such as agriculture).

</comment><comment><USER19> Can India claim rights to Australia?

</comment><comment><USER20> The article has various flaws in it. That includes their imaginary dating of the "Indian civilization" as well as the assumption behind the SNP mutations based age and origin correlation. The nomenclature used on the map is also wrong. There are more than a dozen mistakes in it.

There is no name of the author on the article either. I wonder if this is propaganda, pure carelessness or something else. Did the Zurich guys even approve publishing such non-sense?

<comment><USER21> That's an interestingly emotional, defensive response. Most HN readers would simply have found it an cool scientific article. I don't think the Economist science section really has a "propaganda" axe to grind. (And as others have said, they never sign articles.) What's the source of your reaction?

<comment><USER22> It could just hit close to home. These anthropological 'origin stories' sometimes contradict racial identity. For example, if you were to suggest that the Japanese were descended from Korean farmers that emigrated from mainland Korean, many Japanese would find that offensive because there is deep racial hatred of Korea (though maybe only truly present in the older generations) and a racial identity of being natives to Japan.

<comment><USER23> I wonder if English have ever felt similar offense when people point out the role of France and the french language in their country's and language's development.

<comment><USER24> Nope. When I realised, I thought holy shit, I pretty much speak French already. Learn some glue words then any word ending in 'able' or 'cial' (and a few others i forget) pronounced in a 'Allo 'Allo [0] accent and you are pretty likely to be talking French. :-) [0] <http://en.wikipedia.org/wiki/Allo_Allo>!</comment></comment></comment></comment></comment>


The 3 best ways to learn Angular 2 - <AUTHOR> http://blog.debugme.eu/learn-angular2/ <comment><USER2> Angular is so hot right now this is a useful program, good work guys!</comment>


Good Creative People are Never Bored - <AUTHOR> http://www.heywhipple.com/2012/01/08/good-creative-people-are-never-bored-or-what-i-learned-at-the-george-w-bush-presidential-li-berry/

<comment><USER2> "Saying "I'm bored" suggests you've in fact seen and thought of every interesting thing in the universe, read every book, been down every street, looked into every window, talked to all 7 billion people and that until some NEW material comes along, frankly, you're not at fault for mopin' around the house and draggin' your knuckles a little bit. "Sorry, but there's nuthin' ta DO."

... I'm not sure I agree. I think "bored" may simply be a state of mind that people sometimes just have to cycle through.

Like, if you say "I'm depressed", I'm not going to claim that you've gone through every conceivable solution to every problem the world might have and that you've concluded every one of them is hopeless. You might be depressed about something, or you might have found something to be depressed about. I'm not sure which one is the cart and which one is the horse.

I think plenty of creative people get bored, and I don't think it's always because of an absence of things to be interested in, any more than depression is always caused by an absence of things to feel optimistic about.

</comment><comment><USER3> No one can be "on" all the time. I would even go so far as to say that a creative person who doesn't periodically crash and burn isn't trying hard enough.

Many creative people are even prone to varying degrees of hypomania, cycling between periods of despondency and fits of irrepressible energy.

<comment><USER4> Is there a paper or article you know of I could read relations between creativity and hypomania/other psychological things? It interests me.

Never mind, found one

[http://my.psychologytoday.com/files/attachments/33524/person...](http://my.psychologytoday.com/files/attachments/33524/personality- hypomania-intelligence-and-creativity.pdf)

</comment></comment><comment><USER5> Seems there are differing definitions of "bored" here. Methinks the more common is "I have no idea what to do".

I'm not bored ever, as the universe provides an infinite array of things to observe or do - and that's assuming I've gotten thru my "to do" list, which I start every few months and soon give up on because it grows so long so fast there is no point in so much as prioritizing it (even top priority items will be so numerous as to take the whole foreseeable future). To the contrary, sometimes I find the plethora of options paralyzing.

<comment><USER6> Heh, I find myself doing almost exactly that. Funny thing is I usually browse HN for posts about task management. I really get satisfaction from checking things off and definitely benefit from prioritizing myself, but does anyone here have any tips on how to manage things in such a way as to not want to trash everything and start from scratch pretty regularly?

<comment><USER7> Keep very detailed notes on everything you do, and if you ever decide to start something new then archive your notes, digitize them if possible and keep them until one day you decide to return to it. If you never decide to do that then give them to your children, (or the world if you think it's that good) etc.

As far as doing something and trying not to get to that point at all, focus on the one project until it's finished.

</comment></comment></comment><comment><USER8> Maybe I'm not like all the rest, but I've never used that definition of 'being bored'.

To me, it's not about not knowing anything to do, but about not wanting to do anything. When I feel bored, I don't want to read, to watch, to listen, or do anything else that requires my attention or effort. I don't think I've ever felt like "today, I want to do something! But sadly I don't know anything to do."

<comment><USER9> What you're describing sounds more like temporary depression instead of being bored. Actually, I wonder if the state of boredom is actually a form of depression?

</comment></comment><comment><USER10> This is trivially refuted by the fact that "good creative people" with concentration/motivation defects, depression etc. exist.

The whole article is a non-sequitur.

<comment><AUTHOR> I think your definition of "bored" is closer to my definition of "motivated". I consider the two different things. As ctdonath points out above, the definition of "bored" I think this article is using (and the one I'm applying to it) is "I don't know what to do", not "I don't want to do anything". So if we talk about the latter, you're completely correct. I think if we talk about the former, the author/article makes a better point.

</comment></comment><comment><AUTHOR> There's an unnecessary swipe at GW Bush there, unfortunately, but I think the article's point is nonetheless excellent.

<comment><USER11> Ah, but it worked for me! :-)

Perhaps it was an "extra", but it did serve as a well known example of the incurious.

</comment></comment><comment><USER12> I'm usually excited when I have nothing to do because I can finally spend ANY time on my own projects.

However, I'm often bored of doing particular tasks. Perhaps I'm boring at doing those tasks.

<comment><USER13> That's what I feel too.

I'm bored when doing home chores, when working on un-interesting projects, when stuck in transit, when waiting for things/people, and etc etc.

Man, I must be a really boring person!

</comment></comment><comment><USER14> Far be it from me to disagree with an ad blogger.

However, many of those we think of when we consider creativity seem to go through periods of something close to depression.

</comment><comment><USER15> The author of this article is taking the statement too literally.

When someone tells you they're bored they're most likely saying "let's go do something together". That kid probably just wanted to play with her mother.

If a someone can find time now to _actually be bored_ , it means they have a healthy disconnect with technology. It means they still have the itch to be social without going to Facebook, watching the Kardashians or texting white noise.

</comment><comment><USER16> cached version: [http://webcache.googleusercontent.com/search?ix=hcb&sour...](http://webcache.googleusercontent.com/search?ix=hcb&sourceid=chrome&ie=UTF-8&q=cache%3Ahttp%3A%2F%2Fwww.heywhipple.com%2F2012%2F01%2F08%2Fgood- creative-people-are-never-bored-or-what-i-learned-at-the-george-w-bush- presidential-li-berry%2F)

</comment><comment><USER17> Not that sure if I should agree the author's statement. I think that energy management is key and that it should be "allowed" for people to be bored. Every engine needs to cool down sometimes and instead of giving some lengthy explanation about "relaxing, regrouping, thinking without a specific purpose" (at least I) describe this time as "boring".

</comment><comment><USER18> See also "How to be more interesting"

<https://news.ycombinator.com/item?id=3423017>

<comment><USER19> There's another interesting article in the same spirit: [http://russelldavies.typepad.com/planning/2006/11/how_to_be_...](http://russelldavies.typepad.com/planning/2006/11/how_to_be_inter.html) HN discussion: <http://news.ycombinator.com/item?id=3279190>

<comment><USER18> Nice! I love learning about this stuff. This is what interests me

</comment></comment></comment><comment><USER20> I dont know how "bored" feels like. Ever since i started working as a developer, i must have lost that feeling. I am constantly working or learning new concepts. When i leave the office i walk for like 5 minutes to the train. Then i start reading my RSS Feeds. When i arrive home, i eat and start coding for fun.

I am the perfect candidate for a burn-out. I know this for sure. And my doctor too.

</comment><comment><USER21> This is incredibly harsh. And wonderful. I'm so tired of people soft-pedaling their ideas. Make a statement and stand by it. Stand tall and be ready to be knocked down if you're wrong.

</comment><comment><USER22> Boredom is your subconscious telling you to strive for better.

</comment><comment><USER23> We all shall replace reality with fantasy so not-so-bright people can be able to write about it.

</comment><comment><USER24> ""I am bored" generally means "I am boring.""

</comment><comment><USER25> Well, the site seems to be overloaded now, and I can't read it, but that won't stop me from spouting an opinion:

There seems to be a strange interpretation of 'bored' going on here. The best definition I can find of bored or boredom is, essentially: a general feeling of malaise and disinterest brought about by tedium.

Now, personally, I've been bored more than I've been engaged in my professional career. Since losing my job and spending all of my time pursuing things that interest me, I've found that I complete fewer tasks, but I'm much more engaged and happier overall. I'm constantly pursuing one interest or another.

Currently, I have three ongoing projects that might have commercial value (and about 15 more that are purely to satisfy personal curiosity). Unfortunately, one of the three projects has reached the stage of development where it becomes tedious to complete. So, there's the catch. If you want to complete things, you inevitably have to deal with tedious details, which means you're almost certainly going to spend time feeling bored.

One other observation: it's easier to get bored when writing code than when digging a ditch. The latter will tire you physically, but the freedom of thought is quite mentally stimulating. If you don't have any hobbies that involve repeatable physical activity, give it a try.

</comment><comment><USER26> "Error establishing a database connection"

BORING!

</comment><comment><USER27> Yeah? I think there's a man whose last name is Holmes and first name rhymes with ... uh, merlock who would disagree with this guy.

'Course I haven't read the article so I might be off base.

<comment><USER5> Holmes was never bored. Every smudge told volumes. Innumerable books were there for the reading. And when "bored" nonetheless he dove inside his own mind and explored its behavior under various pharmacological abuses. (Surely you don't expect his hypothetical "trips" were akin to a common doper's?)

BTW: the article is just 487 words long. You spent more time informing us that you didn't read it than you would have spent doing so. ...and I'm so easily not bored I found it interesting to find the word count.

<comment><USER28> Homes was constantly doing lots of stimulants as well as other drugs

Saying he was never bored is a bit of a stretch for non drug abusers

<comment><USER29> I don't use any illegal drugs, but that sort of experimation looks to me like exactly that: experimentation. And, in the context of the article, he looked at the universe in all its interesting attributes and chose "I wanna try this!" something related to, and inside the universe. As defined by the article, that's not boredom.

<comment><USER28> I am not saying "Because he had drugs as an option, he wasn't bored". I'm saying "He was constantly amped up on something, so he wasn't bored".

</comment></comment></comment></comment></comment><comment><USER30> Not to yank my own cock too hard, but I'm pretty awesome at never being bored. I can always find new exciting shit to read online and new projects and ideas to tinker with. Whereas most people seem to check their Facebook and their daily allotment of funny Youtube vids, after which they need someone to tell them what to do with their day.

I think the upside for the normals is that they get more enjoyment out of everyday stuff, though. My constant info-stimjunkie behavior is probably pica for something deeper being broken. Kind of like constantly trying to figure out the universe by reading and tinkering incessantly. Instead of just sitting back and smelling the flowers.

<http://lesswrong.com/lw/15w/experiential_pica/>

Introspective and metacognitive abilities, they are bitches... :(</comment>


A briefcase-size radio weapon could wreak havoc in our networked world - <AUTHOR> http://spectrum.ieee.org/aerospace/military/electromagnetic-warfare-is-here#.U_zUdUSgY1c.hackernews <comment><USER2> The article seems to confuse EMPs and continuous interference devices.

As far as I know, there is no viable way to make a particularly powerful EMP that can be used multiple times inside of a suitcase.

The only method I know of constructing a reasonably powerful portable EMP is by creating an EPFCG, which would be very dangerous to the operator inside a suitcase, is directional, and can only be used once.

<comment> at-fates-hands Just to be clear - you're talking about Nuclear Explosively Pumped Flux Compression Generator correct?

From 2010: [http://www.freerepublic.com/focus/f-news/2552508/posts](http://www.freerepublic.com/focus/f-news/2552508/posts)

"BP with oversight from NATO and the help of several government agencies has successfully tested a Nuclear explosively pumped flux compression generator (EPFCG). It is a device used to generate a high-power electromagnetic pulse by compressing magnetic flux using high explosive."

This part was curious:

"The USGS and Canada Earthquake center are reporting a mild earthquake in the region registering between 3.8 and 4.2 magnitude."

I agree though, getting something this powerful into a suitcase would be a feat of engineering and would leave the operator in a very dangerous position.

<comment><USER3> Link generates a Malware warning, and Free Republic is a pretty fringey site to begin with. I suggest you try to find a primary source.

</comment></comment></comment><comment><USER4> [http://blockyourid.com/~gbpprorg/mil/herf/voltsamps/herf005....](http://blockyourid.com/~gbpprorg/mil/herf/voltsamps/herf005.html) A HERF device is actually pretty simple to cobble together, if you don't mind size and high power consumption. Making it portable is more of an engineering challenge, but if you can purpose-build a magnetron rather than using one from a microwave oven, the problem becomes easier to solve.

</comment><comment><USER5> Part of a Defcon talk a few years ago included something similar:

[https://www.youtube.com/watch?v=DU8hg4FTm0g&t=38m43s](https://www.youtube.com/watch?v=DU8hg4FTm0g&t=38m43s)

</comment><comment><USER6> You don't need batteries to make an EMP

[http://en.wikipedia.org/wiki/Explosively_pumped_flux_compres...](http://en.wikipedia.org/wiki/Explosively_pumped_flux_compression_generator)

The question is if the equipment is inside a Faraday Cage and the device is outside, will it affect it.

<comment><USER7> True, but that device is destroyed with operation unlike the device described in the article.

<comment><USER8> However, the device described in the article doesn't destroy equipment (at least its highly unlikely a suitcase size one would generate the field voltage necessary) where as an EPCFG very likely would.

There's no reason these couldn't be left like a suitcase bomb and take out an entire blocks electronics. These could easily be walked into a companies headquarters and take out all the electronics in the entire company.

<comment><USER9> The easier way to achieve that goal is to overload the net rails with a few thousand volts _after_ the main breaker.

Box with a flywheel that spins up to very high RPM using a motor/generator, then change it from motor to generator using a higher number of windings and then dumping all the energy accumulated in a couple of minutes back into the local grid in a few milliseconds. Probably better to use 2 flywheels so the forces cancel out otherwise the whole thing might come apart.

You could connect this to any wall socket in the company and it wouldn't be much bigger than a suitcase or even fit in one.

If the pulse is short enough it will probably even be re-usable, unlike the power supplies in everything connected to that particular bit of the supply rail. The question is how long you can sustain the pulse, longer = more damage but also more chance of damaging the device itself.

</comment></comment></comment></comment><comment><USER10> The Blumlien pulser is easy to fabricate and can generate very short rise times since you are charging up a coaxial cable to high potentials, then shorting one end to start the pulse.

</comment><comment><USER11> Ah yes, I remember playing CyberPunk 2020 (RPG) long time ago, EM weapons were standard equipment. Interesting to see that the sci-fi is now becoming reality.</comment>


Git: Using Advanced Rebase Features for a Clean Repository - <AUTHOR> https://mtyurt.net/2017/08/08/git-using-advanced-rebase-features-for-a-clean-repository/ <comment><USER2> Editing git history makes sense in several cases:

1\. Projects like the Linux kernel which use frequently use 'git bisect' to perform a binary search on the history of project (to find when a bug was introduced), or where the patch series tell a story to code reviewers.

2\. Open source projects, where some contributors have terrible git habits that the maintainers don't want to merge.

Editing git history makes _less_ sense in other circumstances:

1\. When dealing with less sophisticated git users who don't understand git's data model. About 90% of git nightmares begin when a novice git user tries to rebase something.

2\. When it adds a whole layer of unnecessary process for zero payoff. If your developers all work in short-lived branches with clean histories, then just go ahead and merge normally without forcing everybody to jump through a bunch of hoops to beautify a history that nobody ever looks at anyway. Git was designed to handle branches.

I always twitch a bit when I see a 10-page blog post describing a "git workflow", with all sorts of complicated branching rules and heavy use of rebasing. That can make sense in certain specialized situations, but it shouldn't be considered a "best practice" that everybody needs to emulate.

<comment><USER3> Do people actually look at the history a lot? After a pull request has been merged I rarely look at the history and I am really not interested in it. This is for a small team with around 5 people. In larger teams is it more important to see the history?

<comment><USER4> I work as lead dev on a 5 year old web app I took over from a previous dev and his team of subcontractors about a year ago. It's very helpful to see into the past when there's no way to just ask the previous dev.

</comment></comment></comment><comment><USER5> I think a lot of people don't bother with rebasing because they either don't know how to do it, or they are scared of the idea of a version control system not explicitly saying what they've done to accomplish the latest version of their code.

Once you get even a small understanding of it, there are plenty of places you can use it. For example, in the past month I've used it to:

1\. Rewrite the history on a coding test I was given for an interview. The recruiter was oddly specific about how long to spend on it, and when it had to be in by, even though they said no one would look at it for another week. I worked on it throughout the extra week, and modified the history to make it look like I had done it in the allotted time-slot.

2\. Rewrite history in feature branches where it doesn't accurately reflect what I had to do to get the code working. I work in an agency environment and (whether I like it or not) requirements change, sometimes mid-way through delivering something. If I've written something that won't ever see the light of day, or if I've done something that won't help the next person to read that code I'll rebase where needed.

3\. Saving time for pull requests. I tend to commit early and often, and when I'm in "the zone" on a fairly chunky bit of work that can mean quite a few commits! When it comes to peer review, some people like to do it by commit, rather than the finished output, so to help these guys out I squash commits where possible, since we use our pull requests to illustrate the problem we're solving anyway. I think an untarnished history is important, but sometimes a PR audit trail is more useful than what you'd get from pure commits.

<comment><USER6> Just a note on your nr1: I don't think rebase back-dates the CommitDate, does it? There are two dates on any commit: AuthorDate and CommitDate. Try git log --format=fuller. E.g.:

        Author:     ...
        AuthorDate: Wed Aug 2 11:02:03 2017 +0100
        Commit:     ...
        CommitDate: Wed Aug 9 12:08:52 2017 +0100

This is a commit I originally created last week, but rebased onto my current branch just now. To change the CommitDate, you have to go filter-branch, afaik. But maybe I'm ignorant of a germane rebase feature?

<comment><USER7> You're correct, it doesn't change the author date.

In order to do no.1; perform your rebase, and then change the dates with filter-branch. I have a couple of helper functions for both for resetting to commit or author dates [1], use at your own risk! :)

[1] [https://gist.github.com/dm/aad8e34a5ee6b542a0bc788375b548ed](https://gist.github.com/dm/aad8e34a5ee6b542a0bc788375b548ed)

<comment><USER5> Yep, it took me a while to figure out why my commit dates didn't match the dates within GitHub. Luckily, it's fairly straightforward to figure out once you know what the issue is!

</comment></comment></comment></comment><comment><USER8> I personally almost never rebase and/or squash, since I think that the information that gets lost (like: when was it started, what were mistakes along the lines) might be useful for future understanding of how the project work evolved over time, and what adjustments should/could be made to the development process.

But I understand that a screen as shown in the article is not immensely usuful. But if it comes down on how to present git history information to users, maybe an additional aproach would be to come up with a better presentation layer (that, for example, could hide merge commits, "squashes" branches, etc.

<comment><USER9> I think there are two perfectly acceptable schools of thought.

One says that the history should be preserved exactly, because its important we keep a record of exactly what happened.

The second says that its ok to rewrite history a little if that makes it more understandable.

I think you would put yourself in the first, and that's ok. I would put myself in the second because at the end of the day I value understanding over precision in git histories. I'm of the opinion that one cares about the commit I made to correct a missing semicolon.

<comment><USER10> The usual rule of thumb is not to modify (e.g rebase) published commits. So it's perfectly fine to adjust local commits before they go into centralized repo - from the point of view of an external observer the history is never destructively modified. This rule can be extended to topic branches or user owned branches with the caveat that others should not base their work upon the topic branch.

Also remember git push --force-with-lease!

<comment> james-skemp And `git commit --amend`

I missed a semi-colon or a file? I probably noticed right after I made the commit (and before I pushed it to the remote branch).

</comment></comment></comment></comment><comment><USER11> I vastly prefer rebasing and squashing. Just yesterday I had to review some history, and reading the blames was incredibly frustrating.

> Clean up style

What was this code committed with? What other changes came along with it.

Git, for me, has 2 functions. When I'm developing, it's to save my work in an incremental way that I can reverse. It's to make notes about what I'm doing. After I'm done, it serves as a way to lay blame on me for what I changed and to track those changes in Github. "Who wrote this? What was it committed with?"

I want my PR to be encapsulated in 1 commit after it's been merged. At that point, there is no reason to read the internals of what I changed.

</comment><comment><USER12> This is the type of workflow you get when using something like gerrit.

because gerrit forces every change to be a single commit, you have to rebase, which ensures that the history is nice and linear.

I know there is some people who prefer the "git-flow" style history graph (and I was one of those people) - but there is a lot of advantages to a clean history.

And, yes gerrit can be painful at first, but is a _lot_ better with something like git-review[0], or repo[1]

0 - [https://docs.openstack.org/infra/git- review/](https://docs.openstack.org/infra/git-review/)

1 - [https://source.android.com/source/using- repo](https://source.android.com/source/using-repo)

</comment><comment><USER13> Git is a product where there are 5 opinions on how best to use it for every 4 people.

<comment><USER14> AKA "Two git users, three opinions".

</comment></comment><comment> git-pull No one's perfect with this stuff.

If you don't believe me, clone git itself ($ git clone [https://github.com/git/git](https://github.com/git/git)) and open up the repo in tig(1)

[https://github.com/jonas/tig](https://github.com/jonas/tig)

To be honest, I only in the past 2 years even bothered to view ($ git log --graph). Regardless of --graph getting wide now and then, I always visualize my git history as a straight line.

Also, sometimes having a non-linear history is inevitable. Especially in large open source projects where you're pulling in patches to a branch, and patches on top of that. You're not always going to be merging a branch with a single author straight onto master.

Despite posts like this ([http://www.bitsnbites.eu/a-tidy-linear-git- history/](http://www.bitsnbites.eu/a-tidy-linear-git-history/)) encouraging good git hygiene, I've had multiple open source projects merge in code via GitHub and _never_ had negative consequence for it :P

Maybe there are corner cases where git bisect wouldn't work? Though I never used git bisect even once. Most I do is scroll through tig and view diffs. Also used to play with a cool git plugin in vim ([https://github.com/tpope/vim-fugitive](https://github.com/tpope/vim- fugitive)).

Also, GitHub has (since that linear git history post) introduced Rebase + Merge [https://github.com/blog/2243-rebase-and-merge-pull- requests](https://github.com/blog/2243-rebase-and-merge-pull-requests). I think that'll get you what you want.

I do keep branches ("pull requests" if you're using GH lingo) up to date with ($ git pull --rebase). That does mean a force push ($ git push --force), but it's ok if it's your personal branch. I also use interactive mode ($ git rebase -i <sha>) to edit/blend multiple commits.

Also, when I do merge, if I go through CLI, I'll preserve the history of the branch by not doing fast forwards ($ git merge <branch> \--no-ff).

<comment><USER15> Just one small thing, I have found a few times git rebase breaking git bisect.

Git rebase can create large sequences of commits which no-one has ever checked out, and often don't build -- after a git rebase most people check their new head builds and passes tests, but I've never seen anyone bother check their new history works.

<comment><USER16> git rebase --exec <test command> runs your test suite on each commit during the rebase. It is super useful

</comment></comment></comment><comment><USER17> I have been using that in every branch: I commit regularly and end up with 10+ commits. Then I rebase + squash them and at the same time write a summary commit. Eventually I merge. This has multiple good effects. First, you get a clean, featured-based history. Secondly, although your commit message is the one you wrote when you rebased, you can keep the old commit messages and you get a better summary of what happened during the development process of that branch.

<comment><USER18> Why have a history then at all? The idea is not to squash history but make it reasonable chunks. Remove chaff so to speak while keeping the general history. A single feature is very rarely a reasonable chunk. (For example, see Linux kernel patch series per feature.)

Otherwise you may lose the "why" unless code is extremely well commented and that never happens.

<comment><USER17> ok depends on the size of a feature I guess but usually I sit in a branch for 2-3 days before I finish the feature.

Also what's the point of preserving the history of a branch that is used for the development of a requested feature ? For each commit before the final, the feature is incomplete, possibly not working at all.

<comment><USER18> Not everyone is a believer in shippable increments, but it is a good practice nonetheless. (not necessarily fully working)

Splitting per feature is indeed ok if it is small including effects on dependencies. But in my practice there are rarely small enough features - these map to something akin to user stories which have to be further broken down.

</comment></comment></comment></comment><comment><USER19> For God's sake, DON'T TEACH IF YOU DON'T UNDERSTAND YOURSELF what's happening.

"Commit C's revision number has changed." \- NO IT DID NOT. The original commit (f4ba6b) is still there, it still points to B, but a totally new commit has been created with a different content. To avoid confusion, it's better to name it C'. C is now a dangling commit (has no branch or tag pointing to it, and will eventually be garbage collected).

</comment><comment><USER20> I tell everyone to save/commit as much as possible , I don't want to hear I lost 2 weeks of work. After words I just squash the gesture into master named after whatever the short feature is "feature modal","new admin view" whatever...git history without squash or debase is a nightmare when everyone has commits like "typo 1" "typo2".

<comment><USER6> Try selling git commit --squash or --fixup. Your colleagues can use this without actually rebasing, and you can help them out with the final step by doing the rebase. Especially when you have:

        git config --global rebase.autoSquash true

These commits are generally much easier to deal with than typo123 ones. But ymmv.

</comment></comment><comment><USER21> Something that somehow never ever makes it into these tutorials but is important: after you do the rebase locally, you must force push, don't pull then push. (After you rebase, the git client will suggest you pull.) This simple thing caused me a lot of unnecessary confusion about rebasing for a long time.

<comment><AUTHOR> The video in the blogpost is all about it :)

</comment></comment><comment><USER22> Does this work even we keep pushing commits on a remote repository?

We extensively use Github Pull Requests for code reviews and most of the time we squash our PRs into a single commit but I would love to have a way to merge into multiple smaller squashed commits (as OP did) instead of one big.

<comment><USER4> Try interactive rebase. [https://robots.thoughtbot.com/git-interactive-rebase- squash-...](https://robots.thoughtbot.com/git-interactive-rebase-squash-amend- rewriting-history)

</comment></comment><comment><USER23> git rebase -i on a master with no changes.

As a sole developer, I am pulled in two different directions when using git feature-branch style. I want to make sure I never lose my work so I check in frequently- any time I start a change that might ultimately fail, I commit my current code so I can recover it. But I also want a clean, concise and useful history.

After reading this article I tried 'git rebase -i master' on my feature branch even though the master had no changes since starting the feature branch. This seems to work and allows me clean up my feature branch before I merge it to master.

Is there a better way to do this or are there problems with this?

<comment><USER18> The only potential problem is that you should instead run git fetch -u and rebase onto origin/master instead. (By default your rebase will use the remote anyway, but won't fetch for you.)

</comment></comment><comment><USER24> keeping a clean commit log or even strong commit rules is something which I only see as barrier for improving existing code... just thinking of code improvements by PRs which got rejected by bigger projects because the commit history was not "clean enough". History is not always good or pretty in real life... it should be the same on git commits.

<comment><USER25> To some extent I agree, enforcing it at a project level seems like bikeshedding and not necessarily that useful. On the other hand, like walking people through your house, it's nice to tidy up first to give people a good experience, and the same applies to walking through the history of your change too IMO

<comment><USER24> Even software with good and beautiful git histories can be ugly as hell (seen it all) and a good and beautiful house can have some really bad ugly history ;)

</comment></comment></comment><comment><USER26> Is this a fixed-width comic font? :-/

<comment><USER27> Looks like Fantasque Sans Mono. It takes a bit of getting used to, but I've found it amazing once you do get used to it. YMMV.

</comment></comment><comment><USER28> What is the tool/command used to show git graphs in the screenshots of this article?

<comment><AUTHOR> You can find it here: [https://github.com/mtyurt/dotfiles/blob/b16c4811675dbf231453...](https://github.com/mtyurt/dotfiles/blob/b16c4811675dbf2314538ae7b9ac385fe4613fbf/bash/.bashrc#L10)

</comment></comment><comment><USER29> nice work Tarik!</comment>


Common shell script mistakes - <AUTHOR> http://www.pixelbeat.org/programming/shell_script_mistakes.html#status <comment><USER2> Note the #status anchor is best removed from the url

</comment><comment><USER3> This was very helpful to me thanks</comment>


Google Instant Coming Natively To Browsers "In The Next Few Months" - <AUTHOR> http://techcrunch.com/2010/09/08/google-instant-chrome/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+Techcrunch+(TechCrunch)

<comment><AUTHOR> This is what I actually want...think many people don't actually visit Google.com anymore. Unless there's a fun/creative doodle.</comment>


Show HN: A tiny JS library for real-time localization of eye pupils - <AUTHOR> https://tehnokv.com/posts/puploc-with-trees/demo/ <comment><USER2> For an explanation, see author's post:

Using decision trees for real-time localization of eye pupils

[https://tehnokv.com/posts/puploc-with- trees/](https://tehnokv.com/posts/puploc-with-trees/)

It's actually quite fascinating. I'm too paranoid to enable webcam for any random site, so will be trying it out locally.

For face detection and determining the locations of the eyes, the demo uses picojs, described in another post:

pico.js: a face-detection library in 200 lines of JavaScript

[https://tehnokv.com/posts/picojs-intro/](https://tehnokv.com/posts/picojs- intro/)

<comment><USER3> I'm all for being paranoid but what exactly is the threat model here? Someone is going to have a few seconds of video of you?

<comment><USER4> Spearfishing family members using a pic and/or some audio of you to generate a fake "help me" video? (I mean, that probably won't happen, just trying to think of something an attacker could do with it.)

<comment><USER5> Imagine being paranoid to the point of actually entertaining a hypothetical like that, so much that it affects your browsing habits.

<comment><USER6> There is actually already a pretty prevalent (lower tech) version of this scam. Grandparents are called by a con artist who attempts to pretend to be a (previously unidentified) grandchild in distress in a foreign country. [1] My grandmother lost a few thousand dollars to it because she thought they were me.

1 - [https://www.ag.state.mn.us/Consumer/Publications/GrandParent...](https://www.ag.state.mn.us/Consumer/Publications/GrandParentScams.asp)

</comment></comment></comment></comment></comment><comment><USER7> The next tracking technology that completely fails on me. Tracking mouse movements is already totally helpless when it comes to blind users. But tracking my eye pupils is even more useless. I just hope nobody will ever impelment CAPTCHA based on this. It is already hard enough (and sometimes impossible) to proove that I am human.

<comment><USER8> I was thinking of using something like this that would track my pupils and then switch window focus i.e. allowing me to switch from terminal to terminal without doing Alt-Tab.

Yes, probably the height of laziness to avoid pressing Alt-Tab but its interesting to me.

Edit: Its possible that i am mistaken and what I would need for that is more gaze-tracking than pupil-tracking.

<comment><USER9> The interface in vr for elite:dangerous works like this, it does gaze tracking of sorts (tracking the headset) and pops up context menues (weapon systems, radio/communication, navigation etc). It works really well imnho. Otoh the interface is similar in regular 2d, but feels clunky and gimmicky there.

<comment><USER8> That sounds interesting. I will take a look at it. Honestly, I haven't done any study or reading on this topic so have essentially zero idea of how it might work, especially when using a webcam.

</comment></comment></comment></comment><comment><USER10> Can't wait to integrate this with ad serving tech to make sure users are actually watching the ads. Imagine adding little "eye catchers" to ads, and if the pupils don't respond, they are likely looking at a different screen or looking away from their computer which means you can safely pause the ad until you have their attention again! The possibilities are endless - integrate with mobile games and reward users whose pupils follow the eye catchers with more gems and more ads!

<comment><USER11> Microsoft had a patent application on a very similar idea:

> Television viewing tends to be a passive experience for a viewer[...] To > increase interactive viewing and encourage a user to watch one or more > particular items of video content, awards and achievements may be tied to > those items of video content. [...] Producers, distributors, and advertisers > of the video content may set viewing goals and award a viewer who has > reached the goals.[...]

> Additionally, the viewing behavior may include an action performable by the > viewer and detectable by one or more sensors, such as a depth camera.[...]

> If the viewing goal has been met, an award may be granted to the viewer. An > award may be a virtual award. Such as an addition to a viewer score or an > update to an avatar associated with the viewer

[https://patents.google.com/patent/US20130125161](https://patents.google.com/patent/US20130125161)

</comment></comment><comment><USER12> I'm always curious about what it takes to confuse things like this (if for no other reason so that I will know how to make face recognition camouflage to hide from the autonomous weapons that roam our future post-apocalyptic hellscape).

This demo seems to do pretty well -- e.g. it handles covering one eye or arbitrary parts of your face, but has some trouble at oblique angles (like your face in profile or near-profile).

But here's an odd thing I noticed:

\- Take a pair of over-the-ear headphones ("cans").

\- Rotate them 90 degrees so that one earpiece is on your forehead (or above it) and the other is at the back of your head.

This seems to completely stump the algorithm, even when your eyes are plainly visible and looking straight into the camera. With my headphones turned sideways it never once identified my pupils (or my face) accurately.

Possibly a hat would do something similar (I don't have one handy) but a largish dark circle your forehead seems to confuse it.

Very neat for a 200 LoC browser-based demo.

<comment><USER13> This seems to have a lot of trouble when wearing glasses (large-style glasses). I was surprised of how bad it seemed for 2019 tech, then tooky glasses away and was blown away of how good it is.

<comment><USER12> It seemed to have a little trouble with light reflecting off my glasses (sometimes it found my eyes but placed my pupils more or less on my eyebrows) but it generally did OK with my glasses.

My glasses are closer to the "invsible frames" side of the spectrum than the Harry Caray / Elvis Costello style, so maybe that matters.

I guess maybe I should just review the code but I was trying to figure out if it uses other facial features to "anchor" the eyes or just the (fairly recognizable) features of human eyes themselves. Your glasses experience makes me guess it is pretty eye dependent -- it does have more trouble with one eye covered for example, whereas if it was anchoring off some combination of ear/nose/mouth/chin it should be easy enough to ID the eye from half the face, let alone with just an eyepatch-sized cover.

</comment></comment></comment><comment><USER14> Nifty. I use PoseNet[1] on tensorflow.js to locate eyes for 3D UIs on a laptop. lploc seems much faster, but requires a more restricted head pose. Maybe I'll try using both.

I've also been looking for usable gaze tracking, to play with combined gaze (fast but low resolution) and head (high resolution but slow) pointing. Perhaps lploc can help with that.

So thank you for your work.

[1] PoseNet webcam demo: [https://storage.googleapis.com/tfjs- models/demos/posenet/cam...](https://storage.googleapis.com/tfjs- models/demos/posenet/camera.html)

</comment><comment><USER15> The author means real-time _location_ of pupils. This is not gaze tracking though.

<comment><USER16> Gaze tracking on browsers with webcams does exist though!

[https://webgazer.cs.brown.edu/](https://webgazer.cs.brown.edu/)

<comment><USER14> I finally got webgazer to work once, a year or so ago. As I recall, it required non-default settings, shaving my beard, adding lights pointed at my face, hanging a backdrop, and holding eyes and bushy eyebrows just so. And maybe something else I'm failing to remember. The joys of small training sets.

No doubt it "just works" for some people. For others, not so much.

</comment></comment></comment><comment><USER17> I'm sure you know this, but just in case:

If you add this CSS to your site, you can increase the readability without sacrificing the aesthetic.

body { max-width: 65em; margin: 10px auto; }

</comment><comment><USER18> It works pretty well, but it has the same issue I see with a lot of these object tracking algos - it jitters all over even when I'm holding as still as I can. Why are these systems so sensitive and unstable? Could the algo be trained to prefer similar output for similar inputs to reduce the flicker at the cost of some accuracy?

</comment><comment><USER19> What am I missing? "Click the button below and allow the page to access your webcam."

...and then?

<comment><USER20> If it works, you will see a live feed of your webcam with your face encircled with your pupils highlighted as red dots... its pretty impressive!

I'm guessing your browser is blocking the webcam, or maybe its not configured correctly to work with your browser. did you get a popup requesting permission from your browser? sometimes its hidden at the edge of the URL bar behind an icon.

</comment></comment><comment><USER21> Not very good if you change head orientation or rotation but otherwise pretty cool!

</comment><comment><USER22> Doesn't work on *my mobile android chrome. I'll try again at work tomorrow. Looks pretty cool though.

I would love an interaction method like this.. I can already think of some super fun UIs to build around it...

<comment><USER23> Worked pretty well for me on my low-end 2 year old Samsung!

</comment></comment><comment><USER24> Works on Chrome, but doesn't appear to work on Firefox. I can see my webcam feed, but the red indicators don't show up.

Edit: Nevermind, it requires access to canvas data which for me is blocked by default.

<comment><USER25> Works on firefox for me 67.0.4 (64-bit)

</comment></comment><comment><USER26> Sorry if I don't trust some random web page to use my camera because they promise they're not logging it to their server.

<comment><USER27> What if you open incognito mode, open the page, cut off your network, then close when you're done with the demo?

<comment><USER28> I overread and I thought you were being sarcastic with "[..], then close your eyes when you're done with the demo".

<comment><USER27> I overuse sarcasm in reality to the point that people don't believe me when I'm sincere, so no surprises I didn't write this out clearly enough :D

Seriously though I think if it's all JS based you should be good to use incognito and offline to gate off the code from uploading.

</comment></comment></comment></comment><comment> your-nanny so, we use eye tracking in experiments to look at how people acquire information. For example, you can parameterize a drift diffusion model using input from gaze. But the equipment is not cheap. I see this as a means of acquiring that sort of data on the cheap. For example on mturk.

</comment><comment><USER29> This is the kind of tech that managers might like to install on their employees computers. If you're smart enough to build interesting things, maybe spend that talent on something less creepy.

<comment><USER30> Doing this in javascript is creepy, however the technology itself can have other than nefarious uses too. For example in a bandwidth constrained situation you could determine which piece of a video stream to optimize for higher quality based on the general area you are or were looking at, if you look at it long enough it should stop being fuzzy.

<comment><USER28> Video streaming is too slow to adapt, but I see a way for advertisers to check if you watched an ad even if you didn't interact. Specially if the site already uses the webcam.

<comment><USER31> That was the thought that immediately came to mind when I saw this article --- as if unskippable ads were bad enough, with this they'll be able to make ads that you can't _not_ watch, and the whole thing just disturbs me greatly. No doubt it'll get spun into an ostensibly "user-friendly" "automatically pauses the video if you look away" "feature"... but the motives are clear enough.

<comment><USER32> Cue black mirror episode: [https://en.wikipedia.org/wiki/Fifteen_Million_Merits](https://en.wikipedia.org/wiki/Fifteen_Million_Merits)</comment></comment></comment></comment></comment>


37signals Product Blog - <AUTHOR> http://productblog.37signals.com/ <comment><AUTHOR> This is a really good idea. I guess you need enough products though to put something like this up.</comment>


Contending with success - <AUTHOR>

Alright, so I sometimes I have nightmares about striking it big/rich. The biggest hurdle I'm trying to overcome is the drama that ensues when everyone knows you are doing well. How do you deal with the charity "hustlers," the naysayers, and the BS? How do you manage your money? Does any of this actually matter anymore (does anyone care)? <comment><USER2> You can't get it big without getting something along the way. My blog is not big, but sometimes gets a huge spike (say, 8000 visits in one or one-and-a- half days), and so many visitors imply some kind of nay-sayism. This is the internet, so it's a place to learn to cope with naysayers and a lot of BS. Slowly you grow a thick skin and just don't give a sh*t as long as you are happy with the results.</comment>


Dotcloud becoming Docker - <AUTHOR> http://blog.docker.io/2013/10/dotcloud-is-becoming-docker-inc/ <comment><USER4> As a user of Docker, I'm excited. But as someone who uses the dotCloud PaaS right now to run a company, I'm a little annoyed, mostly at myself for not seeing this coming.

Clearly there's a diversion of resources away from the dotCloud PaaS to Docker, and that's going to have a toll somewhere. Despite the company's reassurances that everything is business as usual, I know that Docker [the project] is just too much of a beast and eventually the Docker [the company] will need to move on from the PaaS. (I should know, since I gave a talk about how "Docker is the future" just a few weeks after Docker was announced.) [0]

I'm not really sure what my choices are now, either; DigitalOcean, I guess? I don't want to manage servers myself, and I want to be able to pay on the memory-usage axis for my app instances (which Heroku doesn't allow). I wasn't super excited by DO last year, but maybe things have changed.

My current "light at the end of the tunnel" is hoping that the Docker-based PaaS ecosystem matures, but for now none of them seem like they're mature enough, and it's tough to keep up with all of them since it seems like another one pops up each week.

Here's my wishlist:

\-- (1) command-line client for deployment via git repository and doing anything related to deployment (add new instances, remove instances, create new environments, assign domains to the PaaS router, etc.)

\-- (2) clear pricing

\-- (3) I can pay for more memory as I need it

\-- (4) ability to specify environment variables in a configuration file that take effect on the container process

\-- (5) web interface for administering the account

Anyone have any recommendations?

[0] [http://spreecommerce.com/blog/spreeconf-DC-speaker- highlight...](http://spreecommerce.com/blog/spreeconf-DC-speaker-highlight- john-feminella)

<comment><USER5> There's no need to make a hasty decision -- we haven't changed the platform in any way or lowered our support efforts. If you've found that you can count on the dotCloud PaaS for your business (and thank you for that!), then nothing changed today. We're still here for you.

If you feel like you want to get ready for running on another platform, or using Docker as it matures, then I'd suggest the first step would be to move your databases to a neutral third party provider. With that in place, you can still run your code on the dotCloud PaaS, or anywhere else. As Docker and the ecosystem around it mature, there will be many more options.

I work for Docker Inc on the dotCloud PaaS and manage the support. If you have more private questions, you can reach us at firstname.lastname@example.com

/Andy

<comment><USER4> Thanks for the reassurance, Andy. We've chatted a couple of times in IRC and you've always been awesome in my complicated support requests.

Still, my concern isn't about the quality of the dotCloud PaaS going down -- it's pretty high already, and I don't have any plans to move immediately.

Instead, I'm more concerned about the shift in general. You know as well as anyone that software that doesn't get love and care eventually rots, and the blog post explicitly says that the focus is now on Docker and away from the PaaS.

From that, I infer that the PaaS is eventually going to have to go away as is the natural order of things. Since my company depends critically on that piece of infrastructure, I need to make sure I'm covering my bases with an exit strategy if you do decide to turn out the lights on the PaaS, or at least make sure I've thought about what to do as an alternative.

I also hope you guys make a bajillion dollars on Docker. It's really an excellent idea whose time has come.

<comment><USER6> Hey John, thanks for the kind words! I just wanted to add one datapoint to back Andy's response: the resource allocation to dotCloud has been the same _for the last 6 months_ , and there is no change planned to that allocation as of today. In other words, if you were satisfied with our service over the last few weeks, you are likely to continue to be satisfied for months to come.

I would worry about an exit strategy too if I were in your shoes - but just know that your trust and success as a customer matters more to us than any bajillion of dollars we would stand to make if we betrayed it.

In fact I'm pretty sure we can "make a bajillion dollars" _and_ continue to earn your trust :)

Thanks for doing business with us John! Docker is in part thanks to you.

<comment><USER7> Wow, its people like this (both comments from docker/dotCloud) that make you really love a service. In fact, I would have put my next side project on dotCloud if the prices weren't steep - but I get that they're for businesses and not for side projects.

I guess DO is good for that stuff (at the very least! - I'm sure they're good in general as well, I've actually been reading/discussing them a lot - <USER2> for hobby projects though).

EDIT: Forgot about dokku/flynn as a PaaS (plugin?). Also learned about other services in the thread which I'll be looking at.

</comment></comment></comment></comment></comment><comment><USER6> Hey everyone, dotCloud/Docker founder here. I just wanted to thank the HN community for your support. Your feedback - both positive and negative - <USER3> shaped Docker more than you know.

I also want to confirm that, yes, the trust and satisfaction of our customers matters more to us than any amount of money. You can always make more money later, but once trust is gone, it's gone. So expect us to work ourselves to exhaustion to continue to earn the trust of our paas customers, no matter how crazy things get with Docker (and I can tell you it's only going to get crazier!)

<comment><USER6> And if you prefer to learn by practice, here's an awesome online tutorial: [https://www.docker.io/gettingstarted/](https://www.docker.io/gettingstarted/)

</comment></comment><comment><USER8> This is a smart move. Some people might call it a pivot, but I think it's really doubling down on what people really want. dotCloud is not going to change the world (or make a truckload of money) by being Heroku's also-ran.

Instead, they are taking something they built that is really interesting to a lot of people and building a business around it. As someone who is quite interested in docker, I'm glad that they are turning it into a real business. This benefits pretty much everyone who wants to see docker succeed.

Also, it's really smart that they are keeping dotCloud alive. It would be incredibly irresponsible for them to kill that business just to push faster on docker.

<comment><USER9> I was with you until the last sentence. Why would it be irresponsible to kill the Heroku also-ran to push faster on what people really want?

<comment><USER10> Because there are people running businesses on dotCloud currently?

Because, at least in my humble opinion, it's actually better than Heroku?

Because, at a minimum, cutting it off at the knees would engender tons and tons of bad will amongst their current customers?

Because the customers deserve a couple of 'writing on the wall' style posts like this to begin thinking about migrating to alternatives before the cutoff is actually announced, forcing their hand in what could be 'too short a time period' to get migrated?

The more time they buy their existing customers before dismantling what works, and what people are paying them for, the better.

That said, this _is_ the 'writing on the wall' that people should be looking for alternatives, at the barest minimum.

<comment><USER11> It may not be the writing on the wall, since running a docker PaaS will be a useful way to understand ... what problems you encounter while running a docker PaaS.

But we'll see, I guess.

</comment></comment></comment></comment><comment><USER12> _Docker shall not be distributed or downloaded to or in Cuba, Iran, North Korea, Sudan or Syria_

This statement occurs in the docker README[0]. If at all possible, one would want to keep such channeling of potentially offensive government policy out of an open source software project's public documentation. For one thing, there are many enthusiastic open source programmers residing in the above list of countries.

The NOTICE[1] document explains that

 _Like all software products that utilize cryptography, the export and use of Docker is subject to the U.S. Commerce Department 's Export Administration Regulations (EAR) because it uses or contains cryptography (see [http://www.bis.doc.gov/index.php/policy- guidance/encryption](http://www.bis.doc.gov/index.php/policy- guidance/encryption)). Certain free and open source software projects have a lightweight set of requirements, which can generally be met by providing email notice to the appropriate U.S. government agencies that their source code is available on a publicly available repository and making the appropriate statements in the README._

I'm not familiar with seeing other open source projects from American organizations state that they may not be downloaded in the above list of countries. Is the use of cryptography in docker different in a way that makes the docker organization more at risk from legal challenges from the federal government in this regard, or are docker being anal and xenophobic in blithely displaying this notice?

[0] [https://github.com/dotcloud/docker/blob/master/README.md](https://github.com/dotcloud/docker/blob/master/README.md)

[1] [https://github.com/dotcloud/docker/blob/master/NOTICE](https://github.com/dotcloud/docker/blob/master/NOTICE)

<comment><USER13> This is kinda a non-negotiable for them, isn't it? It's not like they suddenly decided to enforce the USG policy and make a big deal about it.

IANAL, but it seems prudent to acknowledge that the crypto work was done in the USA and therefore falls under the export policy that ALL exportable software falls under. My company has to include this warning on its software and we even have two different versions (domestic and export) to deal with this issue.

I know it's unpopular, but why make Docker answer for it? Take it up with the USG if it makes you that unhappy.

Better yet, strip out all the non-exportable code, replace it with code written from outside the USA and presto-changes, you've solved a problem for the whole world.

<comment><USER6> Docker maintainer here. I also hate having to put this in the README (and hate it even more each time someone from Iran offers to contribute... what a waste of talent and energy this policy creates!).

But we triple-checked with our legal counsel and they confirmed it's the only way to stay unambiguously out of trouble. As un-tasteful as it is, it's better than causing unnecessary legal trouble for docker contributors down the road.

If you're interested in the subject here's an edifying expose of the situation: [http://harpers.org/blog/2013/08/andrew-cockburn-on-the- failu...](http://harpers.org/blog/2013/08/andrew-cockburn-on-the-failure-and- ferocity-of-americas-sanctions-programs/)

<comment><USER12> Hi, thanks for the answer! I suppose it would be possible, without impacting the legal protection afforded by the notice, to preface the notice with some language indicating that docker would prefer it not to appear in the README, e.g. "unfortunately, due to ...". But in any case, congratulations with all the momentum you've gathered and I'm looking forward to learning more about docker here.

<comment><USER6> That was the exact purpose of the introductory line " _Brought to you courtesy of our legal counsel._ " :)

Coincidentally we just tweaked the language to match Apache and OpenSSL. It's pretty similar, but doesn't specifically name countries - it just refers to "whatever the rules happen to be under US regulation".

[https://github.com/dotcloud/docker/commit/b48fc9657976091ff3...](https://github.com/dotcloud/docker/commit/b48fc9657976091ff3833d340877aa5b761e3969)

</comment></comment></comment></comment></comment><comment><USER14> I have been using Docker for a couple of days now, and am really in love with it! Congratulations on the new direction and wish you all the luck in the world!

I'd like to ask one question though - It seems that it's possible to limit the amount of cpu and memory of each container, but not so with the filesystem. I know this is some issue related to AUFS being used internally. But I would really like to know whether there is _any_ hack that allows us to limit the size of the filesystem, or whether it's in the pipeline?

<comment><USER6> There is definitely a hack :) You should join the #docker channel on irc (freenode) and ask for keeb or jpetazzo, they can help you out. If they don't, someone else probably will. People are very nice and useful there.

<comment><USER15> Yep, as shykes says, I'm always available to help.

Take a look at how I built tryrethink.info (which covers this topic and more) -> [http://nick.stinemat.es](http://nick.stinemat.es)

<comment><USER14> Thanks! That was really helpful!

</comment></comment></comment></comment><comment><USER16> Can someone please explain what is Docker exactly? I've read this page, [http://www.docker.com/about_docker/docker/](http://www.docker.com/about_docker/docker/), and didn't understand. What exactly does it encapsulate? What does the application see when it queries its environment?

<comment><USER14> Think about it as a very lightweight VM. You can do everything you can in a VM (which, in turn, can do everything you can in your regular system). Only thing is, it is a wrapper over lxc (Linux Containers) which means that you can only run Linux flavors and the host needs to have an advanced kernel (~3.8). Advantage is that if a VM needs ~80s to boot, a docker container can boot in <2s. And that's possible because a docker container shares the kernel of the host, (unlike VMs, which are all isolated)

<comment><USER16> Oh, so it's not only a deployment mechanism, but an actual runtime "VM".

What does it add over linux containers?

<comment><USER6> I gave some of my thoughts on the topic here: [http://stackoverflow.com/questions/17989306/what-does- docker...](http://stackoverflow.com/questions/17989306/what-does-docker-add- to-just-plain-lxc)

</comment></comment></comment></comment><comment><USER17> VMware is currently valued at 35B. Who is to say Docker couldn't be the next VMware? I would invest in these guys if I could.

<comment><USER18> More likely Red Hat or someone else will buy them before that happens.

</comment></comment><comment><USER15> Docker just keeps growing and growing. The amount of new businesses springing up to take advtange, along with some pretty heavy hitters looking to adopt, Docker has a fighting chance to become a standard from which everyone benefits.

</comment><comment><USER19> It's really interesting how Docker has become this beast, but was originally developed as a practical way to run their business. How many companies have been formed this way?

It's an great thing to point to when a startup doesn't want to invest any time into getting their fundamental product right and just want to hack together using existing and known technologies.

<comment><USER10> Ironically enough, in this case, Solomon originally started dotCloud as a tool to help manage server images, which he then leveraged into a business based on the tool, which now seems to be transitioning back to the tool itself as the core.

</comment></comment><comment><USER20> Congratulations is well in order. It's so exciting to see the progress the team and platform have made in such a short amount of time.

Only months ago at PyCon Solomon Hykes was showing off Docker to the public for the first time:

[http://www.youtube.com/watch?feature=player_embedded&v=wW9CA...](http://www.youtube.com/watch?feature=player_embedded&v=wW9CAH9nSLs)

<comment><USER6> Thanks! It has been a crazy ride, and it doesn't look like it's going to slow down any time soon!

</comment></comment><comment><USER21> So is Docker, Inc. going to provide orchestration for Docker containers in the future? Are they going to host private registries?

</comment><comment><USER22> If you're looking for the clickable version of the graphic on the OP (where the Read More links work), it is here:

[http://www.docker.com/about_docker/](http://www.docker.com/about_docker/)

</comment><comment><USER23> Can't a PAAS use dedicated hosting and provide a cheaper price instead of the overcriped ec2 ? (is there one?)

<comment><USER24> I found today [http://modulus.io](http://modulus.io), they use different clouds. But definitly at a better price as dotcloud/nodejitsu/heroku, especially for smaller projects with SSL. Nice are the backend statistics without paying for any extra service.

But i think in the next months many new PaaS services will rise, thanks to docker ;-)

And i hope many new without amazon (amazon is not bad, but expensive).

</comment></comment><comment><USER25> hello wowlrd! congrats!</comment>


Gigamonkeys Quarterly - <AUTHOR> http://gigamonkeys.com/blog/2010/02/18/gigamonkeys-quarterly.html

<comment><USER2> I've been talking to Peter about this idea a bit, and I'm terrifically excited that he's planning on moving it forward. It seems strange that there's never been an open-source / code-culture periodical of record since the rise of the web, online or off.

With a little luck, and contributions from all of us (hopefully, Peter will have an open ear for story pitches), GQ could be for code what Make is for the DIY scene.

Here's some hypothetical articles I could imagine reading:

* A critical reading of The TeXbook.

* Bootstrap your own self-compiling mini-language.

* A brief history of asynchrony.

* Fun with Octrees.

* Visualizing strange attractors.

* A security analysis of the SHA-3 contenders.

What would you like to see?

<comment><USER3> As I said to him in an email, the code for papers being released along with the papers is a big one for me.

Interviews with more programmers than just the notable ones in Coders at Work, and also particular domain sections.

If I did something particularly cool with robots, I could publish a paper in an academic journal and have it be all hoidy-toidy and mathy and shit, and then publish the code and all the "yeah there was the math but I really just tweaked the config files" stories in GQ.

It could be the same with all the interesting implementation research, like graphics.

</comment></comment><comment><USER4> This sounds great. I'd recommend glancing over some of the earlier releases of the, sadly now defunct, Perl Journal.

I thought they absolutely nailed their target demographic with a great balance of practical programming tips, history/cultural pieces, and op-eds.

<comment><USER2> Here's a page with links to a bunch of Perl Journal PDFs, for the interested:

<http://www.perlmonks.org/index.pl?node_id=711609>

</comment></comment><comment> brown9-2 Based on his work for Coders at Work, I'm really looking forward to this.

</comment><comment><USER5> Sounds like The Pragmatic Programmers Magazine: <http://pragprog.com/magazines>

<comment><USER6> I just have to say that actually, no, this doesn't sound like that at all. And thank goodness.</comment></comment>