Arts and Culture

Why It’s Time to Repeal the Second Amendment

Orlando is kind of a perfect storm of American hot-buttons. Terrorism, homophobia, racism, politics, mental health, and guns all in one monumental tragedy. The gay issue is complicated by the fact that there are so many homophobes on the right who are secretly (or not so secretly) happy to see gay people slaughtered. The Islam issue is complicated by the fact that the shooter is an American. The mental health issue is complicated because so many people “on the verge” aren’t identified even by those closest to them. The gun issue is complicated because it always is. There is an element of exhaustion – we’ve all been down the Mass Shooting road too many times, and all of our arguments are all worn out. We each rant and plead in our own ways, but nothing ever changes. And this time, we’re having ten different arguments at once. But we can’t stop talking, because the alternative is apathy.

Meanwhile, we’re not even focused on the bigger part of this tragedy. 50 people all in one place is horrific, yes, but people are overlooking the larger fact that, on average, we lose 91 people per day to gun violence. That’s almost two Orlandos every freaking day.

zero

One of the reasons we end up focusing so hard on guns is that it’s something concrete we can address with the force of law. We can’t “fix” mental health by throwing money at it. We can’t “fix” religious extremism by closing our borders, because it grows in our own soil and is fed by the internet. But we can, at least potentially, “fix” the gun situation by recognizing that the Constitution is a fluid document that was designed to adapt to the times. We can stop thinking of gun ownership as an “inalienable” right and treat it as a privilege instead – one that has to be earned or bestowed (to hunters and law enforcement), not one granted willy nilly to every bozo who wants a human-killing machine for “reasons.”

angerx

The current interpretation of the 2nd Amendment is not one the Founders would ever have imagined or wanted. Better background checks, banning assault rifles… all well and good, but I think that’s splitting hairs, and won’t have much impact in the long run. I’ve been ranting for the past year about how it’s time to repeal or rewrite the 2nd Amendment. The sentiment is finally gaining traction. Thank you, Rolling Stone, for this excellent piece by Constitutional scholar David S. Cohen: Why It’s Time to Repeal the Second Amendment

score

Just think of what would have happened in the Orlando night-club Saturday night if there had been many others armed. In a crowded, dark, loud dance club, after the shooter began firing, imagine if others took out their guns and started firing back. Yes, maybe they would have killed the shooter, but how would anyone else have known what exactly was going on? How would it not have devolved into mass confusion and fear followed by a large-scale shootout without anyone knowing who was the good guy with a gun, who was the bad guy with a gun, and who was just caught in the middle? The death toll could have been much higher if more people were armed.

mental

Please read: Why It’s Time to Repeal the Second Amendment

Geo

RIP Olaff Itoff

Just lost someone special who hovered on the periphery of my life. Diagnosed with cancer in April, told he had a few weeks to live, gone by the end of May. Life is so fleeting. He was a geocacher who went by the name Olaff Itoff (“Oh, laugh it off!”). He once gathered me and five other people who had had trouble finding a cache together for a group hike and discovery. A few weeks later, he and his son went out caching with me and my son. For years after, we kept seeing each other’s names in logs, leaving little notes for each other. The other day I published a new cache, and the first finder’s log entry said “RIP Olaff Itoff 2016.” Contacted the finder and heard the sad news. So sad, so unfair. Wish I’d gotten to know him better.

Arts and Culture

Maker Faire 2016

Our tenth annual father-son excursion to the world’s largest convention of inventors, sculptors and weirdos. Different every year – both as the fair changes and as we change. Spent more time this year having conversations with makers, which makes it so much richer. Unfortunately, the trend of making the fair safer every year also makes it a bit less exciting every time. Still, this trip is always one of the highlights of our year, and has become an important bonding time. Here’s to the next 10!

Flickr set

Geek

Django template tag to display latest git commit, date and tag in template

I found a few references to bits and pieces of this in various places, but this snippet ties all three bits of information together in a single string, and accounts for calling the path to the git repo from anywhere (which tends to work “magically” on localhost but breaks on servers).

If you don’t use git tags, season to taste.

@register.simple_tag
def git_ver():
    '''
    Retrieve and return the latest git commit hash ID and tag as a dict.
    '''

    git_dir = os.path.dirname(settings.BASE_DIR)

    try:
        # Date and hash ID
        head = subprocess.Popen(
            "git -C {dir} log -1 --pretty=format:\"%h on %cd\" --date=short".format(dir=git_dir),
            shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
        version = head.stdout.readline().strip().decode('utf-8')

        # Latest tag
        head = subprocess.Popen(
            "git -C {dir} describe --tags $(git -C {dir} rev-list --tags --max-count=1)".format(dir=git_dir),
            shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
        latest_tag = head.stdout.readline().strip().decode('utf-8')

        git_string = "{v}, {t}".format(v=version, t=latest_tag)
    except:
        git_string = u'unknown'

    return git_string

Then, in your template, you can simply:

{% if user.is_superuser %}{% git_ver %}{% endif %}
Arts and Culture, Geek

GoPro Time Lapse: Stinson Beach

Last weekend at Stinson Beach I attached a GoPro to a tree and had it shoot one image every 5 seconds for a couple of hours. Later compiled the image into a 29fps half-speed video in GoPro Studio. Not sure why I enjoy making these so much; something oddly satisfying about the process.

Geek

View 403, 404, 500 with media in Django DEBUG mode

When working with Django in DEBUG mode, it can be tough to see your 403, 404, and 500 views, since they raise visible stack traces instead of the UX the end user will see. But if you turn DEBUG off, runserver’s local media serving is disabled because it’s designed to work only with DEBUG = True. The solution is scattered throughout the Django docs, and I couldn’t find it compiled into one compact code block anywhere – just reference the handling functions directly from the end of your urls.py:

if settings.DEBUG:
    from django.views.defaults import server_error, page_not_found, permission_denied
    urlpatterns += [
        url(r'^500/$', server_error),
        url(r'^403/$', permission_denied, kwargs={'exception': Exception("Permission Denied")}),
        url(r'^404/$', page_not_found, kwargs={'exception': Exception("Page not Found")}),
    ]

And voila, your 403.html, 404.html, and 500.html templates will be displayed in full glory for developers.

Out there

New Collage for Amy’s 50th

Back in my late teens and well into twenties, before the interwebs, I spent countless evenings creating paper collages (sometimes with friends) – for framing, for calendars, for cards, for laughs. But it had literally been decades since I last pulled out an exacto blade and glue stick until this afternoon, when I decided to make one for my wife’s upcoming birthday. Kind of had trouble getting things to “click” aesthetically, and this one feels a bit clunky, but it felt great to re-connect.

Collage Amy 50th birthday