4th of July thoughts, 2014

What does the 4th of July mean to me.

I try to pay attention to the meaning of holiday. I know for a lot of folks Memorial Day, 4th of July, and a lot of our holiday’s are just another day off. One more chance to sleep late, maybe
watch or play with some fireworks, and enjoy friends, family, and food. Sure I’m being a curmudgeon, and maybe people aren’t really like that. I want to take some time during the day to think and talk about what it’s all about. For a workaholic nation, what makes something important enough to stop work?

The 4th of July is celebration of our Declaration of Independence. The fledgling united State of America had already be at war with Britin for about a year, when the continental congress drew up and approved a resolution stating *why* we had gone to war. The document is a pretty nice mix of international law, Natural Philosophy, and outright PR. You should read it, it’s a pretty good read.

So what does that mean, to me, in 2014?

I think a lot of it speaks to me of the history of high ideals of the USA, as well as our consistant inability to live up to them, and our blindness to stew of ironic contradictions that we live in.

– Our Declaration of Independence was written by a slave owner. And even then, sections of *his* anti-slavery text were removed to make the document more palatable.

– As we sit here, and celebrate the 4th of July, we are also discovering that NSA ‘targeted Surveillance’ means ‘Anyone that searched for Linux, TOR, Tails is having all of their web traffic logged by the NSA’

– Despite our ideals that all people are created equal, we bomb wedding parties, families, and houses overseas, and hid our manslaughter of fellow humans under euphemisms like ‘Collateral Damage’.

– We speak of ideas of life, liberty, and pursuit of happiness. But as a culture and a nation our true values are driven by money, celebrity, and money.

– We talk about democracy, and self-governance. But we have propped up, and continue to create or support, dictators and despots when it suits our needs.

– Despite our talk of self-reliance, the oil that is the lifeblood of our country, and so much of our consumer goods come from overseas.

– We have allowed money to infect our political system to the point where the only people that can run, are those that can suck up to huge diners to fund their campaign.

– Our original sins as a country, slavery of millions and genocide of the civilizations that were already on this contentent, and seldom acknowledged or discussed, even though their fallout is still felt by americans today.

The United States is a great country, and I love it to death. But it’s a flawed country, right to it’s roots. I grew up hearing a lot of rhetoric about “Hate the sin, but Love the sinner”. I know, I’m ranting a bit here. I’m being a curmudgeon and a downer, I’ll knock it off.

Enjoy the 4th. Celebrate all we have done, and celebrate the high ideas we espoused as we as a country took our first steps on the world stage. But as you’re watching the fireworks and celebrating the great things we have done as a country, don’t let that drive you to mistakes we have make as well.

Tags: ,

Writing in 2014

I often get stuck writing essay’s, since I come up with counter-arguments as I go. I’ve always admired Darwin’s writing style, in that he builds a nearly airtight case from bottom to top, all the while making it clear where is is estimating, where he is fudging detail (and willing to admit or discuss it) or where he is generalizing, and *why* that generalization is a good place to start.

In the last year, I’ve written a lot less than I’d like to. I have in my task-tracker to write a weblog post twice a week, but between the new job, a young kid, and life I’ve really not had the time. Which is to say, I’ve had time to write, but not time to go back, and re-edit articles to be as airtight as I want (which is still, well, not so air-tight).

In 2014, I’m going to get back on the train to write more often. I’ll be leaving wikipedia style superscript[1] notations where I’ve skipped detail, or where I have to admit some details need refining. Maybe I’ll get back to those articles to edit and refactor, maybe I won’t. But at least I will get the ideas out there, and into the world.

[1] you know. These footnote thigies

Tags: ,

Hardware is Hard, haven’t we learned that yet?

There is a great post on the website The Street with Peter Semmelhack of Bug Labs, on why hardware is hard. I’ll wait here while you go read it…. Disclaimer: I worked for Bug Labs on ’09-’10. I dig Peter’s vision and experience.

Bug Labs Hardware Engineering an adventure for 2013 that played out around 2007 to 2011, part of which I was there for the last two years of. At the time, their software system was growing well and with the industry, while the Hardware/Firmware development was, frankly, a black-hole of engineering time suck.

For the time I was there, things were a bit rocky, and the realization the hardware vision was nigh impossible was a tough vision change to make. Pluggable complex engineering is absurdly hard, for engineering reasons I’ll get into below. Peter did a great job of herding the company onto a new path, It’s great to see Bug has pivoted to a place where it vision is technically possible, and is having great success.

Given that, It was a surprise to me this month to read about Project Aria and PhoneBlox. Two admirable projects that sound great as YouTube videos, but projects that are none the less destine to a die via death-by-a-million-solder-burns. It was pretty sad to see that hubris (Motorola) and lack of domain knowledge (PhoneBlox) leading well intentioned people down a rocky road.

A road to a black-hole that other companies, like Bug Labs and Open Moko, had already mapped out with giant warning signs and ‘Black Hole Ahead’ articles sharing their traumatic experience.

I could write a whole detailed post on each of the red-flags on these projects, and how it overlaps with the insurmountable challenges of Bug Labs Hardware. but I’m going to stick to bullet-points unless I get some reader-request to elaborate on some of these.

  • To ‘plug together’ a device of phone complexity, you need decades of engineering, or 2-4 years of education. These won’t be accessible outside of trained engineers, or a huge engineering NRE.
  • Ruggidizing core components while maintaining speed is impossible.The faster, hotter, and smarter you make electronics, the more finicky they are.
  • If you do ruggidize them, you need slower plug-friendly protocols which are 2 orders of magnitude too slow for modern expectations.
  • Delay: The open phone tech will always be 6 to 24 months behind the advertised *buy now, we ship next month* phones.
  • People pay a lot *not* to assemble their own PC’s. DIY PC kits and purchases are a niche of a niche, even amoung nerds and hackers. Seriously, people want to change their wallpaper and font-defaults, not their RAM or front-side-bus.

We’ve been down this road, in projects by Open Moko. Bug Labs, and more. The ‘fully configurable’ system is going to be crash-tastic. It’s great PR, it’s shit engineering.
Imagine the phone as a car-level complexity devices. Changing out the dashboard, or some plastics. or adding a spoiler to a car? Sure, a great idea. Changing out the engine, or suspension, or powertrain really takes a mechanic, or a car so de-tuned it’s worthless on a highway (which is why I loved my Vespa ET3). A few hours of thinking would make it clear the fully-pluggable system is a daydream.

I have more hope for Jolla, built by thoughtful engineers. The ‘plugable’ modules are nice-to-have add-ons and external to the core system. They are a bit isolated, and they are not core components of operation. It’s much more likely to succeed, and they can use isolation circuits and ‘firewall’ the plug-system to a few external pins/ports, rather than ruggidizing a lot of internal connections and parts.

If you want me to expand on any bullet-points, just drop a note in the comments, and I’d be glad to rant on in detail why those are such problems.

Tags: , , , ,

OHS 2013, and how to get the best submissions

I’ve been helping a bit in the background of Open Hardware Summit this year, aka OHS 2013. Like many Open Source projects, OHS tends to lean on people who self-select for expertise, and people who don’t have the best balance of work-life (aka, people’s who’s hobby is their life is their job, etc. OHS also takes self-nominees, I.E. you just submit your own talk.

This system tends to skew the talks submissions in a few ways. It skews towards people who are self-confident in their abilities, which to be honest often does not map to the most skilled person. It also tends to skew talks to people that have pre-made talks, or who have given talks before. Even submitting a talk to a conference is a bit of a skill set and gained knowledge, and can really be a time sink for someone doing it the first few times.

Which leaves me with a good question I don’t have an answer for. How does a community event do outreach and find speakers, but still skew towards most genuine knowledge, instead of most self-reported knowledge? How to get the shy knowledgeable people to apply, not just the gregarious or self-assured people?

Tough question, and I really have no answer for it.

Philly PUG talk last week

Last Tuesday I was lucky enough to be invited by Philly PUG to give a co-talk with Spencer Russell. Spencer and I each have some experience in making an easy to use command line console (Spencer) and posting a project to Python Package Index (PyPI).

It was a great talk to a packed house. More than 70 people showed up, with Bu Logics, where Spencer and I work, footing the bill for some snacks during the break.

We also shared our projects on GitHub, if you missed the talk check out Spencer’s talk Repo, or my talk repo for a quick review of what you missed!

Tags: ,

Gender and Tech: Here’s a suggestion Get Data or GTFO.

Warning: I mostly don’t swear on this website, but this post is full of it. If you don’t like crude language, sorry.

Read the rest of this entry »

Goodbye Gmail!

Last week with some help at The Hacktory project night (Thursdays) I setup my own email server for the first time in about 12 years. It was pretty awesome to get my data back in my hands, where it won’t be inspected, poked, and sniffed.

I’ve getting wary Google for q while. It started google was spying on web data using street view vehicles. Since then Google has gotten worse. They are unifying tracking data. Google has become as bad as Microsoft at the ‘copy and drown a competitor’ game, with knock off’s galore like Bit.ly (Goo.gl), Yelp (Google Places), Groupon (Google Offers) and Evernote (Google Keep).

From what I have seen they are moving towards competing with Facebook on the ‘stalking out users and selling them as cattle.’ behavior. Google has also started treating anyone with a successful web company as a target for ‘imitate and destroy’ tactics. Not the kind of behavior that fits the ‘organize information’ vision, and pretty evil.

Back when Google’s mission was ‘Organize the worlds information’ and ‘do no evil’ I had some trust that they would defend the open web, and treat their users with respect. As they kill unpopular (but useful) services, it’s clear they are focused on profits, not organizing the worlds info.

I’m revoking my trust, shutting down my Google mail and mailing lists, and getting my data flow back in my own hands. Far@FarMcKon.net is the best place to reach me these days. But don’t worry about using my old email. My Gmail account won’t disappear overnight.

I think this ties into a bigger discussion about how the web is no longer peer to peer (and becoming less p2p daily) but that is a topic for another post.

New gig at Bulogics

Most of my friends know I left MakerBot back in December/January. They were going in a direction that didn’t fit my style/interests and the commute back and forth to NYC was becoming a real headache, especially with a little human in my life. Someday when dust has settled I’ll talk about it. But for now there is too much chance my opinion would misunderstood or ‘creatively’ misinterpreted by folks that have been with MakerBot. No hard feeling on my end, but the situation just wasn’t working out.

After leaving I took some time off, then spent some time taking took a look around the Philadelphia scene for any interesting opportunities. After talking to several shops I finally found a great fit for my interests and skill.

As of last week I’ve joined on with BuLogics as Chief Innovator. I’ll be once again herding nerds and working to keep the engineering and design team in close coordination with the business folks. Two things I enjoy, and am pretty damn good at.

Part of what set BuLogics offer apart was a chance to have a big influence in their next stage of growth. They are looking to expand and focus their skills a bit more cleanly. It’s hard to pass up such a great opportunity there to help take an organization to the next stage of growth.

Another great side effect of the new position is that I have a lot more flexibility to blog. So you all can look forward to more posts about teams, teamwork, and creating a culture of making both here and over at BuLogics blog.

P.S. also, check out the terrible bio photo :( It’s the only one I had available when they posted that I’ll have to change that soon.

Tags: , , ,

Stag hunt with Reluctant Free Loader on the side

I’ve been thinking a lot about the problems Phildelphia’s schools are having, and how various actors in the situation are playing out their role.

Background (Skippable)

The long story made short is Philly is closing a lot of schools. From my simplistic research so far I’m concluding that some school closings do make sense, but that the rash of closings is a last second swerve to avoid budget failure that has been threatening the district for years. Furthermore, the district has been giving out school charters for private schools in some dubious and questionable situations. Some dubious behavior of charters (not *all charters*) and willy nilly granting more charters has undermined the enrollment levels, making it seem smart to close more schools. Again, that is my simplistic research, I’m sure other folks have a better point of view.

As a new dad, I’ve been looking at school districts and pondering when it gets to the point that I abandon the system, and pay higher rates to put a child into a privates school. To me that decision reeks of game-theory, so I’m putting down my thoughts on it to clarify a bit.

To the Game Theory:

From a theory point of view, this could be modeled as a variant of the Stag Hunt game. Lets imagine a game of ‘Stag Hunt’ with thousands of players. Now lets add to those players a distribution of resources that roughly matches the Philadelphia general income, and/or tax base. Finally, we need to add a reasonably high threshold to not joining the game (ie, the cost of private education for a child). Which is odd, since it sets cooperation at a lower and default threshold, and individual action at a higher threshold. I think that becomes a decent model of parents drawing their students out of the district to private schools, lowering the income available.

Then the question becomes, what is the defection rate/system that drives more people to defect? Is there a good way to map/cap general defection from the game? At what point have we undermined the commons so far that every participant is worse off?

General Musing

What amazes me the parents fallacy only their own children’s education is in their interest. As an american you interact and depend on hundreds to thousands of other people for all of your infrastructure. The kindergardener in a crappy school today is going to be a Nurse caring for us in 30-40 years. The kids you are yanking head-start funds from are going to be mechanics, plumbers, and taxi-drivers in 20-30 years. Do you really want to be running around a city or country with these people on the loose? Do you really want to undermined your future quality of life, by setting up an environment of poorly educated people around you to care for you in old age? As much as my own child’s education matters to me, having educated caretakers in old age, and educated co-voters at all ages is hella-important.

It also makes me think I need to find, or invent, a bunch of new terms for real-world game theory.

Reluctant Freeloader: These are people who can’t contribute to the game a fair amount. Think ‘unemployed single dad.’ They are working and contributing what they can, but they don’t have the means to cover their cost.

Woefully Advantaged: This is someone with enough resources they think they can defect from the game without consequences, but really are suffering for it.

N-th turn: Borrowed from computer science. This is a reference to some point in the future (the n-th turn) when the game fails or people lose based on their earlier strategy.

School District Problem: This is a variant of the Stag Hunt problem, as described above.

Fixing xclip

Xclip could be a great commandline tool for pulling things into your clipboard. I say ‘could be’ because remember the options needed to use it is as bad as using tar. I was digging around for a solution, and found a great bash script at madebynathan that solves the problem.

The madebynathan site suggests adding the script to your ~/.bashrc file. I like to keep my bashrc a bit cleaner, so instead I saved the script as ~/.cp.bashrc so that I can easily remember what chunk of code causes ‘cp’ to work.

Examples

  • Pipe anything to the clipboard
$ tail -n 100 /var/log/apache2/error.log | cb
# => Copied to clipboard: [Sun Oct 02 08:02:08 2011] [notice] Apache/2.2.17 (Ubuntu) configured -- resumin...
  • Copy the contents of a file to the clipboard
$ cbf ~/.ssh/id_rsa.pub
# => Copied to clipboard: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnwaNIuOhZzUeR6/xEEudXt3zEh91dawhkkKx8p/+4Bw9...
  • Type straight into the clipboard
$ cb This is some unquoted text.
# => Copied to clipboard: This is some unquoted text.

No options, no man pages.

Installing it

If you think this looks handy, add the line

source ~/.cp.bashrc

to your ~/.basrc file. Then save the below code section to ~/.cp.bashrc, and rock the easy xclip magic

# A shortcut function that simplifies usage of xclip.
# - Accepts input from either stdin (pipe), or params.
# ------------------------------------------------
cb() {
  local _scs_col="\e[0;32m"; local _wrn_col='\e[1;31m'; local _trn_col='\e[0;33m'
  # Check that xclip is installed.
  if ! type xclip > /dev/null 2>&1; then
    echo -e "$_wrn_col""You must have the 'xclip' program installed.\e[0m"
  # Check user is not root (root doesn't have access to user xorg server)
  elif [[ "$USER" == "root" ]]; then
    echo -e "$_wrn_col""Must be regular user (not root) to copy a file to the clipboard.\e[0m"
  else
    # If no tty, data should be available on stdin
    if ! [[ "$( tty )" == /dev/* ]]; then
      input="$(< /dev/stdin)"
    # Else, fetch input from params
    else
      input="$*"
    fi
    if [ -z "$input" ]; then  # If no input, print usage message.
      echo "Copies a string to the clipboard."
      echo "Usage: cb <string>"
      echo "       echo <string> | cb"
    else
      # Copy input to clipboard
      echo -n "$input" | xclip -selection c
      # Truncate text for status
      if [ ${#input} -gt 80 ]; then input="$(echo $input | cut -c1-80)$_trn_col...\e[0m"; fi
      # Print status.
      echo -e "$_scs_col""Copied to clipboard:\e[0m $input"
    fi
  fi
}
# Aliases / functions leveraging the cb() function
# ------------------------------------------------
# Copy contents of a file
function cbf() { cat "$1" | cb; }  
# Copy SSH public key
alias cbssh="cbf ~/.ssh/id_rsa.pub"  
# Copy current working directory
alias cbwd="pwd | cb"  
# Copy most recent command in bash history
alias cbhs="cat $HISTFILE | tail -n 1 | cb"