tag:quandyfactory.com,2024-12-12:/202412122024-12-12T12:00:00ZQuandy Factory Newsfeed - BlogQuandy Factory is the personal website of Ryan McGreal in Hamilton, Ontario, Canada..http://quandyfactory.com/blog/277/try_additive_approach_to_climate_policy2025-01-19T12:00:00ZTry Additive Approach to Climate Policy
<p>Here’s a proposed analogy for how we might try to think about moving to a net-zero carbon economy: an additive approach works better than a subtractive approach. </p>
<p>I’ve been an on-and-off vegetarian for around 30 years (these days my diet is plant-based but not exclusively). When I started, I didn’t do it by cutting out meat dishes. </p>
<p>I did it by adding more and more vegetarian dishes until the meat dishes were all displaced from my diet. I never felt like I was giving something up - I felt like I was gaining something.</p>
<p>It was an additive approach, not subtractive. It felt like an expansion of my options, not a sacrifice. </p>
<p>So what’s my analogy to the climate crisis? I increasingly find myself thinking we should try taking a more additive approach to decarbonizing our economy.</p>
<p>For years I have felt that a consumer carbon price was inadequate but at least it’s <em>something</em>. It’s actually a classically conservative approach: use price signals in the market to incentivize a shift in demand toward lower-carbon consume goods.</p>
<p>And I thought the Liberals were smart to make it revenue-neutral and paid back as a flat rebate. That way, the more you reduce emissions in your consumer spending, the bigger net benefit you get to keep.</p>
<p>Unfortunately, they did a piss-poor job of explaining the policy to Canadians. In fact, they pretty much entirely ceded to the Conservatives, who successfully (and shamelessly) misrepresented it as a net cost when it’s actually a net benefit to the overwhelming majority of Canadians. </p>
<p>Carbon pricing is an economically efficient policy tool, but approximately half of Canadians have been convinced to despise it, and basically no one in politics is coming to its defence any more. </p>
<p>In any case, carbon pricing alone is not enough to move us to a low-carbon economy. For one thing, a lot of the consumer durables that lock in higher or lower future carbon emissions are manufactured in other countries, so shifts in Canadian consumer demand have less impact on market offerings.</p>
<p>A tiny number of corporations are directly responsible for most global carbon emissions. Squeezing consumers as a way of incentivizing demand for lower-GHG market offerings is one way to drive down emissions, but it subjectively feels both painful and futile to individuals. </p>
<p>And individuals vote.</p>
<p>As a corollary, the stick-first approach makes it easy and appealing for opportunistic politicians to demagogue against carbon pricing, since simple messaging can tap into near-universal public dislike of taxes - even though wanting to avoid paying the carbon tax is <em>precisely</em> the point. </p>
<p>In contrast, the Biden administration’s signature policy achievement, the Inflation Reduction Act, uses public policy and public investment to drive new low-emissions technologies on an industrial scale, addressing the climate crisis on the <em>supply</em> side rather than the demand side.</p>
<p>It has already driven so much new industrial investment and job creation - especially in red states - that it is quite likely to survive the incoming administration in at least some form.</p>
<p>If a Canadian political party came forward with an IRA-style approach to climate policy, I would embrace it enthusiastically - especially if it was coupled with permitting reform to stop environmental laws from being abused to block environmentally-positive investments. </p>
<p>Consumer carbon pricing is almost certainly DOA by the time our next federal election is over (if not sooner). That can be a source of despair, or it can be an occasion to try a new, bold policy that feels additive rather than subtractive.</p>
Ryan McGreal2http://quandyfactory.com/blog/276/no_trudeau_is_not_a_hypocrite_for_proroguing_parliament2025-01-08T12:00:00ZNo, Trudeau is Not a Hypocrite For Proroguing Parliament
<p>I’ve seen some takes equating the current prorogation of Canadian parliament with former Prime Minister Stephen Harper’s prorogue in 2008. Here is a short article on why they’re not the same.</p>
<p>The Conservatives won a minority of seats in the 2008 election and Harper stood up to continue as Prime Minister. His Throne Speech announced deep spending cuts and a proposal to change the party financing system in a way that would benefit his party and harm the others. </p>
<p>In response, the Liberals and NDP agreed to form a coalition, supported by the Bloc Québécois, and offer to form government instead of the Conservatives. </p>
<p>Given that the Liberals, New Democrats and Bloc represented a clear majority of MPPs, they could fairly claim to have the confidence of the House of Commons, whereas Harper, who had only his plurality of Conservative MPs, could not. </p>
<p>The parties announced that they would cast a vote of non-confidence on Monday, December 8. </p>
<p>Even though it was only two weeks after the election and the parliamentary session had just begun, Harper went to then-Governor General Michaëlle Jean on December 4 and requested a prorogue. </p>
<p>The mere request was a constitutional crisis. No Governor General had ever refused a Prime Minister’s request to prorogue, but no Prime Minister had ever requested one specifically to hide from a confidence vote just two weeks after an election. </p>
<p>On December 4, Jean agreed to his request, despite the fact that Harper had not faced a confidence vote, and allowed a prorogue until January 26, 2009. </p>
<p>That granted Harper almost two months to pour money into a propaganda operation framing the coalition as somehow ‘illegitimate’. </p>
<p>Today’s situation is different in every important respect. First, Trudeau’s government has faced a great many confidence votes over the past three years, including as recently as this past December 9, a week before parliament went into recess. </p>
<p>Second, giving the governing party time to choose a new leader is absolutely a legitimate reason to prorogue. In fact it’s exactly the sort of situation that proroguing exists to handle. </p>
<p>It’s nonsense to claim that the 2008 prorogue and the 2025 prorogue are comparable. The former was an abuse of parliamentary authority to avoid a confidence vote the Prime Minister knew he would otherwise lose. </p>
<p>The latter allows the Liberals to choose a new leader so Canadians can choose a new government in the election that will certainly follow soon after the next session of parliament begins on March 24. </p>
Ryan McGreal2http://quandyfactory.com/blog/275/my_favourite_new_songs_of_20242024-12-30T12:00:00ZMy Favourite New Songs of 2024
<p>I didn't want to try and rank them so the songs are listed alphabetically by artist.</p>
<p>You can see the full playlist here:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?si=8sLewidKresNtUu5&list=PLdwwn_Xv9kG0hmPUV8i6ckgklzn6RZEk-" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<p>There is also a Spotify playlist but it’s missing the Beaches track as it’s specific to Apple Music:</p>
<p><a href="https://open.spotify.com/playlist/4VaLL71l0aT1ONK5cBMszL?si=spCguJiUSTW1j4odc_s7-w&pi=u-mfHkF1MzQlW6">https://open.spotify.com/playlist/4VaLL71l0aT1ONK5cBMszL?si=spCguJiUSTW1j4odc_s7-w&pi=u-mfHkF1MzQlW6</a></p>
<h3>Ayokay - On My Mind</h3>
<p>This blissful, reverb-drenched club track glides into your brain effortlessly and stays there.</p>
<p><a href="https://www.youtube.com/watch?v=IZQ4hDYxuZA">https://www.youtube.com/watch?v=IZQ4hDYxuZA</a></p>
<h3>Bby - Pretty Boy</h3>
<p>Bby take upbeat British indie rock in the Wombats style as a jumping off point, and this jazzy track finds them in a more hip hop/grime inflected vein - especially in the Part 2 version featuring rapper Zino Vinci.</p>
<p><a href="https://www.youtube.com/watch?v=1rHAMtoZJ_A">https://www.youtube.com/watch?v=1rHAMtoZJ_A</a></p>
<h3>The Beaches - We Fell in Love in October</h3>
<p>I will always be a sucker for a shimmery pop-punk girl band, and these Canadian artists have irresistible exuberance. Their cover of the 2018 girl in red single was recorded to celebrate Pride 2024.</p>
<p><a href="https://www.youtube.com/watch?v=iggmiF7DNoM">https://www.youtube.com/watch?v=iggmiF7DNoM</a></p>
<h3>Chappel Roan - Good Luck, Babe!</h3>
<p>Chappel Roan is everywhere this year and with good reason. This sumptuous heartbreak song is just about perfect, combining Roan’s soaring Kate Bush-esque soprano with lush, symphonic orchestration and an unbearably catchy melody.</p>
<p><a href="https://www.youtube.com/watch?v=xcVwbhooTm0">https://www.youtube.com/watch?v=xcVwbhooTm0</a></p>
<h3>DAIISTAR - Clear</h3>
<p>Last year’s Good Time was a great time, packed with maximalist shoegaze anthems. In 2024 they leaned more into dream-pop with this gorgeous, restrained, midtempo single. </p>
<p><a href="https://www.youtube.com/watch?v=bev2eAyFO9Q">https://www.youtube.com/watch?v=bev2eAyFO9Q</a></p>
<h3>Deradoorian - Digital Gravestone</h3>
<p>This ominous, gritty single by former Dirty Projectors vocalist Angel Deradoorian is a teaser for her new album, due in 2025. It recalls the menace of PJ Harvey's "Down By the Water" and makes the best use of a scuzzy saxophone I’ve heard in years.</p>
<p><a href="https://www.youtube.com/watch?v=xRzy6lFym1o">https://www.youtube.com/watch?v=xRzy6lFym1o</a></p>
<h3>Djo - End of Beginning</h3>
<p>It’s kind of perfect that this single by Joe Keery, who also plays Steve Harrington in Stranger Things, is a gorgeous retro-eighties pop ballad steeped in glistening nostalgia. </p>
<p><a href="https://www.youtube.com/watch?v=aH7gkoBpN3s">https://www.youtube.com/watch?v=aH7gkoBpN3s</a></p>
<h3>Dummy - Nine Clean Nails</h3>
<p>I had a hard time picking just one song from Free Energy, their psychedelic pastiche of 1990s sounds that evokes Screamadelica in its eclecticism. And like all the best indie bands, Dummy has dual male/female vocalists in Emma Maatman and Nathan Odell.</p>
<p><a href="https://www.youtube.com/watch?v=gCyb1729fe0">https://www.youtube.com/watch?v=gCyb1729fe0</a></p>
<h3>Freak Slug - Ya Ready</h3>
<p>I absolutely love the fact that the 1990s have been having a major moment in new music, and this debut album, I Blow Out Big Candles, is awash in Pavement-esque lo-fi guitars and grimy trip-hop beats. “Ya Ready” thrums with a guitar riff that sounds like it was down-tuned a full octave.</p>
<p><a href="https://www.youtube.com/watch?v=ljyKMbg_nOE">https://www.youtube.com/watch?v=ljyKMbg_nOE</a></p>
<h3>GIFT - Milestones</h3>
<p>I also struggled to pick just one song from Illuminator, a fantastic collection of polished shoegaze/dream-pop delicacies. “Milestones” is less well known than their main hits, “Wish Me Away”, and “Going in Circles”, but it’s just a gorgeous, groovy album closer that deserves more recognition.</p>
<p><a href="https://www.youtube.com/watch?v=Jb8G8YSwAZg">https://www.youtube.com/watch?v=Jb8G8YSwAZg</a></p>
<h3>girlpuppy - Champ</h3>
<p>I didn’t love girlpuppy’s 2022 album When I’m Alone. Becka Harvey has a fantastic voice but the songs felt a bit flat. With new single “Champ”, all the elements finally snap into place: Harvey’s warm, sweet vocals soar above a mosh pit of huge crunchy guitars and melancholy melody.</p>
<p><a href="https://www.youtube.com/watch?v=KxrxREFfIUM">https://www.youtube.com/watch?v=KxrxREFfIUM</a></p>
<h3>illuminati hotties - December</h3>
<p>Recorded as part of the 30th anniversary celebration of Hopeless Records, this emo pop punk cover of the more acoustic 2015 Neck Deep single is heartbreaking and beautiful.</p>
<p><a href="https://www.youtube.com/watch?v=KMZ5Ez1eqnQ">https://www.youtube.com/watch?v=KMZ5Ez1eqnQ</a></p>
<h3>Jane Weaver - Love in Constant Spectacle</h3>
<p>The jazzy insouciance of this title track from her 2024 album reminds me of Edwyn Collins - noisy and discordant and cheekily self-aware. The whole album is a masterpiece.</p>
<p><a href="https://www.youtube.com/watch?v=hKzzR4J4RMU">https://www.youtube.com/watch?v=hKzzR4J4RMU</a></p>
<h3>Jesse Mac Cormac ft. Kaya Hoax - Grip</h3>
<p>The slowed-down, deeply swung dance beat feels almost Latin, but the emotive synth plucks of the “can’t do it on my own” verses are gorgeous and terse, contrasting the full-spectrum assault of the main motif. Just fantastic electronica.</p>
<p><a href="https://www.youtube.com/watch?v=8POwMMr8PqM">https://www.youtube.com/watch?v=8POwMMr8PqM</a></p>
<h3>Katie Gavin - Aftertaste</h3>
<p>The debut solo release by MUNA vocalist Gavin is a bit more folky and country-inflected than her band work and this single is a great example of her maturity as a songwriter.</p>
<p><a href="https://www.youtube.com/watch?v=Z1CeOmYO0fA">https://www.youtube.com/watch?v=Z1CeOmYO0fA</a></p>
<h3>The Last Dinner Party - Burn Alive</h3>
<p>Channeling Siouxsie and the Banshees and Kate Bush in their operatic gothic art pop, this band burned hot and bright when their debut album Prelude to Ecstasy launched in February and then caught a quick backlash for coming across a little too self-consciously put-together, but there’s undeniably a real talent at work. I look forward to seeing how their sound matures.</p>
<p><a href="https://www.youtube.com/watch?v=l4BWxFgmAjo">https://www.youtube.com/watch?v=l4BWxFgmAjo</a></p>
<h3>Lauren Mayberry - Sunday Best</h3>
<p>The CHVRCHES singer’s solo debut often feels like less than the sum of its parts, but this track stands out for its gloriously sunny Big Beat rhythm and soaring chorus.</p>
<p><a href="https://www.youtube.com/watch?v=bBmn2TWCP_Q">https://www.youtube.com/watch?v=bBmn2TWCP_Q</a></p>
<h3>Luna Li - Bon Voyage</h3>
<p>When a Thought Grows Wings, the second album by Toronto’s Luna Li, is precise and intricate and gentle and calmly resolute. I picked this single because I just think it’s gorgeous.</p>
<p><a href="https://www.youtube.com/watch?v=lMuxb5SH5T0">https://www.youtube.com/watch?v=lMuxb5SH5T0</a></p>
<h3>Magdalena Bay - That’s My Floor</h3>
<p>So many bands over the past few years have embraced a kind of pan-1990s musical aesthetic and I am so here for it. Imaginal Disk by Magdalena Bay is an exemplar of the genre. This track is busy and zany in the best way.</p>
<p><a href="https://www.youtube.com/watch?v=bd1i6CYVE6c">https://www.youtube.com/watch?v=bd1i6CYVE6c</a></p>
<h3>Moaning Lisa - getting over you is on my list of things to do (but not at the top)</h3>
<p>Did I mention the 1990s are having a moment? Moaning Lisa presents an amalgam of Veruca Salt, Letters to Cleo, Juliana Hatfield, Tracy Bonham, the Breeders and Celebrity-Skin era Hole with a 21st-century sheen. </p>
<p><a href="https://www.youtube.com/watch?v=HLbSm6f5heI">https://www.youtube.com/watch?v=HLbSm6f5heI</a></p>
<h3>Pelvis Wrestley - World is a Bucking Horse</h3>
<p>It’s easy to dismiss this as a cheesy Sparks pretender novelty act, except that this is a genuinely great song.</p>
<p><a href="https://www.youtube.com/watch?v=gw1ey3WdE0s">https://www.youtube.com/watch?v=gw1ey3WdE0s</a></p>
<h3>Ride - Last Night I Went Somewhere to Dream</h3>
<p>Hard to believe Ride are still making music in 2024, let alone music as vital and engaging as their latest album Interplay. This slow shuffle diverges from their prevailing sound, but I chose it because the driving, bombastic rhythm section that is the hallmark of Ride’s sound just can’t be suppressed. </p>
<p><a href="https://www.youtube.com/watch?v=jgO5Zu52uxw">https://www.youtube.com/watch?v=jgO5Zu52uxw</a></p>
<h3>RIP Dunes - Cruel Nature</h3>
<p>While a lot of my favourite songs this year have channeled the 1990s, the languid guitar-and-synths solo debut from Caveman vocalist Matthew Iwanusa harkens back to the mid-1980s. This dreamy mid-tempo track recalls the romantic synth pop of Boys and Girls-era Bryan Ferry, Thompson Twins, Alphaville and Icehouse.</p>
<p><a href="https://www.youtube.com/watch?v=JLgccIXwOUA">https://www.youtube.com/watch?v=JLgccIXwOUA</a></p>
<h3>RÜFÜS DU SOL - Edge of the Earth</h3>
<p>These guys have emotionally weighty electronica down to a science and their 2024 album Inhale / Exhale delivers exactly what you want and expect.</p>
<p><a href="https://www.youtube.com/watch?v=SFFWgi1IpQM">https://www.youtube.com/watch?v=SFFWgi1IpQM</a></p>
<h3>Sam Fender - People Watching</h3>
<p>1980s Bruce Springsteen meets The War on Drugs with a soupçon of the Killers for good measure. This is just a timeless feel-good song.</p>
<p><a href="https://www.youtube.com/watch?v=DHzaHMmXB6Y">https://www.youtube.com/watch?v=DHzaHMmXB6Y</a></p>
<h3>Sky Ferreira - Leash</h3>
<p>Sounding like a cross between Garbage, Rose Chronicles and Ray of Light era Madonna, this soaring tribute to, um, BDSM for the Babygirl soundtrack is yet another entry into the new canon of 1990s grooves.</p>
<p><a href="https://www.youtube.com/watch?v=5D0JeugTeNs">https://www.youtube.com/watch?v=5D0JeugTeNs</a></p>
<h3>total tommy - Losing Out</h3>
<p>Bruises, the debut for Jess Holt’s new band, is another trove of gorgeous guitar tracks vying for a spot on my favourite songs list. This song is an achingly beautiful quiet/loud meditation on heartbreak.</p>
<p><a href="https://www.youtube.com/watch?v=aHnSz_L5_10">https://www.youtube.com/watch?v=aHnSz<em>L5</em>10</a></p>
<h3>Vampire Weekend - Hope</h3>
<p>I chose the languid 8-minute closing track from Only God Was Above Us because it’s a microcosm of the album as a whole: a slow burn that gradually clicks with repeated listening.</p>
<p><a href="https://www.youtube.com/watch?v=keKluVOD_WE">https://www.youtube.com/watch?v=keKluVOD_WE</a></p>
<h3>VR SEX - Dictionary Talk</h3>
<p>The whole album, Hard Copy, is a cheeky post-punk masterpiece, churning together new wave, glam, goth, garage, cyberpunk, psychedelia and a lot of noise into a surprisingly cohesive whole.</p>
<p><a href="https://www.youtube.com/watch?v=6S0SheJYDuU">https://www.youtube.com/watch?v=6S0SheJYDuU</a></p>
<h3>World’s Greatest Dad - The Ocean</h3>
<p>There’s always room for another hooky emo pop punk song in my life, and this single from the band’s 2024 album Better Luck Next Time reminds me of what it feels to be young and in agony. </p>
<p><a href="https://www.youtube.com/watch?v=UMElGMtJZHI">https://www.youtube.com/watch?v=UMElGMtJZHI</a></p>
<p>“Well it’s been a rough year, and it’s only gonna get worse” indeed.</p>
Ryan McGreal2http://quandyfactory.com/blog/274/ai_code_assistants_and_the_future_of_software_development2024-11-23T12:00:00ZAI Code Assistants and the Future of Software Development
<p>I am a software developer and have been using GitHub Copilot since March. Here are some thoughts on what having an AI code assistant means for me, what it can and can’t do, and what it might mean for software development more broadly.</p>
<h3>Genuinely Useful</h3>
<p>First: I have found Copilot to be genuinely useful for me. My coding productivity, by which I mean how much code I can produce in a given time spent coding, has roughly tripled. </p>
<p>For the most part, I use Copilot in four distinct ways, three of them specifically code-related and the fourth code-adjacent:</p>
<ol>
<li>Autocomplete for boilerplate code</li>
<li>Looking up obscure technical matters</li>
<li>Modifying and refactoring existing code</li>
<li>Writing documentation </li>
</ol>
<p>I’ll consider each use case in turn.</p>
<h4>Autocomplete for boilerplate code:</h4>
<p>A lot of code is not fancy or innovative or even particularly complicated. In fact, clarity and simplicity are underrated virtues. Overly clever code can be hard to understand and troubleshoot when you inevitably have to look at it again later, and comments can only do so much.</p>
<p>When you’re writing workaday code, clarity and consistency and thoroughness are key. Naming conventions for methods and variables should be clear and predictable, and the code itself should be explicit and orthogonal. Each code block should do one clear thing, and errors or exceptions should be handled explicitly.</p>
<p>It’s tedious and time-consuming to write and when you’re in a time crunch (ie. always), you may be tempted to cut corners. </p>
<p>Copilot makes writing this kind of code a breeze. As long as you set up clear, predictable patterns when you start writing it, Copilot sails through adding methods and faithfully replicates those patterns so the code remains consistent and understandable. </p>
<h4>Looking up obscure technical matters:</h4>
<p>Modern software is extremely complex, with lots of systems stacked one on top of another, each layer hiding most of its complexity from the layer above it. To build applications effectively, a developer needs at least a working knowledge of several layers in the stack to run each piece of your code where it makes the most sense. </p>
<p>This is where one of my favourite eponymous aphorisms comes in: <a href="https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/">Joel Spolsky’s Law of Leaky Abstraction</a>, which states: <strong>All non-trivial abstractions, to some degree, are leaky.</strong>. </p>
<p>Which is to say, you can hide <em>most</em> of the complexity <em>most</em> of the time, but sooner or later you will encounter an issue where you need to get into the details to solve a particular use case. </p>
<p>Modern software has too many layers and too many implementation details to keep it all in mind all the time.</p>
<p>In the old days, developers would go to Stack Overflow, a question-and-answer website where developers post tricky or obscure problems and other developers show off their expertise by sharing solutions, and the community moderates the answers to bring the best on to the top. </p>
<p>You had to hope that someone had the same problem as you and that someone else knew the solution and was willing to share it. </p>
<p>Now, Copilot is extremely good at knowing the answers to these kinds of obscure technical questions. It has read every manual, every API document, every white paper, every monograph - and, yes, every question and answer on Stack Overflow. </p>
<p>I can direct Copilot Chat to look at the code I’m trying to write and describe what I’m trying to do. It will explain the solution and even write the revised code based on what I’ve been working on.</p>
<p>Instead of trolling through several Stack Overflow pages looking for a pattern similar enough to mine to be applicable, I get a custom-designed answer for my specific challenge - and I don’t even need to leave my code editor and switch to a browser. </p>
<h4>Modifying and refactoring existing code:</h4>
<p>In the same way that Copilot operates inside my code editor and has direct access to my code, it is also helpful for modifying and refactoring existing code. </p>
<p>Let’s say I have a form to add a record to a database and need to add a new field to the form. I need to modify the method that writes the form to add the field, and then I need to modify the method that receives the submitted form data, validates it and inserts it into the database.</p>
<p>Once I start writing the code to add the new field, Copilot anticipates what else I need to do and proactively writes the other pieces of new code to complete the change. If it needs a bit of guidance, I can always add a code comment on what I’m planning to do next and it will take the cue and offer a code completion.</p>
<p>Likewise with refactoring, or rewriting code to be better organized and structured without changing its functionality. Copilot has a large context window, which is the amount of information it can use to help answer your question, so it can read your code right in your code editor and propose improvements that are specifically tailored to your use case.</p>
<p>If you know which particular design pattern you want to implement, you can prompt Copilot with the pattern name - e.g. a Bridge pattern to separate an interface control from its implementation - and it will generate the code to do that.</p>
<h4>Writing Documentation:</h4>
<p>I was a fairly obsessive documenter before Copilot, but documenting what an application or API does takes time - especially if you want to be thorough. Now I write all my documentation as Markdown text in my code editor, and Copilot is there in the editor autocompleting my documents. </p>
<p>The generated text is not exactly enthralling, but it doesn’t need to be - indeed, the writing style should not be a distraction from its contents. And because Copilot has your code in its context, it’s quite good at autocompleting documentation which already understands the code it’s trying to document. </p>
<p>My documentation is better, it’s ready sooner, and I spend a lot less time on it.</p>
<h3>Strengths and Limitations</h3>
<p>To the extent that I know what I’m trying to code, Copilot makes me faster and more productive. It speeds up the code I already know how to write by writing it for me. It speeds up the code I’m not sure how to write by pointing me to the implementation details I need to solve trickier technical problems.</p>
<p>And it incentivizes me not to skip the boring busywork - the necessary but tedious code scaffolding, the dreaded documentation - that tends to produce technical debt if you yield to the temptation to postpone (ie. ignore) it.</p>
<p>However, <em>writing code</em> is only part of the job of a software developer. Before writing code, you need to be really clear on what you want your code to do. Depending on your organization, that might mean talking with team members who engage with your clients, or it might mean engaging with the clients yourself. </p>
<p>In many cases, your clients don’t quite know what they want either, or they think they know what they want and they ask you for specific implementation details instead of explaining what they’re trying to accomplish. So you often have to invest time and attention in a relatively unstructured series of discussions in which you ask open-ended questions and drill into the why and even the why behind the why. </p>
<p>Those discussions can feel time-consuming and even frustrating, but in my experience, it’s worth the investment to get to a deeper understanding of the real problem you’re trying to solve. That, in turn, can prevent a lot of wasted effort writing code that is superficially on-topic but doesn’t solve the real problem. </p>
<p>People who blithely claim that software developers are obsolete because AI can write code may not be reckoning with just how essential it is to understand both how to write code and also how to understand what the code needs to do. </p>
<p>In addition, while Copilot is freakishly good at knowing what code I’m writing and finishing it for me, it still occasionally gets it wrong. It's still essential to review any code that Copilot writes, even if it looks exactly how I was planning to write it, to make sure it has not introduced any subtle errors. </p>
<p>It's always a temptation, however, for a busy software developer to glance at generated code and decide it's good enough. In that way, the risk tradeoff of an AI code assistant is that you reduce the incidence of one type of technical debt but increase the risk of another type. </p>
<h3>What’s Next</h3>
<p>We are in the midst of an extraordinary AI hype cycle. Every company is trying to stick AI into its operations, products or customer engagement practices (or all three), and I think it’s fair to say the results are mixed. </p>
<p>I don’t mean to suggest that AI is all hype or that it has no real value. I’ve been using AI in my job for almost nine months now, and it has already become an indispensable productivity tool. But we can reasonably expect a boom/mania/bust cycle that leaves a few winners standing amidst a lot of failed efforts, stranded investments, and unmet expectations. </p>
<p>My hope is that, when the dust settles, we end up with some kind of synthesis in which the cost per unit of software development is going down but - and this is where my eternal optimism comes in - the number of use cases in which software becomes cost-effective to produce is growing in proportion.</p>
<p>Worst-case, we collectively cede control of the digital environment to robots working for billionaires. Best case, we are collectively able to displace more tedious, boring, error-prone and soul-crushing busywork with more humane and engaging activities that produce real value.</p>
Ryan McGreal2http://quandyfactory.com/blog/273/rip_thomas_e_kurtz_co-creator_of_basic2024-11-20T12:00:00ZRIP Thomas E. Kurtz, Co-Creator of BASIC
<p>I just learned that Thomas E. Kurtz, co-creator of the BASIC computer programming language, died on November 12, 2024 at age 96. This really hit me emotionally, and I’ve come to realize it’s because my life would most likely be radically different if not for BASIC.</p>
<p>I was launched on the road to becoming a software developer at around age 13 in the mid-1980s when my mother came home from work with a Compaq Deskpro Portable computer. It came with two 5 1/4” floppy drives, a 40 MB hard drive and 640 KB of RAM and it weighed around 30 lbs. </p>
<p class="image">
<img src="/static/images/IMG_5599.jpeg" alt="I still have my old Compaq Portable because I can’t bring myself to throw out computers. It still turns on but the autoexec.bat file never runs." title="I still have my old Compaq Portable because I can’t bring myself to throw out computers. It still turns on but the autoexec.bat file never runs."><br>
I still have my old Compaq Portable because I can’t bring myself to throw out computers. It still turns on but the autoexec.bat file never runs.
</p>
<p>I was sort of hovering annoyingly around the perimeter as the tech set up the computer, and at some point he looked at me and said, “Hey kid, you wanna learn to program computers?” </p>
<p>I said, “Uh, sure?” </p>
<p>He handed me a small black plastic-bound three-ring binder containing a manual on GW-BASIC, the specific flavour of BASIC that shipped with the computer.</p>
<p>I started on page 1 and read through the book. As I learned each concept, I started writing programs that incorporated the fundamental constructs of most modern languages: </p>
<ul>
<li>direct mode vs program mode</li>
<li>variables and data types</li>
<li>if-then conditions</li>
<li>FOR-NEXT loops</li>
<li>WHILE-WEND loops</li>
<li>reading from and writing to the file system</li>
<li>sequential vs. random data access</li>
<li>25x80 ASCII graphics on the Hercules monochrome display</li>
<li>program flow via the much maligned GOTO </li>
<li>subroutines via the more civilized GOSUB-RETURN code blocks</li>
<li>error handling via ON ERROR GOTO</li>
</ul>
<p>I even made some rudimentary music (PLAY took letter notes whereas SOUND took frequencies in Hz) producing different pitches of the square wave beep our computer could emit.</p>
<p>And yes, my first program read:</p>
<pre><code>10 PRINT “RYAN IS AWESOME!”
20 GOTO 10
</code></pre>
<p>Eventually I was creating elaborate if extremely derivative programs, including a text-based Dwarf cave adventure game in which I was determined to have the game remember all the locations your character killed monsters so they would still be there if you came back later. (I was particularly proud of having the corpses get incrementally more deteriorated each time you revisited them.)</p>
<p>Eventually I grew into adulthood and lost interest in programming. But in my late 20s I found myself in a position where my manager wanted an intranet site for our organization and I perhaps capriciously offered to build it. </p>
<p>I was also working part-time as a waiter and one of my coworkers was taking a web development course at a local college. I asked him how hard it was to build a website and he was really helpful, pointing me to some resources and giving me the basics of HTML.</p>
<p>One thing led to another and I ended up moving into a role in my regular job that had a web development component. </p>
<p>At some point I was asked to build a dynamic website and when I looked into the server running our website, I learned it supported something called Active Server Pages, or ASP. </p>
<p>Imagine my pleasant surprise when I found out the programming language for ASP was VBScript, which stands for Visual BASIC, scripting edition. </p>
<p>It was just a modern version of the language I had learned as a teenager! </p>
<p>Aling the way, I also learned JavaScript and CSS, and once I started writing server code, I also learned SQL. </p>
<p>When a group of us decided in 2994 to start a local civic organization, I offered to build us a website. The very first version of Raise the Hammer was built in VBScript and the data was stored in an MS Access database (except for the article contents, which were stored in text files). </p>
<p>Once ASP became deprecated for Microsoft’s new .NET application development framework, I decided to break from the MS stack and branch out to a cross-platform language called Python. </p>
<p>That was around 2009 and it turns out to have been a very good call, as Python has become a dominant language across various domains, including machine learning and AI. </p>
<p>So far I’ve enjoyed a wonderful career as a software developer, albeit self-taught, and it has given me incredible opportunities to learn things and build things and be a part of some amazing communities, organizations and projects.</p>
<p>I try to be mindful of the rare privilege of having more or less open access to a computer in my home starting in the mid-1980s. I don’t think I appreciated at the time just how unusual this was!</p>
<p>And reflecting on the death of Thomas Kurtz, I also have to acknowledge the privilege of being exposed to a high-level programming language specifically designed for ease of understanding and learning.</p>
<p>After all, BASIC stands for <strong>Beginners' All-purpose Symbolic Instruction Code</strong>, and true to its name, it really was easy for at least one awkward kid to learn.</p>
<p>May Thomas E. Kurtz, who changed the course of human history during his 96 years and has now undertaken the ultimate GOSUB with no RETURN, rest in peace. </p>
Ryan McGreal2http://quandyfactory.com/blog/272/kamala_harris_deserves_to_win2024-11-02T12:00:00ZKamala Harris Deserves to Win
<p>Kamala Harris and her team have run an extraordinary campaign. The central message is clear and consistent and compelling. Harris has successfully communicated her story, her values, her vision and her specific policy agenda.</p>
<p>Her core message puts freedom and opportunity at its centre, drawing an increasingly sharp contrast with her opponent and detailing in specific, personal terms how her policies will help Americans to get ahead. Harris doesn’t shy away from making the stakes of this election clear, but she campaigns with joy and laughter and optimism, and she has built a big tent, promising to represent the interests of all Americans, regardless of how they vote.</p>
<p>Harris has performed consistently well under unimaginably enormous pressure. From her first rally after suddenly becoming the presumptive nominee, to her masterful debate performance in which she goaded her opponent into a full meltdown, to her commanding execution of a hostile interview on Fox News, to her exhilarating closing argument to 75,000 attendees last Tuesday at the Ellipse, Harris has continually met each moment of this astonishing campaign.</p>
<p>In choosing Minnesota Governor Tim Walz as her running mate, Harris eschewed the poll-tested cautious route and selected a charismatic, down-to-earth Midwestern progressive with a strong track record of achieving popular, effective policy results and a folksy way of piercing the mystique of condescending, self-important Republicans.</p>
<p>Meanwhile, the Democratic Party has built a massive outreach and get-out-the-vote organization to build on the momentum of the presidential campaign, channel volunteer enthusiasm and maximize turnout across a large, fractious anti-MAGA coalition spanning everyone from social democrats on the left through constitutional conservative Republicans on the right.</p>
<p>Their social media strike force has been agile, witty and prolific, relentlessly driving the Harris campaign’s themes in an often hostile landscape of large social networks designed to reward paranoia and enragement.</p>
<p>Overall, the campaign has been well organized and well funded and the strategy has been well executed. They have gone to all the places they needed to go and done all the things they needed to do to reach voters - especially low-propensity undecided voters in key swing states which, thanks to the caprices of the Electoral College, will decide the outcome of the presidential election regardless of the overall popular vote share.</p>
<p>With no serious gaffes or major missteps, Harris has given her opponents no real hooks on which to hang their criticisms - which, of course, has not stopped them from embracing wholesale shameless denial of reality to make their apocalyptic opposing case to voters.</p>
<p>Her opponent promises to round up and deport millions of people, give huge tax cuts to his billionaire friends, impose a massive new sales tax across the board on all imported goods, slash spending on federal public services by trillions of dollars, and exact retribution on his political enemies by transforming what remains of the federal government into his personal revenge machine.</p>
<p>After refusing to concede his electoral loss in 2020 and inciting a mass violent insurrection on January 6, 2021, Trump continues to deny that he lost and has made accepting his lie a condition of loyalty for members of his party.</p>
<p>Everyone who refused to bend the knee has by now been pushed out. Those who remain - and those who signed up to fill the void of the more principled - are either craven enough to parrot the lie or doctrinaire enough to believe it.</p>
<p>Trump’s daughter-in-law has taken over the Republican National Committee and reallocated the funding for its GOTV operation to a massive lawfare assault on the integrity of the 2024 election while Trump and his sycophants have been busy laying the groundwork to insist again that he won, no matter the actual results.</p>
<p>And he absolutely could win. The swing state polls have had the two candidates essentially tied since Harris launched her whirlwind campaign on July 21. The election could go either way, and no one will know the outcome until the votes have been counted and litigated after November 5.</p>
<p>There is no question that Harris deserves to win. She has run a much better campaign. She has been disciplined, consistent and forceful. She and her team have built the largest and most comprehensive ground game in American history.</p>
<p>She also has an army of lawyers ready to litigate the Trump campaign’s efforts to disqualify legitimate votes. No one can accuse her of throwing the game.</p>
<p>To the extent that doing real things in the real world still means anything, Harris has put in the work to secure a well-deserved victory in this surreal campaign, whereas Trump has run a wildly undisciplined campaign and outsourced his ground operation to a billionaire oligarch toady.</p>
<p>If Harris loses, there will be a firehose of recriminations from pundits and politicos claiming this or that strategic failure or unforced error or tactical oversight caused her downfall.</p>
<p>The plain truth is that if she loses, it won’t be because of any mistakes she made, no matter how much some people will want to shoehorn the result into their pet priors.</p>
<p>If she loses, it will be because Americans, by and large, looked at their choices and chose fascism.</p>
<p>The good news is that the outcome has not been written yet. There absolutely is time for a majority of Americans to decide that their republic is still worth protecting and preserving.</p>
<p>I’m not superstitious, but I am a little stitious, so I’m not going to make any predictions, other than this:</p>
<p>If enough Americans come together and reconstruct the anti-MAGA majority that defeated Trump in 2020, they absolutely will defeat him again in 2024.</p>
Ryan McGreal2http://quandyfactory.com/blog/271/our_media_platforms_are_failing_in_the_fight_against_fascism2024-10-11T12:00:00ZOur Media Platforms are Failing in the Fight Against Fascism
<p>I have a pet theory that fascism rears up every time there is a transformational new communications medium and the fascists are able to exploit the lack of filters and protections in the new medium. Over time, as people and systems adapt, the fascist impulse gets downregulated again.</p>
<p>But this time, for various reasons, the systems that operate our new communications media are actually doing progressively <em>less</em> to filter, downregulate and protect against fascism, not more, as they mature. This is both fascinating and terrifying.</p>
<p>On Facebook, they decided to take the easy way out and deprioritize or outright block all news reporting indiscriminately, instead of trying to filter the reliable news from the propaganda and disinformation. The result is that an entire cohort of social media consumers get almost no news whatsoever now.</p>
<p>Xitter, um, decided to go a different route. That site actively incentivizes the worst kinds of disinformation and even pays propagandists to spread it through revenue sharing. And its owner is out there every day promoting and boosting insane fascist conspiracy theories. </p>
<p>(And not for nothing, but he has also spent tens of millions of dollars funding a Super PAC that supports Republican campaigns and especially the Republican presidential candidate.)</p>
<p>Media sharing sites like YouTube, Instagram and TikTok have opaque algorithms that promote content based not on accuracy but on emotional intensity and similarity to previously viewed content. This has the effect of serving as an intake funnel into increasing radicalization.</p>
<p>The legacy news media are struggling to compete for attention with these new media platforms, and tend to lean into their own forms of sensationalism to try and remain relevant. In addition, squeezed for revenue, these companies are cannibalizing themselves, which further reduces their quality and reliability and make them a target of claims that the news media can’t be trusted.</p>
<p>To the extent that democracy requires a reasonably literate, well informed electorate, this media landscape is very bad news.</p>
<p>In the past, the mainstream media were a primary line of defence against rising fascist sentiment. The fascists themselves understand this, which is why they attack the legitimacy of the media so relentlessly and invest so heavily in creating their own parallel networks.</p>
<p>Essentially, today’s major media networks are all either: (a) recoiling from their responsibility to be a bulwark against disinformation; (b) losing the capacity to serve this role; or else (c) actively working to promote the disinformation and propaganda they are supposed to be guarding against.</p>
<p>It’s bad. Really bad.</p>
<p>In a not-crazy media environment, it would be unimaginable for the election between Kamala Harris and Donald Trump to be a statistical tie. In a not-crazy media environment, Trump would never have gotten within several miles of the nomination for one of the two major national political parties.</p>
<p>But that’s not the media environment we live in.</p>
<p>No matter who wins in November, a huge share of Americans inhabit a funhouse mirror view of the world. Bringing them back into some kind of shared understanding of reality is going to be a huge challenge under any media context, but probably impossible if the media platforms refuse to help.</p>
<p>I would like to end on a hopeful note, and it is this: we are not the first generation to face this challenge, and we can learn from how previous generations responded to it. Our media environment is new, but the basic task remains: to figure out how as a society we can agree on what is real.</p>
Ryan McGreal2http://quandyfactory.com/blog/269/the_conspiracy_to_steal_the_2024_election_is_hiding_in_plain_sight2024-09-25T12:00:00ZThe Conspiracy to Steal the 2024 Election is Hiding in Plain Sight
<p>It’s vitally important to understand the central truth about the way authoritarians think about power: they don’t care if you believe them when they claim something, they only care about having the power to make their claims stick, regardless of how many people actually believe them. </p>
<p>In some ways it’s better when most people don’t actually believe them, because it lets them show that the truth has no constraining power over them.</p>
<p>Authoritarian power-grab conspiracies that succeed don’t succeed because of secrecy. <a href="/blog/204/the_j6_committee_and_conspiracy_theories_vs_real_conspiracies">They succeed when knowing about them is not enough to stop them.</a></p>
<p><em>I can’t emphasize this enough.</em> TFG is not trying to win more votes. He is saying out loud, over and over again, that he plans to win by controlling how the votes are counted in the swing states. </p>
<p>His campaign isn’t even running a ground game. Instead, they’re openly running a full-court press against voters and voting.</p>
<p>His enablers in state governments are changing voting laws and regulations to suppress legitimate turnout by making it more difficult to obtain voting ID, aggressively purging voter registrations, cutting the number of polling stations in Democratic-leaning districts, even making it a crime to provide water to voters lined up for hours in the heat because there are so few polling locations.</p>
<p>They’re also attacking the mechanisms of voting itself, taking over key positions in state election commissions and implementing new rules - often blatantly illegal - designed to manufacture chaos when it comes to tabulating and certifying results. </p>
<p>This tactic creates space for the other part of their plan: To undermine public confidence in which candidate won a swing state so badly that it becomes effectively impossible to submit a clean slate of electors to the House. </p>
<p>Why does that matter? Glad you asked. </p>
<p>The theory goes that if the states can’t present their electors on time, or if the results are deadlocked, then it falls to the House itself to break the stalemate. And the current Republican House majority leader didn’t just vote against certifying the results in 2020, he actually led the House effort to overturn the 2020 election results through specious legal arguments. </p>
<p>Asked point-blank about 2024 this week, he said, “If we have a free, fair and safe election, we’re going to follow the Constitution.”</p>
<p>“If”.</p>
<p>Again, if this conspiracy succeeds, it won’t be because they managed to keep it secret. They’re doing it all in public view. </p>
<p>If it succeeds, it will be because they succeeded in seizing the apparatus of power and making their plan stick. </p>
<p>Mike Johnson has the power he has over the next election - as House majority leader and second in line to the presidency - because his fellow Republican party members decided that his efforts to overthrow the last election were not disqualifying. That was a choice to put power ahead of truth.</p>
<p>On the other hand, the state of Nebraska won’t make a last-minute change to their law apportioning electors to switch to a winner-take-all model because a single Republican state lawmaker - State Senator Mike McDonnell - stood up to the massive pressure from the MAGA movement and refused to allow a special session to enact the change. </p>
<p>This demonstrates the huge difference a single courageous person can make, but it also illustrates just how fragile the rule of law has become under the sustained assault of a party that no longer wishes to earn power by winning public support.</p>
<p>All of this is happening even as organized, coordinated campaigns of abuse and violence seek to drive good people out of public office and the machinery of democracy and civil service.</p>
<p>And despite all this, the outcome remains a toss-up just six weeks from election day.</p>
<p>I’m not American so I can’t vote. But the world is watching, and would-be authoritarians the world over are busy taking notes and cheering for their guy to win. </p>
<p>Thanks to political polarization and the Electoral College, the election will most likely end up being decided by around 50,000 votes in a handful of swing states. Every single vote matters. And every action taken to reach people and inspire them to vote for freedom and democracy is essential.</p>
<p>I wish I had a more inspiring closing note, but this is going to be a nail-biter and there is no magic wand to guarantee the outcome. </p>
<p>The good news is that this is also true for the people trying to stack the deck against democracy. </p>
<p>They’re trying, but they have not yet succeeded. </p>
<p>And if enough Americans come together to campaign for a more hopeful, more inclusive future, that hopeful goal is absolutely within reach. </p>
<p>The rest of the world is rooting for you to succeed in keeping your republic and carrying it forward. </p>
Ryan McGreal2http://quandyfactory.com/blog/268/vp_harris_must_seize_control_of_her_own_narrative2024-07-28T12:00:00ZVP Harris Must Seize Control of Her Own Narrative
<p>As Louis Pasteur famously said, <em>chance favours the prepared mind</em>. And the free world is most fortunate that Vice President Kamala Harris, suddenly the presumptive Democratic nominee for president, was prepared to seize the historic opportunity presented a week ago today when President Joe Biden yielded to mounting pressure from his party and announced that he would no longer seek re-election.</p>
<p>Harris has her work cut out for her, not only because she is not well-defined in the minds of many voters but also because she is about to face an extremely well-funded partisan media assault.</p>
<p>The right-wing rage machine is unburdened by the need for logical consistency, so it embraces a kind of natural selection process in which an army of trolls generates an array of different attacks on their enemy and then they check to see which attack resounds with voters. </p>
<p>They don’t need a theory of the case against Harris; they just need to keep generating more and more BS until they find something that sticks. Right-wing narratives resonate because they shamelessly adopt whichever narratives happen to resonate.</p>
<p>They haven’t found an effective narrative against Harris yet. And the quicker and more clearly Harris defines herself, the less attack surface the right will have to impose some other definition onto her. So far she is off to an excellent start, defining her temperament and her vision not only in relation to core American values but also in razor-sharp contrast to her opponent’s biggest weaknesses.</p>
<ul>
<li><p>She wants to expand your freedom. He wants to control your life. </p></li>
<li><p>She wants to move the country forward. He wants to drag it backward.</p></li>
<li><p>She stands for the rule of law. He makes a mockery of the rule of law.</p></li>
<li><p>She’s upbeat and hopeful. He’s grim and apocalyptic.</p></li>
<li><p>She’s a bit goofy. He’s deeply weird and creepy. </p></li>
<li><p>She laughs. He sneers. </p></li>
<li><p>She likes Venn diagrams, he likes violent 4chan memes.</p></li>
<li><p>She fights for women’s rights. He abuses and demeans women. </p></li>
</ul>
<p>Harris also has another advantage: the modern right is so terminally online and so up its own ass that it can’t help reaching to an ugly combination of lazy sexism/racism and obscure references from the right-wing rabbit hole that swing voters find super-weird and off-putting.</p>
<p>But they’re also ruthless and relentless, and they will keep grinding and grinding until they find an attack that works, no matter how ugly or absurd. So Harris and her campaign team need to move fast to build on their early and really extraordinary success striking a new and energizing tone. </p>
<p>In 2020, Harris struggled to find her voice. After a couple of early comms missteps in her Vice Presidency, the Biden administration seems to have withdrawn her from a lot of high profile media appearances. It’s possible that fear of letting her upstage Biden may have also played a role.</p>
<p>What her incredible launch into the position of presumptive Democratic nominee tells us is that she spent that time out of the harsh media glare wisely. </p>
<p>She has been doing the hard work to build relationships throughout the party, mostly through the kind of smaller personal interactions at which she has always excelled. So when President Biden made his history-making announcement and then endorsed her to replace him, she was able to leverage her party relationships to line up enough delegates and party leaders to lock up the nomination.</p>
<p>Additionally , and just as importantly, Harris presents as refreshingly authentic and comfortable and clear in her persona and power and conviction, and that resonates better than any crass political hit job ever could.</p>
Ryan McGreal2http://quandyfactory.com/blog/265/modern_life_is_rubbish_is_not_rubbish_after_all2024-05-21T12:00:00ZModern Life is Rubbish is Not Rubbish After All
<p>In the early 1990s, there was a record store in Westdale on King West near Newton where you could actually listen to a CD before choosing to buy it. </p>
<p>When the second Blur album, <em>Modern Life is Rubbish</em>, came out, I rushed to the store to check it out - and I hated it. I was expecting another baggy tour-de-force like <em>Leisure</em>, but instead I got something sounding like mid-career Kinks and I was put off.</p>
<p class="image">
<img src="/static/images/modern_life_is_rubbish.jpeg" alt="Modern Life is Rubbish"></img>
</p>
<p>So I didn’t buy it. Of course, I came back into the fold with Parklife, and have remained a Blur fan ever since. But for whatever reason I never circled back to <em>Modern Life</em>. </p>
<p>Until now. I’ve been listening to it all weekend and I honestly don’t know what was wrong with me. The album is delightful! </p>
<p>It’s a rich serving of proto-Britpop with all the hallmarks that would characterize the Blur sound for the rest of the decade: the zany mishmash of British Invasion, post-punk and Baroque chamber music, the lush harmonies, elaborate melodies and chord progressions, the playful and dissonant guitar work, the quirky syncopated rhythms, the cheeky observational lyrics - a fully realized, coherent expression of a discrete musical worldview. </p>
<p>So to <em>Modern Life is Rubbish</em>, I offer my apologies for having dismissed you out of haste and distorted expectations, and I look forward to continuing to try and make up for lost time.</p>
Ryan McGreal2