junho 11, 2011 § 4 Comentários
In the first days of my internship, I dedicated time for writing a demo that explored accessibility issues. You can read more about it here.
After some time, I realized that the demo would be almost 100% accessible – or 100% accessible – since I was only using default GTK+ methods. Basically, I discovered that a lib called GAIL would take care of most of my accessibility issues, turning my demo into something really boring – i.e., I almost wouldn’t use ATK. I even used it once to fix an accessibility error found via Accerciser, but it was something really simple involving comboboxes. There’s even a GTK+ patch for solving it without the need of using ATK.
To do something interesting that massively depends on ATK, the best way is to write a custom widget. Basically, you have to extend a GTK+ widget in a way that GAIL won’t find it by default – and that’s where you’ll find space to write tons of ATK code.
Since I didn’t find an interesting way of extending GtkEntry (or any other default widget) yet, and given that maybe I can do another more useful programming tasks, I skipped to my second scheduled task: documenting Accerciser in a topic-based, Mallard way. If you want to learn how something works, try writing a documentation for it. 😉 Today, I finished a beta version for preliminary reviews and what I have to say is that I read a lot about AT-SPI, pyatspi, libatspi, and accessibility. Also, I read most of Accerciser’s code and even wrote a simple patch for it. Now, I also have a good notion about how to write plugins for Accerciser. Besides learning a lot about this tool – what’s going to be useful if my programming tasks become related to it – I feel I’m doing something useful for the GNOME community.
I’ll keep on writing that little demo in my free time – just for the pleasure of it. Besides, I may use more GTK+ in the future (including this internship), so it’ll be good for exercising. After finishing the Accerciser docs, I’m thinking of helping the tool with new plugins, bug fixes and migration to GNOME 3.
If you read the docs and have any critics/tips/notes about it, please let me know.
maio 27, 2011 § 6 Comentários
After some struggling with installing GNOME 3 and GTK+ 3, I finally started working!
I’m in the very beginning of a formulae/equations editor/visualizer. When someone is using a tool as OpenOffice, it’s possible to build complex formulae/equations to put on the text. Unfortunately, it isn’t very simple to render the equation beautifully to a SVG, for instance. More than that, I didn’t find anything that covers these purposes (visualizing/rendering formulae) in accessible GTK+/Cairo.
For building equations (in my opinion), it’s always better to use LaTeX, though many people find it a bit hard. My project consists, then, in implementing a simple formulae builder that can take a GtkEntry input and transform it either in MathML (that can be properly rendered to SVG via Lasem, for example) or – who knows? – LaTeX. Maybe converting one notation to another would be interesting, too.
The most important point, of course, isn’t about making something complicated : it’s about making sure that this simple application is accessible. People with visual impairments (or other kinds of disabilities) should find easy to build an equation with the tool, besides importing it to other formats. More than being enormously useful, the idea here is to write something from scratch, paying attention to every single implementation detail (specially those related to accessibility).
Right now, I have a little code that allows users to type the equation within the GtkEntry, besides selecting some operators from comboboxes (like square roots, integral symbols etc). Nevermind about the dummy data in Fig. 1 (music, food, movies): they’ll be switched to three different classes of mathematical symbols or something like this.
Fig. 1 First lines of useful code
The interface may grow up a little to allow users to navigate in a MathML tree related to the current equation shown in the GtkEntry. I’m thinking of adding a menu, too, with different rendering options etc.
It was very interesting to notice, while talking with Joanmarie Diggs, David bolter and Alejandro Piñeiro, that making an app/demo/widget accessible doesn’t necessarily imply in adding extra information. This is my current mantra, since I spent some time figuring out about how to add extra info to an interface! 😀
Another interesting thing that happened this week involves the way my mentors and I decided to work: first, I’ll build the code per se, without minding much about accessibility. Just write the code and check its quality with regular tools, such as lint, gdb and valgrind. Nevermind about accerciser for the moment: a key tool to guarantee that the code is accessible. After that, I’ll apply accerciser to figure out which are the most common points I forgot while implementing (related to accessibility, of course). This is going to be very useful to the documentation I’ll do next month, since it’s going to be devoted to developers that don’t know much (or don’t know anything) about accessibility. It’s like notes made from an outsider. I do like the idea ;).
And last, but not least, I’d like to thank my friends Caio Tiago and Tomaz Canabrava for all the help and opinions they gave me throughout the week. You rock! Also, I’d like to thank the GTK+ community for releasing such a complete documentation about it. It’s being enormously useful!
maio 25, 2011 § 2 Comentários
Thanks a lot for all the suggestions you gave about what to do to install GNOME 3 and GTK3 properly. Considering that most of the suggestions were about installing Fedora 15 – and since I’ve heard many good things about this distro since always – this was my choice.
After some struggling, I finally got it working with a little help from my friends at my old college! Now, it’s time to start having some fun with GTK3. I intend to make a custom widget that handles mathematical formulae and equations so they can be understood better by people with visual disabilities. At least, that’s the plan for the moment. 😀
Thanks again and stay tuned! 😀
maio 24, 2011 § 12 Comentários
I’m very happy to start working at GNOME! Today, though, I had many problems to install GNOME 3.
GNOME 3 and GTK3 will be important to my internship, but I still didn’t get it working in my computer… I’ll keep trying tomorrow – this time, with Debian. If you have any tips about instaling GTK 3 and/or GNOME 3 at a Debian-like system, that would be very very helpful!
Even with these problems, I had some very useful moments today. Joanmarie Diggs, one of my mentors, and me discussed about my first code contribution. We decided not to do a demo per se, but a custom widget. It’s going to be an extension to math strings, like those we generate when using a calculator, so a person that can’t see much can understand what was written and correct it – and then, get the result.
We’ll use GTK3, ATK and MathML. I’m really anxious to start coding, but I can’t do that until I get GTK3 running well. But I’m hopeful! Hope to get it working tomorrow. 🙂
maio 3, 2011 § 11 Comentários
A week ago, I had the pleasure of being approved to the program and my work with GNOME will be the first main topic of this blog. Once the program is over, I’ll keep on posting here (about GNOME, Machine Learning, Computer Science in general etc etc). I’ll make as much effort as possible to update it twice a week. 🙂
What am I going to do to accomplish my project?
From May 23 to August 22, I’ll be a full-time intern in accessibility/documentation projects. My tasks? To generate demos and docs that will facilitate the generation of software adapted to people with disabilities. Using, of course, GNOME libraries such as GTK + and ATK. 🙂
It’s going to be a very rich experience, since I’ll be programming and documenting. Also, I’ll be working with two GNOME teams: accessibility (a11y) and docs. My mentors throughout the process will be Joanmarie Diggs and David Bolter.
See you later, alligator
And that’s it for now. Congratulations to everybody that was accepted either in the program or in GSoC projects related to GNOME!