Curtis Bucher

A little about me

My Blog

Hi! My name is Curtis Bucher and I am a high school student from Newport Beach, California. I am interested in Python Programming, Machine Learning, Computer Hardware, and Vinyl Records. I always enjoy keeping my mind engaged, and at any given time I can expect to be working on several personal projects, including this site! I am an avid reader, and greatly enjoy reading a wide range of books on a variety of subjects. However, I expecially enjoy reading biographies. I love getting coffee with friends, and binging TV shows on Netflix. My favorite of which are Friends and the Office.

My Interests

Software

Hardware

Music

I love programming and computer science. It is an incredibly creative, intellectually challenging medium, supported by a huge community of like-minded geeks around the world. Through this magical medium, you are given complete, uncontested control over the little, logical world of your computer. You can accomplish anything you can imagine! Programming is the future, and will have huge implications in every feild, from medicine to agriculture. If you care to hear me, or Linus Torvalds rant more about the unbridled joy of programming, check out my blog posts about "the beauty of programming".

I have always had a soft spot for hardware. I love programming and CS, but there is something incredibly pleasing and tactile about manipulating wires, chips, semiconductors, and breadboards to do your bidding. You are not confined in the logical world of a computer, but rather in a real life world defined by physics and chaos. That being said, hardware is always a challenge, accounting not only for logical, discreet variables in a computer, but for bad wires, RF interference and any number of bugs that like to screw with your sanity.

Without music, life would be incredibly dull. I love everything about music, accross all genres, but I particulary enjoy classic rock. My favorite artists are The Eagles, Little River Band, Jim Croce, Billy Joel, The Arctic Monkeys, and, of course, the Beatles. There is somethign incredibly powerful and mystic in how music is able to manipulate our emotions and memories. I am a self-defined audiophile and vinyl nut, with a collection of close to 100 albums. If you care to hear me rant about the merits of vinyl and the shortcommings of digital, check out my blog post on "the beauty of vinyl".

Software Projects

Votify

Votify was a project that I came up with when my freinds and I all disagreed on the songs to play when we were listening to music. I thought it would be really cool to, using Python and Spotify's web API, create a service that allowed people to vote on the next song that would play in their queue. I am using a server that allows people to navigate to a website on their phone and make a selection from a list of four songs to play. I modelled the UI after the game Kahoot. I am currently still working on the project, but I expect it to be completed very soon.

Computer Chess

I beleive it is almost a right of passage for any young programmer to create a chess program. It is a fun challenge, and a project that can constantly be improved and worked on. I am constantly working on this project, but it wasn't untill recently that the computer beat me in chess for the first time. I am by no means good at chess, but it was very exciting to watch.

Desert Island

Desert Island will always have a special place in my heart. I developed the game after a card game my freinds and I created. It is essentially an RPG that takes place on a deserted Island, where the goal of the game is to survive and escape the island. I have probably made 5 or 6 attempts to perfect this game, in every medium from a text-based game, to a board game, but this particular version holds a special place in my heart as one of my first programming projects.

Planet Explorer

Planet Explorer is a game I created after reading an article on hashing and random noise generation. Less of a game than a proof of concept, planet explorer follows a lone astronaught as he navigates an infinite number of infinitely large, procedurely generated universes. The universes contains procedurely generated stars and planets, and includes realistic space physics.

Tank Commander

Tank Commander was my final project for a CS class I took Junior year. The goal of the game is to teach programming to children through the fun, tactical lense of trying to destroy an AI tank. I never got around to improving the game after I turned in my final project, but I love the concept of it.

Hardware Projects

Discreet Transistor Calculator

This is a discreet four bit adder I designed and constructed using 60 RTL NAND gates. All the gates are designed using RTL (transistor resistor logic). In order to keep the transistor count down, the adders use positive and floating signals rather than the traditional positive and negative signals used in digital electronics. This allows the board to use 2/5ths of the digital transistor count. It was a great learning experience, you can learn all about it and the steps I took to build it by following the link.

8-Bit 'braiNIAC' Computer

My brother a software engineer, decided one day to write an OS completely in brainf*ck, called braiNIX. Knowing that I was interested in hardware, he asked me if I wanted to createa computer that could natively run his braiNIX. The braiNIAC was born. Brainf*ck, in simple terms, it is an esoteric programming language, designed to be the simplest possible Turing-complete language. The computer is constructed using 7400 series logic gates as well as static RAM, and some parallel EEPROM chips for command logic, as well as storing the program. I am still working on this project, and am learning much about digital logic, circuit design, assembly and esoteric programming.

Let's get in touch!

"Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!"
- The Zen of Python