Written words that are often helpful

Research progress, week of 2017-04-19

Posted by chathaway on April 26, 2017, 6 p.m.

This past week:

  • Paperwork
  • Worked on pulling data from Jira APIs; hit issue with rate limits

Next week:

  • Revamp code to be more robust
    • Start manually identifying Maven projects


What does it mean to make something?

Posted by chathaway on April 21, 2017, 6:48 p.m.

At what point can I say "Yeah, I made that thing" and claim ownership over something I did? It seems like a simple problem, but I keep getting caught in a (metaphorical) recursion loop whenever I try to answer it; if I take a video from youtube and play it fast, did I make it? What if I take a hundred videos, and play them faster then stickem together? What if I take the source material (3d models, Flash files, etc), and re-render them? What if I modify the source files by changing a color?

And so on and so ...


Research progress, week of 2017-04-12

Posted by chathaway on April 19, 2017, 5:57 p.m.

This past week:

  • Looked at Maven repos to find a way of extracting bug tracking information; no luck
  • Continued work on scripts to pull in and analyze Maven repositories for interactive complexity; progress, but work is unfinished due to grading

Next week:

  • Finish scripts to analyze Maven repos
  • Test scripts
  • Last attempt at finding pattern to Maven repos; if that fails, search by hand


  • Conversation with James and Ryan about making the CSDT development community more friendly
  • Work with Bill on getting static pages
  • Grading. All the grading.


Circling an Object in Blender

Posted by chathaway on April 10, 2017, 6:46 p.m.

  1. Create a curve with your object at the center; scale it to size
  2. Create an empty at the center of the curve
  3. (in object mode) select camera, shift-select curve, ctrl+p, and "Follow curve"

Of course, the camera will just kinda stare in some direction. You need to add a "Track-to" modifier, which behaves weirdly.

  1. Select the camera
  2. Constraints -> Add Object Constraint -> Track To
  3. Select the target
  4. Adjust "To" to be -Y, and Up to by Y


Blender file:

Cube being circled by camera


The Secret Santa App

Posted by chathaway on Nov. 25, 2016, 3:39 p.m.

This is a fun one; my stepmother walks in and says "I have a great idea! Why don't you make a little app that randomly assigns people for secret santa!"

I think she was just trying to be nice; include my hobby in the a family tradition. She thought it sounded easy enough, and it shouldn't take me more than 5 minutes. But let's take a minute, and explore another case of "That should be easy, right?"

The Problem

For this who don't know, Secret Santa is basically a game in which each person is assigned ...


The RTS Struggle

Posted by chathaway on Nov. 1, 2016, 1:20 a.m.

During all my free time, which as a graduate student, which I totally have a ton of (no, sarcasm, of course), I've been searching for a good RTS game to play. If you know if one, please leave it in the comments! This blog post documents my attempts at playing various games; I will record what impressions of the game were, how it compared to the "gold standard", and whether or not I returned the game before Steam's grace period was up.

Note that I try these games for a maximum of 2 hours, then make a snap ...


Anonymous Fibonacci in Haskell

Posted by chathaway on Sept. 14, 2016, 3:55 p.m.

We all know how to write the Fibonacci function; but can we do it using only anonymous functions? It's easy enough in something like Javascript; we make the Fibonacci function take in the function as an argument, then our normal variables. i.e.

(function (x, n) { return x(x, 1, 0, n) }) (function(m, a, b, n) {if (n == 0) { return a } else { return m(m, a+b, a, n-1) }}, 5)

Or, if you want to use ES6:

((x, n) => { return x(x, 1, 0, n) }) ((m, a, b, n) => {return n == 0 ? a : m(m, a ...


Some Unwritten Django Rules

Posted by chathaway on Sept. 7, 2016, 8:27 p.m.

These are just patterns which I've observed while working on various Django projects; they are not all-inclusive, and not actually rules, but all the same.

Regarding Templates

Your base template should define a 'content' block; this is where most of the page content goes. It should also have 'breadcrumbs', 'title', 'extrajs', and 'extrastyle' blocks. The last of those goes in the section of the page, and is where apps can put references to stylesheets.

When working on an app, make sure templates and static files are placed in directories named after the app. For example, django_teams would store it ...


Good Games need LAN

Posted by chathaway on Aug. 22, 2016, 1:39 p.m.

I've been known to dabble in video games every now and then; I play all types of games, from turn-based strategy games (like Chess) to first-person shooters (like Paintball), role-playing games and turret defense games. One of the most important part of gaming, to me, is the social element. Playing these games with my friends, have a good game that makes everyone shout in rage when someone wins by hitting an air transport with a tactical missile (for those of you who play Forged Alliance, you know that that is nigh impossible).

But alas, games in recent years have ...


A Brief Discourse on Software Complexity Metrics

Posted by chathaway on Aug. 16, 2016, 2:06 p.m.

Software Complexity is the measure of how difficult software is to conceptualize, comprehend, and through extension, create and maintain. Despite having the word "complexity" in the title, this domain of computer science has nothing to do with time or space complexity that people often think of (Big-O notation, omega time, etc.). More interestingly, there doesn't seem to be any connection between high time complexity and higher software complexity.

From the time of the first computer programs, written in assembly language or hard-coded into the machine, measuring the size of these programs has been a subject of debate. The first ...


previous Page 2 of 3. next
Banner Image © 2017 Ranjani Hathaway | Content © 2017 Charles Hathaway PDF