August 31

Make Google Calendar your Best Friend

We all need a best friend. At a professional level, a key attribute of a good friend is someone that elevates you and holds you accountable to your promises.

It doesn’t always take a human being to do that though. Google Calendar is absolutely wonderful if you’re someone that is either forgetful, unorganized, lack accountability or just need some structure in your routine.

I use Google Calendar religiously in my day to day life, and heavily advocate for it. Here are a few ways I use it.

Prerequisite

To use Google Calendar in the way I am suggesting, there are some requirements. First, you must have a Gmail account to be able to use Calendar. Second, you must turn on Calendar notifications with this associated account both on your browser/desktop and your mobile device – so that you are alerted promptly when action is required on your part. Finally -and this is the most element – you need to promise yourself that if you put something on the Calendar, you will adhere to it. It is crucial that you check your Calendar each day and see it as a to do list – at the exact time you allocate.

Accountability

Have to pay bills? Or follow up with mail work? Throw it weekly or monthly on your Calendar, and take care of it when its planned. I even use it to make sure I go to the Gym each weekend. No Excuses!

Oh, a friend wants to go to dinner with you? Check your calendar. Either reschedule your prior commitment or reschedule the new one.

Joint Appointments

Sometimes the Wife and I schedule back to back appointments – or even dates. It’s just well organized if I throw it on the Calendar and add her as an invitee so that we’re both on the same page…or Calendar. I go as far as adding the address too!

Reminders

One of my favorite features is Reminders. Who invented birthdays anyway? It’s hard to keep track – especially if you don’t use social media as much as you should. The cool thing about Calendar is that not only can you create new Calendars to toggle on/off, but you can set recurring reminders for things like Birthdays, Vehicle and Home scheduled routine maintenance, etc!

To-Do Lists

Instead of putting together an arbitrary To-Do list (like Google Keep), I like to kill 2 birds with one stone. Why not just throw your task directly on Calendar for when you’d like to tackle it? That way, it’s on a list…and it’s on a schedule – YOUR schedule.

With that said, I hope you made a new friend after reading this article. Give it a shot. Once you start using Calendar, you won’t go back!

July 31

The 2020 Micro-wave

The year 2020 has been a unique one thus far, to say the least.

The COVID-19 pandemic has wreaked havoc among the planet’s population. It has proved to be an eye-opener and shown that mankind is and always will be at the mercy of nature, despite all the technology we have today to combat it when we need to.

Coronavirus is absolutely terrible and evidently life-threatening to those vulnerable. However, it has also done some good. It has accelerated the inevitable push for flexible work environments. That is, the ability of employees to work from wherever (home). Of course, this isn’t applicable everywhere in the world – predominantly in established countries with the technical infrastructure and culture to support it. More and more employers are now allowing temporary or permanent work from home ability, and this will only grow with time. I can go over the benefits in another post, but working from home is a no-brainer for many employees. You save commute time, you can complete errands during breaks, you can often wear almost anything without being judged, and you have a sense of not being watched. It’s almost like you’re your own boss, as long as you work your hours and meet and exceed expectations!

There isn’t necessarily a need to feel like you’re not being watched, but part of the joy of being an autonomous employee (should your role allow it), is not having someone breathing down your neck and watching your every move.

The unfortunate news for us ethical, responsible employees who don’t take things for granted (this is why we can’t have nice things…) is that many workers are abusing these privileges. Currently, even at my current employer, I’m hearing nothing but positive feedback all around. The employees are happy for the most part, and our leadership is becoming more open to allowing this flexibility down the road since everyone is doing such a good job and also cutting some corporate costs (i.e. travel).

However, I have a very strong feeling that performance of remote workers will plateau and curve down to low productivity levels as time goes by. I sense this has already happened, and this is also why many organizations will begin to really crack down and install software on the employees’ machines that track productivity. To what extent the following is legal, I do not know. But do not be surprised if any or all of your microphone, camera, screen, keystrokes, mouse movement, VPN use, idle time and internet usage are tracked and monitored.

You thought being confronted about walking into the office by fifteen minutes late used to be bad? Try getting confronted about what you were doing between 3:05 and 3:25 PM on a Monday since no keyboard activity was recorded during that window. Yeah, THAT is bad. And it is inevitable.

“Remember to block your breaks and lunches and tasks on your calendar and share them with me. Oh and I see you’ve been idle for 15 minutes, do you need help with something?”

-Your Supervisor

What was once a dream-job type of work environment for many may quickly become a modern age sweat-shop through technology. It’s even easier to micro-manage employee activity through technology than it was in the old-fashion office. Maybe it isn’t significant enough to notice yet, but it will quickly become a reality.

Welcome to this new wave of micro-management.

The 2020 Micro-wave.

May 31

The Converging target ads

It’s absolutely crazy how advertising has evolved just over the last 20 or so years alone. I remember growing up watching Batman Beyond and DragonBall Z among many other favorite cartoon/anime shows. I’d have to always sit through about 5 minutes of quite irrelevant commercials during the breaks, anxious for the show to continue its next bit.

Fast forward to 2020 and a lot has changed. Not only have we shifted from television to cord-cutting alternatives – such as YouTube – for entertainment, but an interesting phenomenon has emerged, despite these services also serving commercials.

I actually enjoy the commercials

Sometimes. Okay, maybe slightly more than sometimes. But what does this mean? Well, obviously, it means targeted ads work. Based on our behavior on the web, cookies store data points which are then sold to marketing agencies to properly gauge and classify our interests, and then serve us generated ads based on our interest, thereby increasing the likelihood of us getting more engaged to those ads and eventually becoming more likely to make a purchase.

That’s pretty cool, but also pretty dangerous (we’ll get into this in a later thought). What I find interesting, though, is that ads are increasingly becoming more relevant. While this is expected behavior of any new technology, this particular technology is close to becoming mind blowing. What I mean when I say this, is, if in the year 2010, I found 20% of YouTube ads interesting (all hypothetical examples and numbers here), and decided not to skip them, then today, in 2020, I’m finding about 40% of them interesting enough not to skip them. Does this mean it will take an additional 30 years to reach 100% accuracy in targeting if the technology improves 2% per year?

Probably Not

I find the accuracy of ads on YouTube, Instagram, Sponsored Amazon Listings etc., to be improving at an exponential rate. I already find myself, sometimes, becoming shocked at how well these advertisements know exactly what I want to buy – or what I will want to buy, thanks to integration of multiple new technologies such as Internet of Things, which can generate an ad later at night based on a vocal conversation I have with a human sitting in my car about things that interest me earlier that morning.

Conclusion

Not-so-slowly but surely, the lines between our interests, and our acceptance/engagement to targeted ads served to us will converge.

I expect (again, hypothetical but still on a serious note) that within 5 years – by the year 2025 – targeted ads will reach a new norm. A 100% successful “wow, holy smokes I don’t want to skip this ad, and actually will buy this good/service” targeted ad norm.

And just what will not only help drive, but exponentially accelerate IOT and Data Science integration to bring marketing success rates to 100% precision at an unimaginable pace?

Artificial Intelligence.

April 30

I wrote a Bot to track RuneScape’s new skill

Yes, you heard right.

I don’t always write bots. But when I do, it’s for a good reason!

Some background: Runescape is one of the most popular online multiplayer role playing games. It has a plethora of skills, adventures and activities one can pursue. Recently, a new skill was released – archeology. While we can always tell who the FIRST person was to get maximum experience in the skill, I thought it would be pretty cool to see the journey in doing so when compared to their top competitors in the final days.

The stack used in this ad-hoc project was a combination of PHP, MySQL and Tableau.

I’ve written several bots before for the hiscores on this game, so what I did was salvage a lot of the code in PHP and store it in a separate MySQL table. The script was set to run on a cron job hourly indefinitely until stopped. It would store up to the top 100 players of the skill on each run.

I let several days (or weeks) pass before I decided to actually look at the data and do something with it, and now was the time! Here’s what the table looks like:

Each record represents a player, and the rank, xp and record insertion timestamp at the time the data is captured. Unfortunately, no primary keys or players ID were configured as this was meant to be an ad-hoc analysis and I was lazy.

The next step was to decipher the data and prep it for analysis. What I really would like to know ultimately was who first got to 200M XP, and what their days leading up to it looked like. Were they consistently first place? Or was it a neck and neck battle for days?

We’re well past the day when the first player got to 200M XP. First, I had to figure out what date to look back from:

Turns out that day was 4/14/2020. Now, we want to identify the top 50 players when the first person reached 200M XP, so we can filter out all the other players that may have been top 50 at one point or another, but not on this 4/14/2020 run. I later re-learned the hard way that I couldn’t use limits in a sub query, so I created a temp table which we’ll use later on.

Now, the other piece to the puzzle we need is pulling just one record per user per day. To do this, we’ll identify the latest capture of each day so that we can filter based on just those exact times. In doing so, we won’t get any duplicate records for any users on any day – just the highest, latest data that was recorded for them for that day.

And now, we can finally write our beautiful query that will give us what we need. We want a data-set of all of those final top 50 players, and what their latest daily positions were.

We get 514 records (we have fallouts because those final 50 players may not have been in the top 100 the entire time). Then, we store these results in an excel file and add a connector in Tableau for ingestion and build some quick views.

Yikes! That’s messy…perhaps we should limit it to the top 5 players instead (I went through all that SQL trouble for nothing!)

That’s much better. And we see something interesting…

Le Me got first place, congratulations! It appears that he and several others have consistently been the top 1-3. What we do notice is Omid came out of nowhere for a very close finish. They were around rank 40 in early April, and made a huge comeback, securing the 3rd spot as of April 14th.

This bot may have been a waste of time, but it only took about an hour to set up and the trend I witnessed was fulfilling and made it all worth it! Who knows, maybe I’ll do more with this data later!

February 29

The SWE Mindset

The SDLC mindset is one that is often instilled in a software engineer’s brain, even when it comes to his/her approach to solving real world problems. For those who don’t know, SDLC stands for the Software Development Life Cycle. It is essentially a series of phases throughout the entire lifecycle of a software project from request inception through delivery. There are sometimes variations of the incremental steps in the cycle, but generally, they are as follows:

Requirements

When approaching a real world problem, you can expect someone with a SWE background to first understand the nature of the problem in its context and in its entirety. We don’t jump directly into solving the problem, we first process all the contextual information available to understand the big picture. We must understand not only the micro-level components but also the maco-level interactivity and impact.

Design

Once we have a clearly defined problem to solve, we begin to design the solution. We determine all the different paths we can take, and narrow them down by assessing the resources available, feasibility, efficiency and long term sustainability of each solution. Often there are many ways to solve a problem. But one of the primary responsibilities of a good SWE is to employ the BEST solution by weight factoring the above mentioned attributes of each.

Development

Once we’ve nailed down the golden path we want to pursue, we then develop the solution to the problem.

Testing

Before adding the missing piece (solution) to the puzzle (problem), we must first ensure that it remains the best solution by means of testing against the attributes to ensure we get the desired results that were initially intended. The solution often can be optimized prior to implementation based on findings of the test phase.

Implementation

Once we pass the testing phase, we implement our solution to solve the problem.

Now that the problem is solved, we’ve done our job. But wait! Our job isn’t just to solve the problem and forget about it.

Enhancements / Maintenance

As a great SWE, we also have a responsibility to ensure that with requirements changing, our solution must be agile and be maintained and enhanced throughout the course of time! We make incremental improvements and optimize the solution based on the ever-changing environment.

And this is the thought process a SWE might engage in when faced with even the simplest real world problems. Hopefully this gives you some insight into what powers the light-bulb in our brains.

January 31

Why I Bought the Pixel 3A

My current phone is a Google Pixel 1st Gen, the second one I’ve owned since the debut. Why? Because I like a quality experience at a quality price.

My Pixel, having been out for several years now, is quite outdated in terms of hardware; which also translates to an accordingly lagging experience with the OS and software. Moreover, since it’s a 32GB storage phone, I’ve been consistently getting “Running out of space” alerts, despite proactively backing up everything to Google Drive.

I was casually strolling and scrolling around on SlickDeals, one of my daily rituals to snag good deals, and came across the perfect phone for the perfect price. Specifically, this was the Pixel 3a. My reasoning for getting this device was two-fold:

The Bargain

The deal was, for $349, a brand new Quite Black Pixel 3a 64GB handset could be had, along with a $100 Amazon Gift Card. So in actuality, this brand new phone would cost just $249, all while it’s currently retailing for $399 MSRP. A flashy Pixel 4 device would be $699, in contrast. This offer was an absolute steal, so I had to jump on it.

The Quality

Touching back on the why. The Pixel 3a is a relatively new phone, less than a year old. This is subjective, as most users would consider anything over 6 months past launch date, “old”. I don’t care about any of that stuff. The Pixel has an amazing camera, and beautiful color interpretation. It’s great for social media. I’m a fancy car fanatic, but when it comes to a daily-driver cellphone, all I want is a reliable, fast, durable cell-phone. I’m happy with my Pixel 1 but I wanted something more powerful and up to date but not necessarily latest-and-greatest flashy.

I’m going to be unbiased here and say I’ve definitely owned Apple iPhones in the past. Their quality and reliability (for the first 2 years) is second to none. Unfortunately, iPhones never allowed the ability to customize apps, colors, fonts etc or incorporate widgets to the extent that Android devices did. Additionally, having that “developer” mind-set, building apps out of the blue for iOS was unlikely, as their barrier to entry is much higher given the high cost required to publish apps. I’ve also tried Samsung Galaxy phones in the past, which obviously run on android, and they weren’t nearly as fast, consistent and reliable as the iPhones. This is why many people including myself had a negative connotation towards ALL android-based devices. However, the Google Pixel changed that. It had the quality of an iOS device, with the open capabilities of an Android device.

The Undelete

The downside of technology is sometimes manufactures will go out of their way to do something absolutely unnecessary for the sake of technology. Electronic Parking Brakes, WTF? We’re unfortunately seeing a similar trend with smartphones, or maybe I’m just becoming old-school. I work in tech, so I have no choice but to embrace change and it’s just part of my career now to adapt to changes. But once you replace a fingerprint sensor with a facial recognition unlock feature, and delete the aux port, you’re really testing my loyalty. Yes, I’m talking to you, Mr. Pixel 4. A fingerprint unlock and an aux port are must-haves for me. Like I said, I like the Pixel 1, and I wanted something better, but don’t take away the staples because everyone else is doing it. So what should one do, if they want the latest Pixel, but with the “un-delete”, because they don’t want to be in the gym with an aux dongle or wireless earphones? They purchase the Pixel 3a of course!

Overall Synopsis:

$250 Phone? Check

64GB Storage? Check

Aux Port? Check

Fingerprint Access? Check

Badass? YOU BET!