• About
  • Projects & Research
  • Publications
  • Archives
  • Categories
  • Spring Work

    2010 - 01.26

    So, this semester I’m going to have quite a workload. All my courses have a high reading amount. Two require homework and/or a programming assignment each week.

    In addition, I will be grading the first programming course, tutoring a foreign visually impaired student, and doing side research for the Director of Mentoring & Retention. I’m not even sure my workstudy is for this semester, but I’m guessing the Director wants to spend every dime (thereby making sure I get the full employment pay).

    In most semesters, I have done side projects which dabble into my interest. Yet, I’m not sure I will have the time this time. So, I have decided that I will continue watching how this semester goes and then decide whether I have the time.

    If it does work out, I think I would like to do some cell phone programming (probably Android, but maybe the iPhone‘s Objective C). I don’t know what I would want to program though. I would like to involve hardware, like the GPS or accelerometer. I think the best tools are tangible or ubiquitous.

    New Goal

    2010 - 01.24

    I have thought a lot over break about what I will be doing the coming year. While I have planned my life to be attending graduate school immediately after I graduate, I do not think this is the best choice for me anymore.

    I know I’d get into most schools. But, I don’t know that I would be happy in them. I can only point out something obvious before I just give up. (How many times have I heard people brag about the accessibility of virtual worlds? I guess only wheelchair users are disabled.)

    Getting into a school of choice doesn’t mean it’s where one belongs. Before entering computer science, I had been accepted into a top advertising department. While I liked my courses and profs, I didn’t belong there. Many of my peers did not relate to me. I don’t know if the stark contrast between my peers and my profs was from a maturity gap or what. Either way, it didn’t make me happy.

    … I have gotten disgusted by academia’s insistence that I prove I’m worthy of something without doing the same for me. They brag about papers and research, but never say what I get in return for joining them. Big deal if I get my name on publications; this assumes I don’t earn it. I get a degree that I earned. Yet, the university gets cheap research and teaching labor. While there is the employer-employee format, there is a lack of the cross-interview portion.

    In industry, I don’t know whether I will be happy either. Being a code monkey is a frightening prospect. But,I don’t want to believe that a company wouldn’t want to fully utilize it’s workforce. Would be a rather ignorant and inefficient format.

    Compilers, Networks, and Software Engineering

    2010 - 01.21

    I have taken two embedded systems courses, and am now in compilers and networking. Despite having my passion in human-computer interactions (HCI), I have taken predominately systems courses for my capstone work (the exception being A.I.). I suppose that’s because I also like ubiquitous computing, the movement towards embedding technology into the world until it becomes invisible.

    Compilers seems useful, but we’re still reviewing context-free grammars, parse trees, etc. from the computing basics. We will be making a compiler for MiniJava. This basically takes a subset of the Java language and produces MIPS, an assembly language.

    Compilers are very involved productions. One needs to know what kind of hardware it is compiled on, what the specification is for the language, etc. I’m not taking it to spit out compilers (there’s compiler compilers for that). It’s better for enforcing appropriate testing and debugging. (I admit to doing a ludicrous all/several test cases after writing my programs. The appropriate method is to do unit/module testing throughout creation.)

    Networking focuses on how the Internet works: how data gets from one machine to another and protocols for different types of data. I’m taking it more for interest in mobile devices. I don’t know if I’ll get a full answer to these, but it is best to know why I’m doing something:

    • How do cellphones, laptops, etc. protect data when it is on a wireless network? (Someone else can grab the bits I send from out of the air.)
    • What types of machines make up the Internet? What is the ratio between embedded systems and standard computers?
    • With the imminent death of the Internet, what comes next? (We’re running out of IPv4 addresses, and IPv6 adoption has been quite unsuccessful. The only viable solution if this trend continues is the creation of “gated communities.”)

    And then there is software engineering. Many students, including myself, put off this course until their last semester. This is because of reports of how not useful the course is and that it is taught backwards from the actual process (testing is done first, while design and specification is taught last).

    My first assignment is read either a 30 or 50 page paper on software disasters  and report on it in 2-3 single spaced paper. More distressing is that the course is packed with students; this is not helping my anxiety.

    All three courses involve group work. So, that’s a definite shift from my previous coursework and I don’t know what to expect.

    … As an aside, for anyone that does a Powerpoint presentation, please don’t use a white background. It visibly color shifts and flashes on a projector. (It’s bad enough for my migraines to be around florescent lights; I don’t need the screen I’m reading to blink, too.)

    Meeting Dr. Duck & More Ableism

    2009 - 12.18

    Dr. Duck has done wonderful work towards outreach and encouraging children to pursue science and math. His name is on several papers that I have come to love, rereading as if they were a beloved novel.

    I wanted to work with him.

    Up until I met him.

    Oh, and did meeting him hurt. My chest, two days later, still feels heartbroken. And I’m so tired of crying.

    I spent my time with him having tears welling up in to my eyes. My anxiety echoing through my head, telling me that I wasn’t safe here and I needed to leave. I cried most of the hour drive home. I didn’t realize why I was so upset beyond that he caused it. I was so happy about meeting him, and now…

    Turns out the person I admired counted disabled people as “other.” He repeatedly told me that his lab does education, not disability. These two  things are mutually exclusive in his mind. I guess disabled children aren’t worth educating; it isn’t an unheard of belief. But, to hear this from someone I admire, someone whose fucking research is education…? I was godsmacked. All the data and stories indicating that society has enforced the failure of persons with disability, the number of children that are disabled, the National Science Foundation (which doled out a lot of grant money to this guy) pushing that people with disabilities are needed to attain diversity in the sciences, none of these things occurred to him.

    When asked about my grades, I mentioned that I got two Cs in Calculus. And I briefly stated that my unaccommodated attention deficit was one of the reasons. “Yes, but what about your grades now?” I know that tone. I’ve heard it before. Directed at my brother who is on the more severe side of ADHD. That’s the tone of a pseudoskeptic. Someone that feels ADHD isn’t really a disability. Obviously, I just didn’t do well in Calculus and am making excuses. (We’ll just ignore the As on my assignments and the confused TAs.)

    I’m still upset now. But, I’m comforting myself best I can that I could have had him actually had him as an advisor; that would be infinitely worse.

    Learning from Projects

    2009 - 12.05

    My department encourages undergraduates to do research beginning in their freshman year. I get the impression that many schools limit this to a senior design project, which is rather saddening.

    I’ve stopped reading my CS text books because, well, they’re just not helpful. But then, trying to learn anything more unusual like how to use the tools available is still very difficult. So, I’m just going to do a quick overview of what I’ve learned from using different tool sets.

    LilyPad

    So, the LilyPad series of embedded systems modules is designed for wearable computing. So, the best place to start learning about the LilyPad stuff is from the creator, Leah Buechley. Things to keep in mind:

    • I never needed to create a pad for my units to prevent slippage. But, you’re millage may very.
    • Pins (rather petals) of the LilyPad Arduino are dictated by an int (integer) value.
      • 13 is reserved for the LED that exists on the LilyPad Arduino.
      • RX/TX are for serial connections (see XBee below)
      • Analog (denoted by “a” on the petal) pins retain the same numbering scheme as the digital ones(so there’s an analog and digital pin 0, which are both labeled “0.”)
    • Buttons should be set up connected to two digital pins. One should be written to be HIGH while the other is written to LOW. Then, just do something whenever the HIGH pin reads as LOW. (This is contrary to the standard debounce that is done with buttons.)
    • Do not EVER cross conductive thread lines or allow them to touch one another. This will destroy one or more modules.

    I have used all of the LilyPad modules available. Except for the slide switch it’s pretty much “find the closest example and repeat” (if anyone knows how to use the slide switch, I’d like to know).

    XBee

    Based on the ZigBee standard, XBees are designed for WPAN. Indoors, they are restricted to within a room, but can be separated by miles outdoors.

    This forum post is probably the easiest I’ve seen in getting started. Things to also consider:

    • RX connections go to TX and vice-versa. Weird, counterintuitive, but that’s how it goes.
    • With a firmware update, it’s possible to have the XBee use actuators. This isn’t direct control, more like if one XBee has a pin go HIGH, the XBee it talks to will also have that pin go HIGH.

    Personally, I found it a lot easier just to use the XBees for communication and an Arduino for the actual sensor data and actuator control.

    Trackmate

    Trackmate is a computer vision based tangible object system. From a user standpoint, it’s pretty easy to control: cut out some inch-square icons, tape them on to objects, and use the interface.

    From a programming standpoint, not so much.

    • I recommend the Minim Processing library for any audio work. Seriously, don’t even bother trying to do this from scratch.
    • The code itself, when I last looked at it, was very hardcoded, so don’t expect to change the behavior of the system unless wanting to write it from scratch.
    • Review Processing. While it is derived from Java, it leaves some more advanced things out.
    • Review matrix algebra and vectors. While you won’t be doing math directly, it will help to make sense of some of the values.
    • I did the initial setup using the PlayStation Eye camera as recommended. While I could use the camera’s drivers and operate it from outside Trackmate, it didn’t work with Trackmate (looked like snow). Don’t know why, but it just wouldn’t work for me.