It was 2021. Spring pollen competed with birdsong to fill the air. Sneezes abounded. We needed to relocate my mom, but were having a rough go of it. Finding the cash to finance a move and purchase a dwelling of some kind was proving elusive.
I took an inventory of my skills:
Skill Level Construction (houses) Basic Software development High Musical talent Mediocre Busking at the waterfront on the weekends might pull in a few hundred a month — more if they pay me to stop. That wasn’t likely a good option. My home-building skills could get me $20-25 an hour. Also not great.
So I built a nice budget app for Android and iOS. A core feature is sending you an alert when a bill is nearly due. Each platform required a very different approach to reliably schedule and trigger those notifications. This… is that story.
Scheduling stuff is hard Have you ever received an alert from an app for something you deleted? For example, you keep getting a reminder to pay your “Doggie Daycare” bill, but you don’t even have a dog anymore? Sometimes, the only way to rid yourself of the zombie notifications is to reinstall the app. Oops. 🤦♀️
Wisdom is applied knowledge, therefore memory is the foundation of wisdom.
The physical act of taking notes enhances memory encoding and storage. Reviewing notes increases the amount and breadth of information retrieved.
Keeping notes is a useful practice with a number of benefits, some of them even monetary. The following activities are driven and enhanced by good notes.
Wouldn’t you like to know when MailGun fails to deliver an email? Or worse still, when someone complains about an email you sent?
MailGun can notify you about the following events:
Clicked Complained Delivered Failed Opened Unsubscribed There’s just one catch: You have to write your own webhook, then subscribe to those events with your webhook’s URL. If that thought left you cross-eyed, fear not! The reign of cloud computing has made this simpler than it used to be, especially the introduction of functions as a service.
Grab a bowl of buttery popcorn because the saga continues! The end of the previous chapter saw our intrepid little Rails app camping happily on Heroku. This latest chapter in the hosting chronicles brings with it a twist: not just a change in host, but a complete migration from one programming language to another.
The app is no longer on Heroku, and it’s no longer written in Ruby or Rails. It’s written in JavaScript, hosted by Netlify, and it’s getting by with a little help from its new friend, Vue.js.
Onward for the Why’s, How’s, and Gottchas of the switch.
I won’t kid you; the road to course creation is riddled with potholes, roadblocks, and sketchy checkpoints. It was hard. But the solution to each obstacle taught me new skills and valuable life lessons. I think it’s time to document those lessons.
Code flows effortlessly from your nimble fingers, like fine cloth from a loom. Your face is serene, focused, content. Suddenly, a wrinkle appears in your brow, breaking that pleasant mask of serenity. The frown deepens. “That can’t be right…” What happened? A bug! A hairy bug lurks fiendishly somewhere in that elegant tapestry of code love. How did the bug slip past you? You were so careful! A frustrated hour passes, then two. You comb through each strand of code, retrace your steps through the intricate lattice of if, when, and for…
We sink so much time into the deep pit that is debugging. Yet for all the time we spend on it, there is surprisingly little literature written on the subject. A notable exception is Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems, by David J Agans.
Keyboard shortcuts, it’s a love-hate relationship. On one hand, they unlock hidden cheat code levels of productivity — on the other, they unlock… What was that again? … Oh yeah, you just can’t remember them! What is it about keyboard shortcuts that makes them so hard to remember? Should you even bother? Is there a reliable way to learn them?
Why is it so hard to remember keyboard shortcuts? Simply put, there’s so many shortcuts to remember, and their use taxes a different class of memory.
Refactoring is the lifeblood of a nimble codebase, but we need to stop hand-refactoring via Ctrl-C/V and start using our automated refactoring tool. Prepare to be convinced, then watch in amazement as you memorize your favorite refactoring tools’ keyboard shortcuts in two hours flat – and remember them forever.
You need an automated refactoring tool Refactoring without tests is dangerous Refactoring without tests and without an automated tool is like walking a tightrope over Niagara falls without a safety net - with your product and entire team standing on your shoulders. Don’t be that guy.
** Hotel Vim ** or: Hotel Colon q. Bang on a dark linux bash prompt, new boss in my hair hot coffee and hardware, stale conditioned air ls listing the files, i cat configs that ain't right my head so heavy and my sight so dim i'd have to work through the night there she sat in the bin dir i heard the terminal bell and i was thinking to myself 'just a quick tweak and all will be well' then she lit up the keyboard and showed me the way three letters in the dark of night i thought i heard vim say welcome to the hotel :q! what a focused place (such a spacious place) what a maker's space. buffers abound at the hotel :q! in any kind of gear (any kind of gear) you can find vim here her modes are insert and normal, she got a visual trend she got a lot of frantic, fledgling fans, that she calls friends how they mash in frustration, sweet intern sweat some mash the escape key, some mash ctrl-c so i call up stack o'flow 'how do i exit vim?' it said, 'we get that question here since nineteen-ninety-one' and still new coders are howling from far away, hit you up in the middle of a break just to hear vim say welcome to the hotel :q! what a focused place (such a spacious place) what a maker's space. they rub 'Esc' blank at the hotel :q! what a /wonderland/ (what an &), bring your Ex commands fingers on the home row not a mouse in sight and she said, 'we are all vim\'s prisoner\'s here, of our own device' and from the master branches they `i` changes to the hash they Zed-Zed with their cherry reds and the buffer fades to bash last thing i remember, i was yearning to grok more i had to get the sourcecode back to place i was before 'relax' said the vim tuts vim is programmed to receive you :q any time you like but you won't want to leave! ----------------------------------------------- Hotel Vim • by Ty Walls (2017), to the tune of Hotel California (Eagles, 1977) • dedicated to Bram Moolenaar and the millions of developers who wandered the halls of Vim searching for the exit, but found a fun and efficient home instead.