Wednesday, October 16, 2013

Robotics - Development Time

I might have already written a little about this somewhere but I figured I'd give a more detailed account.

My school has two FTC robotics teams this year. I've been assigned to the veteran team despite being a rookie - apparently expectations are high. For the past month, we've been considering options for the robot's design and creating some basic structure. Basically, every year in FTC, there's a different arena in which the robot needs to perform tasks. This year, the main thing is pushing blocks around and putting them into containers. I'm not that great of an engineer, but I have already started understanding how to program in RobotC, the C-like language designed for the NXT module. So far, I've created three test programs to try out the API and get used to the limitations. As soon as we get a battery charger, I'll be able to prepare some mobility programming.

Tuesday, October 15, 2013

Advanced Programming with Twisted Oak Studios

Twisted Oak Studios is a game development consultation firm that also does all manner of other high-level and complicated programming things that I do not understand. Over the past few weeks, I've read every blog article they've ever published. I've learned a lot, especially about functional programming ideas. I highly recommend that you read all the articles on their blog.

Sunday, October 13, 2013

Logofrag - XSS Alert Page

One of the critical functions of Logofrag is viewing threads. So, I started actually writing the code-behind to render the thread page today. Since I remembered that I was going to display a warning if angle brackets or ampersands were allowed in fragments (because possible XSS vulnerability), that was the first thing I implemented. There is now a very nice alert when accessing such a thread.

Saturday, October 12, 2013

Explaining DVD Region

Everyone knows that DRM (Digital Rights Management) is a real pain. One of the artifacts of this is DVD regions. One might see error messages about these when you put a disc in a player and see an error message that disallows the disc to play. As I understand it, certain discs are intended to be played only in certain parts of the world, probably because other countries have different copyright laws than the producer. DVD players are probably legally required to make overriding this difficult, so changing the playing region is often a very technical thing to do. In fact, a lot of players limit the amount of times their playing region can be changes. Fortunately, all Windows computers that have DVD support expose an API element for switching the region.

Friday, October 11, 2013

CSS-Only Hover Menu

I was thinking about using mouseover information boxes on Logofrag fragments, similar to RES does for usernames. After some searching, I came up with an article called "Creating a pure CSS drop-down menu" that wonderfully explains how this can work without any sort of JavaScript. Unfortunately, it requires that all the mouseover text be sent to the client to render the web page in the first place.

Sunday, October 6, 2013

Essay: Classifying Programming Languages

I wrote a classification essay for writing class entitled Classifying Programming Languages.  It's in MLA format; signal phrases are used because the teacher said so.  Download (DOCX), 15KB.

Wednesday, October 2, 2013

Logofrag - Fixed the Session

As I predicted, work on Logofrag is going along very slowly (something to do with schoolwork being so time-consuming and Etho being so entertaining).  I did some reading of the MSDN ASP.NET docs and discovered that, unlike Request.QueryString, Session items are Nothing by default.  I had been doing all kinds of stuff to see if it existed, make sure it was an integer, and parse it appropriately.  That was useless because I could just shove an Int32 into it and then retrieve that exact same value later.  So, I went through the small codebase and removed the string-parsing logic from accesses to the logged-in user ID.  Progress!