Why SQLite Does Not Use Git - <AUTHOR> https://sqlite.org/whynotgit.html <comment><USER2> "Nobody really understands git" is the truest part of that. While hyperbolic, it really has a lot of truth.

It's always a bit frustrating when working with a team because everyone understands a different part of git and has slightly different ideas of how things should be done. I still routinely have to explain to others what a rebase is and others have to routinely explain to me what a blob really is.

In a team of the most moderate size, teaching and learning git from each other is a regular task.

People say git is simple underneath, and if you just learn its internal model, you can ignore its complex default UI. I disagree. Even just learning its internal model leads to surprises all the time, like the blobs that I keep forgetting why aren't they just called files.

<comment><USER3> The day I got over what I feel was the end of the steep part of the learning curve, everything made so much sense. Everything became easy to do. I've never been confused or unsure of what was going on in git since.

What git needs is a chair lift up that hill. A way to easily get people there. But I have no idea what that would look like. Lots of people try, few do very well at it.

<comment><USER4> The whole point about abstractions is you shouldn't need to understand the internals to use them. If the best defense of git is "once you understand the inner workings, it's so clear" then it is by definition a poor abstraction.

<comment><USER5> Any interface means you'll build an mental model of the system you're manipulating. How else could you possibly know what you want to do and what commands to issue?

So given a mental model is inevitable, seems reasonable that that model should be the actual model.

<comment><USER6> You don't need to understand how media is encoded to watch a movie or listen to a song. You don't need to understand the on disk format of a Word document to write a letter. When writing a row to an SQL database I don't always understand how that software is going to record that data, but I do know I can use that SQL abstraction to get it back out.

<comment><USER5> The difference is that the video model abstracts over the encoding, the git model does not abstract over the storage model, it exposes it. git commands are operations on a versioned blob store.

<comment><USER7> It's not versioned.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I'm a big fan of Fossil myself. But the SQlite people have something that I don't really have within the teams I operate : the authority to dare and speak out against Git and not be laughed away like a hipster that is just trying to be different.

<comment><USER9> Hipster source code management? See this Rust project:

[https://pijul.org](https://pijul.org)

[https://pijul.org/manual/why_pijul.html](https://pijul.org/manual/why_pijul.html)

A bit like DARCS (also very hipster, in Haskell and has some math behind it), but then fast.

[https://pijul.org/model/#efficient- algorithms](https://pijul.org/model/#efficient-algorithms)

[https://pijul.org/faq/](https://pijul.org/faq/)

Oh and it uses a cool hi-perf storage lib (also in Rust, by the same devs):

[https://nest.pijul.com/pijul_org/sanakirja](https://nest.pijul.com/pijul_org/sanakirja)

<comment><USER10>
        Pijul lets you describe your edits after you've made them, instead of beforehand.

Pardon my French, but about fuckin time.

On a big product, forensics matter. Not day to day, but often enough and if your metadata is rotten then you're left with the oral history of the project as your only guide. And even that may not exist, depending on project structure.

<comment><USER11> Git has something similar called git-notes, but at the time I tried using it, it was really early-days. No idea how support is working for that now. You could also make an annotated tag, which has it's own "commit message", but it will show up with all other tags.

[1] [https://git-scm.com/docs/git-notes](https://git-scm.com/docs/git-notes)

<comment><USER10> Git notes is interesting but it's a manual process.

When selecting technology I look for "a rising tide lifts all boats" situations and opt-in tools have limitations in that regard.

There's a big gap between 'can do' and 'will do' and I feel like we downplay that frequently in our industry, and to our own peril.

</comment></comment></comment></comment></comment><comment><USER12> I haven't used Fossil, but just a comment on some of that page, in the order they're presented:

1\. It's unclear to me what he means. Yes git doesn't store anything like a doubly linked list of commits, and thus finding the "next" commit is more expensive, but you can do this with 'git log --reverse <commit>..', and it's really snappy on sqlite.git.

It's much slower on larger repositories, but git could relatively easily grow the ability to maintain such a reverse index on the side to speed this up.

2\. Yeah a lot of the index etc. is complex, but I wonder how something like "git add -p" works in Fossil. I assume not at all. Is there a way to incrementally "stage" merge conflicts? Much of that complexity comes with significant advantages.

3\. This is complaining about two unrelated things. One is that GitHub by default isn't showing something like 'git log --graph' output, the other is that he's assuming that git treats the "master" branch magically.

Yeah GitHub and other viewers could grow some ability to special-case the main branch and say "..and this was merged into 'master'" at the top of that page, but in any case all the same info exists in git as well, so it's just a complaint about a specific web UI.

<comment><USER13> As branch names are not recorded in commits, it is pretty much impossible to say what commit was next in a branch.

<comment><USER14> That's because commits are not owned by branches. The same commit can be present in two or more separate branches with _different_ successor commits in each. And this is a feature, not a bug! It's what allows you to ask the question "Where did these two branches fork?".

Now, I don't know how Fossil answers that question. Maybe it's got some clever trick (like a separate "universal ID" vs. "per-branch ID" for each commit, maybe). Maybe SQLite doesn't need that and doesn't care. But it's not like this is a simple feature request. Git was designed the way it was for a reason, and some of us like it that way.

<comment><USER15> > Git was designed the way it was for a reason, and some of us like it that > way.

For the record, the initial version of git was developed in haste as a replacement for bitkeeper, after Larry McVoy (who shows up here on HN once in a while, and always has great posts) got a little aggressive about the licensing.

BitKeeper was open-sourced a year or two back: [https://github.com/bitkeeper- scm](https://github.com/bitkeeper-scm) . I haven't had a chance to use it extensively yet, but I hear it still has a good selection of features that git either chose not to implement or didn't properly understand.

Don't get me wrong, I think git is pretty great and have been one of its primary advocates over SVN, etc., at most companies I've worked with (I think 2013 was the first time I came on board a team that was already using it), but its history is informative.

EDIT: upon scrolling, I see that Larry has already dropped by. Read his posts! [https://news.ycombinator.com/item?id=16806588](https://news.ycombinator.com/item?id=16806588)

<comment><USER13> For the record, in my opinion git is the worst SCM among the distributed ones and I truly believe it was only hype that carried it. The user interface is genuinely user hostile with so many commands and yet many commands have switches that change the behavior so much it very well might be a different command. And so forth.

<comment><USER16> Git is just a patch database management system that tries too hard to become a version control system. It is proof that this approach is fundamentally misguided.

</comment></comment></comment></comment></comment></comment><comment><USER17> Some time back, some GUI design firm asked on HN for a suggested open source program that needed a GUI developed. They had some developer time free and wanted something that would get them visibility. I suggested they do a GUI for Git. Several such things exists, but they're just buttons hooked up to the command line; they have no useful visual outputs. A good GUI for Git, where you could look at branches and such graphically, would get attention.

Too hard, they said. They wanted something which just needed to be pretty, not something with tough human interface problems.

<comment><USER18> SourceTree is actually a pretty good GUI for git; it shows the commit tree just like you said.

<comment><USER19> SourceTree is one of the few products I use where things have got a lot buggier as time moved on.

<comment><USER20> I work on a huge codebase and SourceTree handles it quite well on macOS. A year ago I'd occasionally see updates that were occasionally broken (solvable with a downgrade) but it's been pretty solid lately.

<comment><USER19> I find its OK on macOS but on Windows the latest thing is the delay in displaying modified files. Newly modified files sometimes take minutes to turn up.

<comment> mark-r Minutes? Today I hit F5 to refresh the window, and it still missed a checkin from 10 minutes earlier.

If you're talking about locally modified files, I use the integration with Visual Studio to manage those and it is doing an OK job. The only gripe I have with it is that you can't change an already staged file or those changes won't get checked in. I don't remember it working like that a year ago so something must have changed.

</comment></comment></comment></comment></comment></comment><comment><USER21> It's funny that they don't list the real reason, which is that Fossil is built on top of SQLite and they want to dogfood it.

<comment><USER22> And the real reason to use git is that everybody else uses git.

<comment><USER23> Everybody uses git because it's the most sane and powerful source control tool there is.

<comment><USER24> I've built two source management systems (NSElite, internal to Sun, and bitkeeper, now open source at bitkeeper.org).

Calling Git sane just makes it clear that you haven't used a sane source management system.

Git has no file object, it versions the repo, not files. There is one graph for all files, the repo graph. So the common ancester for a 3 way diff is the _repo_ GCA, which could very well be miles away from the file GCA if you have a graph per file (like BitKeeper does).

No file object means no create event recorded, no rename event recorded, no delete event recorded. If you ask for the diffs on "src/foo.c" all Git can do is look at each commit and see if "src/foo.c" was modified in that commit. That's insanely slow in a big repo. And it completely ignores the fact that src/foo.c got moved to src/libc/foo.c years ago and there is a different src/foo.c that is completely unrelated. There is an option to try and intuit the renames when you are spitting out diffs but noone uses that because it's even more insanely slow.

Git is basically a tarball server. Calling that a source management system is an enormous stretch. Calling it a sane and powerful source control tool is just not supported by the facts, calling "the most ..." is laughable.

Yeah, I get it, Git won. You all lost out on "the most sane and powerful" as a result. Which sort of doesn't matter since everyone thinks GitHub is source management.

<comment><USER23> >and bitkeeper, now open source at bitkeeper.org

And no one cares about it. For a reason.

>Git has no file object, it versions the repo, not files.

Which _is_ the correct thing to do.

>if you have a graph per file (like BitKeeper does).

Which is _insane_ to do because you're basically making things more complex than they need to be, which is why merging in git is not only SUBSTANTIALLY faster than nearly every SCM out there, it also works a good deal of the time without issue.

>No file object means no create event record, no rename event recorded, no delete event recorded.

Most people do not need these. If you're going to choose to use file GCA's for the reasons listed above then you better have a damn fucking good idea of how much these features are actually used, because the trade offs are ENORMOUS.

> That's insanely slow in a big repo.

And also not really done that often. So you know, good job choosing to optimize for things no one is going to use on an astoundingly consistent basis or even needs to be super duper speedy in the first place.

>You all lost out on "the most sane and powerful" as a result.

Your concerns are misplaced? Misdirected? Git does things a certain way and people use it because people were tired of SCM's that decided to fix problems no one really cared about, and then do the things that developers _do_ care about very poorly. You actually demonstrated this pretty thoroughly in your own post while attempting to call ,presumably, bitkeeper "sane."

>Calling it a sane and powerful source control tool is just not supported by the facts

I'm sorry, feel free to tell every other developer in the world, including the ones that are involved in far more collaborative efforts than your work requires, that the tool they're using is just not sane. I guess being one of the most used SCM's in the world, on one of the biggest OS projects in the world aren't really relevant facts into how "sane" an SCM is. I guess that's totally why bitkeeper used to be sold and now is open source.

<comment><USER24> OK, enjoy Git then.

Your claim about merging is false though, demonstrably. Picking a repo gca when you could have used a much closer file gca is better. BK does that and automerges, correctly, more frequently and is way way faster than Git.

I've written two source management systems. I'm confident in my knowledge. Arguing with some random dude who thinks he knows more than me is not really fun. So go enjoy Git. Lots of people are too busy/whatever to know what they are missing, maybe that's you. It's not me, I kinda like my audit trail to be accurate.

Even Linus admitted to me in my kitchen that Git's audit trail is lossy. But go enjoy Git, I'm glad it works for you. Knock yourself out.

<comment><USER25> So why do you think BitKeeper failed and git is current leader in popularity?

<comment><USER26> It was proprietary for ages.

<comment><USER25> That doesn't really explain why perforce, and mercurial seem more popular, nor the lack of current buzz around the project. I could be wrong but I can't say the mind share is very high.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Good list, but I feel like they bury the lede: integrated wiki, issues, and notes. That doesn't scale to every project (linux kernel for example), but for a lot of projects it's really cool.

Other selling points from the Fossil site:

* Integrated Bug Tracking, Wiki, and Technotes

* Built-in Web Interface _and_ Self-Contained (I combined these)

* Simple Networking (no git://, just HTTP and SSH)

* CGI/SCGI Enabled

* Autosync - "Fossil supports "autosync" mode which helps to keep projects moving forward by reducing the amount of needless forking and merging often associated with distributed projects."

* Robust & Reliable - "Fossil stores content using an enduring file format in an SQLite database so that transactions are atomic even if interrupted by a power loss or system crash. Automatic self-checks verify that all aspects of the repository are consistent prior to each commit."

It would be easy to get into comparing git and Fossil feature by feature. That's interesting. But it's more interesting to compare the philosophies between the two tools.

edit: for grammer.

<comment><USER28> And this is why GitHub is so popular. Perhaps the Git project should take a leaf or two from Fossil.

<comment><USER29> I think it's a philosophical difference that the Git maintainers likely have a strong position with. Some people like having one piece of software that does everything in an integrated way, and some people like purpose-built tools that focus on doing one thing well.

Git is a version control system; it's not a complete project management solution. You can build integrated solutions around it, like GitHub, but if GitHub's issue tracking is too primitive for you and you want to use Jira instead, that's super easy.

I actually favor that approach myself. If I wanted to use Fossil but their issue tracker didn't work for me, the best case scenario is that I just integrate Fossil with Jira or whatever and just haul around this vestigial issue tracking system that I don't use. Likewise, if I wanted to use Fossil's issue tracking but not their version control, what then?

<comment><USER30> Git can also be a database if you want. [https://github.com/ioquatix/relaxo](https://github.com/ioquatix/relaxo)

</comment></comment></comment></comment><comment><USER31> Interesting and possibly relevant to note that SQLite is not your typical opensource project:

"Open-Source, not Open-Contribution: SQLite is open-source, meaning that you can make as many copies of it as you want and do whatever you want with those copies, without limitation. But SQLite is not open-contribution. The project does not accept patches. Only 27 individuals have ever contributed any code to SQLite, and of those only 16 still have traces in the latest release. Only 3 developers have contributed non-comment changes within the previous five years and 96.4% of the latest release code was written by just two people. (The statistics in this paragraph were gathered on 2018-02-05.)"

[https://www.sqlite.org/copyright.html](https://www.sqlite.org/copyright.html)

<comment><USER32> Do you know why they have this philosophy? Why would they not accept patches and pride themselves on having few contributors? Seems very odd.

<comment><USER33> If we accept patches, then the person who has submitted the patch owns the copyright on that patch, and that means the software is no longer completely in the public domain. Unless, of course, the patch submitter has filled out a lot of legal paperwork to dedicate their code to the public domain, which rarely happens.

</comment></comment></comment><comment><USER34> The argument that "Git lacks native wiki and bug tracking" is actually a very good thing: each of those 3 things (scm, wiki, bug tracking) are very different, and an scm must not bring a process/management system with it. Obviously, often it's nice to have all the things packaged, and GitLab does it amazingly well (maybe does too much these days though), but at a some level of process and IT management, wiki and issues have their tools already and should not depend on the scm.

<comment><USER35> I specifically want a version control system to be free of "wiki" and "bug tracking".

</comment></comment><comment><USER36> "The mental model for Git is needlessly complex and consequently distracts attention from software under development. A user of Git needs to keep all of the following in mind:

        The working directory
        The "index" or staging area
        The local head
        The local copy of the remote head
        The actual remote head

Git contains commands (or options on commands) for moving and comparing content between all of these locations.

In contrast, Fossil users only need to think about their working directory and the check-in they are working on. That is 60% less distraction."

I don't think about any of this when developing. I check out a branch, work on it, commit to it, and push it back up. If the fix is larger than a few commits i'll make a feature branch. What's so hard about that?

Also, everyone using git isn't a bad thing. It means we finally have at least one standard in development.

<comment><USER37> You get git. Good for you. A lot of smart people get git. A lot of smart people don't. I'm a smart person. I use git every day, 7 days a week. On my side projects, it's fine. Never a problem. At work, the workflow is more complicated, due to many branches, and many submodules. Submodules are a pain in practice. I think the mental model is too complex. This manifests as frequent unintended results, from simple operations that in my mind need not have unintended consequences. I never had any such problem with Perforce, even though I have used git twice as long. Your mileage obviously varies.

<comment><USER23> >A lot of smart people don't.

I'm sorry, I don't buy this at all. Git is one of the most simple source control tools there is. If you can't understand a DAG then there isn't much else you probably can understand in the development world.

>This manifests as frequent unintended results

No it doesn't. Every time I've seen people complain about "unintended results" it's literally been because of the above, and they've been complete morons so I'm never surprised when these people have "trouble" with git. You're building a graph, and you're doing pretty basic manipulation of that graph.

>I never had any such problem with Perforce

Uh what? Permission issues? Terrible branch performance? Merging between branches is basically a gamble -- it's actually insane how much this used to mess up over the most basic of merges. Having to "upgrade" the system? Ever done that. I'm going to guess no.

<comment><USER38> I can run circles around most of my fellow developers working with Git. I know how to recover from almost anything I do with Git. However, I put in a lot of hours to get there. I have nothing but distaste for Git's command line. It's an abomination. The command line flags are inconsistent and require real work to commit the right combinations to memory. Anyone, whose solution to this is "You are an idiot for getting confused by this confusing UI" is just flat out wrong. There are better UI's that are less confusing with the same featureset as Git. Git won not because it was that much better than the others. It won because the Linux kernel uses it.

Right now today, there are developers out there who are putting in the work to learn git. They are smart and dedicated to their craft. They are also losing work because git makes it easy to shoot yourself in the foot and because it doesn't easily surface to you how to recover when you do so. It's not because the developer is an "idiot". It's because git's UI is user hostile and does a poor job of reflecting the core concepts in operation when the user is using it.

To be fair to Git they've put a lot of effort in fixing this. It used to far worse than it is now. But due to backwards compatibility and other concerns there is still a _lot_ confusing and unintelligible options out there and that is even after you get the whole concept of a DAG and the index vs working tree.

<comment><USER23> > Git won not because it was that much better than the others. It won because > the Linux kernel uses it.

This is a pretty silly assertion to make. You're actively ignoring the SCM's that were chosen by far larger org's. Git took the dev world by storm because it was better. Not because an open source OS used it. Other SCM's had _years_ worth of developer training and interaction with their systems and STILL lost. Years worth of sales connections, demos, networking, you name it and STILL lost.

>They are also losing work because git makes it easy to shoot yourself in the foot

Example?

<comment><USER15> >Example?

Most people can get the quickie commands down pretty fast, and as long as there are no complaints or errors, it's all OK. But as soon as you need something that takes several steps, your average git user falls apart. Rebases are the most common example. If you don't block force commits from the get-go on a project used by more than two devs, you'll learn that you need to do that pretty quick.

<comment><USER38> Exactly. Many users get confused and a quick look at the man page shows them a magic --force command that seems to do what they want. Not to mention that we sometimes encourage the use of --force sometimes when we are doing pull requests since we want them to push a squash of all the different commits. It's like a tragedy of the commons playing out in multiple dev teams the world over and it didn't have to be that way. The problem is no one took the time to devote some UX to the git command line until it was too late.

</comment></comment></comment></comment></comment></comment></comment><comment><USER39> First time I've heard of Fossil and started reading up on it: [https://www.fossil-scm.org/xfer/doc/trunk/www/fossil-v- git.w...](https://www.fossil-scm.org/xfer/doc/trunk/www/fossil-v-git.wiki)

In particular, I'm interested in the last section "4.2 Features found in Git but missing from Fossil".

Maybe this is some deficiency of my workflow, but both those things make Fossil sound extremely unappealing to me. You're telling me I have to push all local changes every time I want to push anything? What if I was just debugging or experimenting with one branch, and then I had to switch to a "serious" branch to push some critical changes?

And rebasing is fantastic when you have a feature branch workflow.

<comment><USER40> What is wrong if your debugging of experimental branch is pushed to the repository? Someone can find this code useful for something else later. And after all, all the experiments are part of the project history, that fossil strive to keep unchanged and as it actually happened.

The same is about the rebase - the difference is that while git keeps the history "as the developers want it to be", fossil keeps it "as it actually happened".

<comment><USER41> Fossil is chauvinist if it's asserting that everything I save locally "is part for the project history" and must be pushed. Don't tell me what's important for me to push.

Git preserves history as it happened on the remote, which is what matters for collaboration. Why foul up the canonical history up with what amounts to scratch paper? Typically, people only amend local history if they feel it would easier to follow later. Why take that option out of their hands?

The way I do work and the way I submit it are two separate problems with overlap. I use git for both and it works beautifully. Even for personal non- code projects I never intend to collaborate with others, I still use git because it promotes a workflow I'm comfortable with.

On the team I'm in, the convention is to include code changes in the same commit as any test changes. There are advantages and disadvantages, but it's the convention, and it's best we follow it or else it might lead to CI problems. But, in my personal workflow, I tend to try to change the tests, commit, code changes, commit, and then iterate. With git, this is as simple as doing it however which way I want, and then squashing the commits together before pushing. What do I do with Fossil?

I'm trying to figure out what problem it's trying to solve with this, and it just comes off as hollowly idealistic.

</comment></comment></comment><comment><USER42>
        Git does not track branch history.
        This makes review of historical
        branches tedious.

This isn't true. It's just the Fossil example has a better UI than their github example. Pop open gitk or anything with a nicer UI and you can easily follow branch history.

<comment><USER43> Nope. A branch in git is just a pointer to the tip of the branch:

       $ cat .git/refs/heads/master
       170ec1365f9fc0ca281e72e6789d1df281d168ae

From it, you can infer the commit history which gitk shows, but if you delete the branch (and discard the reflog), it's gone.

In Fossil, each check-in (commit) actually records the name of the branch it belongs to: [http://fossil- scm.org/index.html/doc/trunk/www/fileformat.wi...](http://fossil- scm.org/index.html/doc/trunk/www/fileformat.wiki)

<comment><USER42> I can easily follow the history of long-deleted remote branches that I never had to begin with... you might need to pull it by ID instead of by name to get it locally, but you can still view the name, history, commits, diffs...

<comment><USER43> Again, that's not the same. Each commit in Fossil belongs to some branch, because its name and the fact of adding or removing a name is recorded directly in the commit artifact. In Git, branches are local references to commit (local in a sense that they are different for each repository instance, but can be synchronized). In Fossil, you can see which branch name the commit belongs to and if the parent commit had the same branch name or not; in Git branches are ephemeral entities which don't belong to commits, and once you delete the branch there's no way to know which name of the branch it belonged to.

[http://fossil- scm.org/index.html/doc/trunk/www/branching.wik...](http://fossil- scm.org/index.html/doc/trunk/www/branching.wiki)

In fact, I'd say Subversion, Git, and Fossil call different things "branches".

Note: I'm not saying that one way is superior to another, I'm just saying that Fossil does track branch history, but Git doesn't.

<comment><USER42> i'm just not getting what you mean. if i delete a branch, i CAN still see the branch (and its name) the commits belonged to, even if i never had that branch locally.

<comment><USER43> You can't see its name, try it.

<comment><USER42> i absolutely can, though. i went through this recently, trying to get back to a commit from nearly a year ago in a repo i'd never touched before.

the annoying part of getting it back was that you can't just do "checkout {name}" you have to do it by the SHA ID and then commit again by the original name, but before all that, you can 100% follow any since-deleted branch by its name. there's just a weird disconnect between viewing its history and having it directly in your hands again.

</comment></comment></comment></comment></comment></comment></comment><comment><USER44> Under (1)

> The principle maintainer of SQLite cannot function effectively without being > able to view the successors of a check-in.

I wish it went into more detail about why this is critical to his workflow.

<comment><USER45> I'd be interested as well. Of all the reasons, this (not fit for intended purpose) struck me as the only compelling reason that doesn't come off as an 'and also...' argument (ie: justificatios/rationalisation of a decision, post making one's mind up).

If I were to hazard a guess, this ability to follow descendents helps follow the evolution and intent of current state of code, given some previous state? (how did we get here from there and what else changed on the way).

In git that'll kinda sorta be possible with git bisect.

<comment><USER46> 'Gitk —all' does this. Am I missing something?

</comment></comment></comment><comment><USER47> I really like git these days, and I was initially stubborn, having grown up in the age of first cvs then svn. I design/implement core infrastructure and services for a large emergency services project. By nature the team that design and build it is especially conservative. It's only this past year I've been able to convince management that we should move to git because it offers advantages over the traditional tool (svn).

What does make me chuckle however is seeing git used as a drop in replacement for svn without using any of the advanced branching/merging features it offers. I find it funny to hear a devops youngster eschewing the benefits of git after hearing that <n> hip opensource projects use it, just to find that they use using it with a single tree (or bunch thereof), just continually committing everything to the master branch.

Just like people used to use cvs and svn.

</comment><comment><USER48> I don't know anything about Fossil, but saying that no one understands Git just makes me think they're ignorant to learning Git. I doubt that's the case, but still, why say that?

<comment><USER49> Because most users of git don't really understand it. It's really hard to learn properly and so most users just memorize the commands for their project's workflow and ask the resident git expert to help (or nuke their local copy) when things go wrong.

<comment><USER29> It's not hard to "really understand Git". If anything, it's the opposite problem—Git's implementation is conceptually simple enough that the only good mental model the end user could possibly have is the implementation model. Systems like Subversion or Perforce or Fossil probably have even more complicated implementations than Git, and largely that's to support a dumbed- down mental model that doesn't require learning how the tool actually works. With Git, you learn how it works and you're set, more or less.

<comment><USER50> > It's not hard to "really understand Git".

Are you going to tell me you've never lost work because you didn't know git well enough to avoid putting your branch into a bad state?

<comment><USER29> I've never lost work that I committed, which is the most you can ask of a version control system.

<comment><USER50> You've never botched a merge, try to undo it and accidentally lost work? It's happened to me and/or the people I work with roughly once a quarter since I started using git.

<comment><USER51> You shouldn't be able to lose any committed work in git. If you botch a merge, you can reset to one of the merge parents and try it again. If you botch a "destructive" operation like a reset or a rebase, you can undo it using the reflog, which is essentially a 30-day undo history for every branch in your repository.

</comment></comment></comment></comment></comment></comment></comment><comment><USER52> >>> The principle maintainer of SQLite cannot function effectively without being able to view the successors of a check-in. This one issue is sufficient reason to not use Git, in the view of the designer of SQLite

Ok I'll bite. Why?

I can see it's a nice idea - but at some point you add function X, then ten check ins modify that function. what's the difference between looking back at ten and looking forward at ten?

Perhaps I need an example.

If I remember rightly fossil was written by the Sqllite people? I tried it out for a while back in the day - I think it had this store the tickets in the branch alongside the code - it was an appealing idea, but got complicated quickly.

<comment><USER53> Purely speculative, but I imagine you identify a bug that was introduced in commit X from 2 years ago. You want to answer, "Which supported releases of this product need to be patched?".

<comment><USER54>
      git tag --contains <commit>

or

      git branch --contains <commit>

</comment></comment></comment><comment><USER55> > Git encourages a style in which individual developers work in relative > isolation, maintaining their own branches and occasionally rebasing and > pushing selected changes up to the main repository.

> Fossil, in contrast, strives to keep all changes from all contributors > mirrored in the main repository (in separate branches) at all times.

From [https://www.fossil- scm.org/index.html/doc/trunk/www/fossil-v...](https://www.fossil- scm.org/index.html/doc/trunk/www/fossil-v-git.wiki)

</comment><comment><USER56> Sounds similar to my experiences with Bazaar many years ago. Ended up converting all project over to Git once we realised that nearly all external developers we worked with preferred Git and didn't have a clue about Bzr.

Semi interesting full circle side note: One of those projects was actually a rudimentary version control system for a report writing app, which used SQLite as the VC data store.

<comment><USER50> > Ended up converting all project over to Git once we realised that nearly all > external developers we worked with preferred Git and didn't have a clue > about Bzr.

Why? There was a time not too long ago where this was true about git. Companies switched to git anyway.

<comment><USER57> Git was so astonishingly better than SVN that most developers were instantly hooked.

But when you know git and try bzr, it's mostly the same thing but with different commands. Any gain is small and the pain is instant.

</comment></comment></comment><comment><USER58> Git is absolutely terrible. Let's just get that out of the way.

But it ticks the two boxes

\- powerful enough (to e.g do proper merging, which cvs and svn never could)

\- tooling support, meaning it's supported out of the box in bug trackers, build systems etc.

All others (hg, perforce, svn, cvs, pijul, fossil, ...) fail one or both of the above.

Now, I _hope_ that one day git will be replaced by something nicer. But for the time being it's what we're stuck with.

My pet peeve: sequential revision numbers. Why not have an arbitrary numbering of commits?? Saying "I have bug X in rev 1234 but it's not in 1230" is fantastically powerful compared to "I have the bug in a1b34h but not in 3ae452". These would be a sequence for a particular centralized branch - typically mainserver/master.

Because this is the reality: it's distributed version control but we almost all use centralized version control. This is also why it's so odd that Git LFS took years to make it into git. Why would I want all past revisions of a binary (Yes, binaries must often be in version control, whether anyone thinks it's a bad idea or not)?

<comment><USER59> That's why most people tag their builds with git describe. It can easily tell you the most recent tag in the current branch and how many commits away from it the build is, for instance v1.5-15-a55325.

</comment></comment><comment><USER60> > Git lacks native wiki and bug tracking. If you want these essential > features, you have to install additional software such as GitLab, or else > use a third-party service such as GitHub. And even then, the wiki and bug > reports are centralized, not distributed.

Is a distributed bug reports etc even desirable? How would they work?

</comment><comment><USER19> Anyone moved to BitKeeper now that its open source? [http://www.bitkeeper.org](http://www.bitkeeper.org)

<comment><USER61> Probably not new users, or they shouldn't as the creator of BitKeeper says the project is dead and he is retired.

</comment></comment><comment><USER62> > _In contrast, Fossil users only need to think about their working directory > and the check-in they are working on. That is 60% less distraction. Every > developer has a finite number of brain-cycles. Fossil requires fewer brain- > cycles to operate, thus freeing up intellectual resources to focus on the > software under development._

Not thinking about the actual remote head and/or the local copy of the remote head seems bad? I'm worried that Fossil is just obscure information, rather than presenting it.

Is it possible to `fossil rebase origin/master` without an internet connection?

// edit:

Reading more of the docs, what I quoted at the top is definitely, ah, misleading.

> _When autosync is turned off, the changes you commit are only on your local > repository. To share those changes with other repositories, do: fossil push > URL_

> _When you pull in changes from others, they go into your repository, not > into your checked-out local tree. To get the changes into your local tree, > use update:_

[https://fossil- scm.org/index.html/doc/trunk/www/quickstart.w...](https://fossil- scm.org/index.html/doc/trunk/www/quickstart.wiki)

We have confirmed that Fossil has

      The working directory
      The "index" or staging area
      The local head
      The local copy of the remote head
      The actual remote head

So yeah, point #2 in the OP is lies.

</comment><comment><USER63> > Fossil stores content using an enduring file format in an SQLite database so > that transactions are atomic even if interrupted by a power loss or system > crash.

Looks like the love is mutual

<comment><USER64> Same principal author. Probably a source of bias.

<comment><USER65> This is why I can't take any of this reasoning from SQLite seriously at all. The feeling I gather from this webpage is 'Hey, I made something I think is better than a popular thing, therefore every project I author from now on must use my thing and here are X number of refutable reasons why'

</comment></comment></comment><comment><USER66> Git is needlessly complex. Absolutely. The solution we've stumbled upon is to use a good GUI (GitKraken). Every developer I've introduced it to was at first intensely skeptical "I always use the command line and it's fine", but their mind was blown once they actually started using the GUI. Our whole team got a significant boost in productivity once we enforced the use of GitKraken, and now I fire it up even for the simplest of commands.

<comment><AUTHOR> I just attempted to try GitKraken, and while it looks quite good on paper, I find it perplexing (and a deal breaker) that it asks me to login (with Github or Gitkraken) before using the open source and free desktop client.

</comment></comment><comment><USER67> Fossil vs. Git (2011): [https://news.ycombinator.com/item?id=2524422](https://news.ycombinator.com/item?id=2524422)

</comment><comment><USER68> The list of reasons not to use Git seems as smug as it is uninformed.

> With Git, it is very difficult to find the successors (decendents) of a > check-in.

"git log --children" and "git log --reverse" are very difficult indeed.

> Fossil users only need to think about their working directory and the check- > in they are working on. That is 60% less distraction.

Since Fossil is a distributed version control system, there is also remote state to keep in mind. I don't know Fossil, so I don't know the details, but simply pretending the remote state does not exist seems at least misleading.

> Setting up a website for a project to use Git requires a lot more software, > and a lot more work, than setting up a similar site with an integrated > package like Fossil.

Setting up GitLab with Omnibus takes about five minutes. It's not Git itself, but rather a third-party package, but why should I care? (And in general, I wouldn't set up anything at all – I'd just use GitHub or GitLab or Bitbucket for my open-source software.)

It's fine for different people to prefer different tools. Git can be annoying at times. However, it's a blessing that the open-source community is moving towards a standard everyone can work with, and Git is Good Enough to be that standard. Using an obscure alternative and justifying it with a list of downright wrong claims doesn't seem to create a welcoming atmosphere for new contributors.

(And don't get me wrong – SQLite is a great piece of software, and I'm thankful people put in their time to create it.)

<comment><USER68> I just learned that SQLite doesn't accept any patches, so the argument that Git is the industry standard doesn't matter to them, and they just use what they prefer.

</comment></comment><comment><USER69> I'm sick of being the go to person in my team to fix their git rebase problems.

</comment><comment><USER70> 2, 4, 5, and 6 seem pretty weak. Not a particularly interesting article. Mostly comes down to 'we like X and Y about Fossil, and it works for us, so we use it instead'.

<comment><USER71> 2,3,5: very valid and the reason why we use Mercurial instead. Can't afford to hire a Git guru in every team. Instead we use a tool that's easier for everyone.

<comment><USER36> Once you start adding more than one developer to a Mercurial repo you need to know how Mercurial works, so I don't see how this is much different. In fact adding remotes to Mercurial was a much harder process last time I used it.

<comment><USER71> The point is, Mercurial is much easier learn. We are a team of 20 developers distributed across globe that transitioned from SVN and it was easy for us to pick up Mercurial and start using it within a couple of days.

We tried git too and _lost_ our changes inevitably. Our git knowledge is to be blamed but blame git CLI too! It is not easy to learn at all. After 12 years of git, I see articles with tips and guides on using git. That kind of hints how esoteric git CLI can be.

<comment><USER72> I feel like _most_ of the trouble developers have with Git is pretty shallow, and it's a shame. It's not a tool I would want to get non-programmers to use (which may be a problem if you've got design folks on your team as well), but the model should be pretty learnable (in principle) to anyone who can manage to hobble their way through an intro data structures course.

For folks like me, who spent their evenings in high-school screwing around with obscure linux distros and have been scouring badly written man pages trying to fix their computer for half their life, the little stuff is forgivable, and a lot of the big stuff is pretty good. But it's a shame how many inessential hurdles there are. See also:

[https://git-man-page-generator.lokaltog.net/](https://git-man-page- generator.lokaltog.net/)

Biggest piece of advice for not losing data: learn about git-reflog and git- reset before doing anything that modifies history. Nothing is destroyed, even by "scary" operations like rebase, so it's _always_ possible to recover something, but you need to know how to find stuff.

I do some contract work for a university, where we have lots of student interns going through. We use GitHub, and we rarely rebase or cherry-pick, basically because while I _could_ spend a bunch of time trying to teach git to new interns that will be gone in 4 months, It seems like a more efficient use of time to just occasionally put up with a messy history.

</comment></comment></comment></comment></comment><comment><USER73> Similar discussion from almost 8 years ago...

[https://news.ycombinator.com/item?id=1433387](https://news.ycombinator.com/item?id=1433387)

</comment><comment><USER74> The only version management that i find intuitive is wiki model(i.e. wiki articles). Imagine 3 tasks.

1.Revert 3 git commits. This is one-click revert in wiki.

2.Diff 2 arbitrary commits. One-click in wiki.

3.change 2 lines of code. Edit->Submit in wiki.

Why git has to be so arcane, especially reverting to specific point in time? The first code versioning control system that emulates the wikipedia UI model will win the market.

</comment><comment><USER75> > The principle maintainer of SQLite cannot function effectively without being > able to view the successors of a check-in. This one issue is sufficient > reason to not use Git, in the view of the designer of SQLite.

He's basically looking for

git branch --contains $commit_or_branch

isn't he?

I do think it's a thoughtful write-up, hopefully git maintainers and github read it.

</comment><comment><USER76> Found the following line from the article... "entertaining"

# begin quote

Every developer has a finite number of "brain-cycles". Fossil requires "fewer brain-cycles to operate", thus "freeing up intellectual resources" to focus on the software under development.

# end quote

</comment><comment><USER77> Interesting, I hadn't heard of Fossil before.

It is useful to have a 'lingua franca' of open-source version control, but I'm not sure git is necessarily the best choice for that (not that network-effects usually result in the 'best' being chosen)

</comment><comment><USER78> Can someone explain how the problem of not being able to get successors causes issues in practice? I don't doubt it does, but I've never personally had a situation where inspecting the graph did not give the information I required in this regard.

</comment><comment><USER79> Also Fossil is licensed under 2-clause BSD license, Git - GNU GPL/LGPL v2/v2.1.

</comment><comment><USER80> The refactored page brings up good points. Git has undeniably improved the world of software development, and is de facto the version control system to use in the majority of cases today.

That said, that doesn't make the points SQLite makes invalid.

</comment><comment><USER81> Speaking truth to power! I like it! I so scared of saying that I never understood git and was getting by using only the most basic of the commands. Now Sqlite has called out!

</comment><comment><USER82> I always find myself writhing a bash script to commit-and-push-all with commit comment as arg. Especially for small projects.

</comment><comment><USER58> These days I'm more interested in a comparison between pijul and git. Pijul actually brings real improvements over git.

</comment><comment><USER83> Unfortunately at work we use TFS which only offers Git and TFVS as version control systems.

</comment><comment><USER84> I thought git reflog shows you basically everything...

</comment><comment><USER85> Speaking of large projects that haven't moved to git, I wonder when WordPress is finally going to make the move?

</comment><comment><USER86> I am not qualified to judge whether Fossil is better than git and I can completely acknowledge that git has a step learning curve (although I feel that a big chunk of that learning curve is unlearning previous VCS experience).

But, now that I do know git the biggest change from I noticed from previous VCSes is how much I work on multiple issues in the same repo. Something that was extremely hard with CVS, SVN, P4 (10yrs ago).

A friend was struggling with git recently and ranting about it. He didn't get it and didn't understand why anyone would use it compared to what he was used to (non DVCS). I wrote him this analogy

> Imagine some one was working with a flat file system, no folders. They > somehow have been able to get work done for years. You come along and say > "You should switch to this new hierarchical file system. It has folders and > allows you to organize better". And they're like "WTF would I need folders > for? I've been working just fine for years with a flat file system. I just > want to get shit done. I don't want to have to learn these crazy commands > like cd and mkdir and rmdir. I don't want to have to remember what folder > I'm in and make sure I run commands in the correct folder. As it is things > are simple. I type "rm filename" it gets deleted. Now I type "rm foldername" > and I get an error. I then have to go read a manual on how to delete > folders. I find out I can type "rmdir foldername" but I still get an error > the folder is not empty. It's effing making me insane. Why I can't just do > it like I've always done!". And so it is with git.

> One analogy with git is that a flat filesystem is 1 dimensional. A > hierarchical file system is 2 dimensional. A filesystem with git is 3 > dimensional. You switch in the 3rd dimension by changing branches with git > checkout nameofbranch. If the branch does not exist yet (you want to create > a new branch) then git checkout -b nameofnewbranch.

> Git's branches are effectively that 3rd dimension. They set your folder (and > all folders below) to the state of the stuff committed to that branch.

> What this enables is working on 5, 10, 20 things at once. Something I rarely > did with cvs, svn, p4, or hg. Sure once in awhile I'd find some convoluted > workflow to allow me to work on 2 things at once. Maybe they happened to be > in totally unrelated parts of the code in which case it might not be too > hard of I remembered to move the changed files for the other work before > check in. Maybe I'd checkout the entire project in another folder so I'd > have 2 or more copies of the project in separate folders on my hard drive. > Or I'd backup all the files to another folder, checkout the latest, work on > feature 2, check it back in, then copy my backedup folder back to my main > work folder, and sync in the new changes or some other convoluted solution.

> In git all that goes away. Because I have git style lightweight branches it > becomes trivial to work on lots of different things and switch between them > instantly. It's that feature that I'd argue is the big difference. Look at > most people's local git repos and you'll find they have 5, 10, 20 branches. > One branch to work on bug ABC, another to work on bug DEF, another to update > to docs, another to implement feature XYZ, another working on a longer term > feature GHI, another to refactor the renderer, another to test out an > experimental idea, etc. All of these branches are local to them only and > have no effect on remote repos like github (unless they want them to).

> If you're used to not using git style lightweight branches and working on > lots of things at once let me suggest it's because all other VCSes suck in > this area. You've been doing it so long that way you can't even imagine it > could be different. The same way in the hypothetical example above the guy > with the flat filesystem can't imagine why he'd ever need folders and is > frustrated at having to remember what the current folder is, how to > delete/rename a folder or how to move stuff between folders etc. All things > he didn't have to do with a flat system.

> A big problem here is the word branch. Coming from cvs, svn, p4, and even hg > the word "branch" means something heavy, something used to mark a release or > a version. You probably rarely used them. I know I did. That's not what > branches are in git. Branches in git are a fundamental part of the git > workflow. If you're not using branches often you're probably missing out on > what makes git different.

> In other words, I expect you won't get the point of git style branches. > You've been living happily without them not knowing what you're missing, > content that you pretty much only ever work on one thing at a time or find > convoluted workarounds in those rare cases you really have to. git removes > all of that by making branching the normal thing to do and just like the > person that's used to a hierarchical file system could never go back to a > flat file system, the person that's used to git style branches and working > on multiple things with ease would never go back to a VCS that's only > designed to work on one thing at a time which is pretty much all other > systems. But, until you really get how freeing it is to be able to make lots > of branches and work on multiple things you'll keep doing it the old way and > not realize what you're missing. Which is basically way all anyone can > really say is "stick it out and when you get it you'll get it".

> Note: I get that p4 has some features for working on multiple things. I also > get that hg added some extensions to work more like git. For hg in > particular though, while they added after the fact optional features to make > it more like git go through pretty much any hg tutorial and it won't teach > you that workflow. It's not the norm AFAICT where as in git it is the norm. > That difference in base is what really set the two apart.

Sorry that was so long but my question for the Fossil guys would be "which workflow does Fossil encourage?" Lots of parallel development like git or like many other VCSes not so much parallel dev. Are branches light and easy like git or are they only meant for marking versions like the were in SVN, P4, CVS. Do branches even need to be related or can they be completely unrelated like gh-pages and the VCS won't complain that you're "off master" as hg does (did?)

</comment><comment><USER87> Paraphrasing:

> _1\. Git data model only lets you see ancestor commits, not descendants. > Maintainer needs to find descendents._

It's technically true about git's data model, but it's not too hard to reconstruct forward history based on all refs (branches for this purpose). (see "git rev-list").

They don't justify the use-case that demands this information be trivially available, and I've never personally needed it, so I find this a weak argument. I _have_ needed to find what branches contained a given commit (either a regression or a bugfix), and that's available with "git branch --contains <SHA>"

> _2\. The mental model of git is complex (working dir, index, local head, > local copy of remote head, remote head)_

Granted. It's especially always complicated trying to explain to beginners the distinction between local head, local copy of remote head, and remote head. Though it makes sense to me when working out technical implications of git's distributed data model, it's obvious that many users are overwhelmed. (I think the mental model is actually great, but I won't impose my opinion on others)

> _3\. Fossil 's branch history display is better than GitHub's, and git > doesn't tell you if a branch has been merged_

No mention of "git log --graph" (or any GUI alternative) which goes a long way of solving their complaint. I agree that GitHub's graphless history is frustrating, but that's a GitHub issue, not Git.

However, Git does "swallow" merged branches, as the merge commit may be a property of the receiver branch, not the original branch (depending on your development model). Git doesn't enforce something there, so I agree with the issue.

> _4\. Git lacks essential wiki /bug-tracking. If you use 3rd-party tool for > these, they're centralized_

Granted, though I'm not quite convinced in how "essential" it is to have that tightly integrated in the version control system, and thus have it distributed, but that's probably an artifact of me being used to existing git- based systems.

A counterpoint to this is that Git (now) has a healthy ecosystem of alternatives for you to choose from. If you're not satisfied with Fossil's offering, how easy is it to change?

> _5\. Git requires administrative support for the extra web tools that Fossil > otherwise integrates_

This follows from the previous point, so granted. I'd add to this that Git lacks a good access-control/code-review system, hence the rise of so many alternative portals (GitHub/Gitlab, Gerrit...)

> _6\. No-one really understands git [w / XKCD link]_

Now you're just trolling.

Overall, I'm surprised at how many points I actually agree with the author(s), but the main difference is that git purposefully aims at a more limited feature-set that excludes project-management (ie wiki/bugtracking), which I guess is the consequence of its Torvalds/kernel-originated development history.

<comment><USER13> > but it's not too hard to reconstruct forward history based on all refs > (branches for this purpose). (see "git rev-list").

The branch name is not preserved in commits. I am curious of what you are thinking of. You can not reconstruct a branch, it's impossible.

<comment><USER88> > The branch name is not preserved in commits.

This is technically correct, the best kind, but it's not the whole story.

The default merge commit message does contain the branch names. Unless it's a fast-forward, in which you maintain linear history, so there are no problems.

<comment><USER89> Relying on commit message which can be anything is not a valid approach.

</comment></comment></comment></comment><comment><USER90> Git is Great! But Humans should never interact with it directly. Treat Git only as an API meant for applications to interact.

If your team uses a common application to write their code which manages Git, it will align everyones method of use.

It's funny watching an instructor training a group on Git. Everyone looks lost because there are too many scenarios being explained and how to handle them depending on what your intent might be. Before there is a solid grasp on the code management workflow the lecturing about commit comments begins, shifting clear over to the other side of the brain to guarantee none of it is collectively understood.

Presenting too many options to the collective is counter-productive.

</comment><comment><USER23> >Every day humans make me again realize that I love my dogs, and respect my dogs, more than humans. There are exceptions but they are few and far between.

You love them more than humans because they're fundamentally incapable of calling you out on your fud?

<comment><USER24> Dude, troll much? I'm retired, and you are messing with me?

I engage because I want to help. BitKeeper is mostly dead, I've offered to go to facebook and transfer as much as I can to their SCM.

</comment></comment><comment><USER49> > Fossil and Git are both block-chain version-control systems

Wow, we have gone full circle. Can't wait for Linus to announce the git ICO!

<comment><USER91> Technically Dr. Richard Hipp is right [https://www.mail-archive.com/fossil- firstname.lastname@example.com...](https://www.mail-archive.com/fossil- firstname.lastname@example.com/msg26593.html)

<comment><USER92> > So, why can't we rebrand fossil as Blockchain-VCS or something and move on > toward world domination?

Because Fossil-- like Git-- doesn't solve, attempt to solve, or even advertise itself as solving the problem of decentralized consensus.

All existing blockchain technologies at least claim to be a solution to the problem of decentralized consensus.

Therefore Dr. Richard Hipp is only "technically" right in the ways that do not matter, in the same way that I'm "technically" doing functional programming any time I write a javascript function.

I assume he knows this and is being satirical.

</comment></comment></comment><comment><USER93> > _Given some historical check-in, it is quite challenging in Git to find out > what came next. It can be done, but it is sufficiently difficult and slow > that nobody ever does it._

On the command line:

        git for-each-ref --contains <commit, branch, etc.>

Lists all refs (branches, tags) that contain the passed argument.

I'd be curious to know the author's need for this. I've used something similar on GitHub to determine when a given commit, typically a bugfix, is released.

> _There is no button in GitHub that shows the descendents of a check-in._

There is: go to the commit's URL ([https://github.com/$ORG/$PROJECT/commit/$COMMIT](https://github.com/$ORG/$PROJECT/commit/$COMMIT)) and below the subject & body of the commit, but above the author/commit time, there's a section that will have all branches, tags, and pull requests that the commit is a part of.

For example: [https://github.com/aio- libs/aiohttp/commit/d7f0511ead6d05cf6...](https://github.com/aio- libs/aiohttp/commit/d7f0511ead6d05cf6b7537c1b81f825e8f181ad7)

That commit is part of the "master" branch, and the "v3.1.2" tag.¹

¹Note that more tags will likely appear in the future, if you're reading this comment some time from when I'm writing it.</comment>


Resale of E-books Ruled Illegal in EU - <AUTHOR> https://www.publishersweekly.com/pw/by-topic/international/international-book-news/article/81151-second-hand-e-book-retailers-ruled-unlawful-by-eu.html <comment><USER2> Bad headline: The Advocate General does not have the power to "rule" anything, but gives an opinion (that is often followed) to the court which rules the case.

</comment><comment><USER3> > "Rightsholders of digital works protected by copyright, such as ebooks, > music downloads, films and games, will welcome the advocate general's > Opinion that the resale of ebooks is unlawful under EU law."

Wow, really? Because most mainstream economists have a resale market as something that makes a good more valuable, and so higher priced.

This is the best I could find in 2 minutes of googling: [http://web.mit.edu/2.813/www/readings/Thomas2003.pdf](http://web.mit.edu/2.813/www/readings/Thomas2003.pdf)</comment>


Winklevoss Brothers Move On From Facebook - <AUTHOR> http://www.nytimes.com/2013/03/24/fashion/winklevoss-brothers-move-on-from-facebook.html

<comment><USER2> does anyone really care at this point?</comment>


Tesla shareholders urged to oust Elon Musk over $55bn pay deal - <AUTHOR> https://www.theguardian.com/business/2020/jun/30/tesla-shareholders-urged-to-oust-elon-musk-over-55bn-pay-deal <comment><USER2> I'm a Tesla shareholder (110 shares), and I voted against that awful proposal to mess with Musk's compensation. His leadership is the reason Tesla is what it is today, and without that, I would not have any expectation of further growth, which would lead me to dump my shares.

Tesla is likely to be worth 10-20k per share by 2024 as long as Musk is still CEO, and they keep executing as they have been so far. So please, don't try to "help" us shareholders, because all you'll do is hurt us.

<comment><USER3> You think Tesla will be a $4 trillion market cap company in 4 years? Do you have any idea how crazy that valuation idea is?

<comment><USER2> Back in 1999, people made the exact same argument about Amazon. At that time, the people in the video below said that Amazon's market cap meant that they'd have to grow to sell 100% of all books sold in order to justify their $90/share price.

[https://twitter.com/xiang_aw/status/1278347734055923713](https://twitter.com/xiang_aw/status/1278347734055923713)

<comment><USER3> Yeah, and Tesla is not Amazon. Not in any way, shape or form. Amazon is a unique success because it is unique. Tesla is a 15 year unprofitable car maker that has never met its projections or expectations on future profit or revenue.

</comment></comment></comment></comment><comment><USER4> 1\. Set valuation target with incentive payout for Musk 2\. Tesla meets valuation target, benefiting shareholders 3\. Shareholders complain that the incentive payout is too high

I don't like Elon Musk at all, but this is really bizarre logic.

<comment><USER3> It is insane to set market cap goals instead of share price goals. The market cap of Tesla can go up without ever benefitting shareholders.

<comment><USER4> Market cap goals and share price goals are the same thing. Share price is simply market cap divided by the number of shares outstanding.

<comment><USER3> Yes, but in the case of issuance of new shares they aren't. Stock based compensation adds to the market cap but not to the stock price. Same with acquisitions done in stock.

You could merge your company with another company the same value and double the market cap without the share price changing.</comment></comment></comment></comment>


Explaining banding in a scatterplot of Goldbach's function - <AUTHOR> http://gottwurfelt.com/2014/09/23/explaining-banding-in-a-scatterplot-of-goldbachs-function/ <comment><USER2> Yet another graphical representation / demonstration of the comet:

[http://demonstrations.wolfram.com/GoldbachComet/](http://demonstrations.wolfram.com/GoldbachComet/)

(requires CDF player to manipulate the slider unless you're content to look at the animation)

</comment><comment><USER3> This is my blog post. Good to see it here!</comment>


Pace of DRAM generations slows in 1999 roadmap (1999) - <AUTHOR> http://www.eetimes.com/document.asp?doc_id=1189074 <comment><AUTHOR> This was back when 400 mil TSOP was still the most common package and before rank multiplication like LR-DIMM.</comment>


The world is spinning out of control - <AUTHOR>

The world is spinning out of control, here are links that prove it:
Software will take over the world: http://news.slashdot.org/story/14/03/17/0133222/gates-warns-of-software-replacing-people-greenspan-says-h-1bs-fix-inequity
The bad guys make it rich? http://news.slashdot.org/story/14/03/16/2139231/alibaba-confirms-plans-to-offer-ipo-in-us
The Kremlin gets DDOS'ed? The Kremlin? http://arstechnica.com/tech-policy/2014/03/kremlin-gets-ddosd-by-anonymous-caucasus/
Google and Microsoft working together? http://arstechnica.com/gadgets/2014/03/google-and-microsoft-are-out-to-stop-dual-boot-windowsandroid-devices/
Animals killed the free market? http://www.salon.com/2014/03/15/how_the_meat_industry_killed_the_free_market/ <comment><USER2> Out of _whose_ control?

<comment><USER3> Don't look at me man, I voted ZOD.

But this makes me recall the line from Alan Moore-

"Yes, there is a conspiracy, indeed there are a great number of conspiracies, all tripping each other up… the main thing that I learned about conspiracy theories is that conspiracy theorists actually believe in the conspiracy because that is more comforting. The truth of the world is that it is chaotic. The truth is, that it is not the Jewish banking conspiracy, or the grey aliens, or the twelve-foot reptiloids from another dimension that are in control, the truth is far more frightening; no-one is in control, the world is rudderless."

<comment><USER4> Don't believe that for a moment. Yes, not every aspect is under control (obviously). And yes, various factions vying for various aspects of control trip each other up (thank goodness). But these powerful factions do exist and amongst themselves are "conspiring" to make a great many decisions that effect a hell of a lot of people.

And no it is not "grey aliens" or "reptiloids". It is simply the very rich and well organized.</comment></comment></comment>


Ask HN: Anyone living here completely by your rules and rejecting the "normal"? - <AUTHOR> Most of us live the default life - even those who move thousands of miles away (to other countries, other cultures etc) deviate not a lot.
Anyone here living completely by your own rules? I'm deliberately not giving examples in order to not influence the course of discussion. Just interested in knowing what your rules are and how you're living by them <comment><USER2> Not sure if this would be not considered "normal" here but for the past 15 years I've just been doing my own thing for work. Right now my routine has been: I sleep at 5am, wake up at 12, then play with my daughter, go for a walk, do whatever i like, like watch movies, cook, gym, etc until 4pm then i go to sleep again around 4/5pm and wake up around 8p. then do some work for 2 hours. then more family time, watch netflix, and do two more hours of work around 3am.

It's not very exciting but i guess it fits the description of your post of living by your rules. My wife found it very odd, tried to correct my routine a lot because I don't generally sleep on time with her but she has given up after 5 years.

I did work very hard after college when I created some SaaS sites that are paying for this lifestyle which includes lots of vacation and travel. I'm not very rich though (if I were in America I'd be poor i guess).

One of the downsides of this is that I find it very hard to do routine chores like going to the bank, or catching a flight. I also have never seen the inside of an office (i mean i have but i mean i've never worked in one or had a boss).

I sometimes feel that this is very bad and I should be more normal and then I try to force myself to sleep on time and do 8 hour work like normal people but it has never lasted more than a week. So now I've given up on that as I believe that it's just my center of gravity and it's unfixable.

</comment><comment><USER3> I am in my early 30s and struggled a lot with the social pressure of getting married, buying a house and having kids, all things I've never wanted to do since as far as I can remember.

I refused to obey to those social norms, which has caused several social connections to fade (especially in my original home country), as well as "disappointment" in my family, despite being successful in my career and many other areas of my life. However, I'm lucky enough that I found, for the moment at least, a woman as a partner who thinks the same as me, namely that love and companionship is enough to fuel life without having to "waste" it away raising kids or paying mortgages.

<comment><USER3> I just wanted to report that someone ([https://news.ycombinator.com/user?id=ekaulakis](https://news.ycombinator.com/user?id=ekaulakis)) left this comment, and then deleted it before I could reply:

" You embody the death of our civilization. Have you ever felt gratitude for the systems which you count on to sustain you? "

This is exactly the kind of reaction that I am facing from social connections and family for living a "non-normal" life, where everybody tries to make me feel incredibly guilty for taking a decision of not having kids and pursue other activities in the incredibly limited amount of time I have on this planet.

<comment><AUTHOR> I am in the same boat, having decided not to have kids.

IMHO, the best we can do with people is ignore them. This becomes difficult if they are close relatives like parents or siblings, should be relatively easy with others.

</comment></comment></comment><comment><USER4> _Not by my own rules_ but I've been living in Manhattan out a storage unit since 2017, shower/meditate @ gym, write a novel during the day, day-job at night, then get ZZZs on SOHO streets.

It's affordable. I live in Manhattan. And I'm working to be professionally published by a NYC Publishing House within the next three years, hence reason for wanting to be on scene. I'm 32

I know there are more conventional / logical ways to go about a thing, but you know.

And again, _not by my own rules;_ everything outside how it seems is ordinary + demand law

<comment><USER5> If you have a storage unit why are you sleeping on the streets ? Or am I misreading?

I wish you the best of luck. I am friends with several published literary personalities and I can tell you it is not easy and took a lot longer than three years.

<comment><USER4> You are 'not allowed' to sleep in the storage unit, even though it is open 24 Hours. The guards keep tabs on who is in and out. And even if one could, I would still choose to sleep outside. I tell myself: "I'm just Urban Camping .."

Thanks for the wishes. I don't doubt it may take longer than three years. But I've been @ it for 10+ already & have written / self-published what I believe is a great novel (like everyone;) But am without marketing. (What I need's _discovery_ )

And if nothing happens, I'll just self-publish over and again

</comment></comment></comment><comment><USER6> I don't have a television. This is a huge departure from the norm for my wife's and my families. We don't even notice, until we visit them for the holidays. Can't handle TV anymore, it's such inane garbage.

<comment><USER7> To some degree not watching t.v, youtube, and netflix has been very rewarding for me. The consumer culture that has permuated the world really gets tiring after awhile. Just relaxing, meditating, or praying is a lot more calming for me personally than constantly reading or watching something.

<comment><USER8> i lost the patience to sit in front of a machine for entertainment. Doing it all day for work is enough

<comment><USER7> True, its hard though to find nature and to find things away from screens in the digital age. That is what I hate the most about this world is how much we are surrounded by screens.

</comment></comment></comment></comment><comment><USER9> I'm nearing fourties, only working intermittent contracts, managed to accumulate enough for a modest FIRE through them (would like a bit more to upgrade the lifestyle though), spend a lot of time between contracts working on things that interest me. On personal front, I haven't been in relationship for over 10 years now (don't have kids as well). I feel like I'm an outlier as far as general population goes, probably not as much here in HN.

<comment><USER10> How much length do you leave between contracts? How have you found scaring up contract work after long layoffs to go?

I'm in a somewhat similar situation but I'm scared to leave too long of a gap. Not so much worried about the resume gap as falling off on networking and the other things that lead to getting more work. It seems like I'll probably end up working mostly continuously for the next couple years while pursuing FIRE.

<comment><USER9> My gaps are usually 6-12 months long. I have significant in experience in a hot technology, so I'm currently not that worried about getting new contracts. I find them from internet ads only. As for getting referrals via contacts, I get the feeling that my developer colleagues don't like me very much - I don't share the typical philosophies of the field (huge overcomplication, willy- nilly adding technologies to the stack). Managers quite like me I think - they're happy to see a developer who says the job can be done without changing the stack every quarter. However, they tend to stay in a single company for a long time, so are a poor source of referrals.

<comment><USER10> Gotcha, thanks for the reply.

</comment></comment></comment></comment><comment><USER5> For twenty years I made and sold LSD across the East Coast. I spent my youth and perhaps most of my sanity doing it. For the longest time I lived by only one rule: Are you kind? Now I can pretty much do whatever the fuck I want. It's great, but not for everyone.

<comment><USER11> Oh wow. Do you have an academic background in chemistry? I've heard stories of chem phD students synthesizing in their labs at night. I've considered synthing for the challenge and for personal use, but haven't built up the chutzpah to start.

<comment><USER5> No I studied Operations Research but dropped out.

Those are not stories, that's the industry. Right now most of it is based out of Waterloo with some in upstate NY but honestly the Canadians are wild - check out [https://lysergi.com/](https://lysergi.com/) they are selling lsd pro drugs on the clear net!

<comment><USER11> Interesting website.

The legal jargon on one of their pages is reminiscent of things I'd see in online pharma websites that sell viagra pills, modafinil, and the like. I'm not sure how the legalese holds up in court though, but trying to pass off as a research company is one vector of approach to try pass off as legit, I suppose.

Interestingly, a lot of these pharma websites are based in Canada. Maybe there's a law I don't know about? Regardless, if I were being incredibly paranoid, a website like this on the clearnet suggests honeypot to me, even though it's most likely not. But still... on the clear net, and I'm assuming chemicals are made in house? Other drug sites buy from India/Mumbai/Sri Lanka/Thailand and ship to their destinations.

I'm impressed that they have access to NMR and LCMS stuff too - or at least they say they do. Shits expensive to buy and maintain. No doubt they are probably operating in an academic chemistry lab.... though I don't blame them. A PhD stipend isn't exactly investment banker status, nor is research funding increasing.

<comment><USER5> Someone whom I know ordered a sizable quantity of 1P-LSD from them and gave a strip to me. I gotta say it was some of the best "acid" I have ever done, maybe even better since on 1P I'm actually able to fall asleep after 8-10 hours of tripping. With LSD-25 if I dose at noon I'll be up until 8am the next day. Other than that there is no discernible difference.

I'm almost positive they operate out of Waterloo's lab or have significant access to their facilities. Otherwise I'm boggled at how they can make sure pure stuff in such quantities.

Hopefully, the psychedelic legalization initiatives in CO and OR will pass and the US can catch up again ;)

<comment><USER11> Yeah. Probably will take a while. So much for freedom, eh?

I'd be interested if they had tutorials to make your own, but I'm pretty sure they'd like to keep this a trade secret.

</comment></comment></comment></comment></comment></comment><comment><USER12> I'm not attending a meeting right now that I should probably be at but am not required to be at.

Does that count as living by my own rules?

<comment><USER13> Just barely :)

</comment></comment><comment><USER14> I dropped out of college at 22 with a huge amount of student debt to start a business while traveling through Asia & the US (am from Europe).

After the business took off and the money, countries or the countless short- term friendships stopped providing enough meaning for me I started looking for the next thing.

Now, I'm back on the same path that others never ventured off of. Close to my family & a handful of very good friends, with a great partner and a lovely daughter as of a few months ago. It's simple, it's beautiful.

<comment><USER15> You can't come home if you never leave!

</comment></comment><comment><USER16> If anyone reading this were a prolific psychopathic serial killer living completely by their own set of rules, their likely reasonable avoidance of prison food would not let them answer. I think this would be generally true regardless of country or culture.

</comment><comment><USER17> I have a wife and two kids, we rent an expensive house on the countryside. I struggle to find enough work even though I have a university degree and I taught myself programming (R). I feel totally constrained every day. I guess that is living by other peoples rules.

So my own rules (which I am working towards) would mainly be decreasing our minimal monthly expenses. This is hard in a country where the norm is to earn a lot, spend even more, pay the highest taxes in the world and where the government wants to make everything even more homogeneous.

</comment><comment><USER18> No, but I do what I can: resisted buying a house as long as possible and have zero debt apart from a mortgage that should be paid off in 2-3 years if all goes to plan, and enough in the bank to cover myself for at least a couple of years should things go tits up. And I'm earning nowhere near what I gather a lot of people on HN earn. I never fail to be amazed at how many people are quite happy to live showy lifestyles yet are in reality only 1 or 2 paychecks away from disaster.

<comment><USER19> How did you resist buying a house as long as possible? Did you just resist it until the numbers no longer made sense?

</comment></comment><comment><USER20> Nobody gets to live _completely_ by their own rules. No matter how much you want to, everyone is constrained to live in the real world (physical, even if not social), and the real world imposes constraints that we don't like (entropy, if nothing else).

Then, the social world can also impose constraints (such as prison, as zunzun pointed out).

The best you can do is try to arrange things so that the external stuff you can't avoid pinches as little as possible.

<comment><USER21> I think this is less true and/or relevant than you claim.

If a 10 on the Yudkowsky ambition scale is "I think I know how to hack the computer that the universe is running on", I propose 9.5: I know how to hack the computer that _my perception of the universe_ is running on.

<comment><USER20> But the external universe doesn't care what your perception of it is. So hacking your perception into something that is incompatible with the universe that is there is not going to be workable for very long.

</comment></comment></comment><comment><USER22> There's a lot to be said for the off-grid lifestyle. Yeah, it's a lot of work, and some of it is a grind, but it is generally very rewarding.

<comment><AUTHOR> any experience you can speak about?

<comment><USER23> Joey Hess[0] does this and writes about his experiences on his blog. Fridge 0.2[1] was popular on here a couple of weeks ago.

[0]: [https://joeyh.name](https://joeyh.name) [1]: [https://news.ycombinator.com/item?id=18770213](https://news.ycombinator.com/item?id=18770213)

</comment></comment></comment><comment><USER24> This january I am turning 40 and it will be exactly 10 years since I quit my last job. I am a pro sports bettor so I have a fair degree of flexibility and time freedom. However, I am strongly considering applying for work again, in fact I've already sent my resume to two advertised jobs.

<comment><USER25> I'm really interested in how that will work out for you.

What line of work are planning to go into, return to? How will you represent the decade of pro sports betting on your resume?

<comment><USER24> With a 10 year gap in my resume I'll probably have to take whatever comes. Ideally it would something analytical, with numbers, where I can learn a lot (I went to a high school with focus on Math and I have a Master's in Management). I don't really care about the salary. I know a bit of PHP and I am currently starting to learn Python.

I worked as a technical documentarist in the past and also in a managerial (non-technical) role for an online bookmaker. During the first three years of my pro betting career I also launched my own online sportsbook but that project failed miserably. Maybe I can use that to partially explain the huge gap but I am still undecided.

<comment><USER25> Well you have a good start. I would think that ten years of successful (i.e. making a living) sports betting would make for a unique anecdote and discussion during an interview.

A strong desire for maths with an ability to tolerate programming, maybe look for a path into data science or machine learning. I see on this site or reddit or lobste.rs for free online courses for both all the time.

Regardless, I wish you luck and hope things go well.

<comment><USER24> Thank you, much appreciated. I started looking into both recently, mostly under the influence of posts on here but also upon seeing them in many job ads.

</comment></comment></comment></comment></comment><comment><USER26> I have a huge whiteboard above my bed.

On one side I have a list of things to do everyday (eat, drink, run, make bed, bathe, get dressed, call ma, be kind) On the other side I have a list of things to do when I am feeling down (eat a piece of fruit, have some water, calisthenics, go for a run)

The middle is reserved for things I find meaningful. At the moment it is empty except for at the top it says "this is water".

<comment><USER27> I love this. My wife taught me to put focus on meaningful activity. When meeting new people, instead of adking "what do you do" she asks "what do you like to do" and this method of planning sounds like the perfect analogue.

<comment><USER26> I do this because I go through times where I am either depressed or in a rut and can't seem to jolt out of it. It's the most in-your-face way I could think to help me snap out of it and do things consistently.

</comment></comment></comment><comment><USER28> > Most of us live the default life

No we don't, and, moreover, there is no such thing.

</comment><comment><USER29> 2 beers (and counting) (classic Budweiser). Figuring out how to write a Python extension. Roasting a couple of hot dogs. And yes, I live in Mississippi.

</comment><comment><USER30> Yes, but my own rules are mostly normal.</comment>


Crowdsourcing Jobs to a Worldwide Mobile Workforce - <AUTHOR> http://www.technologyreview.com/business/26651/?p1=A5

<comment><USER2> Given that there doesn't seem to be any question of poor Africans doing useful work for Western multinationals, and this is basically structured as an aid giveaway... could it be an _effective_ aid giveaway? One big problem with aid is that donor money gets siphoned off by corrupt governments and, ahem, aid organizations. If crediting someone with call time is as good as cash, which I have heard is increasingly the case in countries which have never had a stable currency, maybe we can just cut out the middlemen and deal with the intended beneficiaries directly. (That is a big "maybe", given that poor people's problems are a wee bit more extensive than "I have no money.")

</comment><comment><USER3> i see a flaw in this model though. if i'm a western company not doing business in kenya, what do i really want low-skill laborers to do? I don't want them filling out surveys as they are unlikely to be my target audience. I think things like recognizing an object might work, but then you would need graphics capable phones... maybe i'm missing something here.

</comment><comment><USER4> I had described nearly this exact idea to my wife while walking around downtown Seattle. The only difference was I was trying to figure out a way to give the phones away for free also.

It would be fantastic if doing tasks on a phone was a better use of time than begging on a street. I hope this works out.

<comment><USER5> I tend to think that anyone sufficiently intelligent, motivated and sane to be performing tasks for money is unlikely to be found begging on the streets of Seattle. To be truly, homelessly poor in America you pretty much have to have something seriously wrong with you -- whatever it is, it's likely to make you a pretty damn unreliable worker.

But hey, I'm sure they'd be willing to take the free phones.

<comment><USER6> You'd be surprised: I sure was.

I got into a long conversation with a homeless guy outside 4th Avenue records (I think that's what it's called? been a while) in Manhattan a long time ago. It turns out that he was laid off from a programming job in a financial firm (this took place in the mid 90's) and he claimed to make over $900/day panhandling. Of course I didn't believe the programming thing, but he answered all my technical questions well enough that either he was one really well read homeless person, or he was telling the truth! However, based on what I saw, I could believe he was making hundreds of $$ per day.

Then again, maybe he was laid off because he just couldn't hold down a job, I dunno!

<comment><USER7> We can be pretty sure he's the exception rather than the rule; check out the statistics (I can dig them up if you wish), but as I remember the vast plurality if not the majority of the homeless are the mentally ill who would have been in institutions prior to the misguided deinstitutionalization effort that didn't provide them with alternatives that worked.

Once you separate out the "if a Republican is present there are homeless, if a Democrat they disappear" propaganda, there's quite a bit of serious research on this subject. I certainly know that the vast majority of homeless I encountered on the streets of the Cambridge, MA area in the early to mid-80s were clearly mentally ill, sometimes severely so (e.g. frank schizophrenia).

</comment></comment></comment></comment><comment><USER8> It's essentially mturk using text messaging.

</comment><comment><USER9> I've thought about building a kiosk for homeless people to spit out pennies and nickles...

</comment><comment><USER10> I'm reminded of Japanese intelligence gathering methods in the days leading up to Pearl Harbor. This would be a hell of an intelligence gathering tool, the best part of it is that you could gather data in such a fractioned and distributed way that individual people wouldn't be able to guess what it is they're doing.</comment>


Data-Intensive Text Processing with MapReduce - <AUTHOR> http://www.umiacs.umd.edu/~jimmylin/book.html

<comment><USER2> This prints and binds well, with big paper clamps.

<comment><AUTHOR> If you're in the US, you can have it nicely bound at Kinko's for the price of a latte.

<comment><USER3> It also fits splendidly in my hand downloaded to my iPad, ready for my 14-hour airline flight next week, all without a trip to Kinko's or 4 pounds of paper to lug halfway around the world with me =)

<comment><AUTHOR> Very true. I'm still waiting for the 3G version to come out.

Any recommendation on PDF readers/annotators?

<comment><USER4> Goodreader is nice (much, _much_ better than the built-in PDF reader for large files) and it has support for loading files from Dropbox, etc. So far may only lingering complaints are the non-configurable swipe-for-next/prev-page action (up and down instead of the side to side of iBooks) and the fact that landscape mode shrinks the page to fit the full height in the landscape screen instead of going to half pages, and the lack of annotations.</comment></comment></comment></comment></comment>


Ask HN: How do you deal with lack of motivation? - <AUTHOR> <comment><USER2> Is a lack of motivation necessarily a bad thing? Maybe things are acceptable as they are, and don't necessarily require change. Though, it does seem part of the human condition to constantly aspire to be more, or greater, or faster, or some delta of improvement.

I suppose it's contextual, to a baseline. Maybe one doesn't feel "motivated" to work on their startup idea, after 40 hours of conventional work. Maybe that's your body's way of telling you, you've had enough, and you shouldn't over-exert yourself. But if you weren't working at all, it would be a different conversation.

</comment><comment><USER3> I would say that boredom is the opposite side of the coin of creativity. When well balanced it looks like a balanced group of habits that goes from productivity at full strength (because all animals need jobs) to time taken off enjoying mindless entertainment or pointless hobbies to relax (because sometimes work is too much).

I bet when one notices a lack of motivation, it's a lack of motivation in a certain arena, not motivation in general, a lack of motivation to what one think they SHOULD be doing.

</comment><comment><USER4> Without knowing anything about your situation, it's hard to recommend anything. But lack of motivation can be a symptom of depression and it may be helpful to speak with your physician and get screened for it.

If you read about the symptoms and recognize more than one in yourself, and you still aren't able to commit to seeing a health care professional, confide in a friend or partner and ask them to help you through the process and hold you accountable, because depression is like a parasite that won't let itself be treated.</comment>


What is it like to be a young person (10 to 18 years old) now? - <AUTHOR> http://www.quora.com/Youth/What-is-it-like-to-be-a-young-person-10-to-18-years-old-now/answer/James-Wang-5?fb_source=other_multiline&fb_action_ids=665675157268&fb_action_types=quoraapp%3Avote_on&ref=fb

<comment><USER2> It's an interesting point about not ever being able to escape your school mates. With Facebook, they can track you down after you graduate easily. That is a totally new thing.

Is it a good thing?

Sure, we get connectedness. But do you really want to stay connected to _everyone_? Facebook will kill privacy for these kids if we do not do something. They will never be able to "escape their past" in the way that earlier generations could. That seems unfair.

Food for thought.

<comment><USER3> It would be a problem if you couldn't simply ignore or block anyone you didn't want to talk to. There's plenty of people I would have lost touch with years ago were it not for Facebook. When it's someone I want to talk to, I'm grateful. When it's not, I just unfriend them and my privacy options do the rest.

There is a bit of a problem in that many teenagers don't seem to understand the fact that it's very difficult to delete things from the internet. It's a non re-writable medium, in many respects - particularly if you're not smart with your privacy settings. There is definitely room for more education on this. It would be way more useful than the joke that was IT lessons at my school.</comment></comment>


Ask HN, The Yelp Fee.  what do you think? - <AUTHOR> http://twitter.com/pm/status/3541117725

<comment><USER2> <http://jwz.livejournal.com/1002269.html>

Yelp have always been extortionists, and don't even have the courtesy to be upfront about it.</comment>


Why so little looting in Japan? It's not just about honesty - <AUTHOR> http://www.slate.com/id/2288514/pagenum/all/#p1

<comment><USER2> I submitted the same link like 4 minutes ago: <http://news.ycombinator.com/item?id=2347698>

<comment><AUTHOR> Apologies. I did check, but I didn't double check after pasting in the two forms (and pouring a cup of tea, IIRC.)

<comment><USER2> No problem.</comment></comment></comment>


The sealed bottle garden still thriving after 40 years without water - <AUTHOR> http://www.dailymail.co.uk/sciencetech/article-2267504/The-sealed-bottle-garden-thriving-40-years-fresh-air-water.html <comment><USER2> This is awesome. Considering making my own.</comment>