What started as an attempt to demonstrate how interrupts and grayscale
rendering works on the TI series graphing calculators turned into a
full-blown attempt at writing an emulator that would be runnable in a
modern browser using a combination of Rust 🦀 and
WebAssembly 🕸. The idea came to me while walking through the
Rust + WebAssembly tutorial, where I realized that many of the
same abstractions could apply to an emulated system.
Through some backups, I recently re-discovered a folder with some high
school/college projects that I thought had been lost to the sands of time.
One of them was an early attempt at a small RPG written in Z80 assembly for
the TI-86 graphing calculator. I know what you’re thinking – what did I do
wrong to be tortured in such a way?
My second project in Rust is a little more practical than my first (which
you can read here). This project involves creating a
command-line utility that is able to interact with the Bear Writer
application, an OS X app that I use for taking notes, writing blogs, and
generally keeping my life organized in a single, cloud-synced place.
As part of an Arduino hobby project, I wanted to set up a development
environment that steered clear of the Arduino IDE and gave me an
easy-to-use toolchain that fit in with my existing tools. While the Arduino
IDE is useful for simple sketches, once I moved into anything remotely
complex I yearned for the features provided by modern day text editors such
as Sublime Text or VS Code. This post documents my journey to the almost
perfect (for me) dev environment for Arduino and other micro-controllers.
In an effort to do more fun side projects, I’ve been learning Rust,
a wonderful systems programming language developed by the Mozilla
Foundation. It’s been a while since I’ve touched a compiled language as my
after seeing a lot of interesting articles about
Rust usage and decided to dive into learning Rust by creating a very basic 2D
game, inspired by the classic Defender arcade game.
As a fun side project, I’ve been gathering data on bills that are
going through the U.S Senate. So far, the site itself is a pretty simple
web app to display bill status information in an easier to digest format.
This is the first step of many in my goal for an in-depth analysis of the
different of bills that are going through the Senate (and eventually House
of Representatives). Through integration with other publicly available data
hopefully we can gather some interesting insights that are not normally
readily available to a layperson.
A long-awaited continuation of my
in this one we will go into the exciting intricacies of:
Many moons ago, I worked on a college project that required procedurally
generating a “realistic” planet in 3D space. The original implementation created
a mesh in the form of the UV sphere
and then applied a particle deposition to create the terrain.
With all the talk about deep learning and neural networks, I thought it’d be
fun to revisit one of my favorite applications of artificial neural networks
(ANNs) – dynamic branch prediction.
2015 has come and gone in a hurry and we are already 1/2th of the
way into 2016. Reflecting on the past year it seems as if the list of things I
wish to accomplish has grown larger and the time in which to accomplish them
seems to have grown shorter. Startups tend to do that.
In an inspirational and aspirational speech to a crowd of 35,000 on
September 12, 1962 John F. Kennedy outlined his goals for the nation’s space
Climbers who lead routes often speak of having good “lead head” (lead as in
leader), a mental state that lets you break through plateaus in training or
climb challenging routes without that irrationally rational doubt and
uncertainty plaguing your mind. There are even classes where the very purpose
is to mentally train those who wish to push their limits.
Amid the flurry of preparation for a new year, I sat down to reflect upon the
one that has just passed. Every year I enter the next a little more optimistic
and a little more excited. Part of it due to the potential of unknown unknowns
(be it good or bad), and part of it due to thought of spending another year
with those that I truly care about and those that I enjoy being around.
There would be those who see a lot of glamour in start-ups and the whole
concept of entrepreneurship. It is romanticized by the media who broadcasts
million dollar valuations and billion dollar acquisitions. And for many, it is
the ultimate meritocracy, appealing to those whom other cracies never appealed.
The meritocracy was a guarantee that those with the smarts and know-how were
adequately rewarded while those who fell short of godliness, failed. It evened
the playing field for all, so much so that even the most out of place could
still find a place.
If you didn’t know, Google has a really useful search
feature that allows you to
find the definition of any word or phrase when using the define: prefix on
your search term. This along with the built-in OSX dictionary provides an
incredibly useful set of tools to find any definition as quickly as possible.
Hemingway recalled his experiences as a young man living in Paris as a
moveable feast. The people he met, the skills he learned and refined, and
the ideas he was exposed to during those times stuck with him until the
very end. It molded him into the person he would become.
For as long as I could remember I have always wanted to create. To create
programs, to create art, to create ideas – to just create! And these creations
never had to be in any creative or even practical capacity. Hell, they
don’t even have to be good or useful in anyway. There lay an incredible
feeling of joy in my ability to make something that did not exist before.
Recently I have been involved in the process of designing and creating an
academic poster detailing portions of my research in a manner that conveys it
in a clear, meaningful way. This turns out to be very difficult task.
Another year in closing, another one of those fantastic yearly recaps that I have the joy of writing. If I had these printed, why I could almost hear the sweet crumple crumple as people turn my riveting tales of adventure into a jump shot.
Every December I make a list of my favorite songs from the past year. Or at least I try. My musical tastes are eclectic and sometimes a little quirky which makes creating a list and checking it twice not so very nice. But enough talk! On to the music! Most of these picks were released this year, but there are the occasional that are not.
Recently, it dawned upon me that I haven’t sat down and wrote down anything of substance for a while. Oh sure, there’s the occasional research paper that I spearhead, but that often feels like work. Additionally, I can’t just put it up somewhere for everyone to see while it’s under review. And even after review, who wants to read some random research paper anyways?
Yesterday, if you weren’t aware, was Mother’s Day. As the years go by I
find that my mother doesn’t quite enjoy my hand paintings and macaroni
encrusted picture frames as much as she had when I was five. Nowadays I
simply opt for her favorite candies, which are so much her favorite that it
has become almost mandatory with whatever else I intend to get. This candy
has become so prevalent in holidays that I consider it a tax, an ‘Andrew’
tax if you will, that I’ll be paying for years to come due the hassle of
Woohoo! Well it’s been a while hasn’t it? I had such delusions of blogging grandeur, but alas it’s been a good 6 months since my last post. Let’s remedy that, shall we?
After a week of hard work and dedication my partner and I finally completed our final project for our Computer Graphics class. Below is the description we sent in to our professor as part of our project describing what we did.
Update #2 on our CSE 167 Final Project
CSE 167 is a course I’m taking this quarter having to do with Computer Graphics. We’ve been working with OpenGL creating cool scenes while learning more about the underlying concepts. It’s loads of work, but loads of fun as well.
Finally another update to our Multitouch project!
For those who don’t know, I’m currently the President of the Computer Science and Engineering Society here at UCSD. We have multiple projects that we run each year and numerous events (such as programming contests, game nights, etc).
So a little background on my implementation (feel free to skip this)….