c

Presenting…. The MIDI Control Surface (Rev. A)

Hi all! I’ve finally gotten around to posting the pics of the MIDI control service project I was working on. Here are the details on this guy: Total Cost to Build: ~$60 if you count the hot glue gun, $45 ish if you don’t Total Time to Build: ~A month of planning, a weekend of building, a few weeks of tweaking software How’s it made? The guts This project has the following components: 1 wooden cigar box from a hobby…

Read More

I’ve been busy working, but I’ve started a side project

Hi folks! It’s been a long while since my last post. I’ve been working like crazy and preparing for my wedding! I have picked up a side project however. I wanted to learn about how a multitasking kernel does its thing at the basic level. So I grabbed an ATMEGA328P and built a little kernel for myself. You can go explore it at my GitHub repo. Introducing littleKernel As the name implies, it is a little kernel. I’ve built this little…

Read More

July Update

I’ve not written for a while because I’ve been crazy busy recently. I have started a new internship and moved cities to work. But I’ve also been working on a ton of other things as well. Recently, I have been reading the OSDev Wiki and trying my hand at OS development. I am slightly cheating by using an i686 emulator from QEMU and GRUB to boot me into real mode, but I am writing everything else from scratch. I’ve found the most…

Read More

Generic Data Structures

I’m curently taking a class called Data Structures and Algorithms. I decided I’d try to implement some common data structures of my own. These structures are mostly being built in a linked list style with the exception of the List struct which is built on an array that will auto-resize. You might ask, “why are you doing this, when there are already templated vectors and maps and such in the STL?” Mainly because I can!! I enjoy these things, and I…

Read More

Toom-k Polynomial Multiplication

I’ve been pretty busy with classes the past two weeks, but I’ve learned a few neat things and I’d like to share one of them. Multiplying big numbers is a problem when the numbers are really, really big. How big is really, really big? Depends on the hardware your using. But to multiply really big numbers, we represent the two multiplicands as polynomials where each term is in the form cxn, where x is the base in the number system, c is its coefficent modifier…

Read More

Binary bit fields and flags

If you’ve used any legacy C libraries before, you’ve probably used these things called bit fields, even if you didn’t know what they were. Bit fields are a way to efficiently store multiple boolean values in one or more bytes. If you can imagine an 8 bit integer as binary, each bit would have to be either a 1 or a 0, corresponding to an “On” or “Off” value. With just one 8 bit variable, you can store 8 on/off…

Read More

C++ 2014: auto return deduction and more!

The new C++ standard-in-the-making codenamed C++1y, has some great new features. The most standout addition in my opinion is the ‘return type deduction’ feature which allows functions to use ‘auto’ return types that will be deduced at runtime. There are a few limits on this functionality however. Recursion can only happen if there is at least one return statement that can be evaluated to a non-auto type. For example: // this factorial works auto factorial(int i) { if(i == 0…

Read More