Configuring procfiles
By Selena Small & Michael Milewski
Commit a8a752f
Author: Isikyus <isikyus@users.noreply.github.com>
Date: Sat Nov 24 14:48:43 2018 +1100
Procfile to run client and server together
Co-authored-by: Michael Milewski <saramic@gmail.com>
Co-authored-by: Selena Small <selenawiththetattoo@gmail.com>
Although a large proportion of rails developers use Macs, it is certainly not mandatory and people can effectively code using Windows or a flavour of linux. This was the case with Isikyus who although was proud of his own setup using ubuntu, was quick to get his hands on the keyboard and just as quick to voice his frustration with the differences with the Mac.
“There is no caps lock, this sucks”
In this case, the MacBook Pro being used had the caps lock
maped to esc
because of the fancy but
rather inconvenient touch bar. Who needs a caps lock key anyway? Well, Isikyus and people who are used
to using it, of course.
By the time we got to Isikyus, we already had rails server running and a react app set up, so there was a whole lot of context to share. On top of that the idea of two confident developers approaching you to come and code with them as they sit either side looking over both shoulders, well…
…Let’s just say that it took a little while for us all to get to know each other, to be able to talk about that context.
Dealing with personality differences and clashes can be difficult in a collaborative environment, but in a short period of time we needed to create a high performance team in our little threesome, which meant finding a way to deal with those differences and ultimately create a level of psychological safety. As a friend of ours recently tweeted
“The number one thing that is central to high performing teams is psychological safety"
The number one thing that is central to high performing teams is psychological safety (as discovered in a Google study). I personally have felt both sides of this scenario & can tell you I am a better developer when I feel safe. pic.twitter.com/iuvDN0D1lr
— Mel Kaulfuß | @mello.bsky.social (@MelissaKaulfuss) December 6, 2018
If you’ve read this far, you’re probably wondering if we even wrote any code with Isikyus. What we wanted him to help us with was coming up with a straightforward way to use the Foreman gem for publishing both our Rails backend and our React frontend on different ports.
We’d already done this before on another version of the project, so we kind of already knew the answer. But it was fascinating to receive the push back from our pair, allowing him to help us as we’d initially requested of him.
Soon enough, we found ourselves diving through the depths of Foreman parsing to find the format needed for our Proc file because to be honest, Foreman’s documentation was not that great.
We’d initially been thrown because Foreman kept published to ports 5000 and 5100 and we couldn’t seem
to pass a custom port as an environment variable to the forman start
command.
At one point, we thought there was maybe a subshell running which was unable to receive the correct
variables. Eventually, Sam, who was sitting across the room, set us in the right direction by telling
us that by default, Foreman sets PORT for the first line in your procfile to 5000 and increments by 100.
Finally, with a deep exploration of Foreman’s inner workings and a bit of help from some other developers nearby, we figured out that we just needed to export an environment variable with a slightly different name.
export PUBLIC_PORT=$PORT
lolcommit
In the end we had a great time together, solved the problem and the camera was rolling to capture the commit.
Authored By:
Selena Small & Michael Milewski