Categories
Hardware What I’m Up To

The dirty little secret about the ThinkPad T430’s CMOS battery

I’ve hung onto an old Lenovo ThinkPad T430 that’s been performing yeoman’s service over the past few years as a trusty Linux development machine and server. Its CMOS battery finally ran out, which meant that it no longer kept proper time when removed from power, which meant that I always got this message on startup:

I’m going to be teaching a Python course in the evenings in a matter of days, and wanted to be have the ThinkPad loaded up with Linux Mint 19.3 and Anaconda Individual Edition for that purpose. Without much thought and some very quick Googling, I found that Amazon could get a replacement battery to me the next day for less than ten bucks. Sold!

As promised, it arrived the next day. Here’s the box it came in:

I’m not complaining. There are all sorts of economics-based reasons for shipping something so tiny in that size box, and I’m grateful for the huge “crumple zone” provided by that box.

I knew where the battery went, thanks to an earlier adventure in which I upgraded the T430’s RAM (which requires you to do so in two separate locations on the machine). It’s under the central panel on the underside of the machine:

Replacing the battery was a snap: Disconnect the old battery’s connector, and then attach the the new battery in the same way.

I got curious. What was under the yellow protective plastic cover?

I peeled it off the old battery and found this:

The yellow protector concealed a run-of-the-mill CR2032 3-volt “coin”-type battery, and nothing more. The remote for my BOSE speakers uses one, as does my hand-held luggage scale. They also power the light on proctoscopes, in case you were wondering what kind of batteries yours took:

You can buy them in 5-packs at your local drug store, and their unit price comes to about 50 cents each.

I have a bunch of them in my drawer, and could’ve simply taken the connector from my dead battery and taped it to a fresh one. The red lead goes to the battery’s + side, while the black lead goes to its – side:

The money doesn’t bug me as much as the missed DIY opportunity, even if it was an incredibly minor one. I’m posting this for the benefit of anyone who has to replace a CMOS battery soon: You can do it without shelling out for an “official” battery!

 

Categories
What I’m Up To

A delightful find while researching my new industry

Lately, I’ve spent lunch reading up on the industry in which in work:

Tap the photo to see it at full size.

Before you say “Wait a minute — don’t you work in the software/mobile app/IT industry?”, let me make it clear. I work in the beverage alcohol industry; I just happen to do that work with software.

While flipping through the pages, looking for the Using Narrative to Win on Menus article, I stumbled across this full-page ad:

Tap the photo to see it at full size.

It’s a full-page ad for Lilypad, which is the name of both the company I work for and the beverage alcohol software suite it produces, which includes the mobile app, which I work on. I’ve worked on all sorts of software before, but never for something that has its own full-page ad in an industry magazine.

This article also appears in The Adventures of Accordion Guy in the 21st Century.

Categories
Programming What I’m Up To

I’m building 20 projects in 2020!

Photo: 20 Projects in 2020, featuring a white Apple Watch and White iPhone outdoors on a wooden picnic table.

Here’s my personal challenge for this year: I will try to complete at least 20 small software projects in 2020 and document them here on Global Nerdy. The number of projects I’ve chosen to attempt this year comes straight from the way the year is commonly pronounced: twenty-twenty.

Why am I doing this? Because now that I’m back to writing code for a living — after a good long period of time as a product manager or owner, a developer evangelist, or a marketer — and I want to up my game. Yes, I’ll get lots of practice at work, but as those of you who code for a living know, the projects you do at work tend to focus on a narrow segment of what’s possible with code, and largely about solving a business problem instead of learning a new technology, language, or skill.

There’s also another reason: quantity leads to quality.

Photo: Cover of “Art & Fear: Observations On the Perils (and Rewards) of Artmaking” by David Bayles and Ted Orland.

There’s a pretty good chance that you’ve heard the “ceramics class quantity vs. quality” story. It’s from the book Art & Fear: Oberservations on the Perils (and Rewards) of Artmaking, and it’s appeared many times over the past couple of decades on sites that techies are likely to read. In Cool Tools, Kevin Kelly included it in a list of excerpts from the book way back in 2003, Jeff Atwood wrote about it in Coding Horror in 2008, then Jason Kottke wrote about it in 2009, Ben Thompson cited it in Stratechery in 2015 when writing about Buzzfeed’s success, and in 2016, it’s referred to in a Hackernoon post.

Here’s the story, with emphasis added by me:

The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality.

His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the “quantity” group: fifty pound of pots rated an “A”, forty pounds a “B”, and so on. Those being graded on “quality”, however, needed to produce only one pot – albeit a perfect one – to get an “A”.

Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the “quantity” group was busily churning out piles of work – and learning from their mistakes – the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.

Here’s Jeff “Coding Horror” Atwood’s take-away from this story:

Quantity always trumps quality. That’s why the one bit of advice I always give aspiring bloggers is to pick a schedule and stick with it. It’s the only advice that matters, because until you’ve mentally committed to doing it over and over, you will not improve. You can’t.

When it comes to software, the same rule applies. If you aren’t building, you aren’t learning. Rather than agonizing over whether you’re building the right thing, just build it. And if that one doesn’t work, keep building until you get one that does.

In short, it boils down to the old adage “Practice makes perfect,” or more accurately, “Practice makes progress.”

Most of these projects will be built for “toy” systems: mobile devices, wearables, the Raspberry Pi and set-top boxes. I’ve made this choice for a number of reasons:

  1. I got an Apple Watch for Christmas! Sure, it does neat things like track my exercise and tell the time, but the real reason I got it was to write apps for it.
  2. “Toy” projects allow me to constrain them so that they don’t take an excessive amount of time to build, which is key when you aim to put together 20 projects in a year.
  3. My day-to-day work is mobile development. Anything that makes me better at it is a good thing.
  4. I need topics for my meetup, Tampa iOS Meetup. Yup, that’s making a grand comeback shortly.
  5. I’ve already got an interesting side project that involves the Apple Watch.
  6. I also got a mini-screen for my Raspberry Pi, which has been neglected as of late.

6. Finally, and most importantly, I’m doubling down on the philosophy that I talked about on The 6-Figure Developer podcast: “Always bet on the toy.”

Creative Commons photo by Chris Cox. Tap to see the source.

Chris Dixon wrote about this ten years ago in an article titled The next big thing will start out looking like a toy. Here are the opening paragraphs:

One of the amazing things about the internet economy is how different the list of top internet properties today looks from the list ten years ago.  It wasn’t as if those former top companies were complacent – most of them acquired and built products like crazy to avoid being displaced.

The reason big new things sneak by incumbents is that the next big thing always starts out being dismissed as a “toy.”  This is one of the main insights of Clay Christensen’s “disruptive technology” theory. This theory starts with the observation that technologies tend to get better at a faster rate than users’ needs increase. From this simple insight follows all kinds of interesting conclusions about how markets and products change over time.

Disruptive technologies are dismissed as toys because when they are first launched they “undershoot” user needs. The first telephone could only carry voices a mile or two. The leading telco of the time, Western Union, passed on acquiring the phone because they didn’t see how it could possibly be useful to businesses and railroads – their primary customers. What they failed to anticipate was how rapidly telephone technology and infrastructure would improve (technology adoption is usually non-linear due to so-called complementary network effects). The same was true of how mainframe companies viewed the PC (microcomputer), and how modern telecom companies viewed Skype. (Christensen has many more examples in his books).

He also points out that something being toy-like doesn’t necessarily mean that it will become the next big thing. He’s saying that initially they seem like toys, but due to external forces, they become useful in ways that seem obvious in hindsight but invisible at the time. It’s yet another example of William Gibson’s cyberpunk maxim: “The street finds its own uses for things.”

Dixon closes his article about the next big thing being a toy with this paragraph, which mentions the new decade:

But startups with sustaining technologies are very unlikely to be the new ones we see on top lists in 2020. Those will be disruptive technologies – the ones that sneak by because people dismiss them as toys.

Watch this space as I post about these projects throughout 2020! The first — a simple Apple Watch app that’s also a “How to write an Apple Watch app” article in disguise — will be here on Global Nerdy soon.

Categories
Podcasts Programming What I’m Up To

I’m on episode 123 of “The 6 Figure Developer” — “iOS Apprentice & Accordions w/ Joey deVilla”!

Last month, the folks at The 6 Figure Developer podcast interviewed me, and that interview was published this morning! It’s titled iOS Apprentice & Accordions w/ Joey deVilla, and you can find it right on the 6 Figure Developer site, or through your favorite way to find podcasts.

You can also use the player below:

The topics covered in the interview:

  • How I got started in the industry and where I am now. I started as a developer, then a developer evangelist, then marketing, then product owner, and now I’m a developer again!
  • My new job at Lilypad, which I like to describe as “a CRM for the alcohol industry”, and how much fun I’m having being a developer again.
  • My tech strategy: “Always bet on the toy.” The technology that people dismiss as a toy today often becomes tomorrow’s indispensable tool.
  • Working on the 8th edition of iOS Apprentice for raywenderlich.com. It was an adventure, what with having to cover the new SwiftUI framework in a beginner-friendly way. I also talk about being honored to work on this edition of the book, as I learned iOS programming from an earlier edition written by the original author, Matthijs Hollemans.
  • Cross-platform vs. native mobile development and the challenges with each approach. When do you use each approach?
  • The people whose primary way of getting online is their mobile device. I talk about a key demographic — about 8% — whose smartphone is pretty much their only gateway into the online world.
  • Taking an active role in the Tampa Bay tech scene. I explain that it’s a habit I picked up from the Toronto tech scene in the early 2000s, during the era of DemoCamp Toronto. This work helped turn Toronto into one of the top 5 tech powerhouses in North America, and I think Tampa Bay can borrow a few of those tricks.
  • Don’t forget that two Tampa Bay authors have iOS books! It’s not just me, but Craig Clayton as well.
  • Recommended meetups and resources for Tampa Bay mobile developers. There’s Tampa iOS Meetup, the Suncoast Google Developers Group, and of course, the Coders, Creatives, and Craft Beer meetup.
  • My one piece of career advice: It’s actually Eleanor Roosevelt’s advice — “Do the thing you think you cannot do.”

Who interviewed me?

The hosts of The 6 Figure Developer who interviewed me are:

John Callaway: An International Speaker, Author, and Microsoft MVP, John has been a professional developer since 1999. He has focused primarily on web technologies and currently focuses on C# and .NET Core in Azure. Clean code and professionalism are particularly important to him, as well as mentoring and teaching others what he has learned along the way.

Clayton Hunt: Clayton has been programming professionally since 2005 doing mostly web development with an emphasis on JavaScript and C#. He has a focus Software Craftsmanship and is a signatory of both the Agile Manifesto and the Software Craftsmanship manifesto. He believes that through short iterations and the careful gathering of requirements that we can deliver the highest quality and the most value in the shortest time. He enjoys learning and encouraging other to continuously improve themselves.

Jon Ash: Jon has been a web developer since 2011 and a professional consultant since 2006. Coming from the aerospace industry he brings a passion for professionalism and excellence. He has a broad experience in current web technologies, with a strong foundation in C# and JavaScript. Though working knowledge of technologies are important, he takes pride in practicing and promoting clean code, adherence to the SOLID principles, and disciplines such as Test Driven Development.

Categories
Programming Video What I’m Up To

Now that I’m getting paid to be a developer again…

…it’s time to revive this video that New Relic put out way back in 2011 to promote their application monitoring service.

Titled We Love Developers, it features some of the brightest lights in the industry:

  • Matz: Yukihiro Matsumoto, creator of the Ruby programming language
  • Guido van Rossum: Creator of the Python programming language
  • Linus Torvalds: Creator of the Linux operating system and the Git version control system
  • DHH: David Heinemeier Hansson, creator of the Ruby on Rails framework
  • Bill Joy: Co-founder of Sun Microsystems and creator of the vi text editor
  • James Gosling: Lead designer of the Java programming language
  • Sir Tim: Tim Berners-Lee, creator of the World Wide Web
  • Marc Andreesen: Co-creator of Mosaic, the first widely-used web browser, co-founder of Netscape, co-founder of Andreesen Horowitz
  • Woz: Steve Wozniak, creator of Apple
  • Rasmus Lerdorf: Creator of the PHP programming language
  • The Gu: Scott Guthrie, creator of ASP.NET, Executive VP of Microsoft’s Cloud and AI group
  • Sergey Brin: Co-founder of Google
  • Dries Buytaert: Creator of Drupal

At the end of the video, they wanted to use the image of a more “everyman” developer to represent you, their customer. Guessed who they picked:

My photographer friend Adam P. W. Smith (my old business partner; together, we were datapanik software systems and we worked on some pretty interesting projects back in the late ‘90s) took the picture back in August when I was visiting him in Vancouver. I’d arrived a day early for the HackVAN hackathon and was sitting in his kitchen getting some work done when he decided to get a couple of shots. He poured me a glass of scotch, set it on my accordion, which I’d set down on the chair beside me, and staring taking pictures.


In case you were wondering, you can find out more about my new gig in the article titled — appropriately enough — The new gig.

Categories
What I’m Up To

The new gig

I have a new job: I now hold the title of Mobile Software Developer at Financial Information Technologies LLC, which also goes by the name Fintech. My job will be developing Fintech’s mobile app, Lilypad, which is a sales and customer relationship management tool for the alcoholic beverages industry — a $250+ billion market in the U.S. alone, and a $1.4+ trillion market worldwide.

Fintech created the first EFT (electronic funds transfer) payment system for the alcoholic beverages industry in 1991, and in the 18 years that followed, their system gained approval in all 50 states. Since then, they’ve built systems to improve the way alcohol is managed, priced, promoted, ordered, and sold. They’re a “work hard, play hard” place with a reputation for treating their employees well, based on what I’ve seen at their company gatherings.

Lilypad is a scrappy startup that was founded in 2013. Their original application was a tool to help alcohol sales teams in the field, and has since grown to become a system that helps the industry manage the entire sales process. Lilypad’s customers run the gamut from the smallest kitchen-table craft breweries to global conglomerates whose products are everywhere — perhaps even on your shelves at home. The company was acquired by Fintech earlier this year.

Back in September, I posted a cryptic announcement with the “New gig Monday” image shown above. That marked the start of a trial period during which time I worked at Lilypad on a contract basis. They were incredibly cool about accommodating the vacation plans I’d made months before. I worked for the month of September, went to the Philippines for three weeks in October, and then returned to work through to the end of November.

My job was to dive into their mobile app code for both Android and iOS — comprising hundreds of thousands of lines of code written over the past six years by an untold number of coders who came before me, none of whom left behind any notes  — and start fixing, maintaining, and improving it from the moment I set foot in the office. This would be a challenge.

I landed the trial period based on a very particular set of skills that’s hard to find in the Tampa area: mobile app development (and let’s face it, my penchant for self-promotion). I sold those skills based on:

Still, it’s been some time since I wrote production code. The agreement was that if I could prove my coding mettle during the trial period, they’d take me on as a senior mobile developer.

I’ve got to get back to work, so I’ll spare you the details. Besides, you already know how it worked out.

Categories
Hardware What I’m Up To

A quick picture guide to upgrading the RAM on a Lenovo ThinkPad T430

The oldest-model computer in my stable is a Lenovo ThinkPad T430 (pictured above). Released in 2012, it’s a business workhorse powered by a dual-core i5-3230M processor running at 2.6 GHz (suitable for writing TPS reports and even playing older 3D games) that’s still issued to worker bees at offices everywhere. I acquired mine in 2013 in lieu of payment owed to me from a deadbeat, and since then, it’s been performing yeoman service in its role as a backup machine for tasks that specially require Windows or Linux.

It came with a stock 4GB RAM, which has caused me to run into some limitations, especially with heavier-weight development tools such as Visual Studio and Android Studio, the video capture and recording tool Camtasia, and to a lesser extent, graphic design and audio tools. It was time for that most effective and universal of computer upgrades: more RAM!

The T430 takes two 1600 MHz PC3-12800 SO-DIMMs and supports up to 16GB memory. I ordered a pair on NewEgg for less than $100, which came with two-day free shipping. The DIMMs arrived via FedEx Friday morning, and like any geek with a new tech toy, I took out my set of teeny computer screwdrivers and got to work on installing them right after they arrived.

The first step was to remove the battery. ThinkPads from that era (I’m not certain about present-era ones) followed the old-school philosophy to batteries and kept them external and easily swapped out:

I remembered seeing a RAM upgrade on one of these computers years ago, so I knew that there was a RAM slot located on the bottom of the machine, just underneath the central panel…

…and only two screws stand between you and a RAM upgrade…

…and until you realize that there’s just one RAM slot there. Upon seeing this, I looked around, confirmed that there was only one RAM slot under that panel, and then checked the online specs for the T430. It says two SO-DIMM slots. Where’s the other one?

Here’s the interesting thing about adding RAM to the T430: its two RAM slots are in quite different places with different levels of difficulty to access.

The second RAM slot — where the factory-installed RAM goes — is under the keyboard, and getting to it takes a little more work. My guess is that Lenovo’s engineers expected most users to buy a single DIMM to expand their machine’s RAM, and that they’d install it into the easier-to-access slot at the bottom of the machine.

Even if you have no plans to add or remove RAM from the more easily accessed underside, you still need to open the central panel at the bottom of the machine to access the RAM under the keyboard. That’s because there are two screws inside the central panel that you have to remove in order to get under the keyboard:

These two screws anchor the keyboard, and if they’re in place, you won’t be able to access the RAM slot underneath it.

When you’ve removed those two screws, you can remove the keyboard. Pry it up gently, starting with the edge closest to the trackpad. I used a metal ruler to help me with the process, taking care not to scratch the casing:

Lift the keyboard. You’ll see that it’s connected to the motherboard by a short strip of ribbon cable. There’s a thin piece of dark, slightly translucent plastic to the left of where the ribbon cable meets the motherboard; the RAM slot is underneath it:

To make it easier to pop in the RAM, I disconnected the keyboard. You might not have to do it in order to insert the RAM, but it was pretty easy:

I flipped back the panel, where the factory-installed 4GB DIMM lived…

…and replaced it with the new 8GB DIMM.

With the RAM installed, I reversed my steps, fired up the ThinkPad, and checked my RAM the fun way: by asking Cortana using my voice. Here was her response:

Success! The ThinkPad is back in action, and ready for development work. In the short time with maxed-out RAM, I’ve found that Visual Studio, Android Studio, and Camtasia work wonderfully, and video performance is improved as well (my model has integrated graphics, which relies on system RAM).

If you prefer a video walk-through of the ThinkPad T430 RAM upgrade procedure, try this one: