<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Grotesque]]></title>
  <link href="http://grotesque.sourceforge.net/atom.xml" rel="self"/>
  <link href="http://grotesque.sourceforge.net/"/>
  <updated>2012-11-26T19:24:51+01:00</updated>
  <id>http://grotesque.sourceforge.net/</id>
  <author>
    <name><![CDATA[Brandon Invergo]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[pyifbabel 0.2.3 released]]></title>
    <link href="http://grotesque.sourceforge.net/blog/2012/11/26/pyifbabel-0-dot-2-3-released/"/>
    <updated>2012-11-26T18:18:00+01:00</updated>
    <id>http://grotesque.sourceforge.net/blog/2012/11/26/pyifbabel-0-dot-2-3-released</id>
    <content type="html"><![CDATA[<p>After a long time of much inactivity, I&#8217;m happy to announce the
release of pyifbabel 0.2.3. pyifbabel is a developer library
implementing the Treaty of Babel for extracting metadata from
interactive fiction story files. This release is not an interesting
one, in terms of new features. However, it consists of a lot of bug
fixes that have accumulated since the last release, particularly in
the IFiction file handling code. Therefore, if you use the library it
is highly recommended to update to the latest version.</p>

<p>pyifbabel forms the foundation of the next release of Grotesque (yes,
it&#8217;s still in the works). Already, the development version of
Grotesque which uses pyifbabel is much more successful at extracting
metadata from story files than the previous version of Grotesque does
on its own. That said, don&#8217;t bother trying out the development version
of Grotesque since it&#8217;s highly broken in other ways!</p>

<p>You can download pyifbabel 0.2.3
<a href="http://grotesque.invergo.net/downloads/pyifbabel/pyifbabel-0.2.3.tar.gz">here</a>
or you can install it using pip with <code>pip install pyifbabel</code>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[pyIFBabel 0.2.2 released]]></title>
    <link href="http://grotesque.sourceforge.net/blog/2012/05/23/pyifbabel-0-dot-2-2-released/"/>
    <updated>2012-05-23T21:37:00+02:00</updated>
    <id>http://grotesque.sourceforge.net/blog/2012/05/23/pyifbabel-0-dot-2-2-released</id>
    <content type="html"><![CDATA[<p>Yep, another minor update to pyIFBabel. There&#8217;s not much to say about this one
since the API isn&#8217;t well documented anyway. I added a couple functions for
working with <code>treatyofbabel.ifiction</code> and <code>treatyofbabel.ifstory</code> together,
such as making it easier to merge several story IFiction records into a
single IFiction file. You&#8217;ll be happy to know that this was implemented as a
direct need for Grotesque (read: yes, I&#8217;ve been hard at work on Grotesque
itself lately). Anyway, check the <a href="Download">http://grotesque.invergo.net/download</a>
page to get the latest pyIFBabel.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[pyIFBabel 0.2.1 released]]></title>
    <link href="http://grotesque.sourceforge.net/blog/2012/05/06/pyifbabel-0-dot-2-1-released/"/>
    <updated>2012-05-06T15:19:00+02:00</updated>
    <id>http://grotesque.sourceforge.net/blog/2012/05/06/pyifbabel-0-dot-2-1-released</id>
    <content type="html"><![CDATA[<p>Hot on the heels of pyIFBabel 0.2 is version 0.2.1. This is a minor update
that primarily adds support for <a href="http://www.textadventures.co.uk">Quest</a>
format stories. Quest is not officially covered by the
<a href="http://babel.ifarchive.org">Treaty of Babel</a>, but there&#8217;s nothing stopping me
from implementing a handler for it, so I did. Enjoy!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[pyIFBabel 0.2 released]]></title>
    <link href="http://grotesque.sourceforge.net/blog/2012/05/05/pyifbabel-0-dot-2-released/"/>
    <updated>2012-05-05T13:54:00+02:00</updated>
    <id>http://grotesque.sourceforge.net/blog/2012/05/05/pyifbabel-0-dot-2-released</id>
    <content type="html"><![CDATA[<p>Version 0.2 of <a href="http://grotesque.invergo.net/pyifbabel">pyIFBabel</a>, a Treaty of
Babel library for Python, has just been released. This version fixes some bugs
in IFiction file handling in the previous version. However, the most
significant development has been in the <code>treatyofbabel.ifstory</code> module, which
was altogether non-functional in version 0.1. This module defines the <code>IFStory</code>
class, which makes it simple to work with story files and their metadata
information. With this, I now have what I need to integrate the new pyIFBabel
functionality back into Grotesque (though I will return to pyIFBabel to
implement some further features which will eventually end up in Grotesque as
well).</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[pyIFBabel 0.1 released]]></title>
    <link href="http://grotesque.sourceforge.net/blog/2012/04/05/pyifbabel-0-dot-1-released/"/>
    <updated>2012-04-05T11:24:00+02:00</updated>
    <id>http://grotesque.sourceforge.net/blog/2012/04/05/pyifbabel-0-dot-1-released</id>
    <content type="html"><![CDATA[<p>I&#8217;m happy to announce the first beta release of
<a href="http://grotesque.invergo.net/pyifbabel">pyIFBabel</a>, a pure-Python
implementation of the <a href="http://babel.ifarchive.org">Treaty of Babel</a> for
developers of interactive fiction tools. This module was originally written for
Grotesque. I figured that it might be useful for other developers, so I cleaned
up the code greatly, packaged it up nicely and made it available separately. The
goal is to both provide full compliance with the Treaty as far as correctly
identifying story files of any supported format as well as properly handling and
generating metadata for the story and wrapper formats that support it.</p>

<p>The bulk of the functionality has been implemented. All of the story formats
covered by the Treaty are properly handled (tested on several files of each
format), as well as the extraction of data from blorbed files. Creating IFiction
XML files of metadata is supported, however this is likely to change a bit in
the coming releases, as I have yet to properly implement the XML verification
and lint processes supported by the official Treaty of Babel tool.</p>

<p>If you&#8217;re interested in using the module I invite you to download it from this
page. If you encounter any bugs or a serious lack of functionality, please
contact me and I&#8217;ll work on it. Alternatively, if you would like to fork my git
repository, it&#8217;s available on
<a href="http://gitorious.org/grotesque/pyifbabel">Gitorious</a>. I would gladly welcome
some help on the package!</p>

<p>For those of you who are Grotesque users and aren&#8217;t concerned with development,
I assure you that this is a good thing for Grotesque in the long run. Right now
I am dedicated to making the its foundation as robust as possible, and the
Treaty of Babel functionality is a key portion of Grotesque. It is important
that it works well to provide you with the best organizing capabilities for your
IF library!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Grotesque development has moved to Gitorious]]></title>
    <link href="http://grotesque.sourceforge.net/blog/2012/02/27/grotesque-development-has-moved-to-gitorious/"/>
    <updated>2012-02-27T10:55:00+01:00</updated>
    <id>http://grotesque.sourceforge.net/blog/2012/02/27/grotesque-development-has-moved-to-gitorious</id>
    <content type="html"><![CDATA[<p>At the moment, this doesn&#8217;t affect anyone but me, but I have moved
development hosting of Grotesque from Sourceforge to Gitorious. There isn&#8217;t
much of an effect, since generally speaking I&#8217;m just committing locally and
pushing my changes to the remote Git repository; it doesn&#8217;t make much
difference where that remote is. There were two main reasons for the move,
one personal and one practical. On a personal level, it allows me to have
all my development projects in one place, rather than spread out between
several.</p>

<p>On a practical level, it will make future potential contributions
from other developers much easier. When I started hacking on Grotesque, I
did so unofficially on my own Git repository since the official one was
using SVN. When I was ready to merge my changes, I had to bother the
original author by email, then he had to grant me permissions, etc. With
Gitorious, like Github, anyone can easily fork the repository, work on the
code, and then send me merge requests to get the code included. Unlike
Github, it allows me to organize a project with multiple repositories. So,
both the main Grotesque repository and the external pyIFBabel (Treaty of
Babel) library repository are stored under the same project.</p>

<p>I&#8217;ll still upload new Grotesque versions for download on Sourceforge (in
addition to making them available here), since people might still go there
to look for them. I&#8217;m going to try to close the issue tracker there, since
for most people it&#8217;s a convoluted, overly-complicated mess. Until I find a
better solution, you can just send bug reports directly to me.</p>

<p>As for actual progress, in a massive coding spree this weekend I rewrote
much of the Treaty of Babel code to be more similar to the official C API
and commandline tool. Now I&#8217;m ironing out all the bugs that creep into the
code during such long sprees. This will be good in the long run because, in
greatly expanding this code, I will be able to add a bunch of new features
to Grotesque as a result (such as more extensive metadata handling, top-
notch iFiction support or the capability to create blorbs). As an aside,
somehow I managed to fail to include an AdvSys handler when I was
previously working on the Treaty. That has been rectified, so future
versions of Grotesque will properly handle your old AdvSys games (&#8220;.dat&#8221;
extension)!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Gearing up for 0.9.4]]></title>
    <link href="http://grotesque.sourceforge.net/blog/2012/02/22/gearing-up-for-0-dot-9-4/"/>
    <updated>2012-02-22T19:43:00+01:00</updated>
    <id>http://grotesque.sourceforge.net/blog/2012/02/22/gearing-up-for-0-dot-9-4</id>
    <content type="html"><![CDATA[<p>I apologize for the general silence over the last few months. Unfortunately, life has
been too busy to do much coding for Grotesque. Things have cleared up, so now I&#8217;m
ready to get back to it. I&#8217;ve decided to start blogging the development process so
people can have some sign of life in the project.</p>

<p>With the next beta release, version 0.9.4, in mind, I&#8217;m mainly looking at structural
changes &#8220;under the hood&#8221;, in order to stabilize things a bit and to facilitate the
future addition of new features.</p>

<p>First of all, I had been maintaining two separate branches of the code to support
both GTK 2 and GTK 3. This was insane and unmanageable, plus it had the side effect
of making the user choose which version to download. I&#8217;ve rearranged the code so that
both versions are in the same branch, which allows easier parallel changes, but the
choice of which to use is made by the program itself. It&#8217;s still tough to try to
maintain code for both library versions, and I still intend to stop developing for
GTK 2 once we hit 1.0. It&#8217;s for my own sanity.</p>

<p>What I&#8217;m working on now is a brief aside. Grotesque comes with a pure Python
implementation of the Treaty of Babel. I&#8217;ve decided that this is pretty useful, and
others should have access to the library as well. So, I&#8217;m splitting off development
of that library to a separate project. I&#8217;ll update the code a bit to more closely
resemble the official C API for the Treaty. There&#8217;s also some code that is embedded
in Grotesque which would be more appropriate in the Treaty library, so I&#8217;ll move that
over as well. This will all involve a few changes in the Grotesque code. For Linux
users, this means that the new Python Treaty of Babel module will have to be installed
separately. I&#8217;ll make this as easy as possible by putting it in PyPi and I&#8217;ll at least
add it to the Arch Linux AUR, with the hopes that others will package it for other
distros.</p>

<p>Next will be the big change for 0.9.4, which will be migrating from a basic Python-
pickled flat file for storing user data to storing everything in an SQL database.
The original method made sense at first, when each story was only stored with its
basic Treaty metadata. Now that I&#8217;m adding new things like played state and
contemplating adding things like tags, notes, etc., I&#8217;m finding that it&#8217;s becoming
difficult to manage. An SQL database will help with that, though it does increase
the complexity of the program. Also, for Linux users, it will add more dependencies
(namely SQLAlchemy and Elixir).</p>

<p>Well, that&#8217;s it for now. I&#8217;m looking forward to getting 0.9.4 out there, since it&#8217;s
been a long time since an update!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Grotesque 0.9 released]]></title>
    <link href="http://grotesque.sourceforge.net/blog/2011/08/13/grotesque-0-dot-9-released/"/>
    <updated>2011-08-13T06:27:00+02:00</updated>
    <id>http://grotesque.sourceforge.net/blog/2011/08/13/grotesque-0-dot-9-released</id>
    <content type="html"><![CDATA[<p>I started developing Grotesque this summer, picking up where liedman left off. I&#8217;m happy to release the fruits of my labor to you now. As you can see, the version number jumped from 0.2.1 to 0.9. I did this to reflect the sheer amount of features added to the program and to reflect that I now think it is close to being feature complete. However, it should still be considered beta software and there still might be some bugs to work out.</p>

<p>You will notice that there are two versions, one for GTK2 and one for GTK3. This is because with Python applications, there appears to be no sane way to support both versions of GTK in one app. After Grotesque hits 1.0, I will stop developing the GTK2 version. If you aren&#8217;t sure which one you should download, get the GTK2 version to be safe, since not all Linux distros are shipping with GTK3 yet (Ubuntu won&#8217;t until November 2011, for example).</p>

<p>Some new features in 0.9 include:</p>

<ul>
<li>Full support for all Treaty of Babel bibliographic fields</li>
<li>Fetch and display cover art from IFDB</li>
<li>Fetch and display (average) star ratings from IFDB, which you can override and set yourself if you would like</li>
<li>A new filter list, allowing you to filter your library by author, genre, group, year published, series, forgiveness and minimum rating</li>
<li>A beautified story information area</li>
<li>Mark stories as new/played</li>
<li>Faster loading for large libraries</li>
<li>Recursively import a folder of IF (good for people who have their libraries organized in hierarchical folders)</li>
<li>Edit story entries</li>
</ul>

]]></content>
  </entry>
  
</feed>
