I’m happy to let you know I’ll be speaking at the 2018 ALN (Agile Leadership Network) Conference in Houston, on April 21. Here’s the topic that got selected:
Testing in Agile: from Afterthought to Integral Part
Testing cannot be an afterthought; it has to be an integral part of software development. Is it something that QA teams do? Or is it part of a developer’s duties? Do business analysts play any role in it? What is test automation? Unit test, Integration test, Test-Driven Development, Behavior-Driven Development… what do those mean?!
This session addresses all of those questions, as we talk through the importance of tests, the collaboration among team members, the techniques, and practices around different kinds of automated testing.
This is a new talk I’m putting together and I’m very excited I’ll be presenting it soon.
You learn more about the conference in the following places:
As I’ve mentioned in my 2017 Annual Review, I was very close to finishing the Italian course on Duolingo. I finally did it last Sunday!
I got there after a 158-day streak. In the first month I was reviewing the Spanish lessons, while going back to the first lessons of Italian, which I had started on a few years ago, but had dropped in favor of finishing off Spanish (the two had too many similarities that were throwing me off). After that, I was solely dedicated to Italian, so it took me about 4 months go finish the lest lesson and earn the Golden Owl. 🙂
So, can I speak Italian now? Well, not really.
My initial focus has been learning words and building vocabulary. Now I can recognize way more words than I could five months ago. I can also understand some simple sentences, and write a couple of simple sentences. I also understand some basic grammar. I can listen to some spoken Italian and pick out words and context of the conversation. Not nearly enough to have a conversation on my own.
On one hand, Italian shares a lot of similarities with Portuguese and Spanish. On the other hand, it has some nuances that keep throwing me off. For example, there are words that sound and mean exactly the same things across the three languages. Then, there are words that sound and look the same in all three languages, yet, they mean things completely different.
The singular and plurals also throw me off. For example, in Portuguese, Spanish and English, we can easily recognize plural words when we see an “s” at the end (“boy, boys”, “menino, meninos”, “nino, ninos”). In Italian, that’s not the case (“ragazzo, ragazzi”, for “boy, boys”, and “ragazza, ragazze” for “girl, girs”, respectively). That, and verb tenses, are the main things I’m currently struggling with.
My plans moving forward:
- Continue practicing it on Duolingo for a while (maybe a month or two);
- Read articles and at least a book in Italian. Since I’m enjoying sportbike riding at the track, I’ll be reading about and following news on Valentino Rossi.
- Watch videos in Italian. Again, I’ll probably watch videos related to sportbike riding (such as this one), as that’s a topic a really enjoy.
- Watch an Italian movie I’ve seen before: Cinema Paradiso. I’ve watched this movie several years ago and enjoyed it, so now I’ll watch it again, with the original audio and subtitles in Italian.
Once I’m done with those things, I may venture into practicing some conversation, but we’ll see when I get there.
As per 2016 Annual Review, these were the things I mentioned I was working toward:
- Playing catch up professionally
- Serious hobbies
- Continuous improvement
I believe I did well in those three points!
What went well in 2017?
Solid morning/nightly ritual: Both My Morning and Nightly rituals are very solid and allow me to live a more focused life. I no longer need reminders and checklists to stay on top on what habits I want to build in those two very important moments of the day.
Meditation: As I blogged over a year and a half ago, meditation is finally paying off. It is the single most important thing I do every morning. I’m currently in my longest meditation streak ever, and it shows no signs it’ll be broken!
Journaling: I’ve finished my first Five Minute Journal (which covers 6 months of my life) and started a new one immediately after. This has been a great tool for me to continue practicing gratitude every day, as well as taking two moments in the day (morning/evening) to slow the hell down and reflect upon my day.
Blogging: as in 2016, I wanted to make this blog more active in 2017 (in terms of number of posts I create), and I achieved that; I’ve published 59 posts (against 23 in the previous year)! Many of these posts have helped clients and co-workers, and have also helped myself putting together presentations and training courses.
Learning other languages: in 2015 I used Duolingo quite a bit to learn more Spanish. After a hiatus, I picked it back up in 2016, and redid the entire Spanish course. When I was done with that, I then picked up Italian, which I’m very close to finishing. I’m also on my longest Duolingo streak ever: 144 days! That means, at a very minimum, I learn a little bit of something new every single day. And another cool bit of information: I’m learning these languages in Duolingo as an English speaker (in case you don’t know, English is NOT my primary language)!
SportBike Track Riding: this is a serious hobby I hinted as one of the things I was working toward. I rode at the track an average of at least once a month, improved a LOT as a rider, and am doing everything in a very methodical way, while having TONS of fun doing it. I document a lot of this on my dedicated YouTube and Instagram channels.
ImprovingU: One of the awesome things we have at Improving is called ImprovingU, which consists of internal presentations and training courses that employees can attend to in order to improve in a number of areas. Besides attending to many of these trainings, I’ve personally delivered three talks in what we call Tech Fridays, and also taught two other lengthy training courses.
Involvement at Improving: Improving also has a cool program for employees who want to get more involved (doing presentations, participating in user groups, volunteering, etc.). People who get involved get points based on the type of activity. I’ve stayed consistently among the top Improvers in this program. While I don’t engage in these activities solely for the points, it’s a good metric for me to see that I’m always trying to both get better and help others do the same.
Put out some new music: Making music is another hobby I take seriously. While I haven’t put out as much music as I’d like, I did get to publish two songs.
The first one was a cover as a tribute to my top favorite singer/lyricist of all time, who passed away in December:
The second one is a new original song, once again written for my beloved wife:
What didn’t go so well?
Periods without excercising: most of my excersizing last year came from going rollerblading at the park. However, that only worked while we’re on Daylight Saving Time (DST), since it gives me a good window between getting back home from work and getting too dark. Once DST ends, though, that’s no longer an option, and not engaging into another type of activity during that period has made me go too long without some good excersizing, causing me to put on some weight and also feel somewhat crappy.
What am I working toward?
In no particular order, these are the things I want to improve on in 2018:
Way to exercise outside of DST: I’m looking for alternatives so I can excercise when it’s too dark outside for me to go rollerblading. Right now, I’m trying a mix of trampoline, jumprope, weightlifting, pull-ups, push-ups. I’m evaluating how that works for me and making adjustments as I go, until I find a good flow.
More consistent way to work on music: I definitely want to put more music out this year. In order for that to happen, I will set aside at least one or two hours every week
Beyond the Track: I’m enjoying so much my track riding hobby that I’m starting a new Special Interest group, as I feel a strong need to share everything I’ve learned so far, and also learn more from more experienced riders. The first meeting is happening on January 17 (two weeks prior to this year’s track day season starts), and I plan on holding these meetings every month.
New language on Duolingo: when I’m done with all the Italian lessons, continue my long streak, possibly by still practicing Italian for a few more weeks, than reviewing Spanish, and finally starting on another language (maybe French or German).
Public classes: as I mentioned in the “what went well” section, I’ve created some internal courses to be taught at Improving. I’m seriously considering also teaching it to others who might be interested.
Myself through the eyes of others
My previous annual reviews have solely been done my me. It’s me revewing my goals, plans, results. I want to start adding this section now, given the following quote that showed up one of the days on my Five Minute Journal:
“Sometimes you can’t see yourself clearly until you see yourself through the eyes of others.” – Ellen DeGeneres
So I decided to reach out to someone impacted by my goals, plans, actions, inactions, to see how I did in 2017. Here’s a summary of I heard regarding things I did well:
- “You’ve become a better rider” (my wife enjoys 2-up riding as my passenger, so getting better at it is a big thing)
- “You’ve made a new song for me!” (already mentioned it previously)
- “You got better professionaly.” (those close to me see and appreciate how I develop as a professional)
- “You took us to visit some places we really enjoyed.”
- “You been so patient with so many things and you have shown a great ability to forgive.”
- “You’ve kept our shared life stable, while still moving forward, even through the toughest times.”
I was very happy to hear those things. Even happier when I saw what I wrote on one of the first pages of my first Five Minute Journal before 2017 started:
In case you can’t understand my handwriting (I can’t blame you!): “To stay calm and level-headed through mood shifting turmoils. Staying on a stable routine due to that.”.
“I feel strong-willed towards the things I really want and believe. I’m dedicated to my family. I feel I can make a difference in the life of others.”
Honestly, I didn’t remember writing those words, but I definitely meant it and lived by it, and the results showed up, both stated by myself and a loved one. This has been a good validation that if I know what I want and what I am (or want to be), if I set goals, make plans, take actions, review it constantly, stick to small actions that don’t look much on a day-to-day basis but that add up tremendously, good results tend to happen.
A few weeks ago I mentioned I was starting to learn React. I’ve finally finished a few days ago the PluralSight course mentioned in that post. The course was good for me to get my feet wet in React. However, as I stumble across React code in the Real World, I just knew I’d continue to see Spanglish in Programming.
See this example:
As I read the code above, specifically the bit indicated with red arrows, this how it sounds in my mind:
“if page type is greater than or equals to this constant and… wait, does the thing following that && actually evaluate to a boolean?!”
I have no sympathy for code that mixes different language in the same file. It gets even worse when the code mixes different languages in the same function, method, etc.
That reminds of the day XML literals were added to VB, and of course, people start using it in the worst possible ways. The ability to mix different languages can be very powerful, but to me, there should some separation so that the brain doesn’t have to deal with so much context-switching.
Anyway, the example above doesn’t look like clean code to me. I’ve asked a fellow co-worker who’s more experienced in React, and he showed me how the code above could be cleaned up: simply extract the bits that create HTML into its own functions.
I believe every developer should always ask: “Is this readable? Is this clean? Is there anyway I can make it better?”.
It’s been a while since I created a template in Resharper. I wanted to create one yesterday, and it took me longer than I thought it would, so I figured I should write a post I can refer back to. I probably got spoiled by how awesome CodeRush is when it comes to creating templates and was expecting similar experience in R#. Anyway…
The template I want to create is one where I type todo to expand the template, and then I can type whatever comment I want to attach to my todo:
Here’s how we do that. Go to Resharper -> Tools -> Template Explorer…
Select C# and new on the New Template button:
Type in the template:
For shortcut, I typed todo.
Notice I’ve included $date$. Anything within $ indicates we want to create a parameter. On the righthand side we can select from a list of macros that get evaluated for the parameter:
I’ve picked “Current date…” and set the specific format I want (yyyy-MM-dd):
Now when I type todo in the code editor…
I get the result I want and can type in whatever else…
Much like there’s a hybrid between English and Spanish called Spanglish, there’s also one between Porguese (Português) and Spanish (Espanhol) called Portunhol. It seems like the same happens with programming languages!
Here are some cases:
- C# and T-SQL
- C# and XML
- C# and HTML
- HTML and CSS
Then I look at JSX (example found here):
So far, I’m not convinced I’ll like that approach, but hey, let me stick with it and see what kind of things I can build with this mess.
Como would usted gostar if yo tivesse written esta post the mismo jeito I escrevi this frase?
See what I’m saying? 🙂
I just got started learning React. Much like I did when I started learning Rails many years ago and documented my findings, I’ll do the same with React. If anything else, at least to have a place to come back to when I don’t remember things. 🙂
To get started, I’m following the following Pluralsight course: Building Applications with React and Flux.
Here’s a quick run through of my notes…
React has no two-way binding, which I liked in Angular. Again, I need to learn a little more about this to see how I like it.
React can render both on the client and server (different from Angular). This sounds interesting.
Instead of using Sublime to follow along the course, I decided to install Visual Studio Code on the Mac to experiment with it. So far so good.