Brad Fitzpatrick (bradfitz) wrote in lj_dev,
Brad Fitzpatrick
bradfitz
lj_dev

Talking to myself

Some things that need to be done to enable free accounts again....

trust system (ala advogato.org) ... not as new column in friends table, though .. new table: edgeprop (edges between people) ... edgeproplist defining things like color, trust, options (watching/subscribing), friends ... unique (userid, propid, friendid), indexes on (userid, friendid), (friendid, propid) ... eventually phase out friends table totally?

remove paid{features|until|reminder} from user table... move to an ljcom-specific table (paid accounts is only supported in ljcom anyway) and add "accttype" (or "atype") to user table. remove all logic (especially in non-ljcom code) like in uploadpic_do.bml that says if $u->{'paidfeatures'} ... replace instead with LJ::get_limit($u, "max_pictures") and get_limit will look at $u->{'atype'} ... (paidfeatures is an enum now in user table... atype will be site-defined in ljconfig.pl, so let's make it a CHAR(5) ... not varchar.. fixed-length rows in user table. 4 extra bytes per user, but we're removing paiduntil/paidreminder on all non-paid users... still win)

so now ljcom atypes are: "early", "paid", "perm", "free", and the new one: "new". new users will be the more heavily restricted & untrusted ones... not "free" users. eventually, after a period of either time and/or trust received from other users, their atype changes from "new" to "free".

keep the create.bml page that states our philosophy and makes paying an option to begin with... that's really been making people aware of the option. of course, have to do more to make that known also, but that's an lj_biz thing.... this is lj_dev.

the best part of this will be cleaning the ljcom crap out of the livejournal modules.

next project to start... (unrelated to free accounts) remove all text from BML files, replace with phrase codes ala freevote.com. use translate web tool to let translators edit trnaslations (another anti-ljcom thing for other installations). fix BML to be more efficient with multilang handling (freevote code worked, but could be improved) ... have nightly job that crunches translations in db down to DBM files... use Cache::Cache against tied hash to DBM file in BML to keep phrase code to native language mappings efficient. after starting this, let people send in patches to remove ljcom-english and start translating. hopefully people will (i think avva would love this) ...

we also need to finish <LJDEP> tagging of all files. halkeye could use some assistance, no doubt.... lot of files left to do.

</talking to myself>
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 38 comments