Hacker News new | past | comments | ask | show | jobs | submit login
US Constitution – A Git repo with history of edits (github.com)
1198 points by styfle 29 days ago | hide | past | web | favorite | 379 comments

This is probably common knowledge to Americans, but I noticed that the latest amendment on the commit log was written by James Madison. I was confused as to how that came about so recently and found on the wikipedia page:

>It was submitted by the 1st Congress to the states for ratification on September 25, 1789, along with eleven other proposed amendments. While ten of these twelve proposals were ratified in 1791 to become the Bill of Rights, what would become the Twenty-seventh Amendment and the proposed Congressional Apportionment Amendment did not get ratified by enough states for them to also come into force with the first ten amendments.

> The proposed congressional pay amendment was largely forgotten until 1982, when Gregory Watson, a 19-year-old sophomore at the University of Texas at Austin, wrote a paper for a government class in which he claimed that the amendment could still be ratified. A teaching assistant graded the paper a "C" and an appeal to the professor, Sharon Waite, failed, motivating Watson to launch a nationwide campaign to complete its ratification.[1] The amendment eventually became part of the United States Constitution, effective May 5, 1992,[2] completing a record-setting ratification period of 202 years, 7 months, and 10 days

>When Watson began his campaign in early 1982, he was aware of ratification by only six states and he erroneously believed that Virginia's 1791 approval was the last action taken by the states. He discovered in 1983 that Ohio had approved it in 1873 as a means of protest against the Salary Grab Act and learned in 1984 that Wyoming had done the same 6 years earlier in 1978, as a protest against a 1977 congressional pay raise. Further, Watson did not know, until 1997, well after the amendment's adoption, that Kentucky had ratified the amendment in 1792. Neither did Kentucky lawmakers themselves — in Watson's desire for a 50-state sweep, the Kentucky General Assembly post-ratified the amendment in 1996 (Senate Joint Resolution No. 50), at Watson's request, likewise unaware that the task had already been attended to some 204 years earlier.

>In 2016, Zach Elkins, a professor in the UT Department of Government, became interested in Watson's story and began to document its origins. He tracked down Sharon Waite, who had left academia in the 1980s to work on her family's citrus farm. Elkins suggested to Waite that they change Watson's grade. In 2017, Elkins submitted a grade change form with Waite's signature and a grade change to "A+". In an interview with NPR, Waite stated, "Goodness, he certainly proved he knew how to work the Constitution and what it meant and how to be politically active, [...] So, yes, I think he deserves an A after that effort — A-plus!" The registrar approved a grade change to "A", because the university does not give grades higher than "A".

How has this not yet been made into a comedy?

>The registrar approved a grade change to "A", because the university does not give grades higher than "A".

It’s hilarious to me that the bureaucracy of this university couldn’t allow even a single grade above an A in this exceptional circumstance - I wonder if it actually came down to some hard limit in their grade keeping system, or if some grumpy recordskeeper just said, “Nope, this is how we’ve always done things, so this is how we will always do things.”

Maybe its my European mindset but I find it impossible to believe that any school can just start inventing extra grades.

Maybe it's my southern European mindset, but I find it totally possible.

The world is not as rigid as northern Europe thinks it is...

I'm from the Balkans.

Well, if you're from the Balkans you should surely see it as totally possible!

Far more rule and law-bending is happening than that, for the possibility of "inventing a new grade" to be really impossible/surprising.

Case in point, I know a university case where the professor body wanted to appoint their "own" candidate for a professorship position. The dean and several (majority) professors had already agreed under the table, and the few others didn't matter.

The only problem was they legally had to go through a open contest for the position.

So when someone came up with 5x the qualifications (citations, papers, conferences, better universities attended, etc, globally too) than their ho-hum friend (some relative of the dean), the professor body suddenly folded the position.

A few months later, they announced a new opening, with some specially crafted qualifications, so that only their friend could pass.

I can really see this happening, unfortunately, and I actually did many times. However, Southern bureaucracies are flexible only when they shouldn't be and insurmountably rigid when it's actually good, reasonable, or funny to make an exception. So, no, no extra grade for Watson here. But we might as well create a whole new professional category for the friend of my friend.

New grades are introduced all the time e.g., https://en.wikipedia.org/wiki/General_Certificate_of_Seconda...

> In 1994, the A* grade was added above the grade A, to further differentiate attainment at the very highest end of the qualification. This remained the highest grade available until 2017.

The grades are now 1-9, with 9 being the highest and above A*.

In this particular case, I think it certainly is within a University's remit to award a special grade given the exceptional circumstances.

>The grades are now 1-9, with 9 being the highest and above A*.

Another example of the US inching toward the metric system ;-)

This isn't the US -- these grades are from the UK.

Although yes, the UK too is in this hybrid world where gas (petrol/diesel) is in litres, temperature is in Celsius, but vehicle speedometers are in miles per hour and feet and inches are very popular for height, measuring rooms and furniture, etc.

Don't forget about measuring your own weight in "stones".

They're still miles away from converting.

That's just A levels (which are open to fiddling by the government of the day)

Universities have their own ideas

Seems like they're finding the path.

In all seriousness, the profs cant just invent grades that don't exist. Verbal "awesome work from X everybody read it" is for that purpose.

This is not some kind of overreach of bureaucracy.

The +/- letter grading scale has existed for as long as I can remember. For the particular college I attended, A+ corresponded to a GPA of 4.33 or a % score of >100 and was only given out to exemplary students - I believe this case would certainly be worthy of that extremely high grade.

The case got highest grade available in system that this particular college uses. There is not reason to expand the scale.


Bah! That's grade-inflation, pure and simple. In my day, the grades topped out at cough4.0. Back in my day, a 4.0 coughreally meant somethingcough, not like these cough hold on, I gotta re-up my inhaler-

Ok, where was I?

Oh, right - Get off my lawn!


In all seriousness, the profs can choose to do what they want and the system most certainly can choose to allow it or not.

This is absolutely an example of rigid bureaucracy at work.

Also, you now are eligible for grade changes in past English classes because you used the word "can't" figuratively to describe a literal situation. Whether the grade changes occur and if they go up or down is up to the systems maintaining the grades and the teachers.

Next level grade inflation "A+++", "totally awesome A", "A totally even more awesome then A+++:.

In all seriousness, this is not rigid bureaucracy preventing something that would be useful. Just because prof have such an emotional reaction to someones unusual effort does not mean new grade has a reason to exist.

I guess it depends on the grading system doesn't it? I mean, if the top mark is essentially 100% to mean "there's nothing that reasonably could have been done to improve it" and A is defined as 80-100, then you can't to better than A. Or if the top mark is 1.0 and the worst passing mark is 4.0, and A means 1.0, then you can't do better than A.

They already went way outside, above and beyond anything I could've imagined. How do you change a grade decades after the course? Surely they're locked down soon after. To me, just going off and making it an A (rather than the professor just saying "well I've got egg on my face don't I?") is already incredible and a generous deviation from the bureaucracy.

Oh absolutely! I simply want to challenge the disempowering language of bureaucracy that involves saying someone "can't" do something.

There's literally an infinite number of ways to adapt the system to allow for a higher-than-A grade. Choosing to not do it is still a choice.

I'm not claiming they should've done anything different. I'm merely making sure bureaucracy's responsibility in this matter is pinned down.

"I can't do it" is pretty much normal way how to convey not just it is physically impossible. It normally means:

* It is not up to me to decide that, it would be overreaching my mandate to make that change. * This is against my moral values. * This is against rules that everyone else bothered to follow.

All these are valid choices and right choices. The bureaucracy responsibility in cases like this is literally to resist the pressure to make exception just so someone feels good.

I like the 19/20 French system.

Numberphile has a nice video about it: https://www.youtube.com/watch?v=QzrRkhU248A

Probably breaks some column constraints.

Definitely. Adding an extra grade I'm sure would require at least a couple hours of technical work and haunt subsystems and stats analysts for decades to come. Not worth it.

FWIW I remember a (peoplesoft, iirc) roll out that was so painful that certain departments changed their entire course numbering and taxonomy system, because that was easier than teaching the software new tricks.

the school's database may not store strings like "A", "B+", etc. I'd guess it stores grade points, which can be more directly used to calculate GPA. so at schools where A is the highest grade, it is already represented by 4.0. it's probably more trouble than it's worth to accommodate values outside this range just to symbolically correct a grade several decades later.

I’ve never been more proud of my alma mater.

Would love to see this as a movie. Or at-least a book

Not common knowledge at all. I learned about it back in the 1970s on a school field trip to Washington DC. I was looking at the original Bill of Rights in the National Archives and realized there were twelve amendments there rather than ten. I pointed this out to my teacher who told me to be quiet. (I think I was 10 years old at the time, so I complied.)

It's probably more commonly known among people who have taken government classes since 1992, since it's basically proof that government classes can have a real impact on public policy.

nope I took US history multiple times after that, still thought the bill of rights had 10 amendments

As far as I know, "bill of rights" is in fact the informal name of the first 10 amendments -- which were proposed and passed as part of the political compromise that got the constitution accepted at all.

The remaining amendments are, well, just amendments. They don't necessarily specify rights, and are generally not considered part of the bill of rights.

Did his grade eventually get upgraded to A, or was the paper just badly written in spite of this great insight?

Yep! Wikipedia says it was changed in 2017.


Yep, I was at the popup theatre event where the teacher showed up and upgraded his grade!

The appeal went all the way up to the supreme court. In a controversial 5-4 decision he was awarded a B-.

This is pretty funny. I had something vaguely similar happen to me, although not nearly as major.

In my matric year (grade 12) I took three first languages (although I already had two first languages by grade 10). The department of education did not like it, but I did it anyway, with some encouragement from my language teachers.

Fast forward to the final exams, I did well enough to make the provincial top 40, but was excluded due to what I still think was a bug in their system. Funnily enough, I walked to the provincial minister for education (later the national Minister of Health) and told him what happened. For a short while I was a radio celebrity due to the minister personally telling people "Look, this white boy got a B in Sepedi so you guys really should stop complaining and do better." [1]

The error was not corrected and I was actually at the ceremony by chance for having gotten best in English in the province. I also randomly got a call from some trust and got about $100 for my creative writing essay.

In any case I guess the whole radio thing was more amusing to me and actually was a better prize in the end.

[1] In South Africa, a B is 70%—79%; I had gotten 76%.

More Perfect, a podcast by one of the hosts of Radiolab, has an episode on this in song form: https://project.wnyc.org/themostperfectalbum/#amendment-27

Side note: This podcast is excellent. The first two seasons are not songs, but investigative (and entertaining!) pieces on important Supreme Court rulings.

> This is probably common knowledge to Americans

I for one never heard of this, so thanks for sharing!

Of note, there is another amendment in a somewhat similar position, the Equal Rights Amendment: “Equality of rights under the law shall not be denied or abridged by the United States or by any state on account of sex.”

It's one state shy of passing and has been that way since the '80s. That said, there's a very strong argument that the amendment is no longer eligible to be passed because, unlike Madison's amendment, there was an explicit "this offer expires" date in the bill passed by Congress, and that date has long passed. Also, several states rescinded their ratifications. That said, there are plausible legal theories that states aren't actually allowed to un-ratify amendments and that proposed amendments can't expire.

Yep, this is why git has separate author and commit dates.

Yeah that should definitely be part of the commit message!

Did he appeal his grade after that?

  And with the benefit of hindsight, Waite says, Watson clearly doesn't deserve that C she gave him.

  "Goodness, he certainly proved he knew how to work the 
  Constitution and what it meant and how to be politically 
  active," she says. "So, yes, I think he deserves an A 
  after that effort — A-plus!"

  And that's exactly what happened.

  On March 1, Waite signed a form to officially change 
  Watson's grade. Thirty-five years after Gregory Watson 
  wrote his paper, he finally got his C changed to an A.

Note well, would-be faculty: this is the degree to which undergrads will hound you if you grade homework accurately.

At least in this case, it wasn't a parent.

Did that end up retroactively changing his grade in the course as well?

Yes, grade changes are done on the course level. The registrar doesn't keep track of the individual assignments.

Papers aren't graded on their real world effects!

Why legal professionals are not using version control goddamit?! It's exactly the tool they need. Just recently worked with a lawyer who was negotiating settlement agreement on my behalf. The agreement in MS Word, edits highlighted with a color background, change requests in the body of the email - after 2-3 rounds of corrections reaching the other party nobody is able to keep a track of anything anymore. Seriously? Years of studies, prestigious profession, peoples' careers and lives at the stake, and this is how you work?!

In a legal document negotiated between parties you don't want to keep track of every version of the file, just the latest version of the offered terms and counteroffered terms.

Changes by you are highlighted in one color.

Changes by other parties are highlighted in other colors.

If you need a diff between versions Word can generate one for you in seconds.

So yes, this is exactly how we work. Because it was designed to fit our workflow.

>In a legal document negotiated between parties you don't want to keep track of every version of the file, just the latest version of the offered terms and counteroffered terms.

Not true, at least from the point of view of a litigator.

The changes to an agreement can be crucial, especially in the absence of an entire agreement clause. There are, of course, rules about using evidence outside the agreement to construe its meaning, but many exceptions to this rule exist - eg, mistake. The biggest exception is ambiguity, where previous additions/deletions serve to highlight what the parties' intentions were at the time of agreement.

That would be awfully difficult to have accepted by a judge.

Even if it was, proving intent would be very difficult - after all just because you introduced a change doesn't mean I agreed to it.

Often contract clauses start off in a "no way I would sign that" state, and may get carried along for a while as you are focused on different things. The fact it existed in the history is, by itself, pretty meaningless.

As a former litigator, I have never found a judge willing to accept such evidence into the record.

i’d argue that it’s not “designed to fit our workflow” so much as designed around a subpar, but flexible tool that everyone was using. that don’t make it good; that just makes it ingrained

Track Changes tracks changes. By multiple authors. And allows comments outside of the substantive content of the document. It works across multiple versions of itself, and is even compatible with competing software. And best of all, it requires no additional software to learn or maintain.

That makes it superior for legal documents to all version tracking systems that I'm aware of that are used in the programming field.

Well yes, if you constrain the solution set to satisfy "requires no additional software to learn" then you'll end up with the status quo solution.

One thing I've always been concerned about when negotiating a legal agreement is how I verify that the tracked changes actually track every change. Because Word lets the user decide which changes to track, I'm always reading the untracked sections as well to confirm that no other changes were sneakily introduced. That's something that git addresses well. Does Word have a solution there? If not, does that ever concern you?

As a former attorney, I'd just do a diff. Save a copy, reject all changes, then do a diff and compare side by side. As a current software engineer, Word is definitely sufficient (and understood, which sf good) for two small adversarial teams. Key words being small (two huge firms negotiating a huge deal should not be using Word) and adversarial: I think a lot of times when tech-people suggest lawyers could do a better job they forget the other side isn't trying to be helpful.

Two huge firms negotiating a huge deal probably are in fact using Word, right?

Things like that probably have multiple outside counsel involved, and various versions of Word. :)

This is why you always do a diff.

In my limited experience, Word is used for the early back and forth, but final stages are done and reviewed in PDFs, and PDF diff tools used to identify any changes. No reason you couldn't do the same thing all in Word.

It does have such a tool, you would have rev A (old one) then collapse all the tracked changes in rev B and diff with A.

There is a Compare feature in Word exactly for use in these cases.

You say "requires no additional software", I say "doesn't allow me to use whatever software I want". For example, I can't edit a legal document while SSH'd into a host computer on my firms network.

Also, Track Changes doesn't allow two people to work on a document asynchronously, while git does.

I have seen a ridiculous number of errors in legal documents given the fact that a huge part of the legal profession is to produce solid/error-free documents.

But while the law profession's response to this seems to be just "be a better lawyer", the software industry's response is "build better tools that don't allow me to make errors". I'm sure I don't need to tell you which method I think is preferable in the long term.

I do not particularly agree with the some of the arguments made in this thread for and against the status quo, but some of your statements are factually incorrect.

>For example, I can't edit a legal document while SSH'd into a host computer on my firms network.

Track changes is supported by LibreOffice and its kin, so certainly possible to ssh into a computer on your firms network and edit it. Might require an X server on your local machine, I am not sure if libreoffice works in terminal (but its open source, so if you really wanted to you could add support!) That said, the recommended way to do what you are asking is to run an "Online Office Server", which gives you a online version of word (think google docs, but looks like MS word) that you can access through you VPN or company portal with ssl/tls. Different workflow for different folks I suppose.

>Also, Track Changes doesn't allow two people to work on a document asynchronously, while git does.

Office 2019 has added 'source control like' simultaneous/asynchronous editing when integrated with a Sharepoint server. Multiple people can have the file open, and the save button both commits your changes and pulls whatever other changes have been committed since, with options to resolve conflicts.

Furthermore, with the office 365 version of the office suite (or Online Office Server, which is nearly the same thing but self hosted) it is possible do live editing, whereby multiple people edit the same document simultaneously (google docs style). Not sure why you would want to do that, but it eliminates merge conflicts at least and seems to be pretty popular at my workplace. Especially useful when someone is presenting slides and there is something you don't like in them ;-)

Of course, as long as your document is on a sharepoint server, you get version control built in and can roll back to see the document at any save point, do diffs, etc.

It is true that the FOSS world is more civilized, but Microsoft isn't sitting by idly. They spent $8B on github for a reason, and it wasn't to get their business model.

Sorry, with the first point I wasn't very clear, but what I meant was editing a document from a SSH'd shell, using a CLI text editor like vim, emacs, nano, or any of the plethora of existing tools that work out of the box to edit documents. Editing which can then be checked into version control like git. That is obviously very different from "you can build a CLI for LibreOffice which is currently compatible with the Track Changes implemented by MS Office but might not always be".

Having to use MS Word in the cloud doesn't really scratch the itch I'm talking about either.

That's cool about Office 2019, I did indeed not know about that. Can I perform these Sharepoint-enabled changes while offline? It seems like all of the things you are talking about require a centralized online server in order to do. Regardless, I do not think there is a conflict between the statements "you need Sharepoint to do these things" and "Track Changes cannot do these things".

> a CLI text editor like vim, emacs, nano, or any of the plethora of existing tools that work out of the box to edit documents.

Asking a world that is used to what came out of Xerox PARC to switch back to 1970's technology on teletype emulators is...the only word I can think of is Quixotic.

The point is not that I want people to switch, it's that software developers have choice and lawyers / etc don't.

To write software, I can use a CLI text editor, a basic GUI text editor, an advanced text editor like Sublime or Atom or VS Code, or a full on IDE like the JetBrains products. I have so much choice, and all of these are interoperable with each other and have different places where they shine. All work with git. I just don't think the same thing can be said for the document-creation workflows around law and such.

A hammer is pretty much an ancient technology. A battery-powered plastic toy hammer, with buttons that play melodies, is a modern take. Yet serious people use the (modern implementations of) ancient-style hammer to drive nails.

That's my general response to "why use 1970s tech?", though I guess I'm being a bit unfair here. Word is, in some ways, a marvelous piece of engineering. The whole Office suite is. Unfortunately, thanks to path dependence and business strategies, it's also locked in a place where it's not interoperable with anything outside the Office ecosystem by default.

I guess I have an answer to the age-old question: in sci-fi shows, how come nobody in-universe notices their computing technology is, in many areas, ridiculously inefficient and ineffective compared to the old XX/early-XXI-century tech? The answer may be, the sci-fi future tech is built on so many layers of lowest-common-denominator, walled garden, non-interoperable tech that people no longer know how interoperability or efficient computing looks like.

I don't disagree a hammer is still a useful too, a lot like how a pencil and paper can still be a useful tool for architecting software, or when we need to sketch something out. However when it comes time to build a new construction, no, people are not out there hammering every individual nail. They're using nail guns and all manner of power tools to complete the job because it's more consistent and less time consuming.

Lol, claiming that using text files is somehow a regression is a pretty lame misdirection. You know what else came out of xerox parc? The GUI, the mouse, etc. You know what else is 1970s tech? The internet, databases, etc.

“Being old” is probably the lamest way to claim something shouldn’t be used.

You're asking for trouble if you are relying on track changes. Anyone can disable track changes, make changes without highlighting them and send it back with track changes reenabled. You need to compare any received file against what you last sent to see the real diff.

There's got to be a better way.

The better way is using the Compare feature that has been in Word for years, if not decades.

The problem with that is that it gives a change tracking tool that doesn't work, giving people a false sense of safety, relying on users to remember to manually diff every change sounds like a security issue in itself, that diffing should be either an automatic process instead of track changes or track changes should track everything by default.

If the other party attempts to sneak in such a change, usually you extract a concession from them when you catch them as many bar associations now regard that as unethical behavior warranting discipline.

Yes, but you still have to catch them, and the fact it's possible gives them the leeway to try, when the point of business is to do business, not to catch people out.

That's an imperfect solution for a problem that didn't need to exist in the first place that might even produce its own list of problems.

So if you have a set of documents that are all being negotiated at the same time between parties. How do you show what changed in DocumentA at the same time as the concessions in DocumentB? By comparing timestamps?

It feels like the CVS way of versioning (Every document has a history) rather than the modern way of versioning (A set of documents has a history).

Perhaps this is a smaller problem for these kinds of documents because while my changes are often a dozen changed documents in a set of a hundred thousand documents, these word processor changes are typically across one or two documents in a set of one to ten?

You don't have a set of documents. You just have the one document...

It's almost like you guys are deliberately ignoring all the lawyers with actual transactional experience to create hypothetical problems that don't exist in the real world so you can suggest version control as a solution.

No I realize the circumstances are different (like fewer documents in a process) but some times you don’t notice how your tools actually change your processes.

E.g: if you are in a process when there would naturally be two separate documents it may be that you are creating a single document becuse with the single document the change process works with the tooling.

Or is there something else inherent to the process that says a process/negotiation always includes one document?

I’m not sold on version control either - especially as structured text like word processors have such poor support - but it seems even change tracking in word documents should be able to track and show the differences in a set of documents such as a directory. I’m not arguing those tracking 3 word docs should use git.

Git has all those things, except yes it is a different tool.

Track changes in Word works pretty well for turns of a contract. What features do you think are provided by "version control" that aren't handled by Track Changes for contracts?

The ability to keep track of many, potentially thousands of individual changes and assign labels to significant versions. Track Changes is basically like Git if every file write triggered an automatic commit with no commit message and anyone could rewrite history at any time. SharePoint major versions are better but they’re not free, standard, portable or popular.

If you have a legal agreement with many thousands of changes at any point, someone is getting fired for royally fucking up...

Legal agreements are basically a war over each party's choice of standardized language followed by battles over customized terms.

That may be accurate for commercial contracts but lawyers write lots of other documents too, some of which are subject to thousands of edits. Think about judicial opinions, advices, written arguments, continuously updated legal commentary services, public reports, or indeed statutes. These documents are often carefully drafted over months and complex manual protocols get set up to manage it, due to the limitations of Track Changes and the lack of familiarity with the tools used by software engineers.

I agree. Most legal docs could probably be better captured in markdown or asciidoc rather than MS Word (and all the bloat it brings with it).

That’s the entire point of pull requests though? Or am I missing something

US Federal law works just like this but with an awful manual process that is screaming for a VCS:

- Laws are passed by Congress and signed by the President.

- The actual formal text of the law is printed in the “US Statues at Large”. Think of this like a commit log— it’s written as a series of add/modify/remove operations to the United States Code (USC), which represents the “master” branch of the repo; our current laws.

- Sometimes the add/edit/remove operations have implications in many parts of the code. There is a manually-intensive process that actually determines which parts of the USC must be modified and how. This is like code review on a PR.

- Periodically, after many laws are passed and many mods to the USC, it is “republished” (tag/release).

Why we couldn’t do this with our laws is beyond me. Institutional inertia I suppose.

Exactly parliamentary procedure was using content control well before computers where invented read Citrine or Roberts Rules.

But Executive's do get up to "naughty shit!" as a Uk Party Whip said to me once in a bar.

Most existing tools are written by coders for coders; they have diff engines and UIs built for plain-text source code, not human-readable rich text.

Word's "track changes" feature is good enough that an MVP for such a VCS product would need to have a very good UI.

(Source: talking about version control with a lawyer in the family.)

I use MS Office regularly and I would describe its interface as adequate for general use and infuriating for reading/writing formal documents. If that's the competition, I can't imagine it would be that expensive to develop an alternative (at least, not compared to what the US government current spends).

Why are legal documents recorded in a format that requires expensive software to access?

Why are LaTeX, Markdown, or HTML not sufficient formats? What makes plaintext not "human-readable"? I don't think anyone has trouble reading/writing their Facebook and Twitter posts in plaintext.

Why can't our government afford to develop a lawmaker-specific format and an editor (or plugin for an existing editor) to make it easy for lawmakers to work with?

Why can't our government afford to fund the creation of a VCS solution with a lawmaker-friendly interface and a public server to host the repository on?

Why can't all of our legal documents at least be hosted on a public server in their current state?

I'm guessing the answer to all of these is "because the public doesn't care enough, so it doesn't help anyone get re-elected and, therefore, there is no available funding". I have a hard enough time getting engineers to understand the value of good VCS, much less an average US citizen.

> Why are legal documents recorded in a format that requires expensive software to access?

Because lawyers can afford it, and don't really feel like expending effort evaluating software alternatives instead of just doing their work. And because of legacy/network effects. And because no one has pitched an alternative right for that audience.

> Because lawyers can afford it

Lawyers can afford free software too.

There's a reason that there is an “and” followed by a bunch of other things after the bit you quoted.

I have nothing to say about those points. I don't know enough to support or reject them.

It's clear what was meant was "cost is no object, so it's not an issue" - law firms probably pay more per-employee for things like travel expenses or coffee each year than for MS Office licenses.

I have seen that MS Office suite has become a hammer used to drive many non-nails in various businesses, and would like to see people using more open standards. But I totally understand that for many use cases it's good enough and that people consider the cost to be not particularly significant

edit: misplaced reply, moved to parent (too late to delete)

Ehhh ok? That’s kinda what I said

An individual business license of MS office 365 costs about 10 dollars a month per user. So even at minimum wage fully loaded costs this is approximately an hour. It's more like a minute or two for a lawyer.

Do you think having access to a tool with the least communication friction saves you 2 minutes/month of your lawyers time? 30 min of your junior marketing person? This isn't a hard call to make usually.

I'm more concerned about the people who are subject to the laws being written and (imo) deserve to be able to read them for free.

As for lawyers, just because they can afford to use expensive software doesn't mean they should. I can afford to write software in Word, but I don't plan to try that any time soon.

Also, I think people seriously overstate how "easy" it is to use Word. I have spent litteral days of my life in classes that taught me how to use Word. I have spent hours relearning MS Office interfaces as they've changed over the years. I'm pretty sure I picked up GitHub-flavored Markdown in less than 15 minutes.

Your first point is valid but quite separable, I think access is an important issue.

My point about the cost is that the network effects of the tool here are more important than the tool itself. You might be able to have a better local workflow using other tools, but if everyone you collaborate/work with doesn't use them then the cost of communication is far higher than any savings.

Realistically, legal work isn't much like coding. Although lawyers do spend time editing documents that isn't where the real time is. For that reason I'm not convinced that changing to a putative VCS workflow would have enough efficiency impact to pay for the training etc. except on a very long term. This sort of thing makes it very difficult to win out against network effects.

This is much the same reason that excel is used for a lot of things where better tools exist. The combination of network effects and having better things to do than learn a new approach and toolchain are hard to shift.

> Why are legal documents recorded in a format that requires expensive software to access?

Because the cost of the software is trivial compared to the cost of incompatibility or friction in communication.

Not for the citizens who just want to read the laws they're expected to follow.

Whose final form is probably PDF anyway. Even if it were .docx, there are lots of free softwares that can read or translate those.

So your real problem here is with the access to said laws, which is not a software problem.

Plain text wouldn't allow for annotations, TOC, references, etc. These get ignored more often than not but they're still requirements and some do use them properly. Something like latex would be better, but apparently it's too much to expect these highly educated lawyers to learn some basic markup.

I'd bet a tool like lyx (https://www.lyx.org/Screenshots) would go along way to being a better solution. It's a great document writer (as opposed to a word processor) and apparently has some VCS support (although I haven't tried this) and diff viewing and is a lot more reliable for annotations and all that stuff than word.

I've done some legal automation work before, it would have been so much easier (and get better results) to have a plaintext format we could manipulate with shell scripts than working with docx and word.

    - But doesn't plain text suck for difs?
    + But doesn't plain text suck for diffs?

    - Especially when you have a really long, multi-line
    - paragraph that has bmore than one change? And if we
    - relied on word wrap, then the scope of change would
    - be the paragraph and all hope is lost. At least 
    - this way we might eventually regain some 
    + Especially when you have an exceptionally long,
    + multi-line paragraph that has more than one change?
    + But if we relied on word wrap, then the scope of
    + change would be the paragraph and all hope is lost.
    + At least this way we might eventually regain some
      equivalency by chance and it's clear that nothing
      after that point has changed.
Git is great, but it's designed for code. Legal documents are probably structured more like code than any other prose with clear identified chunks and frequently breaking out into lists, but it's not the same thing.

(For clarity, I think probably a sentence-by-sentence diff would work well. But then it's not plain text; you're relying on some processor to collect sentences into paragraphs.)

Don't use plaintext, use LaTeX. Since paragraphs are separated by an empty line, you can have each sentence on a separate in a paragraph on a separate line and have it still formatted as a paragraph in the final document. This allows for better diffs. Here is an example:


> Don't use plaintext, use LaTeX

Markdown or Asciidoc has the same benefit as far as paragraphs.

Markdown doesn't address table of contents or references which were mentioned above.

Asciidoc does, and there are TOC tools for markdown, though they are add-ons to markdown processors.

The diff algorithm/display is orthogonal to the data format; for example, I use the --color-words option to the git tools to use a word-oriented diff everywhere. I've even seen plugins floating around online for visual image diffs in git!

But again, all those tools are built for developers, and especially the ones used by git for internal purposes like for conflict resolution make some strong assumptions that don't hold for prose.

> Why legal professionals are not using version control goddamit?!

For a start they’re using Word, which doesn’t work well with version control.

And asking most people to stop using MS Office is like asking them to go and live on the Moon, they look at you like you’re some kind of crazy person.

Word documents work well in version control. In case you're not aware, you can store word documents and do a diff between any 2 versions over git/svn on windows, it opens the diff view in Word.

You can store and diff them, but not merge them.

It's basically the same as using Word's own history features.

Wow, this is going to be very helpful for me. I had no idea. Thanks! So if I install git on Windows and do `git diff MyWordDoc.docx` in the command prompt it'll open up Word?

> You can also use the Git attributes functionality to effectively diff binary files. You do this by telling Git how to convert your binary data to a text format that can be compared via the normal diff.

First, you’ll use this technique to solve one of the most annoying problems known to humanity: version-controlling Microsoft Word documents. Everyone knows that Word is the most horrific editor around, but oddly, everyone still uses it.

...Now Git knows that if it tries to do a diff between two snapshots, and any of the files end in .docx, it should run those files through the “word” filter, which is defined as the docx2txt program. This effectively makes nice text-based versions of your Word files before attempting to diff them.


I am using Tortoise. Not sure about the command line.

From direct knowledge of working with a State court system, I can tell you that WordPerfect is still very much alive and well!

Git is awesome.

But it's terminology is really confusing.

But yeah some layer of abstraction would be handy.

I always think of introducing it to my wife when she looses a document or something but god damn the terminology.

And if there's one thing that will deter lawyers, it's confusing terminology.

There are luddites and then there is the legal community.

I think we can get them on board. Need to rebrand some things with latin terminology, that's all. Let them file a petitio tracto instead of making a pull request.

I think svn is a better way of thinking when working with documents, the fact that the timeline is contiguous too helps

you can easily have a contiguous git timeline if you want to

is a376f1 older or newer than 89fa2b?

The lack of continuous versioning is a problem for most document like workflows.

The commit message doesn't encode the timeline in neither git nor svn, and no-one complains.

So why do you expect the git hash to encode the timeline?

Git encodes the timeline in the parent/child relationship of commits (and/or the date stamps). Trying to look for the timeline information in the hashes is going to be futile, that's not where it's supposed to be found.

For documents that get send back and forth via email, amongst more than 2 participants, git's DAG is actually a better representation than a linear timeline.

(But yes, if you don't like that, you can set up git to reject commits with more than one parent to enforce a linear history.)

My advice to people who want history-tracking but don't know how to use a version-control system is: use Dropbox or OneDrive (I think Google Drive has something similar).

You get 30 days of history for every file in Dropbox (120 days for Business users). Earlier you could pay a bit extra to get a full year of history -- but that feature, called Extended Version History, is no longer available.

OneDrive unfortunately offers only 30 days, I believe Google Drive is similar.

Wonder if one can create a new repo and commit the revisions with original Authors' names and historical date.

That would make a lot of sense to folks who are unfamiliar with hit.... also me.

It's off topic but I seriously want Apple to use a VCS for their license agreements.

Every once in a while, they update Developer License Agreement or Paid Application Agreement (updated over 100 times so far), and every time they just show a wall of text. I save it as a file and take a diff to the previous version.

They must be using a VCS internally but they make us repeat the same effort again and again. It's stupid.

Maybe that's a start? Techies would find it easier to promote the use of proper VCS for legal documents if their products used them for their ToS, and exposed them to users, e.g. in form of diffs. There's even a precedent - Wikipedia uses such interface for all their pages, including their ToS - see https://foundation.wikimedia.org/w/index.php?title=Terms_of_....

Beyond technical hurdles that could be solved with a set of FLOSS components and plugins to popular CMSes, I don't see any reason not to do this if one runs a honest company.

The agreement in MS Word

Consider yourself lucky. There are still legions of legal documents in WordPerfect.

Nothing like receiving "red-lined" documents with revisions in the comments to make you want to scamper back to git-land.

Facepunch Studios Ltd (game dev studio) have their legal docs on GitHub: https://github.com/Facepunch/Legal

I agree, another problem with Word (and similar products) is it’s bloat in terms of formatting meta-data but also in glyph code-points. I often get strangely coded white-spaces or strangely coded non-ascii characters when using Word et. al. Legal documents should have limited formatting and strict encoded glyphs therefore a UTF-8 + git + markdown solution would be preferable over using Word. You can create easy to use WYSIWYG software that makes it as easy, or easier, than Word given that Word changes it UI layout every few years

Well your post here has non-ascii characters. But perhaps you wrote it in in Word and copy-pasted it into Internet Explorer. I've seen that approach recommended to avoid data loss. It's not entirely clear what your objection is tho, since you recommend permitting UTF-8 which allows you to represent many many more non-ascii characters than ascii characters.

Are there any startups building legal tools with nice UX, but git as a back end?

We considered it. We even built some prototypes and showed it to various stakeholders. The response we got back was universal - "We want everything to feel like we are in MS Word."

This is so true! Developers often don’t realize how much MS Word can do and what its users think about the rest of the world.

B.t.w since it’s about the US Constitution it is customary for me to share a link to its book form on the web:


Legal professionals don’t want version control because they don’t want their mistakes to be visible to anyone else.

Google Docs would actually be a good fit for this. You can suggest edits, comment, see a version history, ...

In Word, too. Without selling your soul the devil: Microsoft merely demands a fee for the product.

cognitive load

They same applies to software professionals who just would like "to code". Yet, the leverage of distributed version control proves to be exponential in the end.

It really doesn't.

In software, you need to track versions because you keep everything in multiple files, and you're making changes to multiple files, and you can have regressions with each new version.

In a negotiated legal document, you have just the one authoritative version: the offer you've sent to the other party (or the counter-offer they've sent back to you). For lawyers, this takes the form of edits to the document as highlighted by the Track Changes feature. (Prior versions are basically irrelevant except for historical interest.) And even then, the document going back and forth isn't even the executed (aka "production") document, it's just the development version. Once the document is executed, the development versions get deleted because the executed document is the only truth legally and so prior versions absolutely do not matter.

One can equally think of the entire code base as a single document, and of the release version as an executed document. In the long run the non-release repository states don't matter that much either, they're just helpful for anyone willing to gain an insight on why the things work the way they do.

One can equally think of the entire code base as a single document

No, you literally can't. They're separate files. A legal agreement is just one document. It makes a world of difference for version tracking.

Also, software has versions. If you have an issue, you can just rollback to a working version. Legal agreements don't have multiple working versions. They just have the one, and you don't get to update it, because if you change it, you have a different agreement that supersedes all old copies, which are now longer worth the paper they're printed or or the bytes that store them.

Sure, you could have needlessly more complicated version tracking for legal documents. But Track Changes in Word works fine, because the legal field doesn't need anything more complicated.

I literally can think of the entire code base as a single document. It happens to be multiple records in a database, but that's not intrinsic to it.

In the same way, i can literally think of my legal documents as a single document (say, a visa application) with multiple files (say, a petition, a copy of my wedding certificate and a reference from a friend). [Ironically, this language is precisely the reverse of what you would say with the printed copies.]

When they're printed out you can't tell what the boundaries are. Don't get confused by the implementation and the abstract concepts. If there's a distinction that doesn't work well, you can change it. Maybe version 2035 of Word stores every paragraph in a separate file inside a zip archive. There's no reason Generic Version Control System 2038 couldn't be written to peak inside those archives.

A legal agreement is one document, sure. But a large scale legal operation like a sale of a company must consist of thousands of documents that are changing in concert, right? Wouldn't that be a case for a more comprehensive and consistent change control process?

No, the sale of a company is governed by the one sale agreement.

manifest as one singular physical "file" with nothing incorporated by reference? Interesting.

That is correct. Nothing can be incorporated by reference. The closest you can get are attachments which must be incorporated by the time the document is executed.

This. Other versions of a proposed contract floating around a deal do more harm than good.

Ideally, settled issues should remain settled as remaining outstanding issues are resolved during the deal-making process.

But, this is a western tradition/convention, Asian deal-makers seem to be more than happy to look back and re-open settled issues, driving American lawyers insane.

If the legal field doesn’t need anything more complicated, I suppose you think this Git repo is a pointless novelty, not something that would actually be really useful if it were available and authoritative for all statutes?

We're talking about two very different things: a single legal agreement vs a database of laws.

Something like this already exists in multiple forms because it is very useful. It's so useful that the owners of those sites can charge lawyers a lot of money for access... Hundreds of $ per month.

They wouldn’t be able to charge so much if the laws were published using a machine-readable version control system. Citizens should expect this from their legislature; lawyers shouldn’t be allowed to paywall historical information about public laws. This Git repo is a good illustration of how easily the legislature could solve an important legal problem with free software engineering tools that facilitate reuse and permissionless innovation, rather than leaving companies to solve it with crappy paywalled web apps that contractually prohibit reuse of their content.

> In the long run the non-release repository states don't matter that much either

That's not true. Many a times I needed to comb through old commits for debugging purposes.

Also, with multi-branch development, you often have many non-release branches that are relevant at a specific point in time.

This is super cool. I wonder if it could be taken a step further?

Because to me, the interesting parts are not the final versions, but would be in seeing the version history of the constituion as it was drafted and language was changed and rechanged, even with commit notes taken from records of the constitutional convention.

For example, the currently topical impeachment language went through revisions on "be removable on impeachment and conviction of": [1]

> "malpractice or neglect of duty." -- two North Carolina members

> "treason, bribery, or corruption." -- five-member drafting committee

> "treason, bribery, or maladministration." -- George Mason

> "high crimes and misdemeanors against the United States." -- delegates

> "high crimes and misdemeanors." -- final version

It really would be fascinating to watch the constitution evolve in "real time" across all edits. I don't know if anyone's done something like that before. Obviously it would be a tremendous amount of scholarly work to put together.

[1] https://www.latimes.com/archives/la-xpm-1998-dec-19-mn-55593...

This is actually something I've played around with before. Unfortunately I haven't been able to find the free time to finish the project.


You can see some draft versions here


I think this should be reviewer comments on the pull request or issue that drove the change. It's not nicely representable in git, but it is on GitHub.

The commit messages would eventually all be WIP or somedoc_version_xx.

The fact that GitHub marks the initial commits as 2016, and says 48 years ago when you click on one, even though it clearly says 1787 in the commit message makes me sad.

All these 6 figure salaries and we still can't write code that handles dates.

How does someone look at a date and think it should only have two digits? How's it possible that someone could look at a system that only stores enough time for 68 years in future and think that's fine? Why is so much code written with the assumption that a year is a four digit number?

The passage of time is guaranteed and yet programmers are somehow constantly surprised that it happens. The world is 14 billion years old and will exist for much much longer. Someone might need to write code dealing with any of those time periods, why do we make them expend mental effort on (what should be) such a reasonable, trivial task?

We have the bits to spare. It's a strange form of collective procrastination.

Github is primarily Rails/MySQL (or was last time I paid attention to any of their blogs), I'm guessing they're storing dates as a TIMESTAMP and not a DATETIME (4 bytes vs 8 bytes).

GitHub's BigQuery public data set has 234,759,841 unique commits, and it appears there's 2 dates per commit (author and committer dates). So an extra ~1.8GB per master/shard group.

Entirely doable but I have no idea what their scale actually is or how that translates to network throughput or anything else really.

I guess people have forgotten about the year 2k problem, where nuclear power-plants where to explode, nuclear missiles was to fire, the world would end, because the year would be reset from 99 to 00. A lot of resources was put to fix it. And when the millennium finally changed, nothing really happened.

That said, I cringe every time I see a date problem presented in a work interview or challenge. Like how to calculate the first Monday in a set year. Because I have done exactly that, professionally. And as the years went by - edge case over edge case showed up, making me rewrite the formula. So dates are non-trivial. You probably know there are leap years, but did you also know there are leap seconds ? So beware of that when you implement that time critical database redundancy and replication system.

> A lot of resources was put to fix it. And when the millennium finally changed, nothing really happened.

Don't you think these two things might be related?

Also: https://www.theregister.co.uk/2001/09/14/downs_syndrome_scre...

100 year olds are probably still receiving baby products, etc

Datetimes are easily in the top ten most annoying parts of programming.

https://stackoverflow.com/questions/21787872/is-it-possible-... seems to indicate it should be possible now.

In particular, https://stackoverflow.com/a/24977895 says:

”As I mentioned in 2017, in "Use future date while making git commits", Git has started to adopt a different and dedicated timestamp_t type.

As illustrated in Legilibre/Archeo-Lex issue 47:

Dates are now using the timestamp_t type, defined as typedef uintmax_t timestamp_t;, in place of unsigned long type, in order to fix some issues on 32bits platforms... and Windows 64 bits ^^.

The project archeo-lex.fr (which depends on older dates) is using git hash-object, combined with the Git repo viewer Legilibre/Archeo-Lex-web.

This is now (Feb. 2019) done, as commented by Seb35“

(https://archeo-lex.fr/codes has a history of French law)

It's still unsigned, so I don't see how it helps with pre-1970 dates.

> such a reasonable, trivial task?

Tom Scott has a pretty good video explaining exactly why writing code about time is not trivial:

The Problem with Time & Timezones - Computerphile


Git does not store commit dates pre 1971. The commit message has the correct date because it is just text.

Something about your comment rubs me the wrong way, and I think it’s a kind of toxic idealism that doesn’t acknowledge how software isn’t a mathematical object but situated in the real world.

You realize 48 years ago is the Unix epoch? Circumventing this problem to admit commits that were made before 1970, which clearly has no real world use case, is over engineering at its worst. Similarly, with designing a system to last longer than 68 years. The number of tech companies that have lasted more than 68 years can be counted on one hand.

And then you wonder why our technology is a pile of garbage built on top of a steaming pile of half-composted garbage, always breaking, and why a good chunk of software jobs consist mostly or solely of keeping it from falling apart. What's toxic is being penny-wise, pound-foolish repeatedly, at the scale of the industry.

It would be overkill to move from 32 bits of Unix timestamps to 64 bit signed ints just for this application.

But it might be a good idea in general, and then it would solve this issue as a side effect.

Sure, but that’s a problem way down the stack, a problem for language designers, not application developers.

Well, they are also getting six figure salaries.

But in any case, eg Python supports dates before 1970 just fine. It was a conscious decision by the application developers of git to restrict themselves to whatever C has to offer.

The word 'toxic' is toxic.

> The number of tech companies that have lasted more than 68 years can be counted on one hand.

IBM, Siemens, Texas Instruments, that's it of the top of my head. Anyone else?

Wasn’t the epoch 48 years ago? Wait, the epoch was 49 years ago, so that isn’t it.

The best part of this repository is that the authors and the commit dates reflect the true date of the event:

  James Ashley authored and JesseKPhillips committed on Dec 6, 1986

  8th Congress authored and JesseKPhillips committed on Jun 15, 1980

Honestly it seems like one of the worst parts, that the dates are limited by UNIX timestamps and aren't flexible enough to store the dates from centuries ago.

they do when you use signed 64bit timestamps (or 128bit ones if you need the nanos)

Apparently it's technically possible in Git as of a year or two ago, with some conversion bugs probably still lurking, but Github/Gitlab still don't support it. And the frontend tools like "git commit" don't support it. The project in this answer is using git hash-object to create the commit from raw bytes. https://stackoverflow.com/questions/21787872/is-it-possible-...

Unfortunately git rejects dates before 1970, at least when I set them using GIT_AUTHOR_DATE

This is especially troublesome when you need to cover up those 50 years of procrastination on a project.

You say 'procrastination' I say 'The means IS the end, yo!'.

No the dates are wrong, and the conversation used is stupid.

If you're curious of the origin of each word, a word-by-word "git blame", I just made a visualization of that [1]. For example, "We the people" comes from the draft by Morris.

Also, somebody else did the work a few years ago [2], would be interesting to compare them.

[1]: https://dam.io/word-blame-US-constitution/word-blame-by-comm...

[2]: https://github.com/anthonygarvan/theconstitution

So much legislation consists of "add the following text to USC 1.23: 'blah blah blah'" that I'm surprised there isn't something like this for pending bills.

It would be awesome if congress had something similar

I had this realization like four years ago, and bought `gitvernment.org` precisely to do this...one day.

I also had a similar idea for a project that tracked changes so citizens could see exactly which representative changed a bill. The OpenGovFoundation built Madison[0] to enable the public to comment on bills, but that project has been shuttered.

I still think there is some merit to the idea. The challenge, however, is to convince legislative bodies to use such a system.

[0] https://mymadison.io

Agreed, though I think to sharpen the analogy, the United States Code (U.S.C.) would be the "code" in the repository and pending legislation would be pull requests.

There's actually a group working on this exact thing at the federal level -- https://congressionaldata.org/bulk-data-task-force-reports-m...

It's a pretty complex task, especially at the state level where there often aren't consistent plaintext publishings, or in some cases even digital versions of the effected code/regulations.

> It's a pretty complex task, especially at the state level where there often aren't consistent plaintext publishings, or in some cases even digital versions of the effected code/regulations.

There are pretty much always digital versions, though they may not be freely available to the public or licenses in a way which would permit using them as a basis. (Lexis/Nexis has them, with change history, links to relevant case law, etc., etc., etc.)

I wonder, how are all the "change this text in this other paragraph" laws carried out then? Wouldn't at least the courts need a "current" version of all laws with all modifications applied?

(IANAL but I do work with digital legal data) — depends on the jurisdiction.

Generally the bills that change legal codes are timed to take effect all in the same near-future date, and so a new “printing” is issued. How often this happens varies, but can be as little as once a year.

In the cases where a law is immediately effected, judges and lawyers are smart and read the news, and services like lexis have alerting. The main legal providers will also “patch” things in themselves in advance of printings, and do change sets and redlines by hand.

Oftentimes bills instruct regulatory agencies to do things, which is a process that includes lots of published notice.

There is in a way. One of the selling points of LexisNexis’ law products are these sorts of “diff” views of the law

In my experience these services tend to have terrible UX, they’re not reliable or comprehensive, and they require human maintenance so there are usually huge subscription fees that scale with the number of statutes you have access to. Legislatures really should publish law in a machine readable format so that historical navigation and compilation can be fully automated including by members of the public. The human-readable statues can still be compiled artists; it’s a much easier and lower risk kind of modernisation than, say, converting paper forms into web apps.

ugh, “statutes can still be compiled artifacts”

Our nonprofit, Open Law Library, works with governments to do exactly this. For example, the DC Council uses our software to codify and publish their laws in xml and html on github: https://github.com/dccouncil/dc-law-xml. If you're interested in getting your government's laws published using git in human- and computer-readable formats, feel free to reach out to me at dgreisen [at] openlawlib [dot] org.

https://www.legislation.gov.uk/ tracks UK legislation -- you can see "as enacted" and "as amended". They even go through and note where new legislation has an impact on existing legislation without changing the text!

Only for already passed legislation, rather than pending, though.

Always amazes me that so many people think the constitution grants people the rights.

The constitution grants the govt rights.

The people have all the rights not expressly forbidden by law.

Law enforcement seriously lags in this as well

What really matters is what rights the people with the guns are willing to give you...

Which is the reason the 2nd amendment was written. The founders knew politics 101. Violence is required.

Well, it was. Now, not so much.

I assume you're responding to the GP's "Violence is required." Perhaps actual violence is not required now, but the threat of violence is still just as real and necessary.

Nope and nope. The threat of violence from the people is not real in the US any longer, nor is it necessary.

Interesting, if you think this is true, speed 5mph over the limit and refuse to follow directions from the officer. eg dont pull over

Let me know how the violence thing doesn't happen in a victimless crime.

? I'm not going to shoot a cop so I can go 5mph over the speed limit if that's what you're saying...

I'm trying to say that the threat of violence from the people isn't there anymore, for many reasons, one of which is the huge disparity between the military and consumer availability.

Sorry, I misread.

I disagree, recently one event has shown the violence is just under the surface.


Large groups of people went to that mans ranch just to threaten the govt.

The government was not threatened in any meaningful way.

You're just going to disagree regardless though, aren't you?

JesseKPhillips was my favourite founding father. He was a genius for adding whitespace and readme.

I kinda wish they'd rebase the repository to put that stuff in so git blame would still give you the original authors.

> Add whitespace for better diffs

For those confused..

There is a commit saying this

Are the amendments really meant to be inserted at unspecified points in the main text? I never thought of them like this, and it doesn't always work well here.

Most glaringly, there is the part in https://github.com/JesseKPhillips/USA-Constitution/commit/7f... in the article talking about the President's powers, saying "The President shall have Power to [...] He shall from time to time [...]" and the diff inserts "No soldier shall, in time of peace be quartered in any house, without the consent of the owner, nor in time of war, but in a manner to be prescribed by law." between these sentences.

This doesn't work at all, not only because this amendment has nothing to do with the President's powers, but especially because the "He" starting the next sentence has nothing more to refer to.

Of course this would be a lot more boring if the amendments were just tucked on at the end, but I'm afraid reality is just boring here.

> Are the amendments really meant to be inserted at unspecified points in the main text?

The US constitution is unusual in leaving the main text unchanged and appending amendments at the end. Most countries don't do that.

For example, Australia's constitution [1] has been amended several times since it was first adopted in 1900. But, it is amended by changing the text of existing sections, inserting new sections or subsections (examples: section 105A, subsection 51(xxiiiA)), and deleting entire sections (example: section 127).

[1] https://www.aph.gov.au/About_Parliament/Senate/Powers_practi...

Most notably the 21st Amendment repealed the 18th, but both texts are still present in the amendments section of the US Constitution.

The Bill of Rights is more additional than modification.

The president is the commander an chief of the military, it seems reasonable he would not be allowed to quarter his troops in peoples homes.

Take a look at this one


Now do all pending legislation in a publicly visible, anonymous, read-only repo.

Branches and commits are done under accounts tied to elected officials (though clearly their staffs mash the keys).

We could have AI doing actual work of monitoring WHAT THE WHAT is going on.

Hence the unlikelihood of this ever happening.

Plus the reality that legislation is mostly a requirements document anymore, with the real work occurring in the Executive in the form of regulation concocted by unelected bureaucrats.

Most of the constitution is missing here. To properly compile the constitution, the dependencies, such as supreme court rulings defining terms, must be included. I don't see those deps modeled in this repo.

Case law interpreting the Constitution is part of constitutional law, but is not part of the Constitution itself.

You can thank the British for that.

You should thank them everyday. Common law is the secret power of a good legal system (Speaking as an American lawyer, of course).

In non-common law systems, extra-judicial experts (e.g., law professors) have too much weight in interpreting laws.

If a legal hair is to be split, a common law court should do it. And, the court's holding should have precedence until a democratic legislature with jurisdiction over the issue says otherwise.

In practice, Common Law jurisdictions and Civil Law Jurisdictions are not so different these days. (Democratic) legislation is an intruder to Common Law. And on the other hand, Civil Law systems give some at least informal weight to precedence.

I don't quibble with your description of the idealized versions.

See also http://www.daviddfriedman.com/Legal%20Systems/LegalSystemsCo... for some alternative systems of law.

Fully Codified Common Law would be the best of both.

What do you mean by that?

Do you mean https://en.wikipedia.org/wik/Codification_(law) or writing law in computer code, or something else?

If the former: Codification of Common Law is an ongoing process, and I guess will always be a bit behind the latest court rulings. (And that's by design.)

The Constitution uses a convention-over-configuration approach in almost all respects. Quite a lot of the actual effect are dependent on the build environment. Attempting to execute a source-identical Constitution outside of a Common Law context is not guaranteed to produce the same results, and is probably outright undefined behavior.

git submodule update --recursive --remote

>Keep in mind this is not a formal platform to establish Constitutional changes.

Yes, I loved that comment!

Someone submit a pull request to abolish the Senate, reform the House into a mixed-member proportional parliamentary system, mandate all state legislatures do the same, and replace the Electoral College with a ranked choice popular vote.

One of the worst things about growing up in America is being inundated with propaganda about how we should revere the founding fathers only to grow up and realize that much-revered Constitution is riddled with bugs and badly needs refactoring to accord with modern best practices.

The Senate was a negotiated compromise to get sovereign states to agree to join a federation. Obviously it gives some states more power — that’s the entire reason they agreed to it.

How do you expect to get them to agree to change it? I doubt people in Alaska or Montana think the Senate is a “bug”.

If you don’t think the structure of the federation works for your state, you can try to get your state to secede. That’s more logical, and more likely to succeed, than convincing others to vote against their own interest out of a sense of “fairness”.

>How do you expect to get them to agree to change it?

Believe me, I ask myself this question weekly. I don't know how it will happen, but the federation will not thrive without that change. In fact I would argue it is unstable currently.

>I doubt people in Alaska or Montana think the Senate is a “bug”.

I doubt people in Wyoming or Vermont consider the Senate to be fairly represent the federation. But you will rarely catch a politician admitting that. Oppressors will always opress, and that isn't my problem. It's theirs. The oppressed will always resist. Everything evens out in the end.

You cannot claim that people in NY State and California are oppressed, since their revealed preferences show them wanting to remain part of the federation. If people were unhappy with the current structure, you would see large and vibrant independence movements, whereas in actual fact those movements are a tiny fringe.

Despite its many problems, the US is one of the most prosperous, peaceful, and stable regions in the history of the world.

Without the Senate, the US simply wouldn’t exist (the smaller states wouldn’t have agreed to it), and North America would by now be a few dozen independent, competing, conflicting countries. It’s hard to imagine how that would be more stable than the current situation.

By the way, larger groups agreeing to give disproportionate power to smaller groups, in order to keep their union or federation together, happens all the time. Examples off the top of my head include Canada (where Quebec is massively overrepresented in the federal parliament), the UK (where England is the only constituent entity without its own legislature), Bosnia (whose three main ethnic groups split the Presidency equally despite having 50%/30%/15% of the population), and I’m sure there are many other examples...

The Bosnian example is particularly forceful, as this superficially “unfair” deal ended the bloodiest war in European history since WW2, in which more than 100,000 people died.

>their revealed preferences show them wanting to remain part of the federation

All of them? 20% of California is still 4.5 million people.

>America would by now be a few dozen independent, competing, conflicting countries

1. that is not proven. alternatives could have been chosen. 2. just because the Senate made sense among several mostly equal population states does not mean it makes sense today.

>Canada (where Quebec is massively overrepresented in the federal parliament)

And they have their own party. You cannot honestly believe that is an ideal situation.

>UK (where England is the only constituent entity without its own legislature)

The Scottish National Party exists, as do unionist and separatist terrorists in Northern Ireland.

>Bosnia (whose three main ethnic groups split the Presidency equally despite having 50%/30%/15% of the population)

Just because that makes sense for a young democracy does not mean it makes sense in California, a state with high cultural value given to equal voice and representation.

>this superficially “unfair” deal ended the bloodiest war in European history since WW2

Are you threatening war if California asserts its natural rights to self-governance? Unionization under threat of violence is not unionization. It is slavery.

What were the relative population differences back then between the big and small states?

Aren't they much worse now?

One of the worst things about growing up in America is being inundated with propaganda about how we should revere the founding fathers only to grow up and realize that much-revered Constitution is riddled with bugs and badly needs refactoring to accord with modern best practices.

So you're saying we shouldn't revere the Constitution because it's not perfect?

Name anything in the world that's perfect.

Senate prevents true democracy aka mob rule.

Not since 1913 and the 17th amendment. The senate almost made sense when it was the states appointing their senators - now with direct election it is just a grossly biased legislative body where even in the smallest states each senator is meant to represent hundreds of thousands of people that no one can truthfully claim to do.

The USA is the United States of America, not the United Persons of America.

Dual sovereignty is a fundamental part of the American experiment. Though I would have no issue with going back to the old way to pick Senators.

It's interesting to imply that the US Government should (or does) exist to serve the states instead of the people. The first three words in the US Constitution are "We The People".

For the record, I don't disagree with the existence of an upper house (in Australia we somewhat copied the US Senate design, though territories get fewer representatives than states). But its practical purpose is to facilitate less partisan discussion of legislation (and in Australia we only get that benefit because we have a preferential voting system). And it should be noted that many countries have abolished their upper house and become unicameral, and have continued to function just as well as before[1].

[1]: https://en.wikipedia.org/wiki/Unicameralism

The founders knew we should not worship a document written by dead people, hence amendments.

The Senate is more necessary than ever in this age of unconstitutional and almost unlimited exercise of federal power.

The Senate ensures less populous states have an equal vote in our united (federated) states.

The Senate ensures that representatives of as little as 7.42% of the US population can prevent a fascist president from being removed from office.

The number of representatives apportioned for each state does not dictate how they vote on any particular issue. The Senate has existed long before our current president.

The purpose of the Senate is to give all states equal suffrage in the legislature. Article 5 of the constitution states “no State, without its Consent, shall be deprived of its equal Suffrage in the Senate.“

Literally every president since I was born has been fascist in some way or another. The senators aren't the problem here.

> Someone submit a pull request to abolish the Senate

Unfortunately, that's basically the one amendment that the Constitution says is illegal to make. (Ignoring parts of the Constitution that are no longer in force.)

That said, you could first make an amendment making it legal to abolish the Senate, then make a second amendment actually abolishing the Senate. But obviously that may make things a lot harder.

> ranked choice popular vote

Note: I would advise against use of the term "ranked choice voting". This term is often used to mean IRV, effectively implying that IRV is the only way to hold a vote based on ranked choices. It isn't, and it isn't a particularly good voting method either (it's non-monotonic)! I'd suggest naming the specific voting method you mean if you have one in mind, or using another term -- an ordinal voting method, if that's what you mean, or maybe just anything other than FPTP, or maybe just anything satisfying a particular criterion such as being cloneproof...

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact