philkmills: Phil and guitar (Default)
I suppose I could put a link here to my FilKONtario photos for anyone who hasn't -- you know -- encountered it six times already. :-}

http://www.flickr.com/photos/phil_mills/sets/72157629520107142/
philkmills: Phil and guitar (Default)
There are properties associated with messages. Some of them would be nice to keep in the backup and some probably irrelevant. Here I am discovering how they are transmitted.
philkmills: Phil and guitar (Default)
I was in downtown Toronto last night at a Cocoa (etc.) developers' meeting. Since I travel by public transit, this gives me time to pull out my iPad and exercise various application functions. This works nicely for finding UI bugs because most of my development at home concentrates on the smaller iPod/iPhone screen, assuming that if things fit there they can be made to work on the larger device.

This seems to be a viable strategy though it does mean that I sometimes find things that I implemented in an iPhone view and neglected to duplicate for the iPad.

Bug score: Open 11, Fixed 80.

Threads

Mar. 7th, 2012 02:49 pm
philkmills: Phil and guitar (Default)
When I started this, I was handling background database updates by keeping control of which thread was allowed access at any one time. This worked fine for simple cases but was starting to look top-heavy. The recommended method is to have each thread maintain its own "scratchpad" of modified objects and, when there's a commit, merge the changes into any other affected threads.

It took a bit of a rewrite compared to the simple template code for Core Data that Apple provides but it looks as if it will be easy to work with from here on.

Bug score: Open 13, Fixed: 75.
philkmills: Icon for AutoSongbook (iPad)
Attempting to post with a user icon that's selected according to a keyword. Since I now have more than one image associated with this account, there's a better chance of it happening. :-)

Bug score: Open 15, Fixed 73.

New Test

Feb. 27th, 2012 11:00 am
philkmills: Phil and guitar (Playing)
Posting with selected metadata. At this point posting mostly works except for some oddities with pending messages saved from earlier sessions.
philkmills: Phil and guitar (Default)
Reconstructing last week's activity from my local Git repository says that I:
- changed some long-running database activity into threaded operations
- implemented the ability to preview posts, including embedded HTML
- fixed a bunch of internal things, such as how Core Data is accessed and how server error information is handled
- made some improvements to the UI to simplify message creation

I have no idea what happened to the rest of the time. I can't even blame songwriting since I was unproductive there too.

Bug score: Open 19, Fixed 67.
philkmills: Phil and guitar (Default)
Yesterday I had a friend coming over and, while waiting for him, I put the iPad version of the program through some tests. As usual, sitting down and using the application rather than just following my planned-out steps reveals a number of bugs.

The thing that makes iPad development a little more difficult that iPhone is that the iPhone UI usually only has one thing happening at any time. For the iPad there are extra sanity checks concerning synchronized display of data.

Bug score: Open 20, Fixed 63.
philkmills: Phil and guitar (Default)
The most recent bugs to be fixed were fairly resistant. In one case, improper re-flowing of text when the display size changes, turned out to be an Apple problem and has been reported to them. I have a workaround that's OK for what I'm doing but would be really annoying in other cases.

Another pair of bugs, related to how things on the display are resized to make room for a keyboard, turned out to be problems in code I had taken from samples in Apple's own documentation for how to handle the situation.

And I fixed a few of *my* bugs too. :)

Bug score: Open 20, Fixed 57.
philkmills: Phil and guitar (Default)
New things that work are, using index controls to navigate through word lists, making toolbars disappear or not depending on the screen being displayed, improvements (more detail) for error objects being generated because of server errors, and consistent behavior concerning remembering selections when returning to parent table views.

Bug score: Open 24, Fixed 51.

UI Fixes

Feb. 2nd, 2012 04:52 pm
philkmills: Phil and guitar (Default)
The one major piece of the program I haven't done much on yet is the ability to post a new message to the user's journal. As strange as it seems, that's not a core function of the program but one that -- like viewing a reading list -- seems like it should be there for convenience. If someone *really* wants to post messages and replies, Safari does that quite well.

Most of today's fixes related to cleaning up the post code that I'd written as a semi-functional placeholder so that it will be easier to make it do what I really want.

Bug score: Open 25, Fixed 47.
philkmills: Phil and guitar (Default)
Creating an interface for managing stopwords turned out to be a bit more time-consuming than I'd expected. Partly that was getting the database access right but mostly it was spent figuring out a couple of oddities within the development kit.

There is a controller class which one can use as a caching interface to the database. It tracks DB changes and updates query results accordingly. Optionally, it informs a delegate that changes have happened. However, if you give it a delegate and it detects that the changes aren't being processed, it invalidates its own cache. This causes havoc if the programmer's strategy is to defer such processing to a more appropriate time.

The other weirdness was the product of the visual interface editor. The task was to put a sub-view inside a scrolling view which, itself, was inside a primary view. The tool decided to apply positive x/y offsets to the sub-view and compensating negative offsets to the scroller. It looked great until the user tried to make anything scroll...then, confusion in the form of objects wandering aimlessly across the screen.

Bug score: Open 31, Fixed 40.
philkmills: Phil and guitar (Default)
Yesterday's main task was getting the basics of a stop word list in place to support text search. (For those who haven't lived in the world of text indexing and retrieval, stop words are those that you don't care about, the ones that appear in just about every piece of text and therefore are useless for locating important information.)

I'm intending to supply a default list with the application but also allow its customization. This means that the provided list needs to be copied to a manageable location -- database -- when the application is installed. The app needs a screen that allows additions and deletions. An easy way to do additions is showing the user what has already been indexed and allowing those to be moved into the stop word list.

Removing a stop word is somewhat problematic in that it could only be effective for messages indexed after the removal. That means either re-indexing existing messages or living with inconsistency. There's an option of disallowing removal after any messages have been indexed...which might not be a bad thing.

At this point, database access for stop words is working; only the maintenance function is still to be done.
philkmills: Phil and guitar (Default)
These days my favorite way to find bugs is to build my application for the iPad and take it with me on a transit ride. My latest brainwave was that I could build two versions -- one regular iPad and one iPhone-only -- and debug both as separate applications. So it was for today's trip downtown, which led to a lot of new discoveries.

Bug score: Open 34, Fixed 34.

A Gray Day

Jan. 24th, 2012 04:32 pm
philkmills: Phil and guitar (Default)
Apparently I am more productive when I feel just slightly ill -- cough, sneeze.... I think it's because I'm aware of the fact that I'm not exactly energetic and so I concentrate more to make up for it.

Today's efforts include fixing up logic for handling the case where the user doesn't want to store a password, therefore needing to be prompted on login, implementing bookmarked searches in the UI and the database, and a bunch of fixes for how messages are displayed in lists and as individual entries.

Bug score: Open 21, Fixed 32.

Slow Day

Jan. 23rd, 2012 05:52 pm
philkmills: Phil and guitar (Default)
Today's main accomplishment was figuring out (and implementing) the database rules for when record deletion should cascade to other entities as opposed to letting them live on independently. Apart from that, fixes were UI improvements and some network error handling.

Bug score: Open 27, Fixed 22.

Searching

Jan. 21st, 2012 09:50 am
philkmills: Phil and guitar (Default)
Between last night and this morning I've removed one large item from the Bugzilla list of enhancements. (Aside: I'm not sure 'enhancement' is the right word for implementing a feature in the first version of an application...but it's an available category and it will do.)

My program is now capable of filtering downloaded messages according to the account or community where they were posted (or some combination of those) and applying a list of search terms to find messages containing 'any' or 'all' of those terms. It's using an indexed keyword search rather than full text so, at least with test accounts, it responds quite quickly.

(Note to self: Add another enhancement item for a method of modifying the supplied "stop word" list.)

Bug score: Open 31, Fixed 17.

Sorting

Jan. 20th, 2012 11:13 am
philkmills: Phil and guitar (Default)
Wednesday was dedicated to fixing some user interface bugs. Yesterday was mostly a write-off for working on this project. Today, so far, I've got sorting working for filtered messages and for friends/reading list messages both from the UI point of view where sort order is selected and from the data side that responds to it.

Bug Score: Open 31, Fixed 16.
philkmills: Phil and guitar (Default)
I've only found a few bugs and fixed a few in the past couple of days but one of the fixes was a big one. I now have a unified way of handling network errors within the application so that, whether they come from a problem with a connection or are returned as server text, they propagate through the application from the network layer to the top-level callers in the same way.

(Debugging asynchronous networking is the same kind of fun as swinging blindly at spontaneously-regenerating, rocket-powered pinatas.)

Bug score: Open 35, Fixed 11.
philkmills: Phil and guitar (Default)
The current score on the buglist front is: Open 37, Resolved 7.

Of the ones that got fixed today, most were small but the one exception was: Make the friends list (reading list) work. That involved parsing the return values, deciding which ones to keep, creating a UI for the list of them, another page for showing details, and the logic for navigation.

April 2012

S M T W T F S
1234567
891011121314
15161718192021
2223 2425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 18th, 2017 07:26 am
Powered by Dreamwidth Studios