My personal webspace

A webspace for innovation, free thinking, and procrastination

Compiler Development 101

Posted by chathaway on Sept. 2, 2017, 9:33 p.m.

Many sites offer tutorials on how to use things like flex, bison, and LLVM. However, these sites give code examples, with no links to the source documentation. Below I explain what each of these tools does, and explain how to access the documentation (which, with the exception of LLVM, is fairly well written).

flex

Documentation can be accessed via "info flex" on a system with the flex-doc package installed. On ubuntu, run:

sudo apt install flex-doc
info flex

To get this documentation

A fast lexer, flex (https://github.com/westes/flex) reads an input stream and breaks into tokens. Tokens ...

Read more...


Using Git to files outside the repo

Posted by chathaway on Sept. 1, 2017, 1:29 a.m.

I decided that I wanted to keep a few files in my home directory in version control (.vimrc, .bashrc, .config/awesome), but don't like making that directory a git repo because then the shell prompts always say I'm in a branch. To fix this, I init'd a repo in my normal place then ran:

git config --local --add core.worktree $HOME

And now I can add things like "git add ~/.bashrc" without having to keep that repo in my home directory.

Huzzah!

Read more...


Forcing Diablo II to be "big" when running in window mode on KDE

Posted by chathaway on Aug. 19, 2017, 11:58 p.m.

As we all know, you can get Diablo II to run in Windows mode by passing it the "-w" option, for example:

charles@Bender:~/Games/Diablo II$ wine Diablo\ II.exe -w

On windows, you can then get it to go "big" by maximizing you. It's not possible to do this in Linux, since it's told that it doesn't support this feature. You can override this in KDE by:

  1. Right clicking on the window bar, More Options > Special Window Settings
  2. Checkmark "Size", Force, and enter a resolution that's an aspect ratio on 4:3
  3. Obey ...

Read more...


A quick note about Phoenix Framework Channels

Posted by chathaway on Aug. 19, 2017, 11:54 p.m.

Just a quick note which frustrated me quite a bit on Thursday; intercepting messages (which should call handle_out) in Phoenix Framework's channels does not cause the handler to get called if you are using "send" instead of broadcast.

I suppose this actually makes sense, since you wouldn't want to stuck in an infinite loop (filtering a send, which sends something), but it wasn't obvious why Phoenix was ignoring my handle_out function. Almost like it wasn't detecting the itnercept() parameters.

A solution may be to add documentation about handle_out to the callbacks section of the Channels module ...

Read more...


Research progress, week of 2017-05-03

Posted by chathaway on May 10, 2017, 6:23 p.m.

This past week:

  • Grading. Final exam grading Monday-Wednesday morning
  • Setup server to store list of projects to be indexed
  • Continued work on code; considering investigating Luigi

Next week:

  • If internet is setup, provide link to list of projects
  • Continue working on fetching data (long overdue)

Other:

  • Last Friday was "first" day at FIS; starting this Friday, my schedule is: M, W, F = FIS, T, Th = RPI
  • Internet troubles; I can't host things until they get resolved
  • Working on migrating from RPI email to personal email (not sure how long I will continue to have RPI email)

Read more...


Research progress, week of 2017-04-26

Posted by chathaway on May 3, 2017, 5:46 p.m.

This past week:

  • Continued working on code; encountered issues getting project versions (API didn't respond how I expected, internet suggests pulling all issues (which we need anyway) and scanning them for unique tags)
  • Worked on making the list of projects easy to access
    • Still need to put it somewhere public with all current projects
  • Tried to talk with Barb on Slack; some response, then nothing

Next week:

  • Work on code
  • Put project list in public place

Other:

  • Next week I will be grading finals Monday-Wednesday
  • This past week moved some stuff down to PA; arranged for "office space" to ...

Read more...


Docker Compose Hint

Posted by chathaway on May 2, 2017, 2:04 p.m.

If you are having trouble installing the correct version of docker-compose on Ubuntu, here's my hint: do not run "apt install docker-compose". Instead, follow the directions on their site (https://docs.docker.com/compose/install/).

Yes, I know it's super lame and stops you from getting automatic updates. But I mean, at least it works.

Read more...


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

Read more...


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 ...

Read more...


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

Other:

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

Read more...



Banner Image © 2017 Ranjani Hathaway | Content © 2017 Charles Hathaway