One of ETSU's senior Computer Science majors, Paul Giblock, presented
his project on user interface management to the Tennessee
Legislature on February 1st, as part of "Posters at the Capitol", a
Tennessee Board of Regents (TBR)-sponsored symposium on student
research in Tennessee. ETSU's Honors College sponsored Paul and four
other students' trips to this event, a first for Tennessee.
Giblock is originally from Farragut, TN, which is located about 10
miles WSW of Knoxville. Giblock, who will complete his undergraduate
degree in computer science in Fall 2006, hopes to start graduate
school in Fall 2007. He attended ETSU primarily because of ETSU's
proximity to Knoxville, and the Computer Science Department's
involvement with and concern for its students. Giblock's joint love
of computers and music influenced his decision to start the project
that would ultimately lead to his invitation to "Posters at the
Capitol". In 2001, at the time when the iPod had not yet been
invented, Paul built an MP3 player for his car–and wanted a
computerized interface to go with it. Giblock's LTK (Llama Toolkit)
project started as an attempt to build a simple suite of computer
programs for creating this interface. This project, like other
software projects, continued to grow in scope as Paul thought of
ways to add features to his software and make it more flexible.
Giblock became acquainted with the person who originally recommended
him for the "Posters" event, CSCI Department professor Dr. Phil
Pfeiffer, while taking a UNIX class from Dr. Pfeiffer in Fall 2002.
Dr. Pfeiffer took an interest in Giblock's project because of his
appreciation for the complexity of the project–"GUI (Graphical User
Interface) libraries are difficult and subtle to create"–and
Giblock's sense of design. In Spring 2003, Pfeiffer and Giblock
received a $900 grant from the ETSU Honors College Student-Faculty
Collaborative Grant program to complete LTK.
Most of this money was used to buy a flat screen panel display for
testing LTK's operation. Giblock built a housing for the screen,
equipped the housing with knobs and other physical controls, and
used LTK to implement a software package that uses this box to
select and play MP3's.
Giblock has continued to develop LTK. As a part of this work, he has
made it easier to adapt LTK for use on other systems, including
Linux, UNIX, OS/2, Solaris, Windows, and OpenGL-compliant platforms.
The library now allows developers to support new platforms and new
devices, simply by changing a few lines of codes to suit the
developers' needs. Essentially, LTK replaces the need to write
thousands of lines of code–or to write specialized code for these
platforms–with a series of subroutine calls to routines that display
text and widgets on screens, and that capture a user's interactive
LTK is currently structured as a three-layer application. The
bottom, "Screen Layer" contains logic that interacts directly with a
system's monitors and displays. The middle, "Theme/Style Layer"
determines the overall appearance of a users's display: it contains,
for example, functions that draw borders, render text, and generate
other images that are common to a display's primary images. The top,
"Widget Layer" draws the primary images that populate a user's
screen, like the buttons, scrollbars, and textboxes that are pivotal
to user-friendly displays. Essentially, a developer can work on the
top-most level and implement changes that funnel down through the
other layers, making it easier to implement the code.
Giblock plans to share his code and library through an open source
license to anyone who is interested. The software will be free, so
developers will not have to pay a licensing fee. The library, in its
current state, needs some additional work before it will be ready
for public use. The Computer Science Department, for example, will
not be using it to teach graphical programming. However, Mr. David
Tarnoff, also a Computer Science Department professor, wants to add
embedded computing to the curriculum, and the LTK library may be
useful for that. The software engineering classes may be able to use
LTK's source code as case study; that is, they can use it to
research a relatively large-scale software project. Finally, classes
that study verification and validation may be able to write test
cases for LTK. This allows students to practice writing test cases
and it helps Giblock to catch bugs and design flaws in LTK.
Giblock hopes to release LTK version 1 this year, once it is stable
and adequately documented. Any students interested in experimenting
or contributing to the project, whether it be through ideas, coding,
or documenting may reach him by e-mail, drfaygo AT gmail DOT com.