Markdown to Confluence Wikis 27 August 2017

image DB Schema Changes

Markdown converted for Atlassian’s Confluence

If you ever have a need to convert a bunch of markdown or html files to confluence it is really easy. Their Rest-API is pretty clean and if you use Ruby there is a small Confluence API gem to make it even easier.

Why Move To Confluence?

Why would we move our documentation from Markdown in a git repo, to Confluence? Well our team is growing and we interact with more and more non developers, who could benefit and contribute to our documentation. While some of our documentation was very technical much of it wasn’t. It would be helpful to our Support, IT, Project Management, and Stakeholders. Markdown and git aren’t the best way to get other folks comfort able reading or contributing to our documentation.

  • Increased collaboration
  • Simplified access control to read
  • Ability to mix ticketing, widgets, and wiki docs

That was enough for us to decide on moving our documentation over.


Information Architecture Changes 13 August 2017

image DB Schema Changes

Visualizing DB Schema Changes, even at a quick glance better structures stand out

Information Architecture Changes

Creating a robust Data Model for your business & application is one of the most important things to get right. We still don’t have great tools available for discussing proposed database schema changes. Fixing a bad data model after data has started flowing on a production system is more complicated & time consuming than folks estimate. A series of not fully thought out data decisions early on can cut a team’s velocity significantly. This is due to time being spent on trying to fix bad & invalid data, adding missing DB constraints & validations, and refactoring towards a more appropriate data model.

What can we do to ensure a more robust model from the start and increase the confidence we have in data model changes?

A Proposal For More Communicative Data Model Changes

Below, I will lay out a proposal we are iterating on as part of our OGE team best practices.

Our Goals:

  • Ability to communicate anticipated impacts of our data model changes clearly across Development, Project Management, & Business Intelligence teams
  • Ability to quickly visualize changes (faster feedback loop)
  • Reduce bad data models making it to production
  • Support both interactive & asynchronous communication styles that work best for our distributed team
  • Ability to see high and low level details using the same data
  • Easily integrates into our tool chain

Most Valuable Code 20 July 2017

image detect

Obama writing JS with

The Value of Code

While both of the below examples are obviously a bit exaggerated they do capture the point. The code we write has value because it solves some challenge.

The Best Code is No Code At All
-Jeff Atwood


Programming is a means to an end, not an end in itself. You should be trying to do as little of it as possible to make the thing that you want.
-Jake Levine

Most Valuable Code I’ve Written

Given that I think the most valuable code I have currently ever written is a stupid and simple method. This is a recreation of the method below avoiding un-important internals.


Phone Number DB Types 26 June 2017

image columns

tweeting about DB phone number formats

How to best store & query phone numbers in Postgres DB

Update: 06-27-2017, See the update & round 2 section below for improved and corrected data

After some frustration cleaning up some of our information architecture related to phone numbers. I posted the tweet at the top of this article.

It actually lead to far more responses, questions, and discussion about the best way to store numbers… It made me think that perhaps our quick attempts to extract the best process out of multiple production table cleanups, could be missing something. I decided it would be pretty easy to try to dig in a bit deeper for a more data backed answer. I definitely don’t claim to be a DB performance expert, so perhaps we had reached some wrong conclusions.

image columns

a portion of the sub-discussion from the original tweet

image columns

a pretty strong statement saying we got this wrong


Unused DB Columns, via logs 20 June 2017

image columns

a search for ‘unused columns’ brings up this image from Flickr user @denisbin.

Detecting DB Column Usage

I have always been interested in ways to automate & cleanup old unused code. Removing the clutter helps focus in on the things that matter and make clear patterns emerge.

This post continuing on some database cleanup work. The first post of the series is, cleanup unused tables in your database

After taking on full tales, I wanted a way to find unused fields. I came up with two easy ways to try to automate detecting this in a Rails app.

  • Previously covered: Query the DB’s paper_trail history
  • In this post: We will cover query logging and searching field usage via a log aggregator.

Paternity Leave 15 June 2017

image detect

I am on paternity leave, actually my second of 2 staggered Paternity leaves. I am about 1 week into my second leave, hanging out with little Theo. I have some time off to bond with my kid, but more importantly my wife has some time to go back to work and stay focused knowing, I’ve got this.

Men’s Paternity Promotes Gender Equity

My wife started sharing a bunch of information about paternity leave when we started discussing having a child. The choices men make to be more involved with the kid can help women who choose to work to avoid some of the associated career setbacks that often come with becoming a mother. There is some interesting research going on here, it seems to impact both work and home life. Increasing men’s participation in chores and playing with children. I suspect that has something to do with the empathy gained, spending time at home alone with the kiddo.

image detect

Dan Mayer Profile Pic
Welcome to Dan Mayer's development blog. I primary write about Ruby development, distributed teams, and dev/PM process. The archives go back to my first CS classes during college when I was first learning programming. I contribute to a few OSS projects and often work on my own projects, You can find my code on github.

Twitter @danmayer

Github @danmayer