In other news, about a month ago I started a daily Japanese practice blog (毎日日本語練習ブログ). I call it 日本語ベン強 (nihongo-benkyou). It's a pun; you won't get it unless you know some of the language. Since February of 2018, I've started taking Japanese classes. Foreign languages have always been an affinity of mine, and I was looking for a new hobby that's not related to tech. I created the blog so I could get some practice writing Japanese. Even if it's not the most correct. So far it's been fun.
I created this since I wanted to be able to do audio playback in C# on Linux, Windows, and OS X. While there were some packages available on NuGet, they were not preferable to me, so I took the time to make my own. It's hobbled together using P/Invoke bindings to `libsndfile` and PortAudio. At the moment it does not support MP3 decoding (though that is planned), which is one of the main drawbacks. And you also need to build the native dependencies yourself, but a CMake file is provided to handle that. In the future, I hope to also add some more features such as audio recording and some minor effects. So far I am happy with it.
One of those "smaller things," is this final project I worked on for my Computational Geometry class a year and a half ago; I wanted to release it publicly. My goal was to make "A teaching tool for other students to learn the Monotone Polygon Triangulation algorithm." The old version was buggy, but I finally got around to cleaning it up. If you want to play with it, you can find it here: https://16bpp.net/page/monotone-polygon-triangulation (source code is available too on GitLab).
It's been almost a year since I posted something.
The post important thing is that I've graduated from RIT, with a B.S. in Computer Science. It was a very good program and let me meet some great people.
Second, I had to put work on Blit on hiatus due to an employment agreement that I had last year. I had a 400 day streak going on the last day, which was pretty cool. Even though I could have started to work on it again a few months ago, I chose to pursue some other projects I wanted to get out of my head. I'll figure out the future of Blit soon enough.
I was planning on doing another post after Imagine RIT, but I've been pretty busy. I was able to display off MEGA_MATRIX there along with a small fork of Blit where you can create animations then upload them to the device. It's was pretty popular with the kids. I'll be posting some of the creations soon enough.
Speaking of Blit I have been still working on it daily since the first release back in February. The big thing that I had to do was refactor the underlying monolithic Animation module into a more flexible and reusable system.
Some small stats:
- 3.5 months
- +1,100 lines of code (exactly)
- 655 commits
- 51 tickets (felt like 151)
I've also done a few other things like add a shape tool, line tool, fill tool (you know, the basics), and a few icons. There are many other features that I want to add too like exporting to GIF and video files. I think I'll be able to get them done for P-2.
It's been a while since my last update. In that time, I've been working on a few projects here in there. As for MEGA_MATRIX, I've added support for the Arduino MEGA and have been able to do a few proof of concept stuff for the Raspberry Pi. The Pi version right now can get a whopping 20K FPS in the native C version! The Pi version isn't too functional right now, but expect soon enough. Link to source on GitHub.
Since the end of the summer, I've been working on my own Animation tool. It's not much right now, but you can find Linux and OS X binaries right over here. Here's the first thing I was able to make with it, a bouncing ball:
Hey, I'm still alive here.
I meant to post something back in March, but I was quite busy with school. I've been off for a month now; mainly just have been decompressing. Went camping up in the Adirondacks which was a lot of fun, but mainly was just catching up on all the Burn Notice I've missed since starting college. One of the main things I did for this site was move it over from a Raspberry Pi running in the corner of my apartment over to this "cloud," thingy. It was fun while it lasted.
As for my projects, I've had to put the coffee machine on hiatus and I've added some more features and changes to the CHIP-8 emulator. I've got something else (much smaller) in the works right now. You can expect a post on each soon enough.
I meant to post this about a month ago, but I've been quite busy. Anyways...
I mentioned in the last post that I was working on a Chip-8 Emulator. While it was a quite interesting project and I learned a lot from it, I decided to discontinue the project a month ago. My reasons were that I hadn't spend time on it in a bit (it was supposed to be a short 2-3 week project), but school work caught up with me and interrupted any progress. I did a fair amount of reasearch on the Chip-8 architecture and got some (but not all ROMs to work).
For the project, I wrote a small python utility to print out the data of a ROM (insanely useful for implementing op-codes). The brunt of the code was made with C and SDL. It started out using the 1.2 version of SDL, then SDL2 came out right after development began. In the late stages of the project, I thought it would be interesting to switch to the new API. It went smoothly. Sound/Audio (which is just a "beep," noise) isn't implemented.
But in retrospect, I got out of it what I wanted to learn; "How does an emulator work?" It was a worthwhile experience for the time I put into it. I'd love to acutally work on a different (more purposeful) type of emulator. But for now, I've got some other stuff that I need to get done.
If anyone wants to see it, I posted it to my Github page under c8_sdl. It's released under the GNU GPL v3 license.
So I haven't updated this at all in about a month. The main reason is that I've been busy both with my internship and my personal project. For the later, there has been a lot of reading involved (most of which I don't even use). But it's all beneficial.
I just got done with the basic testing phase for my personal project, and now I'm refacorting most of that code for release of it. I hope to have it ready this weekend. Most of my work for it probably will be documenting it and writing examples.
What is it about you ask? Serial communications. It's actually an older project (built at a 10 hour hackathon,) that I wanted to improve and extend it. You'll see it soon on Github.