All posts by James

James is a software developer and self-published author. He received his B.S. in Math and Physics and his M.A. in English from Texas A&M University. After spending almost two decades in academia, he now works in the Washington, DC, start up world.

Rosina's Quick Cobbler

I remember my grandmother baking when I was a kid. She'd make wonderful cinnamon rolls, coffee cakes, and this simple, quick cobbler. I always loved watching the butter melt in the oven. And the quick sizzle when she'd pour the batter into the hot butter afterwards.

Now, this isn't the type of cobbler that uses biscuit dough or looks like a cobbled together pie. It's closer to what some might consider a buckle: a cake-like dessert with fruit that buckles on top. It also appears as a southern variation on cobbler, which is appropriate given that my grandmother lived in Texas.

Continue Reading Rosina's Quick Cobbler

Linked Open Code: Libraries

A while back, I talked about how linked open code complements linked open data if we consider the web to be a computer system. This time, I explore what a linked open code (LOC) library might look like. That is, how would a collection of functions be published and used?

The emerging standard for sharing linked open data (LOD or LD) is JSON-LD mainly because it's easy to use and plays well with JSON-based REST APIs. That was by design. Consider JSON to be the modern XML, but for data rather than documents, and JSON-LD the modern RDF/XML. Everything I talk about in this post could be done with RDF/XML, but is a lot easier with JSON-LD.

A library is just a collection of functions. A class is a collection of functions operating on a common data structure (or type). We should be able to do both with LOC since LOD has the concept of types.

Continue Reading Linked Open Code: Libraries

Stiff Mojito

I've always enjoyed a mojito. The refreshing combination of rum, mint, and lime juice isn't too sweet or too sour. But I don't look forward to the muddling. I prefer mixing a few things together, perhaps shaking a bit, and then enjoying the results.

One day, I had a handful of fresh mint on hand so I decided to make simple syrup and infuse it with the mint. No muddling would be required. This was simple enough: make the simple syrup and add the mint as the sugar dissolves, let it steep until the syrup has captured much of the mint essence (about 15 minutes), and finally, strain out the mint.

I didn't have any soda, so I combined everything in a mojito and left it out. The result was a nice sipping cocktail.

Continue Reading Stiff Mojito

Whole Wheat Bread

A bread maker is great if you want to explore a lot of different breads without having to invest a lot of time into learning a lot of techniques or following wildly different recipes. But once you've figured out a staple bread that you want to make week after week, a bread maker might not be the best answer. I have one, and I found that I was constantly making bread. I also found myself forgetting to get the paddle out of the bread once it cooled. After slicing into the paddle one time too many, I figured there had to be a better, more fool-proof way to make bread.

This whole wheat bread is simple even though it has three rises. Once you've made it a few times, it'll be second nature. I weigh everything, even the milk, so everything is in grams. I find putting a bowl or pan on a scale and adding everything is a lot easier than getting out an array of measuring cups and spoons. There's a lot less mess to clean up, too.

Continue Reading Whole Wheat Bread

I Believe

I believe that Black lives matter.

I believe that as a White, middle class American, I am tone deaf despite my best intentions.

I believe that it's better to make mistakes and to learn from them than to stand by and not use my privilege to improve the world around me.

Continue Reading I Believe

Returning to Photography

Shoes on Bench

I've always been interested in photography. As a kid, I'd take my dad's film SLR out for a spin every once in a while. I also had a bit of time in the early 1990s with another film SLR and another in the early 2000s. Now, I'm picking up a DSLR and getting back into the hobby.

On its face, photography is no more difficult than writing. If enough monkeys bang on enough typewriters for enough time, something interesting will emerge. The difficulty comes in limiting how much effort goes into producing each interesting thing.

I'm approaching photography based on how I do writing. Practice. Practice. Practice. And a bit of editing and getting feedback from others.
Continue Reading Returning to Photography

Algorithmic Provenance of Data

It doesn't seem like it's been over four years since I joined MITH and started working with Project Bamboo. Just because I've moved on to a startup and the project's been mothballed doesn't mean we can't mine what was done.

The problems with Project Bamboo are numerious and documented in several places. One of the fundamental mistakes made early on was the waterfall approach in designing and developing an enterprise style workspace that would encompass all humanities research activities rather than produce an agile environment that leveraged existing standards and tools. Top down rather than bottom up.

However, the idea that digital humanities projects share some common issues and could take advantage of shared solutions is important. This is part of the reporting aspect of research: when we learn something new, we not only report the new knowledge, but how we got there to help someone else do similar work with different data. If we discover a way to distinguish between two authors in a text, we not only publish what we think each author wrote, but the method by which we made that determination. Someone else can apply that same method to a different text.

Continue Reading Algorithmic Provenance of Data

Linked Open Code

I've been working off and on over the last six months on a programming language that sits on top of linked open data. Think of it as linked open code.

von Neumann Architecture

Before von Neumann made his observations about code and data, computers typically had some memory dedicated to code, and other memory dedicated to data. The processing unit might have a bus for each, so code and data didn't have to compete for processor attention.

This was great if you were able to dedicate your machine to particular types of problems and knew how much data or code you would typically need.

Von Neumann questioned this assumption. Why should memory treat code and data as different things when they're all just sets of bits?

Continue Reading Linked Open Code