Why the Flash and his gang are the ultimate evil

I was watching some episodes of the CW show “The Flash” this week and a thought occurred to me.  Of all people and things, Barry and his cohorts are easily far more evil than the metahumans that they encounter and battle each week.

The Flash with an alleged wrongdoer

The Flash with an alleged wrongdoer

Think on this for a moment.  Metahumans are people with super-human skills.  Super Villains, or perhaps just innocents caught up in the effects of the particle accelerator explosion.  Each week, the flash takes on a new bad guy and locks the evil-doer up in his super-secret, ultra-secure metahuman prison in the ruins of the former STAR Labs particle accelerator.  The prison is almost fully automated and if you watch the show closely enough, more horrifying than a SuperMax prison today.

Consider this.  First, the Flash locks up the criminals without any regard at all for Due Process.  No trial, no verdict, no sentencing.  Miscreants are locked into a prison, presumably for life with no right to representation, no right to a jury of their peers, no rights to appeals, visitors or anything like that.  There is no Miranda, there is no bail hearing, there is no arraignment nor Grand Jury.  Even allegedly evil metahumans who may be mentally challenged are put away with extreme prejudice with no chance of rehabilitation or getting the psychological help they may desperately need.

STAR Lab’s Prison Cell

Next, consider the cells.  A normal SuperMax cell at the Colorado ADMAX prison is 7 feet by 12 feet (84 square feet) with a 4 inch by 4 foot window.  The cells in STAR Labs’ underground dungeon appear to be about 6  by 6, or 36 square feet.  That’s less than half the size of the cells in the United States’ most restrictive and feared prison.  The ADMAX cells have a 4 inch wide by 4 feet tall window on the outside wall and a window on the inside steel security door that allow in artificial light from one side natural sunlight and moonlight from the outside.  STAR Labs’ cells have only the windowed doors on the entrance side that only open to the inside of the accelerator tunnel, and if the state of the tunnel when Wells starts his finale end game is any indication, the lighting is minimal at best most of the time in the tunnel unless turned on for need.  Thus, prisoners’ only light source is what’s inside their tiny, square coffins.

Floor Plan of a cell at ADMAX Colorado

Inside each ADMAX cell is a bed, a desk, a toilet and a shower.  There is even a Television for entertainment that is used as a reward for good behaviour.  STAR Labs’ cells have none of this.  Each prisoner is, presumably, left to sleep on the floor, in their own excrement.  They sit on the floor, they eat on the floor, they lie on the floor.  They have no hygiene facilities at all.  Just some dark colored walls and a window to a tunnel that is only illuminated part of the time.  In the ADMAX, prisoners are fed meals twice to three times per day through a slot on the cell door by part of a staff of several hundred Department of Corrections employees.  STAR Labs is manned by exactly 3 full time people (if you discount Dr. Wells) and only part time by Joe and Iris.  Those people are usually too busy worrying about their daily lives, their outside work lives, catching alleged bad-guys, who’s in love with who, what Oliver Queen had for lunch that day and generally enjoying the freedoms that they deny others.  So there’s no one left on-site to feed the inmates and remove the trash.

Actual ADMAX Cell

Inmates in a SuperMax spend 23 hours a day in their cell and 1 hour each day outside, in fresh air, under the sun.  STAR Labs’ prisoners get none of that.  First, the STAR Labs prison is woefully understaffed, though unstaffed is likely a better word, and while capable of holding the strongest metahuman, has no provisions at all for containing them in fresh air, on grass, something that each SuperMax prisoner cherishes.

So imagine yourself now, locked away in a 49 square foot, dark walled box.  You had no chance to face the charges against you.  No chance to defend your actions.  No chance or hope of rehabilitation, parole or finishing your sentence.  You have been placed in this box, in a dark, foreboding, underground concrete tunnel by the alleged Hero “The Flash”, acting as Police, Prosecutor, Judge, Jury and Warden unilaterally with the support of a public police department that actually supports him in his role of robbing metahumans of the very basics of Law that our nation was founded on.  You must sleep each day on the floor.  You must eat on the floor.  You must relieve yourself wherever you can, in the corner, left to stew in the smell.  You have nothing to occupy your time, or your mind.  You’ll never step foot into the sunlight again, never even see the sky from your subterranean dungeon.  No one will ever come to visit you.  No one will ever pardon you.  No one will ever even know you’ve been taken.

The truth is, Barry West, a.k.a the Flash, and his gang are the real evil.  In the guise of “Protecting the Civilians” they’ve stripped away the rights and dignity of every meta-human they capture.  They’ve dehumanized them and converted them into “things” that are housed in repurposed storage boxes.  STAR Labs and Barry West are the analogs to mankind’s long history of secret detentions, psychological and physical deprivation and torture and ignorance of basic human rights and rule of law.

Barry West and STAR Labs are evil of the worst sort.  Evil done with the purest intentions.

This is where you go to die, if you’re unlucky enough to encounter “The Flash”

Adventures with Ubuntu Snappy: Prologue

A short while back at IoT World, we introduced a neat little bundle of kit to demonstrate Ubuntu Snappy.  This kit consisted of a Raspberry Pi 2 (the updated Pi that Ubuntu can run on), a PiGlow and really sharp Pibow case, both provided by Pimoroni.  Needless to say, it was a real hit.

An offer came up to get my hands on one of these great, specially made Ubuntu branded versions of the kit and I had to jump on that, because it just looks so darned cool.  Happy coincidence, I was already planning on obtaining a Pi 2 to replace my older RPi that I had toyed with off and on over the last couple years.

Today, my new Ubuntu Snappy Core Raspberry Pi Fun Pack arrived and I had to just stop working and start playing a bit, because, “Hey, new toys!”

So this first post will be an introduction and first steps.Finished. What a sharp looking Raspberry Pi 2. Case and piglow by Pimoroni (http://www.pimoroni.com)OS is Ubuntu Snappy Core (http://developer.ubuntu.com/en/snappy

First, the hardware.  I won’t go into detail on the Raspberry Pi 2 hardware itself.  By now, it’s well known, and it’s well discussed and documented elsewhere to the point where I have nothing Earth shattering to add to that discussion.  You can see some basic information at RaspberryPi.org or search the Goog.

I will point out the two add-on’s though.  First the Pibow case is a plastic case specially made for the Pi 2 and B+ systems.  It consists of two clear panels with several layers of custom designed frames in between.  They sell different configs that range from skeleton cases to full box.  For us, they created one in Ubuntu Orange and laser engraved the Ubuntu logo and Circle of Friends on the top cover.  It looks pretty sharp.

The PiGlow is another neat addition.  It plugs into the pin array on the Pi2 and provides a programmable LED light show.  There are ample instructions for making them flash and I’ll get to a brief demo in another post, perhaps.  The PiGlow is easily programmable with python, and they provide instructions for installing the necessary libraries to interface with the PiGlow via a Python script.  This means it should be quite easy to add a colorful, animated status marker to any python script by adding a few lines of code.  There is video of the PiGlow as well on the Pimoroni site, so enjoy!

Now let’s talk about the OS.  Because of the upgraded ARM Cortex-V7 chip, the Pi 2 can finally run Ubuntu.  Previous incarnations of the RPi used an older ARM v6 chip that Ubuntu was not ported for (though you could get various Debian versions to run on that chip).  In April 2015, we launched Ubuntu 15.04 (Vivid Vervet) and with it came Ubuntu Snappy.  Snappy is a new transactional version of the OS formerly known as Ubuntu Core, thus, Ubuntu Snappy Core.  The key difference is that with Snappy, we no longer use apt to manage package installations.  Instead, packages come in Snaps, which are transactional packages that we first developed for the Ubuntu Phone.  If you’ve never heard of Transactional packages, that’s ok, because you’ve more than likely used them any time you install or update an application on your smartphone.

In a brief nutshell, Transactional Packages are an All-or-Nothing installation that consists of bits of unmodifiable code as well as user-modifiable code.  The unmodifiable parts are the core elements of the application, the UI, the libraries, the binary executables, and so forth.  The user-modifiable parts are things like custom user configurations, downloaded or added data like documents, photos, icons, and other similar things.  When you upgrade an app, you essentially completely replace the unmodifiable bits with the newer version of those bits, unlike traditional package updates that may only update a single library file or binary executable.  One of the two biggest benefits to this are that you never have to worry about update creep, where update after update after update could, possibly, cause things to break as they leave behind old, conflicting or unneeded files.  The other is that if an update breaks, you can very easily roll back to the last working version.  So, for example, if you have Candy Crush version 1.2.3 installed and install 1.2.5 and discover that 1.2.5 is actually broken and you can no longer play Candy Crush, you could simply roll right back to version 1.2.3 and continue on crushing those candies.  And neither the update nor the rollback has touched your user-modifiable data (your records, progress and such in this case).

So the first thing I wanted to do was get this sucker on my network.  My network, however, is very tightly controlled at home.  All IP addresses are handed out by DHCP, on an assigned basis, so if your device’s MAC address isn’t specifically listed in dhcp.conf on my server, you won’t get an address.  And for wireless devices, even connecting to the access point is MAC controlled, so if your phone, tablet or laptop is not on the ACL on the WiFi access point, you can’t even join the network to ask for an IP address.  Sure, it’s not 100% secure, but nothing ever is, and this is “Secure Enough” for my needs and location.

Now, for my first idea, I wanted to replace my home DNS/DHCP server with a small IoT type device like a Raspberry Pi.  I currently use a hacked together Shuttle PC for this purpose, with a giant external 400W power supply that was made necessary because the small Shuttle PSUs are notoriously flaky, and mine didn’t last three months before it started shutting itself off randomly trying to keep up with the power needs of the CPU on the machine.  So that’s a lot of energy being used for a system that essentially does nothing but hand out DHCP requests and answer DNS queries.  Transit also serves as a bastion point so I can access my LAN remotely so I will try to set this up to do likewise.

First, however, I need the Snappy Pi to have a static IP address.  By default, it comes configured for dynamic addressing for it’s onboard ethernet device.  So I needed to modify /etc/network/interfaces.d/eth0eth0-orig

 

To change the file, a couple things had to happen.  First, I needed to be the root user.  Sudo may have worked, but it’s just as easy to become root to do a lot of things.  So sudo -i to become root.

Now, we just need to edit the file.  There is a problem though.  The root filesystem is mounted read-only by default.  This is great for security, but when you need to edit core files, it makes things a bit difficult.  So, you need to remount the root filesystem read-write so you can edit the core files that are not already designed to be user-writable (learn about the Snappy Core filesystem).  This is simply accomplished like so:

root@localhost:/etc/network/interfaces.d# mount -o remount,rw /

after this, you should be able to edit the eth0 file to use a static addresseth0-fixedI edited the file to add the address, netmask, broadcast and gateway lines and saved the eth0 file.  Then, I shut the interface down and brought it back up and I was in business.  I also took a moment to verify that it all worked by rebooting the RPi.  This highlights a couple things:

  1. On reboot, the root filesystem is again mounted read-only, so if you need to modify more core files, you will need to remount the filesystem once more.
  2. allow-hotplug is an interesting thing.  It’s intention is to only bring the device up on hotplug events.  However, because the ethernet device is always plugged in, on reboot, the kernel detects a hotplug event and brings the device up at boot time, regardless.  That means, if you don’t have it plugged in to a switch and turn it on, you could wait a bit while it tries to obtain a dhcp address.  I noted that after rebooting the RPi with the ethernet cable removed, the eth0 device was still shown as up with the prescribed IP address.

One thing I forgot to mention was that because I’m not using DHCP, I also need to list some nameservers.  Eventually, this file will list itself as it will be running Bind9, but for now, I’m going to give it Google’s public DNS addresses by creating a file called “tail” in /etc/resolvconf/resolv.conf.d that looks simply like this:

ubuntu@localhost:~$ cat /etc/resolvconf/resolv.conf.d/tail 
nameserver 8.8.8.8
nameserver 8.8.4.4

Now that I’m rebooted and have an IP address, lets take a brief whirlwind tour of Snappy before I end this prologue to my Snappy Adventure.

As I mentioned before, Snappy doesn’t use apt to manage packages, it uses a new tool called, not surprisingly, “snappy”.  So first, lets get just a bit of information about my system

ubuntu@localhost:~$ snappy info
release: ubuntu-core/devel
frameworks: webdm
apps:

 

 

So there you have it… there is much more available at https://developer.ubuntu.com/en/snappy/tutorials/ about snappy and its use.