• greetings, a. nonymous

Sophia - Blog and/or Forum module for bbsengine3

Sophia is intended to provide a "blog" (in which only certain people may make a top post) or a "forum" (where most people will be able to make a top post). the same post can be added to multiple sigs. this is a change from sophia1 where a post was only allowed in one particular sig.

recent posts

  • upgraded smarty to 3.1.30

    smarty has been upgraded to 3.1.30


  • stylesheet modifications

    asked someone with a clue on IRC (freenode) to have a look at my site. they made some suggestions. I made various style changes related to gradients and text shadows. I asked my contact to have a look, and I was complimented with "glorious consistency" and "shazam".


  • bbsengine3.js: use of singleton pattern for the bbsengine instance; polling for notifies and the clock simplified with additional methods; timezone added to clock

    getbbsengine() has been changed so that it only creates one instance of the bbsengine object per page.this change is backwards compatible with the old way of returning multiple instances.

    added initvisibilityeventhandler(), addinterval(), restartintervals(), and cancelintervals() methods to bbsengine3.js. modified notify.js and clock.js to use addinterval() instead of setting up the event handling per module which meant elimination of a lot of duplicate code. addinterval() checks a boolean to decide if the event handling needs to be set up, so that it is only done once.

    the clock now displays an abbreviation for the local time zone of the browser. this is done entirely client side and no polling of my server is done (and anyone is free to use the source if there is a question).


  • topbar now makes smooth transition to fixed thanks to a friend on irc

    over the last couple of days a friend I met on IRC has been helping improve zoidweb2. specifically, he has made some changes to the 'topbar' (which contains the digital clock with flashing colon) so that it transitions more smoothly to 'fixed' from 'relative' positioning instead of 'jumping'. the fix was to wrap the topbar in a div.


  • pasta for supper

    • pasta (elbows)
    • ragu from a glass jar
    • green pepper
    • onion
    • garlic
    • ground chuck
    • jalapeno
    • mushrooms

  • tooltips updated to make the same request exactly once saving bandwidth and ram

    tooltips were working for posts and mantra details except that an AJAX request was made for every url even if it had already been loaded. this wastes bandwidth and RAM and I set about making it more efficient.

    today (2015-sep-15) I got some help from some nice people in ##javascript on freenode that helped me save resources when doing tooltips.

    the trouble I was having was that the cache was always initialized to empty. I thought at first it was a scoping problem which was not the case.

    behind the scenes, the AJAX requests are asynchronous. in the working javascript there is an array (list) that keeps track of the pending AJAX requests. on AJAX success, the list entry corresponding to the url is deleted and the response is pushed to the cache which is used to display the tooltip with exactly one AJAX request per unique url.


  • animated page header on index page of the www site

    zoid technologies has an animated page header shown only on the index page using css3 animations.

    behind the scenes, I copy-pasted the two effects I wanted (lightspeedin and rubberband) out of animate.css into index.css on www.zoidweb, which is why it works only on the index page. I found a decent video tutorial regarding animate.css after this feature was added to zoidweb.


  • hover over member name in posts and links shows member details inside jqueryui tooltip

    if you hover over a member name in a post or a link anywhere on zoidweb, a jqueryui tooltip will show up with member details. if you are logged into an account with the ADMIN flag or if you are viewing your own account, the tooltip will include private data like email address, ip address of last login, and stats like how many links and posts have been made from the account. this feature gracefully degrades to a normal link to the member's detail page if javascript is not available.

    behind the scenes, some javascript runs that looks for all "A" tags with the class "tooltip". it then uses the value of the "data-contenturl" attribute of the A tag to populate the tooltip via jquery. in the original code that was the basis for this feature, the "rel" attribute of the "A" tag was overloaded to contain the content URL which breaks validation at least and likely does nothing for accessibility. note that the tooltip is populated at the time of page load, not every time you hover.


  • the "oxford comma" when listing sigs in posts

    recently I came across some CSS3 that turns an unordered list (ul tag) into a comma separated list that correctly uses the serial comma aka "oxford" comma. I've applied this technique to sophia (posts), member details (flags listing), and will apply it to vulcan (links) once it can handle more than one sig.


  • dez bryant: $45M? omg how will you ever survive?

    I do not have a lot of love for professional sports especially full contact sports like football. the recent signing of dez bryant with the cowboys for a 5 year guaranteed $45M contract just makes me love the NCAA athletes all the more. I've taken several college courses. I've lived in the dorms. I know what it's like to try to make good grades in that environment. when the eagles have to make good grades and do well on the gridiron I am even more impressed.


  • sophia nearing alpha testing stage; improved form handling

    I've been working on sophia for the last few days and it is really coming along. unlike sophia1, posts in sophia2 can be in many sigs at once.

    form handling has been improved, too. there are two new functions in bbsengine3.php for handling forms: processform() and displayform(). expect a more detailed posting as well as a new release later.


  • bbbb

    c d e f g
  • aaa

    bbb ccc ddd
  • test 1

    aaa bbb ccc ddd eee gggg