Abandon your DVCS and return to sanity - <AUTHOR> http://bitquabit.com/post/unorthodocs-abandon-your-dvcs-and-return-to-sanity# <comment><USER3> Anyone else remember the days when having your SVN server go down meant that you more or less had to wait until the server came back up before you could get back to doing things? (if you wanted a nice atomic commit). Let's not forget people that have to travel a lot for work– SVN + airplanes is a match made in hell.

Anyone else ever had someone delete or close an open source project that you cared about? Finding a copy with the history that mattered to you could be tricky.

Anyone else ever needed their own fork of something due to differing goals from the parent project, but needed to fold in upstream changes relatively often? That's by nature the sort of problem that a DVCS solves easily.

Other objections to this article:

* Nothing precludes you from using the patch model with DVCS (I mean, Linux kernel development uses Git just fine with this)

* The author mentions that you have to retain the whole history of a project. For one thing, storage is cheap. Another point worth mentioning is that you can make shallow clones with Git. I don't know what the status is for committing to them these days, but there's nothing fundamental that should prevent a DVCS from letting you work on shallow clones if space is such a big deal.

I could go on, but the article seems to be griping about UX issues. Just because we haven't had tools in this space with wide adoption that are user friendly doesn't mean that we won't eventually.

<comment><USER4> > Anyone else remember the days when having your SVN server go down meant that > you more or less had to wait until the server came back up before you could > get back to doing things? (if you wanted a nice atomic commit).

That's now known as "I can't deploy because github is down". Note that the author proposes "local commits plus a centralized storage".

> The author mentions that you have to retain the whole history of a project. > For one thing, storage is cheap.

Not in portable computers. I can get a TB, but that's it. I have build artifacts that clock in at about 300 - 500 MB and I'd version control them if possible. I can't, because that would fill my disk within a couple of month, so I have to push them to a server and somehow link them.

> Anyone else ever needed their own fork of something due to differing goals > from the parent project, but needed to fold in upstream changes relatively > often? That's by nature the sort of problem that a DVCS solves easily.

That's a strawman. The article does not argue that there's no use-case that's solved by git or and DVCS. It's just that not every use-case is solved by git. I'd even go out and argue that most use-cases are solved just as good by a solid centralized system with less complexity involved.

> Just because we haven't had tools in this space with wide adoption that are > user friendly doesn't mean that we won't eventually.

I see a developer wedge his git repo with a pull + rebase about once a month. And then somebody needs to walk over and explain. DVCS fundamentally introduce complexity that is not always needed. And I doubt that the fundamental complexity can be abstracted away.

<comment><USER5> > That's now known as "I can't deploy because github is down". Note that the > author proposes "local commits plus a centralized storage".

And in that cause you can scp your repo somewhere and change your origin and move on.

Also, do people really rely on 3rd party services for their deployed code? I've used github as a repo and colab tool at companies, but we still deployed from repos owned by the company.

> I'd even go out and argue that most use-cases are solved just as good by a > solid centralized system with less complexity involved.

I'd go out an argue that because the added complexity of git is far outweighed by the benefits of a local repo.

<comment><USER4> > And in that cause you can scp your repo somewhere and change your origin and > move on.

If you happen to have - god forbid - a php app that pulls dependencies via composer you have a hard dependency on github since composer pulls practically all code from GH. I don't consider that a good idea, but that's how it currently is. [No, I don't do php and only sometimes have to clean up the resulting fallout]

<comment><USER6> That's not a hard dependency, it's a sensible default that you should be overriding if you're running composer install as part of your deployment process instead of including composer's vendor directory in your repo. Documentation: [https://getcomposer.org/doc/05-repositories.md](https://getcomposer.org/doc/05-repositories.md)

<comment><USER4> Practically all packages use git sources. Yes, you can vendor them - congratulations, you just kicked the can down the road and moved the issue to the build step. The issue exists for other languages as well - maven/mavencentral, ruby/rubygems.org - but only composer depends on github very much. I don't like that but it's not like the other solutions are much better.

<comment><USER7> Many companies mirror maven, so having mavencentral go down is not a big issue. Does composer make it possible to deploy a mirror of its dependencies?

<comment><USER6> Yes, certainly: [https://getcomposer.org/doc/articles/handling-private- packag...](https://getcomposer.org/doc/articles/handling-private-packages- with-satis.md)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> > Note: we fell in love with DVCSes because they got branching right, but > there's nothing inherently distributed about a VCS with sane branching and > merging.

No, I fell in love with it because it was distributed and I could work without an Internet connection, which aren't prevalent everywhere, and even in my house, in a large city, can be iffy. By work I mean things like blame, bisect, log, &c not just committing.

> Let me tell you something. Of all the time I have ever used DVCSes, over the > last twenty years if we count Smalltalk changesets and twelve or so if you > don't, I have wanted to have the full history while offline a grand total of > maybe about six times.

Well lucky him for only being able to code when he has a nice connection, not all of us do.

Also, I like the distributed aspect as well. I like not having to give people commit access to my repo for them to have a proper dev env and then they can send me a patch or a PR and we can incorporate their changes. How would they be able to make any commits or anything otherwise without access to my repository?

<comment><USER4> I call that filter bubble. I like using git for local commits, but 15 out of 20 persons here don't even take their laptop with them and I bet that 17 out of 20 won't touch code on the road. Maybe at home, if they have to. A decent centralized VCS would totally do.

There are a lot of companies that actually would prefer if the code never left the premises and have a use-case for finer grained permissions (some folks can only touch the assets, others can only ever see the dev branch, can't see history,...), things that are by definition not possible in a DVCS.

Storing large assets in git sort of suck and requires ulgy hacks. I'd love to version the toolchain and the VM images for the local development environment, but that's just not feasible with git.

I consider git a perfect match for loosely knit teams that are spread around the world and travel a lot. It's a great tool for OS development, but it's advantages quickly evaporate for teams that sit in a centralized location with a good connection to the server (cable, Gigbit) and only ever work from there.

<comment><USER8> > I consider git a perfect match for loosely knit teams that are spread around > the world and travel a lot. It's a great tool for OS development, but it's > advantages quickly evaporate for teams that sit in a centralized location > with a good connection to the server (cable, Gigbit) and only ever work from > there.

Yes, I think what a lot of people forget is that git was designed specifically with the Linux kernel in mind. Linus wrote it to the workflow of his project without much regard for what other projects do. That's fine; there's nothing wrong with that at all. It just means that it's not suitable for every project, and that's a good thing: different types of projects should use tools that are actually designed for them.

It also explains why git has such a strong learning curve: it was written for kernel hackers. The only people who were expected to use it are the kind of people who are used to delving deep into the nitty gritty. It's why I'm kinda disappointed GitHub became the dominant public source code host, because Mercurial is IMO much better at actually being penetrable to new users. I think people who are mostly familiar with SVN would be far, far more at home with Mercurial than git.

<comment><USER9> Mercurial beats Git hands down across the board for me. I've worked on so many projects where the initial development was tossed into Git and then the devs spend three days trying to get their codebases synced and each using a different tool which may or may not implement the core commands of Git.

Mercurial? Works everywhere much more simply, even ties into .NET with VisualHG and gives a better version/branch management than TFS. And doesn't mismanage disk space like Git.

Mercurial + BitBucket is the cleanest, fastest way I have right now for adding devs to new projects. I avoid Git because so few people (ESPECIALLY those who have only used Git) understand source control well enough not to make a mess of it.

<comment><USER10> > each using a different tool which may or may not implement the core commands > of Git

That's really one of the core problems of using git and why it's not for everyone. If you want a tool to do your job then git won't make you happy. Using the core tools and learning how it works _inside_ is the only way to make it work efficiently.

If you want/need a bike (something easy like svn), use a bike. If you want/need to use an air plane (git) you need to learn how to fly and that costs a lot of time. Putting something on the plane to make it look like a bike (a tool that may or may not enable all of git but probably not) won't suffice in either case.

</comment></comment></comment></comment></comment><comment><USER11> Unpopular opinion here but we're using SVN here on a large project. No intention of changing it. Why?

1\. Deterministic "whodunnit" as we have AD integrated with. That is needed when you have 220 people using a repo.

2\. Partial check outs. Our platform is 6MLoC in total.

3\. TortoiseSVN. Sorry there's nothing else out there as good as that. We use it for DMS tasks as well as you can merge word docs etc.

4\. Binaries and locking. Works for design workflows and the odd file we can't merge easily (git/mercurial aren't magic bullets for that).

5\. Centralised. All our shit is in one place so there's a "single source of truth". Also no patches flying around.

6\. Easy to backup and replicate. Svndump into single file. Or svnsync and there's a true copy.

7\. Perfect tooling/tracking integration due to the centralisation and hook support.

8\. Easy to use for mere mortals (excel/word pokers).

9\. Forces backup behaviour. A specific case but we had a couple of people using git and then pushing to our svn. One SSD fail and bang, the guy lost a week of work because he didn't push to master.

Merge tracking is a non issue since 1.7 and if you need to work offline, just create patches and check them in when you're back online. Also our svn instance has been down for 3 minutes in the last 8 years...

I really can't justify a move to a DVCS and lose all the above so I'm quite happy with my sanity.

<comment><USER12> I am honestly baffled by your points 1 & 2.

You have 220 people working on 6MLoC and you think git can't handle this? You are aware that git is used for the Linux kernel, right? I mean, it must be its most famous use case.

<comment><USER13> 1) Unlike the linux kernel, cssmoo's project has lots of large binary files. If he used git the repo sizes would blow out of control and designers would lose the ability to lock the files they are working on (locking is important because you can't merge binary files after the fact)

2) His organization is very different than what the Linux kernel does. Linux operates in a hierarchical manner where each subsystem has a maintainer that collects patches and sends them up to Linus. This system makes full use of Git's DVCS capabilities but its not perfect for everyone.

</comment></comment></comment><comment><USER14> The best part of the whole article was the line:

>> "If you say something's hard, and everyone starts screaming at you—sometimes literally—that it's easy, then it's really hard.

</comment><comment><USER15> Hahahaha love this. But I think all version control systems suck - <USER2> inherently, but because their usability is atrocious. I enjoy Git... well, perhaps enjoy is a strong word, perhaps what I really mean is I have Stockholm Syndrome.

I've tried to go back to TFS, SVN and other centralized systems, but I'm too emotionally bonded to having my source control system with me, everywhere I go... Starbucks, Tim Hortons, the Train, sitting on the beach. But I don't delude myself into thinking this is anything more than emotional. I _like_ having it there, it gives me comfort - and there is _some_ convenience.

I don't want to have to worry about "How do I undo all those changes from my last 10 commits and go back to where I started down this path?" Git gives me that nice fuzzy feeling of being able to play meaninglessly with my code until something takes form and if it comes to nothing, I can do git reset --hard 1f3c2047 and I'm right back to where I was before I went down this path of insanity...and if it takes a nice form, I can do git rebase -i and squash all my messy commits into a single commit with a single commit message. I didn't need to branch, I didn't need to clone, I didn't need to do anything crazy, I just fire up Bash and I'm done, no muss, no fuss, no having to be connected to the source control server, no dependence on anyone else... and if I _did_ want to put that code aside, I can stash it or spin it onto another branch before coming back to my original branch and resetting back to a sane commit. It's nice having ultimate control.

But having that amount of control has its drawbacks...you can't expect the ability to drive stick, but not have to learn how to use a clutch and gearshift.

</comment><comment><USER16> > Let me tell you something. Of all the time I have ever used DVCSes, over the > last twenty years if we count Smalltalk changesets and twelve or so if you > don't, I have wanted to have the full history while offline a grand total of > maybe about six times. And this is merely going down over time as bandwidth > gets ever more readily available. If you work as a field tech, or on a space > station, or in a submarine or something, then okay, sure, this is a huge > feature for you.

Or if you're a Kiln customer, and their site is taking 4 minutes to load a page, assuming it's not just down...

Sorry, couldn't resist...

Seriously, though, I don't see where the author is going with his rant. It doesn't say much, and almost seems like a snide jab at Git and GitHub.

None of his points are very good. Yeah, it doesn't take a DVCS to treat the whole repo as a unit. But right now they're the only ones who do. A hypothetical patch to SVN doesn't help me much.

Also, I know from experience that SVN is horrible at binary files, and especially horrible at large binary files. I'm not saying Git and Mercurial are great, but they're no worse than SVN.

The entire section about the amount of books and documentation is just silly. There was a LOT more subversion info around than "just the Red book". I owned two books, and I know we had a few different ones floating around the office, not to mention boatloads of tutorials and guides online.

It's also funny how he makes fun of GitHub's git tutorial, but doesn't mention Kiln's Mercurial and Git tutorials. He also rips on GitHub's pull requests, but fails to mention that they work better than Kiln's.

But it's great to see the founder of Kiln telling everybody not to use the technology his company is based on...

<comment><USER17> > Also, I know from experience that SVN is horrible at binary files, and > especially horrible at large binary files.

Bug reports to firstname.lastname@example.com please. Or it didn't happen ;-)

<comment><USER18> Indeed. I work on hg a lot (and custom git servers some), and I'd be quick to tell you that Subversion is a _lot_ better in the common case than either git or hg on large binary files.

</comment></comment></comment><comment><USER19> >" _The actual reason is because GitHub let coders cleanly publish code portfolios, and GitHub happened to use Git as the underlying technology to enable that,_ "

Is this guy genuinely suggesting that people fell in "love" with distributed version control solely because of GitHub? I don't feel _old enough_ to be telling this author to get off my lawn. I mean, GitHub is great and all, but it does not represent the sum whole of all the commits in this world.

Granted, does anyone know the timelines of when DVCS took off (as opposed to launched)? Mercurial and Git were both released a good 3 years before GitHub was launched.

Okay, I looked up more about DVCS. Wikipedia article's history section on it:

 _History

Closed source DVCS systems such as Sun WorkShop TeamWare were widely used in enterprise settings in the 1990s and inspired BitKeeper (1998), one of the first open systems. BitKeeper went on to serve in the early development of the Linux kernel.

First generation open-source DVCS systems include Arch and Monotone. The second generation was initiated by the arrival of Darcs, followed by a host of others.

When the publishers of BitKeeper decided in 2005 to restrict the program's licensing,[5] free alternatives Bazaar, Git, and Mercurial followed not long after._

<comment> vezzy-fnord I think both of you are respectively overestimating and underestimating the significance of GitHub.

Are there a lot of projects that use Git without a hosting intermediary because of genuine advantages? Yes, absolutely. Plenty of core infrastructure and applications, many of which significantly predate Git or GitHub.

Is there a growing subculture of people who essentially equate Git with GitHub and end up completely subverting the "D" in DVCS, incurring unnecessary downtime and who pretend Git/GitHub are the be-all-end-all? Also yes, with circles such as those of HN being overrepresented with "GitHub is your resume" rhetoric and various startups or hip SaaS having GitHub be their single point of failure.

Being the #1 software hosting site in the world does have an effect on demographics, at the end of the day. By now Git and GitHub have an essential, if controversial relationship.

<comment><USER17> Back when I followed the long discussions about introducing git at the ASF (now live at git.apache.org) several git proponents said that git without github is pointless to them. I was quite surprised how adamant some people were about that. Before then I never thought of github as a sort of GUI for git, just as... one service for repository storage out of many, I guess?

The ASF has a strict policy of self-hosting. So git repos are now mirrored to github from ASF intrastructure, for the github fans who initially suggested the reverse (ignoring obvious problems such as ASF having no influence over what happens at github).

</comment></comment></comment><comment><USER20> Note that the author of the article doesn't advocate forgoing local commits, but something like Facebook's work on a semi-distributed Mercurial, which allows local commits without cloning the entire history to each client. Here's the relevant section from the linked post[1]:

 _But what if the central Mercurial server goes down? A big benefit of distributed source control is the ability to work without interacting with the server. The remotefilelog extension intelligently caches the file revisions needed for your local commits so you can checkout, rebase, and commit to any of your existing bookmarks without needing to access the server. Since we still download all of the commit metadata, operations that don 't require file contents (such as log) are completely local as well._

[1] [https://code.facebook.com/posts/218678814984400/scaling- merc...](https://code.facebook.com/posts/218678814984400/scaling-mercurial-at- facebook/)

</comment><comment><USER21> Git snapped into focus and I've had little problems since I was told it's simple a DAG, and all the branch/tag/etc. stuff are just labels pointing to a part of the graph. After that, I've seriously never been in a situation where I was totally at a loss as to what was going on.

Also, even in SF, Internet connectivity is often flaky enough that requiring a network roundtrip for anything to deal with my files is a non-starter. (Right now, downtown SF, and we only have a single Internet provider option. It goes to ~100% packet loss about 20 times a day. We get about 10-15Mbps out to the wider Internet (but 10x more to servers nearby - probably a shitty ISP using HE or something). So it's really quite a negative to need connectivity to do things.

<comment><USER22> Yup. I spent less time learning in total how git works than I have spent trying to figure out workable branch merging in svn.

(For the latter, I ended up developing scripts that worked with patches as first class objects, so that e.g. every bug fix that needed to be applied on multiple branches would actually live in a patch file as my personal way of tracking a unit of work.)

As to distribution, I spent 5 years as a remote developer working for a CA company from London. 200+ms round trips and occasional VPN weirdness meant painful sessions with svn. Having a local repo is excellent. Large binaries that constantly change are still a problem though.

</comment></comment><comment><USER23> Here's my problem with this article: Return to sanity by adopting what?

I work on several small-ish projects, and due to the leads coming and going, there are a smattering of source control solutions. On a weekly basis, I use SVN, TFS, and Git about equally.

However, the workflow supported by Git is by far the best for me: I can commit locally as much as I want, rebase the commits or just merge them with work other people are doing, bisect if I broke something, and even branch locally to experiment or when I get interrupted by a question or another task.

Neither TFS nor SVN support this at all. With both of them, I can't really check in until I'm completely done and sure I won't break the build or tests. I end up zipping my directory or fighting with patches/shelvesets that don't do what I want.

Now, does the way I want to work require a DVCS? I don't know - perhaps it doesn't in a theoretical sense. However, DVCS is the only one that _actually supports_ that now.

So sure, we all push to the same repository and it could be a centralized system. But what would actually work? What can I switch to? I'm not abandoning Git for TFS or SVN, that's for sure. Nor Perforce which was also painful.

Yes, you convinced me I don't need the "D" in DVCS. So make a CVS that supports local branching, commiting, sane merging and diffing and show it to me! But complaining that I'm not using one of the features of my DVCS has no bearing on if I should abandon it or not.

</comment><comment><USER24> The author gives an excellent opening summary of the fundamental architecture of common VCSes over time, and then accurately identifies the most painful points of (eg) git, but then dramatically understates the benefits of a good DVCS.

If you need binary files or otherwise very large repos, or centralized control and auditing, or non-developers to work with it, then git has major drawbacks. However there is so much code in the world—probably the majority—that works incredibly well with the full benefits of having it all in a single git repo.

Having the whole history and the ability to mutilate it at will in a very fine-grained fashion is a power tool. I like it for the same reason I like vim: the learning curve is steep, but the idea is that this is a core tool I can use across programming languages for the duration of a 40, 50, 60 year career. I don't want to conflate something as horrible as svn with a theoretical good centralized VCS, but I have to say that using svn for 5 years I had much less idea how it worked then I did after 1 year of using git. Even though git was a steeper learning curve, the concepts in it are well-defined and the low-level pieces in it have a clarity of purpose which allows some implicit reasoning about the way things work without having to go in and actually read the source. This allows the fluent practitioner to devise flexible approaches to individual problems that a less modular system can not provide.

I see commit messages and history as a fine craft. With git you can commit everything in small units that make sense only during construction as you are still exploring the problem space, then you can rebase it into cohesive changesets with deep documentation and a continuously unbroken build. A centralized VCS user could only achieve the same by withholding intermediate commits; that's okay, but it can become unwieldy for large changes. With git you can use initial commits like a master woodworker uses scrap wood, structuring them one way for building, and then discarding them in favor of finished pieces built to stand the test of time, providing massive forward benefit in terms of documentation/bisectability. Having worked on at least one project with a 7-year history, I can testify that investing in history curation pays huge dividends and can well make the difference between your successors thinking of you as a solid developer or a shotgun-programming hack.

</comment><comment><USER25> Problem 1: Developers unaware of the full capabilities of their DVCS system (thinking they can't do work because github is down). Solution: Education.

Problem 2: Lots of versions of big blobs. Solution: git clone --depth 1 remote-url

Problem 3: Big commit history. Solution: git clone --depth 1 remote-url

Problem 4: Bad UX. Solution: Write a better UI, or find someone to do it. Linus is not a UX guy and never will be.

Also, the example workflow differences are pretty similar to the differences between the github model and the Linux contribution model. This has nothing to do with DVCS vs VCS.

So, in short, there's no actual fundamental problem with DVCS. Nothing to see here. Move along.

</comment><comment><USER26> Of all the problems we have as an industry, I'm convinced that version control is near the bottom of the list.

Sure, 'DVCS' in the form of git or mercurial doesn't deal well with binary files, and has large repo sizes. If these are problems, you might be using the wrong tool.

But that's fine; pretty much everybody should be using something like git or mercurial. They're flexible, relatively easy-to-use, and cover almost all use cases. If you need to store large frequently-changing binary blobs, then you are probably in a minority; there's nothing really wrong with git-annex for managing that content.

But this whole thing we're seeing at the moment with people objecting to DVCS utterly mystifies me, as someone who went from CVS to SVN to git and has utterly no interest in going back.

</comment><comment><USER27> >The people yelling at you are trying desperately to pretend like it was easy so they don't feel like an idiot for how long it took them to figure things out. This in turn makes you feel like an idiot for taking so long to grasp the "easy" concept, so you happily pay it forward, and we come to one of the two great Emperor Has No Clothes moments in computing.

This part doesn't make any sense. If anything, people would want to convince you it was _hard_ to not look stupid for taking long.

That being said the phenomenon clearly exists, but the reason is probably more along the lines of calling everything easy to try look smart in general.

<comment><USER28> This drove me crazy too. I do not know anyone who conspicuously takes a long time to learn something, and then claims it's easy. In fact, it's quite the opposite, as you mentioned.

Now, I have observed cases where someone inconspicuously took a long time to learn something and then claimed it was easy. This was more to elevate one's own intelligence in the eyes of another. As in, "Wow, this is really hard, but Joe said it was easy. He must be super brilliant."

The other prevalent case of this behavior is when reading mathematic proofs. Often times you'll run across a statement in a proof along the lines of: "It's easy to see that X is true," for some statement X. But, X is always an existing result, and so this is really a way to focus on the details of the proof at hand and not get bogged down in proving every single non-trivial step.

In fact, when I was a Mathlete, our coaches instructed us to make use of this approach, even if we weren't 100% sure that X was true. If we were pretty sure X was true, but we couldn't remember the proof, and we knew it would take prohibitively long to derive the proof, then we would make the statement.

</comment></comment><comment><USER29> I think the author is just misunderstanding most people's use of version control. We learn a tool well, so we continue to use it in situations where it might not be the best for the job in hand, or might be over-engineered for the purpose. Git falls into this use case a lot because once you understand how to use it, why not continue to use it, even if the project doesn't really need distributed version control. It's a waste of time to learn a new system.

Personally I've never even bothered to learn git. I used to use Perforce at work, now I use it for my own projects. It does the job well, why switch?

</comment><comment><USER10> There are so many comments, probably nobody will read this. But I have to say it any way.

The author seems to know a lot about many different things. But still it feels like he falls into the same trap as most people: Things never really just work.

Life is always way more complicated than we would assume at first. SVN does not make most people happy, because it is more simple. If it is more simple there are a lot of things it can't do.

Some people do something fast and simple for you and you think it works. But a week later a coworker needs to spend half the week to make it actually work. And even 10 years later you spend a significant amount of work to make it do things it doesn't do by itself.

Learning a complex tool to do a complex task is really getting you closer. Because after you have spent the time learning it you can spend the same short time periods to achieve a much wider range of tasks, solve much wider sets of problems with each solution, etc.

</comment><comment><USER30> I fell in love with Git because I could do frequent local commits that matched my workflow, only "publishing" them when it was appropriate, in the format I wanted. Git did this for me, Subversion didn't.

I know that concept does not have to be inherent to the D in DVCS. But for me that was the killer feature. It changed everything for me. The gain from being able to do that dwarfed all the costs of learning Git.

</comment><comment><USER31> I think the DVCS issues he mentioned are solved entirely. Just use the simple git-flow branching scheme.

master = Code that is production ready.

develop = Code for staging

feature/XXX = Feature branches.

Where is there room for confusion? It's dead simple and makes working with teams so easy and effortless. I would never join a team that uses something like Subversion or Perforce in these times.

Git sucks for large blob files - no doubt. For those I recommend using Veracity.

</comment><comment><USER32> I wouldn't call darcs ( [http://darcs.net/](http://darcs.net/) ) a failure. Darcs development is humming along and 2.11 is nearing release.

Gone are the major performance issues with exponential merges and more recently, pushing large files.

[https://www.mail-archive.com/darcs- firstname.lastname@example.com/msg18423....](https://www.mail-archive.com/darcs- firstname.lastname@example.com/msg18423.html)

[https://www.mail-archive.com/darcs- firstname.lastname@example.com/msg18425....](https://www.mail-archive.com/darcs- firstname.lastname@example.com/msg18425.html)

After having used git, darcs is a joy to use.

<comment><USER33> I and my teams used Darcs in two startups around 2005-2007, back just before and after 2.0.

When it worked, it was pretty good. Darcs' UI was close to ideal. The interactive record prompt, for example (which git got after a while with the "-p" flag), was great. The way Darcs was able to infer dependencies between commits automatically and treat it more as a "sea of patches" rather than a linear history meant that it was very easy to work with branches.

The problem was that as our codebase grew, it increasingly did not work. The infamous exponential conflict problem was just one of several bugs and performance issues that ended up costing us a lot of money in lost productivity. The problem was that when something went wrong, you probably couldn't fix it yourself. The only people who actually understood the internal database — not just the files on disk, but how it all fit together, including the "patch theory" — were the Darcs developers themselves, and not many people except David Roundy actually understood it from top to bottom. The fact that it was written in Haskell (which, at the time, was a lot more obscure than it is today) just made things worse.

After a while we also found that the lack of a linear history had major downsides. Patch dependencies meant it was harder to cherry-pick; when you wanted to pick just one commit, it was often impossibly to understand why Darcs wanted to also pick a bunch of unrelated commits along with it, and from there on it got messy (and you increasingly risked bumping into the exponential merge bug). Git's history-rewriting tools cause more conflicts, but are ultimately simpler and easier to understand.

Darcs' tragedy is probably that its performance problems burned so many people that they gave up and left it for Git or Mercurial, never to come back. We might have stuck with it longer, if it hadn't been for the aforementioned issues. On the bright side, even if Darcs hadn't had these issues, we probably would never have had a Darcshub.com, and Git would still have beaten the competition.

</comment></comment><comment><USER34> I used to work at a place where our dev team was split in 2 and separated by 500 miles. We had centralized source control and there were days when our company network was slow. On those days I had to wait 30 minutes to check a file out and 30 minutes to check a file in. Try to meet deadlines with a workflow like that.

Never again.

</comment><comment><USER35> Are these complaints all against DVCS? It seems a lot of them if not all are just shortcomings of currently available offerings (git/mercurial) whereas the author is directing them at DVCS directly.

</comment><comment><USER36> Great article. Funny and knowledgeable. I know it's impossible but many of the comments here make it look like they didn't read the article. I guess if we followed 'best practices' we would be good.

</comment><comment><USER37> I use GIT for backup. the D allows this to happen and if I goof I can always go back to where I was. Always worth it for a single workflow.

</comment><comment><USER38> Not to diminish the argument, but other than diskspace, I really don't understand the downsides described here. I'm wondering, given the author was an early adopter of Git, this is purely hipster syndrome. Everybody is using it, so it's not cool any more.

</comment><comment><USER39> I don't think the existence of more books for git as opposed to svn proves that it is more difficult. I think it's more a reflection of how popular/accessible git is, and publishing more books is a way for the market to address a bigger audience.

</comment><comment><USER40> What are the (open source) centralized version control systems that do merging and branching like git?

</comment><comment><USER41> You do not have to clone the whole history of a repo with GIT. Solves most of your issues.

<comment><USER41> git clone --depth <n> <url>

</comment></comment><comment><USER42> The author mentions that SVN is going to have branching. Users have had the ability to use branches in SVN via SVK for over a decade. Thats not the reason we switched to git.

We switched to git because it made more sense and worked better, because every operation was faster in git, and because the development of the project was sure to progress. Github became popular years after git was already spreading.

<comment><USER43> >Github became popular years after git was already spreading.

That's technically true, but the implication is not. There was less than three years between the launches of git and GitHub. While git was becoming popular, it was just one of several (D)VCS solutions. GitHub is what really separated it from the rest of the pack.

</comment></comment><comment><USER44> Great article and a good wakeup call on what to improve in Git. I don't agree that git-annex is centralized by nature. You can choose to download all the binaries and upload them to another server. Not everyone might do that if it is multiple TB's but it is much easier to work with multiple remotes than in a centralized system

</comment><comment><USER45> With DVCS or any VCS you don't have to always have the full history. If it is a public project and open source you might want that. But if you are working on games or apps you might want a clean new remote after every so often so you aren't sending around a TB repo.

When bitbucket limited to 2GB for repos, this limit can easily be breached on game projects, but it helped to really git submodule out libraries/code. This also encourages resetting history in a new repo every so often when that history is really not needed, like 2-3 versions back or after many months/years. Distributed VCS databases can get immense, but like anything in life, maintenance every once in a while helps. For some projects this is not possible like a linux kernel but for any old web site, app, game etc this is something that you can and should do.

All operations are faster when your DVCS repo sizes are smaller.

<comment><USER46> If you're periodically clearing out your repository history, you're missing out on an extremely useful tool: blame.

[http://mislav.uniqpath.com/2014/02/hidden- documentation/](http://mislav.uniqpath.com/2014/02/hidden-documentation/)

</comment></comment><comment><USER47> This: Git is so amazingly simple to use that APress, a single publisher, needs to have three different books on how to use it. It's so simple that Atlassian and GitHub both felt a need to write their own online tutorials to try to clarify the main Git tutorial on the actual Git website.

<comment><USER48> So, going by the number of books and tutorials metric, java is a much more complicated programming language than erlang? Have you seen how many books and tutorials java needs?

<comment><USER49> Yes, Java is orders of magnitude more complex than erlang. What kind of comparison were you trying to make?

<comment><USER48> I knew that no matter what languages I picked for my examples, that someone on hn was going to respond that yes, in fact language B is much simpler than language A. I believe you understood the comparison I was trying to make and I'm not interested in a discussion about how simple erlang really is, it's besides the point..

<comment><USER49> No I do not understand the comparison. Java's syntax, virtual machine, libraries, _everything_ is orders of magnitude more complex than the erlang stack. And indeed, proper introduction and reference of Java can fill a whole bookshelf, where as a couple of printed technical reports does the same for erlang.

Back to the original topic, git is also way more complex than a DVCS needs to be (compare e.g. with monotone, or just about any other DVCS). And any DVCS is way more complex than even the most difficult to use centralized repositories. So I think the OP's point is valid. There is at least corrolation going on here.

<comment><USER48> So you do believe that if there are more books and tutorials about a topic that means its more complex?

<comment><USER49> It's Bayesian evidence that the subject might be more complex, yes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER50> > No, the only thing that a DVCS gets you, by definition, is that everyone > gets a copy of the full offline history of the entire repository to do with > as you please.

> Of all the time I have ever used DVCSes, over the last twenty years if we > count Smalltalk changesets and twelve or so if you don't, I have wanted to > have the full history while offline a grand total of maybe about six times.

> That's fine for a centralized system. You only have one copy at any give > point, so the amount of disk space you need is basically the size of the > current (or target) version of the repository—not the whole thing.

> This means that changing a file in a deep directory will require generating > new trees for every directory up the chain—and, of course, that figuring out > what changed in a given directory requires loading up all the trees going > down the chain. Wondered why git blame runs slow as hell on big repos? Now > you know.

(is this even true? Git blame is slow because it digs through history)

> Git is so amazingly simple to use that APress, a single publisher, needs to > have three different books on how to use it.

People will write books about anything because people will read books about anything.

> Indeed, to listen to this, you would believe that open-source development > was impossible, or at least absolutely horrible, before GitHub sprang into > melodious existence.

The pull request critique is so silly I'm not even going to try.

\----

I really don't see how _any_ of his critiques have to do with DVCS vs VCS. Literally none of them. This really is a Git rant.

If you don't like Git, I guess that's fine. The problem with git is it's more building block than slick foolproof user tool, but some of us like it that way. Git is the first prominent example of someone thinking hard about the low-level theoretical implications of version control (the idea of the state of the entire repo as a changeset, the underlying data structures, etc), and then building a tool around it that works well. When I look at SVN, for example, it's not obvious what the hell we were even thinking - there was no theoretical framework, it was just the simplest thing that worked. And it didn't work well. Branches were more of a pain than a feature. So yeah, there's obviously room for improvement, but I don't even understand the complaint against DVCS in general here.

edit: formatting

edit2: or rather, it's about the current state of DVCSes, but I don't see how most of these would be made better by switching back to a centralized VCS and I'm not convinced that improving these are mutually exclusive with having a distributed version control system. I think there's come conflation of concepts going on here.

<comment><USER51> Is there a way to fix your formatting?

</comment></comment><comment><USER52> I like a lot of things about git over svn... the 'distributed' nature actually _isn't_ one of them, I think a canonical source location is about the only sane way to manage distributed software development.

However, I think it's the distributed nature that leads to the much more powerful branch/merge functionality, which IS top on my list?

(Git's UI is also not one of the things I like the best. It is a mess, indeed. Yes, because it was not originally intended as an end-user UI. So what, it is the end-user UI anyway, and it's a kind of ridiculously confusing and inconsistent one).

</comment><comment><USER53> I had no idea there were so many repressed SVN-loving developers out there.

</comment><comment><USER54> svn isn't really a solution for binary files. It also requires workarounds. Sure it doesn't have the issue of every version of every blob but it still needs 2 versions of every blob. If you're on a game with terabytes of source data which is common for a AAA game 2x terabytes is not a win.

It also doesn't help you manage collisions by locking every UNMERGABLE binary file so you know before you edit if someone else is or has already edited the file.

I know you can set local options to make it lock the files but that feels more like a workaround.

<comment><USER17> Binary files are by definition unmergeble with a diff3 algorithm implementation that uses text tokens separated by \n. Specific software to merge a binary file format can be used with virtually any version control system if available.

You can set an svn:needs-lock property on binaries. It is not a local option, it applies to everyone using the repository. For extra convience, use svn:auto-props (acts recursively) to set it by default on new files which match a particular filename pattern (e.g. match on file name extension). [http://subversion.apache.org/docs/release- notes/1.8.html#rep...](http://subversion.apache.org/docs/release- notes/1.8.html#repos-dictated-config)

EDIT: That said, I agree that some types of binary files really have no place in SVN repositories. One example are release artifacts, as stored e.g. in Maven repositories.

</comment></comment><comment><USER55> Interesting article. svn's scruffiness contributed to git's success.

A little off topic: I tend to work on projects by myself, especially since I have more or less turned off my consulting business. I have some git repos that I have been tempted to rm .git, git init, git add remote origin, and git push -u --force origin master. I have deep backups of everything so losing history to save a lot of space would be good. I didn't used to care about disk space but my two favorite laptops have moderate sized SSDs.

</comment><comment><USER56> Give me a centralized system that allows me to branch as easily as git, and has git stash.

Is Git crap? Yep, unfortunately people went with github over bitbucket, despite bitbucket having a much better pricing model and as a result git is what people use for a DVCS.

I would love for somebody to write a centralized version control system that would be a complete replacement for SVN, the way SVN replaced CVS but until somebody does a DVCs is what we have.

</comment><comment><USER57> TLDR; Large binary assets are handled poorly by Git/Mercurial.

I too have been bitten hard by this. Being a mercurial user, I tried large- file-extensions but on a team this leads to file corruption/non- synchronization too often to be practical.

The most practical "solution" I've found is to actually ignore the issue. When your repository gets too bloated, start a new one.

<comment><USER44> Consider using git-annex, it is quite good. We include it by default in GitLab Enterprise Edition.

</comment></comment><comment><USER58> I think the problem for this guy is Git. In my opinion Git user experience is plain horrid, nothing to do with DVCS just Git. Personally I find Mercurial a lot more pleasant to use.

Not sure how repo size is really an issue in the age of multi terabyte personal storage, it's even possible to get SSD of that size without breaking the bank.

</comment><comment><USER59> Whenever I see an article like this I remember that Fossil and Perforce exist. And then I forget about them the next day.

</comment><comment><USER60> I think that a combination works best, but it looks like not many do a central SVN + local git setup. Any reason for that? Do you have bad time with that or what?

The central SVN is much better for tracking versions for release purposes, while the local git has all the benefits of working on one thing than switching to another.

Any thoughts?

<comment><USER60> Basically this:

[https://www.kernel.org/pub/software/scm/git/docs/git- svn.htm...](https://www.kernel.org/pub/software/scm/git/docs/git-svn.html)

[http://flavio.castelli.name/2007/09/04/howto_use_git_with_sv...](http://flavio.castelli.name/2007/09/04/howto_use_git_with_svn/)

[http://andy.delcambre.com/2008/03/04/git-svn- workflow.html](http://andy.delcambre.com/2008/03/04/git-svn-workflow.html)

</comment></comment><comment><USER61> Is Git really that hard to use? I know it took me awhile to learn how to find the right documentation for things, but that's significantly easier these days thanks to StackOverflow and the like. All told, I don't find Git significantly more difficult than the other tasks I have to do for my job. Usually, the troubles I have had with Git were because I tried to do something the wrong way.

And if you don't like the documentation, well, there's more than one way to contribute to an open source project.

And you could make an argument about Git specifically having bad UX in certain ways, but that isn't an argument against DVCS in general.

There are problems and bugs with every VCS out there, but I've never encountered one with Git that left me completely useless for a day, or with a completely corrupted, unrecoverable repository. I've heard of such things happening in Git, but it hasn't happened to me in 5 years of using it. I've had that happen to me, personally, once every 8 to 12 months using SVN. The we thought SVN was a godsend back then was because it wasn't the 3 to 4 months that was SourceSafe or the monthly rate that was CVS.

Okay, I'm being bit hyperbolic there, but not by much.

And you can model centralized VCS in DVCS--evidenced by the fact that many peopled _do_ do that with Github and it's ilk--meaning that systems that can only do centralized VCS are _defective_. Git can do everything SVN can do, but SVN can't do everything Git can do.

If your central SVN repository goes down, you're pretty much SOL until it comes back, and you might even be SOL if and when it _does_ come back. If GitHub goes down, I'm _mildly inconvenienced_ when I have to add a new remote to my repository when I need to, say, share code with a colleague, or perform a deployment.

The argument about contributions is... it's not about Git or DVCS at all. It's about GitHub and/or bad project maintainers. And he even admits that, but then acts like he's delivered a blow against the general concept of DVCS.

The argument about blobs is an argument against Git, but not DVCS.

I can't speak to Hg or Baz. I've heard they are easier to work with than Git. But I just can't imagine giving up the things Git gives me to go back to SVN. If someone on one of my projects suggested such a thing, it would seriously call into question for me that person's expertise.

<comment><USER13> Its a bit annoying that I still have to frequently go back to stackoverflow whenever I need to do a git operation I haven't done in a while. Git doesn't have strong abstractions and the commands are organized in a very adhoc manner so its hard to predict how something will work without having to go check some documentation.

</comment></comment><comment><USER62> He seems to have forgotten that most DVCSs allow you to perform lightweight clones, so you don't need to pull down the whole repo.

</comment><comment><USER63> Logic: claiming to be a current apologist of DVCS while simultaneously positing that DVCS should be abandoned.

</comment><comment><USER64> The comments here trying to rebut every argument against DVCS are missing the point. The point is not that DVCS sucks and we should all go back to SVN - it's that since DVCS is fashionable, it is seen as a solution to _every_ problem.

Eventually this will wear off, and we will go back to using the simplest tool that gets the job done. For some jobs this will be DVCS, for others it won't.

</comment><comment><USER65> Github link to his proof-of-concept centralised VCS that doesn't suck..?

That's what I thought.

<comment><USER66> Why would anybody writing a new VCS use Github to host it? Wouldn't it make more sense to use the new VCS itself. You know, eat your own dogfood?

<comment><USER67> Not everyone is using GitHub for source hosting, there quite a few companies, which use internally some other VCS (like Perforce) and publish the sources on GitHub.</comment></comment></comment>


Google Cloud Networking Incident - <AUTHOR> https://status.cloud.google.com/incident/cloud-networking/17002 <comment><USER2> We've been having 'fun' with ongoing issues for a site since 6pm UTC yesterday, which got dramatically worse this morning...and having been recurring during the day.

Having multiple hour outages makes me really want to go back to hiring a couple of physical servers in a rack somewhere.

<comment><USER3> The "cloud" is a hilarious failure at the main marketing point. Decentralized just means you have no idea where your servers are.

Scaling is the only real selling-point of cloud and far more people think they need it than actually do

<comment><USER4> I have no idea where my power or water come from, or where the cell towers are located for my phone, or the satellites they communicate with. I don't want/need to know. Most cloud providers tell you which region of which country you're in, most people don't need to know much more (and if you do, then dont use cloud)

<comment><USER3> The difference is you're not concerned about where those come from. It doesn't matter whos water it is or where the power is coming from. And they're both simple commodities with few metrics.

We're trying to fit something that's generally very centralized into the same model. Where the servers are does matter. What OS they run and how reliable they are matters on an individual level. The environment your server runs on is quite important and it's definitely your server, not "any server will do" by a Longshot.

If the cloud was just some source of CPU instructions we would have a government regulated source of CPU power for everyone. But depending on what you're running ram size, cache size, network latency, CPU architecture, drive type, endless variables come into play that are all important.

Depending on hardware that you cant control to have metrics you definitely need to control is going to make the system less reliable, and that's what we're seeing now with cloud computing.

<comment><USER5> I lived in a country where everyone has a power generator in their building. Let's just say the quality of life was significantly lower. This cloud shift is like an unstoppable tidal wave. I'm always surprised when I hear people with your argument. Are you willing to imagine that in a couple years things may change your perspective?

<comment><USER3> The key is that most services don't need to be reliable. I think the cloud has huge promise here. Engineers tend to think their app needs five-nines reliability when we live in a world where the banks close twice a week.

I don't think on-prem will ever die out. It's like owning vs renting your office. There's pros and cons to each and we'll eventually hit some kind of equilibrium.

</comment></comment></comment></comment></comment></comment><comment><USER6> For anyone wanting a quick workaround, try removing all the backend of your load balancer then add them again. No idea why but it did work for us.

<comment><USER7> I can confirm several people have had luck doing this (not us though :-( )

<comment><USER7> According to Google's support (....) the workaround works but will likely fix it only temporarily.

They are currently rolling out a change that should completely fix the issue and somewhere else I read they are rolling back a config change they did recently..

</comment></comment></comment><comment><USER8> Just to verify my understanding:

* This is a multi-region (us-east1, us-central1, europe-west1, asia-northeast1 and asia-east1) outage (yeesh)

* Incident began at Incident began at 2017-08-29 18:35 PDT. At the time of this comment, we're over 13 hours (??)

Correct?

<comment><USER9> It's now past 12:00 US/Pacific and the incident is still ongoing. I'm thinking that they don't have as many customers as they'd like us to believe. There's been very little discussion and no outrage. If AWS had an incident lasting this long, there would be a lot more noise.

<comment><USER10> If AWS had an incident this long, there would be no noise and no public post about it. And the customer support would keep repeating have you try buying bigger instances?

</comment></comment></comment><comment><USER11> "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." — Leslie Lamport

I think Leslie needs to update this for Cloud, however.

</comment><comment><USER9> Our load is not being "balanced", as not all backends are being utilized because of this.

<comment><USER12> This is our experience as well. On one service with 3 backends, we lost all connections to one at about 0530UTC, then the second at about 1010. The third backend has been able to handle all of our traffic so far, but we're also seeing intermittent connection resets or failed connections.

</comment></comment><comment><USER7> we've been suffering from this since 3:07am UK time and it's sad to see google still hasn't learnt how to do support/communicate with their paying customers after all the flack they always take about this.

The number of mistakes (silly and otherwise) keeps increasing and I'm not talking about the technical problem itself! ok, end of rant

<comment><USER13> _google still hasn 't learnt how to do support/communicate with their paying customers_

You are confusing "don't know how" with "absolutely not incentivised to spend money on this"

<comment><USER7> nope I'm not :-)

writing poorly on the status dashboard, messing/mixing up timestamps, changing them retroactively hoping people don't notice, forgetting and/or mistakenly swapping the names of affected regions, consistently writing "next update at x o'clock" and then invariably publishing the update several to 10+ minutes after o'clock are all mistakes done by whoever is already paid to update that page and communicate with customers.

</comment></comment></comment><comment><USER14> Stuff goes wrong everywhere. The only problem is thinking that any cloud vendor or service is 100% reliable.

</comment><comment><USER15> Does this affect the global load balancer too?

We haven't seen any issues, so presumably not? Or is it just a subset?

</comment><comment><USER16> Whenever the sun starts shining, the clouds disappear.

</comment><comment><USER17> Yikes! that's a huge failure.</comment>


APIEmbed Embeddable API Code Snippets by Mashape - <AUTHOR> https://apiembed.com <comment><USER2> hey - thanks for the mention. pls remove: by mashape. clean.

<comment><AUTHOR> Sorry for this but I can't edit title.

<comment><USER3> It's quite alright, thanks for sharing and I hope you found it useful!</comment></comment></comment>


Griffon: a desktop application development platform for the JVM - <AUTHOR> http://griffon-framework.org/ <comment><USER2> This project seems to be abandoned or at least dormant (last tweet from november 2019) but to anyone looking at cross platform JVM-based desktop apps check out JavaFX with OpenJFX and a recent JDK version. You can use any JVM language with it (Java 14, Kotlin, Clojure, Scala etc).

The split from JavaFX inside the JDK to OpenJFX outside of the JDK was a bit messy so a new project takes some time to setup with Maven or Gradle but aside from that it's still a nice environment to make desktop apps in.

<comment><USER3> > The split from JavaFX inside the JDK to OpenJFX outside of the JDK was a bit > messy so a new project takes some time to setup with Maven or Gradle...

That's not necessarily true, you can obtain many JDK distributions that still include JavaFX.

For example, here's the Azul distributions with JavaFX: [https://www.azul.com/downloads/zulu- community/?architecture=...](https://www.azul.com/downloads/zulu- community/?architecture=x86-64-bit&package=jdk-fx)

BellSoft also has a LibericaFX distribution: [https://bell- sw.com/pages/supported-configurations/](https://bell-sw.com/pages/supported- configurations/)

If you want to easily install and switch between these and other standard JDKs easily from the command line, check out SDKMAN! ([https://sdkman.io/](https://sdkman.io/)). It supports Azul's and BellSoft's distributions with JavaFX, as well as other distributions from GraalVM, java.net, Amazon and AdoptOpenJDK.

</comment></comment><comment><USER4> Is modern Griffon usable with Clojure? There's ancient talk of it being supported via a plugin, but that seems to be before a big re-write and I can't find mentions of Clojure in the documentation since.

<comment><USER5> To my knowledge there have been no official efforts to support Clojure so far. Griffon 2.x requires the use of specific class types (Controller, Model, View, etc) plus the use of annotation processors make life easier (although not strictly required). These could make your Clojure code look less idiomatic and more Java-ish.

However there was an experimental branch of 2.x with Frege support, which means Clojure is certainly doable.

</comment></comment><comment><USER6> Latest release from May 2018. All builds in Git repo are failing. The project seems abandoned.

<comment><USER5> Latest release is 2.15.1 (stable). Current development (3.x) is still in flux with big internal changes hence the breakages. I decided to post the changes to let people know what's coming even if that meant breaking builds from time to time.</comment></comment>


Ask HN: I can't talk to group of people anything official/serious matter - <AUTHOR> I'm a manager, and I'm struggling with this problem. I feel scared to talk anything official/seriously to a group of people. But I can add contribute to already ongoing conversation initiated by someone. I feel comfortable with that.(But only until the entire group starts focussing on me)
I feel very difficult to start a conversation when everybody is expecting me to start. My voice will tremble, and I try to finish conversation quickly without saying much
(But, trust me, I want to talk lot of ideas to my team)
And I want to overcome this. Please help. I pledge every day to overcome this, but I can't. (I somehow escape such meetings). I'm struggling for many years. <comment><USER2> Several possibilities, not necessarily exclusive from each other.

A) Do you feel you can, and you do, in face to face, or smaller groups?

B) Do you feel empowered by your own managers to talk openly with your team? Do you ask advice/talk to them about that?

C) Do you also struggle the same way outside of work?

You may find some advice here, but I believe you could see 3/4 professional psychotherapists (? that's the role/specialty as we name it in France), and pick one that you feel best with, and work with him/her.

(no judgement/shame in that - I've lost several years convinced that I would not see a psy before I did, out of necessity)

D) Do you think/feel you could/would benefit from learning/practicing theater/acting or public speaking training? There's a whole spectrum of things to know/practice/be aware of that can help boost one's confidence when speaking/giving one's point of view here.

Edit: added D.

<comment><AUTHOR> A) Smaller groups are fine. Especially when we discuss something as a group. But still, when I start leading the convo with a serious topic, my voice will shake.

B) Sorry, didn't get that.

C) Yes

D) Maybe I should try that</comment></comment>


Show HN: Salary.Center – Find Out Exact Base Salary in Company for H1B Visas - <AUTHOR> https://salary.center <comment><AUTHOR> The data is official. it is from Office of Foreign Labor Certification. one can use it to search for specific salary in a company for reference.</comment>


Show HN: Create landing pages by copy-paste - <AUTHOR> https://frontendor.com/ <comment><USER2> I'm not really a big fan of Bootstrap.

I'm never going to use this for my commercial projects.

I'm going to use these for friends and family, who keeps asking me to "please, build me a website."

I like to help a team of developers doing something different and earning money. Best of Luck. Bought one license.

<comment><USER3> I'm kind of just getting started on web development. What would you recommend instead of Bootstrap?

<comment><USER2> Agree with Hamza, we moved to TailwindCSS since 2019 and never looked back.

<comment><AUTHOR> TailwindCSS is cool but it has its downsides, Bootstrap 5 doesn't need jQuery anymore and that will change the game in the future I guess.

Anyway, use what you feel comfortable with. Personally, I work with both TailwindCSS and Bootstrap at the same time.

</comment></comment></comment></comment><comment><USER4> Neat. But the "x spots left at this price" fake urgency nonsense is off putting.

<comment><AUTHOR> No, it's not fake. we offer unlimited license for personal & commercial use for both individuals and teams at $49 instead of $100 for the first 200 people only. Now, we have 173 spots left. check our Gumroad page ==> [http://gum.co/f50/f50](http://gum.co/f50/f50)

<comment><USER4> Right, so an artificial fake limit on pricing due to "scarcity". Just set a price, and be done with it. Introducing a sense of urgency for a set of landing pages is nonsense, this isn't tickets to Roger Waters.

<comment><AUTHOR> We can't offer our package at this price and license for a huge number of people. We have some goals to reach 200 sales as soon as possible, so we had to offer this in an urgent manner.

<comment><USER5> I think OP means it's a fake or arbitrary sense of scarcity. If you have a goal in mind like a kickstarter campaign then it might be better to say it. For example. Pricing 49 for the first 200 people because I can quit my day job and go full time on this XYZ project. The audience has a purpose other than their own fear of missing out. Maybe think of the user here...

I'm afraid of XYZ so I'll buy now

.vs

I'd really love to support this guy so I'll buy now

Now long term which customer mindset is really going to make you successful?

Hope it helps! Nice product

<comment><AUTHOR> Thank you, this is really a good idea that didn't come to my mind. I've just started my journey as a maker and I will make sure to show my more details next time. Now I can't do updates to not break anything.

<comment><USER6> Find someone who can help you with devops so that you're not afraid to make updates!

I would take the parent post's suggestion about pricing. Other than that, this project looks awesome. Keep going!

<comment><USER7> Thank you very much We are learning more from you guys. Thank you for all such great feedback. We will always try to provide the best and do what is always necessary.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> This site loaded faster than most I've visited in recent memory. How did you accomplish that? I'm impressed!

(Also this is great, I may end up buying a license!)

<comment><USER8> 1\. We don't use unnecessary libraries. 2. We use lazy loading for images.

</comment></comment><comment><USER9> [https://frontendor.com/preview/](https://frontendor.com/preview/) = 184 spots left

[https://frontendor.com/](https://frontendor.com/) = 156 spots left

[https://gumroad.com/l/f50/f50](https://gumroad.com/l/f50/f50) = 146 spots left

Huh?

<comment><USER8> I am updating this manually. I forgot to update the second page.

</comment></comment><comment><USER10> Great project.

Here are a few things that came to my mind after visiting your site.

1) On an iPhone 6, the preview of one of the templates in the "GET STARTED FASTER BY GETTING ALL OF OUR READY-TO-USE TEMPLATES" section doesn't work (I only checked one template). You can't scroll on the page that opens. And the "responsive" device buttons don't make sense when viewing the page on mobile, I think.

2) I was hoping you're using Bootstrap (and not some entirely custom css) but it wasn't clear on first sight if that's the case. Yes, you're stating it above your headline but I would make that more prominent as it's easily overseen (at least by me).

3) I have no idea who you guys are, so the "built by..." doesn't make that much sense to me. I saw that also on the Tailwind UI site but at least over there I know who Adam Wathan is...

<comment><AUTHOR> Awesome notes. Yes we are using Bootstrap but without SCSS for the sake of simplicity and avoiding any extra configurations that will make reusability even harder, but you can replace the CSS variables with SCSS variables in 5 min and it works. Thank you so much for your feedback!

</comment></comment><comment><USER11> Nitpick: the dollar symbol comes BEFORE the number. $49 and not 49$

Are there currencies that write it at the end instead?

<comment><USER12> Although in juxtaposition from the English pronunciation, it has an advantage:

"If it was written as 1,200.00$ it would be easier to forge it to become, for example, 91,200.00$ by appending a single digit in front."

<comment><USER13> It is the same if it goes before.

$100 can become $1000 or whatever. It is in fact this the reason checks have the quantity written in letters too, and also a dash that occupies the rest of the space.

<comment><USER14> It's not the same if you complete the amount with cents. 100.00$ can become 9100.00$ much easier than $100.00.

I explicitly and carefully write out my tip and total with a dollar sign and cents and sometimes circle the total in an attempt to prevent the temptation for anyone to alter the amount (I've heard this happening to a could of friends back in college at restaurants and bars).

</comment></comment></comment></comment><comment><USER15> I would love if there is something like this for simple e-commerce sites.

I help lot of small businesses with their basic store front with stripe/Braintree connected and some dashboard type apps.

If there's basic UI ready made components like search page, search results, product description, checkout, that'll make my life easy and worth spending for. I don't like bootstrap themes as there's lot of editing and it's not easy to just take components into existing projects.

Well done guys!

<comment><USER8> We are planning to make something similar to e-commerce, blogs, communities, web apps, etc. Thank you!

<comment><USER15> Eagerly waiting on those components. Please make it happen and I'd love to help.

<comment><USER8> Subscribe to our newsletter, we send only new blocks and templates, no spam. Thank you so much for your support!

</comment></comment></comment></comment><comment><USER16> This is great, I was actually considering building out something similar but I'll rely on y'all for now.

The terrible thing about existing solutions, is that all the themes/templates out there are hard to break into pieces without moving a bunch of CSS/JS around and they often lacking in the performance dept bc of all the bloated packages that come with them.

Best of luck, hoping to see many more blocks!

<comment><AUTHOR> Thank you wallawe. You will see more updates coming the next few days.

<comment><AUTHOR> these days we publish a new update, so it will be possible to copy the HTML & CSS directly from your browser. Also, we've built a drag & drop tool that will come up with this package the next month maybe (this tool allows you to drag & drop these blocks then you export everything).

</comment></comment></comment><comment><USER17> Looks great. What differentiates frontendor from competitors with similar features? Someone recommended RenderForest to me because of the ability to drag and drop modules to build a website. [https://www.renderforest.com/website- maker](https://www.renderforest.com/website-maker)

<comment><AUTHOR> 1\. Our blocks are totally separated, you even integrate them to any existing code base without conflicts. 2\. We use CSS only with CSS variables for customization (No SASS, so you have zero complexity). 3\. Unlike the most templates I see out there, we have amazing design and user experience on mobile. 4\. Elegant and modern design that works with anyone. 5\. Huge library of 50+ HTML blocks & 4 ready-to-use templates (6 templates are coming these days). 6\. We're planning to add new blocks regularly over time and all new blocks added will be totally free for existing customers. 7\. Unlimited personal & commercial use for a one time payment 8\. We spent 6 months doing research on marketing & sales to build this (design based on proven marketing & sales principles).

If you are not a developer, you can't use our blocks because it requires some HTML & CSS skills.

</comment></comment><comment><USER9> The one time fee makes me a little doubtful if this project will really continue. Especially because it seems to me you are selling less quickly than you hoped for (only 25% of the 'early bird' packages are sold after being 17 hours on an important channel for such product).

Maybe you should explicitly commit to X blocks and X templates within X time? X year(s) of support for Bootstrap 4.x?

I like the idea but am not sold yet for those reasons.

Another thing: there is nothing about custom theming. Do you use css vars, so I can customize a color in one place? Some source code example (downloadable?) would be helpful. Maybe one template with its different blocks to give out for free as an example for the rest.

<comment><AUTHOR> Yeah, we didn't reach our sales goal yet, but this doesn't mean we are going to stop here. Also, consider that we are beginners as makers and we don't have an audience to support us.

"A journey of a thousand miles begins with a single step".

Thank you so much

</comment></comment><comment><USER18> Like the website loading speed

</comment><comment><USER19> Neat. Was just looking for straight up HTML and CSS and BS4 templates. Could you put up one sample to check it out? Thanks!

<comment><USER7> Sure. Please visit the Gumroad page [http://gum.co/f50/f50](http://gum.co/f50/f50)

</comment></comment><comment><USER20> Very cool. Any chance you guys will do what Creative Tim does and let us have one shot free?

<comment><AUTHOR> Yeah sure, subscribe to our newsletter. Last month, we've sent free copies of this to our subscribers. Thank you!

<comment><USER20> Brilliant, thanks.

</comment></comment></comment><comment><USER21> Seriously, I love the idea. When i am rested and up again i will buy this.

<comment><AUTHOR> Awesome Daniel, we have more updates coming the next days.

</comment></comment><comment><USER22> this content seems to be very centric around internet business. do you provide or will you add new content for other types of businesses like restaurant, bars or laundromat, etc.

<comment><USER7> This is UX/UI Designer of Frontendor. Thank you for your comment.

This is just the beginning and of course we are considering expanding to include more businesses soon.

</comment></comment><comment><USER23> Love this. Well done.

<comment><AUTHOR> Glad you like it <3

<comment><USER23> People underestimate how valuable copy/paste is...

</comment></comment></comment><comment><USER24> Will you add a lot of blocks for the coming period?

<comment><USER7> We're planning to add new blocks regularly over time.

</comment></comment><comment><USER25> The templates look awesome. Please add more.

<comment><AUTHOR> 6 more templates will be included with this package before the end of this month.

</comment></comment><comment><USER26> These blocks require JS or extra plugins?

<comment><USER7> Hello,

Thank you for your comment. For javascript, we are using vanilla javascript (no jquery, no libraries or plugins).

</comment></comment><comment><USER27> I just dislike this style.

<comment><USER7> Hello,

Thanks for your comment. Can you give us more details about what you dislike on Frontendor? Or are there any suggestions that you think might help us?

Thank You.

<comment><USER27> Well, it is not really specific to Frontendor, but to the style used there in general. Too much wasted space, and not very helpful, either.

</comment></comment></comment><comment><USER7> We are super stoked to see how this blew up these last hours .We can't thank you enough. You really changed our lives.

We're planning to add new blocks regularly over time and all new blocks added will be totally FREE for all existing customers.

FRONTENDOR TEAM

</comment><comment><USER7> Hello Everyone,

Once again, thank you very much for all this support. We're planning to add new blocks and all new blocks added will be totally free for existing customers.

We want to ask you what type of HTML Blocks (Business Ideas) you want to see in the next update.

Thank You.</comment>


Microsoft Retiring Master Certifications And Training - <AUTHOR> http://blogs.technet.com/b/neiljohn/archive/2013/08/31/retiring-the-microsoft-master-certifications-and-training.aspx <comment><USER3> I'm a Microsoft Certified Master myself (of SQL Server) so I'll explain a little about what's got everybody up in arms.

When you do enterprise admin work, you often can't share that work publicly. It's not like someone can look at my DBA.StackExchange profile and see the deployments I've done for StackExchange, AllRecipes, Discovery, etc. The MCM was Microsoft's highest technical certification that gauged your sysadmin skills, so that work you've done for high end enterprise systems pays off here. When other high end companies came to call, I could say, "I'm an MCM. There's only a couple hundred of us worldwide, and most of them work for Microsoft as consultants - I'm one of the few independents." Combine that with references, and it's just easier to get doors opened.

Of course, it only makes sense if the certification is actually hard - <USER2> hoowee, was it hard. Originally, it involved spending 6 weeks onsite at Microsoft undergoing a series of tests, culminating in a monster 6-hour hands- on lab test. It was the toughest 6 hours of my life, and I've gone through some pretty tough outages. There were no braindumps that could get you past the MCM (unlike the near-worthless MCITP exams.)

Unfortunately, the MCM was too hard to achieve for most folks, and they couldn't get the market adoption they wanted. It's really expensive to write and administer these kinds of high-end tests, and Microsoft was faced with updating the tests faster and faster due to the faster release cycles coming out on the software side. Worse, they wanted the Master certification to cover not just on-premise software, but cloud services as well, so you had to test Master-level skills across both - but the cloud services changed constantly. (Heck, the MCITP-level tests for Windows Azure SQL Database still has the wrong marketing brand name on it even today.)

Just ended up being too expensive for them to manage in the face of limited adoption.

The current MCMs are bummed because it cost us a ton of money and time to get certified, and we never saw significant benefits from the program. The best resource was the mailing list. (I'm not bummed because the cert has paid off the initial investment for me, even though I put out something like $25k total out of pocket.)

People who are currently working on their MCMs are bummed out because they've invested a lot of money and time (in some cases, international flights & hotels) and they won't finish in time.

<comment><USER4> Solution architect here who spends a lot of time with Microsoft's stack. I've got absolutely no certifications of any kind and refuse to take part in the certification circus. It serves only to generate an ecosystem rather than to solve problems and costs companies a lot of money.

We've thrown our partnership agreement in as it is not valuable for us and the certification management is a pain. We can't get staff with certifications and people don't want them any more anyway and we can't force people to take them.

At the end of the day, it's a dying concept. You can't get bummed out about something which was circling the drain years ago.

Regarding fit for purpose staff, we've had people with wonderful CV's jammed full of experience and certifications galore but when it comes down to it, a blind monkey would be a better asset when you have you have to diverge slightly from the preprogrammed certification skills.

<comment><USER3> I somehow doubt you would have preferred a blind monkey over an MCM. Your comments are totally fair for the rest of the certifications, though, and that's why people are upset. The rest of the certs are often held by blind monkeys.

<comment><USER4> Agree but there are no MCM's in the UK.

<comment><USER3> Sure there is - Simon Sabin, Christian Bolton, and John Sansom come to mind just off the top of my head.

<comment><USER4> And precisely how do you fill our 105 man team with such people?

(we're not a startup)

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> _The IT industry is changing rapidly and we will continue to evaluate the certification and training needs of the industry to determine if there 's a different certification needed for the pinnacle of our program._

Some of the thoughts/comments on Twitter towards this decision by Microsoft is based on the move towards the cloud. What are your thoughts, HN?

On another note: I respect anyone who's gone through the rigorous MCM process, but my next thoughts have to do more with certification in general.

Let's take software development for example. Microsoft has developer based certifications. Is the certification more for HR who doesn't understand how to evaluate someone's github account?

It's frustrating that corporations continually reinforce this notion that a piece of paper is more important than work product....which in turn creates more hamsters running inside the wheel instead of finding ways to break out of the cage.

That's why I'm thankful every day for the amazing HN community.

<comment><USER5> As someone who acquired quite a number of Microsoft certifications over the years (MCSE, MCSD, MCDBA, among others, albeit a decade ago), I'll be a voice that speaks in favor of them, and in favor of mechanisms like them.

Not as a hiring tool; Not to evaluate talent; Not to prove knowledge of a domain to anyone else: For those goals they are _absolutely miserable_ , and are why they earned such a poor reputation.

Instead as a personal target for learning things that you don't necessarily have to learn otherwise, and the truth is that in this industry you can be quite successful even if you're egregiously misusing and misunderstanding the platform that you're building on. If I'm going to be doing a project in Visual Studio, or deploying a database on SQL Server, or using the security services of Windows, it is in my interest to understand the platforms that I'm using, and those certifications provided a personal goal that I could shoot for to achieve those rudiments.

<comment><USER6> Yes, I mean at worst you could say it's better than nothing but certifications do certainly light a fire under some people who otherwise wouldn't bother to learn. And yes certifications can be abused by some, some people have photographic memories (a surprisingly large number!).

I see some CompTIA certifications have implemented performance based testing which is more knowing than memorization, which I like. Passing scores were creeping up more every year maybe that was a response to people passing due to memorization or sheer luck?

<comment><USER5> _who otherwise wouldn 't bother to learn_

This is worded, I think, a little bit pejoratively -- no one learns the entirety of the systems that they deal with (whether Windows, Linux, Solaris, mySQL, nodejs, HTML5, angularjs, etc. The universe of stuff to know is endless), but instead even the most diligent practitioners get a working knowledge and often don't realize the things they don't know. As a quick example, I've done projects with seeming SQL Server experts, for instance, who had no idea what ownership chaining is, and you can find exactly these sorts of fundamental knowledge gaps in virtually any technology.

These certifications make you step back and look at a breadth of information that you don't normally _have_ to, but upon gaining that knowledge you now know the tools available to you.

 _And yes certifications can be abused by some, some people have photographic memories_

The danger of taking certificates too seriously is that it creates a strong economic motivation for people to simply do what is necessary to get the certificate, with little interest in the practical ramifications or value of the things that they learned. This was absolutely endemic with MS certs with countless boot camps, etc, where you just pound in questions and answers for a week and then do the test. Boom, certificate achieved, now forget all of that abstract stuff you just learned.

I am absolutely and completely against such boot camps for that reason: If you aren't practically incorporating the things you learned day to day, it simply will not stick.

I would never hire someone or assume competency because they had these certificates. However if I interviewed someone who seemed competent, with good references and a solid track record, it would be a bonus if they had it, simply because it is decorations on success, and does not define success.

<comment><USER7> I seriously thought certificates like this always meant the candidate was weak. I never realized that these courses could play a positive role in the developer's development. We have to be careful about what we include on our resumes given the bias of people like me.

</comment></comment></comment></comment></comment><comment><USER8> I know only one thing about what is actually involved in getting these various certificates, and it's that there are a lot of big, thick books with vague titles.

What I do know is that the whole concept of having qualifications which are closely linked to the proprietary technologies of a specific business has always urked me, so I feel like this is probably a positive step for the industry as a whole.

<comment><USER9> If that misconception is the "only one thing" you know about getting a certification, then why do you feel it appropriate to comment on the process?

You don't need to buy the books in order to pass the certification exams. Experience is often far more useful. A list of topics covered by the exam is often provided, too. So somebody with experience can often easily supplement their existing knowledge by reading some online articles or documentation, without ever looking at one of the official books.

And one of the core aspects of certifications is that they usually very specifically target a given product or topic. This is one of the things that differentiates them from college degrees and other ways of suggesting qualification. A certification can help an employer gauge a candidate's abilities in a far more specific manner than a Comp. Sci. degree can, for example.

Certification may not always have the value or reliability that it's claimed to have, but let's not misrepresent it or its process out of ignorance, either.

<comment><USER8> Fair points, perhaps I was a little rash. The reason I feel urked by the idea is that it seems to me that it would lead to a greater lock-in of technologies and products that a business can use. More investment would need to be made in order to support a technology or product and thus would make it harder to switch to something else if requirements changed. I can see the use of having certifications for hiring as well as credibility to clients, but I feel that there's probably a fair amount of danger in this too.

As for the books, that was an off-hand comment, half to illustrate that I am, in fact, not experienced with the world of Microsoft Certifications, and so whatever I say should be taken as comment from a layman :)

</comment></comment></comment><comment><USER10> Note that they are only retiring two types of certifications. There's still a plethora of MCTS certifications. I got one when I was fresh out of college and I have never made use of it. I don't even know what companies look out for these things.

<comment><USER11> For many of these certifications, they not as useful to the employee as they are useful for the employer.

The more certifications the employer has the better it is for them in various ways; sales opportunities, recognition, bids, perks, etc...

</comment></comment><comment><USER12> I have never met a good, _experienced_ MS developer or admin who lacked a certification and it negatively affected their ability or image.

I have met plenty people who held certifications whom I would not trust on any of my production systems, and where it was apparent their time would have been better spent gaining experience, not test scores.

These "Master" certs were time consuming and expensive, no? As they are backed by a sales based entity (as with most IT certifications) if the revenue did not support the program, it gets canned.

<comment><USER13> I've worked with really good, skilled and really not so skilled people that held Microsoft certs. The folks that were not worth a shit on the job all seemed to list MS certs in their email sigs.

Right or wrong, I take those mc* email sigs as a negative signal every time I see them.

<comment><USER3> > Right or wrong, I take those mc* email sigs as a negative signal every time > I see them.

Me too, but that's why folks are up in arms about these cents being discontinued. They were the first credible cents Microsoft ever had, and now MS is saying they're discontinued due to low adoption. MS wanted to see more MCSEs upgrade to an MCM. Well, duh, they can't, because the vast majority of MCSEs don't actually have skills.

</comment></comment></comment><comment><USER14> > It's frustrating that corporations continually reinforce this notion that a > piece of paper is more important than work product....which in turn creates > more hamsters running inside the wheel instead of finding ways to break out > of the cage.

This so much. I have found the door of the cage years ago yet I jumped in the wheel after a while (started CS) because that is the only thing which will give you a reward at the end of day. Employers should really, really reconsider the value of what you have actually done instead of basing your qualifications on an artificially valued piece of paper.

</comment><comment><USER15> If MCSE stands for Must Consult Someone Else, what did MCM/MCSM stand for? I kid, I kid.

<comment><USER16> Going off of a few other comments in this thread I would hope it stood for Must Consult w/ Me or Microsoft Consults w/ Me. I've heard that Microsoft's tests are some of the hardest in the biz compared to other associated certs at the same level.</comment></comment>


Microsoft launches no holds barred anti-Google campaign [video] - <AUTHOR> http://www.bgr.com/2012/02/21/microsoft-launches-no-holds-barred-anti-google-campaign-video/

<comment><USER2> When I see a major corporation launch an ad as childish and desperate looking at this, I only think one thing: they're scared, desperate, and running around trying to figure out why things aren't looking so good on the road ahead.

I truly could only see Microsoft launching something like this. No other company would be so foolish.

</comment><comment><USER3> Steve Ballmer's personality in ad form: crude, classless and just not funny.

<comment><USER4> You know, I actually had a good chuckle at it. Sure, it's of the same quality as the usual Microsoft fare, but it was light-hearted and fun. It won't have much of an impact, but it's fun to watch.

Besides, the continued success of MS's productivity suite depends far more on Sales and Enterprise Relations than on corny attempts at viral videos. This is just blowing a raspberry at Google.

</comment></comment><comment><USER5> it says at the end that Google killed off gears and wave, buried buzz, and that if Google Apps meets its grave, your busuiness is hosed.

After starting by saying that the guy has 12 years in ad experience (Google's revenue stream).

I believe that it does a fair job representing continuous integration on Google's part, their philosophy about continuously and silently making it better.

I think in its ugly microsoft-type tasteless way it does OK at communicating its message to decision-makers at big companies.

I would also add that it's not a straw man. If someone let me bet ten dollars on Google killing Google apps in the next 5 years (or maiming it beyond recognition/usability, and not allowing me to access a version I can/want to use), and I get a thousand dollars if it happens, then I'd probably take that bet. That ten dollars isn't money down the drain, it probably has a decent chance of paying off and is worth my making that bet.

Now put yourself in a fortune 500's shoes and their level of aversion to change risk...</comment>


Uber Hiked Taxi Fares During Terrorist Attack in London - <AUTHOR> https://sputniknews.com/europe/201706041054303636-london-attack-uber/ <comment><USER2> Can someone who thinks Uber's pricing is unethical or bad please explain their reasoning?

Why would the scenario without surge pricing be preferable to you?

The result without surge pricing would be a much longer queue. Queues typically lead to a poor allocation of resources. Surge pricing causes people with other transportation options, or less need, to seek alternatives. People with acute transportation needs are then more likely to get rides.

<comment><USER3> I don't think it's unethical, but that's because I understand surge pricing is a tactic to increase the number of drivers on the road. Most people don't get that. And as much as we want to blame people for not understanding how things work, the onus is on Uber to communicate these things clearly.

I do think it's not just bad PR, but it wastes an opportunity for great PR. The other black car service capitalized on the opportunity to help. Had Uber recognized this and put surge pricing into effect for drivers but subsidized riders they would have gained a lot of good will. But they didn't and they have to continue to fight the negativity.

<comment><USER4> Uber did stabilize prices and refunded those that were charged surge prices. These outraged customers are just those that were charged surge automatically before surge was turned off and the money was refunded. This happens every time with terrorist attacks. This is just another example of a journalist bottom feeding for ad impressions.

</comment></comment></comment><comment><USER5> It's unfortunate Uber doesn't have someone who monitors all sudden rate hikes like these, and maybe has a throttle switch to interject some oversight into an automated system.

<comment><USER4> Serious question: how do you automatically know that increased demand is from a terrorist attack versus some other legitimate source of surging like the emptying of some venue or unexpected precipitation?

The best I can think of is geotagged tweets. This events are also infrequent and different enough that I'm not certain how easy it would be to train a model to detect a terrorist attack. Human monitors would probably have to analyze tweets and determine what's happening and turn surge off after the fact.

Even then the right solution would be to leave surge on so that that part of the city lights up on the driver app and attracts more drivers to that part of the city, and then you refund customers the surge price exactly as uber has done during every single terrorist event that I've observed.

This is just some journalist published yet another unwarranted outrage piece against the company for the clicks. The unethical company here is the daily mail taking advantage of Uber and a terrorist attack to generate ad impressions.

<comment><USER6> Google news search for terrorist attack, maybe combined with Twitter for the geolocation? Or perhaps more realistically alert a human to decide whether to cancel surge pricing?</comment></comment></comment>


Seo-questions.net - A Stack Exchange for Search Engine Optimization - <AUTHOR> http://seo-questions.net/

<comment><AUTHOR> Questions about Search Engine Optimization came up a couple of time of this forum. I hope to create a friendly community to demistify SEO.</comment>


Software is eating the company - <AUTHOR> http://www.inc.com/drew-hendricks/now-that-software-s-eaten-the-world-it-s-started-to-eat-the-company.html###

<comment><USER2> This is going to get pedantic, but I'm so tired of seeing the verb "eating" applied to software.

It makes no sense. When something is eaten, it's digested into something unrecognizable and then discarded. That's a terrible analogy for what software is doing to the world and, in this case, to companies.

For unlucky people/companies/industries, software is simply replacing it. You could perhaps more accurately say that software is outmoding those things. "Eating their lunch" maybe, but not eating them.

For lucky people/companies/industries, software is a lubricating or accelerating factor. It's not eating them, either.</comment>


Why 2019 Is a Bad Year to Start Learning Linux - <AUTHOR> https://www.stackery.io/blog/learning-linux/ <comment><USER2> Clickbait. No mention as to why specifically 2019, just some opinions on how "full-stack engineers" supposedly do not really need to know about Linux. Puts at the same level the knowledge about the details of the memory management subsystem and the handling of "log files"; also mentions a mysterious thing called 'the CPU instruction kernel'.

The same dubious opinions could apply to 2018 or 2015.</comment>


uBiome – The Largest Human Microbiome Dataset - <AUTHOR> https://ubiome.com/blog/post/ubiome-largest-human-microbiome-dataset/ <comment><USER2> Title: "8% of uBiome customers are transgender"

From article: >8% come from people who identify with non-binary gender.

Is this title just made up? I don't see any evidence that "non-binary gender" means transgender. By my reading of the term, there are several different buckets of gender identification that could be feeding into that number, not all of them transgender. Furthermore, some transgender people might not describe themselves as identifying with non-binary gender. It's hard to draw a conclusion such as that implied by the title.

</comment><comment><AUTHOR> Interesting stat from a blog post announcing uBiome has the world's largest microbiome dataset: "47% of our samples come from female users, 45% coming from male users, and 8% come from people who identify with non-binary gender."</comment>


<B> is for Block - <AUTHOR> http://bisforblock.com/

<comment><USER2> This seems like something someone should have brought up about 18 or 20 years ago.

</comment><comment><USER3> <http://www.w3.org/TR/html401/index/elements.html></comment>