Image for post
Image for post
Photo by Juan Di Nella on Unsplash

Recently, we’ve been doing a little restructuring of our Xamarin-based mobile apps. We wound up with a stricter pattern for building out views and their elements. Coincidentally, that’s providing faster development and more freedom to focus on the meat of making the app work really well. With the new structure, we have a more standard way of building things. As that common pattern has became more obvious, though, we’ve wanted a first-class way to encourage a common style of adding to the app. Rather than truly enforcing it, though — and boxing ourselves in — we decided to make the most desirable path the easiest. We want to provide snippets or file templates to make new development as easy as possible within our internal framework. The simplest starting point is to just provide templates that are available when you create a new file in Visual Studio. …


Image for post
Image for post

I’m addicted to staying up to date on software. I seem to do this to myself because of a healthy mix of personal and professional curiosity with a sprinkle of masochism. The latest update to Apple’s Desktop Operating System — titled Sierra — dropped this week and its actually been pretty stable. For years I had issues with my code for days or weeks after a major update, but that seems to have improved in the last few updates. That’s not to say there are no issues though:

  • Plugged into a display, my computer won’t wake up without opening the laptop…


Image for post
Image for post

Hold up. You’re still using MySQL? That’s hilarious. Droll even. Let me explain all the reasons you should no longer be using MySQL.

Everyone is using other databases like Postgres, Cassandra, Mongo, Redis, the list goes on.

If you want to attract talent, you should be using more exciting technology. Exciting technology brings the talent that can work with it and create scalable systems.

Third parties like Heroku are making it hilariously easy to use these newer, hotter databases.

These other databases obviously outperform MySQL in features, recent market share and sometimes performance.

I know a lot of people that have been successful with things that aren’t MySQL, so you should check them out and dismiss every fact, practice and battle-tested knowledge you have on the technology. …


Image for post
Image for post

We made Broadcast to help you send emails you would want to receive, to an audience you have a relationship with. It’s a simpler, smaller Mailchimp attached to your Highrise contact database. There are some unique constraints to providing such a feature, so I wanted to walk through some of how we handle your Broadcasts.

So as someone who has a paying Highrise account you just need a list of opted-in contacts and useful message to send to those contacts.

That’s it.

As a provider, there’s quite a bit more we have to consider to protect the service and keep it running for everyone. Because of some nuance to the world of email, those considerations may end up affecting you directly. …


Image for post
Image for post
The Single Server Room

In a perfect world all of your servers are hard-wired to each other in a room. There would be one opening with which the world connects to your little slice of the Internet. That way all of your cross-service communication into databases, infrastructure and other services happens within the single set of servers all directly connected.

In the modern world we often have to reach across the Internet to access services and applications. This can be an awkward feeling and presents some unique problems. However, there are a few techniques and patterns you can use to make it a little less frightening. …


Image for post
Image for post

I mentioned in my last post that I would talk about my opinions on TDD, so here it is. Kicking it off, I will explain what TDD is, how it’s meant to work. Then I’ll explain what some people have said about it and talk about what I believe the real benefits of TDD are. Finally, I’ll walk through whether I think it’s worth using and explain my use of the practice. Oh, and I’ll also provide a disclaimer as to what the heck possessed me to pile onto this already well-discussed topic.

TDD stands for “Test Driven Development.” At its core, it’s a development practice; a way to approach writing code. The rules of how to practice TDD are fairly simple at their surface. Say you have a new function that you need in order to accomplish a task: write the smallest test you can imagine, run the test, watch it respond with a failure, write the smallest possible amount of code to make that test pass, repeat until the necessary functionality is complete. With that process there are a number of benefits that people reference. …


Image for post
Image for post

Failure has a negative connotation and reasonably so; it literally means that the thing you set out to do did not happen or happened incorrectly. Looking at each step and being distressed by failure is not only a drag, it’s unproductive. Altering your perception and response to failure can make life an entirely more enjoyable and fruitful endeavor.

SpaceX is a private Space Explorations and Technology company. Basically, they launch fancy rockets and eventually want to take us to Mars for colonization.

To make a Mars trek a reality, they have to bring the cost of a ticket down to the point where they can sell to non-millionaires. Rockets today are virtually disposable. They’re launched, debris falls to the ocean and that’s it. One big way to lower the cost of a trip could be to make rockets actually reusable. Reusable rockets are more akin to how we think of Airplanes now. Landing a large needle-shaped rocket isn’t that simple a task though. They have to correct for the speed, angle, wind conditions, everything. By my count, they’ve attempted 12 propulsive landings, 3 went famously, with others having varying levels of success. Many were considered successful simply for the fact that they were able to collect a ton of data and correct their systems for the next flight. …


Image for post
Image for post
Credit: unsplash.com

In software we like to use puns and metaphors — mostly to be cute, but sometimes it gets a point across. “Technical Debt” as a term, luckily for its creator Ward Cunningham, is both cute and useful.

A system has Technical Debt if it incurred faults along the road to completion. These faults may be shortcomings in the design, infrastructure, test coverage or stability. The shortcomings may result in a brittle system, slower future development, numerous bugs, performance issues, the list goes on. Both engineers and product managers want these things to be resolved; however, the two groups see things very differently. …


At Highrise we’ve been really busy improving our CRM product. Usually our focus is directly on additions or tweaks for our customers. Currently, though, we’re also working on streamlining internally — in this case the net effect being a better, swifter support experience. Before we can add heavier admin functionality for our back-office, we need to ensure that it’s very locked down, so one of the things we’ve added internally is 2-Factor Authentication.

To avoid reinventing the wheel we decided to use a service to fill in some of the gaps. We chose Duo, which removes most compatibility concerns since it’s a fairly flexible API that does the hard work for us. Duo has a suite of APIs available to make the addition of 2-Factor Authentication secure and simple. They even have Ruby libraries. Those libraries are just repositories, though, and not registered as gems. There’s also a Third-Party library that is a gem that covers only one aspect of their API (the Web Flow). These options mean: deal with the libraries as non-gems (copy, or manage in non-traditional fashion) or use a gem that covers only one API topic. …


365 days in a year. There’s 52 weeks somewhere in there. Each week with 7 days. Every day has 24 hours. In 1 week we have 168 hours to spend. 168 hours to work, to wrap up in each others arms, to better ourselves. It seems like so much time. All this time we have and I’m not getting everything I’d like out of it. I want to learn more, write more and strengthen some of my personal relationships, maybe make some new ones. All this time we have and I don’t know where it goes. If we could only find a little more. Sadly, for now, Time is a limited resource to us all. …

About

Jon Phenow

Software, Products, Urban life and issues of the social nature. Moving stories to https://blog.jphenow.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store