• Codecation

    I’ve wanted to go on a codecation since I first heard about it a couple years ago. It’s a great idea. A couple of developers holed up in a new location and a new place (probably an AirBNB) with no distractions. Just an laptop and a product to build or code to write. I’m finally getting my chance and I’m pretty sure it’s going to be awesome!

    Continue Reading Codecation →
  • Ignoring Local Files with Git

    When your are working on a team, it changes some of the decisions regarding things you may or may not want to add to the codebase. If everyone has their personal preferences in a project, it can become pretty polluted.

    I often like to have some text files to track tasks and other notes regarding a feature I may be working on. I could add these files to the .gitignore file, but I’m sure I’d be questioned as to why I was adding that. And with good reason. I should only add things that are project specific, not programmer specific.

    Continue Reading Ignoring Local Files with Git →
  • Writing Code

    Anyone that knows me, knows I’m a huge fan of readable code. I think all code should explicitly say what it does. I’m favorable to long method names. Sometimes long class names. And if it makes sense, I am okay with a large number of files. Even if those files don’t contain a lot of code, but help the programmer understand what the program does.

    Continue Reading Writing Code →
  • Directing

    Going from developer to manager. Or from regular developer to senior developer. Okay fine. Director of Engineering. Whatever it is. Pick a name. At any rate, it’s not difficult. But it’s certainly different.

    Continue Reading Directing →
  • Failed Experiment

    I’ve been inspired by Jennifer Dewalt and her quest to learn how to make websites that resulted in 180 websites in 180 days.

    That’s an epic achievement.

    I wondered how this could be applied to programming? Could I create a new program/application everyday for 30 days? Not even 180. Just 30. I got my answer. NOPE.

    The first day was easy enough. A simple Pomodoro App. I actually thought I could do this. Day one was pretty simple. Well… day two… not so much. I could make some progress, but I couldn’t finish something everyday. Not and have it worthwhile or interesting.

    So I failed.

    That’s okay.

    Regroup and try something else.

    So now I am trying to just program something for fun everyday. A couple of rules.

    1. It cannot be work. Meaning it can’t be a work project, or something I have to do for my job. Even though that stuff can be fun too.

    2. It cannot be a startup, business, or for money. This changes my mindset. I think about these differently. When I mix these, the projects always fail.

    We will see how this goes.

    Continue Reading Failed Experiment →
  • Just an iPhone

    Continuing with the I think I want to make videos era has me thinking of a new constraint.

    Not only could I use stories on Instagram and Snapchat. I could limit any videos to only iPhone created content.

    I think this forces me to not get fancy. Just think about what I want to record, record it, arrange it, and post it.

    So far I’ve learned that less is definitely better. I created something way smaller today. And I think I can go even smaller tomorrow to make it better.

    Oh, and I ordered a tripod for my iPhone. Shaky video has been a problem. Short and steady.

    Continue Reading Just an iPhone →
  • Making Movies. Sort of.

    If you are a programmer, you might have heard that you should have a hobby that is not programming. I’ve always said mine was playing guitar. But if I’m honest, I don’t play that much anymore. I still play around here and there, but not nothing serious.

    I’ve been watching Casey Neistat videos recently. I’ve really fell in love with his stuff. So much so that I think I’ve been inspired to try some sort of film making. Not full blown movies with actors and scripts, but short videos of some sort. It seems like it would be fun.

    A few ideas.

    • A documentary of the making of a web app from start to finish. A behind the scenes look at what it takes to make an app.

    • Some sort of a Day in the Life of a Developer series.

    I know nothing about film making. I’ve done a small bit of reading. I tried to record some footage and then edit it yesterday. I learned that it’s really hard. Like really, really hard.

    I’m currently playing with stories on Snapchat and Instagram. This gives me the freedom to play around with scenes and different things with the overhead of editing and such, while I learn some concepts. I suck pretty bad right now, but that’s the fun part. I get be a newb for a while.

    You should say hi over there.

    Instagram: ScottRadcliffAgain

    Snapchat: ScottRadcliff

    Continue Reading Making Movies. Sort of. →
  • Retreat

    Everything is messed up today. One of those days that is just messed up from the time you wake up. Bad news in text messages, a bad haircut, even my latte is bad.

    Sitting here in a coffee shop. I just needed some time. Time away from people, from the daily routine, just everything.

    This reminds me of people that take personal retreats. They just go off by themselves and just reflect. Reflect on where they want to be. Maybe where they came from. And definitely how they got to where they are now. Maybe they think about the things in their life that they don’t like. Things that don’t bring any happiness. By the way, you should shed all of those things.

    I wonder how a person can do this without the luxury of having enough free time for that. I know I can’t get that much free time. Maybe that’s part of the problem.

    Maybe retreat doesn’t mean what I think it means?

    I guess I took the term retreat as a term to describe this type of solo time, but if you look at the definition, it has some interesting variants.

    Retreat:

    (of an army) withdraw from enemy forces as a result of their superior power or after a defeat: the French retreated in disarray.
    • move back or withdraw: it becomes so hot that the lizards retreat into the shade | a series of trenches which filled with water when the ice retreated | (as adj. retreating) : the sound of retreating footsteps.
    • withdraw to a quiet or secluded place: after the funeral he retreated to the shore.
    • change one’s decisions, plans, or attitude, as a result of criticism from others: his proposals were clearly unreasonable and he was soon forced to retreat.
    • (of shares of stock) decline in value: [ with complement ] : shares retreated 32 points to 653 points.
    • [ with obj. ] Chess move (a piece) back from a forward or threatened position on the board.

    I really like two of these. The first one. withdraw from enemy forces as a result of their superior power or after a defeat…. Often a retreat feels like regrouping after defeat. I doubt anyone would call it that. But that’s what it is. You’re defeated and need to regroup. The second one, and a more descriptive version of what I think a retreat is, says change one’s decisions, plans, or attitude… That’s really what it is. Actually. Maybe we can combine the two. withdraw from enemy forces as a result of their superior power or after a defeat, and plan to change one’s decisions, plans, or attitude for success I think I like that. I retreat because I am defeated and need to plan a new path for victory.

    If I now look at a retreat as a withdraw from enemy forces as a result of their superior power or after a defeat, and plan to change one’s decisions, plans, or attitude for success, I can manage that. I can manage a couple of hours a week to reflect and plan. It’s not always defeat, but there is always reason to plan and change direction.

    Continue Reading Retreat →
  • Unintended Consequences of Group Chat

    I’ve started to notice a side-effect of nearly instant communication within teams. This could be applied to any service. The results will be the same. But for this example, Slack is pretty much the default.

    The Era of Email

    The problem stems from how email works and how we have been trained to think about communication.

    When I send an email to a colleague, I can’t see them online. I have no expectation of when they might read and respond. Typically, I expect 24 hours reasonable. When I send a message via email, I am okay with a response the following day.

    Slack sets a different expectation. Especially direct messages. To me, a direct message communicates importance. When I receive a direct message from someone, I think this is important. It’s like setting a priority on an email. Thankfully no one does that anymore. It’s awful.

    Email doesn’t really communicate importance. Well, besides the priority method. Not that we haven’t tried. Stars, priority inbox, filters, etc.. These are all methods to try and extract things that are important. I think they all fail. Turns out chat fails also.

    Enter Group Chat

    Here’s the kicker. In Slack, we can see who’s online. More importantly, we can see who’s not online. This is where it gets tricky. If I am typing a message to someone, and that message is important to me, and I see them come online as I am typing it, still online as I send it, and then they go offline without responding to my message. It leaves me to think that they chose to ignore me. That whatever I had to say is not important to them. Even though it was important enough that I felt I needed to send it to them directly.

    Now that I know that they saw my message and chose to ignore it. Do I say why did you ignore my message? or maybe I say Did you see my message earlier?, knowing that I saw them come online and leave without acknowledgement. Maybe I just continue and say nothing knowing that I saw them ignore it. They don’t know I saw them ignore it, so it seems like a non-issue to them. A no harm no foul type of thing. This is what I do. Just let it go. But it does bother me.

    If this scenario is email. The same person can ignore my email. I have no idea they chose to ignore it and I have less of an expectation of a response.

    Maybe realtime communication is just as bad as obsessively checking our phones for updates. Checking in all the time to see if someone responded to me, to see if they are online yet, or just to see if I have missed something is unhealthy.

    Maybe this type of chat does more harm that good? Maybe I don’t use it correctly? Maybe 37Signals is right about group chat, it really is an all-day meeting with random participants and no agenda.

    And finally, maybe email still has it’s place for communication that is important and has no need to be in chat.

    Continue Reading Unintended Consequences of Group Chat →
  • Fun with Metaprogramming in Ruby

    I’ve been programming in Ruby for awhile. Somewhere around 5-6 years. And I don’t really play with the metaprogramming stuff much. I know it’s there, and I know it’s powerful, but I don’t often see a need in my day to day programming.

    I’ve been playing around with a toy app in almost pure Ruby. I say almost, because I am using Sinatra and some libraries, but no Rails or other frameworks. Sinatra has this weird instance variable thing going on where if you are sending the user back to the form after a validation failure, you don’t always get the object back, which leave the form without the previously entered values. I’m sure I’m calling something wrong. This is part of the problem with working in frameworks too much. You lose your edge on how to wire things up with just a programming language.

    So I thought it would be cool to build a couple of libraries to do some regular things that I could reuse.

    Enter FormValues. A simple class that can take a hash of values from a form and generates methods to call these values as needed. I figure this way I don’t need to keep track of objects, I can just call the methods as needed. Seems like a good place for cookies or sessions in pure Ruby. The CGI class has both of these.

    I wanted to show how I created a getter method for each key/value pair from the hash I pass in. The Hash will go away. It will probably become a cookie. I’m still hacking on this

    def initialize(params)
      @data = Hash.new
      params.each do |key,value|
        @data["#{key}"] = value
        define_singleton_method "#{key}" do
          @data["#{key}"]
        end
      end
    end
    

    So, if I pass a hash as params like this {first_name: "Scott", last_name: "Radcliff"}. I would get the methods #first_name and #last_name that would return Scott and Radcliff.

    Metaprogram all the things.

    Continue Reading Fun with Metaprogramming in Ruby →

If you enjoyed reading this, about once a week I send out a short email with a blog post or two, or maybe some programming lessons I've learned that week. Nothing spammy. Ever. And you can unsubscribe at any time. If this sounds like something you would enjoy reading, place enter you info below. And thank you in advance!

Subscribe for updates

* indicates required

subscribe via RSS