Heroku now deployed through Github

heroku-logoI’m a big fan of Heroku setup for pet projects. With it I am able to quickly deploy a project without having to develop on some proprietary  framework or prep a server to host a website. I especially love how easy it is to deploy directly from my local machine through a git push to master, and my ability to run and configure the system through a dashboard or command line toolbelt.

Until now however, I needed to keep two repos to manage my source code. One in Github for sharing, viewing, and tracking; and one in Heroku for deploying. Last week Heroku released a new feature that allows you to connect your Heroku account to Github: https://blog.heroku.com/archives/2015/2/6/heroku_github_integration

You can use this new feature to select which branch Heroku should use to trigger auto-deployments, as well as run pre-checks against your C.I. system tests. In short, I likey 🙂

wanderworld_·_Github___Heroku

Efficiently Inefficient: Processes that can improve quality and quantity of life

For our latest project at Socialize Isaac and I are going to increase the release cycle even further and go from a few releases per group per week, to a few releases per day. I find moving more efficiently and quickly over the years always takes a few non-intuitive jarring mental steps. (If they didn’t we would have been way more efficient as a society way earlier on in history).

Here are a couple things that always seem to be the foundation of inching your way up the efficiency hill.

1) Get to a point at which you truly trust your results, not just feel good or secure about them, but quantitative based results that have a quantitative “I trust this” number. This is what I call the “don’t look over your shoulder moment”, because if you’re looking over your shoulder to make sure nothing has gone wrong, you are not looking forward to make sure new things go right. This accomplished with unit/itests tests, or in our everyday lives marking your calendar or adding a reminder. Even at managing people in the office, time and time again setting up employees to be trusted and autonomous, with a simple audit system to make you aware only if something is wrong, has proven time and time again to produce happier, more creative, more productive employees in a company that can scale. Basically every one wins big when you make sure you create process that handles things that are set to let you know if you need to take action, and quite %100 otherwise.

2) Really reconsider what you’re are willing to bare in mistakes. This is usually a major brain switch moment. Sometimes people can work 100x more efficiently and productively if they just allow themselves to be wrong for a totally fixable 1 minute per year. Yes your server may go down once a year, but instead of working hard to make sure that never happens (which is impossible), work hard to make sure systems are in place to recover super quickly. The funny thing is when you accomplish #1 above, mixed with this #2 item, you start performing better than you could have imagined.

3) Remove process that is there to support the more intuitive faux “warm and fuzzy” feelings that keep 1 and 2 from happening.

4) Always push yourself, and those around you, to test process that offer efficiency gains even if you don’t feel comfortable at first. Comfort is often the foundation of slowness, and trying new things even against your “better judgement” are the only ways to break free.

 

For you nerds out there, here is the article from github Isaac passed on to me that sparked our latest evolution in product releases. Although this post and its sentiment are, in my book, universal throughout life and business and not code.

http://scottchacon.com/2011/08/31/github-flow.html

Fake Response Server: Slow response time generator

Here is another quick tool built on AWS. This one is super simple, but pretty handy. Today Twitter went down, and somewhere in our system we were using the Twitter API to display one of our status feeds. Them being down became us being slow.

Well, I wanted to do some quick tests to keep this from happening again, but byt the time I got to it Twitter was responsive again. To fix it I would need to create a bad URL. The crappy thing is I wanted a slow response time, not exactly a bad response/error. Creating a 404 error is easy, just go to some url that doesn’t exists and test. But I want a slowwwww response.

I quickly searched Google for something I could use, and didn’t find one. When I realized I would have to create a fake pause endpioint somewhere I figured someone else out there might benfiift from a quick public version of this system. So, I created fake response server. The first default endpoint available sleeps for a variable time.

https://fakeresponder.com

and add a sleep param to change the sleep time in milliseconds

https://fakeresponder.com?sleep=500

Nothing major, but why not publicize the tool incase it can help some other shmuck out there like me 🙂

Cheers.

Release Notes Generator (For Pivotal Tracker)

Here is another quick tool built on GAE. It takes all your PT stories and bugs, scrapes out chores, and release stories, leaving a listof features and bugs available to copy and paste in to your release notes, emailer, or README file.

Often departments always asking if a release is out, what features are included, and if it is not out how long until it is. This tool will also print a header letting the person using the tool know if the release in question is out, and if not how far down the pipeline it is.

To use the tool most effectively you should check out my post on releasing versions through PT. (coming soon)


Download RNG for PT


Or fork and contribute on GitHub