My favorites | Sign in
Project Home Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
Go2.me To-Do List

------------------------------------------------------------
FEATURES AND DESIGN IMPROVEMENTS
------------------------------------------------------------

- Home
- Number of views
- Number of people (day/month)
- Top users
- Form post method of posting a URL
- Info Header
- Design (see delicious page: http://delicious.com/url/6e4e9fc8547418f22ac89a5f7558e58b?show=notes_only, for inspiration)
- Info bar horizontal/vertical option
- Default based on display orientation
- Pull web page image from Sphere, Alexa or Faves?
- Help icon to explain comment format (hover?) - remove help line?
- Help landing page w/ callouts to all the things you can do with the command line
- Link statistics
- Log referers for a url - display click sources ala YouTube and bit.ly Statistics
- Log search terms and number of click through via search (info merge first?)
! Tags
- Record tags scores for top 10 tags each URL
- Recently popular tag pages (Today AND Year)
- Tag cloud on home page
- Show tags in home page and tags page - encourage cross-linking around the site
- Aggregrate related tags at top of tag page (or sidebar)
- Tag cloud format
- Incidence graph (or just summary of the tags used by links on the displayed page)?
- convert embedded comment links to g02me links automatically
- Full text search (google Search widget or API)
- Auto-tag domains (nyt.com, e.g.)
- Popularity views flags/icons
! Up/Down Arrows
- "New" marker
- Base on 2x rate on next higher halfLife scale
! Show graphical bar for score for day and up/down tick
- Hover to get numerical score X.X per day
! Replies page for users - show follow on comments on URL's user's have shared or commented on.
- Option to show /user/xxx sorted by popularity (not date of last comment)
- Need "unfollow" capability to stop getting notified
- Plan:
- Use the most recent 100 comments by a user as their "following" list.
- Annotate Map with username (incl. anon) of most recent commenter (or comment seq #)
- Highlight all comments where last commenter is NOT yourself (or comment seq # > than user's comment)
- Create RSS feed - and instructions on getting mail for the feed (feedburner?)
! Feature: New activity indicator in /user/xxx
- Annotate Map with username (incl. anon) of most recent commenter (or comment seq #)
- When viewing Info for a Map I've already commented on, update the dateViewed in that comment
- Highlight comments (yellow background?) that have recent COMMENTS later than my last dateViewed.
- Reduce duplication of URL's
- www.* vs *
- upper/lower case differences
- use initially seen URL as canonical?
! Star the info page (faster than leaving a comment - but puts it in your comment queue)
- Generate __fave comment
- Icons in user activity for Shared, Commented, Favorite/Watch/Follow, Wish List
- Custom RSS feed of favorited links (can all be in one page)
- Alternativly, "Follow" the infopage?
- Help users make live bookmarks?
X Add thousands sep for counts in analytics (info, home, tags, user)
X Add as Django filter -> already exists in humanize!
- Paging control for user activity pages
- Implement as month ranges
- Indicate in page header that older pages have NOT been updated (no need for crawlers to re-index)
- Links in home user activity page to named month ranges ("mckoss's activity for October 2008")
- Build efficient queries for all activity in a month - limit to 50 comments
- Potential for unreachable comments beyond 50 comments in any one month
- Number of (and List of) "current" users
- Sliding window of unique user counts (by minute)
- show users in last 15 minutes as "current" (merge all windows)
- update calc once each minute - memcache
- Marcelo feedback:
- One-click install in IE
- Look for IE Add to Favorites extension - window.external.AddFavorite(url, title)
- "How to use G02.ME" instead of "Install the Bookmarklet"
- Call to Action box - stand out (bigger type/box/color/graphics)
- Declutter the home page by moving "What is G02.me" to another page.
- Enable users to make custom aliases
- if 6 characters or less prepend '~'
- slugify
- display aliases in info panel
- allow 3 aliases per URL
- Polls
- Pop-up alert to set nickname on anonymous commenting
- Email notifications of watch list
- Fix styling of head to have smooth clipping of left-hand block
- Track Progeny of users
- Associate each user with a "parent" user id - first page view authored by....
- Can I show top views each week for each user's shares?
- Track one week half-life rates for each user (stored in cookies)
- share
- comment
- view
- home
- tag page view
- user page view
- Write old data to log only when user is > 1 week old (each week returning)
- Deleting comment pre-populate comment box to allow edit and re-comment
- Stemming of tags
- Tag aliases
- Tag rollup (aggregrate tags)
! Delete comment from user page (including shared)
- Fun tag animation (relative positioning)
- Home page tag clouds:
- Tags
- Users
- Domains
- Move icons to left of created column
- Save version 10 tag
- Real-time commenting in side bar
- IFrame main page
- exponential backoff polling for visits, comments, etc.
- notification (sound) option on people entering/leaving the "room"
- Map Page Redesign Checklist
- Header (32px high)
- Logo
- Link/Return to Link: http://...
- Close box
- Private (link)
- Google Link Unit
- Vertical divider (@300px - 6px wide)
- Side Panel (300 px)
- Stats (min/open)
- Creator image (50x50)
- nickname
- Created date
- Viewers
- Score
- Tags
- Referers: google, twitter (link back to pages - nofollow?)
- Report (Adult, Spam dropdown) -> adds tag (NSFW, other tags imply Adult)
- Ban button (Admin)
- Poll (min/open)
- Author view:
- 2 to 5 textboxes (on-demand creation)
- Create/Edit Button
- Unanswered view:
- Choice Buttons
- (?)
- Chat (min/open)
- User image list
- image (25x25)
- nickname
- Image (25x25)
- nickname
- (URL's shortened)
- Voice baloon - owner on left, guests on right
- Text entry/Post button
- Sponsors panel (min/open)
- house ad, sponsor,
- Allow Unicode/IDNA domains - http://en.wikipedia.org/wiki/IDNA
- Home Page checklist
- Logo
- nickname, signout, create account
- What is Go2.me?
- Benefits
- Bookmarklet install
- Create link form
- Video (link)
- Press logos/links (Tech, Blog/reviews)
- # Links
- # Viewers (Day/Month)
- Top links (Day/Month)
- Tag Cloud (Month)
- Top users (Day/Month)
- Display time
- Footer links
X cursor: pointer
X status div margin
- expand/collapse JS
- star/unstar JS
- Faved: N
- Adsense
- fix 2 pixel discrepancy
- comments scroll full width
- divider full width
! fix inline graph bar height
! signout for registered uses on mapped page not working
- only set focus on home page if control is visible in the window! (avoid scroll)
- Capture referred domains - report in analytics block (unique viewers by referrer)
- Home page table sizing - esp IE, and with run-on title text
- Report icon, and __report comment - collect reason (e.g. adult, spam, phishing, malware)
- Record __ban comments
- Admin reports on __report'ed links
- Clip long user names under image
- Replace default user image
- clip long URL's in map title bar
X Clean up comment form
X AJAX comments
- Focus should be in comment on mapped page
- don't allow digit to begin a username (e.g. "4:46 comment")\
- update times in chat window in real time
- Presence information displayed
- push Geo information from Google API to display with presence
5 Favorite link
4 User subscriptions
- Add users to active subscribers on comment or favorite
- Change activity page to show subscriptions instead of maps
- Group my anchor link
- Allow un-subscribe (by user) from his own activity page
- Trim Titles before storage
- Unit test Age
- Unit test JScript Urlize()
- Unit test toggle favorite
X allow numeric domains xxx.xxx.xxx.xxx
X <script> bug in JSON in page!
X ping - backoff activity
X honor since parameter
X time sync bugs (future dates)
X presence
X merge updates
X User state (active/idle/typing)
- favicon
! Private scope for comments - filter
! Table formatting
- Support @user replies in comments -> auto-subscribe AND hyperlink
9 Fix problems with user case different (links, login, etc.)
10 Signin/signout bugs - esp with protected pages
X Isn't csrf supposed to be a signed value (non-forgable)?
- Required signed cookie to match the csrf...
! Fix bugs in share/view/comment counts
- Replace meta analytics with eventtracking (new) calls
- Document the Lookup API
- Delete comments broken - need to remove comment from local as well as server
! Allow intranet domains (no periods)
- quota should not be affected by failed requests (10 rpm)
X Favorite (star)
! Test in IE and Chrome
! update stats of page via AJAX (visitors count)
! notify server when leaving page
- score favorites (but how to back it out?)
- update visitor count in real time
! visitor counts are incorrect (too high!)
- open user page (in new window) on chat thumb
- Fix link target for in-chat links
- don't offer to create Go2.me pages to illegal domains (e.g., go2.me pages!)
! Links in comments are not framing w/i Go2.me?
! Links to Go2.me page IS framing w/i Go2.me (backwards!)
- Multi-level domains not handled? search.twitter.com, e.g.
- Created time should update in real time
- Entertonement player
- Mobile support and testing:
- iPhone
- Android
- Blackberry
- Sidekick
"I may be one of the rare sidekick users, but the go2.me portion of the
destinantion page doesn't render properly for me. Probably because SK is ass at rendering frames." - CY
- Optimize timer to not constantly create new times - but use a repeating timer
! Home page show comments
- Show links with users currently present
- home, tag, and user pages
- Change API to be more like twitter search api syntax?
- Change the document.title on a 1 second timer to "flash" the tab when a new chat message is in the window (peter)
- Allow setting to not IFRAME the link (author of link's preference or reader's preference).
- "Personalized Link Shortening" - new Go2.me positioning
- Author-customized appearance (profile pic in header, colors, background image)
- "Powered by Go2.me" button to get referal sign-ups.
- Minimize frame to top bar (see Digg, FaceBook, Owly, BurnUrl designs) - expand for comments only.
- Twitter or Facebook connect for login - get profile picture from those accounts
- Allow drawing annotation on top of the IFRAME [Scott]
- Drawing mode (to prevent clicks to the IFRAME)
- Red circle
- Arrow
- Text overlay (voice bubbles)

------------------------------------------------------------
PLATFORMS, SYNDICATION, IMPORT/EXPORT
------------------------------------------------------------

- Widget showing number of views and shares of the current url - click to share
- Need JSON call for lookup by url (but don't increase share count)
- Remove iframe if Go2.me widget is present on page!
- Google Gadget
- Mobile
- Bookmarklet?
- Simplified and smaller display (Marcelo)
- Test on iPhone, Windows Mobile, Blackberry, G1
- AJAX not working on mobile
- G1
- Blackberry
- iPhone
- How to install bookmarklet on iPhone, G1, and Blackberry
- Import bookmarks/faves
- Sharing options
! Twitter
- TwitterFeed
- Twhirl
- Friendfeed
- Faves
- MailTo
- In-page JSCRIPT bookmaklet
- get metadata from page? (description)
- get micro-formats from page
! RSS feeds:
- user activity
- tags
- home(popular)
- user "favorites"
- user+tag
- use feedburner?
- make easy to get email update from feedburner (top page, and comments on user page)
! Twitter features
! User Profile Page - twitter info
- Anonymous twitter encrypted cookie
! RSS Feed auto-twitter
X Claim your account button
- Allow claiming of account with pseudonomyous twitter user name
X Can put encryption key to decode twitter password in a cookie - ensures we don't
store an offline usable twitter password on the server
- key = H(sServerKey, username, password) - not stored on server- saved in cookie
- passStored = E(key, twitter-password)
- twitter-password = D(key, passStored)
- Detect IE6 -> just do simple redirect to base URL

------------------------------------------------------------
SECURITY AND PRIVACY
------------------------------------------------------------

- Link safety
- Per-user setting to open all URLs in info-mode
- Mark as spam/adult
- Use google safebrowsing api to warn about viewing of unsafe urls
X User account
X Claim a username by signing in
X Claim your account (provide google, twitter, or Go2.me password) - just Google now
X Require login to comment using a claimed username
X Protects your comments from being edited or deleted by others
- Just hide non-anonymous comments - based on vote threshold
- Ability to mark even claimed comments as "spam/bad"
- two (independent) votes will hide that comment from all but the author of the comment.
! Mark URL as Spam - info-mode only AND prominently flagged as SPAM
! Mark URL as Adult - require login and affirmation of over 18 and OK to view adult content
X Profile image
- Friend feed and twitter account info
- Admin interface to block/throttle IP's, users, domains, referers
- Spam - faked title - /3f
X Google User Accounts
X Persistent cookie (30 days) in lieu of Google Auth
- Make CSRF a Signed value

------------------------------------------------------------
PERFORMANCE
------------------------------------------------------------

- Shard counter(s) - pages, visitors
- memcache
- info pages
- statistics (write through view counter)
- comments
X home page (keep for 60 seconds) - Adjust expires header
- tag pages (keep until url added to tag - age at 5 minutes)
X add a template tag that will auto-cache a page section - copy from Django 1.0
X Install profiling to do performance testing and tuning
! /user/x pages are too slow - optimize scoring queries?
X Displaying comment counts in home page query has exceeded quota - CommentCount

------------------------------------------------------------
TESTING
------------------------------------------------------------
- Unit test invalid domain names are rejected

------------------------------------------------------------
MONETIZATION
------------------------------------------------------------

- Monetization
- AdSense
- Sponsored links (AdManager)
- PayPal donation (or GooglePayments)
- Premium membership
- Higher karma/scoring
- RSS Feeds (auto-Go2-ing)
- on-site badges and bolding of comments
- reserve nickname and prevent comment deletion
- Private version on google apps for domains
- Partition database by domain

------------------------------------------------------------
SITE ADMINISTRATION, MONITORING AND ANALYTICS
------------------------------------------------------------

- Error reporting
- Better tracking of backtrace in log files (even with DEBUG=False)
- Send email to admin account on unexpected failures
! Integrate info page and frameset onto one page (IFRAME)
- One page for Google to crawl
- All links count to get info/content
- No more double counting analytics via /info
- Resizing/scrolling of info box
- Analytics Pagetracking for goals
- /meta/username - client
- /meta/comment - client
- /meta/share - ??? server/deferred to next page ??? -> do all the same way!
- /meta/newuser - server
- SetVar for user state [base, comment, share, username]
- Any way to use GA for JSON call tracking?
- Use GA event tracking instead???
- Setvar user partitioning
- "user" (as opposed to anon)
- "admin"
- "premium"
- OR - assign a composite "engagement" score and cluster 1 week half-life:
- Username: +10 points
- View: 1 point
- Share: 3 points
- Comment: 2 points
- Clustering:
0-5: Low
6-10: Medium
11-25: High
26-100: Very High
101+: Extremely High
- Store as compound value- last week's score, this week's score (cluster)
- e.g. None-Low or VeryHigh-High
- Use cookies for storage (no server-side session storage)
- Site Administration
- Log when application is loaded
- Log when memcache is empty (does it ever empty?)
- Site wide stats page:
- Use write-through rates (day/week/month/year)
- append /api when JSON call
- Creation of new user auth (first time visitor)
- Adoption of a Nickname
- Share
- Comment
- View
- Home page view
- Tag page view
- User page view
- Sign up for account
- Ping RSS feed for updates
- Tweet via RSS
- JSON calls (not from referrer {{host}})
- Send email notification
! Don't log referer of domains from the bookmarklet use (analytics)
- When referer equals the url of the link - then it is a bookmarklet use
! Event tracking
- (Category, Action, Label, Value):
- (user, username/new-auth, [from-home, from-comment], [ip])
- (load-times, home/user/tag, [tag]/[user], [ms])
- (url, share/comment/view, [domain])
- (error, error-code, message)
! Don't track info pages but redirect to frameset when top?
X Change .Age to Age filter on a date value

------------------------------------------------------------
MARKETING AND PR
------------------------------------------------------------

- A/B Testing on home page and header? Google Website optimizer
- G02.ME email accounts for admin email from address
- Do screencast explaining what you can do with G02.ME
- Link shortening competitive review [chris]
- blog post
- Switch to UserVoice from GetSatisfaction

------------------------------------------------------------
CODE REFACTORING AND ARCHITECTURE
------------------------------------------------------------

- Centralize error messages and codes in one file
- Document Hungarian for python/jscript doc
- Code Refactoring
- Make ScoreSet not a Model - just globals
- break up comments, map, and globals into their own .py files
- Move requser to req.usertrack
- Only req is stored in local
- Move FinalResponse to context processor
- Fork thread to request pseudo-batch processing
- RSS feed checking
- Send email notifications
- For limiting scoring on a single URL
- Change _FLimit to use a single memcache block with lists of the source authors
rather than one memchace per user * url combination

------------------------------------------------------------
BUGS
------------------------------------------------------------

X Anon sharing is throwing exception
- Don't score anonymous views!
! Is it possible to implement info/Close box so that currently navigated page is retained?
- See if window.location.href is accessible from parent frameset
X Disallow 'http' as a username (mistake in posting links)
X Truncate titles with elipses in views
- django filter
- BUG: Share count should never be zero (even if not scoring)
- Don't __share an item that's been shared by you previously (especially don't add duplicate comment entry)
- Should limit comment scoring to one per user
- Anonymous user is getting shared+1 and viewed+1...
X Timeouts of AJAX calls (claim username) do not generate errors
X Require that domains have a . in them to be valid (no intranet domains)
X Embedded links in comments need to target _top
X Uneven margins in safari and Chrome.
X Chrome table extends beyond the bounds of the page
- Usernames are case sensitive - shouldn't be
X Can share domains beginning with numbers! - http://www.3rivers.net/~cmac/index.html
- Have to hit signout twice to sign out of account (first times out)
- Losing username saved in cookie?
- When logged in - can't over-ride switch to non-logged in account (e.g., "anon: foo") - unit test failure!
X UnicodeDecodeError
- 92.105.194.137 - lyonel.kaufmann [14/Jan/2009:12:21:03 -0800] "GET /comment/?id=QF&csrf=92.105.194.137~01%2F13%2F2009%2008%3A56~6856&username=&comment=Patrick%20McGoohan%2C%20acteur%20de%20la%20s%C3%A9rie%20TV%20Le%20Prisonnier%2C%20est%20mort%20%C3%A0%20l'%C3%A2ge%20de%2080%20ans&urlLogin=%2FQF%3Fcomment%3DPatrick%2520McGoohan%252C%2520acteur%2520de%2520la%2520s%25C3%25A9rie%2520TV%2520Le%2520Prisonnier%252C%2520est%2520mort%2520%25C3%25A0%2520l'%25C3%25A2ge%2520de%252080%2520ans&callback=Go2.ScriptData.ActiveCalls%5B1%5D.Callback HTTP/1.1" 200 497 "http://go2.me/info/QF?" -
Unknown exception: UnicodeDecodeError('ascii', "Patrick McGoohan, acteur de la s\xc3\xa9rie TV Le Prisonnier, est mort \xc3\xa0 l'\xc3\xa2ge de 80 ans", 32, 33, 'ordinal not in range(128)')
! Resetting iframe is navigating the parent frame???
- Rename "views" to "viewers" and "comments" to "commenters" and "shared" to "sharers".
- Allow static IP n.n.n.n shortening (e.g., Google Cache links).
- Normalize/merge upper/lowercase differences in user names (eg. Calbucci)
- Unicode comment failing, e.g. "’" 0x8217
- Username for logged in user - not using chosing nickname
- Username case sensitivity - should not be for login (just display)

Change log

r491 by mckoss on Jun 26, 2009   Diff
todo
Go to: 
Sign in to write a code review

Older revisions

r463 by mckoss on Apr 13, 2009   Diff
fix underflow of scores
r457 by mckoss on Apr 6, 2009   Diff
checkpoint - fixing scoring bugs
r456 by mckoss on Mar 18, 2009   Diff
bug
All revisions of this file

File info

Size: 22064 bytes, 512 lines
Powered by Google Project Hosting