18 Temmuz 2016 Pazartesi

Daily Update 17

Today I went through some JavaFX resources to refamiliarize myself with it. I'll be working on creating the interface for easing the scripting process this week, so I also did some planning on which features to implement. I didn't code any GUI today, I have things to complete left from last week. I worked on the GIF "streaming" feature I mentioned last time. I also made some small changes to the command line tool to make its usage more standard.

13 Temmuz 2016 Çarşamba

Daily Update 16

Lately, I've been compiling a few modules of my own for producing more complex GIFs. I have my modules for animating 2D plane geometry and chess moves more or less complete. I'm also working on a way to preview animations without spending time on encoding.

Next week, I'll be working on a basic IDE-style GUI for GIFScript, with editing and preview support. In preparation for that, I'm working on a detail I couldn't anticipate while I was writing my proposal. The problem is that it still takes time to fully encode a GIF, long enough to make it cumbersome to "re-run" a script each time the user wants to test a small visual change. To solve this issue, I've decided to implement a preview mode in the core tool, which only produces frames in sequence without encoding them into compressed GIFs, which would allow fast previewing from the GUI.

8 Temmuz 2016 Cuma

Daily Update 15

The last few days being "bayram" in my country, I missed blogging.

I worked on minor improvements and bug fixes this week. Implemented a lot of small details which should make GIFScript more self-consistent and easier to learn. Lately I've discovered that continuously transforming a subtracted area resulted in ugly looking glitches, possibly due to floating point errors combined with low resolution rasterization. I haven't come up with a perfect solution yet, but some small changes improved the glitchy behaviour.

Since I don't have much programming load this week, I'm also spending time on the to-be-published documentation. The guide isn't ready as many things can change, but just trying to write down the details inspired a lot of improvements in GIFScript to smoothen its usage.

4 Temmuz 2016 Pazartesi

Daily Update 14

This week is allocated for refactoring and bug fixes, so I won't be working on any new features in particular. Today I spent time on some parts of the code which seemed unnecessarily complicated and did some refactoring. I decided to divide some of my larger classes into more meaningful subunits. As always, I also did some testing. In particular, I attempted to make a module out of a opensource DSP library I found online, which could produce nice animations in the context of DSP.

1 Temmuz 2016 Cuma

Daily Update 13

Since the functionality scheduled for this week is already complete, I took the time today to test my progress and make a few additions to the interpreter. I added some convenience methods to the GIFScript library, like more concise ways to initialize and apply simple point-to-point tweens.

Finally, worked on a sketch for the documentation/guide for GIFScript, decided how it could look like. If I can, I'd like to publish at least some kind of tutorial earlier than I planned, giving me more time before the program ends to alter things depending on the feedback I  receive.

30 Haziran 2016 Perşembe

Daily Update 12

Today I completed the module functionality, both for loading libraries into the environment and exporting existing code as a GIFScript module. I tested my code for a few examples, which went well on both sides. As I mentioned earlier, modules are implemented as ZIP archives containing code and resources. The code contents get interpreted by Nashorn in order specified by a initialisation file when a module is loaded.

Tomorrow I plan to start working on more complex modules to further test the implementation.

28 Haziran 2016 Salı

Daily Update 11

Today, I started working on modules. I decided to implement modules simply as ZIP archives containing both code and resource files along with a descriptor file showing how GIFScript should handle each. Once a module is created, users will be able to dynamically load these packages in their animation scripts, enabling their functions. A packager tool available through the command line will be used to bundle JavaScript code and possibly images into module files for reuse.

I implemented the basics of the "packager", reading through the documentation for Java's ZIP utilities. Java's interface for compressing and decompressing ZIPs is pretty straightforward, but the code for loading these to the environment is not done yet, so I couldn't actually test the concept yet.