Menu Content/Inhalt
Home arrow - Read journals
Monday, June 26, 2006
Journal

Well, I don't yet have the graph up and running on dbix, but it's closer. I had to learn a little black magic with dates, specifically formatting, copying, and adding/subtracting. I followed Nate's example and used Date::EzDate - very handy. I think I have the dates all working in my test area. Tomorrow I'll start putting them into the actual loop structure and see how they do. 

I also posted my solution to the use of DBIx. It should be a helpful reference for me, and hopefully also for some other newcomer out there later.

Someone on a mailing list sent me some good references I should look at to explain, well, Perl references ("perldoc perlreftut" and "perldoc perlref").

For tomorrow:

  • Keep working on getting the graph working. Where to start tomorrow: Put the working dates into the loop structure. (Later, see "jun23 cat dbix debug" for other fixes that need to be made.)
  • Start DMP progress report, and check with Dr. Skubic on that when she's back in town
  • Check out the Perl docs I was referred to
  • See jun19 doc - I've started bookmarking action items, and I'm as far as "6. Debugging."
  • If I finish all that, look at master todo list 
Last Updated ( Monday, 26 June 2006 )
 
Progress report - I'm halfway done!
Journal

Tuesday, June 27, 2006 - In lieu of a journal entry,  here's the progress report I filled out as part of my program's requirements.

Please give a brief description of your project.

ElderCare, also referred to as ElderTech, is a project that uses advanced technology to address the mobility and cognitive impairments of older members of the population. It specifically addresses the risks associated with living independently as these impairments progress to help elders remain independent for as long as possible.

We are developing an integrated monitoring system that captures data about elderresidents and their living environment in a noninvasive manner. It will use this data to extract patterns of activity that might indicate unsafe events. For example, a floor vibration sensor might detect that a resident has fallen, and the nurse on duty could be automatically paged. A temperature sensor might detect that a stove burner is on, while a motion sensor might detect that nobody has been in the kitchen for quite some time, at which point the monitoring system could ask the resident whether they meant to leave their stove on.

My part in this project has been developing the web site that will assist in monitoring. On this site, data will be viewable by nurses, elders' adult children, and the elder residents themselves. The site will allow data to be displayed in an intuitive format, and it will allow rules to be set for interpretation of that data.

How many weeks have you worked so far, and how many weeks do you have left?

Just over 5 weeks done, just under 5 weeks left.

What is the status of your project? (include what you have accomplished so far and what you expect to accomplish in the rest of the summer)

The researcher I am working most closely with has been out sick a lot, so when I wasn't sure what to work on, I researched different technologies that could be useful to our piece of the project, the web application. It is being developed using a web application framework called Catalyst, which is built on the Perl programming language. Since I did not know Perl or Catalyst when I came here, this has been a great learning experience. I've also learned about Subversion (a versioning system), taken a peek at Ajax, tried out action scripting to generate Flash, and expanded my Linux knowledge. I've worked up several proof-of-concept pages to demonstrate ways that we could dynamically visualize our data ([Edit: Links updated and clarified] floorplan mockup, 1D data mockup, bubble chart mockup). My biggest single accomplishment so far has been using Catalyst and Perl to change the way our fledgling web app accesses the database (from using straight SQL code to using DBIx::Class, which allows tables to be represented as classes or objects).

Now that I've made this change to the web app, I have a better understanding of how it works and would like to see how I can improve it. I have a few ideas for enhancements and features I can add. I'd also like to share my ideas for visualizations with someone who will be here long-term. I might try to create a second visualization besides the one we already have running on our web app.

What has been your biggest challenge so far?

The researcher I should be working most closely with has been out sick a lot, so I've tried to be self-directed and find myself productive things to work on. 

What is the most exciting thing that has happened so far?

I'm pretty excited about the big step I just completed today of changing the way our web application accesses the database (see question on project status).

What is your working environment? For example, how frequently do you meet your mentor, the grad students in your group, others in the department, etc? Are you working on your project alone, with another undergrad, or with a graduate student? Have you attended any research talks?

There are 4 undergrads (including myself) and about 9 workstations in this room. Sometimes other researchers will come in to use a computer or hold a meeting, but mostly they work in one of the cubicles in the room adjacent. A couple of people have offices across the hallway. The people I work with the most are my group of 4, since we work in the same room and keep similar hours. The 4 of us are working on 3 different aspects of the project, though, so the person I work with most regarding my piece of the project is one of the other researchers, a grad student. There is a weekly meeting of the project team that incorporates computer science folks, nursing folks, and more.

What is your housing and roommate situation?

I'm staying at home with my family, since I'm from this area.

Is there anything else that you would like us to know about your experience?

[Same answer as next question]

I enjoy the free structured environment - being trusted to complete my work on my own, being given the independence to pursue different pieces of the project, not having to keep a timesheet. It's different from a lot of other places I've worked at, but I think it's a good setup for my working style.

Is there anything you would like to tell your mentor (these comments, if any, will be forwarded to your mentor)?

I enjoy the free structured environment - being trusted to complete my work on my own, being given the independence to pursue different pieces of the project, not having to keep a timesheet. It's different from a lot of other places I've worked at, but I think it's a good setup for my working style.

Last Updated ( Tuesday, 26 September 2006 )
 
Wednesday, June 28, 2006
Journal

Today, I ...

  • spent some time getting to know Joomla better for this web site.
  • updated my overall todo list so I don't have to look in 20 different places to see what I can be working on.
  • worked on that one page on our web app, updating the graph title so it tells you how many weeks you are viewing. Previously, it always said the data spanned two weeks.
  • read perldoc perlreftut.
  • looked at making our graph page loop through data so we can automate some things, but had to email the Catalyst list to find out how to pass an array from a Controller module to a View module, specifically a Template Toolkit file. Apparently you have to pass a reference to the array ( \@array ), not the array itself. I went and read perldoc perlref after that, but I still think I would have had to read between the lines a bit to figure it out. Oh well, next time I'll know.

Poor mailing lists, they're probably getting sick of me. I keep asking basic questions. I do try to check list archives and other documentation before I ask for help, but sometimes I can't find the answer because nobody else had to ask these questions. The problem is that I don't always know, when I have a problem, if it's a problem with DBIx, or with Catalyst, or with Perl, or (in today's case) with Template Toolkit. I learned all of these almost at the same time, so I'm not always sure where one stops and the other begins. Catalyst is built on Perl. DBIx is a Perl module that you can use in Catalyst. Template Toolkit is something else that you can use in Catalyst, and it has its own syntax. At least folks are kind enough to point me to documentation, since I don't know where all of that is, either. But I'm learning.

I feel like a bit of a leech sometimes. Most of the questions that go through the lists are way over my head, so I never contribute anything; I ask for help, but I don't give it. I did, though, make my first attempt at offering help on the DBIx list today. Hopefully that will show that I'm not trying to be lazy or make other people do my work for me.

A couple of interesting things I learned today:

  • Well, this one's from yesterday: When you construct a regex (regular expression), [sql|date] searches for those 7 letters (s, q, l, d, a, t, e), while (sql|date) searches for those 2 words (sql, date)!
  • You need to pass a pointer to the array you want; otherwise, when you try to use it, you get the scalar (length) of the array

Tomorrow, I'll continue looking at putting loops into dbixdemo to further automate it, now that I know how to pass arrays.

Last Updated ( Wednesday, 28 June 2006 )
 
Thursday, June 29, 2006
Journal

Good progress today. I'm working on fun stuff now! I learned today that in perl, "shift and unshift do the same thing to the left end of an array that pop and push do to the right end" (source: perldoc). I learned a little more Template Toolkit syntax. Apparently it is case sensitive; at least, it won't know something's a directive if it's not in upper case. I also found, by looking at the annotated version of the online Catalyst tutorial, the meaning of a message I've seen a lot: Where "name" doesn't have a value, this results in a "harmless" warning; Use of uninitialized value in concatenation (.)

I set up the userid pulldown on our page to generate its list from the database, so it's no longer hard coded. Before I went on to do anything much more extensive, I created a new copy. This was also so that I could figure out how to set up our pages to use TTSite, a Template Toolkit module that allows you to modularize your pages. It gives them a common header, footer, and stylesheet, and it uses a lot of variables. All in all, it makes it a lot less likely that you'll mismatch something because you typed it differently in different places. It also means that in my pages, I don't have to set up a doctype and all the other HTML framework - just the content itself. I tweaked the code to make sure that our pages will validate against HTML and CSS standards.

So now that this is all up and running, I would like to look at a better way for the user to enter the date - something that gives them less of a chance to enter bad data, but is intuitive and easy to use. So far, my top few ideas are:

  • A small, scrollable calendar - similar to what you see here
  • List of month, day, and year - not a pulldown, because that requires clicking and scrolling, but the kind where all options are visible, so they can get their date with 3 clicks and a Submit. (For the HTML-savvy, something like <select size="31"> for day, size="12" for month, etc, but with some CSS applied to make it look pretty.)
  • A text box with some smart code behind it, such that they can type in a date in almost any format conceivable and the program can interpret it. As they type, on the screen it will show them - perhaps with a calendar image - what it thinks they mean. It won't let them submit the date if it can't figure it out. (Implementation details: This would require Javascript, which can be turned off, so of course server-side validation would also be used.)

I should try to get subversion running when Nate gets back. It would be a lot safer and easier than creating new copies of the app and changing its name in all the files

 

Last Updated ( Thursday, 29 June 2006 )
 
Friday, June 30, 2006
Journal

I only worked a few hours today, but I'll make it up at the end of my term.

I found out that that "qw" I keep seeing in Catalyst and Perl is a way of specifying that whatever comes next (enclosed by delimiters) is a word list. I started looking for ways to validate input/form posts, but I didn't get too far yet. I finished making a date list (2nd option in yesterday's journal) to let the user select a date. I didn't make it functional, just wanted to see about the look and feel. I don't like it after all. It really messes with the layout, especially that 31-row list of days. Dr. Skubic and I got together to look at my progress, and I think I will try CalendarXP instead (1st option in yesterday's journal - be sure to check out their online demos).

Here's another interesting nugget of knowledge. The principles of Universal Design are:

  1. Equitable use
  2. Flexibility in use
  3. Simple and intuitive
  4. Perceptible information
  5. Tolerance for error
  6. Low physical effort
  7. Size and space for approach and use

(source: wikipedia) Something to keep in mind as I'm trying to design a good interface for this web app.

Also, it turns out that all that searching I did on speaking avatars may be useful. I'm going to get with Chinonye and show her what I've found. 

Last Updated ( Friday, 30 June 2006 )
 
<< Start < Prev 1 2 3 4 5 6 7 8 9 10 Next > End >>

Results 26 - 30 of 57