Archive for January, 2021

New Talk – “Improving Code: Refactoring Test Code”

After a short hiatus, the Improving Code user group is back. The first talk of the year happens online next week, Feb 3, 6:30pm CDT. RSVP here, will ya?

Refactoring Test Code

Every developer hears about the TDD process as “Red->Green->Refactor”. Some never get to the “refactor” part. Some only refactor the “production” code, but not the test code, after all, that’s “just test code”. Tests become cluttered, hard to maintain, and are abandoned.

In this talk, let’s have a look at some ways to refactor “test” code (C#, JavaScript/TypeScript, unit/integration/end-to-end…).

https://www.meetup.com/Improving-Code/events/276006936

Leave a comment

Favorite Books I’ve Read in 2020

Here are some of my favorites books read in 2020, in no particular order.

Sum: Forty Tales from the Afterlives

Derek Sivers has a great summary of that book. I’ve read the book around the same time when I finished watching The Good Place (which I loved!). Both the book and the series touch on topics I catch myself thinking about often.

The Phoenix Project / The Unicorn Project

I enjoyed both books a lot. I like the novel approach (inspired by The Goal, which is another book I like).

Badass: Making Users Awesome

I absolutely loved this book!! Watch this 2-minute long video. I’ve enjoyed this book so much that it’s one of the books I have on my list to re-read this year.

Total Recall / Losing My Virginity

Those are the autobiographies of Arnold Schwarzenegger and Richard Branson, respectively. Two remarkable individuals.

Hell Yeah or No / Your Music and People

If you’ve been following my blog, you’ve noticed I mention Derek Sivers quite often. I’ve been following his writings for several years and will continue to do so; he keeps putting out great stuff in a very simple, distilled manner.

The Obstacle is the Way

I’ve been hearing and reading people talk about stoicism a lot over the years, but never really sat down to look more into it, until last year. I’ve enjoyed The Obstacle is the Way, and even gifted a copy to a friend, with page markers on passages that I believe can help him accomplish the dream he’s chasing.

Image by Linus Schütz

Leave a comment

On Failure

An artist I look up to is Devin Townsend. He is an amazing singer, prolific songwriter, hilarious in his performance, and a great mind.

Months ago, I’ve run into the Devin Townsend Challenge video. From its description: “Get a unique insight into Devin Townsend’s creative process in this two-hour video where he records a completely new track from scratch.” I was intrigued and am glad I’ve watched the whole thing. It’s not everyday we get a chance to witness a brilliant mind at work.

Devin’s albums and concerts are always very polished. Everything looks and sounds flawless. This is one of my favorite songs and performances by him: Devin Townsend’s Kingdom

The most important thing I got out of his “challenge” was his transparency into his process. He didn’t try to make anything look or sound perfect. He showed how he fails many times until he finds what he’s looking for. He also shows how he uses certain building blocks that have worked well for him, which are part of his musical fingerprint, so new creations come out a little easier.

I then found this great article:

Devin Townsend’s Advice to Younger Musicians: “You Need to Learn How to Fail Efficiently”

The title of that article alone already makes me sit back and think about it.

How much effort goes into trying NOT to fail? That’s a waste of energy. We’re not likely to get it right the first time. And even if we do, what do we learn from it? I don’t know who said this, but it’s a good quote: “It’s only failure if you don’t learn from it”.

A few weeks ago I’ve put up a dartboard in the house. Say I walk up to it, throw the first dart, hoping to hit the bullseye, and it doesn’t come even close. I can get frustrated, say I suck, throw the 2nd dart, and do even worse. Or, I can throw the 1st dart accepting that I may not hit the bullseye, but being aware of things such as how I’m holding the dart, how I’m aiming, how much force I’m using to throw, the dart’s trajectory, etc. Then I see the result, and try it again, learning off the experience I’ve just had, coming up with a new plan (throw higher, softer, relax the arm, etc.) and then there’s a good chance the 2nd throw will go a little better. Rinse and repeat.

So, as Devin says, we need to learn how to fail efficiently, so we aren’t afraid of failing, and are better equipped to give our best and learn with the experience.

I love this quote from a TV show I’ve never watched:

“Dude, suckin’ at something is the first step to being sorta good at something.” – Jake, “Adventure Time”

We all have a tendency to see successful people and get frustrated when we can’t repeat their success. We compare our beginning to someone else’s middle. We don’t think of all the roads they tried to get to where they are. I think of Tim Ferriss’ The 4-Hour Workweek hugely successful book, and how it was rejected 25 times, before he finally got an offer from a publisher. 25 times! We are always afraid of failing one single time, let alone 25 times.

Here’s a great 5-minute talk on Why You Need to Fail, by Derek Sivers.

There are many things I want to do, many goals to pursue. I’ll add a task to each one as a reminder to ask myself “how can I fail efficiently?”.

Leave a comment

There Once Was a Magazine…

I have mentioned about the importance of technical communities for me. This month, I take a moment to reflect upon something I was doing related to communities 20 years ago: in January of 2001, the first issue of RapoZine was released!

Still living in Brazil at the time and participating in a community that craved for content in Portuguese for Visual FoxPro, I got together with two other members of the community to put out this little magazine. Leandro W. and I would each write half of the content, and Nilton P. would take care of the website where people could subscribe.

We’d print out the pages at whichever company we were working at the time, and mail it out to the subscribers. Simple and easy. Nothing fancy needed. The community was craving for content! For that first issue, we also enjoyed an article contributed by Ellen W., from CoDe Magazine.

In its first year, we had about 120+ subscribers.

It was a ton of work to get monthly content written and put out like that. That’s how I got started on technical writing.

The name RapoZine was a combination of “Raposa” (Fox in Portuguese) and “magazine”.

When the printing and mailing costs got too high, we eventually alternated into a digital version. The articles were created in HTML, compiled into a password-protected EXE file, and a download link was sent to the subscribers. I need to dig up some old backup files… I may still find some of those issues here.

With my plans to move to the US in 2002, I didn’t have time to keep the magazine running. Fortunately, the main worldwide FoxPro community at the time, the Universal Thread, which also had their own electronic magazine, UTMag, approached me to join forces, and we merged UTMag/RapoZine for the community. The magazine became free for all, and published in three languags: English, Portuguese, and Spanish! The Universal Thread had a great system to allow translators to collaborate and get the content out. I continued as a co-editor and coordinator for the translation team. About a year later, the Univeral Thread acquired RapoZine, and I stepped away to pursue other goals.

When I was reading Richard Branson’s autobiography last year, and learning about how he started his professional life with Student Magazine, it got me thinking back to RapoZine.

Leave a comment

2020: Annual Review

Time for my traditional Annual Review, which started back in 2015. While some people, understandably, have strong reasons to completely erase 2020 off their minds, I have worked hard to build great memories in the midst of everything that was going on.

So, let’s start from where my 2019: Annual Review ended. At the time, here are the things I said I was working towards:

  • Continue Growing Beyond the Track
  • SportBike Track Riding
  • Solid initiatives at Improving
  • Get better at Spanish

I can check all those boxes! Each one of those are covered below.

What went well in 2020?

Continue growing Beyond the Track: a beautiful, professional logo has been created. I’ve printed cards, which members of my community give out to other riders they meet at the track, strengthening our networking. A new banner has been made for us to fly it at the tracks. The community is growing closer together, great friendships are forming, more and more people are stepping up to help produce content for the monthly meetings (which have successfully continued as online events). Members of the community are making custom leather suits and having the BTT logo put on it. We train together, we grow together.

SportBike Track Riding: I had to adjust the path to achieve my riding goals, and it worked out great given the constraints. I’ve received coaching, and as it turns out, it seems like I’ve also been coaching.

Solid initiatives at Improving: the initiatives I’ve been involved with have been working out well and are growing, and I am very excited and energized to keep working at it.

Get better at Spanish: One of my goals was to give my first talk in Spanish. in June, I experienced synchronicity at its best, as Improving acquired iTexico, and we were joined by 300 professionals whose primary language is Spanish. I gave the talk in December.

Blog posts: I’ve set a new personal record in number of posts published in a single year in the 16 years since I’ve started this blog. Most important, several posts have triggered great conversations, recommendations, networking, thoughts that inspired new posts.

Music: I’ve set a new personal record in number of songs I’ve recorded and published in a year, by putting out two cover songs and three original songs.

Virtual Brown Bag: people have been asking me over the years if I’d be bringing the VBB back. My good old friend George was up for it, and we’ve been hosting the weekly VBBs since April!

Book Reading: I’ve cranked up my reading habits up a notch and set a new personal record of books read in a year. I’ve read some great ones, focused on building my book library, improved my book reading, read some great titles, and my slots for reading-time are something I look up to every day.

Improving’s handle of the situation: I am so happy to be a part of this company. Our leadership’s handle of such a tough situation has been top-notch and inspiring. The care for our people, not just our employees but also our families, the way we lean in to help our clients, the quick shift to continue offering value through weekly virtual events, the way we’ve reinvented ourselves to keep offering high-quality consulting and training. The list goes on and on.

What’s with all those personal records? Those were deliberate. As I mentioned at the beginning of this post, I have worked hard to make sure I’d have great memories to remember 2020 by. Whenever I go through challenges and hardships in the future, I can always come back to this post and remind myself that I have what I need in me to overcome adversities. I do have more highlights, but those are to be kept in my personal records.

What didn’t go so well?

No steady workout routine: much like in previous years, I haven’t been able to keep a steady workout routine. I did really well for several months having a great daily routine, but then I got out of it. I coming up with a plan to tackle that.

Cancellations due to the pandemic: there wasn’t a lot I could have done about this one. Fortunately, I believe I handled it well; the most important things were simply postponed.

Eating habits: both what and when I eat have suffered since the start of the pandemic. Fixing the when should be easy. Fixing the what, not so much for me.

What am I working toward?

Book reading: I plan to keep the same daily habits I’ve sustained since March, and adding a habit to review at least one previoulsy read book every month. I’m looking for lessons that have stuck with me, as well as those I haven’t quite grasped the first time through.

Sharpening technical skills: Most books I’ve been reading aren’t technical. For that end, I plan on going through at least one Pluralsight course every month.

Blogging: I plan on putting out at least one blog post every week, to any of my blogs (this one, the music one, or the Beyond the Track one).

Publishing my book: I want to see the book I’ve been working on published this year. Since this is my first book, it’s been a fun project, learning a lot of things, having frequent conversations with my co-author, and taking my writing skills to a new level.

Keep growing Beyond the Track: similarly to last year, I’ll continue actively working both on my riding skills, as well as growing my community, as well as the experiences I provide it.

Leave a comment

2021 is Here: What’s the Excuse Now?

A lot of things didn’t get done in 2020 because it was deemed as the main blocker to everything; somehow, the year was perceived to have such power.

I kept myself thinking “Comes January 1st, how is it going to be different?”.

So here we are, it’s January 1st of 2021. What’s the excuse now?

When I opened the notebook to do my journaling this morning, coincidentally, I was presented with this quote at the top of the page (and no, this notebook isn’t calendar-based):

In life you can have an excuse, or you can have an obstacle that is an opportunity to learn and to grow. Observe your thoughts and throw away your excuses! – Dean Graziosi

Since the pandemic started I was decided not to wait for things to get better; instead, I had decided to make things get better, however possible. As I look back, I’ve succeeded at times, I’ve failed at times, but I never stopped. And that’s how I’m continuing on.

No excuses!

Leave a comment