Blockchain beyond Bitcoin: Applications in food supply and international aid

You’ve probably heard about blockchain mostly, if not exclusively, in the context of cryptocurrency (e.g., Bitcoin). But blockchain technology also has exciting applications in industries beyond finance. In this post, I’ll talk about two areas where blockchain is just beginning to be applied — food supply chain tracking, and international aid.

Continue reading “Blockchain beyond Bitcoin: Applications in food supply and international aid”

Offline networking support with CoreData and NSOperation

In this post, I propose a pattern for allowing apps to transmit data through unstable network connections. I’ll be taking advantage of the modern architecture present on the iOS Platform, as well as the popular AFNetworking (or AlamoFire). To follow along, you’ll need some knowledge of iOS Native Development, NSOperation API, CoreData, and Networking.

Continue reading “Offline networking support with CoreData and NSOperation”

Music Composition & Artificial Intelligence: Part 2

In Part 1 of this series, we dug into the technical side of AI music composition, including neural network and algorithmic methods. Now, I’d like to step back and focus on a different set of questions:

  • Can AI-composed music be good, i.e., will BeyoncAI ever rival the real Beyoncé?
  • How might AI change the music industry?
  • Who owns the rights to AI-composed music?

Continue reading “Music Composition & Artificial Intelligence: Part 2”

Music Composition & Artificial Intelligence: Part 1

Humans have been making music for as long as we can remember — but the tools and methods we use to do so have evolved significantly, from simple wooden drums, to wind and string instruments, to electronic synthesizers. And now, with projects like Google’s Magenta and Sony’s FlowMachines, we’re beginning to see the emergence of music that’s not just played by computers, but actually composed by artificial intelligence. Continue reading “Music Composition & Artificial Intelligence: Part 1”

5 psychology principles for designers

As a designer, I’ve thought a lot about what makes a product “user friendly.” I know that certain combinations of color, typography, layout, and interaction feel more relevant and intuitive than others — but why? What are the underlying factors that make one interface meaningful and easy to navigate, while another is opaque and confusing?

Continue reading “5 psychology principles for designers”

Android Custom Views: Creating an Animated Pie Chart from Scratch (Part 1 of 4)

Introduction to Part 1

This post is the first in a four-part series on creating Android custom views, and covers a few introductory topics, including: how to decide if a custom view is the best solution to your problem, the three basic methods for creating a custom view, and the required constructors you’ll need to implement when subclassing the View class. Continue reading “Android Custom Views: Creating an Animated Pie Chart from Scratch (Part 1 of 4)”

Machine Learning and CoreML

“WHAT THE HECK?! HOW CAN I UNLOCK MY PHONE WITH MY FACE?!”

Those were the words that came out of my mouth in October of 2017, as I pored over the user manual for my new iPhone X. It wasn’t all hyperbole, either — I really wanted to know, and I ended up dedicating quite a bit of time to learning about the science behind Apple’s new facial recognition technology. In the end, the answer to my question boiled down to two words — machine learning. Continue reading “Machine Learning and CoreML”

Fear and Empathy in Design

Last Christmas, I had a minor family tech crisis (we’ve all had those, right)? I was visiting my parents, and my mom asked me to AirDrop some photos from my iPhone to hers. I’ve AirDropped photos probably a hundred times, but this time, for some reason, it didn’t work. My phone showed the photos as “sent”, but they weren’t appearing on my mom’s phone.

Continue reading “Fear and Empathy in Design”

Writing reliable, efficient code with Rust

Recently, I’ve begun tackling a few projects in Rust, an open-source programming language designed to maximize software reliability and efficiency. Rust is used by a lot of big names — including Mozilla, Cloudflare, Dropbox, AWS, Google, MS, and Yelp — and was the #1 “most loved language” in StackOverflow’s 2018 Developer Survey.

In this post, I’ll share a bit of my experience using Rust; I’ll also talk through the language’s benefits and recommended applications.

Continue reading “Writing reliable, efficient code with Rust”

Atomic design: When a Button is a Molecule

If you’ve worked on a web design or development project, you can probably appreciate the benefits of reusing design elements across multiple website pages or app screens. Whether it’s a big, obvious chunk — a head or footer, say — or something much smaller, like an image or an icon, a design approach that allows for mixing and matching building blocks can save you a ton of time over one that’s constantly reinventing the wheel.

Continue reading “Atomic design: When a Button is a Molecule”

Close Bitnami banner
Bitnami