Issue 97

10 November 2021

by Lori M Olson

DRD097: It’s our all Blaise Pascal all the time issue.

Blaise Pascal's Pascaline mechanical calculator invented in the mid-17th century. (image: Rama via Wikimedia under Creative Commons Attribution-ShareAlike 3.0 France)

OPED — Lori’s Unvarnished Opinion

Origin Story

Last issue I started my origin story, or how I ended up choosing Computer Science (CPSC) as a profession in high school. This week I’ll continue with my time at university.

Attending the University of Calgary CPSC program, in the early- to mid-80’s, there was virtually no gender imbalance. I think we had about a 55/45 split for men/women. So, that sort of thing wasn’t even a consideration at the time. What was a problem was that I had virtually no experience with computers at all, and felt intimidated by some of my classmates who had home computers (Commodore, Radio Shack, Sinclair and the like) for a couple of years, and experience in BASIC programming.

As it turns out, many of those classmates (largely guys) ended up bored by the Introduction to Programming (in Pascal) CPSC class, and stopped even trying to attend. I just worked hard to get up to speed with what was being taught, and did fairly well. Not to say that I was certain about CPSC. I still had those other professions that I had been advised against (Geophysics, Astrophysics) in the back of my mind and even signed up for the honours physics course (a full year), along with a lot of math. It turns out that if you wanted to graduate with an honours CPSC degree, there was one and only one minor you could qualify for, and still fit in all the course requirements. That minor was Applied Mathematics. So along with my two (half year) CPSC courses in first year, I took four (half year) Math courses and, of course, Physics. Rounded it out with an introductory statistics and a single humanities course in ancient technologies.

That was pretty much an insane course load of almost all sciences. Not recommended. If I could go back in time, I’d tell myself to take it easier, and enjoy the experience of university a little more. But I was taking out student loans to go to school, because the only money I got from my parents was a single $500 Canada Bond that matured each year. While those were way better than no help at all, they didn’t even cover my book expenses each year. So I worked hard in my classes, so I could qualify for scholarships, and minimize my loans.

At the end of my first year of university, I tried to get a programming-related job, but those were few and far between at the time. I ended up back at my parents home for the summer, working retail. Definitely knew that I needed to do better next summer.

As my second year of university started, all of us General Studies students had to declare a major, and pick a faculty. Turns out working hard and getting good grades was necessary, because there were only 200 slots available in the required 2nd year CPSC course, and we’d had over 800 in the first year courses. Most of those guys who’d been bored in the first year classes, and thought they knew everything already, were pretty sad that their barely passing grades weren’t going to get them into the classes they needed. At this point, I entered the Faculty of Science and was pretty much committed to my honours CPSC degree, planning to carry on to a Masters program.

We’ll carry on and finish up the university days next time! Until then, be careful out there.

The overwhelming message of late has been “if you want something for Christmas you had better order it now!” Using that admittedly thin premise, here’s your sneak peek at this year’s once-a-year BFCM Bundle! If you’ve been waiting to dive into app development with Ruby, this is absolutely the best deal you’re going to see all year! Don’t wait for either Black Friday or Cyber Monday!

Do you have a DragonRuby-related product or service you would like to get in front of well over 1,200 raving DragonRuby-istas? If so, please get in touch...we would love to help you get the word out in a sponsored spot like this!  Sponsored

SPOT — Spotlight On…

There are certain types of functionality which are now so much ‘part of the furniture’ it’s easy to lose sight of what’s going on beneath those snazzy slipcovers. Take for example, the bucket tool in most popular drawing programs. It fills in a bounded area with whatever color we select. But there is quite a bit of algorithmic work to be done to make that actually happen—in this case, something called flood fill. Intrigued? Then check out Dee Schaedler’s example written in Ruby which we discovered recently on the Discord. It’s also illustrated with Dee’s nice little animation, below.

By the way, there’s an opportunity for you to help out: did you want to chip in some time and effort to “make this into a useable library” as Dee mentions?

GAME — All Things Gaming

We’ve mentioned at least once (maybe more) the great yawning gap in our math knowledge that makes understanding what’s going on in game development particularly challenging. If only we hadn’t washed out of Math 101, things might be entirely different today. But, to be candid, the guy we had for that class did absolutely nothing to make it even vaguely interesting. Which brings us to Freya Holmér’s video series which should really be called Math for Game Devs. Not only does Freya make it ridiculously easy to understand, her use of animated graphics makes the math exquisitely beautiful. You really have to see it: our recommendation is The Beauty of Bézier Curves as a great place to start.

APP — All Things App

It seems like every time Apple rolls out a new version of iOS, a whole host of little issues crop up. For example, the “on-by-default” Focus system, as we learned from a recent tweet from Greg Pierce. In that tweet he goes on to say the damn-near-undocumented wantsPriorityOverSystemBehavior may be that for which you are looking. Fortunately, there’s an Apple video entitled Focus On iPad Keyboard Navigation to help overcome the ominous “no overview available” in the written documentation.

TALK — Talk of the Tech

With this cavalcade of fancy new hardware coming out these days, there is a tendency to let our code slip a belt notch or two. After all, everybody has a brand new M1 MacBook Pro to run it on, right? Well, turns out that not everybody can work for Shopify. For that reason sometimes we have to make do making our tepid code run a little better on the hardware we spent $7K what seems like a few months ago. Cheer up—the money may already be gone but otherwise all is not lost. Here’s a story of how far a little optimization can go.

Tech newsletter content crunch? Intellog can help. And they have a special offer for DRD subscribers: they will curate and write the first issue of your newsletter for free. Find out more.  Sponsored

TWIL — This Week I Learned…

We are going to go out on a limb here and say that well formatted code is understandable code. That’s not all there is to making code understandable but lousy logic which looks good is still better than just plain lousy logic. Fortunately there are tools to take the busy work out of the process such as Standard, the “Ruby style guide, linter, and formatter” from Test Double.

HAHA — And They All Laughed

Having just done a drive-by on Apple for not properly documenting their code, perhaps it’s because Apple knows we won’t read it even if they did have it.

(image: @Carnage4Life)

That’s a Wrap!

The world’s best DragonRuby newsletter can be delivered to you—”at least it will be if you subscribe! Follow the WNDX School on Facebook, and don’t forget to follow WNDXLori on Twitter and Instagram.

If you enjoyed this issue of the DragonRuby Dispatch, please forward to a friend and ask them to subscribe, too…we really appreciate it!


“All of humanity’s problems stem from man’s inability to sit quietly in a room alone.” — Blaise Pascal

RubyMotion Weekly brought to you by