negativesign
archive colophon elsewhere
andrew catellier
  • On the Partial Government Shutdown

    October 16 2013

    I work for the federal government. Specifically, I work for the Institute for Telecommunication Sciences which is a research arm of the National Telecommunication and Information Administration, itself part of the Department of Commerce. My title is “Electronics Engineer,” and I do research to facilitate the efficient use of bandwidth in the context of telecommunication systems.1 The majority of the work I do is documented in trade conference proceedings (which require a vigorous review process, both internally and by trade professionals and academics), but is freely available for anybody to read.

    One study I conducted found that if a 480x320 pixel video is sent to a device with a 960x640 pixel screen, it is unlikely that viewers will rate the quality of the video any differently than if a 960x640 pixel video is sent to the same screen. This knowledge would allow a hypothetical video service to conserve a large amount of bandwidth when sending video to devices with high-resolution screens—observed bit-rates for the video with fewer pixels were half that of the larger video.

    So what does this have to do with a partial government shutdown?

    This study, and others like it, fulfill the congressionally mandated mission for ITS and can inform technical and business-related tradeoffs for the benefit of occupants of the United States, whether corporate or individual. The study is the result of researchers interacting with other researchers in the same area of study, the perception of technical obstacles in the commercial sector and to a lesser extent, the result of voluntary commercial input. The study is the result of an exercise in autonomy. Researchers were given resources to conduct and document experiments as they saw fit. Fiscal and temporal budget constraints did not adversely impact or inform the development, implementation, or publication of this study.

    In my opinion, organic, basic research like this is a necessity2 in an industry dominated by the business dogma of maximizing revenue by utilizing existing infrastructure and either minimizing expenditures on basic research or holding close to their chest or patenting the life out of the results of any internal research.3 I believe that if the economic inefficiencies of multiple corporations performing the same research can in any way be mitigated by a public third party, they should be.4

    But for real, what does this have to do with a partial government shutdown?

    The shutdown itself is a symptom of a much larger problem in the American society. Faith in ideals has taken the place of logic and [somehow] basic human compassion. Research and other academic pursuits are becoming decreasingly popular in a capitalist economy where the quest for revenue rules everything from health care to politics. Science itself is attacked when found to be inconvenient for corporations or shareholders, especially when concerning environmental issues, but also because proving any return on investment (never mind a worthwhile return) is an alchemic task at best.

    It’s as if everyone has forgotten that the Internet, one of the biggest drivers of economic growth ever,5 is largely the result of the Defense Advanced Research Projects Agency, arguably one of the closest things to a unicornian6 research institution that ever existed. Research for the sake of research is inherently important to societal progression and, not overdramatically, the survival of the human race. In the political federal budget amphitheater, research for the sake of research is an increasingly unpopular use of precious revenue.

    The New York Times wrote about a few research projects7 that are adversely affected by the government shutdown. What is most painful for me, possibly, is that aggressive political actors will have no problem making accusations that the science resulting from the affected research projects is invalid due to gaps in data collection that the political actors themselves caused. But the pain doesn’t end there. It is illegal (and in some cases a felony8) for a government worker to conduct federal business while on furlough. Seasonable temperatures that facilitate research in remote locations will come and go no matter how badly a certain faction in Congress wants to take the ball and go home. Trade conferences will take place without federal researchers, and months of taxpayer-funded research could result in nothing instead of a peer-reviewed publication freely available to anyone with an internet connection.

    Politicians (not just elected officials) have a myopic view of the US and lack vision for the future. Proficiency in technical pursuits is the exception rather than the norm and this is increasingly unfortunate in our tech-dominated world. In some cases, agency leadership are so absorbed in self-motivated power grabs that what should be two way communications about strategy and operations have become an oft-ignored employee suggestion box. This communication gap is exacerbated by a lack of technical understanding.

    These realities are beginning to prevent and preclude autonomous research. The shutdown has shone a light on these usually-hidden symptoms.

    Of course, the contradictions and inefficiencies of a government shutdown are myriad, and the effects are felt by more than just career government employees and contractors. However, this image of apathy projected by politicians towards civil servants is apparent and not attractive to the few bright and young that could, if given the opportunity, breathe life into the extinct romance of serving one’s country in a civilian capacity. The state of the current civil service system is so unattractive to young, intelligent visionaries that the thought of working for the government is not even a passing fancy.


    1. In this post, I’m sure I’ve broken nearly every social media rule that applies to me as a federal employee, but as of now, I’m not employed by the government, so neener neener. Just in case, though, the opinions in this post (and indeed on this website) are not necessarily representative of the views or policies of my employer. [return]
    2. Though pragmatists rightfully believe science without undue external influence is a unicorn. [return]
    3. That’s a strong accusation, but I don’t see lots of US participants in trade conferences related to my field. [return]
    4. If you have a problem with corporations profiting from government-based information, let’s shut down the entire weather-based ecosystem of TV channels, websites, and phone apps. Many products in this category syphon information from the National Weather Service. [return]
    5. Even if it did take nearly 30 years to be opened for commercial use. [return]
    6. DARPA, at least in its early days, enjoyed plentiful funding and broad, flexible research directives. [return]
    7. Interestingly, many that study climate change, a topic often challenged by those mostly responsible for the government shutdown. [return]
    8. For example, it’s a felony for a government employee to check email while furloughed. [return]


  • Justifiable Rage-Quit

    August 14 2013

    Ladar Levison:

    I’m taking a break from e-mail. If you knew what I know about e-mail, you might not use it either.

    All this news about the NSA lately is pretty upsetting, but shutting down communication systems that were designed to be private is terrifying. Silent Circle, another private email provider, went as far as to destroy their server in order to prevent the government from accessing its data once and for all.

    I’m not privy to all the risks we are apparently facing. I’m not party to the discussions authorizing this kind of behavior. It’s pretty hard, though, to reconcile these actions with a reality containing anything less than a dangerously corrupt government. Time to send letters to our senators and representatives.



  • Keep in Mind That Nearly the Entire United States Government Relies on Microsoft Office Products

    August 06 2013

    Lukas Mathis on ego depletion: >Ego depletion is the idea that you only have a limited amount of self-control that you can “spend” each day. Every decision you make uses part of that limited resource and makes it harder for you to make good decisions; breaks “refill” your ability to make thoughtful (or any) decisions.

    …

    Applications that force users to make decisions deplete that same resource. The needless setting in your app, or that unclear screen that requires users to think about what they’re supposed to do, might actually mean that somebody stays in prison who should have been released.



  • Quick and Dirty Redundancy: Cloning a GitLab Server

    July 02 2013

    I run a GitLab server that I use to collaborate with coworkers.1 It’s a custom-built machine with a RAID, lots of memory, redundant power supplies, and is running Ubuntu. Every day, a simple cron script to makes a backup copy of the data on the server to another machine. The script looks something like this:

    #!/bin/sh
    
    cd /home/gitlab/gitlab
    sudo -u gitlab -H bundle exec rake gitlab:backup:create RAILS_ENV=production
    rsync -avrcpt /home/gitlab/gitlab/tmp/backups/ user@remotemachine:/path/to/gitlabtars
    rsync -avrcpt /home/git/repositories/ user@remotemachine:/path/to/barerepos
    

    This script copies a GitLab-friendly backup file to a remote machine and syncs bare Git repositories to a different place on the same remote machine (just in case GitLab goes out of style).

    That keeps the data (relatively) safe, but if the primary GitLab server goes down, I’d have to build a machine from scratch, install GitLab and restore the backup before anybody could make any pushes or pulls.

    The machine I’m using to store backups is also an Ubuntu machine, so I decided to make that machine a functioning “clone.” Here’s how I did it.

    From the Top

    First of all, disclaimer: I take no responsibility for what you do to your machine, whether you’re taking advice from this page or not. Whatever happens to your machine is your responsibility; I make no guarantees, warranties or promises. Understand what each command does before you execute it.

    Second of all, this writeup explains the process I had to use to clone from a specific machine to a different specific machine, both running GitLab 4.0. It may not work perfectly for you! When I upgrade to a newer version of GitLab, I’ll write another post detailing the clone process.

    On a machine with the same operating system as the primary server (ideally), use the GitLab installation instructions to get a copy of GitLab running on the clone machine. When checking out the GitLab source, checkout the same commit number that’s on the primary server onto the clone. You can find this number by issuing the git log command on the primary server from the directory where GitLab was cloned (in my case, /home/gitlab/gitlab/). It’ll be the top commit number. So, in step 6 of the GitLab install directions, change the checkout command to:

    sudo -u gitlab -H git checkout [commit number]
    

    As per the instructions of people who solved restoration problems, it’s necessary to make sure all the permissions on the repository directories are correct.2

    sudo chmod -R ug+rwX,o-rwx /home/git/repositories/
    sudo chmod -R u-s /home/git/repositories/
    sudo find /home/git/repositories/ -type d -print0 | sudo xargs -0 chmod g+s
    

    In GitLab 4.0, the restore backup task contains a couple sudo commands that end up halting the task and asking for the gitlab user’s password. If you followed the GitLab installation directions properly, when you created the gitlab user you specified the --disabled-login option, which means there’s nothing you can do to make those commands complete. Might as well remove them. So, edit the file /home/gitlab/gitlab/lib/tasks/gitlab/backup.rake to remove the problematic commands. Lines 139-142 should be changed to look like this:3

    permission_commands = [
             "",
             ""
    ]
    

    Now run the backup restore task:

    sudo -u gitlab -H bundle exec rake gitlab:backup:restore RAILS_ENV=production
    

    Hopefully the backup restore task completed successfully, and if so, you should ensure the base repository directory has the correct permissions and run two more tasks:

    sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/
    sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_repos RAILS_ENV=production
    sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys RAILS_ENV=production
    

    With any luck, those tasks completed without errors. Now check to see if GitLab says everything is okay by running this task:

    sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production
    

    That final task might result in errors but its output is pretty helpful in those cases.

    Bam! You should be able to clone any repositories from the clone machine that you have access to on the primary machine, and the web interface should show the same information as the primary machine when the backup was made.

    Automating the Cloning Process

    With a clone of my GitLab server functioning properly, I can rest a little easier. However, there’s no reason for me to have to go through all that nonsense when I want to sync the clone, so I made a cron script for the clone machine. I’ve listed the script below—it needs to run as super user.

    If you read through the script, you’ll notice it assumes a vanilla GitLab install and does other weird things like deleting and reinstating the gitolite-admin repository and setting permissions more than you’d expect. These are hacks that made the script run successfully and are required by what I assume are bugs that the GitLab team has fixed in subsequent releases. Again, use the script at your own risk. Enjoy!

    #!/bin/bash
    
    cd /home/gitlab/gitlab
    
    # ensure permissions are correct
    echo ensuring correct permissions
    sudo chmod -R ug+rwX,o-rwx /home/git/repositories/
    sudo chmod -R u-s /home/git/repositories/
    sudo find /home/git/repositories/ -type d -print0 | sudo xargs -0 chmod g+s
    
    # remove gitolite-admin repo to prevent errors that happen sometimes, and build new one
    echo rebuilding gitolite-admin repository
    sudo rm -r /home/git/repositories/gitolite-admin.git
    sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gitolite setup -pk /home/git/gitlab.pub"
    
    # remove old backup first lol!
    echo removing old backup files
    sudo -u gitlab -H rm tmp/backups/*
    
    # copy new backup from external drive
    echo copying new backup from backup media
    bu_file=`ls /path/to/gitlabtars | tail -n 1`
    sudo -u gitlab -H cp /path/to/gitlabtars/$bu_file tmp/backups/$bu_file
    
    # restore the backup.
    echo initiating gitlab backup restore rake task
    sudo -u gitlab -H bundle exec rake gitlab:backup:restore RAILS_ENV=production
    # ensure permissions are correct, as a matter of paranoia
    sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/
    
    # update the repos and keys
    echo updating gitolite repos and keys
    sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_repos RAILS_ENV=production
    sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys RAILS_ENV=production
    
    # run a check.
    echo running the final gitlab check to look at problems
    sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production
    

    1. This post should theoretically be published in a blog on my employer’s official website, but pushing the blog onto the production server isn’t a priority I suppose, so I’m putting this here. [return]
    2. When restoring the backup for the first time, in version 4.0, it may be necessary to create the top level directories for all the repositories in /home/git/repositories. [return]
    3. The backup task was changed after the GitLab 4.1 release so these changes wouldn’t be necessary. [return]


  • Superpowers

    June 28 2013

    Chris Pruett wrote that his wife was well into an RPG when her savegame went bad. He spent three works trying to fix the file in secret, and finally figured it out.

    Miraculously, it worked. The continue menu showed stats from the other save, but once loaded her game was completely restored. Between ordering the DexDrive and patching the save, the whole process had taken me about three weeks. That night I booted the game up and showed her the continue menu with the strangely named save. She loaded it up and was very surprised to find her progress, her characters, her stats, and her items all as she left them. She was pretty excited, but before we could talk about it she was off to complete another dungeon.

    Use ‘em for good.

    (via my friend Steven who is still not linkable, here, in 2013.)



  • Serenity Now

    June 25 2013

    Sometimes when you have to look through other people’s work all you can do is shake your head. Sometimes people will use your thing in a way that is completely nonsensical and get mad when it doesn’t work or when it backfires. Sometimes the only thing you can do is write all of it down for your sanity and my amusement.

    Brent Simmons posted Brian Reischl’s Stupid [RSS] Feed Tricks and it’s making me feel better about some projects at work. A few of my favorites follow.

    Headshake: > Using permanent redirects for temporary errors. In one instance, all the Microsoft blogs had a temporary system error. All the feeds did a permanent redirect to the same system error page, and we updated all 40,000 feeds to point to that one URL. Whoops.

    Ugh: > Declaring the document as ISO-8859-1 encoding, but actually using UTF-8, with some Arabic characters in it.

    I can just imagine debugging that one—my face would have made parallelograms. One more: > Specifying dates in whatever their language’s “Date.ToString()” spits out. eg, “Tuesday, March 31st, Year Of Our Lord Two Thousand And Twelve, 4:59 PM”

    Let this be inspiration to document all your facepalms for the benefit of others.



  • America Through the Eyes of two American Americans

    June 23 2013

    Stage setup for UYD at the Oriental Theater

    On June 8, 2013, Jonathan Larroquette and Seth Romatelli of Uhh Yeah Dude came to the Oriental Theater in Denver’s Highlands to perform their podcast LIVE.

    UYD Live

    I started listening to them a few years ago because Erik Price (from Frank and Erik Internet Famous) listed it as one of his favorite podcasts. Since then I’ve spent many happy hours listening to their show—one that lends a unique perspective to all the crazy things that happen in the USA and dick jokes. Tasteful dick jokes though. Actually, it’s less like dick jokes and more like walking into your best friend’s apartment in the middle of a night of carousing. Except one of them is drinking Diet Coke and the other is smoking. And you’re invisible because they’re not talking to you. But it’s cool though, because they totally would if you had invented interactive dancecasting. Which you haven’t.

    Jonathan and Seth hang out with the crowd after the show

    It was incredibly heartening to see how all their preparation plays out in real life. Nearly the entire crowd stayed for autographs, and both of the dudes had something nice to say to everybody. Jonathan and Seth have been podcasting since early 2006—I tried to explain how encouraged I’ve been that they’ve continued their show despite what we’ll call an inefficient revenue model, but Seth responded solely with gratitude for the support they’ve garnered over the years. It’s clearly a labor of love and it’s evident that their perseverance has resulted in something that means a lot to lots of people. That’s my favorite kind of art.

    Seth Romatelli and Jonathan Larroquette

    They were even nice enough to pose for a photo.

    Listen to the show they recorded that night, and buy some merch (when available) or send them a royalty check.

    Until next time, dudes. Seatbelts.



  • AliceDev Charges $3 to Invoke a Keyboard Shortcut

    May 14 2013

    The “Get Plain Text” app is selling for $3 on the App Store. Is not having to remember the built-in system keyboard shortcut cmd+opt+shift+v worth $3? Further, how did this fly past the app reviewers?

    Nice payday, dudes. Is it mean to buy the program so I can leave the keyboard shortcut in the review?



  • Grandstanding

    May 13 2013

    CBS and FOX have threatened to stop broadcasting over the air (and distribute via cable only) if the courts side with Aereo in a lawsuit against CBS. Aereo’s suit is meant to prevent CBS from suing Aereo in every market where Aereo wishes to operate.

    Okay then. Quit broadcasting. Let us use that spectrum for mobile data.

    It is crazy to me that CBS and FOX are threatening to stop broadcasting when the FCC is actively trying to buy back broadcast spectrum specifically for mobile data use and when people are moving to cut the cord. Their business model is about to take a dirt nap and instead of innovating1 they’re litigating and threatening to push it into the grave.

    Perhaps even crazier, CBS CEO Les Moonves makes a disturbing comment about his strategy to deal with Aereo:

    We will go after them in the courts and if that doesn’t work there are other remedies. There are financial remedies; there are congressional remedies.

    Everybody knows you can make some campaign contributions and buy votes and legislation. It’s not often, though, that you see the head of a company blatantly threatening to pursue this course of action, one that’s widely considered abusing the system.


    1. Broadcasters should be developing ways to get their content into the hands of consumers over the internet, seamlessly and conveniently. Netflix seems to understand the importance of this strategy. [return]


  • Tim Ashley Reviews the new Leica M

    April 14 2013

    Thousands of well-written words written by a guy who gave up on his M9 because its technical performance fell behind other full-frame cameras on the market. In short, he likes the improvements present in the new M (Typ 240), but may not devote space to it in his camera bag.

    But. But but but. Those M lenses that I have kept, my cherished babies, have such a lovely look—better on the M240 than on any alternative. They make me seem to be a better photographer than I am, and I like that.

    So that’s where me and the M 240 have a chance of making a go of it. The lenses might keep us together. And if they do, I will be secretly rather happy.

    I share that sentiment, and it strengthens my view that even for those highly influenced by specifications and technical performance, buying a camera is an emotional decision.



back to top

p. 5 / 6
← older newer →

JSON | RSS
copyright © 2011-2020 Andrew Catellier thisisreal.net