Categories
Development

Ruby is Wild

Ruby sometimes feels like the grumpy parent that gives in to a child’s demands, after they’ve thrown a tantrum. In this case the child represents us, programmers.

Though if you look at it more carefully, you’ll find that, in fact, Ruby is a language that respects the programmer. That explains why there are so many things you can do, which you can’t do in many other languages.

While not the most fascinating tidbit, I found the following quite interesting:

class Bonkers
  def go_wild
    def wilder
      def i_said_wilder!
        'okay'
      end  
    end  
  end  
end

Interestingly, all methods above are defined for the Bonkers class. So if you instantiate an object of this class, you’ll have all three methods at your disposal to call.

[1] pry(main)> class Bonkers
  def go_wild
    def wilder
      def i_said_wilder!
        'okay'
      end  
    end  
  end  
=> :go_wild
[2] pry(main)> o = Bonkers.new
=> #<Bonkers:0x000000014c2c3e20>
[3] pry(main)> o.go_wild
=> :wilder
[4] pry(main)> o.wilder
=> :i_said_wilder!
[5] pry(main)> o.i_said_wilder!
=> "okay"
Categories
Development

Reclaiming Some CPU Cycles From Apple

There I was, on a cloudy Saturday, working on a command-line tool for fun and no profit. As I went through the compile and run cycles, I became more and more frustrated at the time it took to run the newly compiled binary. This issue is also described in a post I ran into some time ago, which goes into the pains inflicted by Apple’s notarization “feature”.

Anyway, I could no longer take it. That second it took to actually start executing my binary, felt like an eternity. The solution? Open System Preferences, then go into Security & Privacy, switch to the Privacy tab, and then scroll down the list until you find Developer Tools. Add Terminal to the list of allowed apps, or toggle its checkbox if it’s already there, and voilà! No more delays!

Categories
Life

Life and Death

The very foundations of our existence. Joy and pain. Laughter and crying. To be and then to not be.

When people are born, they often bring joy to those close to them. A responsibility; one more mouth to feed; one more person to worry about; one more reason to lose sleep. Yet, if you ask most parents, the first word they use to describe the emotion brought by a newborn is “joy”.

Just as people are born, a time comes when they pass away. One less responsibility; one less mouth to feed; one less person to worry about; yet again, one more reason to lose sleep. Naturally, a word some would use to describe the feelings brought by death is “pain”.

Our lives are intertwined, more so with members of the family than friends or acquaintances. When people pass away, a part of ours dies with them, and a part of theirs lives on with us.

Three deaths in a little over a year. Though never the same, you never get used to it. We’re bound to go through the stages of grief, over and over again, until it’s our turn to leave this world.

Bittersweet memories. Random tears. Yet, a life worth living. Life experiences in time lead to a more sophisticated emotional palate. We learn to extract value from the saddest of memories, finding happiness in pain like astrophotographers extract light from the faintest of stars.

Categories
Work

Working Remotely

Not long ago, a surprisingly awkward topic. Some argue it still is, but I’d say less so.

It’s not hard to imagine the awkwardness comes from how humans have traditionally gone about their work. From the early ages, almost all kinds of professions, be it building, forging, trading, etc., required the worker to be present at a certain place to be able to carry out their job.

Even with today’s technology there are tasks that cannot be accomplished from distance – certain medical procedures come to mind. But it is inexcusable to only consider working remotely as an option when it becomes the only one. We had to go through the COVID-19 pandemic to make remote work a viable option. That makes you think hard about the real reasons why companies didn’t allow that before.

I’m lucky to have been working remotely full-time for more than 3 years now. And although I’m not the expert on the topic, I’m going to list some common doubts people have about working remotely, and my opinion on each.

Remote work is not for everyone.

Yeah, and 9 to 5 jobs are not for everyone. This isn’t really a valid argument; it’s a bit like saying the beach is not for everyone. If you don’t like it, that doesn’t mean nobody should have the option to work remotely even if they want to. But I implore you to read on…

It’s too hard to stop working

At first, it’s understandable to have some difficulty disconnecting from work when working remotely. After all, it’s a whole new way of doing your job. In an office, you see your colleagues getting off their chairs, heading towards the exit as soon as the clock hits 5. The same might happen remotely, e.g. you might see your colleagues going offline on Slack, but it’s much less obvious.

My advice is to set a rigid schedule for yourself in the first few weeks, especially if you’re suffering from the impostor syndrome. Once you get the hang of it, you can start experimenting with different schedules, depending on what your day looks like. It’s also totally okay to keep the rigid schedule. I know a lot of people that treat their remote job as a 9 to 5, and it works flawlessly for them.

Remote work requires too much discipline

This is the opposite of the issue above, but is raised just as often. Just goes to show you that there’s no “one size fits all” when it comes to humans. Now, doesn’t working from an office require discipline as well? I’d argue working from an office requires even more discipline: what’s stopping you from lurking on Reddit for a good 8 hours, and then calling it a day? Heck, perhaps you are slacking off at the office as we speak.

Don’t get me wrong, procrastination is a real problem, but it’s usually a condition that hides deeper issues than just “I need to work from an office”, or “I need to work from wherever I want”.

It gets too lonely sometimes

That is true. We humans are social beings, and we crave social interaction. Many companies have found creative ways of creating “water cooler” moments, such as a #watercooler channel on Slack, or informal channels such as #cat, where people can pay their cat tax (here’s mine).

Needless to say, the above is not enough. But limiting your friendships to just your colleagues is not healthy, no matter how much time you spend at the office. That’s why I encourage you to meet new friends, perhaps by getting into new hobbies, or joining a group or class that interests you, etc.

I can’t work where I eat and sleep

I actually had a friend say this to me, when I asked him about his experience working remotely during the second week of the coronavirus lockdown. The feeling comes from what is perhaps the biggest misconception about remote work. Working remotely does not mean you should work from your couch, your bed, or your carpet – though it can be fun sometimes.

You need to have a special place somewhere in your home that you call “your office”. It doesn’t have to be a full-blown office. Even if it’s a tiny corner somewhere in your bedroom, having a special place where work happens might help you get in the headspace you need to be in.

What may come as even more of a surprise is that your office doesn’t even have to be in your home. You could get a membership at a co-working space near you, if that’s more your style.

Personally, my usual work day is split between working from my home office, and working from my favorite coffee shop. You see, remote work is not about “working from home”. It’s about having the freedom to work from wherever you feel like. Whether that’s the couch, your local coffee shop, or your own desk at a co-working space, that’s up to you.

The time is long overdue for remote work to become the new normal. With governments working remotely, and amazingly remote surgery being a thing, what’s stopping your company from adopting remote work?