Author: Steven Yang

  • Here’s why you should learn to code on a potato [Rant]

    Okay, okay, let me be clear: I’m not talking about the delicious, versatile, edible, literal potato. I’m talking about the metaphorical potato – which is a term sometimes used to describe low-end computer hardware.

    Now why, you may ask, should you learn computer science on dingy, old, slow, and underpowered hardware? Shouldn’t you strive for the most powerful piece of silicon you can get your grubby little fingers on? See, I beg to differ – I personally think that being limited by your hardware can make you a better programmer.

    So what’s led me to this observation? The answer is CS 2261 at Georgia Tech. CS 2261, officially titled “Media Device Architecture”, is a course essentially dedicated to learning about the intricacies and programming games for the Game Boy Advance (GBA). The GBA is, affectionately speaking, a potato. It wasn’t particularly powerful when it released in 2001, and over two decades of technological advancements since then have not done it any favors. That’s not to say the GBA is bad hardware by any means – it was remarkable when it was released, balancing good performancem, low cost, and excellent battery life. However, the single-core ARM7TDMI clocked at 16.78 MHz is ancient by today’s standards.

    Programming games for the GBA, however, has made me an immensely better programmer. Working around the limitations of the old clunky machine (via an emulator) has taught me a lot about making code more optimized and efficient. When you’re working with hardware that stutters and chugs when you draw one extra rectangle, you really start to pay attention to just how inefficient code can be.

    I feel that as hardware gets faster and faster, software developers tend to care less and less about making code refined. Especially in the age of iterative development and Agile, it seems that more and more emphasis is being placed on just getting working code out into production and implementing as many features as a team can cobble together. It’s not such a big deal, as the hardware is powerful enough to make inefficiencies unnoticeable.

    I think this way of thinking is born from an unfortunate combination of human laziness (I certainly am) and industry expectations. The innate human desire to seek out the shortest path to completion and the industry’s insatiable thirst for more and more features combines and compounds to create absolute monstrosities. However, I fear that this way of doing things is unsustainable.

    At the end of the day, computers are magical little boxes that uses electricity to turn inputs into outputs. However, we live in an age where humanity heavily relies on computation, and in an age where energy usage is becoming an increasing concern. One line of poorly optimized code might be insignificant, but an overall bloated software base probably contributes to a whole lot of energy waste.

    Not to mention, making games for an iconic console is pretty cool too.

  • Why can’t I tickle myself?

    I admit it. I am SUPER ticklish. The slightest touch from both man and machine alike will have me squirming and giggling like a child. However, I am immune to the touch of one particular entity – myself. See, I’ve never been able to tickle myself. Trust me, I’ve tried (I had way too much free time as a kid.)

    Tickling is often described as an uncontrollable reflex response that occurs when a sensitive area of the body is stimulated in a certain way. This response is thought to be related to the fact that tickling is often associated with social interaction, and is therefore more likely to occur when someone else is tickling us.

    It is important to distinguish that there are two types of tickling:

    • Gargalesis, which is tickling that causes laughter when areas of the body are touched, and
    • Knismesis, which is tickling caused by light motion on the skin, which usually just feels like an itch.

    The kind of tickling I’m talking about today is Gargalesis, which is what we usually think of when we think of tickling. Knismesis can actually be self-induced! To experience it, try to touch your skin suuuper lightly. (I also did this as a kid. I had WAYYY too much free time.)

    When we try to tickle ourselves, we are essentially anticipating the sensation that we are about to feel. This anticipation of the sensation reduces the tickling response, making it less intense or completely absent. The brain is able to predict the sensation and to some extent, suppresses the ticklish feeling that we would normally experience when someone else tickles us.

    Additionally, when we try to tickle ourselves, we are able to predict the timing and location of the tickling stimulus. This makes the sensation less unpredictable, and thus, less ticklish. On the other hand, when someone else tickles us, we are unable to predict the timing or location of the tickling, making it more unpredictable and therefore, more ticklish.

    So, in summary, we can’t tickle ourselves as effectively because our brain is able to anticipate the tickling sensation and suppress the tickling response, making it less intense or completely absent.

  • How to breathe FIRE! (Don’t Try This At Home!)

    If you clicked on this link, you may be, like me, a bit of a pyromaniac. Unfortunately for us, playing with fire is quite dangerous, so…

    Disclaimer: The activity of breathing fire is extremely dangerous and should only be attempted under the strict supervision of a trained professional. The techniques and practices involved can result in serious injury or even death if not performed correctly. The information provided in this article is for educational purposes only and should not be used as a guide for attempting the activity. The author, Charged Magazine, and the Georgia Institute of Technology do not endorse or encourage the practice of breathing fire and assume no liability for any actions taken by readers as a result of this article.

    With all that out of the way, let’s talk about fire breathing. As awesome as it looks, fire breathing is undoubtedly dangerous. To lower the risk of injury, professional fire breathers use of fuels with a high flash point of at least 50° Celsius. In scientific terms, flash point is the lowest temperature that a substance will naturally evaporate into a flammable gas. One of the most popular fuels among professionals is paraffin oil, which is a highly purified lamp oil. Paraffin oil is ideal as it has a fairly high flash point of ~90° Celsius.

    One should absolutely avoid using any fuel with a lower flash point. Especially dangerous fuels include:

    • Ethanol – Ethanol can be absorbed into the bloodstream without ingestion, leading to unwanted intoxication (drunk + fire = bad!)
    • Methanol – Methanol can be absorbed into your body via a variety of methods, and can lead to blindness and neurological disorders. Fun fact, methanol is often a natural byproduct of alcohol distillation, and a lot of care is usually taken to make sure none of it gets into the final product. It’s also why distilling alcohol is so dangerous!
    • Fuels with very low flash points (e.g. butane, propane, etc.) – These fuels are prone to a build-up of flammable vapors in the oral cavity, which can combust inside your mouth (yikes!)
    • Common fuels (e.g. gasoline, kerosene, etc.) – Fuels like gasoline and kerosene often contain carcinogens and additives which can lead to health complications, and are much easier to ignite (which is bad.)

    Now that I’ve hopefully scared you into not trying this on your own, I’ll tell you about my preferred method of fire breathing. Unlike all of the examples outlined above, my favorite – instead, I like to use cornstarch. As crazy as it sounds, your typical supermarket cornstarch can be used to breathe fire! Although the flame isn’t quite as spectacular as a liquid-fuel flame, cornstarch is a (relatively) safe option as the powder doesn’t ignite unless it is suspended in air, so the flame has a hard time reaching your mouth after igniting.

    The process is super simple:

    Step 1: Safety. Make sure you are outside and away from anything flammable. Make sure it isn’t windy, as the wind can blow the fire back into your face (I’m speaking from experience here.) A fire extinguisher and a way to call 911 is a must. Water can be nice too (to rinse out your mouth.)

    Step 2: Put a spoonful of cornstarch in your mouth.

    Step 3: Light a lighter or torch.

    Step 4: Blow!

    If everything has gone to plan, congratulations! You are still alive, and your friends are probably mildly impressed with the small fireball that’s come out of your mouth.

    So there you have it! Have fun not trying this at home!