At time of writing, the Kanto ORA 100W Powered Reference Desktop Computer Speakers do not use typical speaker wire to connect the left and right speakers. Instead, they use a 4-PIN cable that I think is called a DIN 4-PIN speaker cable . The length of the 4-PIN speaker cable included in the box is 6.56 ft (78.72 inches). My desk is 79 inches wide, which is too wide to place both speakers at each…
Despite having an original Game Boy when I was young (which I only remember playing Kirby's Dream Land on), what I remember the most was my atomic purple Game Boy Color. It was my window into Pokemon and The Legend of Zelda through games like Pokemon Blue and The Legend of Zelda: Link's Awakening DX. Because of that, it would set the stage for the games I would play for years to come. The Nintendo…
I have been running this blog for over 6 years at this point, and my posts have plenty of misspelled words. I wanted to come up with a quick way to run a spell checker against all my posts and find the misspelled words. However, given that most of my posts are technical, spell checkers are not good at knowing if a technical term, command, or log output is actually a misspelled word, so when I ran…
The Lenovo ThinkPad X1 Carbon Gen 6 has pretty good battery life, but most battery tests are performed running Windows. In an effort to get a baseline of how the battery performs running Ubuntu 18.04 LTS, I will be documenting some various, real world battery tests that I come up with. There will not be anything too scientific here. I will update this post with more tests as I complete them.
I have never used a Linux distribution as my primary operating system. After using OS X, eventually renamed to macOS, for 13 years and then ChromeOS for 2 years as my primary operating systems, I decided it was time to try something new. So, I purchased a Lenovo ThinkPad X1 Carbon Gen 6 and installed Ubuntu 18.04 LTS.
In a previous post, I described how to do a clean install of Windows 10, drivers, and utilities on an MSI GS65 Stealth Thin . Despite the clean install reclaiming storage space by removing the data and recovery partitions setup by the manufacturer, depending on the type of SSD ordered, the available storage capacity can be consumed rather quickly. Luckily, the MSI GS65 has a second SSD slot, and…
Stackdriver Logging makes it easy to export Admin Activity logs to BigQuery, Cloud Storage, or Cloud Pub/Sub. Cloud Pub/Sub is typically used to export logs as messages to an external system such as Splunk . Configuring this can be done using the GCP Console.
A common configuration for any web serving infrastructure is to redirect all HTTP requests to HTTPS. Because a Google Cloud HTTP(S) Global Load Balancer is a globally available resource comprised of many software defined networking components, configuring this, despite the end result being the same, works a bit differently than what you might be used to.
I recently purchased an MSI GS65 Stealth Thin 8RE , and I immediately wanted to do a clean install of Windows 10. The reasons for wanting to do a clean install of Windows 10 are threefold: Have a better understanding of what is installed on my computer Remove the bloatware that usually comes pre-installed on Windows computers Reclaim storage space by removing the data and recovery partitions setup…
awk is a pattern-directed scanning and processing language that should be available on any modern Linux-based, Unix-based, or macOS operating system. Print N columns from all rows Print the first column from all rows: awk '{print $1}' Print the first and third columns from all rows: awk '{print $1, $3}' The comma between the column parameters in the previous command will put a space between the…
Lately I have been trying to find new ways to make all my blogs posts more relevant in Google Search Results. One major thing I have neglected to pay attention to since the inception of this blog was how my blog post snippets look in Google Search Results.
Google Drive makes it very easy to share files. You can easily and securely share files to anyone with a Google account or to anyone else by creating a shareable link that is accessible to anyone that knows the link. The shareable link contains a 33 character random string, so it's very difficult to guess the URL if you are worried about someone other than your intended recipient looking at the…
I am a big fan of Google's Chromecast . I really like having a dumb device attached to an unfortunately not dumb TV that is entirely controlled via a smart phone. It keeps the number of remotes to a minimum, and it allows anyone on your network to easily watch their own content. I rarely have troubles casting to a Chromecast except when using particular mobile apps that do not implement the…
Multi-tier architectures are a common way to design web applications: A frontend - presentation - tier which provides the user interface An application - logic - tier where the processing happens A backend - data - tier where different storage technologies run The different tiers could be deployed to a single virtual machine. Configuration management tools such as Ansible, Salt, Chef, or Puppet…
If you are just getting started with containers and container orchestration, it can be difficult to focus on what to learn with all the different technologies available. It is important to understand the basics so you can build your foundational knowledge.
There are several inexpensive ways to host a static website generated with a static site generator like Jekyll , Hugo , or Pelican : GitHub Pages Google Cloud Storage Bucket Google App Engine Amazon S3 Bucket This entire blog is statically generated using Jekyll. However, I am unable to use any of the options above, because, over this blog's lifetime, I have changed domain names, changed URL…
Get HTTP headers only Grab only the HTTP headers, instead of the entire HTTP response and content, from a URL: curl -I $URL To ensure you see the entire request/response chain, add the -L command line switch to follow redirects: curl -IL $URL Check HTTP redirects If you maintain a lot of domain redirects, it is important to make sure they continually work. The following curl command can be used to…
This blog has existed under a few domain names: workingconfig.com, thornelaboratories.net, and, now, thornelabs.net. workingconfig.com didn’t exist for very long, and never had many - if any - backlinks to it; it didn’t make sense to keep those URLs alive. However, thornelaboratories.net did exist for a longer period of time, and it had URLs I wanted to keep alive.
The yum command, and now the newer dnf command, typically provide all of the functionality needed to manage packages on RPM-based Linux distributions. However, sometimes you just need to use the rpm command to fix a problem or get a piece of information about a package yum or dnf might not provide.
I have always preferred web development. I think it is due to how quickly content can be published and made available to the world. There are an endless number of tools and resources available for web developers. This post aggregates some of the tools and resources I have used throughout my projects.
Bootstrap is a popular HTML, CSS, and Javascript frontend framework to quickly develop clean, responsive, and well layed out websites. I have used Bootstrap in every web-based project I have started because it makes styling and placing of web objects easy and straightforward.
While trying to generate Let's Encrypt SSL certificates with lego and gcloud DNS , I encountered an error that would not allow me to obtain a certificate.
Since it was released to the world, Let's Encrypt has been a boon for anyone wanting to secure their website or web application with TLS. A lot of work has been, and continues to be, done to provide HTTPS for free to the masses. Because Let's Encrypt is an open certificate authority and provides an API to create, renew, and revoke SSL certificates, anyone can create tools to make a historically…
By default, CentOS 7 will kickstart and boot using predictable network interface names . This is useful when provisioning and using similar bare metal servers, but it isn't very useful when provisioning and using disparate bare metal servers and virtual machines.
As of OS X 10.11.4 and .5, not sure which, I have issues connecting external hard drives to an Early-2015, 12-inch, retina MacBook. I suspect it has something to do with USB-C or OS X's USB drivers. Apple's OS X El Capitan 10.11.4 release notes reference updates to USB audio devices and Apple's USB-C adapters.
Print Partition Table Print partition table in bytes: parted /dev/sdb print Print partition table in sectors: parted /dev/sdb unit s print Print partition table free space in bytes: parted /dev/sdb print free Print partition table free space in sectors: parted /dev/sdb unit s print free Create Partitions Disclaimer Unlike fdisk , every parted command executes in real time. This introduces much…
ab , Apache Bench , is often used to load test websites, but I didn't find it extensible enough for my needs. Unless an unofficial patch is applied, ab cannot simulate a real person by going to random URLs over a specified period of time. This is where siege comes in.
My job frequently requires me to distribute passwords to people. Those people could be coworkers or employees from another company or organization. Passwords are something that need to be transmitted securely, but I didn't have a simple, secure way to do this.
Recursively find all files in current directory and chmod them to 644 find . -type f -exec chmod 644 {} \; Recursively find all directories in current directory and chmod them to 755 find . -type d -exec chmod 755 {} \; Recursively find all files in current directory modified in last minute find . -type f -mmin -1 Recursively find all files in current directory accessed in the last 5 days and…
Find and Replace Find and remove all instances of TEXT : sed 's/TEXT//g' Find and remove all spaces: sed -e 's/ //g' Delete all blank lines from a file sed '/^$/d' <FILE> Delete leading whitespace from front of each line sed 's/^[ \t]*//' <FILE> Delete trailing whitespace from end of each line sed 's/[ \t]*$//' <FILE> Delete leading and trailing whitespace from each line sed 's/^[ \t]*//;s/[…
Rackspace Cloud Files is, and has always been, powered by OpenStack Swift . The easiest way to interface with Rackspace Cloud Files is through the web portal or third-party clients such as Cyberduck . However, I am frequently logged into remote servers where I need to upload files to my Rackspace Cloud Files account. It would be a waste of time, and bandwidth, to download those files to my…
Cobbler has always been my goto for provisioning bare metal servers. This is due in large part to its ability to provision CentOS, RHEL, Ubuntu, and Debian easily and quickly. This post will cover setting up Cobbler on Ubuntu 14.04 and how to provision a server with Ubuntu Server 14.04.
Debian/Ubuntu's Preseed is not the easiest thing to understand. Having used Red Hat/CentOS Kickstart Profiles for so long, trying to setup a Preseed file for the first time was an extremely uninviting process. Ubuntu has support for using Kickstart Profiles , but it isn't as full featured as Preseed, and I have encountered plenty of edge cases where Kickstart Profiles do not work for provisioning…
Ubuntu has a great set of instructions on creating a bootable USB drive in Mac OS X , but they have an additional step I found not to be needed: there's no need to convert the Ubuntu ISO to an IMG file. You can simply download the Ubuntu ISO and use dd to copy it to a USB drive.
VirtualBox has always been the go-to piece of software to spin up virtual machines on your workstation. More often than not, you will work with VirtualBox using its GUI. However, for those occasions where you are SSH'ing into a remote workstation running VirtualBox, it is often easier to work with it using the command line instead of forwarding X. This post will be an ever growing list of useful…
Sony finally released a DLNA media player for the PlayStation 4 on June 16, 2015 . I don't have a lot of streamable media, but what I do have is stored on my laptop. I have used Plex in the past, but it is overly complicated and "heavy" for my needs. I wanted a light weight DLNA server that could be daemonized and point to a media directory. minidlna turned out to be the answer.
Get Info About Audio/Video File ffmpeg -i INPUT Convert from MOV to MP4 Container Assuming the source video codec is compatible with the MP4 container, no re-encoding will be necessary. There won't be any loss in quality. ffmpeg -i INPUT.mov -c:v copy -c:a copy OUTPUT.mp4 Convert Video to DVD Compatible MPEG ffmpeg -i INPUT -target ntsc-dvd OUTPUT.mp4 Add faststart Flags to Video File Adding…
I have never liked Safari's two finger swipe back animation. It is unnecessary and slow, and forces the previous web page to be reloaded (this particular part will change in OS X El Capitan). Most people's internet connections will load a web page faster than the animation can complete, so it just adds unnecessary waiting to web browsing.
More and more devices are becoming wireless. It isn't unheard of for one person to be carrying three or more wireless devices on them at one time: a phone, a tablet, a laptop, and, more recently, a watch. There are plenty of benchmarks and articles benchmarking the throughput achieved from a wireless device to a wired device - with a wireless router in the middle of course. This is useful to know…
While installing Windows 7 64-bit onto a Samsung 850 Evo SSD, I encountered error 0x80070057 immediately after formatting the hard drive. Microsoft has a couple of support articles on this issue, but neither of them provided fixes.
Datadog is a fantastic monitoring as a service company. Install their agent on your host and within seconds metrics are uploaded to their service to begin graphing. Their service can integrate with many popular products, but I have yet to find a plugin to integrate Datadog with one of the most talked about pieces of software today: OpenStack.
With the release of the new retina MacBook , all of the major tech blogs have released their reviews. Arstechnica always digs deep into the technical bits of a new Apple product and I noticed something interesting buried in one of their pages.
In a previous post, I described how to setup Varnish 2.1.5 on CentOS 6 as a caching server and load balancer . After setting this up, I realized MP4 files were not streaming and large downloads were taking too long to begin. Varnish 4 is the latest major release of Varnish and has provided fixes to all of these problems. This post will be very similar to the previous post, but will provide the new…
Varnish is a highly regarded HTTP caching server. It sits in front of your web server tier and caches content in RAM so subsequent requests are served as quickly as possible. Varnish can also be a basic load balancer. Combining a caching server and a load balancer works well when one or more of your web servers becomes unavailable. Because Varnish is also acting as the load balancer, no longer…
I recently setup a two node replica Gluster cluster on CentOS 6.6 with Gluster version 3.6.2-1. I setup a private network specifically for Gluster replication and communication and binded the Gluster daemons to this network.
After setting up a two node replica Gluster cluster to use as a web content backend, I began testing what would happen when I brought down one of the Gluster nodes. The web nodes access the Gluster cluster using the GlusterFS native client, and I expected them to quickly see that one of the Gluster nodes was down and begin serving content from the healthy Gluster node, but that was not happening.…
Every since I upgraded to OS X Yosemite, the experience has been lackluster. A simple Google search will reveal a host of problems Yosemite has introduced, but the absolute most annoying problem for me has been the UI lag. This UI lag mainly occurs when I have an external monitor attached.
There was a period of time when I wanted to inject an ad into a particular part of every Jekyll post. I did not want to put the actual ad markup in the middle of the Markdown text file because it was ugly and would be difficult to manage if I had to make changes.