I am a graphic designer, web designer, and programmer, with
regard to open source, as well as a User. My homepage
linked to here features all my (mainly graphic design) work
related to AbiWord, a platform on which I am a (Windows,
initiate bludgeoning now) builder and packager, bug
reporter, tester, branding/graphic designer, and go-fer
(and learning to be a bug-fixer). Besides AbiWord, I am
(was?) working with CharlesGoodwin on the Gnome Office web
site, and doing some graphic design/branding with regard to
those projects.

Don't be afraid of the email
address, it actually is a redirector that works just fine.
I put that redirector there simply because this is on a web
site, and I don't want my "people-readable" email address
botted and spammed into eternity.

Recent blog entries by RyanPavlik

Wow, how the summer flies! This upcoming Monday marks the official “Pencils Down” for the 2008 Google Summer of Code!

It’s been a pretty low-screenshot summer, which is interesting since I’m doing interface things. The truth of it is, though, that it’s what’s hooked up to the interface that is taking the real time :) Nevertheless, I have recently made some really nice (and brand new, hence screenshot-worthy) progress.

Style Tool

Here’s what used to be the Stylist, now the Style Tool. It will be the hub of all style interactions. At least, that is, if I can get it to be taller and narrower by default, and stop hiding from me. (It’s almost like an inspector - always on top, possibly not focused. What’s the best combo of settings to get that in GTK?)

You’ll notice that it’s just showing a nice subset of styles (common ones and the ones you are using). If you’re into folding tree-views and seeing all the styles used by, say, the Table of Contents feature, or perhaps are really just looking for a “Heart List”, just check that Show all styles box temporarily.

I might be moving the “Redefine”, “Edit” and “Apply” buttons off of that common row, since they refer to the selected style in the list, while “New” (create a new style based on the formatting at your caret - redefine works the same way) and “Close” don’t. Ideas on how best to do this within the Glade tool are eagerly accepted.

Edit Style

Since we have the ability to grab the formatting at the caret (insertion pointer, erroneously called the “cursor” - the things you learn hanging with word processing hackers ) to create or modify a style, we can specialize the manual edit style dialog to those who are looking for fine tuning of a style. Behold, the new dialog, in a slightly buggy, read-only manner, but lacking only a few little hookups…

Spiffy, huh? Now, how do I get rid of that Help button, visually associate the Add and Remove buttons better with the list of properties (perhaps with a label “Properties”), and sort a GtkListStore? We’ll see if this lazyweb thing works for me as well as for others

Inbox Zero

In the never-ending pursuit of less clutter and more productivity, I recently did the inbox zero thing, which is less complicated than it would seem. I think I’ve gotten everything handled, but if your email to me has gone without reply and it deserves one, send again please! Thanks! (Furthermore, if anyone knows how to hide folders in Thunderbird, please send that too :D My archived emails are stuck down in Local Folders scrolled off by subfolders I never use… )

Yes, that is a line I recently patched out of my own code. I was wondering why my simplifyProperties wasn’t working right, so I tried it then saved it to disk - and lo and behold, all the style properties had become XML attributes. In learning the AbiWord piecetable, I’ve had to struggle a bit with the concept of attrprops - attributes and properties. Specifically, I tend to mix them up - attributes are things like “name”, “label,” and “props”, while properties are things like “font-size: 12″ which can also be stored as the value of the aforementioned attribute. So now that you know that attributes and properties are different, I’m sure you can spot the bug in my post title

My GSoC project is moving along now! Just have to remember the difference between attributes and properties…

Just a quick update on my progress in the Summer of Code. One general observation: the piecetable is a highly-engineered, fairly complex chunk of code! I need a bit more “mentoring” than I anticipated when working with the piecetable, so I’ve decided to work on a few fronts: when I get stuck on one, I switch to another until someone shows up in IRC and can help (or, alternatively, until time helps me figure it out on my own).

First of all, I have the Stylist enhancements. I’ve added the “Add” button, which is succeeding in adding a hard-coded style. Right now, I’m working to make it add from the current selection. It looks like right now we can’t “rename” a style, which means I either prompt the user for a name (not what I’d prefer), generate a useful one automatically (possibly tough and/or insufficient) or implement some sort of rename, possibly just with the style label. (See next ) I will also revamp the display here, borrowing liberally from the GTK toolbar style list which shows only a nice subset of styles.

The addition of Labels to styles (splitting internal identifier from user-visible identifier) was the first task I tackled, and in retrospect, possibly a bad idea since it required direct PT work. I have all built-in styles adding a label by default, and I’ve gotten it to save. I still have to add some helper functions to pd_Style to handle labels, localize them, etc, as well as figure out how to change the UI’s. (It looks like I’ll probably need to have a map of Labels to Names added to some document-wide structure, presumably right next to the map of Names to pd_Style objects.)

Finally, we have the handling of the manual style editing system. I’ve started work on this by implementing “simplifyProperties,” which removes properties from a style if they are identical in the based-on style (that is, if they can be inherited). This will allow my edit dialog to show a useful list of applied properties, rather than a CSS-like string of every possible property. This is what I’m working on at this precise moment - trying to figure out how I somehow end up with “this” being 0×0 when I have a function member call another function member.

As a part of my Summer of Code project, I’m working on doing a user interface redesign! To confirm the concepts I developed in my proposal, I’m conducting interviews, and decided to use the Internet as a tool to help me here! Though I will be also doing in-person interviews, you’re welcome to download and complete the interview and email it in to me! All word-processing and text-processing (so as to not exclude more layout-oriented apps like Pages and perhaps KWord) users are welcome to participate: the interview questions are in rtf format.

Please download the form here: General Interview Questions - instructions are included. Just type your answers right into the document! I’d like your answers by June 6 (Friday) so that I can keep moving on the project. If you have a blog that’s more syndicated than mine, please feel free to pass on the invitation - the more data I have, the better I’ll be able to create an interface that’s efficient for a variety of users.

Google Summer of Code 2008 officially starts this week in the “main section” - coding! In my case, I’ll be working on revamping the Styles support and interface, and to avoid having to code it three times, I’m starting first with a design phase. As such, I’ve been working on an interview script, which should be ready to use now. The purpose of the interviews will be to confirm or fail to confirm the characterization of use cases I made in my proposal. I will also do bug triage here tomorrow, looking through the open Styles bugs and seeing if I can also filter out the Styles bugs in the Front End components in Bugzilla - see what actual software flaws there are to resolve, what insight/ideas I can glean from enhancement requests, etc. With this I’ll be able to create a more comprehensive plan and schedule, as well as give me something to chew on when I don’t have test subjects available to provide interview results or prototyping feedback.

Though I’ve done the Summer of Code once before, this will be a totally different experience - new mentor, different codebase region (by a lot!), and entirely different focus - I’ll be replacing working but not human-friendly with friendly, efficient, and hopefully still working!

Oh, and how did I prepare for the summer of code? Well… I built a new desk! (I already took care of community bonding a couple of years ago.) An ergonomic, efficient desk area will inspire an efficient, ergonomic design - at least that’s the idea!

PS. The hackergotchi on Planet AbiSource right now is not very flattering, not to mention fairly old - if one of the cool AbiFolk could change it to my new one, that would rock. Bonus points if you put in a good word with the p.g.ofolks too - get some AbiWord representation on the planet! (It seems the “put your stuff in this table on the wiki” page disappeared from l.g.o without my request being fulfilled…)