The site uses cookies that you may not want. Continued use means acceptance. For more information see our privacy policy.

A Third Legislative Branch

Some thoughts about what form a third legislative branch might take.

Obviously creating a third branch would require a constitutional amendment, an unlikely prospect. But it is still something that may be interesting to ponder. The idea of a new legislative body would need to add to the process something different enough to justify the extra costs and potential complexity to the legislative process.

We have two branches already. The House represents states weighted by population while the Senate represents states equally regardless of population. They also have some specific duties under the Constitution, including originating appropriation bills (the House of Representatives) and confirmation of nominees to the executive branch (the Senate). A third branch would likely need some novel representative role and possibly some specific duties beyond mere legislation.

One question immediately arises, in the cases where duties are divided between the existing chambers (such as impeachment, where the House initiates proceedings and the Senate decides them), whether the third branch would receive a portion of the existing roles, some new duties related to those roles, or be kept aside.

The second question that arises is on what basis to have the new body’s representation determined. Should it be state-based, or could the be an opportunity for interstate development (possibly using something like a national parliamentary election to give seats in proportion to a popular vote).

One possible answer to both questions is that a new chamber could be non-legislative, or meta-legislative. That is, the new branch could be responsible for overseeing the rules of the two existing branches. That would dovetail with the notion of a more parliamentary design to the election of the branch. If it were proportionally based on party affiliation, it could garner actual representation of third parties. In rulemaking it might therefore be more fragmentative, allowing the people to have a bit more breathing room.

That is, with two pieces of rock, they may more easily lock into each other and prevent the flow of a fluid. Whereas with three or more pieces, a whole deadlock is less likely.

Or a third branch could allow for a write-but-not-vote scheme. The amending article could require that all originating law from a branch not be voted on by it, but be ratified instead by only the other two branches. Decoupling the act of voting from the act of legislating might prove useful.

And another possible method for composing the new body might be through a lottery, similar to jury duty. Registered voters would be drawn from each state at random, and serve for short terms (say six months). In that case, it would likely be best to have the body only be charged with voting on legislation, rather than drafting it.

Given the state of our nation and the rigidity of our governmental foundation, the body of knowledge we now have that was absent at our nation’s founding, the growth in population, and many other factors, it seems a fool’s bet to believe we could not and should not update the structure of our government to accommodate us.

If you trotted out a 200 year old coach and said, “this should do fine,” I could not help but laugh. Surely we can modernize a bit.

As an aside, an interesting reform to the current House that would not require constitutional change (but would require legislative change) is that of multi-seat districts. For information about that see Fair Vote: 7 November 2013: Monopoly Politics 2014 and the Fair Voting Solution, which includes a map of how such a change would play out if states adopted it (again, contingent upon a repeal of a law blocking multi-seat districts).

Selectively Cleaning Firefox History

Small script for removing some items from Firefox history.

Firefox does a nice job of keeping my history. But not a perfect one: certain history gets in my way, and I didn’t find a good extension to automatically clean it. So I wrote a python3 script that lets me do it manually.

GitHub: Gist: Python 3 script to manually remove some Firefox history items.


# The queries operate only if either:
#  * There are more than 10 visits (for things like my mail, which only bug me
#    once they are trying to clog up my new tab page)
#  * They are > 10 days old (for things like searches; recent searches aren't
#    a big problem; old searches are).

# This should be run only if Firefox is shut down (and I mean really; you
# don't want to corrupt your DB because it was hung!)

# Also, take care about your queries!

import datetime
import sqlite3
import time

PLACES_DB = "/EDITME/path/to/places.sqlite"

conn = sqlite3.connect(PLACES_DB)

cursor = conn.cursor()

select_statement = """select url from moz_places
                      where url like :query and
                      (last_visit_date < :ten_days_ago or
                       visit_count > 10)"""

delete_statement = """delete from moz_places
                      where url like :query and
                      (last_visit_date < :ten_days_ago or
                       visit_count > 10)"""

# The time stored in the DB is in UTC, so we need to be consistent.
old_time_dt = datetime.datetime.utcnow() - datetime.timedelta(days=10)
raw_time = time.mktime(old_time_dt.timetuple())
ten_days_ago = int(raw_time * 1000000)

queries = ["%localhost/roundcube/?%", # Round Cube
           "", # Google Search

# Set to True if you want to preview what would be deleted

    statement = select_statement
    statement = delete_statement

for query in queries:
    variable_bindings = {"query": query, "ten_days_ago": ten_days_ago}
    cursor.execute(statement, variable_bindings)
    if TEST_MODE:
        for row in cursor:

if not TEST_MODE:
    print("Deleted {} rows.".format(conn.total_changes))


To use it you first shut down Firefox. You should make sure it’s really shut down, as you don’t want to try to modify the database while something else is. If you want to be extra paranoid, make a fresh backup your places.sqlite file.

You need to edit the PLACES_DB variable to point to your places.sqlite file. It’s usually somewhere like: /home/YOUR_USER/.mozilla/firefox/YOUR_PROFILE_FOLDER/places.sqlite.

You need to edit your query strings (queries variable). Use % as a wildcard match.

You should set TEST_MODE to True and run the script once to make sure it’s hitting your targets. The two statements are the same except one is a SELECT and the other a DELETE.

TEST_MODE will simply print what the script would delete.

If you’re satisfied, you can turn TEST_MODE off and let it rip.

If you’re adventurous you can install the sqlite3 command line tool and open the database and explore. Note that you should also ensure Firefox is not running (at least not on the same profile) when opening your places.sqlite in sqlite3.