Thoughts on Data Security
The recent Equifax data breach got me thinking more in depth about the role RustProof Labs plays in cybersecurity. I'm not just talking about how we approach cybersecurity to protect ourselves and our clients, but instead the larger discussion about the need for more companies and individuals to take cybersecurity seriously.
Brian Krebs recently wrote illustrates an egregious error made by Equifax that isn't even related to the actual breach:
It took almost no time for them to discover that an online portal designed to let Equifax employees in Argentina manage credit report disputes from consumers in that country was wide open, protected by perhaps the most easy-to-guess password combination ever: “admin/admin.”
This kind of vulnerability is inexcusable considering the magnitude of the data that Equifax is responsible for securing.
Our Personal Data is Priceless
To me, my own personal information is worth more than a bank vault full of gold. I want everyone who stores data about me to treat it that way. Unfortunately that is not the reality today.
South Table Mountain Fire
This post is an attempt to document the South Table Mountain fire in Golden, Colorado. The fire started shortly before 4:00 PM on Thursday, 3/9/2017. It was fully contained by Saturday, 3/11. I have spent considerable time hiking on this particular mountain and have surveyed and updated a significant portion of those trails within OpenStreetMap.org (OSM). In fact, I was just up there a couple weeks prior to the fire starting to update OSM to include the most recent changes that Jefferson County Open Space had made to the trails.
Before I go any further, I want to give a huge shout-out to all the crews that responded to this fire and effectively controlled the burn area. 9News.com reported close to 70 firefighters from 25 organizations came together to battle this blaze. I'll call out @WestMetroFire because that's the main one I had seen posted, but I know they're far from the only ones out there. There was news that one firefighter was injured while fighting this blaze. I hope that their injuries were minor and they're doing well!
As Golden residents, my family thanks you for your service and dedication!
Whenever I see news of a fire, I am always curious about the area that burned, what is around it, and how it is affected over time. This time, with it so close to home, I decided to take a swing at documenting and visualizing it myself!
My Journey Begins
I began an educational journey, with only a vague idea of my destination, and no road map to lead me where I wanted to go. My “journey” involves learning how to design and manage relational databases. Unfortunately, taking college level courses about database design only scratched the surface. I’ve heard the phrase, education can seem “a mile wide and an inch deep.” This statement reflects my experience in the majority of my classes. The depth of knowledge was simply not provided by most of my instructors. Time after time, I experienced a lack of responsiveness from my instructors. They either had good technological skills or good people skills, but rarely did they have both. They and the course material did not prepare me for working in the real world.
I have discovered database design is challenging and rewarding work. It is worth all the effort it takes to succeed. I realized the best way for me to succeed was to find a person working in database design who appreciates hard work and good questions. My challenge was to find that special person and create a relationship.
PostgreSQL vs. MySQL: Why we use PostgreSQL
I fully believe that PostgreSQL is the best choice for a reliable and high performance database. This post was inspired after reading a post on Udemy concluding with MySQL being better than PostgreSQL. There are a number of points I disagree with in that post so I decided to make my case of why I think PostgreSQL is a better choice in most situations. In this post I start by countering a few statements from the Udemy post, providing examples from my experience and other resources. Towards the end I go over a few of the PostgreSQL features that I believe makes it truly stand out.
If all you need is to support 3rd party software that supports MySQL (and not PostgreSQL), then you obviously don't have a choice and this discussion is irrelevant. On the other hand, if you're looking for a powerful, reliable, and open source relational database platform:
PostgreSQL is my recommendation.
Testing PostgreSQL Unlogged Tables for Performance
"Data written to unlogged tables is not written to the write-ahead log (see Chapter 29), which makes them considerably faster than ordinary tables. However, they are not crash-safe: an unlogged table is automatically truncated after a crash or unclean shutdown."
It's important to note that unlogged tables shouldn't be used for storing critical data. My use case for them is to quickly load data to staging tables before cleaning and reorganizing. I end up importing large amounts of data on a regular basis, so this is of interest to me. I decided to test regular tables vs unlogged tables by importing 6 months of NOAA's hourly weather data. You can read about my previous tests with this data here.