4 This is a roadmap of tasks for different versions of the
5 [Laconica](http://laconi.ca/) software. It's meant to help answer the
6 question, "Is Laconica ever going to have such-and-such a feature?" or
7 "When will Laconica do such-and-such?"
12 This was an internal milestone release, mostly for developing the core
21 + disallow login if user is logged in
22 + disallow register if user is logged in
23 + common_current_user()
25 + session variable for login
30 + subscribe links on profile
33 + disallow direct to PHP files
35 + configuration for DB_DataObject
37 + new notice redirects to notice page
38 + date in shown notice links to notice page
40 + configuration system ($config)
45 Another internal milestone. Bumped up from cruddy caveman HTML to a
46 borrowed design from [OSWD](http://www.oswd.org/), added a lot of RSS
47 generation, and more careful form validation.
49 + design from Open Source Web Designs
51 + add H2 for each page section
52 + default to public stream
56 + show current values in profile settings
57 + save profile URL in profilesettings
58 + save profile URL on registration
59 + require valid nicknames
60 + reject empty notices
61 + validate registration form results
62 + validate profilesettings form results
63 + validate newnotice form results
64 + remove validation code from classes
65 + use only canonical usernames
66 + fix layout of textarea
67 + make notices into "big links"
68 + RSS 1.0 feeds of a user's notices
69 + RSS 1.0 feeds of a user's notices + friends
70 + RSS 1.0 dump of a user's notices
71 + RSS 1.0 feed of all public notices
72 + deal with PHP quotes escaping
73 + source link in footer menu
74 + public stream link in top menu
75 + dump, fix, undump database
80 First public release (theoretically). Added distributed subscriptions,
81 "fancy" URLs, and a new graphic design for stoi.ca.
83 + YADIS document link on showstream
86 + add subscriber remote
87 + server side of user authorization
88 + server side of request token
89 + server side of access token
91 + log of consumers who ask for access
92 + receive remote notice
94 + receive remote profile update
95 + send remote profile update
96 + subscribe form for not-logged-in users on showstream
104 + add a way to stick variables into documents
105 + FOAF document for user
106 + license in RSS feeds
107 + TOS checkbox on register
108 + registration instructions
110 + profile settings instructions
111 + avatar instructions
112 + password change instructions
113 + fix spacing on notices
114 + fix spacing in profile
115 + add a next page link to showstream
116 + add a next page link to public
117 + add a next page link to all
119 + Automatically linkify URLs in notices
122 + only local notices in public stream
123 + only local notices in public RSS
124 + graphic refresh on all
125 + graphic refresh on avatar
126 + graphic refresh on doc
127 + graphic refresh on login
128 + graphic refresh on newnotice
129 + graphic refresh on password
130 + graphic refresh on profilesettings
131 + graphic refresh on public
132 + graphic refresh on register
133 + graphic refresh on remotesubscribe
134 + graphic refresh on shownotice
135 + graphic refresh on showstream
136 + graphic refresh on subscribed
137 + graphic refresh on subscriptions
138 + graphic refresh on userauthorization
139 + correct use of views menu in settings
140 + correct use of views menu in streams
141 + content negotiation for content type
148 - update default theme to use new, more semantic, HTML
150 - limit entry in textarea to 140 chars
152 - Check licenses of all libraries for compatibility
153 - jQuery for as much as possible
154 - microid for profile page
155 - format times per user
156 - timezone preferences in Profile settings
157 - email notification on subscriptions
158 - content negotiation for interface language
159 - user preference for interface language
161 - tinyurl-ification of URLs
163 - XML sitemap generation
164 - email confirmation for registration
166 - change cookie handling for anon users to be more cache-friendly
167 - content negotiation for encoding
168 - If-Modified-Since support
171 - check license compatibility for remote subscribe
172 - optional FOAF URL in openmicroblogging exchange
173 - subscribe/unsubscribe on subscriptions page
174 - subscribe/unsubscribe on subscribed page
179 - content negotiation for charset (iconv?)
181 - use only canonical email addresses
182 - allow mixed-case usernames
183 - allow non-latin usernames
184 - store canonical username for comparison and fetch
187 - RDF dump of entire site
189 - plugins and hooks and other extensibility
190 - RDFa for stream pages
191 - RDFa for subscriber pages
192 - RDFa for subscribed pages
196 - stay logged in between sessions
197 - use RSS as a subscription
198 - license per attachment
199 - forward notices to Jabber
200 - receive notices from Jabber
209 - forward notices to other IM
210 - forward notices to mobile phone
211 - receive notices from other IM
212 - receive notices from mobile phone
218 - OAuth for third-party tools (desktop, other sites)
219 - Twitter-compatible API
220 - Pownce-compatible API
221 - include twitter subscriptions (push and pull)
222 - include Pownce subscriptions (push and pull)
224 - Wrap DB_DataObject with memcached caching layer
225 - login throttle to prevent brute-force attacks
226 - form token in login to prevent XSS
231 - Atom Publishing Protocol
232 - "Universal" public feed
233 - global registry (LDAP at openmicroblogging.net, maybe?)