A few weeks ago I peeked over at the blog and said to myself, “Holy shit, its been over a year since there has been an entry!” I also haven’t made any entries in 2015, and since I’ve got about 4 minutes left do to do, now is about as good a time as any. (Ah, why didn’t I move this blog to
Pacific time way back when?)
For various reasons (work) I’ve been overly stressed, and I’m almost decompressed from that mess. I’ve recently decided that I’m not as willing as I used to be to shorten my life for my employer’s benefit. You know
that Stress Kills, right?
But lets have something fun instead of moaning and groaning.. So here’s a song!
Joy to the World, the cat is annoyed!
Let all the household know!
He sits upon his high up perch.
Avoid his annoyed stare! Avoid his annoyed stare!
Avoid, avoid his annoyed stare!
He rules the house, with growls and meows!
And makes the humans prove,
their patience and feeding skills
Serve him very well! Serve him very well!
Serve, oh serve him very well!
Serve the cat human food!
No more kibble, oh no, no!
Only tuna and canned food!
Open up the can! Open up the can!
Open, open up the can!
Follow the cat, for he thinks he’s god!
Just do what he commands!
Open the door! Pet him him right now!
Let him sleep on you! Let him sleep on you!
Let him sleep, sleep on you!
Why and how can people believe in a vengeful god?
When I was a teenager I abandoned religion. How could I not have? When the implicit or explicit message is god hates gays and you’re gay, its illogical and self-destructive to continue to associate with the organization of god. If someone or some organization hates an immutable part of yourself, continuing to associate with them is self harm.
I just did something that I do every month. Although, this time there was a small variation in the details. That variation made it so exceptionally hard for me to do and opened up a mess of emotions.
I Googled seeking a bit of wisdom and Google suggested that I add bible to my search terms, so I did. A site I came across had the thesis: that humans commit wrongs (sin) and because of that god punishes humans. I had to close that page.
Why should you continue to associate with a belief in a being that causes you harm? That is self harm.
When choosing what axiom to rest the world on, I chose the axiom as delivered by Forrest Gump in the Network TV edition of the eponymous movie: “It Happens.” There is no need to ascribe motive to why it happened. Hurricane Katrina happened. Why did it happen? It happened because the environmental conditions were such that a hurricane formed. Why were the environmental conditions that way? Answer. Why was that? Answer. Why was that? You can continue to ask why, eventually there will be a question to which the answer is not known, and to support all your other answers you will have to choose an axiom. Instead of “God is Vengeful” or “God did it” I choose “It Happens.”
I choose to believe that the interdependent web of existence of which we are all a part of does its best to support us. Since the web is made of life, systems, and energy that are fallible, the web itself fails at times. The interdependent web isn’t vengeful. It simply could not offer support. It cannot give what it doesn’t have. When the interdependent web is unable to offer us support, we’re forced to grow, to make the part of the web that we hold up stronger.
Shepard Smith screwed up and called Robin Williams a coward for committing suicide.
Stop, go watch the video. Its an off the cuff comment, he was wondering, thinking being creative. A big part of being creative is screwing up. It disturbs me that the first response to Shepard Smith’s screw up is to call for his job. I’ve written about this sort of behavior before.
SumOfUs started a petition calling for “Fox news to fire presenter Shep Smith for his insensitive comments, and immediately educate staff about mental illness and suicide.” Calling for an apology is appropriate, asking for someone’s job, someone’s livelihood isn’t, as SumOfUs’s tag line purports to be, “Fighting for people over profits”, its being vindictive.
When I screw up, I want to be given the opportunity to make amends.
I tweeted earlier today:
— Nick Barnard (@ncbarnard) August 13, 2014
It is easy to be compassionate toward your friends and those like you, but all the great religions of the world call on us to love those not like us as well.
Dear FCC Commissioners,
An Open Internet is necessary for the the continued growth of our economy and more importantly for our democracy.
While the Internet to date has been in practice open, we are currently at a critical inflection point where Internet Service Providers, who themselves may also be content providers, are in a position where they can degrade the bandwidth available between independent content providers and those provider’s consumers.
Some content providers are hesitant to enter into situations where they are purchasing access to ISP’s networks. In the short term, this is a logical and appropriate move for content providers. However, in the long term this places content providers at the mercy of ISP’s rate increases, which may or may not be justified by the ISP’s costs.
I ask that the Commission reclassify Internet Service Providers from being Information Providers to being Telecommunication Service Providers. I also ask that the Commission promulgate rules that require that all ISPs provide:
a) connectivity to all active Autonomous Systems (AS) on the internet, such that, during peak times a website will load without timing out.
b) a tariffed, regulated, service that provides direct access to ISP routers that serve a several thousand customers. This service would would at minimum include a port for transmitting TCP/IP traffic to the ISP router as well as appropriate services provided by the ISP’s Network Operations Center. ISP’s should also be allowed to recoup a reasonable profit.
Item A would ensure that all the internet is accessible. Item Part B would allow content providers to provide improved service. By requiring a tariffed service, this ensures that costs in running an ISP are properly allocated, and as such are passed onto customers appropriately.
An Open Internet is critical for the success in may aspects of life of all Americans. I thank the commission for the opportunity to comment on this important issue.
I’m a bit new to Yelp and I discovered that my review was limited to 5000 characters, although I had 6600 or so characters of stuff to say. So this is the full review.
This gym is consistently sets expectations then breaks them. I’ve been a member since February 2008 and I’m canceling this month.
When I joined it was Epicenter and the location was at 3rd and Pike. That location was nothing fancy, but it was reasonably expansive, had equipment that worked, and locker rooms that were reasonable. (FYI, what is now the T.J. Maxx was the Epicenter gym.)
I walked in one morning to workout, and I was told that location had been closed, and I could now go to the Allstar Fitness on Olive Way in the Medical Dental Building. I was helpfully handed a map that showed me how to get from the old gym to the new gym.
This change was a mixed bag. There were little things and the crazy narrow steep staircase and having to bring a lock. The old location had tanning beds, but the new one didn’t. (Yes I know its bad for you, but one here and there helps with the Seattle winters.) There were also some improvements. The showers and the lockers were nicer, the actual workout rooms also were nicer, plus the location included free towels. In addition, I eventually gained access to the location in the Municipal Tower, which wasn’t as great, but also had some helpful features and great views.
The gym changed names a few times to Epicenter Executive Fitness, then Seattle Executive Fitness. They also stated that everyone who was a member was a “Founding Member” and their dues would be locked in and they’d have free towel service. Contrary to the owner’s responses to Yelp reviews, my membership has never had an annual fee.
The Medical Dental Building location then became the incredible shrinking gym. It started slowly. A small portion of the workout floor was remodeled off to become a Trudy’s Florist. Then the downstairs lobby was closed and it became a Weight Watchers location. These were little things as far as space goes. A nice space to sit was converted to a Spa of some variety. Then the main workout floor was cut roughly in half. The other half stayed empty for several months, but recently its been remodeled as offices. Finally, the desk downstairs was removed and you had to scan your card at the door. No friendly face to greet you. At this point I looked around for other gyms, but nothing was at a price I was willing to pay.
There were also a few instances of the gym shortening their hours without notice. This started at the Epicenter location on Pike, then continued. The Olive Way location used to be open until 11 pm, but then cut back to closing at 9 pm. The weekend hours used to be until 8 pm, but are now cut back to 6 pm. (Although the website still shows that the location is open until 8pm!)
They’ve also been horrible about communicating when they have shortened hours for holidays. Sometimes they’ve failed to communicate them at all. (On their website, on Twitter, on Facebook, and maybe they post a note at the last minute at the location.) I’ve had a few times when I’ve been aware of their posted holiday hours, only to arrive to a sign on the door that they’ve closed earlier than their posted holiday hours. What is the point of posting hours if you’re not going to follow them? (Yes, holidays probably will be slow, but if you’ve made a commitment to be open, you should be open.) I’ve tweeted at them about this, but I’ve never received a response.
The communication about the new Smith Tower location was poor as well. I saw that they were opening the location and emailed the GM of the new location. He responded, but never informed me of any special membership requirements to this location. I was able to access this location just fine, but then I got a call that starting next month, I wouldn’t have access to it any more. Poor communication.
The final straw for me happened over two days. I work out as much for my mental health as for my physical health. I realized that I needed to get to the gym, and made plans to go at about 6:10 pm on a Sunday. I had checked the website earlier in the day and it stated that they were open until 8pm. I put on my workout clothes and headed out. I went by the Municipal Tower location first, and it was closed. I checked their website on my phone and the Medical Dental Building location showed as being open until 8 pm. I then walked to that location, only to find that it too was closed. I was so pissed that I had gotten over my procrastination only to be denied a workout due to SEF’s lack of proper communication.
The next day I went to the Municipal Tower location only to be greeted by signs that the club is closing on June 30th, 2014, and due to increased theft of towels there was no longer any towel service. Now, I had previously been promised towel service for the life of my membership, so I didn’t bring a towel. I understand that they had an increased towel theft problem, an adult way to deal with the problem would’ve been to be empathetic to the fact that their members might not be aware of this policy. (Something like providing each member a “now you know, but here’s a towel for today.” then cross their name off a member list or provide a towel in exchange for them holding an ID or something like that.) No, instead Seattle Executive Fitness treated their members like middle schoolers, and said “NO TOWELS FOR YOU!” They also posted signs all over the gym reminding folks of this.
Now I wasn’t about to skip my workout, so I went and worked out. Then, I took a shower and discovered how many paper towels it takes to dry myself off. I finally had enough with the signs, and started tearing them down as I walked by. Once I got to the elevator the manager confronted me and asked if my middle school antics were necessary. I told him yes. (I’m slow on good comebacks, I should’ve said, “Well, you’re treating your members like middle schoolers so don’t be surprised when they act like them.”) He then offered to cancel my membership, but not refund the pro-rated remainder of the month. A few words were exchanged, and once the elevator came I got on it to leave. He then asked my last name so he could cancel my membership. Funny how when they’re done with you they’ll cancel your membership, but if you want to be done with them they’ll make you jump though all sorts of hoops.
I’m done with putting up with Seattle Executive Fitness’s constantly changing and broken promises. I’ve found a new gym. LA Fitness has purchased the old Vision Quest location at 2nd and Columbia. Its a very similar price. The physical plant isn’t as great, but its under new owners and they’ve stated they’ll be remodeling the place as they go, keeping all the same space.
I’ve been watching and reading about two issues:
- Brendan Eich’s appointment as CEO of Mozilla, and subsequent resignation
- Racist comments by Stephen Colbert’s eponymous character, and the #CancelColbert hashtag on twitter
This also relates back to the melee over the CEO of Chick-Fil-A’s comments about traditional marriage from two years ago. I wrote about that when it happened back then.
It pains me that the first response to all of these situations is some variation of “Let us take away their livelyhood”. This response is a mildly more mature version of a child sticking their fingers in their ears and saying “Na, Na”.
What I would like to see more of is a drive for people to sit down in the same room and talk. Dan Cathy to his credit did exactly this in the middle of the protest against his company.
Senator Tom Harkin, says Congress doesn’t work because in part Senators no longer socialize with each other.
I’m reminded of a minster’s sermon from this past summer where she pondered how would the meeting of George Zimmerman and Trayvon Martin gone differently if Zimmerman had rolled down the window and asked Martin if he needed any help.
How much more powerful could Suey Park have been if she demanded that Colbert the person, have her or another Asian-American on to respond to his racism? (I only suggest a surrogate as Suey Park is a pseudonymn and I am unsure if the woman behind it would want to make a television appearance.)
I believe it is our responsibility to respect and learn about the inherent worth and dignity of all people, especially those we disagree with.
Week four of Code Fellows is dedicated to writing your own app.
But writing your own app doesn’t start in the fourth week, it starts around week two where you have to present your app idea and some sort of wireframe for it. All this is intended to get you started thinking and planning your app.
But planning doesn’t really start until make the position of bits non-random, you start using friction to transfer ink from a pen to paper, or you make select parts of the whiteboard non-white. For various reasons, including the push of working on the apps we were putting together during the day, handbell performances, and the adjustment period needed to go from not having a fixed schedule to having a schedule of 35 hours week, I put off planning. Topping things off, all of this caught up with me in the third week, and I crashed and burned.
I didn’t make a first commit to my app’s repository until the Monday of week four, and that commit only had the boilerplate that Apple provides. I started roughing in a bit of code on Tuesday, but I didn’t start heavy lifting until Wednesday, and since the app is presented on Friday morning, you have to have it mostly done by Thursday evening.
So, I was time constrained. To add to the time constraint, I never intended this app to just be something that I deliver for class. My app fills a huge pain point for me in commuting, and I’ve spent much time thinking about it. I really want this app to be something that makes people’s day just a bit easier. So, I set out with this in mind, and tried to design a flexible, extensible foundation, and avoid technical debt. I thought I did a good job with abstracting the pieces out, making things flexible so that I could support multiple transit agencies, and add new transit agencies with just a configuration file, and I went about my day feverishly writing code.
By Thursday afternoon, I found myself in what I dubbed abstraction hell. I found myself needing to write code that I had no concrete understanding of what needed to be accomplished. Since I hadn’t really done any planning, I found myself lost in my own code, and unable to find spot that I understood to branch out from.
At one point I decided to throw in the towel and just not present all together. However, after some cajoling from an awesome developer who also is my cousin, I showed off the little bit of my app that I had managed to get written by having it output information to the console.
So how do I go forward from here? My app idea is once again on the backburner, but looking through what is needed and a seed planted by my awesome instructor, I’ve decided more abstraction is necessary, instead of less. I think a great little CocoaPod would be one that allows the API calls to be configured based on a configuration file, instead of code, so I’m going to write it.
I’ve got some investigation to do to better understand the tools I’ll be using, but I’m quite sure that the product of this whole exercise will not just be an app, but a portable little Cocoapod, that’ll help out developers in having flexibility with REST APIs out there.
Somehow a few years ago, I got lucky and I’m no longer responsible for providing technical support for my friends and family, so I don’t have to give computer advise anymore.
However, I do have one piece of advice for them in their daily computer use: Use a Password Manager, even if it is just a sheet of paper.
The whole system of passwords is incredibly weak, and it has never been weaker. At some point in the future, it is likely that the technical community will come up with a replacement for them, but you shouldn’t wait for that time, as passwords are already at risk. Passwords are regularly stolen from websites. I manage to trip over articles of password hacks all the time, so much so that I don’t even read them.
So how does a Password Manager protect you? To fully explain that, we have to delve into how websites store passwords. Bear with me, this is a wee bit technical, but I’ll keep it as painless as possible. And if its too painful, jump to the next section.
When you give a website your password, such as “P@ssw0rd!”, the website doesn’t or more accurately shouldn’t store it just like that. It encrypts it, but not in the same way your bank encrypts the information it sends your web browser.
The information a bank sends back and forth to your computer is encrypted with reversible encryption. Reversible encryption allows you to get the information that you put into it back out of it. For instance, if we were to encrypt “P@ssw0rd!” by choosing the next letter in the alphabet, next number, or for the symbols the key to the right on the US keyboard, we’d get “Q#ttx1se@”. As long as you know the rules how it was encrypted it is trivial to take “Q#ttx1se@” and decrypt it to get “P@ssw0rd!”. This is important for information that is sent back and forth to your computer, because your computer needs to be able to show you what your bank balance is, recent transactions, etc.
Passwords on the other hand are stored with irreversible encryption, also known as a hash. So take “P@ssw0rd!” and hash it you get something like, “8a24367a1f46c141048752f2d5bbd14b”. Most hashing algorithms are designed up so a small change makes a big difference. The hash of “Password!” is “0040f2abc2cff0c8f59883b99ae9fab6” which is quite a bit different than the hash of “P@ssw0rd!”.
But passwords are not just stored by hashing them. Passwords should be salted and hashed. No salt in this instance isn’t table salt. It is a random bit of information, such as “06acebb0405318414c0577c0b6fe065d”. So what a website does is take your password, “P@ssw0rd!” and adds it to a random salt that is unique for your password, for instance “d3945bb3f56371103fb38eb5744188db” and puts them together into “P@ssw0rd!d3945bb3f56371103fb38eb5744188db”, and then it hashes that. For instance “P@ssw0rd!” might be stored as “d596b64c12671d6f2dbbf2004d98081e” once it has the salt “d3945bb3f56371103fb38eb5744188db” added to it.
So how does a website know it is you? When you give it “P@ssw0rd” to that it adds the salt it has for you, “d3945bb3f56371103fb38eb5744188db” and hashes it. It then compares the the result of that has to the hash that it already has on file. If the hashes match, it know you knew the password was what you originally gave them, “P@ssw0rd”, even though they do not store the password.
So why to through all of this song and dance about hashing and salting? It helps to protect your password the file containing your password gets stolen from the server. Helps is the important word, it doesn’t make it impossible to figure out your password when that file is stolen, it just makes it take a lot of computer power to figure out what your password is. (Physical safes work the same way, they are designed to take at least a certain period of time to break into.)
Many things have transpired to make passwords easier to figure out from the stolen file:
- Computers and more specifically graphic cards, which can do the heavy lifting of cracking passwords, have gotten much faster.
- Humans are bad at picking passwords. Yeah, you thought you were clever in replacing “a” with “@” and “o” with “0”, but everyone else, including password crackers know those tricks too.
- Lists of words that might make up passwords are easier and easier to get in electronic format.
So how does a Password Manager protect you? It does nothing to protect your password on the server, what it does is two important things:
- You’ll have a unique password for each individual site, so if your password is compromised on website, you only have to change the password on that website, not every other site you used that password.
- It allows you to have more complicated passwords than you can remember, such as “b4d6UFp/naGu1H7MzRBE-o#=vm9C0m3py]$pG171”. Perhaps you could remember that password, but could you remember 10 or 15 passwords like that? A password that is truly random is much harder for password crackers to figure out.
At this point, I hope you’re chomping at the bit to start using a password manager. Here are some suggestions:
- 1Password – This is the one I choose. My data is only on systems that I want it to be on, and it nicely integrates with web browsers.
- iCloud Keychain – This is limited to folks who utilize devices in the Apple ecosystem.
- LastPass – A centrally hosted password manager. Your passwords will be on a central server with passwords from many other people.
- Safe Wallet
- Pen and Paper, and secure that sheet of paper. Seriously. Bruce Schneier, a noted security expert has said, “… people say don’t write your password down. Nonsense. Write it down on a little piece of paper and keep it with all the other small bits of paper you value — in your wallet. … [Paper money] has value. Your password has value. As a society we are good at valuing small bits of paper. We have cracked that problem.” If you do use this method, I recommend ensuring that your passwords are random in some way, roll a die, open a book to a random page and choose the first letter of every line as your password, or some other technique.
Using a password manager is both good hygiene and insurance. Using my a password manager makes logging into websites effortless and gives me piece of mind.
I finished my first day of Code Fellows today. We’re supposed to blog frequently about what we’re learning, its a good way of reinforcing learning. Sort of like in those big college lecture halls where I took notes to make sure I paid attention and to run it through more parts of my brain. I barely ever looked at the notes afterwards. However, today’s blog entry won’t be technical. That is not what I need today.
It’s weird for me going back to school. The last time I was in a classroom was eight years ago, and I’ve only taken a few online classes since then.
Code Fellows is split up into lessons in the morning, and working time in the afternoon. In the lessons I followed along just fine. When we got to the afternoon bit, several of my classmates appeared to be done with the assignment by the time I arrived and starting working on it. Peeking at some of their bios online, a few of them have studied computer science in college, and others are freshly out of college having studied random subjects.
I completed the assignment with time to spare. I know the spots where I’ve made tradeoffs that I’ll probably have to rip out tomorrow, and I’m fine with that. I’m working to be reasonably comfortable with the idea of producing crap. I know that writing code and creating applications is like anything else: you’ve gotta do it to get better at it.
I have become a better musician. I just watched my Handbell Quartet’s first performance, and we were horrible. Its painful for me to watch that three year old performance. We could have given up at that time and moved on. However, we continued rehearsing and started rehearsing more. We got better, slowly but surely. We’ve reached the point, that a week after my quartet performed at church, I was still receiving compliments including, one guy who told me, “that was fucking awesome.”
In the same way, I know I have gotten better at writing code. I just peeked at code that I wrote 18 years ago. I know it worked. I used it daily to commit around 10,000 copyright violations per day. However, it is horrible, horrible, horrible code, and I can’t glance at it and tell you how it worked. There are so many things wrong with it, that I could write a few blog entries about it. In short, it has barely any abstraction, the variable names are not really readable, the code is spread out over multiple files, in multiple different languages. It makes a Ford Pinto seem well designed.
However, my progress at writing better code has come in fits and starts. I haven’t been as consistently dedicated to becoming a better programmer as I have been dedicated to be coming a better musician. I’ve become a better musician because I’ve consistently practiced and worked at becoming a better musician. Part of that consistency for me has been making music as a part of a group. Another important part of becoming a better musician, has been making music as part of a larger community. I’ve invested the time in going to conferences, learning from other musicians, discussing making music, and appreciating the music of others.
I recognize that for me to become develop myself as a computer programmer, I need to do that as a member of a group and a community. I initially avoided going to college to become a computer programmer because I believed it was an anti-social activity. I know that does not have to be the case.
I know I need to work consistently. My precalculus teacher once wrote that Nick “… is plenty smart, but more than a little bit lazy by my standards. He’s usually a great participant in class discussions, one of the first to answer correctly during discovery lessons. But the rest of the students catch up and then often surpass him through homework preparation and study. It seems a pity he doesn’t use his gifts better.” That quote still haunts me in its accuracy. I can’t blame my seventeen year old self for my performance in that Precalc class. There are some days I’m amazed, that given what I was dealing with in life, my teenage self was as successful as he was. (Which is to say, I graduated from high school while managing not to inflict major harm upon myself or others.)
Now, I have a pretty good handle on all of the issues that have held me back from fully utilizing my gifts. That isn’t to say all of those issues have completely disappeared, but I now they’re minor bumps and I can get back to where I want to be quickly.
Another entry that has been sitting in my drafts folder for a while. This is from December 29th, 2012. Needless to say, the Personal Knowledgebase idea didn’t get going. Perhaps I should revisit that.
I’m going to kick off a short series of blog entries. I’m calling this series Personal Knowledgebase, mostly because its got a nice geeky ring to it.
I’m at a point in my life where I’m closing one chapter and opening another. The chapter I just closed has been a pain in the ass, very enlightening, transforming, and tumultuous. So it is important for me to remember the lessons I’ve learned so I can apply them in my life and not get stuck having to learn them again.
I just read Wil Wheaton’s blog entry respect yourself and it rang quite true for two of the relationships that have ended over the past year.
The first relationship that I ended this year had been dead for a while. I had been friends wit him for eight years or so. We first met in Cincinnati and he followed me out to Seattle. Like any friendship of that length it wained and waxed over the years, but during 2011 it became quite apparent to me that I was begging for his time anytime we got together. He was horrible at responding to text messages, emails, or phone calls. When we did get together he wasn’t actually present. He’d often be stuck in fiddling on his smartphone or even taking a call from someone else for longer than just a moment or two. The last time we got together in person he was already near my neighborhood and I made an effort to meet him somewhere that was more convenient for him, and he wasn’t actually present for half of the time we were there.
Generally, in a situation like this I’d just leave the friendship be. I’d stop making attempts to communicate with him, and if he wanted to get together I’d make sure it was something that I wanted to do and he was making time for me. Since I’d been the one who initiated anytime we got together for quite some time it’d mean that we wouldn’t get together.
However, in this situation there was a tendril that kept the relationship nominally alive: he owed me money. (He was making payments as agreed, so it wasn’t that he wasn’t paying me back.) I had made the realization that the friendship was over sometime around the end of November 2011, and I decided wait to communicate this to him until the beginning of the new year. (Mostly because I didn’t want to put this in the middle of his or my holiday.) I wrote him a letter explaining that I considered the friendship to be over and that our relationship was now simply a business relationship. To make a point about my seriousness I sent an actual paper letter via Certified Mail, with a Return Receipt and Restricted Delivery. Meaning that he’d have to sign for it personally. I received an email from him 31 minutes after the letter was delivered. That email put an excessive amount of effort into deflecting any and all fault for the state of our relationship. I know I wasn’t perfect, but neither was he. Beyond that single email he didn’t make any attempts to repair our friendship.
I simply don’t miss that friendship, it had been limping along for far too long. It also felt really satisfying to collapse the ambiguity of our relationship and to clearly and cleanly communicate to him how I felt about our relationship and my understanding of it. Additionally, I appreciated that it was fair to him in that it did not leave him in the dark about the state of our relationship.