Note the author is talking about SVN and not git. I haven't used SVN nearly as much as I have git but from what I understand git is likely better suited for combining many different change-sets into many combinations efficiently (according to Git's Wikipedia page it was designed with "non-linearity" in mind), which would seem to mitigate the some of the issues around merge conflicts the OP brings up with respect to SVN.
Lots and lots of lines that don't change anything useful, and then the one change is hard to understand because it's wrapping a bunch of words causing extra changes.
I would recommend un-wrapping lines before commits and then have the presentation app smart enough to not show all of the lines where just a date in a header changed, doing word wrapping on the client side.
Also, without commit information, the changes are hard to wade through. Are there summaries or titles of the bills that can be used in the commit message? Who are the authors that drafted the bill and who are the "committers" that voted for it?
Interesting project. My first thought was: Great, changelogs! But then I started thinking a bit deeper and realized that what I'd love to see happen (on a related note) is a site/repository where you can see not only the legislation but the relevant case law over time.
The perfect match might be my friend Mike's awesome and free open source project: He's improving it all the time and would welcome contribution: http://courtlistener.com
It originated as a graduate school project of his at the UC Berkeley School of Information.
Please note that there is clear distinction between the timeline of the text of an act, its enacting process and its legal content (the legal "meaning").
The text and process timelines (the easiest to create and visualize) are interesting from a journalistic point of view but useless from a legal point of view. You rarely care about the text of an act at a certain point. What you really care about is the state of the law, the sum of all the _effects_ of all _acts_ in a precise moment.
For example it may be interesting to know that on 31st December 2011 an act as been enacted that says that on the 1st of July the new tax code will be amended to read "The taxation level is 10%" instead of the previous "The taxation level is 30%", but what I really want to know is "what is the taxation level today, 25th of May?". Taking only the text into account will not give you the correct answer. What you need is a more complex system that "merges" all the intended actions written in the acts into a (mostly) coherent state of the law.
Versioning the text of the law is not difficult, neither has been difficult since the days of CVS. The hard task is to extract the legal meaning from the text and create time-and-context-bound actions from that.
Funny tidbit - in the first statute in Title I, Chapter 1 (basically top-level definitions - "Words denoting number, gender, and so forth") it was considered important to include among the 10 definitions the following:
'the words "insane" and "insane person" and "lunatic" shall include every idiot, lunatic, insane person, and person non compos mentis;'
Interesting that that was considered to be up there with the legal definitions of "person", "officer", "oath", and "writing".
Fascinating. I love it. Just looking through the comments here and at some of documents, I've learned a few tidbits that I never realized before.
Right below the part you referenced:
> the words "person" and "whoever" include corporations,
> companies, associations, firms, partnerships, societies, and
> joint stock companies, as well as individuals;
So, there's a justification for the Citizens United decision right there. Congress said it was so in the definitions of Title 1, Chapter 1. Yes, I know it's more complicated than that. Still interesting, though. If Congress wants to change the CU implications, they can start by changing that definition right there.
This idea keeps cropping up, and it terrifies me beyond all reason. It's roughly as palatable as a
direct democracy, because in effect, that's what it advocates.
People who deeply care about the law are already able, and willing, to find the information they
need; I'm all for making it easier to manage, and there are worthy projects in that respect, but by
no means do I want ordinary citizens to start dabbling in legislation. The Founding Fathers'
romantic notions notwithstanding, running a government that provides important services to 350
million people isn't a side-job—it's a full-time job, and arguably a career. Heaping disdain on career
politicians is absurd: if they're good at their job, of course they should make a career out of it.
Which brings me to the idea underlying all these posts: that by keeping close tabs on the intricate
details of lawmaking, we can ensure that they will do a good job. I have heard this argument before.
It came from this guy who wasn't really a coder, but wanted to keep close tabs on what the coders
that worked for him did. So he started asking them to log in all their hours, with messages
explaining what they were doing. And he started looking at the commits in the VCS so that he would
see the actual code. Of course, when he didn't like something he would criticize. He would threaten
people with getting fired if they didn't code according to his standards. The coders tried to
explain that sometimes things have to be done in a way that's different from the "common sense" way,
and sometimes he was even reasonable about it, but he still was not a coder, so he had no way of
knowing what was involved.
That's who we're trying to become with projects like these. The most pointy-haired of pointy haired
bosses. Our pointy hair wants points of its own, and all because we try to hold people accountable.
That's a canard.
We want to hold politians accountable because we feel they are irresponsible. But what about our
responsibility? Who hired these irresponsible politicians to steward us? We did. Instead of looking
for ways to make politicians accountable, let's look for ways to make ourselves responsible. I would
start, on an individual basis, by taking ownership of our part of the equation: our vote. Remember:
"Accountability is something that is left when responsibility is subtracted" -- Pasi Sahlberg
Let's find projects that restore our responsibility. From that, the rest will follow.
> This idea keeps cropping up, and it terrifies me beyond all reason.
I can only hope you remain in a constant state of fear. This has nothing to do with direct democracy or democracy in general.
Please keep your pants on. The government already makes this data available. I mean, where do you think he got it?
These are laws. Laws that we, as citizens, are obligated to comply with. Failure to comply with some of these laws lead to jail or financial ruin. And we are utterly ignorant over 99.9% of them. Especially the minute changes that happen year to year.
The idea that one must hire a lawyer just to be made aware of what the law is or is going to be ... is so warped and disgusting, I just don't know what to say.
I applaud any effort that allows a citizen easy access to the laws that govern us and especially their constant flux.
> I would start, on an individual basis, by taking ownership of our part of the equation: our vote.
Who am I supposed to vote for? The guy with the nice hair?
This is exactly the kind of tool that will allow me to quickly determine where to place my vote.
> Who hired these irresponsible politicians to steward us? We did.
Isn't there some value in making people more aware of what these "irresponsible" politicians are doing then, so that we don't keep lazily voting them in again and again?
Yes, those who care about the law are probably already involved. Shouldn't we be trying to get more people to care, though? More people getting the information from the source instead of having their opinions formed for them by the news anchor is a good thing, IMHO.
Very nice idea if there was a REAL democracy, but I doubt this will be suitable to the law-makers, because most of them don't want people to know how this process is, let alone know what laws are being discussed, and even worse, who and what did he/she patch...
What you say is very true. Dunno why people downvote a little truth when it's stated clearly.
If what you said didn't have a strong grain of truth in it, then there would be no need for this project. Our laws would naturally be more straightforward, clearly written, and better organized because they're so important to society.
There are some really strong forces that oppose simple and clear laws. Some of them are more natural results of maintaining a complex system. My feeling is that a lot of the code ugliness is due to the selfish needs of those in power.
In HN terms, the current system is Proprietary. This GitHub project is looking to add some Open Source goodness to the mix. I think it's a really wonderful idea, since the very act of shining light into the enormously daunting spaghetti code that we have to live by every day may help to wake people up to the unneeded obscurities, contradictions, redundancies, anachronisms, wastes, and outright abuses of power.
I placed the 2010 Dutch Pirate Party (Piratenpartij) election program on Github. I try to elad by example: Set the example by the "internet party", then hopefully others copy & paste it.
It would be interesting to fork this and apply a simple and democratic amendment system that allows all followers (or some other defined and growing population like Hacker News) to vote on changes.
I say we use a strict majority to determine the acceptance of these amendments and forge a document that reflects the multitude of views in the hacker news community.
What would be the results, both realistically and idealistically, I wonder?
Would putting each legislator's changes in the open help their ability to compromise on difficult issues or hinder it? Sometimes it's easier to do the hard thing if nobody can be pegged as directly responsible.
That said, I suppose each committee could use pay for a subscription to do their markup "behind closed doors" before the final pull request hehe.
This is a great idea, but won't work because legal text is so obtuse. We need plain-english wording on all this in order for everyone to interact with it.
This is like asking for plain-english compilers. IANA lawyer, and never wish to be one, but it's just a fact that legal process involves particular concepts that are represented by a specialized vocabulary.
Legislators tend to "add features" and "fix bugs" by hacking in special case handling, turning the code into a mass of hard to follow exceptions. I definitely think they do this in part because no one fires the one guy who understands the undocumented spaghetti code. But even if they placed some value on elegance and simplicity they'd still have to use some legal jargon.
I've always wondered if it were preferable to have some more formal legal language to remove ambiguities. Would writing laws or parts of laws as 'programs' help cut out loop holes in say, tax law?
Can you imagine how helpful diffs would be in the legislative process? Instead of combing through hundreds of pages to find new changes, losses, amendments, etc., it would all be right there.
[+] [-] damncabbage|14 years ago|reply
http://news.ycombinator.com/item?id=3968653
[+] [-] newhouseb|14 years ago|reply
[+] [-] there|14 years ago|reply
https://github.com/divegeek/uscode/commit/4b58ecaa6a6ea4b158...
Lots and lots of lines that don't change anything useful, and then the one change is hard to understand because it's wrapping a bunch of words causing extra changes.
I would recommend un-wrapping lines before commits and then have the presentation app smart enough to not show all of the lines where just a date in a header changed, doing word wrapping on the client side.
Also, without commit information, the changes are hard to wade through. Are there summaries or titles of the bills that can be used in the commit message? Who are the authors that drafted the bill and who are the "committers" that voted for it?
[+] [-] daeken|14 years ago|reply
[+] [-] NatW|14 years ago|reply
It originated as a graduate school project of his at the UC Berkeley School of Information.
It would be great if they inter-operated.
[+] [-] thinkcomp|14 years ago|reply
[+] [-] blibble|14 years ago|reply
here's an example of an act that's been modified: http://www.legislation.gov.uk/ukpga/Geo3/41/79?timeline=true
and an example of a bill going through parliament: http://services.parliament.uk/bills/2012-13/financeno4/docum...
[+] [-] gioele|14 years ago|reply
The text and process timelines (the easiest to create and visualize) are interesting from a journalistic point of view but useless from a legal point of view. You rarely care about the text of an act at a certain point. What you really care about is the state of the law, the sum of all the _effects_ of all _acts_ in a precise moment.
For example it may be interesting to know that on 31st December 2011 an act as been enacted that says that on the 1st of July the new tax code will be amended to read "The taxation level is 10%" instead of the previous "The taxation level is 30%", but what I really want to know is "what is the taxation level today, 25th of May?". Taking only the text into account will not give you the correct answer. What you need is a more complex system that "merges" all the intended actions written in the acts into a (mostly) coherent state of the law.
Versioning the text of the law is not difficult, neither has been difficult since the days of CVS. The hard task is to extract the legal meaning from the text and create time-and-context-bound actions from that.
[+] [-] apaprocki|14 years ago|reply
It also seems like they're creating a new website for browsing the U.S. code with more features for viewing amendments and source credits.[2]
[1] http://thomas.loc.gov/cgi-bin/bdquery/D?d112:1:./list/bss/d1...
[2] http://uscodebeta.house.gov/browse.xhtml
[+] [-] lloeki|14 years ago|reply
http://legifrance.gouv.fr/
It started small and iteratively adds more and more features.
I always envisioned some access to this through something like git or Time Machine.
[+] [-] azernik|14 years ago|reply
'the words "insane" and "insane person" and "lunatic" shall include every idiot, lunatic, insane person, and person non compos mentis;'
Interesting that that was considered to be up there with the legal definitions of "person", "officer", "oath", and "writing".
[+] [-] crusso|14 years ago|reply
Right below the part you referenced:
> the words "person" and "whoever" include corporations, > companies, associations, firms, partnerships, societies, and > joint stock companies, as well as individuals;
So, there's a justification for the Citizens United decision right there. Congress said it was so in the definitions of Title 1, Chapter 1. Yes, I know it's more complicated than that. Still interesting, though. If Congress wants to change the CU implications, they can start by changing that definition right there.
[+] [-] saraid216|14 years ago|reply
[+] [-] afthonos|14 years ago|reply
People who deeply care about the law are already able, and willing, to find the information they need; I'm all for making it easier to manage, and there are worthy projects in that respect, but by no means do I want ordinary citizens to start dabbling in legislation. The Founding Fathers' romantic notions notwithstanding, running a government that provides important services to 350 million people isn't a side-job—it's a full-time job, and arguably a career. Heaping disdain on career politicians is absurd: if they're good at their job, of course they should make a career out of it.
Which brings me to the idea underlying all these posts: that by keeping close tabs on the intricate details of lawmaking, we can ensure that they will do a good job. I have heard this argument before. It came from this guy who wasn't really a coder, but wanted to keep close tabs on what the coders that worked for him did. So he started asking them to log in all their hours, with messages explaining what they were doing. And he started looking at the commits in the VCS so that he would see the actual code. Of course, when he didn't like something he would criticize. He would threaten people with getting fired if they didn't code according to his standards. The coders tried to explain that sometimes things have to be done in a way that's different from the "common sense" way, and sometimes he was even reasonable about it, but he still was not a coder, so he had no way of knowing what was involved.
That's who we're trying to become with projects like these. The most pointy-haired of pointy haired bosses. Our pointy hair wants points of its own, and all because we try to hold people accountable. That's a canard.
We want to hold politians accountable because we feel they are irresponsible. But what about our responsibility? Who hired these irresponsible politicians to steward us? We did. Instead of looking for ways to make politicians accountable, let's look for ways to make ourselves responsible. I would start, on an individual basis, by taking ownership of our part of the equation: our vote. Remember:
"Accountability is something that is left when responsibility is subtracted" -- Pasi Sahlberg
Let's find projects that restore our responsibility. From that, the rest will follow.
[+] [-] maratd|14 years ago|reply
I can only hope you remain in a constant state of fear. This has nothing to do with direct democracy or democracy in general.
Please keep your pants on. The government already makes this data available. I mean, where do you think he got it?
These are laws. Laws that we, as citizens, are obligated to comply with. Failure to comply with some of these laws lead to jail or financial ruin. And we are utterly ignorant over 99.9% of them. Especially the minute changes that happen year to year.
The idea that one must hire a lawyer just to be made aware of what the law is or is going to be ... is so warped and disgusting, I just don't know what to say.
I applaud any effort that allows a citizen easy access to the laws that govern us and especially their constant flux.
> I would start, on an individual basis, by taking ownership of our part of the equation: our vote.
Who am I supposed to vote for? The guy with the nice hair?
This is exactly the kind of tool that will allow me to quickly determine where to place my vote.
[+] [-] Aqua_Geek|14 years ago|reply
Isn't there some value in making people more aware of what these "irresponsible" politicians are doing then, so that we don't keep lazily voting them in again and again?
Yes, those who care about the law are probably already involved. Shouldn't we be trying to get more people to care, though? More people getting the information from the source instead of having their opinions formed for them by the news anchor is a good thing, IMHO.
[+] [-] fghh45sdfhr3|14 years ago|reply
Because direct democracy has been such a disaster for Switzerland.
[+] [-] m0skit0|14 years ago|reply
[+] [-] crusso|14 years ago|reply
If what you said didn't have a strong grain of truth in it, then there would be no need for this project. Our laws would naturally be more straightforward, clearly written, and better organized because they're so important to society.
There are some really strong forces that oppose simple and clear laws. Some of them are more natural results of maintaining a complex system. My feeling is that a lot of the code ugliness is due to the selfish needs of those in power.
In HN terms, the current system is Proprietary. This GitHub project is looking to add some Open Source goodness to the mix. I think it's a really wonderful idea, since the very act of shining light into the enormously daunting spaghetti code that we have to live by every day may help to wake people up to the unneeded obscurities, contradictions, redundancies, anachronisms, wastes, and outright abuses of power.
[+] [-] generateui|14 years ago|reply
https://github.com/generateui/VerkiezingsProgrammaPiratenPar...
[+] [-] neilkelty|14 years ago|reply
I fear we'll find out that we really didn't want to know how the sausage is made.
[+] [-] ahorak|14 years ago|reply
I say we use a strict majority to determine the acceptance of these amendments and forge a document that reflects the multitude of views in the hacker news community.
What would be the results, both realistically and idealistically, I wonder?
[+] [-] sailfast|14 years ago|reply
That said, I suppose each committee could use pay for a subscription to do their markup "behind closed doors" before the final pull request hehe.
[+] [-] felipe_csl|14 years ago|reply
[+] [-] malkia|14 years ago|reply
- http://github.com/senate - http://github.com/president
[+] [-] ryancarson|14 years ago|reply
[+] [-] chernevik|14 years ago|reply
Legislators tend to "add features" and "fix bugs" by hacking in special case handling, turning the code into a mass of hard to follow exceptions. I definitely think they do this in part because no one fires the one guy who understands the undocumented spaghetti code. But even if they placed some value on elegance and simplicity they'd still have to use some legal jargon.
[+] [-] miniatureape|14 years ago|reply
[+] [-] zashapiro|14 years ago|reply
Let's open source the law.
[+] [-] rockLAWbster|14 years ago|reply
[deleted]