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
106 - add a way to stick variables into documents
107 + FOAF document for user
108 + license in RSS feeds
109 + TOS checkbox on register
110 + registration instructions
112 + profile settings instructions
113 + avatar instructions
114 + password change instructions
115 + fix spacing on notices
116 + fix spacing in profile
117 - limit entry in textarea to 140 chars
118 + add a next page link to showstream
119 + add a next page link to public
120 + add a next page link to all
122 - Check licenses of all libraries for compatibility
124 + Automatically linkify URLs in notices
127 - only local notices in public stream
128 - only local notices in public RSS
129 + graphic refresh on all
130 + graphic refresh on avatar
131 + graphic refresh on doc
132 + graphic refresh on login
133 + graphic refresh on newnotice
134 + graphic refresh on password
135 + graphic refresh on profilesettings
136 + graphic refresh on public
137 + graphic refresh on register
138 - graphic refresh on remotesubscribe
139 + graphic refresh on shownotice
140 + graphic refresh on showstream
141 + graphic refresh on subscribed
142 + graphic refresh on subscriptions
143 + graphic refresh on userauthorization
144 - update default theme to use new, more semantic, HTML
145 - subscribe/unsubscribe on subscriptions page
146 - subscribe/unsubscribe on subscribed page
147 + correct use of views menu in settings
148 + correct use of views menu in streams
150 + content negotiation for content type
155 - jQuery for as much as possible
156 - microid for profile page
157 - format times per user
158 - timezone preferences in Profile settings
159 - email notification on subscriptions
160 - content negotiation for interface language
161 - user preference for interface language
163 - tinyurl-ification of URLs
165 - XML sitemap generation
166 - email confirmation for registration
168 - change cookie handling for anon users to be more cache-friendly
169 - content negotiation for encoding
170 - If-Modified-Since support
173 - check license compatibility for remote subscribe
174 - optional FOAF URL in openmicroblogging exchange
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?)