Tuesday, June 24, 2014

Finally set up my Raspberry Pi!

From this:


To this:


In just three hours of "why doesn't the pound key on my keyboard work?" "I commented out the overscan code, why won't it fill up the screen?" (Pro tip: the Raspberry Pi defaults to the Great Britain keyboard interpretation if you don't tell it otherwise, and use an hdmi cable if you want any control over your screen)

I got the pi for my birthday, but I want sure until recently what I wanted to do with it. I've decided I want to try combining it with my arduino hardware to automate the blinds, lights, etc. in my room. I can't really get going until I finish up with my month of summer camps though. Expect a theatre tech projects after next week, as soon as camp gets done and I can finally take a nap.

Tech Theatre Camp 2014!


Finally, my summer begins! I've spent the past two weeks at three different camps, so my schedule was a little busy. This last week, I worked with 84 other students (20-something other technicians) for eight days, 9:00 to 6:00, to put on four one-act plays with full sets, sound, and lighting. It was understandably pretty brutal, but a great experience overall, and I got to work with a lot of awesome people making some really awesome things.

The show I was assigned to, although I worked on all the sets and helped out with every show, was a cut version of Urinetown, a silly musical we turned into a 40 minute play. I was specifically assigned to be the lighting technician.

The first thing we did at camp was a tutorial on google sketchup, which we were supposed to use to make a preliminary set design to present to our show's director. I've used sketchup for projects before, so it wasn't a big deal. I don't have the design for Urinetown on my computer, but my theatre teacher, the head technical director at camp, had me start designing sets for next year's shows while I was there. Here's a rough idea for Gossamer's giant door, for our first show, that I made in the class.


Next we started actually designing and building for our show. Urinetown had the most complicated set and lighting out of all the shows, and the director had some very specific ideas about the set, so we didn't do much in the way of "design" so much as "build and hope the director likes it."


The base of the set was some stacked "metal scenic pieces" (we weren't allowed by the district to use scaffolding in the set, but some rules were meant to be bent) 



The tech director wanted to have two 8' by 8' doors hinged to the legs of the inner platform that we could swing to either side to represent different locations in the show, but the director thought it would cover too much of the scaffolding. I suggested hinging two 4' by 8' flats to the outside platforms so they would close and open easily. The idea made it into the set.


This was the Tech director's idea, and I ended up building it. The school we were working at had some jail blocks left over from "Chicago". We stacked them on top of one another, and spray painted plastic sheets to stretch behind them. The whole thing was backlit by a source 4, so that when a character gets pushed off the scaffolding and is harnessed, he falls behind it and you see his silhouette. It looked really cool onstage.





The director wanted the secret hideout sign to be really, really obvious. We cut out the arrows and the sign, painted them, and then strung lightbulbs  across them. For each lightbulb I used a tomato corer (which is a real life kitchen implement??) to poke a hole in the foam, pushed the base of the light through it, and screwed the lightbulb in.
I don't have any pictures of it all lit up yet, or any of the lighting work I did for the show, because by then I was too busy to take the pictures. There was a staff member who was the designated historian, who took a LOT of pictures, but I doubt I'll get them until I get back to school. I promise I'll post them as soon as I get them though.


This is the most 'complete' picture I have of the set. The final version had a wall that flew in underneath the secret hideout sign, and the swinging doors were painted. 

I was excited to try lighting, because it was something I'd never had the chance to try at school. I gave my stage manager a heart attack because I didn't know how to write down cues, and I was pulled away from paper tech to make the 'moon' for another show ( which turned out to be a three hour ordeal in hand sewing that ultimately was cut ) and again to reupholster chairs (the reason I didn't know how to write cues was that this happens A LOT even at school) 

In the end the show went great. The only major hiccups were that a rig that made it rain on the top of the scaffolding broke halfway through the show and started spraying water backstage. I panicked and missed a cue, but once it was fixed, the show ran perfectly. The actors were amazing, my team did really well, the audience loved it, and, at the awards ceremony after the show...


I was one of 8 technicians to win an Exemplary Tech award, and the only student to win both that and the Callback scholarship, awarded to one technician and one actor, which means I get a full ride to next year's camp. (You can see me holding the certificate and gold 'C' onstage, which I thought was a horseshoe throughout most of the ceremony and treated it as such.)

And I definitely want to go back next year! I loved the jobs, loved the people, and as busy as I was, I was having fun the entire time. 


Saturday, June 7, 2014

Useless Lamp - Mindstorms EV3

For our final project in one of my classes, we had to create an art piece based on a movement we studied. I picked Dada, and this is my project, Lamp. Here's a video of it in action.



I built the project using two mindstorms large motors and a pressure sensor. There are two halves to the mechanism - the "useless box" half, and the half that controls the lamp. The lamp in particular I used had a wheel switch that I had to to try three different ways of operating, finally taking it apart and reworking it as a button. The box decorations are made of vinyl and fabric I had lying around the house. I'm only going to talk about the mechanisms involved in making your own useless lamp. The rest is up to you.


Friday, June 6, 2014

Feature Friday: An NSA Sarcasm Detector?

There's a number of reasons why using social media as a method of finding potential criminals is both ineffective and dangerous, but the NSA seems intent to try and do so anyway. I'm not here today to discuss the ridiculousness of monitoring huge quantities of junk data for a threatening tweet, or the terrifying potential repercussions for the person who makes one too many jokes about the security inspection at the airport. I want to talk about the NSA's search for a twitter sarcasm detector, and whether or not such a program is feasibly possible, and how effective it could ever really be at filtering joke threats from the real ones.

First, lets pull up a definition of sarcasm.

sar·casm

 noun \ˈsär-ˌka-zəm\
: the use of words that mean the opposite of what you really want to say especially in order to insult someone, to show irritation, or to be funny

It's understandable why the NSA would want to avoid lawsuits by filtering out everyone who didn't actually MEAN their threats. But, the difficulty with machines recognizing sarcasm comes in two parts: 

One, sarcasm relies on the context in which it is made.


This is an easy one. No one wants to have to wait for their food, right? We construe that as a negative thing. So, someone acting excited or happy about their food being late is being sarcastic. 

However, sometimes it can be more difficult. If I say "Wow, great new plan by the NSA," if you don't know specifically which plan I'm referring to, my opinion on or views previously expressed about the issue, or even what community or scenario I'm speaking in, you might have a very hard time telling whether or not I'm being sarcastic. Then tie in allusions I make to other situations or pieces of media that need the same amount of context to be understood. It's not looking GREAT for the NSA right now.

Two, many people like their sarcasm as subtle as possible.



Some trolls will a satirical account where they try and make as many people angry as possible through their content to get views. Meticulous troll sarcasm can be difficult even for human users to spot, but for machines, it can be downright impossible, as they wouldn't use #hashtags, italics, WAAAAYYY OVEREMPHASIZING, or other clues the more sarcasm sincere might present. Imagine Jonathan Swift's " A Modest Proposal." An important piece of satire, but how many HUMANS thought it was real when it came out? 

This isn't to say that a computer CAN'T find sarcasm on the internet, but it's harder than it might look at first glance. 



A couple of projects like What Does The Internet Think and SyFy's Twitter Popularity index have already attempted "mining the sentiments" of social media. As this awesome article states, it's complicated, and while SyFy doesn't have the authority to arrest people if its program goes wrong, that's not the case for high-stakes web-terrorist stakeouts. As seen above, going by sentiment mining alone, half of  internet users are neo-nazis. (Note: This demographic is only accurate for youtube commentators so far as I can tell. Sigh.) 

The NSA can sink its money into making a complex, brilliant program that searches phrases and hashtags and formatting, tracks the sentimental tweets of users and their internet searches to determine their views and opinions, connect media references to their sources and the context involved there, link accusations of trolling to offenders and evaluate their veracity. They could sponsor the creation of an incredibly intelligent machine, and that is why I've included their claims as my feature today. I want this program to be made. But I don't want it in the hands of the NSA. 

In Cory Doctorow's Little Brother, he discusses the potential implications of a world where your every move and search is tracked, and analyzed for threats. Even as the tracking technology of the government improved, there were still so many false positives and negatives. .01% of a billion is still a huge number of people being put on the blacklist. And people kept finding new ways to trick the system. If the NSA gets its sarcasm detector and even one threat is missed, even one comment misconstrued, the first protest will be from those who make their sarcasm more complicated, harder to detect. So the NSA makes a new program. It's a battle without a winner. 

So don't let the silliness of such a request fool you. It CAN be done, and it WILL be dangerous to the neutrality and safety of posting even stupid things on the internet. This battle hasn't come to a front yet, but if you're interested, there are other battles being waged right now. Start with this petition on net neutrality. And please, whatever sarcasm you choose to use, don't threaten violence where it could be misconstrued. If not for the NSA's peace of mind, then for mine, and the 7 billion other people on earth who might take you seriously and react accordingly. Stay free, internet, and I'll see you next week!



Saturday, May 31, 2014

Elements of Computing Systems: Chapter 4

This has not been a great week for me. This post was SUPPOSED to be a tutorial for making fluorescent lightbulbs run on batteries. The problem being, of course, that two months and entirely too much solder into the project, my lightbulb remains unlit. Sigh. So, instead I turned to finish Chapter Four, which describes the Hack machine language you'll be using in your computer. It only has two projects at its end, so I figure I can read through it quickly and finish before I start studying for finals.

This was before I realized that in Chapter Four, ECS throws all of its rational explanations and helpful examples out the window in exchange for a list of machine language commands whose functions remain a mystery after reading the chapter three times. I didn't actually finish this project on my own. I found solutions others had programmed and studied them in order to figure out what the code actually did. And this was after studying the Hack tutorial on the Nand2Tetris website and the forums. I'll do my best to explain my problems with the chapter, but considering I'm still not sure I understand it, the explanation may not be accurate.

The first issue I encountered was in their initial explanation of machine language. Their explanation uses syntax from some language other than Hack, which was very confusing.
Then they go on to their explanation of the machine's two memory registers: A, which holds information that can be used in a command as either an address or a value, and D, which only holds values. These registers are manipulated through an @ command. The @ command is not well explained at all. The book seems to say that it works like a pointer in the A register. Actually, it loads a value into the A register. Consider this code.

@R1             // This loads the word "R1" into some space in the A register
D = M           // M refers to whatever is currently loaded in the A register, in this case R1
                      // D is the D register, which is unaffected by @ commands, so it can store values that are
                      // used by multiple @ commands.
@x                // This loads the word "x" into some space in the A register
M = D           // In a higher level language, this would translate to x = R1.
                      // The program will now read R1 everywhere you type x

Some 'memory words' (a term not defined in the book, meaning "R1" or "SCREEN" if those point to a specific memory address.) appear to be predefined addresses, but these are never listed. One of the projects involves creating multiple loops, but the syntax for loop creation is never given. At one point the chapter detours to describe how C commands translate into binary, which is both useless for the project and intensely confusing. You have to clear each memory register before you use it, but are never told to do so. The list goes on and on.

I don't understand how others were able to create their projects from this chapter. I may have done an exceptionally terrible job with the reading and missed everything I needed to know. I've never used machine language before. I had no context for how it should work. After hours of study, I was able to recreate others' solutions for the projects, and I understand the language enough now to use it. But did it really have to be that difficult?

I'm also a bit concerned that there was no chapter where we created the Assembler and CPU (unless those are created in chapter 5 and we just skipped around a bit.) I understand that they may be too complicated for the course to include, I was just expecting to build the ENTIRE computer, not just the parts of it that were convenient.

Hopefully I'll find Chapter 5 easier to understand. It probably didn't help that it was the week before finals too, and every teacher assigned every project at once. The upside is, expect project posts soon! I've got two on mindstorms and one on tech theatre costumes as soon as they get back from the school.

Then it's on to summer! And summer means robots and space camp, so you know what? Chapter Four? Still worth it for getting me that much closer to having my computer BUILT.

See you next time!


Friday, May 30, 2014

Feature Friday: Solar Roadways

I come across more and more REALLY COOL THINGS that people have designed and made every day. Really cool things that I want to share with you guys, and that I think definitely deserve the publicity. I've decided to pick a project, plan, or product every week that I want to share the sheer awesomeness of.

This week, let's talk about the recently crowd-funded Solar Roadways.


A company run by a couple, Julie and Scott Brenshaw, Solar Roadways promises to bring clean energy to the streets. The two have developed a modular solar grid system, and they plan to cover every sidewalk, highway, and streetside across America that's been wasting away under the beaming sun. It's a far fetched plan for clean energy, but it's raised 1.6 million on indieagogo already, and the funding keeps coming.

Not only that, the couple proposes that their durable solar panels be equipped with LEDs to create light up symbols and warnings on the road, heating, to melt snow on the road, powering electric cars as they drive, and so much more. 

The solar roadways project is incredible because it is able to tie in so many under realized technologies (solar panels, electric cars, etc.) I would give you the numbers, but I think it's more effective if they do it themselves. Their fundraiser was so successful, it was extended for another two weeks. Everyone should take a look at this project, because it might be the future of our roads. "Walking on Sunshine" indeed.

Sunday, May 11, 2014

The Elements of Computing Systems, Chapter 3

Finished Chapter 3, all about memory and sequential computer chips. This chapter was generally easier than chapter 2 in my opinion, mostly because all except for one of the chips were just bigger, badder versions of others. Making RAM4k isn't any fundamentally different from making RAM512, so you can't breeze through each of those chips easily. Which is good, because the outlier chip, the counter, was the most difficult chip I found to implement so far.
Unlike the ALU, where my problems were born of my own poor decision making skills, the sequential chips are just more difficult to design. They require a different kind of thinking than the combinatorial chips, because you have to account for past values emitted by the chip and compare them to the value the chip is receiving now. Be ready to make good use of your multiplexers.

The counter itself is particularly difficult for two reasons. One, unless you take the time to look at the test and the .cmp files for the counter, it can be difficult to understand the structure you're aiming for in the chip. Two, the structure itself is complicated, and relies heavily on the order of the gates. I used the debugging flag tool in the software for the first time for the counter, and I was very happy with how it worked, considering I did a LOT of debugging over the course of the chip. If you have trouble, remember its called a sequential chip for a reason. Figure out the order things should be calculated first, then go from there.

  1. Also, the tests for the memory related chips can take forever to complete. If you aren't specifically debugging a certain section of the program, run the test with no animation, otherwise you may be sitting there for ten minutes.