Build, release and QA
---------------------
*alpha2 patch*
I proposed that we patch alpha2 with a longer timeout to unblock
dogfooders while we work on the root problems with cosmo-demo requests
taking too long for large calendars. Philippe, Jared, Ted and Sheila
agreed. Morgen had a patch handy.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006099.html
Sheila announced the new version of the milestone.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006142.html
*background sync*
The background sync branch landed in the trunk, so that more folks can
test and fix problems. The trunk may be less stable as we work out the
kinks. Stamping of previously shared items is disabled. Shared
collections will sync every hour; you can change the frequency using a
preference. The "Sync All" toolbar button initiates a sync. If you find
bugs, please document the steps to reproduce the bug and include
chandler.log + twisted.log.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006112.html
Based on Morgen and Andi's recommendation, I proposed that we leave
stamping disabled for shared items for alpha3, to focus on stability.
Sheila agreed with the proposal.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006135.html
*alpha3 code freeze approaching*
Alpha3 code freeze is planned for Wednesday, June 21. We'll restrict
checkins to regression fixes, considering other fixes on a case by case
basis. We'd like alpha3 to be more stable than alpha2. We have two big
changes landing (background sync and a new wx tarball) that are likely
to cause regressions.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006114.html
*new binaries for linux*
Bear enabled the new linux binaries, which are now being built on Ubuntu
(Breezy Badger). You may run into problems if you are on FC2. Two
problems we've seen so far: our wx links to libsdl and libexpat and some
distros don't have them. To prevent problems, remove chandler/release
and chandler/debug directories before doing a make install.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006118.html
*Ubuntu 6.06*
Andi got the ubuntu build to work after installing more packages.
Chandler crashed easily with a gcc/gcj build, but was stable with
gcc/gcj 3.4.6. Chandler looks ugly because the font sizes are off. Andi
found the ubuntu install to be the easiest he's experienced yet.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006125.html
*Bug 6040 blocking progress*
Sheila raised the priority of Bug 6040 to P1 and asked that we not sit
on this bug, as it prevents the downloadable version of Chandler from
running. Grant explained that the share directory doesn't show up in
chandler/release on a full build of the app, due to an i18n bug. Markku
explained that Jeffrey checked in a workaround, and that Brian Kirsch
would tackle the root problem when he's back from vacation.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006133.html
*Tracking performance*
Heikki explained how we continuously track Chandler's performance. He
gave a link to 30 day trend graphs, the Tinderbox status page
(displaying the latest results from automatically run performance
tests), the performance project home page (describing the 6 out of 18
tests that we are prioritizing), etc.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006130.html
I responded to an earlier post from Heikki about performance tests,
noting that we have conflicting goals: run tests reasonably quickly, run
tests against historical data sets, run tests against data sets that
more accurately reflect user data, run tests that cover the full app
including expanding functionality. Heikki replied that he is happy with
the current times.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006140.html
*Logging discrete actions in tests*
Dan asked Heikki about his removal of logger calls from sync tests. Dan
assumes we want to be reporting about discrete actions from within a
given test. Heikki explained that he found the logger start/stop calls
confusing. He thinks the goal is not to report discrete actions, but to
report errors as accurately as possible and with good enough information
to find problems. Heikki explained this particular test in more detail,
that the exceptions give the relevant detail.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006137.html
*external tools*
Markku brought up a discussion about how to distribute tools with
Chandler (gettext, wx tools, etc.). Two options: (1) New build target
downloads prebuilt binaries of tools. (2) We obtain sources from all
required external tools and place them in external. (1) is fast, but
more burdensome as # of platforms we support increases. Note that on
Linux, the binaries are not always portable. (2) adds bloat to the
project, but tools will work across all platforms. Any other ideas?
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006139.html
John proposed #1 for Mac/Windows and #2 for Linux. Reid modified the
proposal: #1 for Mac/Windows/Ubuntu and #2 for other Linux. Heikki
pointed out that the real need here is i18n tools, and proceeded to
explain the tools in more detail.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006145.html
Intern and SoC projects
-----------------------
*Natural language parsing in Chandler*
Philippe liked the NLP plan put forward by Jeffrey and Darshana.
Philippe and Grant noted earlier discussions and designs where the
search field is re-purposed for a rudimentary CLI, including Mimi's
QuickItemEntry.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006093.html
Heikki brought up Firefox's search box as an example. He noted that
being able to change the context (from "search" to "new event") might be
useful, particularly with a small set of contexts. Jeffrey pictures a
drop down, where all commands are discoverable. The drop down could have
icons as well as the command. By switching contexts, the end user would
be able to create a bunch of tasks just by entering them and hitting
return (as requested on the design list). Search mode would likely be
the default. Jeffrey painted a picture of being able to enter tasks with
dates quickly from the keyboard (no mousing around). Bear brought up
QuickSilver as a nice example handling contexts from the keyboard.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006095.html
Davor finds the Firefox search box awkward, as it requires using the
mouse. He's in favor of all-keyboard entry and likes the "switch
context" idea.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006131.html
Ted gave another use case: copy and paste text from an email and have it
be recognized. Ted is not a fan of the CLI approach (at least not long
term). Agenda and Apple didn't need a semantic hint. He noted that Todd
Agulnick wrote some of the recognition code in Agenda. The Newton
allowed you to select text and tell it to "recognize" it -- it would
create the appropriately typed item.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006104.html
Heikki threw out the idea of "recognizing" text as it was typed,
underlining items that it recognized. It could automatically add in
fields, or possibly automatically stamp the item. He also noted that you
probably want to start out with a new "note" and have it adjust the
type/stamp as it recognizes, not based on the app mode in the toolbar.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006103.html
Ted suggested that we not feel bound by NLP toolkits. We could consider
how to use the domain model to help disambiguate parts of the
recognition steps. Ted gave feedback that the parsing resource method
could take hints to prime the recognizer to find particular types/fields.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006101.html
Philippe pointed out that Ted's Newton and Agenda examples didn't have
to distinguish between "search" and "create new item" -- there is no
particularly good way to do this (example: "tomorrow morning"). He
agreed that it makes sense to have a more generic "create" context
instead of having one command per kind. Philippe liked the proposal that
was developing, to display the current intent and allow it to be changed
through keyboard commands.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006116.html
*Multivariate Analysis*
Philippe and Markku had a dialog with Xun about his project, discussing
the appropriateness of slashdot feeds as the data set, adding semantics
to the data (to be more similar to PIM data, which does have semantics),
statistical methods used, and use of Lucene. Andi recommended
[EMAIL PROTECTED] for Lucene usage advice, as well as the book
"Lucene in action". Xun will check his work into the sandbox.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006110.html
Alpha3 and Alpha4 development
-----------------------------
*Stamping and Dashboard domain-model questions*
Bryan had some questions about stamping and the dashboard. (1) Are we
using annotations for stamping? How do I know what stamps an item has?
How will the attribute editor mechanism need to change? (2) What happens
to attribute redirection? How do we implement "Who" and "Date" columns?
(3) Does column sorting always imply an index on each user visible
collection? Given the factors that affect sorting, we could have a lot
of potential index updates. (4) The triage column sorting requirements
imply a triageValueChangedDate attribute -- this may imply a similar
repository level mechanism to set and update date-created and
date-last-modified attributes. (5) The "purge" feature implies a
separate attribute to store the pending triage state. Are there issues
with conflicts here? (6) How do we implement the feature where the Send
button is enabled when the user edits a received email event? (7) How
are user visible To/From/CC fields managed for items that could be
coming and going?
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006097.html
*Filters loading items*
Andi explained a long standing performance bug where some filter
expressions used by FilteredCollections use an expression that cause an
entire item to be loaded into memory. This becomes a problem in some
scenarios that iterate over the collection -- all items in the large
collection get loaded. Two collections have this property, related to
reminders and recurrence. Their filters require some other items to come
up with a True or False answer. Andi proposed a 'bequeatheTo' feature, a
reverse of 'inheritFrom'. Whenever a value in a particular attribute
changes, the attributes in its 'bequeathTo' aspect would be given the
value. This would enable values to be cached on the item tested by
FilteredCollection. These attributes can be looked at without loading
the item.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006105.html
Grant and others looked into this, and decided bequeathTo isn't needed
in this case. Grant gave the code snippets for the two cases, and
explained that one test can be dealt with using the existing
findValue(). The other two tests are really trying to figure out if a
refcollection is empty or not, and Andi will add API to the repository
layer for that purpose.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006106.html
Jeffrey gave more details about bequeatheTo. The idea came out of a
conversation between Andi and Jeffrey, the intent was to use it as a
performance work around for issues with indexing new union collections.
Andi and Jeffrey have been discussing a sub-index feature that should
help avoid re-indexing. That improvement may be enough to make the
bequeathTo concept unnecessary.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006108.html
*Performance improvements*
Andi reported that the filter problem noted above has been fixed: no
filter expressions are currently causing items to be unnecessarily
loaded. Andi also found and fixed another problem causing items to be
loaded when iterating item uuids of a collection. These fixes yielded a
performance boost for view switching and calendar overlaying (these
operations create adhoc indexes). Importing a 3,000 event calendar on an
intel mac sped up by 79%.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006121.html
Jeffrey reported on further performance improvements resulting from his
work with Andi. He's using Freeze()/Thaw() on wx column headers when
changing their text, which makes the Windows/Mac rendering faster. As we
change the headers for each day of the week, we were repainting many
things for each label change. He was able to optimize event lookup for
"this week" by assuming most events are not longer than a week, handling
this as a special case. He's using Andi's new sub-index support to
optimize finding recurring events for "this week". These fixes help the
case of "jump to next week". Jeffrey gives some perf #s in the writeup.
He noticed that the speedups are different on Intel Mac and his Dell;
this could be explained by Mac's faster harddrive, if iterindexkeys is
IO bound. Jeffrey also noted different performance characteristics for
recurring events and non-recurring events, suggesting that we match our
test data with "normal users".
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006126.html
*Recurrence in sharing*
Jeffrey has been thinking about recurrence and sharing, while looking at
rewriting some import code. To preserve data integrity, Jeffrey thinks
we should move recurrence conflict handling out of the ICalendarFormat
import/export layer and deal with it at a higher level in the sharing
process. Morgen has been understandably reluctant to add that complexity
to sharing. Jeffrey thinks the recurrence bugs will become more
confusing and difficult if not handled more directly in the sharing
layer. Jeffrey mentioned that ideally we'd have a journal of server
changes to a recurring event and then compare them to a journal of
changes since the last sync.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006109.html
Morgen was open to doing whatever we need to do to make this work. He
asked for a summary of current recurrence sharing problems. He asked
about his two recurrence sharing bugs, and if we should fix them using
the current approach or with a new mechanism.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-June/006127.html
Meetings and announcements
--------------------------
*Apps meeting*
http://wiki.osafoundation.org/bin/view/Journal/AppsMeeting20060615
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev