THE MYTH OF SCHEMA-LESS

I have grown increasingly frustrated with the world as people have become more and more convinced that “schema-less” is actually a feature to be proud of (or even exists). For over ten years I’ve worked with close to a dozen different databases in production and have not once seen “schemaless” truly manifest. What’s extremely frustrating is seeing this from vendors, who should really know better. At best, we should be using the description “provides little to no help in enforcing a schema” or “you’re on your own, good luck.

CQLENGINE INTRO POSTED ON YOUTUBE

CQLENGINE NOW USING THE PYTHON NATIVE DRIVER

I’m happy to announce that cqlengine is now using the Python Native Driver. For the most part, this should be a trivial upgrade. See the notes below on upgrading. The Good News Significantly less code to maintain in cqlengine itself. We no longer need to maintain connection pools, deal with fail over, dead servers, server discovery, server removal Native driver multiplexes queries over each socket, so less sockets stay open Notifications can be sent back to the client from the server.

NO DOWNTIME DATABASE MIGRATIONS

Introduction Back at my last job, we successfully migrated from MongoDB to Cassandra without any downtime. We did two webinars with Datastax at the time (I am now a Datastax employee). Our first webinar was a general overview on the migration. The second, we covered some of the lessons we learned after being in production with Cassandra for a while. We touched on our migration process, but didn’t get deep into the details.

AN INTRODUCTION TO ROADHOUSE

Introduction In this post I will provide an introduction to Roadhouse, a python library for managing security group settings across multiple VPCs in AWS. At the conclusion, you will have an understanding of the benefits of using Roadhouse as well as be able to implement it yourself in your infrastructure. First off - what is the purpose of a VPC? A VPC provides an isolated network within Amazon, allowing you similar control as if you were managing the switches yourself.

GIT ALIAS FOR SIMPLIFYING GITHUB PULL REQUESTS

As cqlengine has picked up in popularity, so has my need to review pull requests. Here’s the git alias that I’m using: [alias] pr = "!f() { git checkout -b pr_$1; curl https://github.com/cqlengine/cqlengine/pull/${1}.patch | git apply -3 - ; }; f " To use, you simply git pr 51 or whatever the pull request is. Here’s what it’s doing: Creating a branch pr_[pull request number] Pulling down the patch Piping the patch to apply.

CORS WITH WILDCARD SUBDOMAINS USING NGINX

This was originally posted on the SHIFT developers blog. First off - what is CORS? CORS is a means of allowing cross site requests. You can read up in lengthy detail on it’s features here. Simply put, it lets you be on one domain, and perform XMLHttpRequests to another, which is normally not allowed due to the Same Origin Policy. The domains that may hit your server must be specified in your configuration.

CASSANDRA FAQ: CAN I START WITH A SINGLE NODE?

A frequently asked question on the mailing list by developers new to Cassandra is if it’s possible to start with a single node and scale up as their needs grow. This seems to come most often from people familiar with MySQL, Mongo, or another database which uses replication to scale reads. The short answer to this question is yes, you can absolutely run a one node cluster. However, it’s important to understand the caveats of doing so.

SETTING UP A WIRELESS ACCESS POINT WITH UBUNTU RARING RINGTAIL

I’ve finally gotten sick of having a terrible wireless signal in my room, and I have a server in my office (hard wired via gigabit) so I figured I’d set it up as a wireless access point. There’s a lot of information in various places on how to set everything up, so I figured I’d try to wrangle everything in 1 spot. Install the card. I used a TP-Link WDN4800. Sadly I don’t have a list of all the compatible wireless cards, but it seems that having something based on the Atheros chipset is a good thing.

WHAT'S NEW IN CQLENGINE 0.7

Recently we released version 0.7 of cqlengine, the Python object mapper for CQL3. We’ve been steadily moving towards full support of all of CQL3 for both queries and for table configuration. This post will outline the new features and provide examples on how to use them. Counters With counter support finally included it’s now possible to create and use tables with counter columns. They are exposed to the Python application as simple integers, and changes to their values will be sent as deltas to Cassandra.