Holding A Thief Accountable

Posted on Fri 25 March 2016 in UI • Tagged with slack, ui, designLeave a comment

How it started

I was recently made aware of a product called Stitch. Stitch touts itself as Team communication for healthcare providers, which is a niche market that could use a modern tool that offers the features the team claims their tool has. Such a product definitely has its place and as someone who has friends in the healthcare industry who are forced to use antiquated software, this would be a welcome addition.

The problem

Closed source is defined as:

Closed source (or proprietary software) means computer programs whose source code is not published. The source code is not shared with the public for anyone to look at or change. Closed source is the opposite of open source. Wikipedia

Enter Slack. Slack is a team communication tool that offers file uploads, bot support, a robust API, a killer UI, and other features. It is the most popular communication tool among programmers and various fields alike. It is also closed source which means that it can not be copied or altered in any way.

Let's bring the Internet Archive Wayback Machine into the mix. If you view this archived version of the Stitch website, you'll notice something really familiar about the screenshots of their purported application. They outright copied Slack's UI. To make things even more fun, their official Twitter account praises tweets that make direct comparisons to Slack. So not only do they steal the UI of one of the most popular communication applications out there, they revel in the similarities and use it as a marketing tool to push their own product. Shameful.

Here is the screenshot from the Wayback Machine archive for posterity:

Stitch's original UI

Things get interesting

Let's step back a bit. After seeing the theft, I decided to confront the Stitch team. I submitted a ticket on March 23, 2016:

My Stitch ZenDesk ticket

As of today, March 25, I have yet to receive a reply. Spurred by their lack of communication (or perhaps their scrambling after being called out), I decide to view their website again. You'll notice something interesting:

Stitch abruptly changes their UI

I submitted my ticket 2 days ago and today, they have:

  1. Completely removed the screenshots of their mobile apps
  2. Changed the desktop app UI screenshot entirely

At this point I'm just speechless. This company is getting praise all over Twitter, their team has presented at TCDisrupt, and has been highly praised by TechCrunch. A company that can't even come up with an original UI concept is handed funding that other honest teams should be given, and they are being treated like their idea is 100% original. The idea is solid but really, guys? You can't at least use some of that VC for a UI team that creates their own interface? Stop riding on the coattails of a team that consistently delivers innovation, honesty, and transparency.

The best part is that after scrambling to change while ignoring my ticket calling them out, their fallback design turns out to essentially be a modified Bootstrap theme.

Pathetic and insulting. If the Stitch team is touting their product as a Slack-like communication tool for the healthcare industry and then changing their UI, isn't that the old bait and switch? Lying to your potential customers is appalling and that's how I interpret this debacle.

I'm curious to actually hear the Stitch team's feedback but their lack of response to my ticket says everything it needs to.

Goodbye WordPress; Hello Pelican

Posted on Fri 22 January 2016 in Python, WordPress • Tagged with pelican, python, wordpressLeave a comment

My run with WordPress was long and fruitful, but I'm parting ways with it for my personal website. Enter Pelican.

The what and the why

Pelican is a static site generator built in Python. Why I chose it:

  1. To simplify my workflow
  2. To make things as fast as humanly possible
  3. To greatly reduce the chance of an exploit
  4. The template engine is driven by Jinja and is really easy to work in
  5. I like writing my blog posts in my favorite IDE (Sublime Text 3)

Coupling Pelican with Nginx and Digital Ocean has made things as fast as I can possibly get them. Despite the majority of this being a personal experiment, it has paid off tremendously. If you need a solid static site generator and you're comfortable getting your hands a little dirty, I highly recommend Pelican!

Silencing The Social Static

Posted on Thu 20 November 2014 in Health, SocialLeave a comment

How long do you go during the day without checking a social network? It doesn't matter which network. Facebook, Twitter, Instagram; all of them subconsciously train us to swallow information in small chunks. If the item in view is not interesting within that split second, you're already swiping to the next one. We've become numb. Instagram filters bleed together; Tweets fly by unread or skimmed; Facebook posts are viewed and immediately forgotten. We put our devices down and 5 minutes later, we're back to seeking instant gratification.

What is it worth?

What do we ultimately gain? Are we learning anything? Are our lives more enriched by this endless cycle? I say no and I may be in the minority. Don't get me wrong, I have an appreciation for the aforementioned things and they have their place, but I feel like they've made us lazy.

I think this delivery method for information—when relied upon so heavily—is detrimental to our behavior and fosters bad habits. When your mind is trained to expect information in the compact blocks that services like Facebook and Twitter provide, we subconsciously expect that from everything else we read. We crave it and are constantly tapping notifications, but we gain nothing of real value. All we've done is temporarily quenched the desire; be it via 140 characters of dry humor or over-saturated photography of landscapes, pets and edible things. Reading a book or a longer piece of some form becomes a chore. Things like Buzzfeed lists thrive on this sort of behavior. We become drones.

Guilty as charged

My worst culprit by far is Facebook. I check it constantly. If you asked me why exactly I do so, I would have no solid answer for you. It eventually became muscle memory. Pickup device, swipe repeatedly; put device down; rinse and repeat. Suddenly, 30 minutes of the day is spent swiping past condensed bits of information ranging from the latest Android apps and technology, to animal videos (I love Wimp; don't judge me). If we were all required to write an essay based on a 30 minute Facebook session, we would probably all fail it miserably.

From personal experience, I've found that long form reading becomes more difficult to focus on and books become near impossible. Recently, I've become more aware of it and actually took some drastic measures. When I say "drastic," I mean in the first-world-problem sense that can be done from the comfort of my chair. I stepped back, looked at the social networks that I considered dead weight and dumped them entirely. That includes deleting my Instagram profile, shutting down my Twitter account (it has 12,000+ tweets and I couldn't bring myself to delete it wholesale) and deleting my Foursquare account. I look at my phone less and I consciously slow down to appreciate the things I read and interact with in life. It's liberating and has improved my focus.

Isn't deleting your profiles a little extreme?

Sure, but it guarantees that I won't look at them. I could simply ignore them but the act of deleting them just felt better.

Other ways to combat the static

I must admit that I have other personality attributes that don't help my case. As a young boy, my attention span was abysmal in school. If it was a subject I wasn't even remotely interested in, you can forget about it. I wasn't going to absorb any of that information. As I've gotten older it's become much more manageable but still poses a problem at times. I've found that since I've gotten into my field as a Web Developer I've had to also market myself through the aforementioned social vehicles. I engulfed myself in them and at one time had a genuine interest in reading tweets. Now, at the age of 33, I'm backing things up and re-evaluating what's worth most.

Here are some things I do and use to try and either embrace the static or silence it:

Embracing it

  • Circa - What is Circa? Circa is an app that is dedicated to delivering important news in a way that is easily digestible and highly informative. Their journalists and writers divide stories up into segments that give you the gist of the issue at hand, and the option to delve further. They also provide a map of where the story takes place, list of sources, photography, etc. If you're going to subject yourself to portable bits of information, why not make it something meaningful? Circa is my personal favorite in the list.
  • Yahoo Digest - Yahoo! News Digest is Yahoo!'s answer to Circa. It's beautifully designed and adds a small amount of gamification to getting your dose of news. It divides stories up by topic and delivers something new on a daily basis, based on the interval you set. As you read each color-coded item, it marks it as completed.
  • Feedly - Most of you probably already know of this one and RSS is nothing new, but it's proven to be a valuable tool for me. Funnel your desired info into categories and read it selectively.

Silencing it

  • Reading - This is pretty much a given but I'm talking about picking up an actual book. Not a Nook, Nexus 7 or Kindle. A real book. If you're not one for reading long books or you find that you're trying to regain your attention span to do so, like myself, poetry and short essays may be up your alley. I'm currently reading Kahlil Gibran's work and love it. Reading is also known to reduce stress.
  • Puzzles - You don't have to be an old timer to take an interest in the crossword puzzles and brain teasers the newspaper offers. Get off your phone and start doing them (in pen if you're daring).
  • App Audit - Take your phone out and scan through the list of social apps you have. Do you really need all of them? I do this every few months. Go through and audit the list of apps you have. Put them into mental categories. Absolute most important, only occasionally important and rarely used. Remove the ones you use the least. Not only will this reduce the potential number of notifications you receive (distractions!), it will free up space on your iPhone so you can finally install iOS 8.

Disrupting the disruptive

When you've been engulfed in social media for so long, it's sometimes hard to break yourself from the habits that it creates. Our nation is constantly in front of a screen of some sort and engaging in superficial ways. Laptops, phones, tablets and now smartwatches. Oh yeah, and there's Google Glass.

For me, this subject is a rabbit hole. I could go on to talk about how light from said screens resets Circadian Rhythm, disrupts sleep cycles, etc. but there are other blog posts that explain it far better than I can.

So go ahead. Get rid of some of those social profiles you don't really need. You'll feel liberated and you'll give the NSA less to track you with.

Reviewing The Kramer Mod - Improve Those Cheap Headphones

Posted on Mon 06 July 2009 in Technology • Tagged with Audio, Hack, Mod, MusicLeave a comment

Per the request of my friend JasonN I'm going to review a headphone mod that has been around for quite a while now: the Kramer mod. Because I've found it to be impossible to find one definitive source for clear steps and a written tutorial from the mod author themselves, I've resorted to a forum post that gives a brief explanation - Head-Fi.org.

Let's get started

The materials list is short and sweet and the steps are as well. Don't worry, your margin of error is pretty slim.


  1. Foam - soft foam similar to what you find on headphone covers or a microphone cover. For this I used a piece of foam cut from the cover on your standard Xbox 360 headset.
  2. Scissors - Your everyday household pair will do. You'll only be using these to cut the foam, which is soft.
  3. JVC Marshmallow In-Ear Headphones
    • You can pick these up for about \$19.99 but they've been around a while so I'm sure you can find them cheaper now. Don't worry. They're available in more colors than just pink. That just happens to be the sample I'm using for this post.
  4. Tweezers - You'll be using these to get the rubber sheaths off of the earphone tubes.
  5. A Needle - You'll need a needle to get the paper screen off the top of each earphone tube. You could probably use tweezers for this instead if you don't have access to a needle.


  1. Slide off the memory foam covers around the tube of each earphone so that the rubber sheath around the earphone tube is exposed.
  2. Grab your tweezers and pull the rubber sheath upwards so that it comes off. You might have to give these a small tug because they are initially stuck on. Be careful not to rip the sheaths.
  3. Once you've got the rubber sheaths pulled off, you should see a thin paper disc over the top of each earphone's tube. These paper discs have a small hole in the center of them. Grab your needle and put it in the center of the disc so that you can pry these discs off. Don't worry if you damage these. You will not be using them again.
  4. Take the foam you've acquired and cut a small cube for each earphone. The purpose of this foam is to act as a damper inside of the tube in each earphone. The depth of the foam cube inside of each earphone tube will affect the sound, so you may have to mess with this part to get it to your liking. Depending on your preference (whether you prefer your highs more crisp or your lows deeper), you might have to cut a couple different sizes to get it right. Fortunately for me, the first try was the perfect balance for my ears.
  5. Once you've got your cubes cut and ready to go, insert them into each earphone tube. I wasn't exactly sure how deep down they should be pushed but I don't think it makes a great deal of difference. I pressed them in so that they are slightly exposed past the edge of each earphone tube. Don't worry about using glue to secure these pieces of foam in or adhering them in any other way. They should remain where they need to be.
  6. Once you've got (1) piece of foam pushed down into each earphone tube, take the rubber sheaths we removed on step 2 and slide them back down over the earphone tube. Make sure they're snug in place.
  7. Take the memory foam earphone tube covers that we removed on step 1 and slide them back down over the earphones tubes as they were before. Now it's time to try them out.

Before you give them a try, make sure to roll the memory foam earpieces in between your fingers. This loosens the foam up a little and makes it more flexible to seat nicely within your ear canal. If the sound is not what you are looking for, then repeat the steps and try playing with the size of each foam piece you put into the earphone tube.

The end result should be a day and night difference between the default paper screens that come with the headphones, and the foam cubes we replace them with. This mod made me love these headphones 100x more and this mod was actually my entire reason for even purchasing these headphones.

Update: I forgot to mention that this mod has been used for various headphone models and not just the Marshmallows. If you find a set of in-ear headphones that have a similar setup, you can perform this mod.

CSS Tips For The Day

Posted on Thu 18 June 2009 in Web DesignLeave a comment

This past week has been a bit of a learning experience and although the items learned are small, they are worthy gems to be added to my vast CSS arsenal.

  1. CSS id's and classes can not begin with a numeric character, otherwise they won't even be recognized. I learned this the hard way.
  2. If you define the charset in your stylesheet (@charset "UTF-8";), nothing can come before it. I discovered that most browsers are a bit lax with this (Firefox) and will give you a pass. Safari, on the other hand, is strict and will give you some issues.

I found that if you place the charset in your stylesheet below a comment, Safari would completely ignore some of your CSS declarations. The problem I was running into was that the CMS we are using automatically places an opening and closing comment at the top and bottom of each stylesheet you create on the back end. This is done because the stylesheets are stored in the database and this is how it sees the start and end to each stylesheet.

On the older versions of CMS Made Simple, if you attached more than one stylesheet to a template, the system would automatically render them all in one stylesheet but it would have a start and end comment for each stylesheet. Although the newer release renders each stylesheet individually now, the start and end comments still exist - thus giving me the charset issue.

Being an avid Coda user, I never define the charset at the top of my stylesheet. I've never seen it as a diehard requirement and I've never encountered any problems leaving it out. My colleague is an avid Dreamweaver fan and if you're familiar with Dreamweaver, it automatically adds @charset "UTF-8"; to the top of any stylesheet you create.