Author Archives: danieru

libjtapi data can now do a round trip

Today libjtapi reached a major milestone. It can now consume and produce a basic job ticket. This provides a way to inspect what data is in a libjtapi object. Prior to this I had to walk through the debugger for even the most trivial debugging. I am glad I took the assembly course last semester, otherwise progress would have been even slower.

The past week has been a flurry of bug fixes across the entire codebase. Libjtapi is now proper c89 and all buffer overruns have been eliminated.

Programming is a lot more fum now that I can see the results without a debugger. My next task is to eliminate memory leaks and add jtapi’s object destructors. After that comes support for the missing jtapi interfaces and objects

Android is now the default.

Today I ran across a phone announcement in my RSS feed.

After a large paragraph of specifications come one of the smallest sentences possible in Japanese.

「Android は4.0。」, “Android is 4.0”.

Less than four years ago no android phones existed. Now any smartphone is an android unless specified otherwise. For every computer that has Ubuntu installed, 1.4 Android phones are sold every month.

Enforcing better software engineering on myself, an experiment

I like to pretend I am a software engineer despite being enrolled in my university’s computer science program.

One of the many was I need to improve as a software engineering is to keep code with at the same level of abstraction. An example of a failure to maintain coherent abstraction would be to manipulate a linked list in the same function you manipulate a different list using proper accessors methods. Instead you should be using methods for both lists.

In libjtapi I am experimenting with not having header files. This will force me to treat the libjtapi call-stack like a Directed Acyclic Graph. The important part being the acyclic attribute. This means that a low level function cannot call a higher level function, this is enforced by the compiler. I thus have to think hard about which layer of abstraction I am coding in at any point in time.

Or at least that is the hypothesis, I’ll see how the code matures.

libjtapi first code

After struggling with netbeans as a build platform I’ve switched to cmake.

The motivation for netbeans was to reduce the initial barriers to development. I expected that an eventual move to a full-fledged build system would be needed but I wanted to put that off until libjtapi had a substantial codebase. The good news is that cmake was much easier to setup than I expected. Thus I have now started on libjtapi proper.

My next milestone is to get the libjtapi hello world compiling.

Then fill out the dummy functions so that the hello world does what it is supposed to do.

Then refactor and code review.

 

Printed jtapi & headers

Before I write a single line of code I want to build a thorough mental map of the jtapi standard. The first thing I did was print off the headers and study those. That only took me so far and raised some further questions. Now I’m reading the jtapi spec itself.

The jtapi spec is are the top pages and the headers are on the bottom.

It just goes to show how not often I print that I was surprised how many pages 79 pages are once printed.