Technology

Voat: What Went Wrong?

Tenderness by Ricardo Gomez Angel
Tenderness by Ricardo Gomez Angel

Voat is a link aggregation platform, where users can submit text or links to content, comment on existing submissions and vote both links and comments up or down. It’s essentially a Reddit clone, but, due to several bad design decisions, it has become known on the rest of the Internet as a community that promotes intolerance and hate speech. Voat didn’t start this way, and many of its early users were similar to those in the communities on other social networks. But due to a series of design decisions, including its contributor point systems, Voat was constructed in such a way as to converge on narrow view points and become the platform that it is today.

Read More

The Death of the Mom and Pop e-Store

Small wooden manikin toy pushing a shopping car with packages in front of a laptop with the word e-commerce on it screen, blurred in the background

Back before I first left the United States in 2012, I’d often use price comparison websites when trying to find parts for computers and system builds. These sites tracked prices from hundreds of small vendors, some of which had brick and mortar stores, others wer storage warehouses, and others were simply drop shippers. Upon returning to the country, I found that most of the old comparisons sites I used were void of those smaller individual stores, replaced by less than a dozen of the big retailers. While I was away, the era of the mom-and-pop e-commerce website had ended, with most retailers now using marketplaces provided by the large players like Amazon, eBay, Newegg and others.

Read More

Rooting a Razer Phone Requires a USB 2.0 Link

Razer Phone

I’m not one of those people that can buy a phone and start using it. I usually root my device and flash a custom ROM not long after I first turn it on. Where normal people can start using a new device immediately, it usually takes me a day or two before I can do the same, dealing with some weird edge case of missing documentation, just to get basic administration rights on my mobile device. Although Razer has official instructions for unlocking their devices, and there are many third party guides, I attempted to avoid a critical step mentioned in their documentation. Even when I followed it, I still ran into problems, and found it fascinating that Razer devices can only be flashed via a USB 2.0 link. I’ve documented some of my error messages here, in case anyone is confounded by similar issues.

Read More

Louqe Ghost S1 Build and Review

Ghost S1 Case

I had been working off of my laptop for several months, but some performance issues and thermal throttling led me to revert back to building a desktop. I had sold my previous build before traveling across the US, so for this particular build I wanted something in an ultra small, easily transportable form factor. I decided to jump in on a crowdfunding effort for the Louqe Ghost S1 ITX case. This review covers installing my system into this very compact ITX case, my first experience with water cooling and what to expect for others when considering the Ghost case.

Read More

Using Custom CSS with Mastodon

Multi-color Mastodon Elephants

Mastodon has an option for applying custom CSS from within its administration panel. Unfortunately, I couldn’t find any examples of what this CSS should look like, even after asking in the Mastodon Fourms. I did discover how tricky modifying Mastodon CSS can be. I couldn’t figure out why changes to the body element wouldn’t affect anything, and was informed that Mastodon draws to a component with the .ui class. Through some careful work with the Firefox development tools, I was able to figure out which CSS selectors controlled what, and have tried to build a list for getting started with creating themes in Mastodon via a custom style sheet.

Read More

The Decline of OpenID

OpenID Logo

In July of 2018, StackExchange ended support for allowing people to login via OpenID. One tenth of one percent of their users were logging in using OpenID, and I was one of those last remaining people. In an era where every website allows people to create accounts and login using other websites (e.g. Facebook, Twitter, Google, Github, et. al.), OpenID was an attempt to create a standard to allow anyone to use any identity provider to login to web applications.

Unfortunately OpenID has slowly fallen out of use. Several major OpenID providers have gone offline over the years, leaving some users stranded without a login to services they use. Websites like Woot, Slashdot and Pypy, all which supported OpenID at some point, have slowly (and often silently) removed support. Other sites such as Freecode and Gitorious supported OpenID until they closed down. Although we are entering an era where more people in tech are pushing for distributed systems for content and social networking, the era of federated authentication via OpenID is most likely at a dead end.

Read More

I paid $180 for Headphones that only lasted Two Years

Jaybird F5 Freedom Earbuds

On July 12th, 2016, I purchased a pair of Jaybird Freedom F5 earbuds for $180 from an eBay vendor. I really liked these headphones. They had clear audio, good sound reproduction and I used them to listen to music and podcasts on my morning and evening train commutes. They refused to power on recently, and I discovered that this was a common problem mentioned on various product forums. I contacted Jaybird, provided my serial number, and discovered my warranty had expired. There was no option for me to get them repaired, even though I was willing to pay. I was offered a coupon for a 30% discount on another Jaybird product which could potentially stop working in another two years.

Read More

My Love Hate Relationship with Docker and Container Orchestration Systems

Fenced Consumerism - Journey of Khan
Fenced Consumerism - Journey of Khan

Docker was first getting big while I was working for an open source shop in New Zealand. At work we’d joke about containers, mostly because of our misconceptions. “Aren’t they based on LXC containers, which are full of security holes?” a co-worker and I would ask. When CoreOS was released, initially we laughed but also realized people were taking containers seriously. Late one night at a bar, some German developers who ran a name registrar, talked about how amazing Docker was and how they were currently running it in production.

It wouldn’t be until I took a contract in Seattle that I was really exposed to Docker. I worked at a shop that ran a CoreOS instance, and eventually switched to a company wide DCOS/marathon based platform. I learned a lot about containers, embraced many of their advantages, as well as becoming incredibly frustrated with their limitations. Despite the issues, I started to prefer using containers, and even wrote a tool for managing the containers I use to host this website. In this post I intend to cover what I’ve learned about containers, their strengths, their limitations and some good ways to incorporate them into your infrastructure.

Read More

Bee2 In Production: IPv6, HAProxy and Docker

Airwhale

Over the past few months, I’ve been working on Bee2. It’s a provisioning system for automating the process of building, running and maintaining my own websites and web applications. In previous tutorials, I had gone over provisioning servers using APIs, configuring those servers for remote Docker administration via a VPN, and automating LetsEncrypt and HAProxy in containers. Bee2 has gotten mature enough that I’ve finally migrated many of my production sites and web applications to it, including this website. In this post, I’ll go over some of the additional challenges I faced with IPv6, and refactoring containers to allow live HAProxy refreshes.

Read More

OpenBSD, SpamPD and the Startup Bug

OpenBSD Logo
OpenBSD Logo

Recently I added e-mail support to Bee2, a tool I use to provision servers and services for personal projects. My existing e-mail server ran on an openSUSE 13.2 box which stopped receiving security updates in January of 2017. I’ve been building Ansible roles to provision a replacement running on OpenBSD, and I found an interesting bug with a proxy filtering service called SpamPD. The bug prevents SpamPD from starting correctly with the standard OpenBSD rc.d service scripts due to the weird ways the OpenBSD init process works.

Update: This bug has been fixed and should be available in the next release. For more information, see the github issue and the OpenBSD ports mailing list.(Updated: 2018-08-27)
Read More