GOTO Chicago 2018 – Complexity, Boring Languages, and Not Throwing Null

Recently, our group of Atomic accelerators headed over to Chicago for the 2018 GOTO Chicago conference.

It was a two-day conference with six different tracks each day, so there were always multiple good options to choose. The talks ranged from machine learning to office politics. Even though the conference did not have a specific focus, there were themes that came up repeatedly, such as the complexity of computer science, big data along with its capabilities and biases, and handling errors well. Read more on GOTO Chicago 2018 – Complexity, Boring Languages, and Not Throwing Null…

Resources for Middle School Girls to Learn Programming

While we were at the Junior Achievement Girls Dream Fair a few months ago, a middle school girl came up to our booth. She went carefully through a sheet of questions, writing down my answers word for word.

“Anything else you’re curious about?” I asked when she was done.

After a pause, she asked, “Is computer science hard?”
Read more on Resources for Middle School Girls to Learn Programming…

Reactive Extensions, ReactiveUI, and Whistling Tea Kettles

How does reactive programming work? “It’s all streams,” our program manager explained. “When you update a property in one part of the system, it causes another property in a different part of the system to update, too. It will take a bit to wrap your mind around.”

In my head, I pictured properties all over the system “magically” updating when a user clicks a button. Due to the lack of magic in programming, this mental image was not a complete picture—but it’s not that different from how reactive programming actually works.
Read more on Reactive Extensions, ReactiveUI, and Whistling Tea Kettles…

How Learning Software Is Like Learning Chinese

During college, I showed up in Beijing with only a couple of elementary Chinese classes under my belt and took a placement test. It had a “tell us about yourself in Chinese” section. The previous summer, I had painstakingly memorized how to write a lengthy paragraph about myself in Chinese characters, so I wrote most of my vocabulary on that placement test. Read more on How Learning Software Is Like Learning Chinese…

Drawing Shapes with SkiaSharp

My team was working on an activity tracking application and wanted to be able to display segments of time on a radial gauge.  When implementing this feature, I initially tried using some libraries specifically designed to build arcs, but I was disappointed by their lack of flexibility. When my pair recommended looking into SkiaSharp, I was pleased to discover that not only could I build a radial gauge, but I also had quite a few options as to how to build it. Read more on Drawing Shapes with SkiaSharp…

Exporting a Java Library to a Xamarin.Forms Android Project

The device on our current project has two unique software development kits (one for Android and one for iOS). My team wanted to use Xamarin.Forms to create an application for the device so that the core logic of the app could be stored in one place. 

However, in order to also incorporate the platform-specific SDK methods, we had to export Java code (for Android) and Swift code (for iOS) as libraries and then import those libraries into a Xamarin.Forms project. Read more on Exporting a Java Library to a Xamarin.Forms Android Project…