I think it’s been long enough that naming posts by day isn’t important anymore. This post is for the first half of week 4. Our extra scheduled events are on the decline, as planned:
This shift in scheduling means that there’s a lot less to talk about besides our actual (currently unpublished) work, and our “deeper dives”: small-group trainings on more specific topics. This year, the topics are 3D Printing, Unity Immersive, and Unity Shaders/C6. We’ll learn more about these and rank our top choices later.
On Monday, June 18 we had our first day of Unity courses. I’ve tried to teach Unity before, so I understand how difficult it is. I was impressed by the curriculum and I would’ve loved to have that when I was bumbling through the platform years ago. On the other hand, the “mess around until it makes sense” method that I used has provided me with a very in-depth understanding of how the pieces all fit together, so maybe it’s a draw.
Anyway, my experience in 24-hour coding competitions set me up to make a quick game during the instructional time. It’s a simple flight simulator where you get points for flying through randomly-placed rings and lose points for touching the ground.
Tuesday, June 19
I got invited to another wedding. It’ll be a stretch, but I might be able to attend both. One is for a childhood friend and the other is a family friend. One in Oregon and the other in Indiana. They’re also a week apart.
In the evening, my room put on some swing music and we danced a bit in the living room. Aidan can be a lead or a follow, so that worked out nicely. We’ll put on a lesson for the whole group at some point, so I guess this was just practice.
Wednesday, June 20
Not the best start to the day. It finally came off.
Neither the bike nor I were damaged (it didn’t break; it just wiggled off), but it did make me a few minutes late to work since I had to walk it home and grab Stephan’s bike (he usually takes the bus).
Today we did some more Unity training. I finished up my plane game and walked around helping others.
We heard some more in-depth descriptions of each of the Deeper Dive topics. Unity Immersive focuses on creating a virtual reality experience for Vive, Oculus, or mobile VR with a focus on interaction paradigms. 3D Printing involves learning how printers work and making some common things like math models or small replacement parts. Unity Shaders/C6 is about programming GPUs (graphical processing units) and a $6 million virtual reality room.
I’m in the last one, since I have some experience in the other topics. I’m happy to have the opportunity to learn GPU programming, since it’s something that I’ve been meaning to teach myself for quite a while now. I’m very comfortable with the low-level design and operation of CPUs, but I only know the high-level operation of a GPU. Hopefully it’ll be the right environment to get some of my long-standing questions answered!
Saturday, June 18
I returned to the bike co-op to try to fix the bike issues that have been creeping up. The biggest issue is that the left crank squeaks with every revolution and even wobbles a little. I ended up taking the whole bottom bracket apart and cleaning it out, replacing a shot bearing, and lubricating everything.
It worked for a bit, but the squeak slowly returned and then the wobble with it. I just hope the crank doesn’t fall off at a bad time. (Is there a good time?)
Sunday was pretty normal. My roommates didn’t leave their rooms until at least noon, so I had a nice morning without them.
Thursday, June 14
Rain again! It was quite the thunderstorm. Woke me up several times, hours before my alarm. It was also alarmingly dark. I checked the time on two devices just to make sure. I learned my lesson last time it rained, so I preemptively wore flip-flops and took the bus.
At VRAC we attended a very interesting lecture on decision trees, Bayesian Networks, and AI explainability.
Friday, June 15
Today was mostly Maya. I learned how to do some basic manipulations and how to import standard assets. I made this beautiful scene to demonstrate some of those things that I learned:
Overall, I still prefer Blender to Maya.
Monday, June 11 through Wednesday, June 13
Alright, I’m combining a few days since I’m behind and the number of scheduled events is decreasing (and therefore the number of things to write about, also).
On Monday, I had a good time going for a bike ride by myself. I asked a few other people, but nobody else had time or wanted to. It turned into an opportunity to explore and think, but also to notice that my bike still has some issues to work out on Saturday when a small group will return to the bike co-op. Specifically, the left crank arm doesn’t sit right in the bottom bracket and causes some squeaking and wiggling.
On Tuesday, I (and the rest of the DataViz team) doubled down on finding papers for the literature review. It’s a very slow process and very much a crap shoot. We had a brief meeting with our grad student toward the end of the day in which we learned that our ill-defined project may get a goal soon! We were also reminded that our professor will be leaving for a few weeks to take a train across Siberia to see the World Cup (but another professor will stand in during that time to provide guidance). After the work day was over, I rock climbed for a bit. Biking sounded fun, but I might have overdone it yesterday. Also if the crank falls off, I would want to be on or near campus.
We had another small group meeting on Wednesday. Next up: finish up the lit review with an exhaustive search to see if anyone else is doing research into the impact of data visualizations on marginalized individuals’ decision making (and no, we’re alone). We were also assigned the next set of tasks: write a few paragraphs about the problem area and literature review. We still don’t know exactly what our project is (or its use-case), but that’s coming by Friday.
Days 12 and 13
Saturday, June 9
Ropes course. It was several hours of physical activity and group dynamics. I don’t think we’d had any opportunities for full-group teamwork, since we mostly work in our groups of 3. Finally having all 12 working on the same thing was exciting. Lots of fun, but I was also happy when I could be alone again.
Sunday, June 10
We left for the bike co-op in the afternoon and built ourselves some bikes. Mine didn’t take too much work: the brakes weren’t tensioned properly, the kickstand needed to be replaced, and the chain was rusty. I discovered later that the crank is a bit loose, but I don’t think it’ll be an issue. I’ll take it back to the co-op next weekend anyway, though.
Friday, June 8
Next up: visualize more than one question. A “select all that apply” question is basically just a set of yes/no questions. I have a way to visualize that now, but what about a set of multiple choice questions? After some brainstorming, this ended up as the rough goal:
I spent the next few hours working on this new challenge. It requires a new Shadron program for graphics and a new C++ program for reading and counting data. It turns out that counting second degree relationships is kind of a pain! I ended up needing 5 nested for-loops to count through each pair of nodes: question A, option A, question B, option B, and survey responder. “Options” are the choices that the participant has (T/F, abc, abcdef, etc.) for each question. In that picture above, options are grouped into questions by each straight line. At this point I hadn’t settled on how to show the counts of how many people chose each single option, but you can see how many people chose each pair of options by the thickness of the line connecting them.
I ended up working way past 5:00 and nearly to midnight since I was having so much fun putting this together. Here’s the final product comparing 2 questions, then another comparing 3 and then 4 questions:
As I was writing this program, it felt natural to represent each individual option as a circle of varying diameter like in the last visualization. As always, everything is adjustable. I didn’t go through the trouble to label everything (since this is just another proof-of-concept), but it still came from real survey data. Just like the last one, this is designed for data scientists and not the public.
Thursday, June 7
Quite a work day! I already had the visualization code done for the first project, but all that it does is render shapes of variable size at variable locations (actually pretty much everything is variable). It still has to get those numbers from somewhere. I wrote a companion program in C++ to sift through the data and count the primary and secondary data relationships to plug into the visualizer. Even after that, though, it’s just an image. To turn it into a useful tool for a data scientist, it needs labeling. I added text by hand to say what each node represents and to label each node and edge with how many responses it represents. Here’s the result:
It’s important to note that this isn’t designed for public consumption. The use-case here is for researchers to explore a set of data to look for trends or surprising relationships. (For example, everyone who uses a space heater also wears extra clothing in the winter.) As such, this visualization needs to be easy to use, and not necessarily easy to learn.
I worked with Ilan a bit while evaluating different options for presentation methods and behind-the-scenes organization, so thank you for that!
Also someone pulled the fire alarm a few hours after we learned where to evacuate to. Suspicious…
We have an assignment to find 3 things with bad interfaces or interactions. Here is what I found:
iPad and Apple Pencil
To start, $100 is too much for a stylus. After you pay that much, you expect some fabulous integration and quality. I can’t speak to the quality, but the integration is lacking. To charge the Pencil, you remove the cap and plug it in. This leaves the cap loose and easy to lose and provides the perfect lever arm to torque the plug off the end of the Pencil. If you want to use the iPad while the pencil is charging, you’re forced to hold it awkwardly so you don’t damage its port or the attached Pencil, and you must stay cognizant of the expensive rod sticking out of the bottom whenever you pick it up or put it down. Also, since the iPad only has one port, you can’t charge the iPad while charging the Pencil. To sum it up, Apple forces their users to change how they use their devices (in a negative way) to accommodate an add-on that’s supposed to improve the experience.
It was funny to see how many people walked up to this door, stood for a moment, only then read the sign, and then flailed a bit until it opened. I also saw people who watched the door, saw that it didn’t open, then walked to the front of the bus instead. In general, the second door on a bus opens when the driver wants it to, but here the driver had to give instructions to people to supplement the sub-par labeling. You shouldn’t need a sign on a door, and if you do, it should at least be larger! The warning signs covering public spaces probably exacerbate the issue, since we’re used to seeing “CAUTION” and skipping the details (including how to open the door, in this case).
Bob Pelletier’s Website
Setting aside the visuals, this website seems to just be a list of links to websites of interest. With that in mind, I would expect the links to be easy to look through so you can find the website you’re looking for. Sadly, this is not the case. They aren’t even alphabetized. I do appreciate the difference in color between the link and the description, and I like that the text is all legible (many websites from this time had tiled or animated backgrounds that made the text hard to read). A visitor could use the browser’s “find” feature to search through the document for the topics they’re looking for, but I think that represents a failure in web design; many users don’t know that browsers can search pages, and would be stuck scrolling through the long list.
I’m lumping these together since my Tuesday post ended up pretty short.
Tuesday, June 5
We started with the “Craft of Research” class, where we addressed the reasons behind literature reviews and the questions behind our research. We talked about the ISU Institutional Review Board (and IRBs in general).
We attended a lunch lecture about biofuels and globalization by Mark Wright. He discussed the history of biofuels, world-wide energy sources, and predictions for the future. We asked about his work here at ISU and learned about the ongoing energy and biofuel projects and ISU’s leading position in the global biofuel research space.
Next, we (DataViz) had a meeting with our professor (Dr. Dorneich) and graduate student (Jacklin) about our lit review progress and our next mini task: make some visualizations to help researchers understand the results of a survey on household energy use. This will take some careful thinking, since we’re coming up with something new. We spent the rest of the day working on that, getting our pictures taken, blogging, eating, and sleeping.
Wednesday, June 6
Another C++ class in the morning. It gave me an opportunity to help people and some extra time to wake up.
We (DataViz) had a short meeting with Jacklin where we clarified some objectives and got feedback on a visualization we’ve been brainstorming on the whiteboard. After that, I started programming a way to create that visualization.
We (REU) left for lunch and made a stop at the administrative building to pick up our first paychecks. After making it back to the lab, I blogged and worked some more on the DataViz code.
To briefly summarize what we’ve been doing, I’ll give an example. Let’s say you give out a survey asking people to “select all that apply” from a short list. How do you visualize the results? If you make a simple bar chart showing the frequency of each option, you lose all of the relational data; you can no longer tell if , for example, most people who chose option 1 also chose option 3, but people who chose option 2 tend to only select that one. We set out to (partially) solve that problem with a graph (in the mathematical sense, as in “graph theory”). Nodes on the graph represent options and have an associated weight that corresponds to how many chose that option. Edges have a weight that represents the number of responses that chose both of the options it connects. The weight is visualized as a diameter or thickness.
We had part two of the C++ lesson next, which I hurried through so I could keep working on the DataViz code. I finished the part that uses numbers to create a picture, but it doesn’t find those numbers from the data. I need a second program that finds the prevalence of each option and pair so that I can use those numbers to make the final figure. Here’s an example with a 6-part “select all that apply” question using random numbers instead of real data, since I don’t have a way to sift through real data yet:
This lets us quickly see that everyone who selected the one represented in the lower right also selected the one in the upper left (since the widths of the circle and line are equal). We can also see that the one in the lower left was fairly popular, yet uncommon to see at the same time as the one in the upper right. I think my progress on programming this is going quite well and it’s nice to have some tangible progress on the overall mini project this week.
Anyway, it rained really hard when we went home today. Lots of lightning and wind and even some hail. I suspect my shoes will be drying for a few days. Thankfully, nothing got water damage. I heard a few complaints about pain from the hail, though.
Once home, I ate, blogged, and played a game (Jamestown) with all of my roommates.
Monday, June 4
We started the day with a short C++ lesson (all review for me), then 3 hours of unscheduled time. I used that time to catch up on my blog and find papers for the DataViz (my research group focusing on data visualization) literature review. We went out for lunch and found a university food truck standing in for a closed dining center.
When we returned, I went to continue blogging when I saw that all of my posts disappeared! I asked my coworkers if they had seen anything like it, but I seem to be alone. I sent an email to the VRAC IT team and got a prompt and confused reply.
We had a second C++ class (another review session) and then I did some more DataViz lit review. I went to the apartment, called home, and played some games with Ahmed and Stephan before doing a bit of school work and going to bed.