summaryrefslogtreecommitdiff
path: root/_darcs/inventories
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-05-06 11:17:29 -0400
committerEvan Prodromou <evan@prodromou.name>2008-05-06 11:17:29 -0400
commit1d4f1f6bf6bd8313cbb51dbf61d675408171d1b8 (patch)
tree8c622e1c4c1cbfc78abe335c1a153e354f29eee4 /_darcs/inventories
parentd4fd1c505e14bdef4945e51d4f46a949d3abfb98 (diff)
add standard directories
Added some of the standard directories darcs-hash:20080506151729-84dde-563da8505e06a7302041c93ab157ced31165876c.gz
Diffstat (limited to '_darcs/inventories')
-rw-r--r--_darcs/inventories/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz99
-rw-r--r--_darcs/inventories/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz366
-rw-r--r--_darcs/inventories/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz475
-rw-r--r--_darcs/inventories/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz146
-rw-r--r--_darcs/inventories/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz263
-rw-r--r--_darcs/inventories/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz23
-rw-r--r--_darcs/inventories/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz108
-rw-r--r--_darcs/inventories/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz5
-rw-r--r--_darcs/inventories/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz160
-rw-r--r--_darcs/inventories/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz95
-rw-r--r--_darcs/inventories/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz3
-rw-r--r--_darcs/inventories/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz9
-rw-r--r--_darcs/inventories/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz13
-rw-r--r--_darcs/inventories/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz83
-rw-r--r--_darcs/inventories/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz225
-rw-r--r--_darcs/inventories/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz5
-rw-r--r--_darcs/inventories/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz414
-rw-r--r--_darcs/inventories/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz375
-rw-r--r--_darcs/inventories/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz869
-rw-r--r--_darcs/inventories/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz3
-rw-r--r--_darcs/inventories/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz9
-rw-r--r--_darcs/inventories/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz5
-rw-r--r--_darcs/inventories/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz352
-rw-r--r--_darcs/inventories/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz5
-rw-r--r--_darcs/inventories/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz205
-rw-r--r--_darcs/inventories/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz29
-rw-r--r--_darcs/inventories/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz5
-rw-r--r--_darcs/inventories/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz319
-rw-r--r--_darcs/inventories/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz5
-rw-r--r--_darcs/inventories/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz440
-rw-r--r--_darcs/inventories/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz13
-rw-r--r--_darcs/inventories/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz5
32 files changed, 5131 insertions, 0 deletions
diff --git a/_darcs/inventories/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz b/_darcs/inventories/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz
new file mode 100644
index 000000000..3e909155b
--- /dev/null
+++ b/_darcs/inventories/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz
@@ -0,0 +1,99 @@
+[initial database
+Evan Prodromou <evan@prodromou.name>**20080505135019]
+[default index files
+Evan Prodromou <evan@prodromou.name>**20080505135228]
+[documentation for URLs
+Evan Prodromou <evan@prodromou.name>**20080505150839]
+[add standard directories
+Evan Prodromou <evan@prodromou.name>**20080506151729
+
+ Added some of the standard directories
+
+]
+[beginnings of PHP
+Evan Prodromou <evan@prodromou.name>**20080507164807]
+[add data objects
+Evan Prodromou <evan@prodromou.name>**20080507171542]
+[start showstream
+Evan Prodromou <evan@prodromou.name>**20080508162145]
+[read-only stuff
+Evan Prodromou <evan@prodromou.name>**20080509021604]
+[considerable coding
+Evan Prodromou <evan@prodromou.name>**20080514145436]
+[head and foot menus
+Evan Prodromou <evan@prodromou.name>**20080514184702]
+[deny access to include files
+Evan Prodromou <evan@prodromou.name>**20080514190009]
+[remove placeholder index files
+Evan Prodromou <evan@prodromou.name>**20080514190105]
+[move library files to lib
+Evan Prodromou <evan@prodromou.name>**20080514190300]
+[move docs to doc
+Evan Prodromou <evan@prodromou.name>**20080514190341]
+[move sql file to db
+Evan Prodromou <evan@prodromou.name>**20080514190411]
+[license block for source code
+Evan Prodromou <evan@prodromou.name>**20080514192648
+
+ Added GNU Affero GPL license block to source code.
+
+ Added name "LACONICA". I think it should work fine.
+
+]
+[settings and avatars
+Evan Prodromou <evan@prodromou.name>**20080515162844
+
+ Did considerable work on the settings section.
+
+ Redesigned the DB to allow avatars. Each avatar image has a size and
+ an URL. There can be multiple avatars per profile, just different sizes.
+
+ Added accessors in Profile for avatar. Show the avatar in lots of
+ places, where it makes sense. Constants for avatar sizes in common.php.
+
+]
+[upload and change avatars
+Evan Prodromou <evan@prodromou.name>**20080517122045
+
+ code to upload and change avatars.
+
+ combined some code in the settings area, too.
+
+]
+[bogus version of common_local_url()
+Evan Prodromou <evan@prodromou.name>**20080517135138
+
+ Threw together a bogus version of common_local_url(), which should
+ work for now. But eventually it should use pretty URLs if possible.
+
+]
+[move the goal posts
+Evan Prodromou <evan@prodromou.name>**20080517140532
+
+ change the version numbers for an internal 0.1 test release (putting
+ it on the server!).
+
+ Also, added some tweedly date formatting, just to have something
+ there. Needs some thought.
+
+]
+[more twiddling
+Evan Prodromou <evan@prodromou.name>**20080517144642
+
+ Placeholder for broadcasting notice updates.
+
+ Fixup the local url function to include server and path.
+
+ Add server and path to configuration array.
+
+ Make new notice 303 redirect to shownotice.
+
+ Make redirects work.
+
+ Add link in streams to notices.
+
+]
+[make config kinda work
+Evan Prodromou <evan@prodromou.name>**20080517152958]
+[flipped a couple of TODOs around
+Evan Prodromou <evan@prodromou.name>**20080517153127] \ No newline at end of file
diff --git a/_darcs/inventories/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz b/_darcs/inventories/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz
new file mode 100644
index 000000000..01d8760b0
--- /dev/null
+++ b/_darcs/inventories/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz
@@ -0,0 +1,366 @@
+Starting with tag:
+[TAG 0.1
+Evan Prodromou <evan@prodromou.name>**20080517153140]
+[fixes to make it all lint
+Evan Prodromou <evan@prodromou.name>**20080517154701
+
+ Ran everything through php -l, found out that it didn't compile.
+
+ So: fixed the am-I-running-in-Laconica check at the top of each file.
+ Some syntax fixes in shownotice, showstream, common.
+
+]
+[correct placement of common
+Evan Prodromou <evan@prodromou.name>**20080517154942]
+[correct path to DB_DataObject
+Evan Prodromou <evan@prodromou.name>**20080517155326]
+[fix comma in db script
+Evan Prodromou <evan@prodromou.name>**20080517155754]
+[fix check in config.php.sample
+Evan Prodromou <evan@prodromou.name>**20080517160654]
+[common_local_url() second parameter optional
+Evan Prodromou <evan@prodromou.name>**20080517160908]
+[some more todos
+Evan Prodromou <evan@prodromou.name>**20080517161332]
+[handle empty path better
+Evan Prodromou <evan@prodromou.name>**20080517161548]
+[add action class to default loads
+Evan Prodromou <evan@prodromou.name>**20080517161817]
+[fixup argument handling in action superclass
+Evan Prodromou <evan@prodromou.name>**20080517162305]
+[try to make register work
+Evan Prodromou <evan@prodromou.name>**20080517162932]
+[try to fix arghandling in action
+Evan Prodromou <evan@prodromou.name>**20080517163749]
+[change from class call on action to obj call
+Evan Prodromou <evan@prodromou.name>**20080517163917]
+[fix array key check
+Evan Prodromou <evan@prodromou.name>**20080517164218]
+[fix form output in register
+Evan Prodromou <evan@prodromou.name>**20080517164349
+
+ Two twiddly bits for the form output.
+
+]
+[common_start_element -> common_element_start
+Evan Prodromou <evan@prodromou.name>**20080517170430]
+[wrong title on register
+Evan Prodromou <evan@prodromou.name>**20080517170617]
+[buttons work right
+Evan Prodromou <evan@prodromou.name>**20080517170920]
+[fix check for POST
+Evan Prodromou <evan@prodromou.name>**20080517171501]
+[add stub email canonicalizer
+Evan Prodromou <evan@prodromou.name>**20080517172110
+
+ Added a stub function to stand in for eventual email canonicalizer.
+
+]
+[require data classes in common
+Evan Prodromou <evan@prodromou.name>**20080517172528]
+[path separator problem in data classes
+Evan Prodromou <evan@prodromou.name>**20080517172654]
+[fix INSTALLDIR use in common.php
+Evan Prodromou <evan@prodromou.name>**20080517173424
+
+ I was using $INSTALLDIR instead of INSTALLDIR
+
+]
+[misspelled function name
+Evan Prodromou <evan@prodromou.name>**20080517173626]
+[change username to nickname
+Evan Prodromou <evan@prodromou.name>**20080517174219]
+[fixup some nickname handling
+Evan Prodromou <evan@prodromou.name>**20080517175022]
+[require once for settings actions
+Evan Prodromou <evan@prodromou.name>**20080517175416]
+[fixup login form
+Evan Prodromou <evan@prodromou.name>**20080517190142]
+[require stream stuff
+Evan Prodromou <evan@prodromou.name>**20080517191034]
+[canonicalize -> canonical
+Evan Prodromou <evan@prodromou.name>**20080517191128
+
+ typo
+
+]
+[change profile argument to nickname
+Evan Prodromou <evan@prodromou.name>**20080517191430]
+[change how the user profile is fetched
+Evan Prodromou <evan@prodromou.name>**20080517192001]
+[fix notice counting code
+Evan Prodromou <evan@prodromou.name>**20080517192151]
+[handle empty subscription list
+Evan Prodromou <evan@prodromou.name>**20080517192447]
+[check results of setting current user
+Evan Prodromou <evan@prodromou.name>**20080517193030]
+[ensure rather than check for session
+Evan Prodromou <evan@prodromou.name>**20080517193520]
+[better button for posting notes
+Evan Prodromou <evan@prodromou.name>**20080517193833]
+[fix button on newnotice
+Evan Prodromou <evan@prodromou.name>**20080517194003]
+[fix typo in common_date_string
+Evan Prodromou <evan@prodromou.name>**20080517194133]
+[fix created, messages
+Evan Prodromou <evan@prodromou.name>**20080517195201]
+[go to public timeline on logout and handle missing user more gracefully
+Evan Prodromou <evan@prodromou.name>**20080517195449]
+[fix typo in newnotice
+Evan Prodromou <evan@prodromou.name>**20080517195724
+
+ there was a typo, and I removed it.
+
+]
+[use cast object for datetimes
+Evan Prodromou <evan@prodromou.name>**20080517201411]
+[dates are already strings
+Evan Prodromou <evan@prodromou.name>**20080517201719]
+[save profile url
+Evan Prodromou <evan@prodromou.name>**20080517202132]
+[hide subscribe stuff if looking at your own page
+Evan Prodromou <evan@prodromou.name>**20080518011808]
+[fix table name in subscriptions.php
+Evan Prodromou <evan@prodromou.name>**20080518012850]
+[sub => subs consistently
+Evan Prodromou <evan@prodromou.name>**20080518013312]
+[add header and footer to subscriptions
+Evan Prodromou <evan@prodromou.name>**20080518013747]
+[fix interpolation of profile_id in query
+Evan Prodromou <evan@prodromou.name>**20080518014207]
+[smaller packet
+Evan Prodromou <evan@prodromou.name>**20080518015551]
+[header and footer on subscribers
+Evan Prodromou <evan@prodromou.name>**20080518125253]
+[off-by-one error in notice stream
+Evan Prodromou <evan@prodromou.name>**20080518185940]
+[better handling of zero values in stats
+Evan Prodromou <evan@prodromou.name>**20080518190220]
+[fix path to files, some TODOs
+Evan Prodromou <evan@prodromou.name>**20080518191056]
+[fix form for avatars
+Evan Prodromou <evan@prodromou.name>**20080518191326]
+[move avatars to their own dir
+Evan Prodromou <evan@prodromou.name>**20080518191750]
+[change defaults to use avatar dir
+Evan Prodromou <evan@prodromou.name>**20080518191849]
+[better deletion of old avatars
+Evan Prodromou <evan@prodromou.name>**20080518193951]
+[timestamps for avatar
+Evan Prodromou <evan@prodromou.name>**20080518194653]
+[try to fix updating in profile
+Evan Prodromou <evan@prodromou.name>**20080519122445]
+[all updates use original now
+Evan Prodromou <evan@prodromou.name>**20080519122708]
+[add common_password
+Evan Prodromou <evan@prodromou.name>**20080519131808]
+[fix form in password
+Evan Prodromou <evan@prodromou.name>**20080519132118]
+[update avatar table
+Evan Prodromou <evan@prodromou.name>**20080519134057]
+[better headers
+Evan Prodromou <evan@prodromou.name>**20080519141219
+
+ Added H1 headers to all pages. Added H2 headers to sections of pages,
+ where appropriate.
+
+ Moved a lot of TODOs around.
+
+ Made the public stream the default if no action is specified.
+
+]
+[whitespace in showstream
+Evan Prodromou <evan@prodromou.name>**20080519141351]
+[fix link to profilesettings in settings menu
+Evan Prodromou <evan@prodromou.name>**20080519141736]
+[fix output of statistics
+Evan Prodromou <evan@prodromou.name>**20080519141943]
+[better stats
+Evan Prodromou <evan@prodromou.name>**20080519142807]
+[break out utility functions to util.php
+Evan Prodromou <evan@prodromou.name>**20080520130535]
+[convert html-generation functions to use XMLWriter
+Evan Prodromou <evan@prodromou.name>**20080520132722]
+[change textarea to start and end
+Evan Prodromou <evan@prodromou.name>**20080520133008]
+[fix calling for textarea elements
+Evan Prodromou <evan@prodromou.name>**20080520133220]
+[type declaration
+Evan Prodromou <evan@prodromou.name>**20080520133640]
+[add a space to textarea
+Evan Prodromou <evan@prodromou.name>**20080520133825]
+[add alt to all images
+Evan Prodromou <evan@prodromou.name>**20080520134631]
+[add notice id
+Evan Prodromou <evan@prodromou.name>**20080520153629]
+[license block and move theme stuff
+Evan Prodromou <evan@prodromou.name>**20080520171353]
+[add image to config
+Evan Prodromou <evan@prodromou.name>**20080520171711]
+[fix license title
+Evan Prodromou <evan@prodromou.name>**20080520171809]
+[copy in SimpleLife theme
+Evan Prodromou <evan@prodromou.name>**20080520172241]
+[make the code use the default style
+Evan Prodromou <evan@prodromou.name>**20080520173427]
+[better forms for new theme
+Evan Prodromou <evan@prodromou.name>**20080520174759]
+[typo in form functions
+Evan Prodromou <evan@prodromou.name>**20080520175105]
+[add a label for submit button
+Evan Prodromou <evan@prodromou.name>**20080520175906]
+[add nbsp to submit button label
+Evan Prodromou <evan@prodromou.name>**20080520180640]
+[indent HTML
+Evan Prodromou <evan@prodromou.name>**20080520180750]
+[fix problem with uninitialized xw object
+Evan Prodromou <evan@prodromou.name>**20080520181040]
+[better login button
+Evan Prodromou <evan@prodromou.name>**20080520181444]
+[forgot the footer
+Evan Prodromou <evan@prodromou.name>**20080520181906]
+[add validation methods to classes
+Evan Prodromou <evan@prodromou.name>**20080520185756]
+[call validate before saving objects
+Evan Prodromou <evan@prodromou.name>**20080520191032]
+[trim whitespace
+Evan Prodromou <evan@prodromou.name>**20080520191412]
+[fix validation of url
+Evan Prodromou <evan@prodromou.name>**20080520192634]
+[float images in stream left
+Evan Prodromou <evan@prodromou.name>**20080520192901]
+[add a sidebar
+Evan Prodromou <evan@prodromou.name>**20080520193636]
+[fix div in profile
+Evan Prodromou <evan@prodromou.name>**20080520194008]
+[float notices left
+Evan Prodromou <evan@prodromou.name>**20080520194326]
+[reformat showstream
+Evan Prodromou <evan@prodromou.name>**20080520201120]
+[change relative widths of sidebar and notices again
+Evan Prodromou <evan@prodromou.name>**20080520201440]
+[fix element in notice form
+Evan Prodromou <evan@prodromou.name>**20080520201738]
+[smaller textbox
+Evan Prodromou <evan@prodromou.name>**20080520202500]
+[highlight notice
+Evan Prodromou <evan@prodromou.name>**20080520202747]
+[close ul for foot menu
+Evan Prodromou <evan@prodromou.name>**20080520203002]
+[move notices and sidebar relative to each other
+Evan Prodromou <evan@prodromou.name>**20080520204259]
+[clear both for footer
+Evan Prodromou <evan@prodromou.name>**20080520204639]
+[better menuish stuff
+Evan Prodromou <evan@prodromou.name>**20080520205152]
+[fix menuish again
+Evan Prodromou <evan@prodromou.name>**20080520205756]
+[ease up on the validation
+Evan Prodromou <evan@prodromou.name>**20080520210119]
+[fixup footer menu and fix syntax error in profile.php
+Evan Prodromou <evan@prodromou.name>**20080520210437]
+[extract textarea code and make bio a textarea
+Evan Prodromou <evan@prodromou.name>**20080520211945]
+[fixup textarea again
+Evan Prodromou <evan@prodromou.name>**20080520212319]
+[remove validation code
+Evan Prodromou <evan@prodromou.name>**20080521110253]
+[validation in form handlers
+Evan Prodromou <evan@prodromou.name>**20080521112707
+
+ Moved validation code from classes to form handlers. Probably better
+ in the classes, but I can't quite grok the validate() method in
+ DB_DataObject, so for now I'm going to do it the old-fashioned way.
+
+]
+[default avatars
+Evan Prodromou <evan@prodromou.name>**20080521114624]
+[default avatar
+Evan Prodromou <evan@prodromou.name>**20080521115727]
+[change measurement of updated profiles
+Evan Prodromou <evan@prodromou.name>**20080521121307]
+[correct error-handling in newnotice
+Evan Prodromou <evan@prodromou.name>**20080521122604]
+[move error display to save_new_notice
+Evan Prodromou <evan@prodromou.name>**20080521123106]
+[declare config global for show_notice in streams
+Evan Prodromou <evan@prodromou.name>**20080521133951
+
+ This is needed to get the default avatar, but it was missing.
+
+]
+[better formatting in profile
+Evan Prodromou <evan@prodromou.name>**20080521134849]
+[rss feed plus
+Evan Prodromou <evan@prodromou.name>**20080521143351
+
+ Added an action for creating an RSS 1.0 (RDF) feed. To make this work,
+ added a couple of helper functions to util, and changed the HTML stuff
+ to use the helper functions.
+
+ Also, changed a bit of formatting in the profile. Yeah, not a clean
+ changeset.
+
+]
+[add w3dtf date to rss 1.0 items
+Evan Prodromou <evan@prodromou.name>**20080521145916]
+[full path for avatars
+Evan Prodromou <evan@prodromou.name>**20080521151227]
+[add RSS 1.0 link to header of showstream
+Evan Prodromou <evan@prodromou.name>**20080521152404]
+[falsely claim rss 1.0 is rss 2.0
+Evan Prodromou <evan@prodromou.name>**20080521153652]
+[fix path to default avatars
+Evan Prodromou <evan@prodromou.name>**20080521154234]
+[fixup default avatar urls by using common function
+Evan Prodromou <evan@prodromou.name>**20080521155448]
+[mismatched parens
+Evan Prodromou <evan@prodromou.name>**20080521155611]
+[wrong path for defaults
+Evan Prodromou <evan@prodromou.name>**20080521155849]
+[fixup subscription links
+Evan Prodromou <evan@prodromou.name>**20080521183645]
+[fix subscriptions a bit
+Evan Prodromou <evan@prodromou.name>**20080521185602]
+[off-by-one error in subscriptions
+Evan Prodromou <evan@prodromou.name>**20080521190640]
+[close unclosed rows in subscriptions
+Evan Prodromou <evan@prodromou.name>**20080521191135]
+[re-write the subscriptions section
+Evan Prodromou <evan@prodromou.name>**20080521192048]
+[define undefined, order subs
+Evan Prodromou <evan@prodromou.name>**20080521192912]
+[get the correct data for subscribers/subscriptions
+Evan Prodromou <evan@prodromou.name>**20080521193452]
+[change some todos
+Evan Prodromou <evan@prodromou.name>**20080521194238]
+[strip slashes
+Evan Prodromou <evan@prodromou.name>**20080522103630
+
+ Check if automated slash-adder is on, and if so, strip out automated
+ slashes.
+
+]
+[abstract out RSS 1.0 generation to allow multiple streams
+Evan Prodromou <evan@prodromou.name>**20080522112954]
+[RSS feeds for public stream and friends streams
+Evan Prodromou <evan@prodromou.name>**20080522114152]
+[fix query and description for allrss
+Evan Prodromou <evan@prodromou.name>**20080522114839]
+[TODOs and docs and openmicroblogging spec
+Evan Prodromou <evan@prodromou.name>**20080522172006
+
+ Moved around a few TODOs.
+
+ Linked to docs in the foot menu better.
+
+ Added a specification for the openmicroblogging standard.
+
+]
+[move the goalposts for 0.2
+Evan Prodromou <evan@prodromou.name>**20080522172530
+
+ I pushed a lot of TODOs down, renamed the 0.2 release to 0.3, and made
+ a new release 0.2 in between.
+
+] \ No newline at end of file
diff --git a/_darcs/inventories/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz b/_darcs/inventories/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz
new file mode 100644
index 000000000..890604812
--- /dev/null
+++ b/_darcs/inventories/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz
@@ -0,0 +1,475 @@
+Starting with tag:
+[TAG 0.2
+Evan Prodromou <evan@prodromou.name>**20080522172623]
+[tags and XRDS
+Evan Prodromou <evan@prodromou.name>**20080522183421
+
+ Starting the process of remote subscriptions.
+
+ First, add the capacity to mint tags. May in the future want to allow
+ some kind of UUID or URL for unique URIs. New config options for tag
+ authority and date, and a function for minting tags.
+
+ Store URIs in the DB. If the admin changes his/her tag config, this
+ shouldn't change the URIs in the DB. Unless they really want to make
+ that happen.
+
+ Generate an XRDS document with the appropriate URLs for microblogging.
+ Also, redefined some stuff in openmicroblogging.txt. And moved the file.
+
+]
+[typo in common_mint_tag
+Evan Prodromou <evan@prodromou.name>**20080522184027]
+[generate classes for db schema with URIs
+Evan Prodromou <evan@prodromou.name>**20080522184109]
+[use notice URIs in RSS feeds
+Evan Prodromou <evan@prodromou.name>**20080522184434]
+[add tags on creation of notices and users
+Evan Prodromou <evan@prodromou.name>**20080522185500]
+[use notice URI in channel items list
+Evan Prodromou <evan@prodromou.name>**20080522191028]
+[fix notice generation in rss channels
+Evan Prodromou <evan@prodromou.name>**20080522191436]
+[oauth discovery and all new actions
+Evan Prodromou <evan@prodromou.name>**20080526112700
+
+ Updated the spec to include OAuth discovery.
+
+ Added new actions for all the OMB URLs.
+
+]
+[update for new version of OMB protocol
+Evan Prodromou <evan@prodromou.name>**20080526130328
+
+ After finding OAuth Discovery, I rewrote the OMB spec to support it
+ better. This version of the XRDS generator supports OAuth Discovery
+ more completely.
+
+]
+[fixups for xrds
+Evan Prodromou <evan@prodromou.name>**20080526131551
+
+ Corrected the definition of showService to show all the parameters.
+
+ Fixed the localID part so it uses $user->uri; getUri() was throwing an
+ error.
+
+]
+[fix typo in xrds
+Evan Prodromou <evan@prodromou.name>**20080526131953
+
+ I'd spelled "ENDPOINT" as "ENDPONT" in the code. whoops!
+
+]
+[move OMB and OAUTH defs to their own lib file
+Evan Prodromou <evan@prodromou.name>**20080526151332]
+[client side of distributed subscription almost complete
+Evan Prodromou <evan@prodromou.name>**20080527114219]
+[server-side storage model
+Evan Prodromou <evan@prodromou.name>**20080527200721
+
+ First pass at a server-side storage model. New tables for consumers,
+ tokens, and nonces, with associated classes. An OAuthDataStore class
+ interfaces with the OAuth.php library to enable server logic.
+
+ Some additional work to get pretty-OK random number generation into
+ the utilities library. Use /dev/urandom if available; else use
+ mt_rand().
+
+]
+[remove bogus validation code
+Evan Prodromou <evan@prodromou.name>**20080528134804]
+[add timestamp to avatar filenames to prevent overlap
+Evan Prodromou <evan@prodromou.name>**20080528140321]
+[fix submit button for avatar
+Evan Prodromou <evan@prodromou.name>**20080528141432]
+[fix source link
+Evan Prodromou <evan@prodromou.name>**20080528141555]
+[better timestamped avatar filenames
+Evan Prodromou <evan@prodromou.name>**20080528143030]
+[don't scale avatar if original already matches size
+Evan Prodromou <evan@prodromou.name>**20080528144202]
+[registration requires accepting the license
+Evan Prodromou <evan@prodromou.name>**20080528164222]
+[move license label to _after_ the checkbox
+Evan Prodromou <evan@prodromou.name>**20080528170438]
+[get rid of the license label, since it mucks everything else up.
+Evan Prodromou <evan@prodromou.name>**20080528170556]
+[show error messages in registration form
+Evan Prodromou <evan@prodromou.name>**20080528170752]
+[fix cc license url
+Evan Prodromou <evan@prodromou.name>**20080528171012]
+[float text of license stuff right, to make a more pleasing license block
+Evan Prodromou <evan@prodromou.name>**20080528171232]
+[try to float license image left again
+Evan Prodromou <evan@prodromou.name>**20080528171434]
+[try to float license text right
+Evan Prodromou <evan@prodromou.name>**20080528171543]
+[fixed widths
+Evan Prodromou <evan@prodromou.name>**20080528171626]
+[add span around license link
+Evan Prodromou <evan@prodromou.name>**20080528171758]
+[add greenBg for license
+Evan Prodromou <evan@prodromou.name>**20080528171944]
+[whole footer has greenBg
+Evan Prodromou <evan@prodromou.name>**20080528172041]
+[undo that
+Evan Prodromou <evan@prodromou.name>**20080528172149]
+[paginate on showstream
+Evan Prodromou <evan@prodromou.name>**20080528173129]
+[forgot commas!
+Evan Prodromou <evan@prodromou.name>**20080528173231]
+[better page numbers
+Evan Prodromou <evan@prodromou.name>**20080528173417]
+[add pagination to all and public
+Evan Prodromou <evan@prodromou.name>**20080528173917]
+[update TODOs and try to reformat notices
+Evan Prodromou <evan@prodromou.name>**20080528174247]
+[change to use correct width classes
+Evan Prodromou <evan@prodromou.name>**20080528174412]
+[take out spans
+Evan Prodromou <evan@prodromou.name>**20080528174621]
+[take out avatar floatleft
+Evan Prodromou <evan@prodromou.name>**20080528174807]
+[take out content rendering, seems to do something strange
+Evan Prodromou <evan@prodromou.name>**20080528174924]
+[add doc action
+Evan Prodromou <evan@prodromou.name>**20080528182707]
+[error in file_exists()
+Evan Prodromou <evan@prodromou.name>**20080528183022]
+[stub of about
+Evan Prodromou <evan@prodromou.name>**20080528183709]
+[add more docs
+Evan Prodromou <evan@prodromou.name>**20080528185637]
+[source document
+Evan Prodromou <evan@prodromou.name>**20080528193121]
+[dump args to browser for debugging
+Evan Prodromou <evan@prodromou.name>**20080529151317]
+[fix checking boolean parameters
+Evan Prodromou <evan@prodromou.name>**20080529151602]
+[even better boolean handling
+Evan Prodromou <evan@prodromou.name>**20080529152304]
+[mark some TODOs done
+Evan Prodromou <evan@prodromou.name>**20080529163508]
+[use common_render_content
+Evan Prodromou <evan@prodromou.name>**20080529164139]
+[reformat showstream
+Evan Prodromou <evan@prodromou.name>**20080529164411]
+[@ messages
+Evan Prodromou <evan@prodromou.name>**20080529170801]
+[loosen restrictions on names for atlinks
+Evan Prodromou <evan@prodromou.name>**20080529171604]
+[fixup atlink generator a bit
+Evan Prodromou <evan@prodromou.name>**20080529171853]
+[dummy atlinkin
+Evan Prodromou <evan@prodromou.name>**20080529172107]
+[more debugging crap
+Evan Prodromou <evan@prodromou.name>**20080529172205]
+[remove debug string
+Evan Prodromou <evan@prodromou.name>**20080529172258]
+[don't check for notice in rendering content; just render it!
+Evan Prodromou <evan@prodromou.name>**20080529172549]
+[better regular expression for atlinks
+Evan Prodromou <evan@prodromou.name>**20080529173234]
+[special chars for raw links in atlinks
+Evan Prodromou <evan@prodromou.name>**20080529173400]
+[fix render in showstream
+Evan Prodromou <evan@prodromou.name>**20080529173527]
+[keep the ampersand in atlinks
+Evan Prodromou <evan@prodromou.name>**20080529173635]
+[linkify URLs
+Evan Prodromou <evan@prodromou.name>**20080529181244]
+[remove url regex
+Evan Prodromou <evan@prodromou.name>**20080529181321]
+[use q's for regex delimiter
+Evan Prodromou <evan@prodromou.name>**20080529181549]
+[bad regex again
+Evan Prodromou <evan@prodromou.name>**20080529181623]
+[one more try on the preg delimiter
+Evan Prodromou <evan@prodromou.name>**20080529181942]
+[remove URL check again
+Evan Prodromou <evan@prodromou.name>**20080529182026]
+[more regex fun
+Evan Prodromou <evan@prodromou.name>**20080529182725]
+[ar
+Evan Prodromou <evan@prodromou.name>**20080529182754]
+[linkify URLs
+Evan Prodromou <evan@prodromou.name>**20080529190702]
+[move linkifying so URL links come first
+Evan Prodromou <evan@prodromou.name>**20080529190743]
+[change number of subscriptions per row
+Evan Prodromou <evan@prodromou.name>**20080529192112]
+[don't render content in RSS feeds
+Evan Prodromou <evan@prodromou.name>**20080529192510]
+[interim commit after pull from server
+Evan Prodromou <evan@prodromou.name>**20080530142324]
+[common function for turning a relative path into a full URL
+Evan Prodromou <evan@prodromou.name>**20080530162429]
+[remotesubscribe form
+Evan Prodromou <evan@prodromou.name>**20080530174310]
+[fix path for requiring oauthstore
+Evan Prodromou <evan@prodromou.name>**20080530174616]
+[check that services are null in yadis check
+Evan Prodromou <evan@prodromou.name>**20080530175055]
+[show footer for remotesubscribe form
+Evan Prodromou <evan@prodromou.name>**20080530175235]
+[add a print_r for the yadis doc returned
+Evan Prodromou <evan@prodromou.name>**20080530175436]
+[correct content-type on XRDS document
+Evan Prodromou <evan@prodromou.name>**20080530181029]
+[check to see if XRDS discovery failed
+Evan Prodromou <evan@prodromou.name>**20080530181103]
+[add debug logging and do some from the remotesubscribe page
+Evan Prodromou <evan@prodromou.name>**20080530182230]
+[add X-XRDS-Location header
+Evan Prodromou <evan@prodromou.name>**20080530183528]
+[typo in checking for YADIS failure
+Evan Prodromou <evan@prodromou.name>**20080530184105]
+[better debug messages
+Evan Prodromou <evan@prodromou.name>**20080530184712]
+[debug message for when services returns null
+Evan Prodromou <evan@prodromou.name>**20080530184925]
+[no pid in syslog
+Evan Prodromou <evan@prodromou.name>**20080530185015]
+[check xrds object
+Evan Prodromou <evan@prodromou.name>**20080530185343]
+[parse the XRDS results
+Evan Prodromou <evan@prodromou.name>**20080530190446
+
+ Apparently you have to parse the XRDS results from the discovery
+ result object. Who knew?
+
+]
+[start handling fancy URLs
+Evan Prodromou <evan@prodromou.name>**20080530212555]
+[set proper row sizes
+Evan Prodromou <evan@prodromou.name>**20080601020132]
+[better handling of XRDS files
+Evan Prodromou <evan@prodromou.name>**20080602174249
+
+ Our generated XRDS files contain 3 XRD elements: one for OAuth, one
+ for OMB, and one to point to the other two. Auth_Yadis only gives us
+ the last one, so we have to use it to find the other two, and then
+ extract service URLs from them.
+
+ Kind of fragile code, probably won't hold up under complicated
+ topologies, and won't work at all if the XRDs are in another XRDS
+ container. I tried to use XRDS filtering to get the top-priority
+ version of XRDs, services, and URIs, but Laconica's output doesn't use
+ any of that stuff and I don't particularly want to test it.
+
+]
+[move service-matching callbacks to library
+Evan Prodromou <evan@prodromou.name>**20080602175725]
+[use omb_service_filter() rather than omb_match_service()
+Evan Prodromou <evan@prodromou.name>**20080602175936]
+[fix dynamically-created code
+Evan Prodromou <evan@prodromou.name>**20080602180108]
+[add some debugging stuff for problems with remote subscribe
+Evan Prodromou <evan@prodromou.name>**20080602181254]
+[services() returns an array
+Evan Prodromou <evan@prodromou.name>**20080602181759]
+[trim whitespace
+Evan Prodromou <evan@prodromou.name>**20080602181857]
+[make a nodes variable to pass nodes by reference
+Evan Prodromou <evan@prodromou.name>**20080602182153]
+[fix assignment of omb stuff
+Evan Prodromou <evan@prodromou.name>**20080602183314]
+[debug info
+Evan Prodromou <evan@prodromou.name>**20080602183911]
+[minor corrections for OMB discovery
+Evan Prodromou <evan@prodromou.name>**20080602185137]
+[typo in LocalID generation in xrds
+Evan Prodromou <evan@prodromou.name>**20080602185452]
+[fix URLs for OMB endpoints
+Evan Prodromou <evan@prodromou.name>**20080602185618]
+[add a namespace when checking for LocalID element
+Evan Prodromou <evan@prodromou.name>**20080602190357]
+[get content of element rather than raw element
+Evan Prodromou <evan@prodromou.name>**20080602191039]
+[add some debugging output to request token request
+Evan Prodromou <evan@prodromou.name>**20080602192018]
+[fixup caching problem with server variable
+Evan Prodromou <evan@prodromou.name>**20080602192242]
+[correct name of data store class
+Evan Prodromou <evan@prodromou.name>**20080602192526]
+[fixup classes
+Evan Prodromou <evan@prodromou.name>**20080602192820]
+[correct server error output
+Evan Prodromou <evan@prodromou.name>**20080602193851]
+[add the hmac sha1 signature method to server
+Evan Prodromou <evan@prodromou.name>**20080602194333]
+[change names, update
+Evan Prodromou <evan@prodromou.name>**20080602195138]
+[fix consumer fetching, nonce making
+Evan Prodromou <evan@prodromou.name>**20080602200645]
+[get rid of callback nonce
+Evan Prodromou <evan@prodromou.name>**20080602201707]
+[debugging code for userauthorization
+Evan Prodromou <evan@prodromou.name>**20080602203142]
+[more debug code
+Evan Prodromou <evan@prodromou.name>**20080602203802]
+[trying to find out why auth request is going to requesttoken
+Evan Prodromou <evan@prodromou.name>**20080602205534]
+[move debugging code for checking URIs of XRD
+Evan Prodromou <evan@prodromou.name>**20080602205921]
+[more debugging, don't reuse variable
+Evan Prodromou <evan@prodromou.name>**20080603104859]
+[typo in use of omb_service_uri()
+Evan Prodromou <evan@prodromou.name>**20080603110749]
+[restructure filters on services
+Evan Prodromou <evan@prodromou.name>**20080603111750]
+[one more stab at type matching, plus debug message
+Evan Prodromou <evan@prodromou.name>**20080603113626]
+[fix service discovery (I think)
+Evan Prodromou <evan@prodromou.name>**20080603114317]
+[clear out lots of debugging code, add require to userauthorization
+Evan Prodromou <evan@prodromou.name>**20080603115218]
+[remove call to private get-version() method
+Evan Prodromou <evan@prodromou.name>**20080603115839]
+[full interface for userauthorization
+Evan Prodromou <evan@prodromou.name>**20080604185131]
+[fix passing request around
+Evan Prodromou <evan@prodromou.name>**20080604191206]
+[add some debugging code
+Evan Prodromou <evan@prodromou.name>**20080604201123]
+[automatically prepend filename to debug output
+Evan Prodromou <evan@prodromou.name>**20080605024035]
+[move filename stuff to debug function
+Evan Prodromou <evan@prodromou.name>**20080605024717]
+[move stoica schema to laconica
+Evan Prodromou <evan@prodromou.name>**20080605024807]
+[correct order of params in get_token
+Evan Prodromou <evan@prodromou.name>**20080605025152]
+[clear request doesn't need an argument
+Evan Prodromou <evan@prodromou.name>**20080605025611]
+[don't validate listenee URI
+Evan Prodromou <evan@prodromou.name>**20080605033911
+
+ Validation of the listenee URI was failing for tag: URIs. So,
+ abandoned validation for now. Maybe in the future I'll add it back in,
+ with a second check for a valid tag URI if it doesn't work.
+
+]
+[decided to validate tag uris rather than not validating any uris
+Evan Prodromou <evan@prodromou.name>**20080605040153]
+[bad validation of callback URL
+Evan Prodromou <evan@prodromou.name>**20080605040358]
+[a
+Evan Prodromou <evan@prodromou.name>**20080605183419]
+[new TODOs
+Evan Prodromou <evan@prodromou.name>**20080605190614]
+[move avatar scaling and saving to Avatar and Profile
+Evan Prodromou <evan@prodromou.name>**20080605193708
+
+ Extracted the code for setting a new original avatar to the Profile
+ class, and moved some of it to Avatar, too. This makes it easier to
+ have the same functionality whether an avatar is set using the profile
+ settings (for our users), or on a remote subscription. Necessitated
+ changing the filenaming function to just take an ID.
+
+]
+[setOriginal() is an instance method
+Evan Prodromou <evan@prodromou.name>**20080605195222]
+[passing id to the avatar filename function
+Evan Prodromou <evan@prodromou.name>**20080605195500]
+[show error correctly in login
+Evan Prodromou <evan@prodromou.name>**20080605200759]
+[debugging info on finished remote subscribe
+Evan Prodromou <evan@prodromou.name>**20080606040946]
+[listenee is nickname, not URI
+Evan Prodromou <evan@prodromou.name>**20080606043405]
+[fix args in returnto
+Evan Prodromou <evan@prodromou.name>**20080606051331]
+[don't clone arrays!
+Evan Prodromou <evan@prodromou.name>**20080606051823]
+[use $_GET, not $args
+Evan Prodromou <evan@prodromou.name>**20080606052117]
+[handle errors in authorizing and saving remote profile
+Evan Prodromou <evan@prodromou.name>**20080606052631]
+[debug info for authorizing token
+Evan Prodromou <evan@prodromou.name>**20080606053321]
+[seem to be storing tokens with null consumer keys
+Evan Prodromou <evan@prodromou.name>**20080606053914]
+[mixed up OAuthConsumer and Consumer classes
+Evan Prodromou <evan@prodromou.name>**20080606054549]
+[checks for user and sub in validate and better error check in remote save
+Evan Prodromou <evan@prodromou.name>**20080606055439]
+[remember to sign access token request with request token
+Evan Prodromou <evan@prodromou.name>**20080606060000]
+[mixed up token keys and OAuthToken objects
+Evan Prodromou <evan@prodromou.name>**20080606060601]
+[debugging output for new_access_token
+Evan Prodromou <evan@prodromou.name>**20080606061556]
+[debugging stuff in accesstoken action
+Evan Prodromou <evan@prodromou.name>**20080606062235]
+[debugging request for access token
+Evan Prodromou <evan@prodromou.name>**20080606062958]
+[store URL rather than service in $omb for bounce back
+Evan Prodromou <evan@prodromou.name>**20080606063721]
+[forgot to require libs in accesstoken
+Evan Prodromou <evan@prodromou.name>**20080606064011]
+[stash URLs for return and check all values for profiles
+Evan Prodromou <evan@prodromou.name>**20080606065027]
+[call postnotice when there's a remote subscription
+Evan Prodromou <evan@prodromou.name>**20080606160437]
+[move notice-posting stuff from util.php to omb.php
+Evan Prodromou <evan@prodromou.name>**20080606162226]
+[push yadis requirement into omb.php
+Evan Prodromou <evan@prodromou.name>**20080606162659]
+[debugging messages in broadcast remote
+Evan Prodromou <evan@prodromou.name>**20080606171450]
+[trim whitespace and more debugging for posting messages
+Evan Prodromou <evan@prodromou.name>**20080606172239]
+[dump sub and rp
+Evan Prodromou <evan@prodromou.name>**20080606172638]
+[fix name of join-adding method
+Evan Prodromou <evan@prodromou.name>**20080606173804]
+[quit trying to use fancy join and just loop
+Evan Prodromou <evan@prodromou.name>**20080606174822]
+[removing some noisy debug notices
+Evan Prodromou <evan@prodromou.name>**20080606175254]
+[bad signature because variable name was wrong
+Evan Prodromou <evan@prodromou.name>**20080606180035]
+[was using $notice->uri instead of $notice_uri
+Evan Prodromou <evan@prodromou.name>**20080606180330]
+[start doing some fancy URLs
+Evan Prodromou <evan@prodromou.name>**20080606182044]
+[use mod_rewrite to have prettier urls
+Evan Prodromou <evan@prodromou.name>**20080606195136]
+[fancy URLs
+Evan Prodromou <evan@prodromou.name>**20080606200151]
+[add cc:license to RSS streams
+Evan Prodromou <evan@prodromou.name>**20080608201917]
+[forgot config in channel
+Evan Prodromou <evan@prodromou.name>**20080608201957]
+[use rdf:resource for license urls
+Evan Prodromou <evan@prodromou.name>**20080608203314]
+[export FOAF
+Evan Prodromou <evan@prodromou.name>**20080610121132]
+[incorrectly used , instead of => in a surprising number of places
+Evan Prodromou <evan@prodromou.name>**20080610121936]
+[more specific fetchers
+Evan Prodromou <evan@prodromou.name>**20080610122707]
+[undo fancy URLs for omb endpoints
+Evan Prodromou <evan@prodromou.name>**20080610123002
+
+ The OAuth library uses the $_GET and $_POST arrays for checking
+ signatures on requests. So, we need to make sure that the client sees
+ the same request parameters as the server (or callback). These don't
+ have to be particularly readable URLs, anyways, since they're mostly
+ "behind the scenes".
+
+]
+[ticking off a TODO
+Evan Prodromou <evan@prodromou.name>**20080610142221]
+[make presentation of remote subscribe nicer
+Evan Prodromou <evan@prodromou.name>**20080610143709]
+[add link for FOAF autodiscovery
+Evan Prodromou <evan@prodromou.name>**20080610144420]
+[close parens in showstream
+Evan Prodromou <evan@prodromou.name>**20080610144606]
+[fix getting subscribers
+Evan Prodromou <evan@prodromou.name>**20080610145520]
+[add another TODO
+Evan Prodromou <evan@prodromou.name>**20080610150113] \ No newline at end of file
diff --git a/_darcs/inventories/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz b/_darcs/inventories/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz
new file mode 100644
index 000000000..4763643ca
--- /dev/null
+++ b/_darcs/inventories/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz
@@ -0,0 +1,146 @@
+Starting with tag:
+[TAG 0.2.5
+Evan Prodromou <evan@controlezvous.ca>**20080610150429]
+[geo namespace
+Evan Prodromou <evan@prodromou.name>**20080610150957]
+[files from Marie-Claude Doyon for stoi.ca theme
+Evan Prodromou <evan@prodromou.name>**20080610171303]
+[rename files in stoica theme
+Evan Prodromou <evan@prodromou.name>**20080610173718]
+[first steps towards new skin
+Evan Prodromou <evan@prodromou.name>**20080610185238]
+[background header
+Evan Prodromou <evan@prodromou.name>**20080610185551]
+[fix footer menu
+Evan Prodromou <evan@prodromou.name>**20080610185759]
+[fixup for new theme design in public.php
+Evan Prodromou <evan@prodromou.name>**20080610192101]
+[new layout for all action
+Evan Prodromou <evan@prodromou.name>**20080610193305]
+[fixup views menu
+Evan Prodromou <evan@prodromou.name>**20080610193520]
+[wrap notice form in p
+Evan Prodromou <evan@prodromou.name>**20080610193649]
+[finish logo link
+Evan Prodromou <evan@prodromou.name>**20080610193854]
+[change class of notice textarea to its id
+Evan Prodromou <evan@prodromou.name>**20080610194243]
+[move help menu and change class of menuitem li,s
+Evan Prodromou <evan@prodromou.name>**20080610194553]
+[remove license block
+Evan Prodromou <evan@prodromou.name>**20080610195134]
+[better footer
+Evan Prodromou <evan@prodromou.name>**20080610195502]
+[get current user in views menu
+Evan Prodromou <evan@prodromou.name>**20080610195920]
+[canonicalization lowercases nicknames
+Evan Prodromou <evan@prodromou.name>**20080611141824]
+[new TODOs
+Evan Prodromou <evan@prodromou.name>**20080608203731]
+[fixup TODOs
+Evan Prodromou <evan@prodromou.name>**20080610211316]
+[better form handling
+Evan Prodromou <evan@prodromou.name>**20080610211614]
+[make shownotice a stream of one notice
+Evan Prodromou <evan@prodromou.name>**20080610221910
+
+ For display sake, make showing a single notice like showing a
+ stream with one notice in it.
+
+]
+[fix including stream in shownotice
+Evan Prodromou <evan@prodromou.name>**20080610222222]
+[get the profile to show it in the title
+Evan Prodromou <evan@prodromou.name>**20080610222547]
+[add more TODOs
+Evan Prodromou <evan@prodromou.name>**20080611014547]
+[one more TODO
+Evan Prodromou <evan@prodromou.name>**20080611014616]
+[take out home/profile menu for all pages, use same format for settings menu
+Evan Prodromou <evan@prodromou.name>**20080611015609]
+[fixup some TODOs, fix a bug in userauthorization
+Evan Prodromou <evan@prodromou.name>**20080611020810]
+[refresh on showstream
+Evan Prodromou <evan@prodromou.name>**20080611022900]
+[remove notice form from showstream
+Evan Prodromou <evan@prodromou.name>**20080611023246]
+[menu on home and profile
+Evan Prodromou <evan@prodromou.name>**20080611155258]
+[make last parameter for common_menu_item() optional
+Evan Prodromou <evan@prodromou.name>**20080611155649]
+[closing menu list in the wrong place
+Evan Prodromou <evan@prodromou.name>**20080611160318]
+[show selection in settings menu
+Evan Prodromou <evan@prodromou.name>**20080611160520]
+[a couple of TODOs that are done
+Evan Prodromou <evan@prodromou.name>**20080611162118]
+[instructions
+Evan Prodromou <evan@prodromou.name>**20080611163308]
+[reminder about site license in avatar upload process
+Evan Prodromou <evan@prodromou.name>**20080611163645]
+[more documentation
+Evan Prodromou <evan@prodromou.name>**20080611170624]
+[remove URLS.txt
+Evan Prodromou <evan@prodromou.name>**20080611170723]
+[move files in default theme to one directory
+Evan Prodromou <evan@prodromou.name>**20080611171009]
+[reformat for our theme layout
+Evan Prodromou <evan@prodromou.name>**20080611171351]
+[only show notice form if user is logged in, looking at own page
+Evan Prodromou <evan@prodromou.name>**20080611181334]
+[push notice form and sub-menu into header div
+Evan Prodromou <evan@prodromou.name>**20080611183634]
+[double-showing notice form and views menu
+Evan Prodromou <evan@prodromou.name>**20080611184128]
+[change default avatars from config vars to theme files
+Evan Prodromou <evan@prodromou.name>**20080611190230]
+[start changing default theme to work with new HTML
+Evan Prodromou <evan@prodromou.name>**20080612015858]
+[menu to nav
+Evan Prodromou <evan@prodromou.name>**20080612020408]
+[add instructions to each form entry in forms
+Evan Prodromou <evan@prodromou.name>**20080612165201]
+[link for website
+Evan Prodromou <evan@prodromou.name>**20080612174453]
+[broadcast profile and change subscription input id
+Evan Prodromou <evan@prodromou.name>**20080612184028]
+[hide warnings when unlinking an avatar file
+Evan Prodromou <evan@prodromou.name>**20080612185322]
+[add some more debugging code
+Evan Prodromou <evan@prodromou.name>**20080612190447]
+[fix some incorrect input due to copy-and-paste programming
+Evan Prodromou <evan@prodromou.name>**20080612191606]
+[correct the id attribute of the profile
+Evan Prodromou <evan@prodromou.name>**20080612192221]
+[only show "more subscriptions" link if there really are more subscriptions
+Evan Prodromou <evan@prodromou.name>**20080612192650]
+[catch errors in debug log
+Evan Prodromou <evan@prodromou.name>**20080612193945]
+[another copy-and-paste error
+Evan Prodromou <evan@prodromou.name>**20080612194656]
+[only validate if values are sent
+Evan Prodromou <evan@prodromou.name>**20080612195324]
+[links for subscribers and subscribed in showstream
+Evan Prodromou <evan@prodromou.name>**20080612200424]
+[add content negotiation for media type
+Evan Prodromou <evan@prodromou.name>**20080613144913]
+[mark off TODO, only local notices in public stream
+Evan Prodromou <evan@prodromou.name>**20080613152420]
+[MC's changes on test1 server
+Evan Prodromou <evan@prodromou.name>**20080613152520]
+[add author information for RSS
+Evan Prodromou <evan@prodromou.name>**20080613153012]
+[better titles in RSS
+Evan Prodromou <evan@prodromou.name>**20080613153303]
+[show logo only if file exists, add h1 and h2 to all pages
+Evan Prodromou <evan@prodromou.name>**20080613154632]
+[hide pagename and site title
+Evan Prodromou <evan@prodromou.name>**20080613155540]
+[update TODO, and add variables to docs
+Evan Prodromou <evan@prodromou.name>**20080613171538]
+[function for retrieving a config variable
+Evan Prodromou <evan@prodromou.name>**20080613175344]
+[site name in help file
+Evan Prodromou <evan@prodromou.name>**20080613183325]
+[mark off some todos, add a version number, and put code info at the bottom of the page
+Evan Prodromou <evan@prodromou.name>**20080613184638] \ No newline at end of file
diff --git a/_darcs/inventories/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz b/_darcs/inventories/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz
new file mode 100644
index 000000000..089fa655f
--- /dev/null
+++ b/_darcs/inventories/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz
@@ -0,0 +1,263 @@
+Starting with tag:
+[TAG 0.3.0
+Evan Prodromou <evan@prodromou.name>**20080613184833]
+[add public tab
+Evan Prodromou <evan@prodromou.name>**20080614122038]
+[no arg
+Evan Prodromou <evan@prodromou.name>**20080614122155]
+[take out public from views menu for now
+Evan Prodromou <evan@prodromou.name>**20080614122517]
+[show default profile image in showstream
+Evan Prodromou <evan@prodromou.name>**20080615014742]
+[some doc
+Evan Prodromou <evan@prodromou.name>**20080615021852]
+[email notification on new subscriptions
+Evan Prodromou <evan@prodromou.name>**20080615030202]
+[use site name as default sender
+Evan Prodromou <evan@prodromou.name>**20080615030319]
+[fancy URLs should remember page
+Evan Prodromou <evan@prodromou.name>**20080615035012]
+[before and after are switched, pass QSA in some rewrite rules
+Evan Prodromou <evan@prodromou.name>**20080615035510]
+[add jQuery
+Evan Prodromou <evan@prodromou.name>**20080617043650]
+[filename in jquery
+Evan Prodromou <evan@prodromou.name>**20080617044054]
+[move roadmap to web site
+Evan Prodromou <evan@prodromou.name>**20080617121642
+
+ I've put all the roadmap info into the Laconi.ca Web site:
+
+ http://laconi.ca/PITS
+
+ It's more detailed, more accessible for non-programmers, and more
+ structured.
+
+ To avoid having the two sources go out-of-synch, I'm deleting this one.
+
+]
+[start openid rp integration
+Evan Prodromou <evan@prodromou.name>**20080617133501]
+[remove roadmap
+Evan Prodromou <evan@prodromou.name>**20080617133539]
+[ignore oid_.* tables when generating classes
+Evan Prodromou <evan@prodromou.name>**20080617133941]
+[beginnings of OpenID login
+Evan Prodromou <evan@prodromou.name>**20080617144942]
+[inclusion of our local OpenID lib
+Evan Prodromou <evan@prodromou.name>**20080617145140]
+[more specific Store class
+Evan Prodromou <evan@prodromou.name>**20080617150509]
+[forgot 'new' keyword
+Evan Prodromou <evan@prodromou.name>**20080617150656]
+[add OpenID and SReg libraries
+Evan Prodromou <evan@prodromou.name>**20080617151249]
+[fixup &
+Evan Prodromou <evan@prodromou.name>**20080617152051]
+[close function call in javascript
+Evan Prodromou <evan@prodromou.name>**20080617152444]
+[what exactly are we updating
+Evan Prodromou <evan@prodromou.name>**20080615152047]
+[more debugging on profile update
+Evan Prodromou <evan@prodromou.name>**20080615153123]
+[M-C changes in stoica
+Evan Prodromou <evan@prodromou.name>**20080618015146]
+[make default a clone of stoica
+Evan Prodromou <evan@prodromou.name>**20080618015423
+
+ Rather than trying to backfill a default theme from the Simple Life
+ theme, we're just going to copy the stoica theme, and make some
+ changes so it looks distinctive.
+
+]
+[finish openid
+Evan Prodromou <evan@prodromou.name>**20080618052638
+
+ Added some code to make finishing the OpenID login work.
+
+ Changed the OID storage so that there's a "canonical" URL and a
+ display URL. This is because of i-names, which is annoying.
+
+ If the login succeeds, we try to find a local user associated with the
+ canonical URL. If they don't exist, we let the user either create a
+ new account, or login to an existing account and connect to it.
+
+ A totally unrelated change is that the DB engine now uses InnoDB.
+
+]
+[require the openid relational class
+Evan Prodromou <evan@prodromou.name>**20080618054847]
+[fix prompt and debug input
+Evan Prodromou <evan@prodromou.name>**20080618055349]
+[check existence of args not booleanness
+Evan Prodromou <evan@prodromou.name>**20080618055657]
+[refactoring error
+Evan Prodromou <evan@prodromou.name>**20080618055836]
+[fix get_saved_values() function in finishopenidlogin
+Evan Prodromou <evan@prodromou.name>**20080618060549]
+[set nickname correctly
+Evan Prodromou <evan@prodromou.name>**20080618061117]
+[go to profile instead of profile settings
+Evan Prodromou <evan@prodromou.name>**20080618061833]
+[fix missing parens
+Evan Prodromou <evan@prodromou.name>**20080618062059]
+[manage existing OpenIDs
+Evan Prodromou <evan@prodromou.name>**20080618065320
+
+ Add a settings page to manage existing OpenIDs, or add OpenIDs to an
+ account.
+
+]
+[add OpenID settings to settings menu
+Evan Prodromou <evan@prodromou.name>**20080618065508]
+[user_id in user_openid should not be unique
+Evan Prodromou <evan@prodromou.name>**20080618070430]
+[dot not comma
+Evan Prodromou <evan@prodromou.name>**20080618070710]
+[better error handling
+Evan Prodromou <evan@prodromou.name>**20080618071207]
+[user_id in user_openid is not unique
+Evan Prodromou <evan@prodromou.name>**20080618110126]
+[debugging on adding OpenID
+Evan Prodromou <evan@prodromou.name>**20080618110853]
+[error on save
+Evan Prodromou <evan@prodromou.name>**20080618111512]
+[return true on successful save of openid
+Evan Prodromou <evan@prodromou.name>**20080618112624]
+[voodoo changes
+Evan Prodromou <evan@prodromou.name>**20080618113720]
+[consolidate linking a user to an OpenID
+Evan Prodromou <evan@prodromou.name>**20080618114310]
+[fix syntax error in finishopenidlogin
+Evan Prodromou <evan@prodromou.name>**20080618123941]
+[references
+Evan Prodromou <evan@prodromou.name>**20080618131519]
+[change variable name error
+Evan Prodromou <evan@prodromou.name>**20080618131636]
+[debugging for addopenid problem
+Evan Prodromou <evan@prodromou.name>**20080618132613]
+[move openid authentication to a common function
+Evan Prodromou <evan@prodromou.name>**20080618133251]
+[fixup syntax error in openid.php
+Evan Prodromou <evan@prodromou.name>**20080618150557]
+[better presentation on openidsettings
+Evan Prodromou <evan@prodromou.name>**20080618160111]
+[better URLs for OpenID stuff
+Evan Prodromou <evan@prodromou.name>**20080618160733]
+[fancified openidsettings URL
+Evan Prodromou <evan@prodromou.name>**20080618161321]
+[more debugging output, better check on canonical
+Evan Prodromou <evan@prodromou.name>**20080618162715]
+[fix debug to prefix with var name
+Evan Prodromou <evan@prodromou.name>**20080618162838]
+[add submit class to all buttons
+Evan Prodromou <evan@prodromou.name>**20080618163516]
+[don't put fake spaces in the text area
+Evan Prodromou <evan@prodromou.name>**20080618025253]
+[fake spaces in textareas to fakeout XMLWriter
+Evan Prodromou <evan@prodromou.name>**20080618030019]
+[move instructions up to the "whats up" area
+Evan Prodromou <evan@prodromou.name>**20080618035739]
+[fix copy-and-paste error
+Evan Prodromou <evan@prodromou.name>**20080618151103]
+[change sitename h2 to branding p
+Evan Prodromou <evan@prodromou.name>**20080618152004]
+[more rigorous check on site logo
+Evan Prodromou <evan@prodromou.name>**20080618153036]
+[class=branding => id=branding
+Evan Prodromou <evan@prodromou.name>**20080618153258]
+[link in the branding p
+Evan Prodromou <evan@prodromou.name>**20080618154643]
+[better pagination and no rows in subscriptions and subscribed
+Evan Prodromou <evan@prodromou.name>**20080618165041]
+[more changes by M-C on the server
+Evan Prodromou <evan@prodromou.name>**20080618175911]
+[small debugging and messaging fixes
+Evan Prodromou <evan@prodromou.name>**20080618180642]
+[add xrds for trust root URL
+Evan Prodromou <evan@prodromou.name>**20080618182647]
+[fix trust root in openid to use 'public' string
+Evan Prodromou <evan@prodromou.name>**20080618182812]
+[remove 'oauth' from publicxrds
+Evan Prodromou <evan@prodromou.name>**20080618183606]
+[add more debugging
+Evan Prodromou <evan@prodromou.name>**20080618201123]
+[add a little XML goodness to redirect
+Evan Prodromou <evan@prodromou.name>**20080618202500]
+[factor out similarities in subscriptions and subscribers
+Evan Prodromou <evan@prodromou.name>**20080618171313]
+[change references from subscribed to subscribers
+Evan Prodromou <evan@prodromou.name>**20080618171622]
+[more subscriptions/subscribers changes
+Evan Prodromou <evan@prodromou.name>**20080618172444
+
+ Showstream now shows subscriptions in reverse chron order, like the
+ other pages.
+
+ Added a callback method to figure out who the _other_ guy is in a
+ subscription.
+
+ Changed gallery page to be a UL of images.
+
+]
+[move instructions to top in openid pages
+Evan Prodromou <evan@prodromou.name>**20080618190202]
+[removed message was slurping in success flag
+Evan Prodromou <evan@prodromou.name>**20080618204421]
+[forgot settingsmenu in openidsettings
+Evan Prodromou <evan@prodromou.name>**20080618204611]
+[take out check for other user
+Evan Prodromou <evan@prodromou.name>**20080618210044]
+[switch password and id in munge_password
+Evan Prodromou <evan@prodromou.name>**20080618211454
+
+ I think this is the less effective way to salt a password, BUT...
+ I had a big bug in my code! All the code that was calling this
+ function got the order of the params mixed up. So, to save heartache,
+ I just reversed the order of the parameters, and reversed how the were
+ used in the function. It should be functionally the same as before,
+ but better documented.
+
+]
+[add some reasonable things to configure
+Evan Prodromou <evan@prodromou.name>**20080619014802]
+[config with path
+Evan Prodromou <evan@prodromou.name>**20080619020540]
+[default DB driver is DB
+Evan Prodromou <evan@prodromou.name>**20080619020634]
+[use DB as the data driver in dataobject.ini too
+Evan Prodromou <evan@prodromou.name>**20080619021449]
+[do some commits
+Evan Prodromou <evan@prodromou.name>**20080619033212]
+[use query method to do some transactions
+Evan Prodromou <evan@prodromou.name>**20080619033619]
+[immediate mode for openid
+Evan Prodromou <evan@prodromou.name>**20080619134710]
+[move update_user function to openid.php
+Evan Prodromou <evan@prodromou.name>**20080619135148]
+[use openid.php functions in finishimmediate
+Evan Prodromou <evan@prodromou.name>**20080619135603]
+[added some debugging stuff
+Evan Prodromou <evan@prodromou.name>**20080619135944]
+[build backto a little smarter
+Evan Prodromou <evan@prodromou.name>**20080619140350]
+[refresh the cookie on successful immediate
+Evan Prodromou <evan@prodromou.name>**20080619140505]
+[copy args function
+Evan Prodromou <evan@prodromou.name>**20080619141107]
+[M-C's changes to default theme on test2
+Test Server 2 <test2@dev.controlezvous.ca>**20080619142224]
+[more changes by M-C on the dev server
+Evan Prodromou <evan@prodromou.name>**20080619141755]
+[openid input styling
+Evan Prodromou <evan@controlyourself.ca>**20080619143610]
+[id not class on openid_url input
+Evan Prodromou <evan@controlyourself.ca>**20080619143829]
+[TAG 0.3.1
+Identica Server <admin@identi.ca>**20080619145124]
+[update_user didn't return true
+Evan Prodromou <evan@controlyourself.ca>**20080619145838]
+[update version
+Evan Prodromou <evan@controlyourself.ca>**20080619150158]
+[TAG 0.3.2
+Evan Prodromou <evan@controlyourself.ca>**20080619150208] \ No newline at end of file
diff --git a/_darcs/inventories/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz b/_darcs/inventories/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz
new file mode 100644
index 000000000..4da7ab35f
--- /dev/null
+++ b/_darcs/inventories/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz
@@ -0,0 +1,23 @@
+Starting with tag:
+[TAG 0.3.2
+Evan Prodromou <evan@controlyourself.ca>**20080619150226]
+[need a profileurl for new users
+Evan Prodromou <evan@controlyourself.ca>**20080619151803]
+[cant remove last openid, public xrds includes immediate
+Evan Prodromou <evan@controlyourself.ca>**20080619153231
+
+ Added a check to make sure the user doesn't remove their last OpenID
+ if they don't also have a password.
+
+ Also, put the finishimmediate URL in the publicxrds so that e.g.
+ Yahoo! doesn't get snippy.
+
+]
+[fetch the oid before showing it
+Evan Prodromou <evan@controlyourself.ca>**20080619153719]
+[had order of arguments for oid_link_user backwards in finishaddopenid
+Evan Prodromou <evan@controlyourself.ca>**20080619155042]
+[Don't repeat "Remove OpenID" header
+Evan Prodromou <evan@controlyourself.ca>**20080619155154]
+[posting from a form takes you back to the same page
+Evan Prodromou <evan@controlyourself.ca>**20080619161814] \ No newline at end of file
diff --git a/_darcs/inventories/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz b/_darcs/inventories/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz
new file mode 100644
index 000000000..73b4b9c7e
--- /dev/null
+++ b/_darcs/inventories/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz
@@ -0,0 +1,108 @@
+Starting with tag:
+[TAG 0.3.3
+Evan Prodromou <evan@controlyourself.ca>**20080619162450]
+[common_show_footer() was hidden in an if
+Evan Prodromou <evan@prodromou.name>**20080619172031]
+[push instructions into head and require license
+Evan Prodromou <evan@prodromou.name>**20080619173225]
+[try to clear openid url cookie better
+Evan Prodromou <evan@prodromou.name>**20080619183238]
+[put instructions into header div
+Evan Prodromou <evan@prodromou.name>**20080619190357]
+[fix pagination for galleries
+Evan Prodromou <evan@prodromou.name>**20080620195627]
+[Fix for bug #00019 (Linkified all @ addresses in a message)
+matthew.gregg@gmail.com**20080620181136]
+[skip a DB hit, and better regex
+Evan Prodromou <evan@prodromou.name>**20080620203449]
+[add confirmemail table
+Evan Prodromou <evan@controlyourself.ca>**20080620041012]
+[confirm email addresses
+Evan Prodromou <evan@controlyourself.ca>**20080620051536]
+[correct name for common_good_rand()
+Evan Prodromou <evan@controlyourself.ca>**20080620052453]
+[correct confirmation code
+Evan Prodromou <evan@prodromou.name>**20080620062606]
+[fancy url for confirmation of email
+Evan Prodromou <evan@prodromou.name>**20080620062847]
+[whitespace and debugging changes
+Evan Prodromou <evan@prodromou.name>**20080620064824]
+[don't keep cached user
+Evan Prodromou <evan@prodromou.name>**20080620065455]
+[strip some whitespace
+Evan Prodromou <evan@prodromou.name>**20080620065619]
+[go back to ensuring session
+Evan Prodromou <evan@prodromou.name>**20080620070256]
+[change from using tag uris to http urls for identifiers
+Evan Prodromou <evan@prodromou.name>**20080620071700
+
+ Weirdly, I got in an argument with Tim Berners-Lee in #swig about the
+ tag URIs I was using in FOAF documents. Eventually, I was convinced
+ that it's a better thing to use HTTP URLs instead. So, now we have
+ HTTP URLs.
+
+ The tricky thing was for users. Since they can change their names, we
+ can't use their profile URL, since it includes the name. Instead, I
+ made up a new action, which simply redirects from a user ID to their
+ current profile URL. This should be sufficiently long-term.
+
+]
+[some whitespace
+Evan Prodromou <evan@prodromou.name>**20080620072125]
+[fix url for redirect
+Evan Prodromou <evan@prodromou.name>**20080620072632]
+[add better debugging
+Evan Prodromou <evan@controlezvous.ca>**20080622140941]
+[add confirm email to profile settings
+Evan Prodromou <evan@controlezvous.ca>**20080622142015]
+[reference calling for objstring
+Evan Prodromou <evan@controlezvous.ca>**20080622142713]
+[typo in objstring
+Evan Prodromou <evan@controlezvous.ca>**20080622142906]
+[add a method to update key fields in User
+Evan Prodromou <evan@controlezvous.ca>**20080622145644]
+[use internal quoting code for manual query
+Evan Prodromou <evan@controlezvous.ca>**20080622150633]
+[use updateKeys() for updating the user
+Evan Prodromou <evan@controlezvous.ca>**20080622151611]
+[better logic in profile settings, missing method in all
+Evan Prodromou <evan@controlezvous.ca>**20080622152306]
+[nickname update
+Evan Prodromou <evan@controlezvous.ca>**20080622152628]
+[strcmp for comparison
+Evan Prodromou <evan@controlezvous.ca>**20080622153220]
+[more debugging
+Evan Prodromou <evan@controlezvous.ca>**20080622153754]
+[q
+Evan Prodromou <evan@controlezvous.ca>**20080622154836]
+[change Confirm_email to Confirm_address
+Evan Prodromou <evan@controlezvous.ca>**20080622155028]
+[move confirmemail to confirmaddress
+Evan Prodromou <evan@controlezvous.ca>**20080622155250
+
+ Rename the confirmemail to more general confirmaddress so we can use
+ it for Jabber, SMS, or whatever.
+
+]
+[require the right class
+Evan Prodromou <evan@controlezvous.ca>**20080622155454]
+[correctly use Confirm_address
+Evan Prodromou <evan@controlezvous.ca>**20080622161607]
+[fix name of class in confirmaddress.php
+Evan Prodromou <evan@controlezvous.ca>**20080622161749]
+[confirm address
+Evan Prodromou <evan@controlezvous.ca>**20080622161917]
+[special function for generating confirmation codes
+Evan Prodromou <evan@controlezvous.ca>**20080622163241]
+[use a static rather than a constant for code chars
+Evan Prodromou <evan@controlezvous.ca>**20080622163458]
+[auto-increment primary key for SMS carrier
+Evan Prodromou <evan@controlezvous.ca>**20080622164013]
+[debugging for profile update
+Evan Prodromou <evan@controlezvous.ca>**20080622164542]
+[move profile update to front
+Evan Prodromou <evan@controlezvous.ca>**20080622164928]
+[move profile update to front
+Evan Prodromou <evan@controlezvous.ca>*-20080622164928]
+[allow blank email address (I think)
+Evan Prodromou <evan@controlezvous.ca>**20080622165453] \ No newline at end of file
diff --git a/_darcs/inventories/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz b/_darcs/inventories/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz
new file mode 100644
index 000000000..634971d8a
--- /dev/null
+++ b/_darcs/inventories/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz
@@ -0,0 +1,5 @@
+Starting with tag:
+[TAG 0.3.4
+Evan Prodromou <evan@controlezvous.ca>**20080622172309]
+[version number changed
+Evan Prodromou <evan@controlezvous.ca>**20080622172354] \ No newline at end of file
diff --git a/_darcs/inventories/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz b/_darcs/inventories/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz
new file mode 100644
index 000000000..300ac62fb
--- /dev/null
+++ b/_darcs/inventories/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz
@@ -0,0 +1,160 @@
+Starting with tag:
+[TAG 0.3.4
+Evan Prodromou <evan@controlezvous.ca>**20080622172408]
+[remove check immediate
+Evan Prodromou <evan@controlezvous.ca>**20080622173341
+
+ After getting a lot of problems and bugs with this, I'm removing the
+ check_immediate code. Instead, I'm going to add this functionality in
+ JavaScript. I think that's a preferred practice, anyways.
+
+]
+[disallow nicknames on a blacklist
+Evan Prodromou <evan@controlezvous.ca>**20080622180437]
+[forgot to return on invalid nickname
+Evan Prodromou <evan@controlezvous.ca>**20080622181550]
+[first pass at a daemon to receive XMPP messages
+Evan Prodromou <evan@prodromou.name>**20080623022710]
+[add flags to db for jabber and sms notification
+Evan Prodromou <evan@prodromou.name>**20080623023859]
+[make the daemon do something
+Evan Prodromou <evan@prodromou.name>**20080623030150]
+[strip whitespace in xmppdaemon
+Evan Prodromou <evan@prodromou.name>**20080623030259]
+[dont let the daemon get called from a web server
+Evan Prodromou <evan@prodromou.name>**20080623030523]
+[change host to port
+Evan Prodromou <evan@prodromou.name>**20080623030930]
+[conn is an attribute of XMPPdaemon
+Evan Prodromou <evan@prodromou.name>**20080623031058]
+[normalize jids before comparison
+Evan Prodromou <evan@controlezvous.ca>**20080623041816]
+[add imsettings to menu
+Evan Prodromou <evan@controlezvous.ca>**20080623223641]
+[add jabber library and use it
+Evan Prodromou <evan@controlezvous.ca>**20080624001523]
+[jabber send and confirmation code
+Evan Prodromou <evan@controlezvous.ca>**20080624013203]
+[broadcast notices to jabber
+Evan Prodromou <evan@controlezvous.ca>**20080624014241]
+[fix instructions in default theme
+Evan Prodromou <evan@controlezvous.ca>**20080624014625]
+[don't validate email if none provided
+Evan Prodromou <evan@controlezvous.ca>**20080624014642]
+[more fixes in default theme
+Evan Prodromou <evan@controlezvous.ca>**20080624014843]
+[syntax error in jabber_format_notice
+Evan Prodromou <evan@controlezvous.ca>**20080624015001]
+[more robust handling of new JIDs
+Evan Prodromou <evan@controlezvous.ca>**20080624015616]
+[add table for remember me codes
+Evan Prodromou <evan@controlezvous.ca>**20080624020205]
+[implement rememberme functionality
+Evan Prodromou <evan@controlezvous.ca>**20080624025234
+
+ Added a checkbox on login or register to remember the current user. If
+ the login is successful, this sets a cookie with a random code (saved
+ in the DB). If they come back, and they aren't logged in "normally",
+ we check to see if they have a rememberme cookie. If so, we log them
+ in.
+
+ However, they can't change settings -- cookie theft is too prevalent.
+ So we mark a session as having a "real" (password or OpenID) login, or
+ not. In settings pages, we check to see if the login is "real", and if
+ not, we redirect to the login page.
+
+]
+[switch order for checkbox, instructio
+Evan Prodromou <evan@controlezvous.ca>**20080624030034]
+[bad function call
+Evan Prodromou <evan@controlezvous.ca>**20080624030741]
+[typo in name of common_set_cookie
+Evan Prodromou <evan@controlezvous.ca>**20080624030834]
+[use the correct field for Remember_me
+Evan Prodromou <evan@controlezvous.ca>**20080624031057]
+[force session again and correctly get ID
+Evan Prodromou <evan@controlezvous.ca>**20080624031746]
+[correct name for common_forgetme() in logout
+Evan Prodromou <evan@controlezvous.ca>**20080624031927]
+[change some things around to see if we can get the cookies right
+Evan Prodromou <evan@controlezvous.ca>**20080624032408]
+[set user takes a nickname, not a user object
+Evan Prodromou <evan@controlezvous.ca>**20080624032818]
+[better cookie building
+Evan Prodromou <evan@controlezvous.ca>**20080624033223]
+[check session name COOKIE before ensuring session
+Evan Prodromou <evan@controlezvous.ca>**20080624034906]
+[think && was binding too closely in remembered_user
+Evan Prodromou <evan@controlezvous.ca>**20080624040058]
+[using bogus attribute of $rm
+Evan Prodromou <evan@controlezvous.ca>**20080624040234]
+[login doesn't bark if the user is automatically logged in
+Evan Prodromou <evan@controlezvous.ca>**20080624040548]
+[rudimentary recoverpassword system
+Evan Prodromou <evan@controlezvous.ca>**20080624215033]
+[output a message when we send the recovery email
+Evan Prodromou <evan@controlezvous.ca>**20080624215826]
+[url for confirmation email is better, fancy url
+Evan Prodromou <evan@controlezvous.ca>**20080624220335]
+[less tricky with recoverpassword
+Evan Prodromou <evan@controlezvous.ca>**20080624220626]
+[slightly different from settingsaction
+Evan Prodromou <evan@controlezvous.ca>**20080624221054]
+[type -> address_type
+Evan Prodromou <evan@controlezvous.ca>**20080624221437]
+[correct field name
+Evan Prodromou <evan@controlezvous.ca>**20080624221758]
+[use $newpassword instead of $password consistently
+Evan Prodromou <evan@controlezvous.ca>**20080624224030]
+[show better errors on bad codes
+Evan Prodromou <evan@controlezvous.ca>**20080624225556]
+[subscribe before sending confirmation message
+Evan Prodromou <evan@controlezvous.ca>**20080626064646]
+[use jabber library from xmppdaemon program
+Evan Prodromou <evan@controlezvous.ca>**20080626070703]
+[commit queries in xmppdaemon::add_notice
+Evan Prodromou <evan@controlezvous.ca>**20080626071213]
+[show the proper address in the message for non-email confirms
+Evan Prodromou <evan@controlezvous.ca>**20080626072159]
+[confirmation code sent by web user, not xmppdaemon
+Evan Prodromou <evan@controlezvous.ca>**20080626073530]
+[handle host != server in xmpp, also use one function for connections
+Evan Prodromou <evan@controlezvous.ca>**20080626075920]
+[lost parenthesis in xmppdaemon
+Evan Prodromou <evan@controlezvous.ca>**20080626080214]
+[misunderstood host versus server
+Evan Prodromou <evan@controlezvous.ca>**20080626080626]
+[use jabber.php more from xmppdaemon
+Evan Prodromou <evan@controlezvous.ca>**20080626150336]
+[more logging
+Evan Prodromou <evan@controlezvous.ca>**20080626151202]
+[correct confirm code
+Evan Prodromou <evan@controlezvous.ca>**20080626152044]
+[some UI changes to the IM settings
+Evan Prodromou <evan@controlezvous.ca>**20080626181144]
+[get rid of label on checkbox, just include it as contents
+Evan Prodromou <evan@controlezvous.ca>**20080626181726]
+[move text out of input, into a separate span
+Evan Prodromou <evan@controlezvous.ca>**20080626182231]
+[show checkbox as checked or not
+Evan Prodromou <evan@controlezvous.ca>**20080626182705]
+[stub for jabber_is_subscribed
+Evan Prodromou <evan@controlezvous.ca>**20080626183117]
+[forgot to clone user
+Evan Prodromou <evan@controlezvous.ca>**20080626183721]
+[add a function to show current address
+Evan Prodromou <evan@controlezvous.ca>**20080626184055]
+[some variable names swapped around when I split up the big method
+Evan Prodromou <evan@controlezvous.ca>**20080626184811]
+[fancy URLs for IM settings
+Evan Prodromou <evan@controlezvous.ca>**20080626184931]
+[better instructions on confirmation code
+Evan Prodromou <evan@controlezvous.ca>**20080626190307]
+[compile error with lost dot
+Evan Prodromou <evan@controlezvous.ca>**20080626190538]
+[don't bother with subscription hoohaw; just ask the user to do it
+Evan Prodromou <evan@controlezvous.ca>**20080626203103]
+[lost a couple of variables
+Evan Prodromou <evan@controlezvous.ca>**20080626203935]
+[new version number
+Evan Prodromou <evan@controlezvous.ca>**20080626205409] \ No newline at end of file
diff --git a/_darcs/inventories/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz b/_darcs/inventories/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz
new file mode 100644
index 000000000..2d511825b
--- /dev/null
+++ b/_darcs/inventories/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz
@@ -0,0 +1,95 @@
+Starting with tag:
+[TAG 0.3.5
+Evan Prodromou <evan@controlezvous.ca>**20080626205418]
+[limit rss streams to 100 items by default
+Evan Prodromou <evan@controlezvous.ca>**20080626213018]
+[better handling of too-long messages
+Evan Prodromou <evan@controlezvous.ca>**20080626214654]
+[add a bit of instructions
+Evan Prodromou <evan@controlezvous.ca>**20080626215204]
+[better formatting for notice instructions
+Evan Prodromou <evan@controlezvous.ca>**20080626215308]
+[better formatting for notice instructions
+Evan Prodromou <evan@controlezvous.ca>*-20080626215308]
+[take out the instructions
+Evan Prodromou <evan@controlezvous.ca>**20080626215525]
+[xhtml/xml and IE do not mix so well PITS # 00103
+matthew.gregg@gmail.com**20080623173043]
+[Missing quote in the conditional CSS for IE browsers. Fix for http://laconi.ca/PITS/00104
+matthew.gregg@gmail.com**20080624171305]
+[revert to common_user_error, which is what is used everywhere
+Evan Prodromou <evan@prodromou.name>**20080626225002]
+["subscribe" -> "add to buddy list"
+Evan Prodromou <evan@prodromou.name>**20080627143025]
+[add some classes to inputs
+Evan Prodromou <evan@prodromou.name>**20080627145553]
+[add a space between address and to
+Evan Prodromou <evan@prodromou.name>**20080627154825]
+[more natural date strings
+Evan Prodromou <evan@prodromou.name>**20080627222522]
+[show exact date when needed
+Evan Prodromou <evan@prodromou.name>**20080627222930]
+[822 -> 850
+Evan Prodromou <evan@prodromou.name>**20080627223439]
+[wasn't checking for notify flag
+Evan Prodromou <evan@prodromou.name>**20080630152415]
+[beef up the faq
+Evan Prodromou <evan@prodromou.name>**20080630161024]
+[add FAQ to foot menu
+Evan Prodromou <evan@prodromou.name>**20080630161201]
+[add FAQ rewrite
+Evan Prodromou <evan@prodromou.name>**20080630161304]
+[add some documentation on the IM stuff
+Evan Prodromou <evan@prodromou.name>**20080630164341]
+[refactor common behaviour in settings pages
+Evan Prodromou <evan@prodromou.name>**20080630170342]
+[move markdown require to common
+Evan Prodromou <evan@prodromou.name>**20080630170545]
+[return instructions
+Evan Prodromou <evan@prodromou.name>**20080630170653]
+[link for im
+Evan Prodromou <evan@prodromou.name>**20080630171317]
+[change remote subscribe to link
+Evan Prodromou <evan@prodromou.name>**20080630195032]
+[fixup code in showstream
+Evan Prodromou <evan@prodromou.name>**20080630195139]
+[fixup formatting on remotesubscribe link
+Evan Prodromou <evan@prodromou.name>**20080701155442]
+[class -> id
+Evan Prodromou <evan@prodromou.name>**20080701155651]
+[remove formatting for profile_url
+Evan Prodromou <evan@prodromou.name>**20080701155809]
+[add instructions to remotesubscribe
+Evan Prodromou <evan@prodromou.name>**20080701163705]
+[fancy url for remote subscribe
+Evan Prodromou <evan@prodromou.name>**20080701164058]
+[add documentation for OpenMicroBlogging
+Evan Prodromou <evan@prodromou.name>**20080701165717]
+[fix link in doc/openmublog
+Evan Prodromou <evan@prodromou.name>**20080701165927]
+[make help doc an index to other documents
+Evan Prodromou <evan@prodromou.name>**20080701170521]
+[add OpenID documentation
+Evan Prodromou <evan@prodromou.name>**20080701172429]
+[formatting in OpenID documentation
+Evan Prodromou <evan@prodromou.name>**20080701172904]
+[add more contact information
+Evan Prodromou <evan@prodromou.name>**20080701175611]
+[basic help in help page
+Evan Prodromou <evan@prodromou.name>**20080701180205]
+[better instructions for login
+Evan Prodromou <evan@prodromou.name>**20080701180611]
+[Char counter for notice update text area. http://laconi.ca/PITS/00094
+matthew.gregg@gmail.com**20080624174613
+
+ Added a util.js and this uses JQuery.
+
+]
+[Removed some DOM lookups in the char counter
+matthew.gregg@gmail.com**20080625125847]
+[Fix for space being added to notice form
+matthew.gregg@gmail.com**20080625142131]
+[rationalize with mgs version
+Evan Prodromou <evan@prodromou.name>**20080701182758]
+[run the counter once at page load time
+Evan Prodromou <evan@prodromou.name>**20080701183016] \ No newline at end of file
diff --git a/_darcs/inventories/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz b/_darcs/inventories/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz
new file mode 100644
index 000000000..879a8b5b1
--- /dev/null
+++ b/_darcs/inventories/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz
@@ -0,0 +1,3 @@
+Starting with tag:
+[TAG 0.4.0
+Evan Prodromou <evan@controlezvous.ca>**20080701185244] \ No newline at end of file
diff --git a/_darcs/inventories/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz b/_darcs/inventories/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz
new file mode 100644
index 000000000..f937f3676
--- /dev/null
+++ b/_darcs/inventories/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz
@@ -0,0 +1,9 @@
+Starting with tag:
+[TAG 0.4.0
+Evan Prodromou <evan@controlezvous.ca>**20080701185302]
+[change version number
+Evan Prodromou <evan@controlezvous.ca>**20080701185305
+
+ Update the version number.
+
+] \ No newline at end of file
diff --git a/_darcs/inventories/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz b/_darcs/inventories/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz
new file mode 100644
index 000000000..f291d5762
--- /dev/null
+++ b/_darcs/inventories/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz
@@ -0,0 +1,13 @@
+Starting with tag:
+[TAG 0.4.0
+Evan Prodromou <evan@controlezvous.ca>**20080701185323]
+[fix rememberme checkboxes on login, register
+Evan Prodromou <evan@prodromou.name>**20080702125457]
+[full end element, no space in textarea
+Evan Prodromou <evan@prodromou.name>**20080702130029]
+[method="POST" to method="post"
+Evan Prodromou <evan@prodromou.name>**20080702131507]
+[show current tab correctly on settings menu
+Evan Prodromou <evan@prodromou.name>**20080702131911]
+[bump the version number
+Evan Prodromou <evan@controlezvous.ca>**20080702183839] \ No newline at end of file
diff --git a/_darcs/inventories/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz b/_darcs/inventories/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz
new file mode 100644
index 000000000..d6adad512
--- /dev/null
+++ b/_darcs/inventories/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz
@@ -0,0 +1,83 @@
+Starting with tag:
+[TAG 0.4.1
+Evan Prodromou <evan@controlezvous.ca>**20080702183853]
+[invert title and content in rss action
+Evan Prodromou <evan@prodromou.name>**20080702214011]
+[update using a config'd server
+Evan Prodromou <evan@controlezvous.ca>**20080703165043]
+[add a display url function to display URLs
+Evan Prodromou <evan@prodromou.name>**20080703170347]
+[add a queued notice item
+Evan Prodromou <evan@prodromou.name>**20080704040746]
+[enqueue notices for offline broadcast
+Evan Prodromou <evan@prodromou.name>**20080704050425]
+[a couple of things to make queue items work
+Evan Prodromou <evan@controlezvous.ca>**20080704052240]
+[info about stuff getting queued
+Evan Prodromou <evan@prodromou.name>**20080704053846]
+[some logging for queues
+Evan Prodromou <evan@prodromou.name>**20080704055259]
+[don't worry about old claims
+Evan Prodromou <evan@prodromou.name>**20080704060213]
+[log some errors for missed inserts
+Evan Prodromou <evan@prodromou.name>**20080704062056]
+[problem with dates in db error
+Evan Prodromou <evan@controlezvous.ca>**20080704071726]
+[don't treat notice_id like a sequence
+Evan Prodromou <evan@prodromou.name>**20080704082418]
+[better notices on commands and errors
+Evan Prodromou <evan@prodromou.name>**20080704201716]
+[Validate action parameter
+Gina Haeussge <osd@foosel.net>**20080704194114
+
+ Make sure the action request parameter only consists of a-z, A-Z, 0-9, _ or -
+ to discourage tampering with the following require_once.
+]
+[spaces on avatars
+Evan Prodromou <evan@prodromou.name>**20080704210954]
+[fix galleries
+Evan Prodromou <evan@prodromou.name>**20080704221336]
+[a little more error-checking in the queuedaemon
+Evan Prodromou <evan@prodromou.name>**20080705002207]
+[error notices
+Evan Prodromou <evan@prodromou.name>**20080705005602]
+[nickname in profile, member since in profile
+Evan Prodromou <evan@prodromou.name>**20080705064303]
+[move member since to statistics
+Evan Prodromou <evan@prodromou.name>**20080705064618]
+[debugging code for rm
+Evan Prodromou <evan@prodromou.name>**20080705161602]
+[better debugging
+Evan Prodromou <evan@prodromou.name>**20080705161801]
+[rememberme debugging
+Evan Prodromou <evan@prodromou.name>**20080705162142]
+[move queuedaemon into xmppdaemon
+Evan Prodromou <evan@prodromou.name>**20080705172837]
+[fix checkbox width
+Test Server 1 <test1@dev.controlezvous.ca>**20080627171700]
+[some whitespace differences
+Test Server 1 <test1@dev.controlezvous.ca>**20080703124652]
+[change to use SVN version of XMPPHP
+Evan Prodromou <evan@dev.controlezvous.ca>**20080705174045]
+[don't use old inarow variable
+Evan Prodromou <evan@prodromou.name>**20080705183955]
+[use method instead of now-protected attribute for xmpp
+Evan Prodromou <evan@prodromou.name>**20080705184729]
+[if not a POST, redirect to subscriptions
+Evan Prodromou <evan@prodromou.name>**20080705213637]
+[add queueing variables to confirm_address
+Evan Prodromou <evan@prodromou.name>**20080706031234]
+[optionally queue jabber confirmations
+Evan Prodromou <evan@prodromou.name>**20080706035707]
+[restrict confirmations in queue to jabber addresses
+Evan Prodromou <evan@prodromou.name>**20080706035838]
+[broadcast directly from xmpp daemon
+Evan Prodromou <evan@boursin.controlezvous.ca>**20080704072909]
+[fixup disconnected to use method
+Evan Prodromou <evan@boursin.controlezvous.ca>**20080705202412]
+[debugging on the live server
+Evan Prodromou <evan@boursin.controlezvous.ca>**20080706061437]
+[enable confirmation queue
+Evan Prodromou <evan@dev.controlezvous.ca>**20080706071319]
+[fixes on bourdin for confirm claims
+Evan Prodromou <evan@boursin.controlezvous.ca>**20080706090309] \ No newline at end of file
diff --git a/_darcs/inventories/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz b/_darcs/inventories/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz
new file mode 100644
index 000000000..a54e6bc20
--- /dev/null
+++ b/_darcs/inventories/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz
@@ -0,0 +1,225 @@
+Starting with tag:
+[TAG 0.4.2
+Evan Prodromou <evan@prodromou.name>**20080706173453]
+[don't double-escape bio
+Evan Prodromou <evan@prodromou.name>**20080706210809]
+[prefer, barely, text/html to application/xhtml+xml
+Evan Prodromou <evan@prodromou.name>**20080706220020]
+[First pass at replies support http://laconi.ca/PITS/00080
+matthew.gregg@gmail.com**20080623030837
+
+ Doesn't handle a reply to a user that has never updated.
+]
+[fixup conflicts
+Evan Prodromou <evan@prodromou.name>**20080706221758]
+[some twiddles in the db for replies, plus the class
+Evan Prodromou <evan@prodromou.name>**20080706223839]
+[add replies fancy url and include Reply class
+Evan Prodromou <evan@prodromou.name>**20080707032348]
+[twiddle a few bits to make replies work correctly
+Evan Prodromou <evan@prodromou.name>**20080707054358]
+[added a script for adding old replies in
+Evan Prodromou <evan@prodromou.name>**20080707055428]
+[default for datetime in common_relative_profile
+Evan Prodromou <evan@prodromou.name>**20080707060733]
+[use db error logger for common_save_replies
+Evan Prodromou <evan@prodromou.name>**20080707061639]
+[fix constant in common_db_log_error
+Evan Prodromou <evan@prodromou.name>**20080707061912]
+[check for profile
+Evan Prodromou <evan@prodromou.name>**20080707062347]
+[check to see the reply_for worked
+Evan Prodromou <evan@prodromou.name>**20080707062618]
+[created -> modified in Reply
+Evan Prodromou <evan@prodromou.name>**20080707063731]
+[consolidate show_notice and show_reply
+Evan Prodromou <evan@prodromou.name>**20080707064155]
+[change reply info
+Evan Prodromou <evan@prodromou.name>**20080707064430]
+[show replies
+Evan Prodromou <evan@prodromou.name>**20080707064607]
+[use DB_DataObject join
+Evan Prodromou <evan@prodromou.name>**20080707070545]
+[use DB_DataObject join
+Evan Prodromou <evan@prodromou.name>*-20080707070545]
+[add repliesrss
+Evan Prodromou <evan@prodromou.name>**20080707072454]
+[add in the notice form
+Evan Prodromou <evan@prodromou.name>**20080707072545]
+[shorter replies rss
+Evan Prodromou <evan@prodromou.name>**20080707072754]
+[fancy url for replies rss
+Evan Prodromou <evan@prodromou.name>**20080707073025]
+[better error reporting
+Evan Prodromou <evan@prodromou.name>**20080707074434]
+[don't try to do date relative
+Evan Prodromou <evan@prodromou.name>**20080707074755]
+[mcdoyon changes to design on dev server
+Test Server 1 <test1@dev.controlezvous.ca>**20080707173224
+
+ Marie-Claude did some changes to the design on the dev server.
+
+]
+[get rid of one-pixel border on subscriptions
+Evan Prodromou <evan@prodromou.name>**20080707181150]
+[add authorship block to OMB spec
+Evan Prodromou <evan@prodromou.name>**20080707234033]
+[autosubscribe for jabber
+Evan Prodromou <evan@prodromou.name>**20080707234050]
+[autoreply
+Evan Prodromou <evan@prodromou.name>**20080708003055]
+[ignore old password if no old password
+Evan Prodromou <evan@prodromou.name>**20080708041210]
+[more debug output for rememberme cookies
+Evan Prodromou <evan@prodromou.name>**20080708064241]
+[space in title
+Evan Prodromou <evan@controlezvous.ca>**20080705064900]
+[debugging info for queueing notices
+Evan Prodromou <evan@controlezvous.ca>**20080704083216]
+[debugging info for queueing notices
+Evan Prodromou <evan@controlezvous.ca>*-20080704083216]
+[take out queuing debugging
+Evan Prodromou <evan@controlezvous.ca>**20080708070457]
+[don't do an end tag for empty elements
+Evan Prodromou <evan@prodromou.name>**20080708233218]
+[don't call text if you don't mean it
+Evan Prodromou <evan@prodromou.name>**20080708235004]
+[p.instructions -> div.instructions
+Evan Prodromou <evan@prodromou.name>**20080709002242]
+[notice -> permalink in notices
+Evan Prodromou <evan@prodromou.name>**20080709004349]
+[name of form on remote subscribe changed
+Evan Prodromou <evan@prodromou.name>**20080709005342]
+[better description of what happens when changing settings
+Evan Prodromou <evan@prodromou.name>**20080709050022]
+[some debug stuff for remember me
+Evan Prodromou <evan@prodromou.name>**20080709051943]
+[don't refetch user objects so much
+Evan Prodromou <evan@prodromou.name>**20080709055343]
+[login -> reenter
+Evan Prodromou <evan@prodromou.name>**20080709060928]
+[reword, leave out the OpenID part
+Evan Prodromou <evan@prodromou.name>**20080709061118]
+[forgot to change null check at beginning of set user
+Evan Prodromou <evan@prodromou.name>**20080709062502]
+[replybutton.darc
+mike@ice2o.com**20080708112016
+
+ Add a simple reply button to notices
+]
+[fixup required XMPP library
+Evan Prodromou <evan@prodromou.name>**20080709070012]
+[fallback to newnotice on reply button, new button with mouseover
+Evan Prodromou <evan@prodromou.name>**20080709071439]
+[return false
+Evan Prodromou <evan@prodromou.name>**20080709072244]
+[try another tack
+Evan Prodromou <evan@prodromou.name>**20080709072429]
+[accept replyto for fancy newnotice URL
+Evan Prodromou <evan@prodromou.name>**20080709072833]
+[format replyto name correctly
+Evan Prodromou <evan@prodromou.name>**20080709072953]
+[remove replybutton formatting
+Evan Prodromou <evan@prodromou.name>**20080709073159]
+[remove current notice code which doesn't seem to do anything
+Evan Prodromou <evan@prodromou.name>**20080709073305]
+[better arrow
+Evan Prodromou <evan@prodromou.name>**20080709075045]
+[move some things around
+Evan Prodromou <evan@prodromou.name>**20080709080110]
+[move again
+Evan Prodromou <evan@prodromou.name>**20080709080206]
+[remove version number from OMB spec
+Evan Prodromou <evan@prodromou.name>**20080709183833]
+[changes to database
+Evan Prodromou <evan@prodromou.name>**20080709193810]
+[store rendered content on save; display pre-rendered content
+Evan Prodromou <evan@prodromou.name>**20080709195238]
+[rebuild DB_DataObject classes for new structure
+Evan Prodromou <evan@prodromou.name>**20080709200711]
+[wording change in comment
+Evan Prodromou <evan@prodromou.name>**20080709200750]
+[reply_to is now stored on the notice, not on the reply record
+Evan Prodromou <evan@prodromou.name>**20080709202346]
+[store replies on the notice record, not the reply record
+Evan Prodromou <evan@prodromou.name>**20080709202716]
+[show reply_to for notices in profile stream
+Evan Prodromou <evan@prodromou.name>**20080709203237]
+[use getCurrentNotice() on profile page
+Evan Prodromou <evan@prodromou.name>**20080709203831]
+[use rendered text in profile page stream
+Evan Prodromou <evan@prodromou.name>**20080709203910]
+[don't record a reply_to for responses to self
+Evan Prodromou <evan@prodromou.name>**20080709203925]
+[wrong comparison operator for saving reply to self
+Evan Prodromou <evan@prodromou.name>**20080709204050]
+[defaults for argument functions
+Evan Prodromou <evan@prodromou.name>**20080709214433]
+[first pass at people search
+Evan Prodromou <evan@prodromou.name>**20080709214455]
+[missing comma in people search
+Evan Prodromou <evan@prodromou.name>**20080709214659]
+[move end of form element
+Evan Prodromou <evan@prodromou.name>**20080709214713]
+[common_start_element -> common_element_start
+Evan Prodromou <evan@prodromou.name>**20080709214821]
+[ignore case when highlighting
+Evan Prodromou <evan@prodromou.name>**20080709215011]
+[show p.error when there are no results.
+Evan Prodromou <evan@prodromou.name>**20080709215632]
+[change formatting of search output
+Evan Prodromou <evan@prodromou.name>**20080709220045]
+[add some CSS for the people lists
+Evan Prodromou <evan@prodromou.name>**20080709220446]
+[don't inline p's in the people list
+Evan Prodromou <evan@prodromou.name>**20080709220656]
+[list of profiles
+Evan Prodromou <evan@prodromou.name>**20080709220856]
+[fixup end tag in login (not used, maybe later)
+Evan Prodromou <evan@prodromou.name>**20080709221735]
+[add instructions to people search
+Evan Prodromou <evan@prodromou.name>**20080709221754]
+[remove hr -- CSS takes care of it
+Evan Prodromou <evan@prodromou.name>**20080709221826]
+[add fancy urls for search
+Evan Prodromou <evan@prodromou.name>**20080709223144]
+[fix syntax errors in URL builder
+Evan Prodromou <evan@prodromou.name>**20080709223409]
+[use smarter query builder
+Evan Prodromou <evan@prodromou.name>**20080709223701]
+[try some scoping
+Evan Prodromou <evan@prodromou.name>**20080709223803]
+[better instructions
+Evan Prodromou <evan@prodromou.name>**20080709223910]
+[highlight homepage in search results
+Evan Prodromou <evan@prodromou.name>**20080709225929]
+[specialchars() text in search results
+Evan Prodromou <evan@prodromou.name>**20080709225942]
+[first pass at a notice search
+Evan Prodromou <evan@prodromou.name>**20080709230017]
+[refactor common code between searches and between search and settings
+Evan Prodromou <evan@prodromou.name>**20080709231031]
+[require search action lib in search actions
+Evan Prodromou <evan@prodromou.name>**20080709231217]
+[some debug code to find a problem with terms
+Evan Prodromou <evan@prodromou.name>**20080709231503]
+[found missing second term
+Evan Prodromou <evan@prodromou.name>**20080709231539]
+[better highlighting in URL
+Evan Prodromou <evan@prodromou.name>**20080709231638]
+[missing second argument
+Evan Prodromou <evan@prodromou.name>**20080709231821]
+[change some parens
+Evan Prodromou <evan@prodromou.name>**20080709231948]
+[correct class for ul
+Evan Prodromou <evan@prodromou.name>**20080709232350]
+[add notice search rss ("tracking")
+Evan Prodromou <evan@prodromou.name>**20080709234228]
+[order search rss items by date desc
+Evan Prodromou <evan@prodromou.name>**20080710032835]
+[mc's changes on test1
+Test Server 1 <test1@dev.controlezvous.ca>**20080710032953]
+[add both my and mc's stuff to the display.css
+Evan Prodromou <evan@prodromou.name>**20080710033108]
+[update version number
+Evan Prodromou <evan@prodromou.name>**20080710042324] \ No newline at end of file
diff --git a/_darcs/inventories/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz b/_darcs/inventories/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz
new file mode 100644
index 000000000..706b09986
--- /dev/null
+++ b/_darcs/inventories/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz
@@ -0,0 +1,5 @@
+Starting with tag:
+[TAG 0.4.3
+Evan Prodromou <evan@prodromou.name>**20080710042333]
+[lost a closing tag in peoplesearch
+Evan Prodromou <evan@prodromou.name>**20080710042930] \ No newline at end of file
diff --git a/_darcs/inventories/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz b/_darcs/inventories/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz
new file mode 100644
index 000000000..869958326
--- /dev/null
+++ b/_darcs/inventories/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz
@@ -0,0 +1,414 @@
+Starting with tag:
+[TAG 0.4.3
+Evan Prodromou <evan@prodromou.name>**20080710045454]
+[don't auto-pull OpenID parameters
+Evan Prodromou <evan@prodromou.name>**20080710151842]
+[bug in userbyid
+Evan Prodromou <evan@prodromou.name>**20080711042022]
+[get avatar by nickname
+Evan Prodromou <evan@prodromou.name>**20080711060045
+
+ This is to support third-party apps that want to build an URL to an
+ avatar given a user's name.
+
+]
+[add 'avatar' to blacklisted names
+Evan Prodromou <evan@prodromou.name>**20080711171113]
+[better error checking in shownotice
+Evan Prodromou <evan@prodromou.name>**20080711171345]
+[check for error, not success!
+Evan Prodromou <evan@prodromou.name>**20080712051738]
+[Log msgs can now go to a file as well as syslog
+zach@copley.name**20080711070021]
+[add the logfile entry to common, a little recoding in common_log
+Evan Prodromou <evan@prodromou.name>**20080712151521]
+[Convert _t() to _() for gettext.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080708094531
+
+
+]
+[Remove tralling whitespace on lines and a gettext replacement that I missed.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080708095113
+
+]
+[Translate a few more strings.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080708100519]
+[bracket in the wrong place
+Mike Cochrane <mikec@mikenz.geek.nz>**20080708130408]
+[Merge conflicts and kill a whole lot of trailing whitespace on lines.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080709224630]
+[Resolve conflicts and convert _t( to _( where it was introduced again.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080710045126]
+[Resolve conflict properly
+Mike Cochrane <mikec@mikenz.geek.nz>**20080710045942]
+[Bracket in correct place
+Mike Cochrane <mikec@mikenz.geek.nz>**20080710050202]
+[Missing sprintf
+Mike Cochrane <mikec@mikenz.geek.nz>**20080710050459]
+[More _t( to _( and sprintfs in new code
+Mike Cochrane <mikec@mikenz.geek.nz>**20080710051035]
+[Trailing whitespace on lines
+Mike Cochrane <mikec@mikenz.geek.nz>**20080710051201]
+[Missed one _t
+Mike Cochrane <mikec@mikenz.geek.nz>**20080710051331]
+[Stop after a redirect. Fixed remote subscription for me.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080710055726]
+[Convert more _t s to _
+Mike Cochrane <mikec@mikenz.geek.nz>**20080712115300]
+[Error I made merging a diff
+Mike Cochrane <mikec@mikenz.geek.nz>**20080712123942]
+[try to show zeroes in statistics
+Evan Prodromou <evan@prodromou.name>**20080712200909]
+[fixup name sent in subject of confirmation email
+Evan Prodromou <evan@prodromou.name>**20080712202017]
+[lost the site name, and moved everything into sprintf of gettext
+Evan Prodromou <evan@prodromou.name>**20080712202903]
+[reformat mail again
+Evan Prodromou <evan@prodromou.name>**20080712204923]
+[format string, again
+Evan Prodromou <evan@prodromou.name>**20080712205220]
+[change search forms to get (PITS 00248)
+Evan Prodromou <evan@prodromou.name>**20080712214610]
+[multibyte counter
+drry <drry@drry.jp>**20080708090418
+ #00179
+]
+[check type, not value, of counts
+Evan Prodromou <evan@prodromou.name>**20080713003932]
+[first pass at a sitemap generator
+Evan Prodromou <evan@prodromou.name>**20080713004936]
+[twiddle some parens in imsettings for gettext
+Evan Prodromou <evan@prodromou.name>**20080713130112]
+[restore enhanced login instructions, lost in gettext() switchover
+Evan Prodromou <evan@prodromou.name>**20080713151004]
+[little lost hash
+Evan Prodromou <evan@prodromou.name>**20080713151035]
+[Fixed non openid registration
+Mike Cochrane <mikec@mikenz.geek.nz>**20080713024754]
+[Sort notices on the public page where they were posted in the same second
+Mike Cochrane <mikec@mikenz.geek.nz>**20080713042238]
+[Merge some gettext strings to one line so translation tools are happier
+Mike Cochrane <mikec@mikenz.geek.nz>**20080713044608]
+[Colapse a lot of strings to make like easier for translators and more consisitant for users
+Mike Cochrane <mikec@mikenz.geek.nz>**20080713053748]
+[locale/laconica.pot can be used as a translation template to translate loconica.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080713060055
+
+ I have added an en_NZ translation which has a few of the spelling differences that we have down here.
+
+ Until a language interface is created add something like:
+ /* Set locale */
+ setlocale(LC_ALL, 'en_NZ');
+ bindtextdomain("laconica", './locale');
+ textdomain("laconica");
+
+ to index.php to allow you to test your new locale. I used http://www.poedit.net/ to edit the locale. Also see http://nz2.php.net/manual/en/function.setlocale.php#82288 is you're having issues getting you locale to work on linux.
+
+
+]
+[Sort notices by date then id so they are in the correct order when there are multiple in the same second
+Mike Cochrane <mikec@mikenz.geek.nz>**20080713065009]
+[conflict resolution after pulling from mikenz
+Evan Prodromou <evan@prodromou.name>**20080713215601]
+[remove dataobject.ini
+Evan Prodromou <evan@prodromou.name>**20080713220114
+
+ This is a useful file for development but not for deployment. Deleting
+ it so people don't use it on production servers.
+
+]
+[remove old file from themes dir
+Evan Prodromou <evan@prodromou.name>**20080713222006]
+[remove old index file
+Evan Prodromou <evan@prodromou.name>**20080713222056]
+[fixing IM message, AGAIN
+Evan Prodromou <evan@prodromou.name>**20080714022055]
+[extra space in link
+Evan Prodromou <evan@prodromou.name>**20080714060517]
+[add handle_session()
+Evan Prodromou <evan@prodromou.name>**20080714124733]
+[utility for getting avatar or default avatar
+Evan Prodromou <evan@prodromou.name>**20080714034443]
+[add extra Twitter cruft to jabber messages
+Evan Prodromou <evan@prodromou.name>**20080714034503]
+[make broadcast send notice with extra Twitter cruft
+Evan Prodromou <evan@prodromou.name>**20080714034647]
+[forgot to send a null for subject in XMPP message
+Evan Prodromou <evan@prodromou.name>**20080714043459]
+[get the msg to format
+Evan Prodromou <evan@prodromou.name>**20080714044153]
+[debugging changes on development server
+Evan Prodromou <evan@dev.controlezvous.ca>**20080714140209]
+[encode special chars in atom payload
+Evan Prodromou <evan@prodromou.name>**20080714143042]
+[build stanza ourselves, without library
+Evan Prodromou <evan@prodromou.name>**20080715033711]
+[work around probs with XMPPHP library
+Evan Prodromou <evan@prodromou.name>**20080715190519]
+[replies from people you're not subscribed to over Jabber
+Evan Prodromou <evan@prodromou.name>**20080715195513]
+[more info at registration time, better message when you're finished
+Evan Prodromou <evan@prodromou.name>**20080715213202]
+[fix checkbox for license
+Evan Prodromou <evan@prodromou.name>**20080715214249]
+[better formatting in registration results
+Evan Prodromou <evan@prodromou.name>**20080715214612]
+[more formatting for registration success
+Evan Prodromou <evan@prodromou.name>**20080715214934]
+[maybe an extra \n will help my formatting
+Evan Prodromou <evan@prodromou.name>**20080715215407]
+[one more linefeed
+Evan Prodromou <evan@prodromou.name>**20080715215556]
+[remove email settings from profile settings ahead of having its own tab
+Evan Prodromou <evan@prodromou.name>**20080715220144]
+[move email settings to its own tab
+Evan Prodromou <evan@prodromou.name>**20080715221826]
+[unique key on a boolean value is not scalable
+Evan Prodromou <evan@prodromou.name>**20080715221946]
+[rebuild classes based on DB change
+Evan Prodromou <evan@prodromou.name>**20080715222026]
+[bad class name in emailsettings
+Evan Prodromou <evan@prodromou.name>**20080715222342]
+[correct name for common_canonical_email
+Evan Prodromou <evan@prodromou.name>**20080715222554]
+[confirm address
+Evan Prodromou <evan@prodromou.name>**20080715223149]
+[Take full path for index file, not just name; change any "hourly" changefreqs to "daily"; add small function for W3C timestamps.
+Earle Martin <earle@downlode.org>**20080714000833]
+[Include user name in item titles for RSS aggregator users.
+Earle Martin <earle@downlode.org>**20080714153859]
+[Add SIOC data to global RSS feed.
+Earle Martin <earle@downlode.org>**20080714191328]
+[Don't capture trailing ")", "]" or ">" as part of URLs
+Earle Martin <earle@downlode.org>**20080715022045]
+[only loop through the list if there's a list
+Evan Prodromou <evan@dev.controlezvous.ca>**20080716004414]
+[PITS.00114: 'T USERNAME' should work like an @-link
+erik@erikstambaugh.com**20080709010415]
+[add alternative reply format
+Evan Prodromou <evan@prodromou.name>**20080716025842]
+[got the args to array unshift backwards
+Evan Prodromou <evan@prodromou.name>**20080716030022]
+[back out my change to the link format; see if it helps
+Evan Prodromou <evan@prodromou.name>**20080716030200]
+[more array munging
+Evan Prodromou <evan@prodromou.name>**20080716031346]
+[lcase tname
+Evan Prodromou <evan@prodromou.name>**20080716031459]
+[yet more array munging
+Evan Prodromou <evan@prodromou.name>**20080716031544]
+[sigh
+Evan Prodromou <evan@prodromou.name>**20080716031718]
+[Update laconica.pot with latest strings
+Mike Cochrane <mikec@mikenz.geek.nz>**20080714091337]
+[The first translation of laconica, fr_FR translation from Florian Biree <florian at biree.name>. Thanks :-)
+Mike Cochrane <mikec@mikenz.geek.nz>**20080714091448
+
+
+ To test locales add code like this to your index.php:
+
+ /* Set locale */
+ setlocale(LC_ALL, 'fr_FR');
+ bindtextdomain("laconica", './locale');
+ bind_textdomain_codeset("laconica", 'UTF-8');
+ textdomain("laconica");
+
+ UI coming soon from someone else for changing your language.
+
+
+]
+[Fixup rememberme cookie handling in the POST only case
+Dave Barry <dave@psax.org>**20080714050037]
+[lost else
+Evan Prodromou <evan@prodromou.name>**20080716053532]
+[error handler in xmppdaemon
+Evan Prodromou <evan@prodromou.name>**20080716054932]
+[add some warnings and stuff
+Evan Prodromou <evan@prodromou.name>**20080716061933]
+[bad default for email on command-line systems
+Evan Prodromou <evan@boursin.controlezvous.ca>**20080716055326]
+[slightly better error handling
+Evan Prodromou <evan@boursin.controlezvous.ca>**20080716064736]
+[better formatting on custom error
+Evan Prodromou <evan@prodromou.name>**20080716134408]
+[slight code hygiene for rssaction
+Evan Prodromou <evan@prodromou.name>**20080716152009
+
+ I moved the $creators array from being a global variable to being an
+ instance variable.
+
+ I also changed the URL that was used for the user, based on whether
+ they're a remote or local user.
+
+ Finally, I changed instances of $config to calls to common_config().
+
+]
+[utility function for getting a profile URI
+Evan Prodromou <evan@prodromou.name>**20080716152511
+
+ I added a utility function for getting a profile URI. At some point we
+ need to push commonalities between Remote_profile and User into the
+ Profile class; single-table inheritance. We do a lot of switching
+ around for no good reason on users and profiles.
+
+]
+[use root url of site, not hard-coded identi.ca URL
+Evan Prodromou <evan@prodromou.name>**20080716152906]
+[creator_url => creator_uri
+Evan Prodromou <evan@prodromou.name>**20080716163339]
+[remove tag URI stuff; unused and confusing
+Evan Prodromou <evan@prodromou.name>**20080716205359]
+[default value for avatar server
+Evan Prodromou <evan@prodromou.name>**20080716205541]
+[theme server support
+Evan Prodromou <evan@prodromou.name>**20080716205947]
+[default timezone
+Evan Prodromou <evan@prodromou.name>**20080716210949]
+[no such user in replies.
+Evan Prodromou <evan@prodromou.name>**20080717124215]
+[add a description with the bio in it to HTML head
+Evan Prodromou <evan@prodromou.name>**20080717124719]
+[better log message for incoming presence
+Evan Prodromou <evan@prodromou.name>**20080717132452]
+[public indexers in config file
+Evan Prodromou <evan@prodromou.name>**20080717134331]
+[remove default priority from sitemaps
+Evan Prodromou <evan@prodromou.name>**20080717153657]
+[use common functions
+Evan Prodromou <evan@prodromou.name>**20080717155212
+
+ I used the common function for the avatar URL, in case there's an
+ avatar server.
+
+ I used the common W3C DTF function.
+
+]
+[remove unused call to undefined function
+Evan Prodromou <evan@prodromou.name>**20080717155438]
+[restrict avatars to certain sizes in SQL
+Evan Prodromou <evan@prodromou.name>**20080717160257]
+[avatar files never change
+Evan Prodromou <evan@prodromou.name>**20080717160531]
+[add rel=me to homepage link
+Evan Prodromou <evan@prodromou.name>**20080717163211]
+[define syslog variables in common.php
+Evan Prodromou <evan@prodromou.name>**20080717163613]
+[uniquify the list of reply nicknames (DOH!)
+Evan Prodromou <evan@prodromou.name>**20080717164042]
+[First volly at a Twitter-compatible API. Just working out the
+zach@copley.name**20080712081247
+ detials of 1) Basic Auth and 2) dispatch to the right Action class
+ files to handle the requests.
+
+ You can hit it with...
+
+ http://localhost/laconica/api/public_timeline.json
+
+ or to try Basic Auth you can try something like:
+
+ http://nickname:password@localhost/laconica/api/statuses/friends_timeline.xml
+
+ Although that actual method isn't done yet, so it should authenticate
+ and then complain.
+
+]
+[Comment changed to reflect reality
+zach@copley.name**20080713083853]
+[Second shot at figuring out action dispatch for Twitter-compatible API
+zach@copley.name**20080714080741]
+[Stubs for all Twitter-API methods
+zach@copley.name**20080714080949]
+[All Twitter-compatible API calls answer now
+zach@copley.name**20080714190300]
+[First Twitter-compat API call works! /api/help/test.format
+zach@copley.name**20080714202728]
+[Twitter-compatible API: /statuses/public_timeline.xml sorta works
+zach@copley.name**20080715031812]
+[Prepended 'Twit' to Twitter-compatible API actions (renamed action
+zach@copley.name**20080715043121
+ files) to make it more clear what the action files are for.
+]
+[Twitter-compatible API: public_timeline.xml more complete
+zach@copley.name**20080715065850]
+[Twitter-compatible API: refactor in prep for json, rss, and atom formats
+zach@copley.name**20080715234131]
+[Twitter-compatible API: public_timeline.json now works
+zach@copley.name**20080716060922]
+[Twitter-compatible API: public_timeline.rss mostly working
+zach@copley.name**20080716072124]
+[Twitter-compatible API: public_timeline.rss really works now
+zach@copley.name**20080716191847]
+[Twitter-compatible API: public_timeline.atom works
+zach@copley.name**20080716205218]
+[Twitter-compatible API - code cleanup
+zach@copley.name**20080716220223]
+[Twitter-compatible API: statuses/show/id.format now works
+zach@copley.name**20080716230047]
+[Twitter-compatible API - /statuses/show and /statuses/update now work
+zach@copley.name**20080717054411]
+[add friend statuses, refactor output functions
+Evan Prodromou <evan@prodromou.name>**20080717210519]
+[support id, user timeline
+Evan Prodromou <evan@prodromou.name>**20080717211942]
+[sprintf error
+Evan Prodromou <evan@prodromou.name>**20080717213214]
+[Twitter-API: /statuses/replies.format now works (mostly)
+zach@copley.name**20080717222845]
+[Twitter-compatible API /statuses/replies.format -- changed subtitle to be more like Twitter's
+zach@copley.name**20080717223521]
+[Twitter-compatible API: /statuses/user_timeline/argument.format now works
+zach@copley.name**20080718002131]
+[Twitter-compatible API - updated rewrite rules to support /statuses/user_timeline
+zach@copley.name**20080718002324]
+[Link author avatars to posts directly.
+Earle Martin <earle@downlode.org>**20080716183052]
+[hand-built links.ini
+Evan Prodromou <evan@prodromou.name>**20080718013444]
+[Twitter-compatible API: white listed user_timeline and show as per twitter
+zach@copley.name**20080718023334]
+[Twitter-compatible API - first crack at /statuses/followers.format
+zach@copley.name**20080718025554]
+[Twitter-API: /account/verify_credentials.format now works
+zach@copley.name**20080718040332]
+[move mail notification to a utility function
+Evan Prodromou <evan@prodromou.name>**20080718041231]
+[show friendship stuff
+Evan Prodromou <evan@prodromou.name>**20080718041323]
+[add nonce links
+Evan Prodromou <evan@prodromou.name>**20080718041549]
+[beware of shadows
+Evan Prodromou <evan@prodromou.name>**20080718041633]
+[null reference error
+Evan Prodromou <evan@prodromou.name>**20080718042030]
+[getting the id from the wrong place
+Evan Prodromou <evan@prodromou.name>**20080718042352]
+[start and end xml
+Evan Prodromou <evan@prodromou.name>**20080718042511]
+[init and end documents
+Evan Prodromou <evan@prodromou.name>**20080718043456]
+[when in doubt, start throwing transactions around
+Evan Prodromou <evan@prodromou.name>**20080718043735]
+[exit on error
+Evan Prodromou <evan@prodromou.name>**20080718044905]
+[add create stamp to subscription in api
+Evan Prodromou <evan@prodromou.name>**20080718045150]
+[change fetch to find in api
+Evan Prodromou <evan@prodromou.name>**20080718045204]
+[handle some more cases
+Evan Prodromou <evan@prodromou.name>**20080718050845]
+[add api data
+Evan Prodromou <evan@prodromou.name>**20080718051318]
+[forgot ending element for users
+Evan Prodromou <evan@prodromou.name>**20080718051404]
+[add argumented friends and followers to api
+Evan Prodromou <evan@prodromou.name>**20080718051841]
+[pages and limits
+Evan Prodromou <evan@prodromou.name>**20080718052557]
+[add an HTML payload to outgoing notices
+Evan Prodromou <evan@prodromou.name>**20080718063130]
+[forgot the user's name in HTML output
+Evan Prodromou <evan@prodromou.name>**20080718070252]
+[remove API from list of unimplemented features.
+Evan Prodromou <evan@prodromou.name>**20080718164120]
+[increment software version
+Evan Prodromou <evan@controlezvous.ca>**20080718164317] \ No newline at end of file
diff --git a/_darcs/inventories/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz b/_darcs/inventories/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz
new file mode 100644
index 000000000..192e98bbc
--- /dev/null
+++ b/_darcs/inventories/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz
@@ -0,0 +1,375 @@
+Starting with tag:
+[TAG 0.4.4
+Evan Prodromou <evan@controlezvous.ca>**20080718164332]
+[quote match terms
+Evan Prodromou <evan@prodromou.name>**20080718183534]
+[Twitter-compatible API - added missing double quotes to WWW-Authenticate header
+zach@copley.name**20080718185053]
+[LOG_ERROR -> LOG_ERR
+Evan Prodromou <evan@prodromou.name>**20080718190835]
+[add basic auth for user_timeline
+Evan Prodromou <evan@prodromou.name>**20080719154753]
+[try again with user_timeline auth
+Evan Prodromou <evan@prodromou.name>**20080719155526]
+[bare auth for friends, too
+Evan Prodromou <evan@prodromou.name>**20080719171023]
+[correct handling of bareauth
+Evan Prodromou <evan@prodromou.name>**20080719171605]
+[Update pot file
+Mike Cochrane <mikec@mikenz.geek.nz>**20080717235306]
+[Fix a couple of notice errors
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720023259]
+[Another notice error
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720023510]
+[A couple more notice errors
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720025546]
+[Some more notice errors - I guess I'm the only one developing with E_ALL
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720033236]
+[Don't highlight search terms inside url
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720033401]
+[Add hidden form value when the site is not in fancy mode so the action is not lost
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720040351]
+[mailer daemon start
+Evan Prodromou <evan@prodromou.name>**20080717132533]
+[some missing methods
+Evan Prodromou <evan@prodromou.name>**20080718180951]
+[fixup error
+Evan Prodromou <evan@prodromou.name>**20080718181612]
+[better error msg
+Evan Prodromou <evan@prodromou.name>**20080718185027]
+[LOG_ERROR => LOG_ERR in maildaemon
+Evan Prodromou <evan@prodromou.name>**20080718191019]
+[better type logic
+Evan Prodromou <evan@prodromou.name>**20080718202052]
+[pass type to error
+Evan Prodromou <evan@prodromou.name>**20080718202124]
+[add some logging
+Evan Prodromou <evan@prodromou.name>**20080718202702]
+[add a transport flag to queue items
+Evan Prodromou <evan@prodromou.name>**20080719140906]
+[use mailparse
+Evan Prodromou <evan@prodromou.name>**20080719142058]
+[email settings for post by email
+Evan Prodromou <evan@prodromou.name>**20080719202625]
+[save emailpost flag
+Evan Prodromou <evan@prodromou.name>**20080720053431]
+[first pass at list of SMS carriers for SMS-to-email gateway
+Evan Prodromou <evan@prodromou.name>**20080720053458]
+[start sms settings
+Evan Prodromou <evan@prodromou.name>**20080720193005]
+[wrong name for email settings action file
+Evan Prodromou <evan@prodromou.name>**20080720193132]
+[require sms carrier
+Evan Prodromou <evan@prodromou.name>**20080720193228]
+[confirmation for sms
+Evan Prodromou <evan@prodromou.name>**20080720193712]
+[add sms broadcast to broadcasting
+Evan Prodromou <evan@prodromou.name>**20080720195549]
+[clarify that charges may be exorbitant
+Evan Prodromou <evan@prodromou.name>**20080720195834]
+[bad string in SQL query
+Evan Prodromou <evan@prodromou.name>**20080720200039]
+[add autosubscribe flag to users
+Evan Prodromou <evan@prodromou.name>**20080720200530]
+[add autosubscribe
+Evan Prodromou <evan@prodromou.name>**20080720201620]
+[add autosubscribe to profile settings
+Evan Prodromou <evan@prodromou.name>**20080720202705]
+[too much merlot on the airplane, dumb syntax mistake
+Evan Prodromou <evan@prodromou.name>**20080720202832]
+[$true not the same as true
+Evan Prodromou <evan@prodromou.name>**20080720233308]
+[fixup autosubscribe save
+Evan Prodromou <evan@prodromou.name>**20080720233712]
+[shorter confirmation message and web iface to confirm
+Evan Prodromou <evan@prodromou.name>**20080721011128]
+[forgot to p
+Evan Prodromou <evan@prodromou.name>**20080721012301]
+[get the correct code
+Evan Prodromou <evan@prodromou.name>**20080721012405]
+[stop overwriting links.ini
+Evan Prodromou <evan@prodromou.name>**20080721035853]
+[add sms email address to user
+Evan Prodromou <evan@prodromou.name>**20080721035919]
+[add flag for sms replies
+Evan Prodromou <evan@prodromou.name>**20080721040551]
+[use user field rather than re-building sms email over and over
+Evan Prodromou <evan@prodromou.name>**20080721040614]
+[use smsemail stored value
+Evan Prodromou <evan@prodromou.name>**20080721042302]
+[trim mail and maildaemon
+Evan Prodromou <evan@prodromou.name>**20080721042333]
+[scrub mail content a bit more
+Evan Prodromou <evan@prodromou.name>**20080721043734]
+[explode WHAT, again?
+Evan Prodromou <evan@prodromou.name>**20080721044015]
+[output with whitespace between lines
+Evan Prodromou <evan@prodromou.name>**20080721044135]
+[save changes to smsemail
+Evan Prodromou <evan@prodromou.name>**20080721044604]
+[multitype (???) -> multipart
+Evan Prodromou <evan@prodromou.name>**20080721045119]
+[some more scrubbing
+Evan Prodromou <evan@prodromou.name>**20080721050508]
+[rewrite for settings of sms
+Evan Prodromou <evan@prodromou.name>**20080721083758]
+[checkbox named wrong in sms settings
+Evan Prodromou <evan@prodromou.name>**20080721084801]
+[update keys for incomingemail
+Evan Prodromou <evan@prodromou.name>**20080721085641]
+[fix mail sending
+Evan Prodromou <evan@prodromou.name>**20080721090819]
+[SQL error
+Evan Prodromou <evan@prodromou.name>**20080721091854]
+[logging and checking
+Evan Prodromou <evan@prodromou.name>**20080721092813]
+[do the sms query the dumb way
+Evan Prodromou <evan@prodromou.name>**20080721093401]
+[return true from mail sms broadcast
+Evan Prodromou <evan@prodromou.name>**20080721093457]
+[maildaemon enqueues
+Evan Prodromou <evan@prodromou.name>**20080721133337]
+[Twitter-compatible API: /account/update_location implemented
+zach@copley.name**20080720044756]
+[Twitter-compatible API - Error handling that better matches Twitter's
+zach@copley.name**20080720070905]
+[Twitter-compatible API - refactoring and bug fixes
+zach@copley.name**20080720083428]
+[Twitter-compatible API: /friendship/exists always failed - fixed!
+zach@copley.name**20080720083948]
+[Twitter-compatible API: /help/test was emmitting dupe elements. Fixed.
+zach@copley.name**20080721091702]
+[better confirm cancel
+Evan Prodromou <evan@prodromou.name>**20080721162434]
+[correct values for hidden fields
+Evan Prodromou <evan@prodromou.name>**20080721162857]
+[mark notices as local
+Evan Prodromou <evan@prodromou.name>**20080722141614]
+[mark incoming notices as local or not
+Evan Prodromou <evan@prodromou.name>**20080722141828]
+[public timeline only gets local notices
+Evan Prodromou <evan@prodromou.name>**20080722142050]
+[every user is subscribed to themselves
+Evan Prodromou <evan@prodromou.name>**20080722144154]
+[centralize and optimize with-friends query
+Evan Prodromou <evan@prodromou.name>**20080722160213]
+[blow off DB_DataObject joins, write SQL from scratch
+Evan Prodromou <evan@prodromou.name>**20080722161549]
+[whitespace in SQL
+Evan Prodromou <evan@prodromou.name>**20080722161712]
+[another whitespace SQL error
+Evan Prodromou <evan@prodromou.name>**20080722161752]
+[notices and counts
+Evan Prodromou <evan@prodromou.name>**20080722162332]
+[don't get a count from query
+Evan Prodromou <evan@prodromou.name>**20080722163116]
+[don't get a count anywhere
+Evan Prodromou <evan@prodromou.name>**20080722163200]
+[hide magic self subscription
+Evan Prodromou <evan@prodromou.name>**20080722163511]
+[fix content check so it shows zeros
+Evan Prodromou <evan@prodromou.name>**20080722163618]
+[correctly return 0 for zero followers
+Evan Prodromou <evan@prodromou.name>**20080722164129]
+[add notice sources (currently unused)
+Evan Prodromou <evan@prodromou.name>**20080722164639]
+[lost the nickname changing from profile to user
+Evan Prodromou <evan@prodromou.name>**20080722173613]
+[Twitter-compatible API - location_update was spitting out the wrong profile. Fixed.
+zach@copley.name**20080721174438]
+[Added is_readonly() method to all Actions
+zach@copley.name**20080722171501]
+[Twitter-compatible API: made is_readonly() method smarter
+zach@copley.name**20080722182919]
+[base class is_readonly() now returns false by default
+zach@copley.name**20080722212056]
+[use a random mirror
+Evan Prodromou <evan@prodromou.name>**20080724171213]
+[default for mirror in DB
+Evan Prodromou <evan@prodromou.name>**20080724205456]
+[ensure that there's a session before redirecting the user
+Evan Prodromou <evan@prodromou.name>**20080724231833]
+[let admins prevent registration
+Evan Prodromou <evan@prodromou.name>**20080724235508]
+[don't show register link if the site is closed
+Evan Prodromou <evan@prodromou.name>**20080724235804]
+[add local flag for stuff posted over the API
+Evan Prodromou <evan@prodromou.name>**20080727023516]
+[four key SMS providers had ' (SMS)' appended to their patterns
+Evan Prodromou <evan@prodromou.name>**20080729032845]
+[Fixed location of bracket for gettext.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080713053033]
+[Resolve conflict
+Mike Cochrane <mikec@mikenz.geek.nz>**20080714025853]
+[More notice errors and fix and incorrect variable name
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720055558]
+[First cut at hastags support.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720055702]
+[Missing ini settings for notice_tag table
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720080801]
+[Add rewrite rules for tags
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720081021]
+[Add tag action
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720081838]
+[Set constant to propper value, not debug value
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720082641]
+[Update of the fr_FR translation
+florian@biree.name**20080719162355]
+[Added notice deletion http://laconi.ca/PITS/00045
+matthew.gregg@gmail.com**20080716032045
+
+ Removes selected notice and any replies that reference it.
+ Attempts to de-queue anything pending.
+
+ This patch does not archive notices.
+]
+[Patch for PITS 00032, 00033, 00034
+matthew.gregg@gmail.com**20080719003417]
+[Adds Opensearch description
+matthew.gregg@gmail.com**20080720015823]
+[Sort tags by highest frequency then most recent
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720094832]
+[Notice error
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720094917]
+[Clean up of delete links when not logged in
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720094954]
+[Update for langauge column
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720095651]
+[Fix undefined variable error
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720100024]
+[Regenerate class file for language column
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720100253]
+[Fullname is in the profile, not the user object
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720101553]
+[Add rel="contact" to subscription on profile page. http://laconi.ca/PITS/00275
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720101947]
+[gettext strings and pass the query string between tabs http://laconi.ca/PITS/00231
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720105659]
+[Block access to .ini files http://laconi.ca/PITS/00240
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720112032]
+[Explicitly set the character set on the handle column to fix http://laconi.ca/PITS/00262
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720113458]
+[Fix errors from delete code when viewing a user's profile while not logged in.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720122715]
+[Strip characters that shouldn't be in xml. Fixes http://laconi.ca/PITS/00253 for future messages, or all after a regeneration of rendered messages
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720122832]
+[Clean up delete code. Add missing htaccess rule. Exit after errors so the code doesn't continue running.
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720124552]
+[User definable timezones. Work in UTC internally and display per user/site default. http://laconi.ca/PITS/00011
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720141325]
+[Locate examples in config
+Mike Cochrane <mikec@mikenz.geek.nz>**20080720141543]
+[Opensearch updates
+matthew.gregg@gmail.com**20080720195505
+
+ This adds htaccess and searches for people and notices.
+
+]
+[Get text wrappers around strings so they can be in the native language of the site and use fancy urls if appropriate
+mikec@mikenz.geek.nz**20080721090110]
+[Publish MicroIDs for email and mpp on profile and notice pages.
+mikec@mikenz.geek.nz**20080721120036]
+[Changse to ini file that I always forget to record
+Mike Cochrane <mikec@mikenz.geek.nz>**20080721123243]
+[Update POT file
+Mike Cochrane <mikec@mikenz.geek.nz>**20080721123519]
+[Resolve conflicts after pull from evan
+mikec@mikenz.geek.nz**20080721135637]
+[Add error file and line to the xmppdaemon error handler
+Mike Cochrane <mikec@mikenz.geek.nz>**20080722064607]
+[Add vodafone New Zealand
+Mike Cochrane <mikec@mikenz.geek.nz>**20080722082526]
+[Only try sending xmpp notices if xmpp is enabled
+Mike Cochrane <mikec@mikenz.geek.nz>**20080722082653]
+[Only Set reply details if there is something to reply to
+Mike Cochrane <mikec@mikenz.geek.nz>**20080722082724]
+[No errors if it's not set
+Mike Cochrane <mikec@mikenz.geek.nz>**20080722082840]
+[Add SMS mail config to sample config
+Mike Cochrane <mikec@mikenz.geek.nz>**20080722100828]
+[Resolve conflicts
+Mike Cochrane <mikec@mikenz.geek.nz>**20080722205315]
+[Index on the correct column
+Mike Cochrane <mikec@mikenz.geek.nz>**20080722205335]
+[Lazy/Auto load the class files as needed
+Mike Cochrane <mikec@mikenz.geek.nz>**20080724234533]
+[Correct variable name
+Mike Cochrane <mikec@mikenz.geek.nz>**20080724234601]
+[Cache the DateTimeZon objects
+Mike Cochrane <mikec@mikenz.geek.nz>**20080724234619]
+[Auto/Lazy load the class files
+Mike Cochrane <mikec@mikenz.geek.nz>**20080724234701]
+[Queue_item correct name in dequeue function
+Evan Prodromou <evan@prodromou.name>**20080726033958]
+[change 'deletenotice' to 'notice/delete'
+Evan Prodromou <evan@prodromou.name>**20080726034209]
+[require validation code
+Evan Prodromou <evan@prodromou.name>**20080729025156]
+[Orange (UK) for carriers
+Evan Prodromou <evan@prodromou.name>**20080729182534]
+[rel=tag for hashtags
+Evan Prodromou <evan@prodromou.name>**20080729182558]
+[force re-render on all notices whether or not they're already rendered
+Evan Prodromou <evan@prodromou.name>**20080729183154]
+[change tag output to a tag cloud
+Evan Prodromou <evan@prodromou.name>**20080729193533]
+[show the weight in output (for my own edification)
+Evan Prodromou <evan@prodromou.name>**20080729194246]
+[relative info, too
+Evan Prodromou <evan@prodromou.name>**20080729194457]
+[if-else instead of ?:
+Evan Prodromou <evan@prodromou.name>**20080729194735]
+[change relative names to percentages in font sizes
+Evan Prodromou <evan@prodromou.name>**20080729195055]
+[fix css selector
+Evan Prodromou <evan@prodromou.name>**20080729195204]
+[shift some font sizes around
+Evan Prodromou <evan@prodromou.name>**20080729195307]
+[justify the tag cloud
+Evan Prodromou <evan@prodromou.name>**20080729195405]
+[justify -> center
+Evan Prodromou <evan@prodromou.name>**20080729195512]
+[refactor notice-adding code to one static method on Notice
+Evan Prodromou <evan@prodromou.name>**20080730022856]
+[save the source
+Evan Prodromou <evan@prodromou.name>**20080730025052]
+[remember to broadcast in api, and also use the right ID
+Evan Prodromou <evan@prodromou.name>**20080730030012]
+[show where a notice came from
+Evan Prodromou <evan@prodromou.name>**20080730032651]
+[fallback for unknown source
+Evan Prodromou <evan@prodromou.name>**20080730032918]
+[new -> staticGet
+Evan Prodromou <evan@prodromou.name>**20080730033304]
+[use a little X instead of "delete" for delete link, right after arrow
+Evan Prodromou <evan@prodromou.name>**20080730033804]
+[show the right stuff on profile page, too
+Evan Prodromou <evan@prodromou.name>**20080730033939]
+[move the language info, fix dir for locales
+Evan Prodromou <evan@prodromou.name>**20080730035446]
+[output on fixup_hashtags
+Evan Prodromou <evan@prodromou.name>**20080730191753]
+[Twitter-compatible API: better error handling for replier_by_reply()
+zach@copley.name**20080728230221]
+[Update some gettext strings and number the arguements so life is easier for translators
+Mike Cochrane <mikec@mikenz.geek.nz>**20080729080641]
+[Resolve conflicts
+Mike Cochrane <mikec@mikenz.geek.nz>**20080731004922]
+[Twitter-compatible API: implemented /users/show.format method
+zach@copley.name**20080730213226
+ (and some API bug fixes)
+]
+[let @rejon do the homework http://ur1.ca/17c
+Evan Prodromou <evan@prodromou.name>**20080731020433]
+[try to slim down the top menu so it all fits
+Evan Prodromou <evan@prodromou.name>**20080731020933]
+[Envoyer -> Poster
+Evan Prodromou <evan@dev.controlezvous.ca>**20080731031652]
+[Poster -> Envoi (coding by microblog, probably a first)
+Evan Prodromou <evan@prodromou.name>**20080731033641]
+[change the font sizes in the tag cloud
+Evan Prodromou <evan@prodromou.name>**20080731040703]
+[ksort() the tags list
+Evan Prodromou <evan@prodromou.name>**20080731041000]
+[version upgrade
+Evan Prodromou <evan@controlezvous.ca>**20080731050632] \ No newline at end of file
diff --git a/_darcs/inventories/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz b/_darcs/inventories/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz
new file mode 100644
index 000000000..da247966a
--- /dev/null
+++ b/_darcs/inventories/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz
@@ -0,0 +1,869 @@
+Starting with tag:
+[TAG 0.5.0
+Evan Prodromou <evan@controlezvous.ca>**20080731050646]
+[add edo's tagcloud code
+Evan Prodromou <evan@prodromou.name>**20080731132302]
+[extend length of source for notices
+Evan Prodromou <evan@prodromou.name>**20080731152731]
+[added conneg for action/userbyid so that foaf can be delivered to clients that want application/rdf+xml
+ehs@pobox.com**20080801164623]
+[update .pot from source code
+Evan Prodromou <evan@prodromou.name>**20080803232102]
+[change no-such-user error to a 404 instead of a 400
+Evan Prodromou <evan@prodromou.name>**20080804132001]
+[use an outstanding unconfirmed email address for password recovery if available
+Evan Prodromou <evan@prodromou.name>**20080804130914]
+[better handling of unconfirmed email addresses
+Evan Prodromou <evan@prodromou.name>**20080804133253]
+[use noreply address as fallback if no incoming email address exists
+Evan Prodromou <evan@prodromou.name>**20080804133933]
+[add commands to turn sms notification on and off
+Evan Prodromou <evan@prodromou.name>**20080804190749]
+[ignore OTR messages over Jabber (I think)
+Evan Prodromou <evan@prodromou.name>**20080806002134]
+[make init of lang environment happen earlier, or when user language may have changed
+Evan Prodromou <evan@prodromou.name>**20080806034515]
+[Set the C locate to avoid tr_TR php bug see http://www.topolis.lt/php/#35050
+mikec@mikenz.geek.nz**20080804133727]
+[Add other languages to drop down
+Mike Cochrane <mikec@mikenz.geek.nz>**20080805020520]
+[fixup locale stuff from mikenz
+Evan Prodromou <evan@prodromou.name>**20080806040433]
+[fix config global
+Evan Prodromou <evan@prodromou.name>**20080806122119]
+[update French translation with msgmerge
+Evan Prodromou <evan@prodromou.name>**20080806161748]
+[LOG_ERROR -> LOG_ERR (again)
+Evan Prodromou <evan@prodromou.name>**20080807234227]
+[emergency fixup for bad notices in notice search
+Evan Prodromou <evan@prodromou.name>**20080811175318]
+[make tag dropoff configurable
+Evan Prodromou <evan@prodromou.name>**20080811175820]
+[Twitter-compatible API - /statuses/update.format now decodes HTML chars, such as &amp;
+zach@copley.name**20080731224911]
+[Twitter-compatible API: filled in the source attr for notices accessed via API
+zach@copley.name**20080809001240]
+[fix problem with new notices
+Evan Prodromou <evan@prodromou.name>**20080811181158]
+[correct sitemapindex output
+Evan Prodromou <evan@prodromou.name>**20080811200058]
+[fix some errors in sitemaps
+Evan Prodromou <evan@prodromou.name>**20080812011600
+
+ Only show notices that don't have a remote URL. That should include
+ only local notices.
+
+ Also, don't do an avatar sitemap; apparently nobody indexes these
+ anyways.
+
+]
+[correctly show URL for rare notice without an URI
+Evan Prodromou <evan@prodromou.name>**20080812121832]
+[get rid of dataobject.ini -- again
+Evan Prodromou <evan@prodromou.name>**20080813180239]
+[auto-load OAuthRequest
+Evan Prodromou <evan@prodromou.name>**20080813195408]
+[move user registration to a single static method
+Evan Prodromou <evan@prodromou.name>**20080814002038]
+[Twitter-compatible API: removed redundant decoding step; already taken care of by util.php's common_render_content()
+zach@copley.name**20080813193327]
+[Twitter-compatible API: support for new in_reply_to_status_id in statuses/update
+zach@copley.name**20080815185317]
+[name omb_listener param so we can refer to it in error msg
+Evan Prodromou <evan@prodromou.name>**20080816151057]
+[make settings and search menus localisable
+Evan Prodromou <evan@prodromou.name>**20080817150244]
+[move command-line scripts to their own dir
+Evan Prodromou <evan@prodromou.name>**20080813154603]
+[accept 140-character UTF-8 strings to content
+Evan Prodromou <evan@prodromou.name>**20080817151751]
+[debug for content too long
+Evan Prodromou <evan@prodromou.name>**20080817152419]
+[use UTF-8 as the internal encoding
+Evan Prodromou <evan@prodromou.name>**20080817153024]
+[remove hack to count bytes, not chars, in JS, since we now use chars
+Evan Prodromou <evan@prodromou.name>**20080817153143]
+[typo in forgotten password string
+Evan Prodromou <evan@prodromou.name>**20080817163324]
+[accept 140 chars in API, too
+Evan Prodromou <evan@prodromou.name>**20080817192710]
+[use mb_substr for xmpp daemon check
+Evan Prodromou <evan@prodromou.name>**20080818025549]
+[first step towards adding favorites to the system
+Evan Prodromou <evan@prodromou.name>**20080813142637]
+[Database uses UTF-8 by default
+Evan Prodromou <evan@prodromou.name>**20080817151728]
+[restore fave table lost when doing utf8 upgrade
+Evan Prodromou <evan@prodromou.name>**20080817152108]
+[trim whitespace in laconica.sql
+Evan Prodromou <evan@prodromou.name>**20080817152133]
+[set internal encoding in XMPP daemon
+Evan Prodromou <evan@prodromou.name>**20080818033049]
+[broadcast remote notices
+Evan Prodromou <evan@prodromou.name>**20080819182724]
+[add remote flag to broadcast of notices
+Evan Prodromou <evan@prodromou.name>**20080819182824]
+[add database tables for foreign services
+Evan Prodromou <evan@prodromou.name>**20080819221214]
+[Twitter-compatible API - running all strings through gettext() now
+zach@controlyourself.ca**20080819002903]
+[Twitter-compatible API - moved show() to the right file
+zach@controlyourself.ca**20080819003931]
+[Twitter-compatible API - /statuses/destroy method implemented
+zach@controlyourself.ca**20080819194610]
+[Twitter-compatible API - Added /statuses/followers to methods that
+zach@controlyourself.ca**20080819195431
+ require bareauth only if no nickname/id is supplied.
+]
+[Twitter-compatible API - /statuses/show - better err msg if notice doesn't exist
+zach@controlyourself.ca**20080819202318]
+[Twitter-compatible API - RESTfulness checks as per Twitter
+zach@controlyourself.ca**20080819214923]
+[add Cincinnati Bell Wireless
+Evan Prodromou <evan@prodromou.name>**20080821125306]
+[include external libs in a subdir to make install easier
+Evan Prodromou <evan@prodromou.name>**20080822131714]
+[local-only is optional on public timeline
+Evan Prodromou <evan@prodromou.name>**20080822210307]
+[add note to config.php.sample about localonly
+Evan Prodromou <evan@prodromou.name>**20080822210415]
+[fix include path bug
+Evan Prodromou <evan@prodromou.name>**20080822210654]
+[better error reporting in user authorization action
+Evan Prodromou <evan@prodromou.name>**20080822212111]
+[XMPP bounce message when too long (ticket #112)
+CiaranG <ciaran@ciarang.com>**20080818213031]
+[Fix bug in xmpp on/off (ticket #528)
+CiaranG <ciaran@ciarang.com>**20080819071321]
+[Define xmpp daemon claim timeout time
+CiaranG <ciaran@ciarang.com>**20080822185955]
+[XMPP sub/unsub and help commands
+CiaranG <ciaran@ciarang.com>**20080822191032]
+[Fixed attempt to read nonexistent match in JID regex
+CiaranG <ciaran@ciarang.com>**20080822191751]
+[Escape profile url in xmpp in case fancy urls off (Ticket #521)
+CiaranG <ciaran@ciarang.com>**20080823052534]
+[Prevent jabber.php error by checking key exists
+CiaranG <ciaran@ciarang.com>**20080823053548]
+[request token is not readonly
+Evan Prodromou <evan@prodromou.name>**20080824011706]
+[be a little more liberal for sites that accidentally put whitespace before the xml decl
+Evan Prodromou <evan@prodromou.name>**20080824013803]
+[move README to main dir
+Evan Prodromou <evan@prodromou.name>**20080824113719]
+[big scarygram warning in config.php.sample about using DB_DataObject's debug mode
+Evan Prodromou <evan@prodromou.name>**20080824171202]
+[notify user of remote subscriptions
+Evan Prodromou <evan@prodromou.name>**20080824200517]
+[use mb_strlen instead of strlen in xmpp daemon
+Evan Prodromou <evan@prodromou.name>**20080825173105]
+[use common_sql_now() instead of DB_DataObject_Cast
+Evan Prodromou <evan@prodromou.name>**20080825182338]
+[change DataObject_Cast to use sql_now
+Evan Prodromou <evan@prodromou.name>**20080825183005]
+[use better SQL date, fix security problem with OpenID logins
+Evan Prodromou <evan@prodromou.name>**20080825184104]
+[never allow blank passwords
+Evan Prodromou <evan@prodromou.name>**20080825185245]
+[optionally turn encryption on or off in the XMPP connection
+Evan Prodromou <evan@prodromou.name>**20080826131814
+
+ For identi.ca, we had some problems with the XMPP daemon getting
+ "stuck" in I/O through the encrypted (by default) XMPP socket. Turning
+ off encryption helped. So, now it's an option.
+
+]
+[only send local messages to public XMPP stream
+Evan Prodromou <evan@prodromou.name>**20080826205341]
+[use notice URI if it's not local and it's an HTTP URL
+Evan Prodromou <evan@prodromou.name>**20080826210314]
+[fix error storing uris of remote notices
+Evan Prodromou <evan@prodromou.name>**20080826211108]
+[import upstream XMPPHP with @ciarang's fix
+Evan Prodromou <evan@prodromou.name>**20080827124430]
+[fixup whitespace
+Evan Prodromou <evan@prodromou.name>**20080827131603]
+[don't show unknown (debug) errors
+Evan Prodromou <evan@prodromou.name>**20080827132346]
+[XMPP daemon that doesn't eat messages - note change to XMPPHP as well (Ticket #551)
+CiaranG <ciaran@ciarang.com>**20080826200057]
+[restoring upstream XMLStream.php after pulling ciarang's patch
+Evan Prodromou <evan@prodromou.name>**20080827133048]
+[add back in a session start handler
+Evan Prodromou <evan@prodromou.name>**20080827135422]
+[don't do too many broadcasts or confirms before checking the message queue
+Evan Prodromou <evan@prodromou.name>**20080827142336]
+[get language before setting it.
+Evan Prodromou <evan@prodromou.name>**20080828005323]
+[add session token check to password change
+Evan Prodromou <evan@prodromou.name>**20080829014515]
+[code for session token
+Evan Prodromou <evan@prodromou.name>**20080829015304]
+[fix random function name
+Evan Prodromou <evan@prodromou.name>**20080829021854]
+[return after failed token
+Evan Prodromou <evan@prodromou.name>**20080829023731]
+[add CSRF protection to avatar
+Evan Prodromou <evan@prodromou.name>**20080829023919]
+[CSRF protection in deletenotice
+Evan Prodromou <evan@prodromou.name>**20080829025127]
+[show error in delete notice
+Evan Prodromou <evan@prodromou.name>**20080829025559]
+[add a token for CSRF avoidance
+Evan Prodromou <evan@prodromou.name>**20080829034854]
+[CSRF protection for OpenID form
+Evan Prodromou <evan@prodromou.name>**20080829035934]
+[swap around some stuff to show the form correctly on a CSRF error in openidlogin
+Evan Prodromou <evan@prodromou.name>**20080829040925]
+[CSRF protection in openidsettings
+Evan Prodromou <evan@prodromou.name>**20080829042908]
+[add csrf protection to profile settings
+Evan Prodromou <evan@prodromou.name>**20080829043909]
+[CSRF protection in smssettings.php
+Zach Copley <zach@controlyourself.ca>**20080829035118]
+[CSRF protection in imsettings.php
+Zach Copley <zach@controlyourself.ca>**20080829035707]
+[CSRF protection for subscription/unsubscription
+Evan Prodromou <evan@prodromou.name>**20080829051104]
+[better client error on CSRF problem with subscribe/unsubscribe
+Evan Prodromou <evan@prodromou.name>**20080829051628]
+[csrf protection in userauthorization
+Evan Prodromou <evan@prodromou.name>**20080829052732]
+[session token in userauthorization form
+Evan Prodromou <evan@prodromou.name>**20080829052847]
+[CSRF protection in recoverpassword
+Zach Copley <zach@controlyourself.ca>**20080829052824]
+[CSRF protection in user registration
+Evan Prodromou <evan@prodromou.name>**20080829054017]
+[CSRF protection in emailsettings
+Zach Copley <zach@controlyourself.ca>**20080829053337]
+[CSRF protection in remotesubscribe
+Zach Copley <zach@controlyourself.ca>**20080829054038]
+[clean up username entered at login
+Evan Prodromou <evan@prodromou.name>**20080829225258]
+[break up monolithic xmppdaemon into multiple queue handlers
+Evan Prodromou <evan@prodromou.name>**20080827205407
+
+ Eventually, the poor xmppdaemon has become overloaded with extra
+ tasks. So, I've broken it up. Now, we have 5 background scripts, and
+ more coming:
+
+ * xmppdaemon.php - handles incoming XMPP messages only.
+ * xmppqueuehandler.php - sends notices from the queue out through XMPP.
+ * smsqueuehandler.php - sends notices from the queue out over SMS
+ * ombqueuehandler.php - sends notices from the queue out over OMB
+ * xmppconfirmhandler.php - sends confirmation requests out over XMPP.
+
+ This is in addition to maildaemon.php, which takes incoming messages.
+
+ None of these are "true" daemons -- they don't daemonize themselves
+ automatically. Use nohup or another tool to background them. monit can
+ also be useful to keep them running.
+
+ At some point, these might become fork()'ing daemons, able to handle
+ more than one notice at a time. For now, I'm just running multiple
+ instances, hoping they don't interfere.
+
+]
+[remove unimplemented methods from XmppDaemon
+Evan Prodromou <evan@prodromou.name>**20080827210429]
+[change queue_item to use a compound primary key
+Evan Prodromou <evan@prodromou.name>**20080827211239
+
+ Breaking up to use multiple queue handlers means we need multiple
+ queue items for the same notice. So, change the queue_item table to
+ have a compound pkey, (notice_id,transport).
+
+]
+[got two lines reversed
+Evan Prodromou <evan@prodromou.name>**20080827211940]
+[change return in queue function
+Evan Prodromou <evan@dev.controlezvous.ca>**20080828001414]
+[correct presence in jabber function
+Evan Prodromou <evan@prodromou.name>**20080828001936]
+[don't clear claims immediately
+Evan Prodromou <evan@prodromou.name>**20080828002610]
+[correct return values from start() in queue handlers
+Evan Prodromou <evan@prodromou.name>**20080828003013]
+[extend QueueHandler
+Evan Prodromou <evan@prodromou.name>**20080828003829]
+[XmppQueueHandler extends QueueHandler too
+Evan Prodromou <evan@prodromou.name>**20080828004224]
+[$this->log to common_log in Queue_item
+Evan Prodromou <evan@prodromou.name>**20080828004503]
+[return correct values for success in handling messages
+Evan Prodromou <evan@prodromou.name>**20080828011002]
+[misprint of omb as oms
+Evan Prodromou <evan@prodromou.name>**20080828012619]
+[return results of broadcasting by sms
+Evan Prodromou <evan@prodromou.name>**20080828012635]
+[add a bash script to start all the daemons
+Evan Prodromou <evan@prodromou.name>**20080828134856]
+[add a script to stop daemons, too
+Evan Prodromou <evan@prodromou.name>**20080828135011]
+[harmonize csrf and queues
+Evan Prodromou <evan@prodromou.name>**20080829174012]
+[split public stream to its own queue handler
+Evan Prodromou <evan@prodromou.name>**20080829181702
+
+ Add another queue handler for the public stream. Should further
+ parallelize the work of sending out messages.
+
+]
+[fix name of instantiated class
+Evan Prodromou <evan@prodromou.name>**20080829182112]
+[a little more robust confirm handler
+Evan Prodromou <evan@prodromou.name>**20080829182349]
+[many jabber queue management changes
+Evan Prodromou <evan@prodromou.name>**20080829200352
+
+ Added a method to QueueManager to let subclasses do stuff when idle.
+ Needed so that XMPP queue manager can service its message queue.
+
+ Cleaned up jabber_broadcast_message quite a bit. Use custom joins
+ instead of loop-and-query, should fix some problems with users who are
+ getting messages even after turning off notification. Only build $msg
+ and $entry once, and use the XMPPHP function for messages with a
+ payload, rather than rolling our own.
+
+]
+[lost $sent_to in jabber_public_notice
+Evan Prodromou <evan@prodromou.name>**20080829200859]
+[strip script ending from end of xmppdaemon
+Evan Prodromou <evan@prodromou.name>**20080829202613]
+[add 'raw' to payload to allow getting to the raw xml
+Evan Prodromou <evan@prodromou.name>**20080830000314]
+[forward messages from queuehandler to listener
+Evan Prodromou <evan@prodromou.name>**20080830040717
+
+ The queuehandler sends messages to the user. If the user replies, the
+ messages are typically sent directly to the queuehandler (including
+ resource), not the default bot JID.
+
+ We add a little code for the xmppqueuehandler to periodically service
+ its queue of received messages. Received messages are forwarded to the
+ listener to deal with. We use XEP 33, 'addresses', to note the
+ original sender.
+
+ The xmppdaemon checks to see if the 'from' on a message is the daemon
+ address. If so, it looks for a XEP 33 'addresses' stanza, with an
+ 'ofrom' address, which shows who it was originally is from.
+
+ This should let us send from one resource ID and still process
+ incoming messages in a different connection.
+
+]
+[strtolower jids for comparison
+Evan Prodromou <evan@prodromou.name>**20080830052143]
+[typo preventing detection of addresses
+Evan Prodromou <evan@prodromou.name>**20080830052810]
+[use common log in error handler rather than echo
+Evan Prodromou <evan@prodromou.name>**20080830053052]
+[log transport when claiming a notice
+Evan Prodromou <evan@prodromou.name>**20080830054933]
+[better logging in ombqueuehandler
+Evan Prodromou <evan@prodromou.name>**20080830055416]
+[get address from addresses
+Evan Prodromou <evan@prodromou.name>**20080830055640]
+[better debugging output for forwarded messages
+Evan Prodromou <evan@prodromou.name>**20080830055938]
+[debug xml input
+Evan Prodromou <evan@prodromou.name>**20080830060732]
+[log fetch
+Evan Prodromou <evan@prodromou.name>**20080830062246]
+[correctly use attrs array rather than nonexistent attunction
+Evan Prodromou <evan@prodromou.name>**20080830062744]
+[less sleeping, slightly
+Evan Prodromou <evan@prodromou.name>**20080830064431]
+[don't clear old claims
+Evan Prodromou <evan@prodromou.name>**20080830070135]
+[require mail for sms, not omb
+Evan Prodromou <evan@prodromou.name>**20080830070309]
+[sms handler was handling omb wrongly
+Evan Prodromou <evan@prodromou.name>**20080830071007]
+[forgot to get the profile in public queue handler
+Evan Prodromou <evan@prodromou.name>**20080830071232]
+[some fixes from on the jabber server
+evan@controlezvous.ca**20080830083502]
+[get rid of Laconica_XMPP and ignore priority
+Evan Prodromou <evan@prodromou.name>**20080830084423]
+[check for self in forwards, too
+Evan Prodromou <evan@prodromou.name>**20080830085607]
+[eliminate loops in forwarding
+Evan Prodromou <evan@prodromou.name>**20080830090148]
+[make XMPP take a priority for presence
+Evan Prodromou <evan@prodromou.name>**20080830091430]
+[use priority in connection
+Evan Prodromou <evan@prodromou.name>**20080830091522]
+[forgot to use the array for avoiding dupes
+Evan Prodromou <evan@prodromou.name>**20080830094252]
+[check the state of the queue before diving in to process it
+Evan Prodromou <evan@prodromou.name>**20080830095709]
+[better check for ready state on connection
+Evan Prodromou <evan@prodromou.name>**20080830171441]
+[public queue handler and xmpp confirm handler service their message queues
+Evan Prodromou <evan@prodromou.name>**20080830172217]
+[add initialization info to the queue handlers
+Evan Prodromou <evan@prodromou.name>**20080831020325]
+[add some sanity-check stuff for long-running daemons
+Evan Prodromou <evan@prodromou.name>**20080831023844]
+[halt sending HTML in Jabber
+Evan Prodromou <evan@prodromou.name>**20080831114642]
+[separate out presence from connection, send different presence types from queuehandlers
+Evan Prodromou <evan@prodromou.name>**20080902012604]
+[slightly more robust connection code
+Evan Prodromou <evan@prodromou.name>**20080902030331]
+[restore HTML in output, remove rump pubsub event code
+Evan Prodromou <evan@prodromou.name>**20080902030403]
+[dnd -> available, just looks bad as dns
+Evan Prodromou <evan@prodromou.name>**20080902030910]
+[switch around how XMLStream does processing
+Evan Prodromou <evan@prodromou.name>**20080831003210]
+[debug logging in __process
+Evan Prodromou <evan@prodromou.name>**20080831012136]
+[floor
+Evan Prodromou <evan@prodromou.name>**20080831013132]
+[int div games
+Evan Prodromou <evan@prodromou.name>**20080831013603]
+[slightly better int math
+Evan Prodromou <evan@prodromou.name>**20080831014404]
+[use updated xmpphp library
+Evan Prodromou <evan@prodromou.name>**20080902163718]
+[add reconnect handlers to main XMPP-handling scripts
+Evan Prodromou <evan@prodromou.name>**20080902165319]
+[better connection handling in scripts
+Evan Prodromou <evan@prodromou.name>**20080902165735]
+[set the reconnect timeout
+Evan Prodromou <evan@prodromou.name>**20080902171740]
+[variable name conflict on reconnect
+Evan Prodromou <evan@prodromou.name>**20080902172039]
+[reconnect timeout
+Evan Prodromou <evan@prodromou.name>**20080902172256]
+[license block on util.js
+Evan Prodromou <evan@prodromou.name>**20080827013835]
+[try to make the reply button do the right thing if there's no notification box.
+Evan Prodromou <evan@prodromou.name>**20080827015010]
+[move broadcast in OMB postnotice for bad case
+Evan Prodromou <evan@prodromou.name>**20080828221420]
+[Tags_without_fancy
+Garret Buell <terragb@gmail.com>**20080831233401
+ Change common_tag_link to format the tag link based on the setting of $config['site']['fancy']
+]
+[Allow_multicase_tags
+Garret Buell <terragb@gmail.com>**20080901001241
+ Make "#test", "#Test", and "#tEsT" all preserve appearance but link to the same tag
+]
+[Elide_Tags
+Garret Buell <terragb@gmail.com>**20080901025932
+ Make "#sanfrancisco", "#SanFrancisco", "#san_francisco", "#San.Francisco", and "#SAN-FRANCISCO" all link to http://identi.ca/tag/sanfrancisco but preserve appearance
+]
+[RequirePassword
+Garret Buell <terragb@gmail.com>**20080830195036
+ Require a password with at least 6 characters when registering.
+]
+[Resolve remote subscribe and omb problems with quotes (Tickets #604 and #567)
+CiaranG <ciaran@ciarang.com>**20080904065504]
+[Fix typo in presence message (x3)
+CiaranG <ciaran@ciarang.com>**20080904081542]
+[Some Notice::saveNew cleanups.
+Ori Avtalion <ori@avtalion.name>**20080902173804
+ * No need to check $source's value before inserting
+ * No need to update the notice if the $uri was known in advance
+]
+[fix bad args in postnotice for new notices
+Evan Prodromou <evan@prodromou.name>**20080904195720]
+[Fix typo in finishremotesubscribe
+CiaranG <ciaran@ciarang.com>**20080904201921]
+[scripts daemonize themselves
+Evan Prodromou <evan@prodromou.name>**20080904184031]
+[add .pid to pidfile names
+Evan Prodromou <evan@prodromou.name>**20080904190254]
+[more robust code for setting daemon uid/gid
+Evan Prodromou <evan@prodromou.name>**20080904191031]
+[add newline at the end of pidfile
+Evan Prodromou <evan@prodromou.name>**20080904191517]
+[new format for startdaemons; not sure how to do stopdaemons so punting
+Evan Prodromou <evan@prodromou.name>**20080904192220]
+[better feedback when starting daemons
+Evan Prodromou <evan@prodromou.name>**20080904192851]
+[make confirmhandler a subclass of queuehandler
+Evan Prodromou <evan@prodromou.name>**20080904193118]
+[abstract XMPP-related queue handling to a common superclass
+Evan Prodromou <evan@prodromou.name>**20080904194035]
+[change xmppqueuedaemon to jabberqueuedaemon in startdaemons
+Evan Prodromou <evan@prodromou.name>**20080904194346]
+[require xmppqueuehandler in jabberqueuehandler
+Evan Prodromou <evan@prodromou.name>**20080904194456]
+[better logging for confirm handler update
+Evan Prodromou <evan@prodromou.name>**20080904203502]
+[add some processTime() to the send loops to avoid filling the buffer
+Evan Prodromou <evan@prodromou.name>**20080904213257]
+[better @ links
+Evan Prodromou <evan@prodromou.name>**20080904224129]
+[use a join for omb broadcast
+Evan Prodromou <evan@prodromou.name>**20080905004701]
+[change sms broadcast to use a join
+Evan Prodromou <evan@prodromou.name>**20080905022019]
+[return in the status textarea will submit the form
+Evan Prodromou <evan@prodromou.name>**20080905045415]
+[do submit on keydown
+Evan Prodromou <evan@prodromou.name>**20080905045736]
+[stop default handling of return in browser
+Evan Prodromou <evan@prodromou.name>**20080905050356]
+[set focus to status text area
+Evan Prodromou <evan@prodromou.name>**20080905050824]
+[free and unset DB_DataObjects after we're done with them
+Evan Prodromou <evan@prodromou.name>**20080906015501]
+[free memory in SMS daemon, too
+Evan Prodromou <evan@prodromou.name>**20080906015621]
+[debugging for omb
+Evan Prodromou <evan@prodromou.name>**20080907193402]
+[lots of debugging code in OMB send
+Evan Prodromou <evan@prodromou.name>**20080907195242]
+[remove some debugging code from omb.php
+Evan Prodromou <evan@prodromou.name>**20080907200344]
+[error checking in subscriptions
+Evan Prodromou <evan@prodromou.name>**20080908201020]
+[Disallow 'tag' and 'tags' as usernames. Fixes ticket #584
+Ori Avtalion <ori@avtalion.name>**20080905114534]
+[Fix for reply arrow in profile page
+Michael Landers <ez4u2sai@gmail.com>**20080905090848]
+[Fix confusing comment in config.sample.php (Ticket #616)
+CiaranG <ciaran@ciarang.com>**20080905162732]
+[add a sample RewriteBase
+Evan Prodromou <evan@prodromou.name>**20080910180050]
+[add a line for mail domain
+Evan Prodromou <evan@prodromou.name>**20080910154632]
+[update information about queues
+Evan Prodromou <evan@prodromou.name>**20080910154754]
+[reverse order of queries for galleries
+Evan Prodromou <evan@prodromou.name>**20080911144742]
+[LOG_ERROR -> LOG_ERR
+Evan Prodromou <evan@prodromou.name>**20080913161107]
+[duplicate confirmation to avoid where clause
+Evan Prodromou <evan@prodromou.name>**20080913164333]
+[only use MyISAM for tables with fulltext indices
+Evan Prodromou <evan@prodromou.name>**20080915053955]
+[cache noticesWithFriends in memcached
+Evan Prodromou <evan@prodromou.name>**20080915065616
+
+ noticesWithFriends is turning out to be one of our most expensive
+ queries. The join is costly, and this method is hit over and over and
+ over by desktop clients and other API users.
+
+ So, I've added a first pass at caching the results. I store a "window"
+ of notices -- equal to the first 3 pages of notices, plus one for
+ pagination -- in the memcached cache. If with-friends notices are
+ requests, I fetch the whole window out of the cache and grab the slice
+ requested. If the requested notices are outside the window, we just do
+ the query. If there's nothing in the cache, we request the window and
+ store it, then return a slice.
+
+ I had to add a NoticeWrapper class that works like DB_DataObject
+ (well, just the fetch() part...) but just holds an array of notices
+ instead of a DB cursor.
+
+ Finally, saving a new notice blows away the caches for subscribed users.
+
+]
+[$INSTALLDIR -> INSTALLDIR
+Evan Prodromou <evan@prodromou.name>**20080915070413]
+[array_count -> count
+Evan Prodromou <evan@prodromou.name>**20080915070951]
+[subscriptions clear user with-friends cache, too
+Evan Prodromou <evan@prodromou.name>**20080915071500]
+[compress window-getting to one function
+Evan Prodromou <evan@prodromou.name>**20080915071835]
+[misused instance attribute in noticewrapper
+Evan Prodromou <evan@prodromou.name>**20080915072553]
+[another attribute error
+Evan Prodromou <evan@prodromou.name>**20080915072738]
+[make NoticeWrapper extend Notice so methods work
+Evan Prodromou <evan@prodromou.name>**20080915073006]
+[fix cache deletion code
+Evan Prodromou <evan@prodromou.name>**20080915073215]
+[fixup SQL code
+Evan Prodromou <evan@prodromou.name>**20080915073412]
+[can actually take all the data in the window
+Evan Prodromou <evan@prodromou.name>**20080920174700]
+[blow subscriptions cache when the user deletes a notice
+Evan Prodromou <evan@prodromou.name>**20080920175339]
+[use common-config instead of $config in common_language
+Evan Prodromou <evan@prodromou.name>**20080922172631]
+[data classes for invitations
+Evan Prodromou <evan@prodromou.name>**20080823191015]
+[start the invite form
+Evan Prodromou <evan@prodromou.name>**20080825192946]
+[add invite to htaccess.sample
+Evan Prodromou <evan@prodromou.name>**20080825193149]
+[add invite to the nav menu
+Evan Prodromou <evan@prodromou.name>**20080825193235]
+[invite fancy url
+Evan Prodromou <evan@prodromou.name>**20080825193333]
+[fix the invite url
+Evan Prodromou <evan@prodromou.name>**20080825193450]
+[fix instructions
+Evan Prodromou <evan@prodromou.name>**20080825193738]
+[skip preview, just send the darn thing
+Evan Prodromou <evan@prodromou.name>**20080826021227]
+[added a created timestamp to invitations
+Evan Prodromou <evan@prodromou.name>**20080826023116]
+[clean up some whitespace in DB script
+Evan Prodromou <evan@prodromou.name>**20080826024015]
+[helper functions that take a user object
+Evan Prodromou <evan@prodromou.name>**20080827001348]
+[updates for invitations
+Evan Prodromou <evan@prodromou.name>**20080827001927
+
+ Add the code to registration to handle invitation codes.
+
+ Some edge cases on invitations: is the user already subbed to this
+ person? Tell them. Is the person already on the system? Sub the user
+ to them, then, and tell the user.
+
+ Add some code to User to auto-sub invitees whenever the email address
+ changes. Call it from a new registration with an invite code, and also
+ from confirmaddress.
+
+ Some whitespace cleanup in the files touched.
+
+]
+[correct output on invitations
+Evan Prodromou <evan@prodromou.name>**20080827003529]
+[save invitation code and improve format of outgoing mail
+Evan Prodromou <evan@prodromou.name>**20080827004410]
+[fix format for subject
+Evan Prodromou <evan@prodromou.name>**20080827004755]
+[fix runon string in invites format
+Evan Prodromou <evan@prodromou.name>**20080827004854]
+[send personal message through to send_invitation function
+Evan Prodromou <evan@prodromou.name>**20080827005155]
+[lost the names when making a new function send_invitation
+Evan Prodromou <evan@prodromou.name>**20080827005418]
+[fix format string, again again
+Evan Prodromou <evan@prodromou.name>**20080827010138]
+[Invite -> Invitation
+Evan Prodromou <evan@prodromou.name>**20080827010515]
+[removed the preview, so use "Send" for the button
+Evan Prodromou <evan@prodromou.name>**20080827011921]
+[add a foreign_link table with prefs for the link
+Evan Prodromou <evan@prodromou.name>**20080827032423]
+[update to translation
+Evan Prodromou <evan@prodromou.name>**20080827185817]
+[Bounce oversized XMPP messages back to user (Ticket #112)
+CiaranG <ciaran@ciarang.com>**20080814083856]
+[XMPP daemon updates including help, sub and subsub commands, plus subscribe/unsubcribe logic broken out into standalone module for sharing
+CiaranG <ciaran@ciarang.com>**20080816083422]
+[Added missing subs.php
+CiaranG <ciaran@ciarang.com>**20080816153917]
+[remove custom xmppdaemon error handler
+Evan Prodromou <evan@prodromou.name>**20080830162128]
+[merge in changes for CSRF, too
+Evan Prodromou <evan@prodromou.name>**20080830162223]
+[initial non-Ajax version of favorites
+Evan Prodromou <evan@prodromou.name>**20080908181624]
+[change input buttons to submit buttons
+Evan Prodromou <evan@prodromou.name>**20080908182353]
+[fix requires in dis/favor and correct url in form
+Evan Prodromou <evan@prodromou.name>**20080908182559]
+[correct action for showfavorites in disfavor
+Evan Prodromou <evan@prodromou.name>**20080908182716]
+[better styling for favor/disfavor buttons
+Evan Prodromou <evan@prodromou.name>**20080908183515]
+[styling on the favor/disfavor forms to show inline
+Evan Prodromou <evan@prodromou.name>**20080908201751]
+[write our own submit so there's no <p>
+Evan Prodromou <evan@prodromou.name>**20080908202226]
+[move fave form, float right
+Evan Prodromou <evan@prodromou.name>**20080908202717]
+[make favorites form use Ajax
+Evan Prodromou <evan@prodromou.name>**20080908211610]
+[missed a closing curly
+Evan Prodromou <evan@prodromou.name>**20080908211656]
+[enjitqueuehandler added
+Evan Prodromou <evan@prodromou.name>**20080916174105]
+[rationalize with repository version
+Evan Prodromou <evan@prodromou.name>**20080916174400]
+[change some more tables to InnoDB
+Evan Prodromou <evan@prodromou.name>**20080916174515]
+[Database and classes for direct messages
+Evan Prodromou <evan@prodromou.name>**20080916185126]
+[inbox and outbox for direct messages
+Evan Prodromou <evan@prodromou.name>**20080916195346
+
+ Added an inbox and outbox for direct messages.
+
+ Factored common code to mailbox.php. Factored common code with
+ stream.php to personal.php.
+
+]
+[fixup CSS for messages
+Evan Prodromou <evan@prodromou.name>**20080916195620]
+[correctly show top
+Evan Prodromou <evan@prodromou.name>**20080916200445]
+[instructions for inbox and outbox
+Evan Prodromou <evan@prodromou.name>**20080916200703]
+[correct title on inbox and outbox
+Evan Prodromou <evan@prodromou.name>**20080916200942]
+[Twitter integration - SQL ref data for Twitter
+zach@controlyourself.ca**20080822034054]
+[Twitter integration - Oh look, a Twitter settings tab.
+zach@controlyourself.ca**20080822034157]
+[Twitter-integration - Twitter settings tab now saves Twitter credentials
+zach@controlyourself.ca**20080826225615]
+[Twitter integration - Add and remove Twitter accnt now working
+Zach Copley <zach@controlyourself.ca>**20080827000327]
+[Twitter integration - Foreign_user::getForeignUser() to retrieve
+Zach Copley <zach@controlyourself.ca>**20080827005444
+ Foreign_user by multi-part key: user_id + service
+]
+[Twitter integration - decided to change Twitter to service ID #1
+Zach Copley <zach@controlyourself.ca>**20080827021635]
+[fork daemon
+Evan Prodromou <evan@prodromou.name>**20080626224011]
+[fork daemon
+Evan Prodromou <evan@prodromou.name>*-20080626224011]
+[translation updates
+Evan Prodromou <evan@prodromou.name>**20080817160451]
+[Twitter integration - support for new foreign_link table and prefs now save/update
+Zach Copley <zach@controlyourself.ca>**20080828072205]
+[Twitter integration - Notices now broadcast (directly) to Twitter from linked accts.
+Zach Copley <zach@controlyourself.ca>**20080828192509]
+[CSRF protection for invites.php
+Zach Copley <zach@controlyourself.ca>**20080829045441]
+[CSRF protection in twittersettings.php
+Zach Copley <zach@controlyourself.ca>**20080829045724]
+[Conflated Avatar and Profile settings + removed a bunch of unnecessary whitespace
+Zach Copley <zach@controlyourself.ca>**20080905194732]
+[Moved avatar upload down below timezone on profile settings
+Zach Copley <zach@controlyourself.ca>**20080906070651]
+[Fold password form into profile settings
+Zach Copley <zach@controlyourself.ca>**20080907053604]
+[Twitter integration - added $config option for source attribute when posting to Twitter
+Zach Copley <zach@controlyourself.ca>**20080907062118]
+[Twitter integration - wording change
+Zach Copley <zach@controlyourself.ca>**20080907063339]
+[Disallow 'api' nickname
+Zach Copley <zach@controlyourself.ca>**20080909000650]
+[Twitter-compatible API - JSONP callbacks for all methods emitting JSON
+Zach Copley <zach@controlyourself.ca>**20080910025013]
+[integrate local changes with Zach's
+Evan Prodromou <evan@prodromou.name>**20080916210813]
+[Initial support for PostgreSQL
+CiaranG <ciaran@ciarang.com>**20080909072224]
+[Fix remote sub when redirected via login (Ticket #618)
+CiaranG <ciaran@ciarang.com>**20080909202259]
+[PostgreSQL - reply.modified needs a default
+CiaranG <ciaran@ciarang.com>**20080910073741]
+[Fix unquoted array key, causes b0rkage on some php setups (via @bopuc)
+CiaranG <ciaran@ciarang.com>**20080911163558]
+[PostgreSQL: Make tag cloud query work - also fixes what is surely an ignored error in the mysql query
+CiaranG <ciaran@ciarang.com>**20080911192348]
+[PostgreSQL: support for full text searching (notice and people)
+CiaranG <ciaran@ciarang.com>**20080914201744]
+[PostgreSQL: Quote table name in manually formed query - fixes profile settings update
+CiaranG <ciaran@ciarang.com>**20080915070256]
+[Further updates to sample config
+CiaranG <ciaran@ciarang.com>**20080915081246]
+[Fix missing nickname in rss replies to title
+CiaranG <ciaran@ciarang.com>**20080915190953]
+[Get correct configured language when all else fails
+CiaranG <ciaran@ciarang.com>**20080916172706]
+[rationalize with ciarang's pgsql changes
+Evan Prodromou <evan@prodromou.name>**20080916214134]
+[add in ciarang's changes to config.php.sample
+Evan Prodromou <evan@prodromou.name>**20080916214206]
+[use common_local_url() in tagging, add canonicalization function
+Evan Prodromou <evan@prodromou.name>**20080917112234]
+[move rendering stuff that doesn't depend on notice to a separate function
+Evan Prodromou <evan@prodromou.name>**20080917112730]
+[newmessage and showmessage
+Evan Prodromou <evan@controlyourself.ca>**20080917174741]
+[add new message link to showstream
+Evan Prodromou <evan@controlyourself.ca>**20080917175356]
+[don't show message link on your own page
+Evan Prodromou <evan@controlyourself.ca>**20080917175512]
+[fancy urls for show message, new message
+Evan Prodromou <evan@controlyourself.ca>**20080917180244]
+[to parameter is an ID not a nickname
+Evan Prodromou <evan@controlyourself.ca>**20080917185142]
+[not a nickname so don't canonicalize
+Evan Prodromou <evan@controlyourself.ca>**20080917185723]
+[correct urls from fancy url for show-message
+Evan Prodromou <evan@controlyourself.ca>**20080917185950]
+[fix missing variable in save-new-message
+Evan Prodromou <evan@controlyourself.ca>**20080917190306]
+[skip over Mailbox::handle to Action::handle
+Evan Prodromou <evan@controlyourself.ca>**20080917190445]
+[fix titles in showmessage
+Evan Prodromou <evan@controlyourself.ca>**20080917190745]
+[save created date
+Evan Prodromou <evan@controlyourself.ca>**20080917191652]
+[some minor fixes for new messages
+Evan Prodromou <evan@controlyourself.ca>**20080917192121]
+[style for message form
+Evan Prodromou <evan@controlyourself.ca>**20080918021421]
+[rearrange paragraphs in message form
+Evan Prodromou <evan@controlyourself.ca>**20080918021727]
+[change id of message textarea
+Evan Prodromou <evan@controlyourself.ca>**20080918021926]
+[no instructions for 'to' dropdown
+Evan Prodromou <evan@controlyourself.ca>**20080918022410]
+[set message form label to display inline
+Evan Prodromou <evan@controlyourself.ca>**20080918022558]
+[try to move the message box up a bit
+Evan Prodromou <evan@controlyourself.ca>**20080918022756]
+[scootch it down a bit again
+Evan Prodromou <evan@controlyourself.ca>**20080918022841]
+[return correct data structure for messages in showmessage
+Evan Prodromou <evan@controlyourself.ca>**20080918023032]
+[fetch -> find
+Evan Prodromou <evan@controlyourself.ca>**20080918025232]
+[fix htaccess so pass message param correctly
+Evan Prodromou <evan@controlyourself.ca>**20080918025428]
+[more id -> message shenanigans
+Evan Prodromou <evan@controlyourself.ca>**20080918025543]
+[remove tabs from showmessage
+Evan Prodromou <evan@controlyourself.ca>**20080918025713]
+[split favor forms code
+Evan Prodromou <evan@controlyourself.ca>**20080918032048]
+[big changes to the README, part 1
+Evan Prodromou <evan@controlyourself.ca>**20080918135502]
+[if favor/disfavor submitted through ajax, return micro-html of form
+Evan Prodromou <evan@controlyourself.ca>**20080918135608]
+[Gee, maybe I shouldn't try to write DOM code from memory
+Evan Prodromou <evan@controlyourself.ca>**20080918140533]
+[ah, turns out each() stuff is called as a method
+Evan Prodromou <evan@controlyourself.ca>**20080918140756]
+[get the zeroth form in the returned array
+Evan Prodromou <evan@controlyourself.ca>**20080918145545]
+[replace -> replaceWith
+Evan Prodromou <evan@controlyourself.ca>**20080918150120]
+[ajaxForm on returned forms
+Evan Prodromou <evan@controlyourself.ca>**20080918150438]
+[have to add the ajaxHidden thing, too
+Evan Prodromou <evan@controlyourself.ca>**20080918150753]
+[dis -> fav
+Evan Prodromou <evan@controlyourself.ca>**20080918151642]
+[correct background of dis/favor form on hover
+Evan Prodromou <evan@controlyourself.ca>**20080918151907]
+[input changes
+Evan Prodromou <evan@controlyourself.ca>**20080918152124]
+[add favor/disfavor to profile
+Evan Prodromou <evan@controlyourself.ca>**20080918152612]
+[don't notify you favor your own notice
+Evan Prodromou <evan@controlyourself.ca>**20080918152823]
+[correct a couple of bugs
+Evan Prodromou <evan@controlyourself.ca>**20080922190937]
+[clear and rebuild db scripts
+Evan Prodromou <evan@controlyourself.ca>**20080922195824]
+[add additional licenses into extlib subdir
+Evan Prodromou <evan@controlyourself.ca>**20080922212120]
+[hide IM settings if xmpp disabled
+Evan Prodromou <evan@controlyourself.ca>**20080922214003]
+[finish the README file
+Evan Prodromou <evan@controlyourself.ca>**20080922223239]
+[A working stopdaemons.sh, and no parameter needed for startdaemons.sh
+CiaranG <ciaran@ciarang.com>**20080906202242]
+[merge CiaranG's changes for subs
+Evan Prodromou <evan@prodromou.name>**20080922225031] \ No newline at end of file
diff --git a/_darcs/inventories/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz b/_darcs/inventories/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz
new file mode 100644
index 000000000..c50c7c90a
--- /dev/null
+++ b/_darcs/inventories/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz
@@ -0,0 +1,3 @@
+Starting with tag:
+[TAG 0.6
+Evan Prodromou <evan@prodromou.name>**20080922225224] \ No newline at end of file
diff --git a/_darcs/inventories/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz b/_darcs/inventories/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz
new file mode 100644
index 000000000..b857a5321
--- /dev/null
+++ b/_darcs/inventories/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz
@@ -0,0 +1,9 @@
+Starting with tag:
+[TAG 0.6.0
+Evan Prodromou <evan@prodromou.name>**20080922225239]
+[check for cur before message link
+Evan Prodromou <evan@controlyourself.ca>**20080922225620]
+[Fix quotes in favorite notification
+Evan Prodromou <evan@controlyourself.ca>**20080922232328]
+[CSRF protection in newmessage.php
+Evan Prodromou <evan@controlyourself.ca>**20080923031419] \ No newline at end of file
diff --git a/_darcs/inventories/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz b/_darcs/inventories/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz
new file mode 100644
index 000000000..18dc5ac8f
--- /dev/null
+++ b/_darcs/inventories/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz
@@ -0,0 +1,5 @@
+Starting with tag:
+[TAG 0.6.0
+Evan Prodromou <evan@controlyourself.ca>**20080923043110]
+[version number -- doh!
+Evan Prodromou <evan@controlyourself.ca>**20080923045449] \ No newline at end of file
diff --git a/_darcs/inventories/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz b/_darcs/inventories/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz
new file mode 100644
index 000000000..be0cab6f4
--- /dev/null
+++ b/_darcs/inventories/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz
@@ -0,0 +1,352 @@
+Starting with tag:
+[TAG 0.6.0
+Evan Prodromou <evan@controlyourself.ca>**20080923045458]
+[403 for a message that isn't yours.
+Evan Prodromou <evan@controlyourself.ca>**20080923050637]
+[change how Foreign_link fetches, and fix mixup between user-ids and foreign-ids in twittersettings
+Evan Prodromou <evan@controlyourself.ca>**20080923054413]
+[change twitter username to allow uppercase letters and underscores
+Evan Prodromou <evan@controlyourself.ca>**20080923060314]
+[incorrect message info shown in title
+Evan Prodromou <evan@controlyourself.ca>**20080923063029]
+[append LACONICA_VERSION to css files to force reload
+Evan Prodromou <evan@controlyourself.ca>**20080923065021]
+[make it look like a query
+Evan Prodromou <evan@controlyourself.ca>**20080923065211]
+[try some fiddling to get message notification going out
+Evan Prodromou <evan@controlyourself.ca>**20080923072150]
+[Twitter bridge - fix to allow linking to 'protected' Twitter users
+Zach Copley <zach@controlyourself.ca>**20080923074529]
+[was notifying user name not object
+Evan Prodromou <evan@controlyourself.ca>**20080923080246]
+[comma to dot
+Evan Prodromou <evan@controlyourself.ca>**20080923080855]
+[Twitter bridge: Hack to get around PHP cURL's use of @ as a metachar,
+Zach Copley <zach@controlyourself.ca>**20080923083632
+ which was keeping @reply messages from getting posted to Twitter.
+]
+[Twitter bridge - Changed Twitter username length check from 64 chars to Twitter max of 15.
+Zach Copley <zach@controlyourself.ca>**20080923084145]
+[rationalize Zach's change of length with my added _ and caps
+Evan Prodromou <evan@controlyourself.ca>**20080923174302]
+[user -> this
+Evan Prodromou <evan@controlyourself.ca>**20080923181648]
+[better logic around protecting messages
+Evan Prodromou <evan@controlyourself.ca>**20080923182024]
+[note privacy of login credentials and private messages
+Evan Prodromou <evan@controlyourself.ca>**20080923183035]
+[Added option to add disable attr to common_checkbox()
+Zach Copley <zach@controlyourself.ca>**20080923213829]
+[README - Added mbstring to the list of required PHP5 extensions
+Zach Copley <zach@controlyourself.ca>**20080923221439]
+[Twitter bridge - Bugfix: You can now turn off brige via prefs
+Zach Copley <zach@controlyourself.ca>**20080923231921]
+[Twitter bridge - pref setting to turn off sending @-replies to Twitter
+Zach Copley <zach@controlyourself.ca>**20080924023615]
+[Twitter bridge - fixed another bug that kept prefs from saving properly
+Zach Copley <zach@controlyourself.ca>**20080924052431]
+[Twitter bridge - Was using the wrong idiom to update foreign_link
+Zach Copley <zach@controlyourself.ca>**20080924060455
+ objs, which was causing UI inconsistencies. Fixed.
+
+]
+[change foreign links flags code to use bitmasks
+Evan Prodromou <evan@controlyourself.ca>**20080924150834
+
+ Zach was doing a lot of integer comparisons on the Foreign_link sync
+ fields. I switched them to use named bitmasks instead. I also switched
+ the semantics of bit 3 to be the opposite of what Zach had -- I find
+ lots of double-negatives in a checkbox to be hard to read.
+
+]
+[Fix ticket 662
+mac65@mac65.com**20080922213314
+ The user_timeline action for the Twitter API was not reading the page
+ argument. Added in one line to assign the page argument. Tested on local
+ install and it worked.
+
+]
+[Fix ticket 460
+mac65@mac65.com**20080922223429
+ The show action for the twitter user API was using subscribed instead of
+ subscriber to grab the friends_count.
+]
+[default sending local @ replies to Twitter
+Evan Prodromou <evan@controlyourself.ca>**20080924161708]
+[change the rule for detecting replies.
+Evan Prodromou <evan@controlyourself.ca>**20080924200710]
+[change handle() to use message-getting helper
+Evan Prodromou <evan@controlyourself.ca>**20080924202211]
+[put message form on inbox and outbox
+Evan Prodromou <evan@controlyourself.ca>**20080924204131]
+[correct url for new message form
+Evan Prodromou <evan@controlyourself.ca>**20080924210254]
+[redirect to outbox after posting
+Evan Prodromou <evan@controlyourself.ca>**20080924210459]
+[better redirect to outbox
+Evan Prodromou <evan@controlyourself.ca>**20080924210757]
+[try to clean up user-without-profile errors
+Evan Prodromou <evan@controlyourself.ca>**20080926145008]
+[caching layer for DB/DataObject
+Evan Prodromou <evan@controlyourself.ca>**20080926160941
+
+ I added a new class, Memcached_DataObject, that will (optionally)
+ fetch data out of a memcached server if it's available. This only
+ works on 'staticGet'.
+
+ Methods that write to the database (insert, update, delete) will clear
+ and set the cache correctly, too.
+
+]
+[prepend Memcached_DataObject require with INSTALLDIR
+Evan Prodromou <evan@controlyourself.ca>**20080926161540]
+[rename cached object file
+Evan Prodromou <evan@controlyourself.ca>**20080926161652]
+[path correct in require_once for memcached
+Evan Prodromou <evan@controlyourself.ca>**20080926161824]
+[better handling of staticGet
+Evan Prodromou <evan@controlyourself.ca>**20080926161946]
+[try to make some static/non-static stuff work right
+Evan Prodromou <evan@controlyourself.ca>**20080926162347]
+[better deletes and key names
+Evan Prodromou <evan@controlyourself.ca>**20080926163030]
+[handle one-argument calls to staticGet
+Evan Prodromou <evan@controlyourself.ca>**20080926163357]
+[hack to make keys work
+Evan Prodromou <evan@controlyourself.ca>**20080926163555]
+[don't record null key values
+Evan Prodromou <evan@controlyourself.ca>**20080926164021]
+[Memcache returns false on cache miss
+Evan Prodromou <evan@controlyourself.ca>**20080926164413]
+[another false-for-error
+Evan Prodromou <evan@controlyourself.ca>**20080926164532]
+[log a db error for inserting the notice
+Evan Prodromou <evan@controlyourself.ca>**20080926165029]
+[add some more info on notice update
+Evan Prodromou <evan@controlyourself.ca>**20080926165201]
+[wasn't returning results of update
+Evan Prodromou <evan@controlyourself.ca>**20080926165310]
+[handle multiple memcached servers
+Evan Prodromou <evan@controlyourself.ca>**20080926195501]
+[move memcache connections to util.php
+Evan Prodromou <evan@controlyourself.ca>**20080926200102]
+[slightly better check on $orig in update()
+Evan Prodromou <evan@controlyourself.ca>**20080927123507]
+[single function for important streams, with memcached support
+Evan Prodromou <evan@controlyourself.ca>**20080928120119
+
+ I moved the 4 streams for a user (with friends, faves, replies,
+ personal) into functions on the User object. Added a helper function
+ in Notice for making notice streams. Also, will fetch notice streams
+ out of the memcached server, if possible. Made the API, RSS, and HTML
+ output all use the same streams (hopefully cached).
+
+ Added some code to Notice to blow the cache when a notice is posted.
+ Also, added code to favor and disfavor actions to blow the faves
+ cache, too.
+
+]
+[shownotices takes user rather than profile in showstream
+Evan Prodromou <evan@controlyourself.ca>**20080928120616]
+[change arguments to Notice::publicStream
+Evan Prodromou <evan@controlyourself.ca>**20080928132747]
+[lost paren in Notice
+Evan Prodromou <evan@controlyourself.ca>**20080928132846]
+[add some debugging stuff to Notice
+Evan Prodromou <evan@prodromou.name>**20080928171407]
+[move noticewrapper to classes
+Evan Prodromou <evan@controlyourself.ca>**20080928171538]
+[remove noticewrapper
+Evan Prodromou <evan@controlyourself.ca>**20080928171634]
+[another debug notice
+Evan Prodromou <evan@controlyourself.ca>**20080928172002]
+[exact check on memcached results
+Evan Prodromou <evan@controlyourself.ca>**20080928173558]
+[correct some SQL and add some spaces
+Evan Prodromou <evan@controlyourself.ca>**20080928174316]
+[remove debugging code for notice streams
+Evan Prodromou <evan@controlyourself.ca>**20080928174814]
+[remove unneeded find() in userrss.php
+Evan Prodromou <evan@controlyourself.ca>**20080928175156]
+[fancy url for favorites rss
+Evan Prodromou <evan@controlyourself.ca>**20080928175626]
+[add favoritesrss
+Evan Prodromou <evan@controlyourself.ca>**20080928180132]
+[cache tag streams in Memcached, too
+Evan Prodromou <evan@controlyourself.ca>**20080928180904]
+[sync function names
+Evan Prodromou <evan@controlyourself.ca>**20080928181017]
+[add some whitespace to the qry for tags
+Evan Prodromou <evan@controlyourself.ca>**20080928181121]
+[pass tag parameter along to stream query
+Evan Prodromou <evan@controlyourself.ca>**20080928181255]
+[fixup tag display code
+Evan Prodromou <evan@controlyourself.ca>**20080928181503]
+[blow the cached streams for tags on a new notice
+Evan Prodromou <evan@controlyourself.ca>**20080928181812]
+[note about stream_select() bug in PHP 5.2.x
+Evan Prodromou <evan@controlyourself.ca>**20080928191022]
+[guarded call to conn method in xmppqueuehandler
+Evan Prodromou <evan@controlyourself.ca>**20080929205504]
+[blow cache in Notice for tags
+Evan Prodromou <evan@controlyourself.ca>**20080929222107]
+[trying to fix up pages in tags
+Evan Prodromou <evan@controlyourself.ca>**20080929230047]
+[log a warning on recovery of old recovery codes
+Evan Prodromou <evan@controlyourself.ca>**20080930124452]
+[use two-arg constructor for confirmation code
+Evan Prodromou <evan@controlyourself.ca>**20080930130530]
+[don't encache on insert; misses timestamps
+Evan Prodromou <evan@controlyourself.ca>**20080930130844]
+[some extlibs that were missing from 0.6.0
+Evan Prodromou <evan@controlyourself.ca>**20080930133847]
+[Add Lithuanian to list of supported languages
+CiaranG <ciaran@ciarang.com>**20080923140710]
+[Added Swedish to list of languages
+CiaranG <ciaran@ciarang.com>**20080923184851]
+[PostgreSQL: New tables for private messages and invitations (untested)
+CiaranG <ciaran@ciarang.com>**20080923214601]
+[PostgreSQL: Corrections to the two new table definitions
+CiaranG <ciaran@ciarang.com>**20080924113550]
+[Add a sys_get_temp_dir substitute to extlib for easier installation on versions that lack it
+CiaranG <ciaran@ciarang.com>**20080924150828]
+[A load of translations, including de_DE,es,it_IT,nl_NL,en_GB
+CiaranG <ciaran@ciarang.com>**20080924194608]
+[Translations updates using script
+CiaranG <ciaran@ciarang.com>**20080924205318]
+[More translations
+CiaranG <ciaran@ciarang.com>**20080924210153]
+[Updates to the update_translations script
+CiaranG <ciaran@ciarang.com>**20080925092854]
+[Latest translation updates
+CiaranG <ciaran@ciarang.com>**20080925113246]
+[Another batch of translations
+CiaranG <ciaran@ciarang.com>**20080926104442]
+[Fix error in xmpp help
+CiaranG <ciaran@ciarang.com>**20080926214627]
+[Make stopdaemons.sh work no matter where it runs from
+CiaranG <ciaran@ciarang.com>**20080927210355]
+[PostgreSQL: Put a default on confirm_address.address_extra to mimic mysql's behaviour when a not-null field is not set in a new record
+CiaranG <ciaran@ciarang.com>**20080929060227]
+[Fix problem with tags in different locales (Ticket #679)
+CiaranG <ciaran@ciarang.com>**20080924092031]
+[use profile URL instead of local URL
+Evan Prodromou <evan@controlyourself.ca>**20080930210542]
+[Fix replies tab pagination issue
+support@bambeeq.com**20081001010741
+ Problem:
+ Before / After links in replies tab don't work. When clicked they show "No such user" error.
+ How to reproduce:
+ 1. Access http://identi.ca/evan/replies
+ 2. Click on Before button
+
+]
+[remove unused helper function
+Evan Prodromou <evan@controlyourself.ca>**20081002144628]
+[add methods to Memcached_DataObject for caching compound keys
+Evan Prodromou <evan@controlyourself.ca>**20081002144715]
+[use pkeyGet for Avatar
+Evan Prodromou <evan@controlyourself.ca>**20081002144749]
+[try to use caching functions where possible in User
+Evan Prodromou <evan@controlyourself.ca>**20081002162513]
+[incorrect function call in Fave
+Evan Prodromou <evan@controlyourself.ca>**20081002162604]
+[don't try to free faves in User
+Evan Prodromou <evan@controlyourself.ca>**20081002162739]
+[only put notices that are local in the sitemap
+Evan Prodromou <evan@controlyourself.ca>**20081003192826]
+[better instructions in the password recovery page
+Evan Prodromou <evan@controlyourself.ca>**20081004232554]
+[more output in daemon.php
+Evan Prodromou <evan@controlezvous.ca>**20081005000851]
+[explicitly load classes for queuehandler
+Evan Prodromou <evan@controlyourself.ca>**20081005191505]
+[XMPP Direct Messaging / Last notice
+nick@cloudspider.com**20081003011145
+
+ Direct messaging now works under XMPP, the command syntax is 'd $nick
+ $message'. Also, a command to fetch a users last notice is in there
+ ('last $nick'). Notification of the recipient of a message is not yet
+ supported.
+
+]
+[more specific profile-get is slightly more efficient
+Evan Prodromou <evan@controlyourself.ca>**20081004021158]
+[basics of the command interpreter
+Evan Prodromou <evan@controlyourself.ca>**20081004021442]
+[move DB_DataObject ini files to more common name.
+Evan Prodromou <evan@controlyourself.ca>**20081004142205]
+[move fave notification to mail library
+Evan Prodromou <evan@controlyourself.ca>**20081004154454]
+[fill out commands, move to separate file
+Evan Prodromou <evan@controlyourself.ca>**20081004154846]
+[add channels and use command interpreter in different channels
+Evan Prodromou <evan@controlyourself.ca>**20081004163213]
+[text -> content in newnotice
+Evan Prodromou <evan@controlyourself.ca>**20081004170136]
+[correct use of $user to $this->user
+Evan Prodromou <evan@controlyourself.ca>**20081004170342]
+[correctly refer to notice as a notice
+Evan Prodromou <evan@controlyourself.ca>**20081004170550]
+[different message source per command channel
+Evan Prodromou <evan@controlyourself.ca>**20081004173427]
+[typo in message command
+Evan Prodromou <evan@controlyourself.ca>**20081004173609]
+[common_client_error -> common_user_error
+Evan Prodromou <evan@controlyourself.ca>**20081004173734]
+[FaveCommand -> FavCommand
+Evan Prodromou <evan@controlyourself.ca>**20081004173957]
+[check for notification flags in FavCommand
+Evan Prodromou <evan@controlyourself.ca>**20081004174519]
+[cleanup whitespace in lib/mail.php
+Evan Prodromou <evan@controlyourself.ca>**20081004174552]
+[correct output for Get command
+Evan Prodromou <evan@controlyourself.ca>**20081004182028]
+[Combined language patches that got missed due to repo dependencies
+CiaranG <ciaran@ciarang.com>**20081002181338]
+[pt_BR translation now has a new file ID
+CiaranG <ciaran@ciarang.com>**20081004143747]
+[New pt_BR translation, 100% complete
+CiaranG <ciaran@ciarang.com>**20081004144441]
+[Update q-value for completed pt_BR translation
+CiaranG <ciaran@ciarang.com>**20081004144545]
+[Twitter bridge -- more explicit checking of noticesync bits
+Zach Copley <zach@controlyourself.ca>**20080926190543]
+[Twitter-API: Viewing direct msgs in xml and json now work
+Zach Copley <zach@controlyourself.ca>**20080924234857]
+[Twitter-compatible API - rss and atom feeds for direct messages
+Zach Copley <zach@controlyourself.ca>**20080926012015]
+[Twitter-compatible API: Direct messages work (everything but destroy())
+Zach Copley <zach@controlyourself.ca>**20080929050826]
+[Twitter-compatible API - added source links to statuses/notices
+zach@controlyourself.ca**20080930175354]
+[Twitter-compatible API - Favorites now working!
+zach@controlyourself.ca**20080930194435]
+[Twitter-compatible API - factored out redundant JSON printing functions
+zach@controlyourself.ca**20080930212526]
+[Add support for since_id and before_id to Twitter API. Ticket #540.
+mac65@mac65.com**20081001001233]
+[Twitter-compatible API - Added content-type checks to several methods. Calling an API
+zach@controlyourself.ca**20081001020959
+ method with a bad content type used to return a blank page.
+]
+[Twitter-compatible API - cleaned up sloppy control flow: exit() statements everywhere
+zach@controlyourself.ca**20081001025421]
+[fix deleted function after synch from Zach
+Evan Prodromou <evan@controlyourself.ca>**20081004194218]
+[change stoica.ini to laconica.ini in config.php.sample
+Evan Prodromou <evan@controlyourself.ca>**20081004194611]
+[Fixed up conflict (over white space) in User.php
+Zach Copley <zach@controlyourself.ca>**20081005181350]
+[Another patch to fix up whitespace conflicts in User.php
+Zach Copley <zach@controlyourself.ca>**20081005181614]
+[Twitter-compatible API - hooked in command interpreter
+zach@controlyourself.ca**20081005030915]
+[Added OnCommand and OffCommand to the list of cmds the Twitter API
+zach@controlyourself.ca**20081005183850
+ supports thru statuses/update
+]
+[update README with info about 0.6.1 plus some forgotten stuff
+Evan Prodromou <evan@controlyourself.ca>**20081006040646]
+[increment the version
+Evan Prodromou <evan@controlyourself.ca>**20081006040713] \ No newline at end of file
diff --git a/_darcs/inventories/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz b/_darcs/inventories/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz
new file mode 100644
index 000000000..0301072b2
--- /dev/null
+++ b/_darcs/inventories/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz
@@ -0,0 +1,5 @@
+Starting with tag:
+[TAG 0.6.1
+Evan Prodromou <evan@controlyourself.ca>**20081006040733]
+[fix error and output in on and off commands
+Evan Prodromou <evan@controlyourself.ca>**20081006041232] \ No newline at end of file
diff --git a/_darcs/inventories/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz b/_darcs/inventories/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz
new file mode 100644
index 000000000..765ee0098
--- /dev/null
+++ b/_darcs/inventories/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz
@@ -0,0 +1,205 @@
+Starting with tag:
+[TAG 0.6.1
+Evan Prodromou <evan@controlyourself.ca>**20081006041249]
+[fixup return value of XMPP channel on setting notification
+Evan Prodromou <evan@controlyourself.ca>**20081006054425]
+[Twitter-compatible API - direct_messages/new.json was not answering
+zach@controlyourself.ca**20081006153715]
+[Twitter bridge - was checking the wrong bit (!) for reply sync preference
+zach@controlyourself.ca**20081007004432]
+[Adapted stoica theme for iPhone use
+Ken Sheppardson <laconica@kshep.net>**20080816181321]
+[Adapted stoica theme for iphone use
+Ken Sheppardson <laconica@kshep.net>**20080816181845]
+[Renamed 'mobile' theme to more appropriate 'iphone'
+Ken Sheppardson <laconica@kshep.net>**20080816200437]
+[enjitqueuehandler
+Ken Sheppardson <laconica@kshep.net>**20080904215328]
+[Skip remote notices
+Ken Sheppardson <laconica@kshep.net>**20080905032903]
+[enjit queue handler (from kshep)
+Evan Prodromou <evan@controlyourself.ca>**20081008164624]
+[add about 60px
+Evan Prodromou <evan@controlyourself.ca>**20081012155650]
+[add about 60px to default theme, too
+Evan Prodromou <evan@controlyourself.ca>**20081012161211]
+[fixup margins in stoica theme
+Evan Prodromou <evan@prodromou.name>**20081012162719]
+[fixup margin and padding in default theme
+Evan Prodromou <evan@controlyourself.ca>**20081012162810]
+[Twitter-compatible API - added favorites/favorites to list of methods only requiring bare auth
+zach@controlyourself.ca**20081015163112]
+[Twitter-compatible API:
+zach@controlyourself.ca**20081017023638
+ - Filled in favorites tags in statuses
+ - Filled in more tags in user/show, including undocumented features
+ - Better error handling and more consistent error messages
+ - Code clean-up and refactoring
+ - Removed huge obnoxious comments
+]
+[try to make replies point to the clicked-on notice
+Evan Prodromou <evan@controlyourself.ca>**20081020170245]
+[don't overwrite replies in notices
+Evan Prodromou <evan@controlyourself.ca>**20081020170828]
+[add a little debugging for replyto
+Evan Prodromou <evan@controlyourself.ca>**20081020171033]
+[more specific selector for updating replies
+Evan Prodromou <evan@controlyourself.ca>**20081020172117]
+[more value updates
+Evan Prodromou <evan@controlyourself.ca>**20081020172305]
+[move update of replyto value to correct area
+Evan Prodromou <evan@controlyourself.ca>**20081020172549]
+[correct number of args to saveNew in newnotice
+Evan Prodromou <evan@controlyourself.ca>**20081020173108]
+[force util.js to reload on version change
+Evan Prodromou <evan@controlyourself.ca>**20081020174231]
+[accidentally setting replies to 'false'
+Evan Prodromou <evan@controlyourself.ca>**20081020174956]
+[add 'invite-only' mode for registration
+Evan Prodromou <evan@controlyourself.ca>**20081021182822]
+[full sentence for invite-only error
+Evan Prodromou <evan@controlyourself.ca>**20081021183035]
+[try to synch changes in stoica theme to default theme
+Evan Prodromou <evan@controlyourself.ca>**20081021192914]
+[try to force background on favorite heart in default
+Evan Prodromou <evan@controlyourself.ca>**20081021193501]
+[try to set correct background color on hover, too
+Evan Prodromou <evan@controlyourself.ca>**20081021193612]
+[change "stoica" theme to "identica"
+Evan Prodromou <evan@controlyourself.ca>**20081021194440]
+[move identica ie[67].css to default
+Evan Prodromou <evan@controlyourself.ca>**20081021194833]
+[make identica theme use default theme, only include differences
+Evan Prodromou <evan@controlyourself.ca>**20081021201853]
+[fix link color in identica theme
+Evan Prodromou <evan@controlyourself.ca>**20081021202455]
+[add is_readonly() to api.php
+Evan Prodromou <evan@prodromou.name>**20081024201234]
+[remove unused noticesWithFriendsWindow from User
+Evan Prodromou <evan@controlyourself.ca>**20081022210428]
+[add atom and RSS 2.0 link elements to head of profile page
+Evan Prodromou <evan@controlyourself.ca>**20081023212659]
+[Twitter-compatible API - checks for is_readonly() now work!
+zach@controlyourself.ca**20081024213745]
+[Twitter-compatible API - removed debugging statement
+zach@controlyourself.ca**20081024215101]
+[add an index to subscription token
+Evan Prodromou <evan@controlyourself.ca>**20081022192750]
+[add SUP link to User RSS
+Evan Prodromou <evan@controlyourself.ca>**20081025022849]
+[override initrss
+Evan Prodromou <evan@controlyourself.ca>**20081025023252]
+[fixed use of header()
+Evan Prodromou <evan@controlyourself.ca>**20081025023347]
+[a SUP action to product correct SUP json output
+Evan Prodromou <evan@controlyourself.ca>**20081026033353]
+[add SUP links to RSS and Atom, too
+Evan Prodromou <evan@controlyourself.ca>**20081026145326]
+[fix calls to show_rss_timeline
+Evan Prodromou <evan@controlyourself.ca>**20081026145749]
+[handle seconds argument to SUP
+Evan Prodromou <evan@controlyourself.ca>**20081026150623]
+[Twitter bridge - change regex to look for mb @-replies
+zach@controlyourself.ca**20081027191629]
+[heuristics for paren linking (thanks @brion!)
+Evan Prodromou <evan@controlyourself.ca>**20081102090241]
+[Twitter-compatible API - properly encode and decode UTF-8 HTML entities
+zach@controlyourself.ca**20081103211653]
+[Better UTF-8 escaped entity handling. Fixed bad chars in all RSS feeds.
+zach@controlyourself.ca**20081104084027]
+[use correct class for avatar deletion so memcached is updated
+Evan Prodromou <evan@controlyourself.ca>**20081113063850]
+[notice inbox
+Evan Prodromou <evan@controlyourself.ca>**20081022203600]
+[save notice to inbox on saveNew
+Evan Prodromou <evan@controlyourself.ca>**20081022205621]
+[better prefix for Notice_inbox.php
+Evan Prodromou <evan@controlyourself.ca>**20081022205823]
+[change User to use notice inboxes rather than subscription
+Evan Prodromou <evan@controlyourself.ca>**20081022210445]
+[blow inboxes
+Evan Prodromou <evan@controlyourself.ca>**20081023203505]
+[Twitter-compatible API - since_id and before_id were polluting the cache and generating bad SQL
+zach@controlyourself.ca**20081104053359
+ (Also cleaned out some extra whitespace.)
+]
+[created timestamp on notice_inbox
+Evan Prodromou <evan@controlyourself.ca>**20081112172517]
+[notice_inbox.id -> notice_inbox.notice_id
+Evan Prodromou <evan@controlyourself.ca>**20081112173627]
+[add a script to populate notice inboxes
+Evan Prodromou <evan@controlyourself.ca>**20081112181117]
+[correct method for querying
+Evan Prodromou <evan@controlyourself.ca>**20081112181327]
+[some memory and execution time management
+Evan Prodromou <evan@controlyourself.ca>**20081112181533]
+[add created to notice update
+Evan Prodromou <evan@controlyourself.ca>**20081112185117]
+[check for errors in fixup_inboxes
+Evan Prodromou <evan@controlyourself.ca>**20081112185146]
+[add LOW_PRIORITY and IGNORE extensions for INSERT
+Evan Prodromou <evan@controlyourself.ca>**20081112190828]
+[Fix error when maildaemon tries to report a message parsing error
+CiaranG <ciaran@ciarang.com>**20081007083521]
+[Only log locale sets that fail
+CiaranG <ciaran@ciarang.com>**20081007145232]
+[Fix to previous fix :(
+CiaranG <ciaran@ciarang.com>**20081007155038]
+[Script to update laconica.pot from source, and the results of running it
+CiaranG <ciaran@ciarang.com>**20081013200837]
+[Twitter-compatible API - don't strip XML-illegal chars from JSON output
+zach@controlyourself.ca**20081106225721]
+[CSRF Protection for login and new notice. Ticket #503
+zach@controlyourself.ca**20081111022330]
+[trac31 url_auto_shortening by sgmurphy
+millette@controlyourself.ca**20081106205926]
+[trac31 forgot actions/othersettings.php file
+millette@controlyourself.ca**20081106210552]
+[trac31 added othersettings fancy url
+millette@controlyourself.ca**20081106224006]
+[added Shorturl_api to add support for ur1, 2tu and other services lacking a native api - trac31
+millette@controlyourself.ca**20081107193831]
+[trac31 added 3 more short url services: ur1.ca, 2tu.ru and ptiturl.com
+millette@controlyourself.ca**20081107194735]
+[trac31 added bit.ly support
+millette@controlyourself.ca**20081107201926]
+[trac31 don't shorten URLs prefixed with a *
+millette@controlyourself.ca**20081107203039]
+[trac31 revert the "don't shorten URLs prefixed with a *" patch since we automatically shorten in notices > 140 chars
+millette@controlyourself.ca**20081107222100]
+[trac31 pg support, fixing 2tu typo, set ur1.ca as default service
+millette@controlyourself.ca**20081113152718]
+[trac31 shorten all URLs even if notice is already <= 140 chars
+millette@controlyourself.ca**20081113153216]
+[trac31 forgot about twitapi, now fixed.
+millette@controlyourself.ca**20081113164741]
+[trac31 let * preceding a url prevent its shortening.
+millette@controlyourself.ca**20081113170234]
+[trac31 added longurl title to anchors when applicable. Also removed * url prefix feature to prevent short urls.
+millette@controlyourself.ca**20081113182834]
+[Conflict resolution patch for newnotice.php (zach vs. millette)
+zach@controlyourself.ca**20081113195237]
+[add inboxed and regenerate data objects
+Evan Prodromou <evan@prodromou.name>**20081113210209]
+[add documentation on notice inboxes
+Evan Prodromou <evan@prodromou.name>**20081113214544]
+[different query based on config var and user inbox status
+Evan Prodromou <evan@prodromou.name>**20081113215734]
+[update inboxed flag in fixup inboxes
+Evan Prodromou <evan@prodromou.name>**20081113220335]
+[Ticket 753
+tryggvib@hi.is**20081113024833]
+[Bug fix for ticket 753
+tryggvib@hi.is**20081113212214]
+[Ticket 753 bugfix, characters/digits only
+tryggvib@hi.is**20081113213119]
+[clear memcached cache in fixup_inboxes
+Evan Prodromou <evan@prodromou.name>**20081113223514]
+[take a command-line argument to start with a particular user ID
+Evan Prodromou <evan@prodromou.name>**20081114015930]
+[add Net Socket
+Evan Prodromou <evan@prodromou.name>**20081114021217]
+[update README
+Evan Prodromou <evan@prodromou.name>**20081114025715]
+[remove 'nudge' -- it won't be in this release
+Evan Prodromou <evan@prodromou.name>**20081114032817] \ No newline at end of file
diff --git a/_darcs/inventories/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz b/_darcs/inventories/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz
new file mode 100644
index 000000000..7060e83dc
--- /dev/null
+++ b/_darcs/inventories/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz
@@ -0,0 +1,29 @@
+Starting with tag:
+[TAG 0.6.2
+Evan Prodromou <evan@prodromou.name>**20081114032959]
+[don't ignore errors on inbox fixup; it messes up replication
+Evan Prodromou <evan@prodromou.name>**20081114065145]
+[don't write notice to inbox if user isn't inboxed yet
+Evan Prodromou <evan@prodromou.name>**20081114074211]
+[better code for only inserting inboxes that don't already exist
+Evan Prodromou <evan@prodromou.name>**20081114074511]
+[threw out the baby with the bathwater
+Evan Prodromou <evan@prodromou.name>**20081114080853]
+[add quotes to longurl title
+Evan Prodromou <evan@prodromou.name>**20081114142228]
+[add start_at argument for notice rendering fixer
+Evan Prodromou <evan@prodromou.name>**20081114144014]
+[silly escape problem with quotes, fixed.
+millette@controlyourself.ca**20081114173242]
+[RSS alternate link for tag pages
+zach@controlyourself.ca**20081114052528]
+[try to import new_form
+Evan Prodromou <evan@prodromou.name>**20081114194620]
+[second argument to importNode
+Evan Prodromou <evan@prodromou.name>**20081114194727]
+[fix longurl title attribute, removing extra backslashes.
+millette@controlyourself.ca**20081114192649]
+[escaping was not needed at all to process short urls. Real fix.
+millette@controlyourself.ca**20081114195457]
+[add inboxes for new users
+Evan Prodromou <evan@prodromou.name>**20081116062937] \ No newline at end of file
diff --git a/_darcs/inventories/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz b/_darcs/inventories/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz
new file mode 100644
index 000000000..4e9e98e7f
--- /dev/null
+++ b/_darcs/inventories/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz
@@ -0,0 +1,5 @@
+Starting with tag:
+[TAG 0.6.2
+Evan Prodromou <evan@controlezvous.ca>**20081118172328]
+[update version number in common.php
+Evan Prodromou <evan@controlezvous.ca>**20081118173250] \ No newline at end of file
diff --git a/_darcs/inventories/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz b/_darcs/inventories/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz
new file mode 100644
index 000000000..eab2fc27d
--- /dev/null
+++ b/_darcs/inventories/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz
@@ -0,0 +1,319 @@
+Starting with tag:
+[TAG 0.6.2
+Evan Prodromou <evan@controlezvous.ca>**20081118173307]
+[♫ Don't you forget about me ♫
+Evan Prodromou <evan@prodromou.name>**20081118024947]
+[add some extra checks to avoid remote subscriptions to local users
+Evan Prodromou <evan@prodromou.name>**20081118180644]
+[check URI before sending
+Evan Prodromou <evan@prodromou.name>**20081118192227]
+[hide certain users from the public stream
+Evan Prodromou <evan@prodromou.name>**20081120183722
+
+ On identi.ca, certain users (http://identi.ca/derricklo) publish 5-10
+ automated notices every half hour or hour. This can flood the public
+ stream, making it unreadable for casual readers.
+
+ We don't want to prevent anyone from using the site for personal use.
+ However, if their personal use clouds up the public space, we can
+ gently remove them from that public space without interfering with
+ their personal activity.
+
+ So: this change prevents selected people's notices from appearing in
+ the public stream. It's hand-configured by an administrator, and
+ probably doesn't scale beyond 10-20 blacklisted users. It's a stopgap
+ measure.
+
+]
+[clean up list of expected features in faq
+Evan Prodromou <evan@prodromou.name>**20081120210045]
+[inbox particular users
+Evan Prodromou <evan@prodromou.name>**20081121162600]
+[variable name change bug
+Evan Prodromou <evan@prodromou.name>**20081121162918]
+[notice inbox only when not already exists
+Evan Prodromou <evan@prodromou.name>**20081121184132]
+[double-cache to get newer items
+Evan Prodromou <evan@prodromou.name>**20081122124151]
+[whitespace cleanup
+Evan Prodromou <evan@prodromou.name>**20081122124235]
+[use cached fave stream to save DB hits for faves
+Evan Prodromou <evan@prodromou.name>**20081122163347]
+[messed up logic for passing faves
+Evan Prodromou <evan@prodromou.name>**20081122163552]
+[blow last cache for faves
+Evan Prodromou <evan@prodromou.name>**20081122165234]
+[if all faves in cache, skip
+Evan Prodromou <evan@prodromou.name>**20081122192857]
+[blow last caches on notice delete
+Evan Prodromou <evan@prodromou.name>**20081124003240
+
+ We do some extra caching of streams, at ';last'. If a notice is
+ deleted, we need to blow those caches, too. So, this deletes them.
+
+]
+[trac626 Put a list of feed links
+csarven@controlyourself.ca**20081114210506]
+[trac626 Bugfix: Atom URL missing a dot
+csarven@controlyourself.ca**20081114214315]
+[trac626 Update: Moving illustrations to the default theme
+csarven@controlyourself.ca**20081114220805]
+[trac670 trac689 Favorites (duplicate id, background image, JavaScript)
+csarven@controlyourself.ca**20081115033549]
+[Favorite icons change
+csarven@controlyourself.ca**20081115043955
+ Favorite (heart) icon is from the Tango Icon Library:
+ http://tango.freedesktop.org/Tango_Icon_Library
+
+ Disfavor (broken heart) icon is created by modifying the favorite icon.
+]
+[Nudge feature
+csarven@controlyourself.ca**20081116022735]
+[added nudge.php action file
+csarven@controlyourself.ca**20081116033155]
+[fix nudge typo and add emailnotifynudge to laconica.ini
+millette@controlyourself.ca**20081117001644]
+[emailnotifynudge added to User.php class manually (how to auto-gen?)
+millette@controlyourself.ca**20081117003010]
+[nudge: only show it when other person has enabled it.
+millette@controlyourself.ca**20081117154147]
+[nudge : added js code to enable ajax
+millette@controlyourself.ca**20081117173144]
+[nudge: better nudge email, better nudge disable language.
+millette@controlyourself.ca**20081117175627]
+[small nudge enhancements
+millette@controlyourself.ca**20081118155643]
+[Favorites icon changes
+csarven@controlyourself.ca**20081117181511
+ Favorite (full heart) is using the twotone icon library from
+ http://www.upstartblogger.com/free-twotone-icons
+
+ Disfavor (empty heart with outline) is a modified version
+]
+[Feed icon change
+csarven@controlyourself.ca**20081118185649]
+[Checkmark icon change
+csarven@controlyourself.ca**20081118190030]
+[Favor icon states fixed
+csarven@controlyourself.ca**20081118194444]
+[Twitter bridge - don't delete Twitter users. Update them instead.
+zach@controlyourself.ca**20081114053044]
+[trac685 Twitter bridge - Sync Twitter friends
+zach@controlyourself.ca**20081117024624]
+[trac685 Twitter bridge - Shell script to sync all users' Twitter friends
+Zach Copley <zach@controlyourself.ca>**20081119011128]
+[Twitter bridge - fixed a bad call to Foreign_user
+Zach Copley <zach@controlyourself.ca>**20081119200839]
+[Twitter bridge - shell script wasn't checking FOREIGN_FRIEND_RECV bit
+Zach Copley <zach@controlyourself.ca>**20081119204501]
+[abstract people lists from search results
+Evan Prodromou <evan@prodromou.name>**20081120105027]
+[correct constructor for PeopleSearchResults
+Evan Prodromou <evan@prodromou.name>**20081120105223]
+[better looping in profile list
+Evan Prodromou <evan@prodromou.name>**20081120105726]
+[display subscriptions/subscribers as a list
+Evan Prodromou <evan@prodromou.name>**20081120113839]
+[do page offsets correctly (depending on display type)
+Evan Prodromou <evan@prodromou.name>**20081120114137]
+[increase PROFILES_PER_PAGE from 10 to 20
+Evan Prodromou <evan@prodromou.name>**20081120114156]
+[remove unnecessary variables from subs query
+Evan Prodromou <evan@prodromou.name>**20081120122352]
+[correct pagination criteria
+Evan Prodromou <evan@prodromou.name>**20081120122411]
+[fix empty results
+Evan Prodromou <evan@prodromou.name>**20081120122620]
+[show error on empty gallery
+Evan Prodromou <evan@prodromou.name>**20081120122709]
+[stop trying to get count from query
+Evan Prodromou <evan@prodromou.name>**20081120123146]
+[links to different display options for subscriptions
+Evan Prodromou <evan@prodromou.name>**20081120142914]
+[add nickname to list/icons links
+Evan Prodromou <evan@prodromou.name>**20081120143045]
+[forgot my dollar sign
+Evan Prodromou <evan@prodromou.name>**20081120143203]
+[more pagination math
+Evan Prodromou <evan@prodromou.name>**20081120143840]
+[add all params to subscribers
+Evan Prodromou <evan@prodromou.name>**20081120144300]
+[break ties using profile ID for order
+Evan Prodromou <evan@prodromou.name>**20081120145619]
+[try to fix up pagination again
+Evan Prodromou <evan@prodromou.name>**20081120145814]
+[New public tabs - Public, Recent tags, Featured, and Favorited
+Zach Copley <zach@controlyourself.ca>**20081120071930]
+[add new config variables
+Evan Prodromou <evan@prodromou.name>**20081120201502]
+[more ajax coming (un-sub)
+millette@controlyourself.ca**20081118174857]
+[Copy of (un)subscribe forms in util.php
+csarven@controlyourself.ca**20081120202448
+ Will remove the copies in showstream.php once everything is okay.
+]
+[common_(un)subscribe_form
+Evan Prodromou <evan@prodromou.name>**20081120203528]
+[float subscribe button right in profile list
+Evan Prodromou <evan@prodromou.name>**20081120204022]
+[fixup CSS for profile_single
+Evan Prodromou <evan@prodromou.name>**20081120204147]
+[fixup this pointer
+Evan Prodromou <evan@prodromou.name>**20081120204347]
+[don't show sub/unsub on your own record!
+Evan Prodromou <evan@prodromou.name>**20081120204725]
+[whitespace diff on Notice_inbox
+Evan Prodromou <evan@prodromou.name>**20081120205319]
+[whitespace diffs in User.php
+Evan Prodromou <evan@prodromou.name>**20081120205421]
+[add profile tags to DB
+Evan Prodromou <evan@prodromou.name>**20081120205506]
+[let users set their own profile tags from profilesettings
+Evan Prodromou <evan@prodromou.name>**20081120214821]
+[fix require in Profile_tag.php
+Evan Prodromou <evan@prodromou.name>**20081120214945]
+[correct tags method for user
+Evan Prodromou <evan@prodromou.name>**20081120215222]
+[correct name for param
+Evan Prodromou <evan@prodromou.name>**20081120215508]
+[show self-tags
+Evan Prodromou <evan@prodromou.name>**20081120215751]
+[add peopletag action for tagged people
+Evan Prodromou <evan@prodromou.name>**20081120224207]
+[fix instructions in peopletag
+Evan Prodromou <evan@prodromou.name>**20081120224429]
+[p-wrapper for instructions
+Evan Prodromou <evan@prodromou.name>**20081120224540]
+[bad page
+Evan Prodromou <evan@prodromou.name>**20081120224708]
+[fix timestamp name
+Evan Prodromou <evan@prodromou.name>**20081120224918]
+[links to people tags
+Evan Prodromou <evan@prodromou.name>**20081120225137]
+[show self-tags in profile list
+Evan Prodromou <evan@prodromou.name>**20081120225917]
+[sphinx search of people
+millette@controlyourself.ca**20081120211347]
+[Only show 'Recent tags' tab for tag cloud, not for tag streams
+Zach Copley <zach@controlyourself.ca>**20081120212142]
+[Public tabs - only show 'Featured' tab when featured users are defined in config.php
+Zach Copley <zach@controlyourself.ca>**20081120213022]
+[Public tabs - added instructions for 'Featured' and 'Favorited'; removed notice input boxes
+Zach Copley <zach@controlyourself.ca>**20081120214557]
+[(Un)Subscribe form using ajaxForm()
+csarven@controlyourself.ca**20081120232655]
+[tag other users
+Evan Prodromou <evan@prodromou.name>**20081121002038]
+[fix $profile in profilelist
+Evan Prodromou <evan@prodromou.name>**20081121002402]
+[fix link to tagother
+Evan Prodromou <evan@prodromou.name>**20081121003108]
+[fix some stuff with tagother link
+Evan Prodromou <evan@prodromou.name>**20081121003338]
+[a little better presentation for tag-other
+Evan Prodromou <evan@prodromou.name>**20081121003608]
+[missed $tags in setTags
+Evan Prodromou <evan@prodromou.name>**20081121003655]
+[importNode bugfix for undefined node
+csarven@controlyourself.ca**20081120234923]
+[only show tags if there's a logged-in user
+Evan Prodromou <evan@prodromou.name>**20081121004336]
+[Don't allow user to send a new message or nudge right after subscribing to another contact
+csarven@controlyourself.ca**20081120235752]
+[fancy url for tagother
+Evan Prodromou <evan@prodromou.name>**20081121005216]
+[show tags that the owner added, not that the current user added
+Evan Prodromou <evan@prodromou.name>**20081121005631]
+[Public 'Featured' tab now shows profiles instead of notices!
+Zach Copley <zach@controlyourself.ca>**20081121005338]
+[Tag markup and styling for tag_self, tag_user, form#tag_user
+csarven@controlyourself.ca**20081121023827]
+[fancier urls for tagged subscriptions/subscribers
+Evan Prodromou <evan@prodromou.name>**20081121025749]
+[fix tag links in subs
+Evan Prodromou <evan@prodromou.name>**20081121154218]
+[Linking directly from Your tags instead of Tag user
+csarven@controlyourself.ca**20081121031811]
+[rel-bookmark not required because hAtom is not present
+csarven@controlyourself.ca**20081121153517]
+[Profile CSS bugfix
+csarven@controlyourself.ca**20081121155829]
+[Removing empty element no longer in use
+csarven@controlyourself.ca**20081121160208]
+[Fixing bio alignment
+csarven@controlyourself.ca**20081121161645]
+[sphinx search for notices
+millette@controlyourself.ca**20081120215041]
+[sphinx integration for notices and profiles
+millette@controlyourself.ca**20081123185136]
+[conflict resolution on people search
+millette@controlyourself.ca**20081123190555]
+[sphinx: fallback if no connection
+millette@controlyourself.ca**20081123201616]
+[EXPERIMENTAL PATCH #3 - ajax response for newnotice.php
+Zach Copley <zach@controlyourself.ca>**20081122043145]
+[merge save and ajax save
+Evan Prodromou <evan@prodromou.name>**20081123014003]
+[PostNotice AJAX working in all browsers except IE
+csarven@controlyourself.ca**20081123015559]
+[Don't display avatars when posting to personal streams via ajax
+Zach Copley <zach@controlyourself.ca>**20081123022902]
+[Set encoding for xml response in newnotice.php to UTF-8
+Zach Copley <zach@controlyourself.ca>**20081123183613]
+[Send raw UTF-8 chars instead of escaped entities in newnotice.php's ajax response
+Zach Copley <zach@controlyourself.ca>**20081123193727]
+[Allow the toggling of XMLWriter's indenting on and off
+Zach Copley <zach@controlyourself.ca>**20081123211348
+
+ IE needs and unindented XML response in for ajax calls.
+]
+[Added 'Help' menu item to the header menu (in addition to the footer menu)
+Zach Copley <zach@controlyourself.ca>**20081123212532]
+[Removed JS alert and minor cleanup
+csarven@controlyourself.ca**20081123213458]
+[sphinx search config.php.sample defaults
+millette@controlyourself.ca**20081124005402]
+[filter galleries by tag
+Evan Prodromou <evan@prodromou.name>**20081124013928]
+[show dropdown of tags only when tags are available and add tags function to profile
+Evan Prodromou <evan@prodromou.name>**20081124015802]
+[don't get self-tags
+Evan Prodromou <evan@prodromou.name>**20081124015927]
+[fix tag link
+Evan Prodromou <evan@prodromou.name>**20081124020029]
+[better tag handling for profile lists
+Evan Prodromou <evan@prodromou.name>**20081124024434]
+[sphinx documentation and sample config file
+millette@controlyourself.ca**20081124023036]
+[include action in tags
+csarven@controlyourself.ca**20081124025308]
+[only get tags for this profile list type
+Evan Prodromou <evan@prodromou.name>**20081124031549]
+[Make replies to @#
+Evan Prodromou <evan@prodromou.name>**20081124034952]
+[little better handling of @#
+Evan Prodromou <evan@prodromou.name>**20081124035814]
+[incorrect use of match results
+Evan Prodromou <evan@prodromou.name>**20081124040224]
+[nudge: added rule to htaccess.sample (and removed duplicate line)
+millette@controlyourself.ca**20081124033659]
+[Added stanza about Twitter friends syncing to the README
+Zach Copley <zach@controlyourself.ca>**20081124041832]
+[README for new version
+Evan Prodromou <evan@prodromou.name>**20081124043723]
+[sphinx scripts
+millette@controlyourself.ca**20081124044435]
+[Subscriptions tag filtering and views
+csarven@controlyourself.ca**20081124045319]
+[retain links in List and Icon switch
+Evan Prodromou <evan@controlyourself.ca>**20081124045924]
+[sphinx documentation for the provided scripts
+millette@controlyourself.ca**20081124050037]
+[fixing README conflict
+millette@controlyourself.ca**20081124050556]
+[redirect on a post from tag dropdown
+Evan Prodromou <evan@controlyourself.ca>**20081124051429]
+[correct self_url without cookie stuff
+Evan Prodromou <evan@controlyourself.ca>**20081124052250]
+[Tag filtering CSS fixes for IE
+csarven@controlyourself.ca**20081124052230] \ No newline at end of file
diff --git a/_darcs/inventories/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz b/_darcs/inventories/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz
new file mode 100644
index 000000000..15e9ab282
--- /dev/null
+++ b/_darcs/inventories/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz
@@ -0,0 +1,5 @@
+Starting with tag:
+[TAG 0.6.3
+Evan Prodromou <evan@controlyourself.ca>**20081124052429]
+[a couple more items, release nickname
+Evan Prodromou <evan@controlyourself.ca>**20081124053237] \ No newline at end of file
diff --git a/_darcs/inventories/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz b/_darcs/inventories/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz
new file mode 100644
index 000000000..b0523d306
--- /dev/null
+++ b/_darcs/inventories/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz
@@ -0,0 +1,440 @@
+Starting with tag:
+[TAG 0.6.3
+Evan Prodromou <evan@controlezvous.ca>**20081124053335]
+[small correction to sphinx scripts (path to sphinx.conf)
+millette@controlyourself.ca**20081124053341]
+[whitespace and fixup problem with blank string
+Evan Prodromou <evan@controlyourself.ca>**20081124150638]
+[add gettext as a prereq
+Evan Prodromou <evan@controlyourself.ca>**20081124183054]
+[support microsummaries
+Evan Prodromou <evan@controlyourself.ca>**20081124223533]
+[microsummary doesn't need stream stuff
+Evan Prodromou <evan@controlyourself.ca>**20081124223733]
+[better output for microsummary
+Evan Prodromou <evan@controlyourself.ca>**20081124223848]
+[correct the output formats for api user timelines
+Evan Prodromou <evan@controlyourself.ca>**20081124234115]
+[fix problems with blank tag strings (!)
+Evan Prodromou <evan@controlyourself.ca>**20081125000556]
+[better link
+Evan Prodromou <evan@controlyourself.ca>**20081127162551]
+[lost the URL
+Evan Prodromou <evan@controlyourself.ca>**20081127162720]
+[don't use list display -- it's the default
+Evan Prodromou <evan@controlyourself.ca>**20081127162805]
+[use full alphanum for incoming email addresses
+Evan Prodromou <evan@controlyourself.ca>**20081129233637]
+[don't show self-subscriptions in FOAF
+Evan Prodromou <evan@controlyourself.ca>**20081130213755]
+[change is_local flag for blacklisted users
+Evan Prodromou <evan@controlyourself.ca>**20081202184258
+
+ Changed the flag on notices that says whether the notice is local, so
+ that it's -1 for local-but-blacklisted. This should keep blacklisted
+ users off the public timeline.
+
+]
+[check for blank email when rejecting a dupe
+Evan Prodromou <evan@controlyourself.ca>**20081202185343]
+[whitespace in actions/register
+Evan Prodromou <evan@controlyourself.ca>**20081202185444]
+[add instructions to the public page for people who aren't logged in
+Evan Prodromou <evan@controlyourself.ca>**20081202193857]
+[better formatting for home page
+Evan Prodromou <evan@controlyourself.ca>**20081202194027]
+[cleanup whitespace in public.php
+Evan Prodromou <evan@controlyourself.ca>**20081202194043]
+[better registration instructions
+Evan Prodromou <evan@controlyourself.ca>**20081202194633]
+[better instructions
+Evan Prodromou <evan@controlyourself.ca>**20081202194816]
+[check for license compatibility
+Evan Prodromou <evan@controlyourself.ca>**20081203032632]
+[whitespace fixup in userauthorization
+Evan Prodromou <evan@controlyourself.ca>**20081203032650]
+[add common_compatible_license() function
+Evan Prodromou <evan@controlyourself.ca>**20081203032705]
+[whitespace cleanup
+Evan Prodromou <evan@controlyourself.ca>**20081203032743]
+[new auto-reply regexp (thanks @lilyhill!)
+Evan Prodromou <evan@controlyourself.ca>**20081204174754]
+[use content namespace to add HTML to the notice output
+Evan Prodromou <evan@prodromou.name>**20081205152445]
+[whitespace changes in rssaction
+Evan Prodromou <evan@prodromou.name>**20081205152521]
+[HTML output in RSS 2.0 and Atom
+Evan Prodromou <evan@prodromou.name>**20081205160205]
+[better error reporting for rememberme cookie handling
+Evan Prodromou <evan@prodromou.name>**20081209170413
+
+ rememberme cookies are probably the most complained-about parts of the
+ system. We use "weak", one-use, low-info cookies that don't allow
+ changing settings like passwords or email addresses.
+
+ This change adds some better error-reporting to the rememberme
+ function. Hopefully we'll find out if there are other rm problem.
+
+]
+[cache current user in a global variable
+Evan Prodromou <evan@prodromou.name>**20081209173402]
+[common_warning() doesn't exist
+Evan Prodromou <evan@prodromou.name>**20081209174233]
+[slightly better reporting when setting rememberme cookies
+Evan Prodromou <evan@prodromou.name>**20081209175446]
+[slightly better rememberme logic in finishopenidlogin
+Evan Prodromou <evan@prodromou.name>**20081209180330]
+[add some transaction voodoo to the insert for rememberme cookies
+Evan Prodromou <evan@prodromou.name>**20081209185424]
+[lets an admin set the password for a user
+Evan Prodromou <evan@prodromou.name>**20081207192917
+
+ A small utility script for updating users' passwords. Since I have to
+ do this once in a while, I figured it was good to have a script for.
+ Will also (I think) update memcached.
+
+]
+[edit throttling
+Evan Prodromou <evan@prodromou.name>**20081210174722]
+[api posts cannot use one of the reserved sources: web, omb, mail or xmpp.
+millette@controlyourself.ca**20081210173726]
+[make sure passed profile_id is valid in Notice::saveNew
+millette@controlyourself.ca**20081210181123]
+[Ban certain users from posting by nickname and/or ID
+Zach Copley <zach@controlyourself.ca>**20081210191337]
+[don't check edit throttle if throttle not enabled
+Evan Prodromou <evan@prodromou.name>**20081210194335]
+[always return a variable by reference
+Evan Prodromou <evan@prodromou.name>**20081210233503]
+[Remove a bunch of extraneous logging statements
+Zach Copley <zach@controlyourself.ca>**20081211024233]
+[Twitter bridge: update to handle Twitter API changes to verify_credentials method
+Zach Copley <zach@controlyourself.ca>**20081211100106]
+[only shorten >= 30 char links with some services.
+millette@controlyourself.ca**20081125010332]
+[fix text describe shortening service usage.
+millette@controlyourself.ca**20081125010516]
+[Dec/Increment user's number of Subscribers in Portfolio Un/Subscribe event.
+csarven@controlyourself.ca**20081126182317]
+[trac155 first step to delete account
+millette@controlyourself.ca**20081123215059]
+[a step closer to deleting a user and hosts posts from the db
+millette@controlyourself.ca**20081124005054]
+[only expand URLs we shortened ourselves + only shorten if notice > 140 chars
+millette@controlyourself.ca**20081128200004]
+[shorten urls for posts > 140 chars only, from anywhere. Only show long urls in title attributes for links we shortened ourselves.
+millette@controlyourself.ca**20081128210114]
+[use label tab for checkboxes
+millette@controlyourself.ca**20081128223646]
+[fix shorturl_api so it works even when 3rd party is down.
+millette@controlyourself.ca**20081129012446]
+[new upstream version of jquery form
+Evan Prodromou <evan@controlyourself.ca>**20081130231627]
+[trac831 disables status_form input submit onsubmit
+csarven@controlyourself.ca**20081201175028]
+[add init, last_modified to actions
+Evan Prodromou <evan@controlyourself.ca>**20081202034736]
+[init() returns boolean success value
+Evan Prodromou <evan@controlyourself.ca>**20081202040549]
+[trim whitespace
+Evan Prodromou <evan@controlyourself.ca>**20081202041243]
+[copy-and-paste typo
+Evan Prodromou <evan@controlyourself.ca>**20081202041508]
+[whitespace changes in action.php
+Evan Prodromou <evan@controlyourself.ca>**20081202041532]
+[better logic for if-modified-since
+Evan Prodromou <evan@controlyourself.ca>**20081202042159]
+[better header for not-modified message
+Evan Prodromou <evan@controlyourself.ca>**20081202042334]
+[add ETag handling
+Evan Prodromou <evan@controlyourself.ca>**20081202044211]
+[better HTTP timestamp
+Evan Prodromou <evan@controlyourself.ca>**20081202044441]
+[generate an etag for shownotice
+Evan Prodromou <evan@controlyourself.ca>**20081202045021]
+[notices have a create stamp not a modified stamp
+Evan Prodromou <evan@controlyourself.ca>**20081202045320]
+[end ETag with quotes
+Evan Prodromou <evan@controlyourself.ca>**20081202045544]
+[remove init from rssaction
+Evan Prodromou <evan@controlyourself.ca>**20081202045825]
+[cleanup whitespace in rssaction
+Evan Prodromou <evan@controlyourself.ca>**20081202045856]
+[add attributes for shownotice
+Evan Prodromou <evan@controlyourself.ca>**20081202050200]
+[better microformats from @singpolyma
+Evan Prodromou <evan@prodromou.name>**20081203035947]
+[fix conflict with Robin's changes on trunk
+Evan Prodromou <evan@controlyourself.ca>**20081203041730]
+[rollback removing init from rssaction
+Evan Prodromou <evan@controlyourself.ca>**20081203172856]
+[change Action::init() to Action::prepare() to avoid conflict with RSS10Action::init()
+Evan Prodromou <evan@controlyourself.ca>**20081203173225]
+[parent::init() -> parent::prepare()
+Evan Prodromou <evan@controlyourself.ca>**20081203173423]
+[permanent redirect on non-canonical nickname
+Evan Prodromou <evan@controlyourself.ca>**20081203174646]
+[unsubscribe from a remote profile
+Evan Prodromou <evan@controlyourself.ca>**20081203180945]
+[if the site is marked as private, redirect anon users to login
+Evan Prodromou <evan@controlyourself.ca>**20081203182421]
+[allow doc and api calls from private
+Evan Prodromou <evan@controlyourself.ca>**20081203182830]
+[fine-tuning the privacy flag
+Evan Prodromou <evan@controlyourself.ca>**20081203183432]
+[add finishopenidlogin to list of actions that anon users can do
+Evan Prodromou <evan@controlyourself.ca>**20081203183638]
+[move checkbox label formatting from identica theme to default theme
+Evan Prodromou <evan@controlyourself.ca>**20081203184254]
+[allow registrations even when site is private (for invites, etc.)
+Evan Prodromou <evan@controlyourself.ca>**20081203184748]
+[don't allow new users if the site is closed or invite only in OpenID
+Evan Prodromou <evan@controlyourself.ca>**20081203185022]
+[allow recoverpassword in private mode
+Evan Prodromou <evan@controlyourself.ca>**20081203185254]
+[prepare the action obj for API
+Evan Prodromou <evan@controlyourself.ca>**20081203210358]
+[Using abbr.published @title and ISO8601
+csarven@controlyourself.ca**20081203220637]
+[add profile block data object
+Evan Prodromou <evan@controlyourself.ca>**20081203222619]
+[whitespace in laconica.sql
+Evan Prodromou <evan@controlyourself.ca>**20081203222819]
+[delete user and all traces from the db.
+millette@controlyourself.ca**20081203164942]
+[moving delete profile to its own space.
+millette@controlyourself.ca**20081203192658]
+[done delete own profile (see other settings)
+millette@controlyourself.ca**20081204180233]
+[trac768 keep transparency of resized avatar images.
+millette@controlyourself.ca**20081204182953]
+[trac494 email is now in recipient's language
+millette@controlyourself.ca**20081204203433]
+[send all emails in the destination's language.
+millette@controlyourself.ca**20081204212455]
+[set email content type to text/plain; utf-8
+millette@controlyourself.ca**20081204213414]
+[trac855 trac856 and Feed list for the Favorited page
+csarven@controlyourself.ca**20081205221402]
+[fixup the problems with the repo patch
+Evan Prodromou <evan@controlyourself.ca>**20081205153325]
+[remove favoritedrss
+Evan Prodromou <evan@prodromou.name>**20081207165900
+
+ I've removed the favoritedrss action, and removed the links from the
+ favorited page.
+
+ Most-favorited is not a good candidate for an RSS format. RSS works
+ well for series that work sequentially -- new things always come in at
+ the top.
+
+ This just isn't the case with "most favorited". The favorited notices
+ list on Identi.ca is sorted by how many times a message is favorited.
+
+ What happens if a notice used to be on that list, then falls off
+ because other messages get more faves, then gets back on because it
+ gets faved again? Or if a notice moves "up" on the list?
+
+]
+[(Un)Subscribed submit is disabled and greyed out while ajaxForm process
+csarven@controlyourself.ca**20081208051212]
+[Removed the "sun", process and checkmark icons from Nudge
+csarven@controlyourself.ca**20081208053011]
+[Favorited -> Popular
+Evan Prodromou <evan@prodromou.name>**20081208053543]
+[add class to body element
+Evan Prodromou <evan@prodromou.name>**20081208055023]
+[Nudge disabled and greyed out while ajaxForm process
+csarven@controlyourself.ca**20081208055812]
+[low-level management of blocks
+Evan Prodromou <evan@controlyourself.ca>**20081208031008]
+[pass profile id for subscriptions rather than user name
+Evan Prodromou <evan@controlyourself.ca>**20081208031312]
+[don't save replies from a blocked profile to the blocking user
+Evan Prodromou <evan@controlyourself.ca>**20081208031408]
+[don't allow remote subscribes from blocked profiles
+Evan Prodromou <evan@controlyourself.ca>**20081208031532]
+[remove unused code from profile list
+Evan Prodromou <evan@controlyourself.ca>**20081208033132]
+[add block form to subscribers list and profile page
+Evan Prodromou <evan@controlyourself.ca>**20081208055511
+
+ I added a small form for blocking users to profiles in the profile
+ list, and also to the profile page.
+
+ I also added an action to handle the results of blocking someone.
+
+ This required some changes to the profile list class (so I could
+ add the block form), so I made them. And the gallery class lets its
+ subclasses return a subclass of ProfileList for their profile list.
+
+]
+[fixup handle function in block action
+Evan Prodromou <evan@controlyourself.ca>**20081208062841]
+[add header and footer
+Evan Prodromou <evan@controlyourself.ca>**20081208063056]
+[add fancy url for block action
+Evan Prodromou <evan@controlyourself.ca>**20081208071521]
+[return true from block action
+Evan Prodromou <evan@controlyourself.ca>**20081208071720]
+[add block name to block form
+Evan Prodromou <evan@controlyourself.ca>**20081208072519]
+[change element_start to element for instructions
+Evan Prodromou <evan@controlyourself.ca>**20081208072629]
+[static to not static
+Evan Prodromou <evan@controlyourself.ca>**20081208072958]
+[copyright block and better load for Memcached_DataObject in profile_block
+Evan Prodromou <evan@controlyourself.ca>**20081208073209]
+[add returnto information to the block form
+Evan Prodromou <evan@controlyourself.ca>**20081208170931]
+[error in figuring out actions to return to
+Evan Prodromou <evan@controlyourself.ca>**20081208172812]
+[add an unblock form
+Evan Prodromou <evan@controlyourself.ca>**20081208173722]
+[enable block API
+Evan Prodromou <evan@controlyourself.ca>**20081208185728]
+[correctly init the document type for block API actions
+Evan Prodromou <evan@controlyourself.ca>**20081208193939]
+[pass profile correctly to show_owner_controls
+Evan Prodromou <evan@controlyourself.ca>**20081208201351]
+[pass returnto info from subscribers to block form
+Evan Prodromou <evan@controlyourself.ca>**20081208201453]
+[Fixed duplicate @class assignment to element
+csarven@controlyourself.ca**20081208215420]
+[database changes to say whether to deliver messages for a subscription
+Evan Prodromou <evan@controlyourself.ca>**20081209033637]
+[removed Profile_block::get, changed to use pkeyGet
+Evan Prodromou <evan@controlyourself.ca>**20081209041227]
+[fix Profile_block::get() again
+Evan Prodromou <evan@controlyourself.ca>**20081209041648]
+[trac540 - Add 'since' param to Twitter-compatible API calls
+Zach Copley <zach@controlyourself.ca>**20081209055345]
+[trac750 - Exoskeleton of a nascent Facebook app
+Zach Copley <zach@controlyourself.ca>**20081206030132]
+[trac750 - linked in CSS file and added CSS for profile box
+Zach Copley <zach@controlyourself.ca>**20081207235925
+ - added button for adding a box to the profile on settings
+]
+[trac750 Remove foreign link when Facebook user removes our app
+Zach Copley <zach@controlyourself.ca>**20081208005522]
+[trac750 added Facebook client libs for PHP to extlib dir
+Zach Copley <zach@controlyourself.ca>**20081208005816]
+[trac750 Use Facebook dialogs for success and error messages during initial setup / login
+Zach Copley <zach@controlyourself.ca>**20081208015412]
+[trac750 add timestamp to CSS file to keep Facebook's caching from ignoring our changes
+Zach Copley <zach@controlyourself.ca>**20081208051859]
+[fix registration bug - fatal error when sending email confirmation
+Zach Copley <zach@controlyourself.ca>**20081209082750]
+[New AjaxWebChannel for returning ajaxy responses to notice input box commands
+Zach Copley <zach@controlyourself.ca>**20081209210654]
+[resolve conflicts
+Evan Prodromou <evan@controlyourself.ca>**20081210014619]
+[set jabber and sms flags on subscriptions
+Evan Prodromou <evan@controlyourself.ca>**20081210024416]
+[on broadcast jabber and sms to people with the flags set
+Evan Prodromou <evan@controlyourself.ca>**20081210024706]
+[resolve conflicts in config.php.sample
+Evan Prodromou <evan@controlyourself.ca>**20081211162558]
+[resolve whitespace changes in Notice.php
+Evan Prodromou <evan@controlyourself.ca>**20081211163150]
+[whitespace conflicts in User.php
+Evan Prodromou <evan@controlyourself.ca>**20081211163434]
+[missing argument
+Evan Prodromou <evan@prodromou.name>**20081211171353]
+[Nudge JS process and image removal
+Sarven Capadisli <csarven@controlyourself.ca>**20081211021755]
+[add a menu to subs
+Evan Prodromou <evan@controlyourself.ca>**20081211180622]
+[upgrade XMPPHP to upstream version
+Evan Prodromou <evan@controlyourself.ca>**20081211181500]
+[xmppdaemon uses 'xml' rather than 'raw' accessor
+Evan Prodromou <evan@controlyourself.ca>**20081211183250]
+[better output in subscribe
+Evan Prodromou <evan@controlyourself.ca>**20081211183756]
+[add User-Agent to OMB requests
+Evan Prodromou <evan@controlyourself.ca>**20081211185525]
+[Array needs initializing before it's returned. How did this code ever work?
+Zach Copley <zach@controlyourself.ca>**20081211022557]
+[more places where required since param skipped for Notice::getStreamDirect
+Evan Prodromou <evan@controlyourself.ca>**20081211195259]
+[fix id of common_unsubscribe_form
+Evan Prodromou <evan@controlyourself.ca>**20081211200239]
+[Fix bad arguments that were throwing PHP warnings
+Zach Copley <zach@controlyourself.ca>**20081211203659]
+[Profile block base style
+Sarven Capadisli <csarven@controlyourself.ca>**20081211201717]
+[Removal of unused processing style
+Sarven Capadisli <csarven@controlyourself.ca>**20081211204814]
+[Standardising XHR responses to utf-8 and indenting
+Sarven Capadisli <csarven@controlyourself.ca>**20081211211814]
+[Setting nudge XHR response to utf-8 and indenting
+Sarven Capadisli <csarven@controlyourself.ca>**20081211212046]
+[make a new NoticeList widget and call it from StreamAction
+Evan Prodromou <evan@controlyourself.ca>**20081211231252
+
+ I made a new notice-list widget (like the profile list) and call it
+ from StreamAction. This cleans up some of the mess in the various
+ notice-stream-showing classes.
+
+ I also changed show-stream so it uses a subclass of NoticeList that
+ doesn't show author info (which is unnecessary).
+
+]
+[don't use undefined source_link; instead, just link
+Evan Prodromou <evan@controlyourself.ca>**20081211231925]
+[take out c&p code from newnotice, use noticelist classes instead
+Evan Prodromou <evan@controlyourself.ca>**20081211232000]
+[remove unused $notice param from NoticeListItem::show()
+Evan Prodromou <evan@prodromou.name>**20081211232811]
+[fixup function names for show_avatar() and show_nickname()
+Evan Prodromou <evan@prodromou.name>**20081211232921]
+[$profile -> $this->profile in noticelistitem
+Evan Prodromou <evan@prodromou.name>**20081211233039]
+[misspelled INSTALLDIR in newnotice.php
+Evan Prodromou <evan@prodromou.name>**20081211233515]
+[switch labels for tabs on subs
+Evan Prodromou <evan@prodromou.name>**20081211234741]
+[Alerting the direct message XHR response
+Sarven Capadisli <csarven@controlyourself.ca>**20081211225808]
+[Better titles and instructions for Featured and Popular tabs
+Zach Copley <zach@controlyourself.ca>**20081211235341
+ (Do not be afraid of this patch!)
+]
+[Indenting the XML response
+Sarven Capadisli <csarven@controlyourself.ca>**20081212030820]
+[Block styles in Subscribers
+Sarven Capadisli <csarven@controlyourself.ca>**20081212035117]
+[Delivery method in Subscriptions
+Sarven Capadisli <csarven@controlyourself.ca>**20081212035255]
+[fix source name
+Evan Prodromou <evan@prodromou.name>**20081212041543]
+[documentation and version number
+Evan Prodromou <evan@prodromou.name>**20081212043201]
+[stub out facebook app and delete profile
+Evan Prodromou <evan@prodromou.name>**20081212044600]
+[Using single id for both profile block and unblock
+Sarven Capadisli <csarven@controlyourself.ca>**20081212043240]
+[don't block yourself!
+Evan Prodromou <evan@prodromou.name>**20081212051830]
+[link error with notice sources
+Evan Prodromou <evan@prodromou.name>**20081212054448]
+[don't show form if subscription can't be found (weirdly)
+Evan Prodromou <evan@prodromou.name>**20081212055713]
+[remove spaces from atlink for unfound name
+Evan Prodromou <evan@prodromou.name>**20081212174414]
+[remove content:items from rss output
+Evan Prodromou <evan@prodromou.name>**20081212195520]
+[trim the body of an incoming message
+Evan Prodromou <evan@prodromou.name>**20081214002239]
+[trim some output to avoid excessive whitespace
+Evan Prodromou <evan@prodromou.name>**20081214161942]
+[get rid of hcard in @-replies
+Evan Prodromou <evan@prodromou.name>**20081214204557]
+[Setting font-weight to normal for nicknames within notices
+Sarven Capadisli <csarven@controlyourself.ca>**20081212062337]
+[Fixed Popular tab (hopefully)
+Zach Copley <zach@controlyourself.ca>**20081212075617]
+[bug with remote subscriptions and blocks
+Evan Prodromou <evan@prodromou.name>**20081215132806]
+[correctly handle remote re-subscribe
+Evan Prodromou <evan@prodromou.name>**20081215134824] \ No newline at end of file
diff --git a/_darcs/inventories/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz b/_darcs/inventories/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz
new file mode 100644
index 000000000..46412f53a
--- /dev/null
+++ b/_darcs/inventories/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz
@@ -0,0 +1,13 @@
+Starting with tag:
+[TAG 0.6.4
+Evan Prodromou <evan@controlezvous.ca>**20081215205036]
+[Twitter-compatible API - update verify_credentials to return profile
+Zach Copley <zach@controlyourself.ca>**20081216030455]
+[XHR response fix for IE
+Sarven Capadisli <csarven@controlyourself.ca>**20081216063751]
+[Direct message XHR response fix for IE and minor tweaks
+Sarven Capadisli <csarven@controlyourself.ca>**20081216071818]
+[two undefined variables in noticelist.php
+Evan Prodromou <evan@prodromou.name>**20081220204320]
+[bugpatch release code
+Evan Prodromou <evan@controlezvous.ca>**20081220204852] \ No newline at end of file
diff --git a/_darcs/inventories/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz b/_darcs/inventories/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz
new file mode 100644
index 000000000..10188700b
--- /dev/null
+++ b/_darcs/inventories/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz
@@ -0,0 +1,5 @@
+Starting with tag:
+[TAG 0.6.4.1
+Evan Prodromou <evan@controlezvous.ca>**20081220204906]
+[Twitter-bridge: fix for Twitter's new strict policy of rejecting HTTP POSTs with invalid "expect" headers (not the same patch as in trunk)
+Zach Copley <zach@controlyourself.ca>**20081226051716] \ No newline at end of file