02 June 2011 @ 07:10 pm
StormChat Web 0.2.1 Release
StormChat Web 0.2.1, released on 6/2/2011

Changes include:

  • Many fixes in the SMF FALs.

  • Fixed up access to the admin console in the various FALs, in order to work on expanding the admin console (#3).

  • Abstracted the showModeratorGroups function into the various FALs instead of trying to code support for multiple FALs into the room library.

  • Add the ability to set debug level in the database, which will eventually be part of the admin console.

  • Log backtraces with each log message, for fine-grained detail of what's going on.

  • Add filtering to the logging code, so you can tag log messages with a debug level (long overdue).

  • Enable/disable plugins via the admin console (#3).

  • Adjust timeout values via the admin console (#3).

  • Adjust general settings via the admin console (#3).

  • Modify/remove front page announcement value via the admin console (#3).

  • Adjust cron settings (which will generate crontab syntax for the user to use) via the admin console (#3).

  • Add link in the submit panel to the Admin Console if the user is a moderator.

  • Add idle/limbo/warning code to the script-based session handler.

  • Fixed (hopefully) the issue with ghosting sessions (#15).

  • Disable timing out of moderators. That was annoying.

  • Add a social network filter plugin for twitter:username and fb:username expansion. More to come, perhaps.

  • Add a StormChat Bug filter plugin to expand bug:id to be a link to the issue tracker.

  • Implement chat font face and size options directly (#26).

  • Implement the ability to control the frame layout values. This allows people to do things like hide the avatar pane when they are using chat in the Firefox sidebar (#24).

You can check out the code via Subversion, or download one of the following files:

NOTE: Please note that when upgrading from 0.2.0 to 0.2.1, you must run update.php (go to http://yourserver.com/yourchat/update.php in your browser) to update your database schema to work properly with the code changes. Annoying things will happen if you do not!
Current Location: Home - 98513
Current Mood: bitchyhurting
02 June 2011 @ 10:36 am
StormChat SVN Note...

If you're updating from SVN, you'll note that you want to run update.php after updating past revision 95. Otherwise you'll likely get a lot of spam from the script-based session handler about people going idle, etc.

I've been working on the admin interface and finding little, smaller, projects to do along the way. After I get a few different admin pieces implemented, I'll cut a quick 0.2.1 release for the folks that don't update via SVN, so they can see the admin console changes.
Current Location: Enigma - Camera Obscura
Current Mood: accomplishedaccomplished
30 May 2011 @ 01:02 am
StormChat Web 0.2.0 Release
StormChat Web 0.2.0, released on 5/30/2011

Changes include:

  • Database migration updater that handles schema updates transparently.

  • Removal of the need to run the server to handle session timeouts and event timers with the addition of two standalone scripts to be run via cron (#5).

  • Initial support for phpBB 3.x added (phpbb3 FAL -- #21).

  • Fixed several FALs to support updating the user_lastvisit_chat column in the prefs table when a user logins. It had been missing from several of the FALs (and incorrect in the phpBB FAL).

You can check out the code via Subversion, or download one of the following files:
Current Mood: bitchyhurting
15 May 2011 @ 07:28 pm
StormChat Updates
This LJ has languished for a bit, but I'm going to use it to post announcements as I make releases of StormChat. I set it up on Google Code a while back if you haven't seen that yet.

StormChat Web 0.1.5, released on 5/15/2011

Changes include:

  • Support for the new PHPPass password system used in newer versions of WordPress.
  • Support for SMF 2.x added (smf2 FAL).
  • Errors when logging in are now more prominent (#17).
  • Fixed "call_user_func_array() expects parameter 2 to be array, string given" error when submitting a message (#13).
  • Fixed issues with scrolling in Google Chrome and Safari (#14).
  • Fixed the pastebox not working (#16).
  • Fixed issues with avatars not displaying in SMF 1.x and 2.x (#9).

You can check out the code via Subversion, or download one of the following files:
Current Music: P!nk - So What (Explicit) | Powered by Last.fm
22 February 2006 @ 06:23 am
Things have been pretty busy lately, so I haven't had much of a chance to work on StormChat. However, users over at Evo have been having a lot of problems with it lately, so I need to get some things done.

Todo list:

  1. WEB: Rework the CPSP field. This should be renamed connection_mode. Values should be:
    • 0 = SlimChat
    • 1 = Client Pull
    • 4 = Server Push
    • 5 = Server Push (with Proxy)
  2. SERVER: Adjust code to work with new CPSP values & name.
  3. WEB: Autodetect Firefox 1.5 and push them over to using the "with Proxy" setting. Direct other Server Push users directly to the server. This will help prevent sessions timing out so often as the server has anti-timeout code (keep-alive settings) that the PHP based proxy doesn't (can't?) support.
  4. WEB: Work on the client pull code. This should operate on a timeout basis for checking new events rather than a meta-refresh. Meta refreshes break down when the browser can't connect to the server (fast enough) and the page does not complete loading. This causes it to never be loaded again because it doesn't have a meta tag to keep refreshing.
    • Revamp non-AJAX client-pull version. Store the new MID via JS in the content page and use a timeout to build and adjust the URL of the event page, either loading the new URL or refreshing the old URL.
    • Work on the AJAX code version. This will load the events via XML.
  5. WEB: Extend STC() to set the title of the page to include the number of unread events. When someone types in the submit pane, the # should be cleared and the title updated.

I also need to work on testing the 2x18G drives that I got recently and hopefully get them installed in sunrise soon (need to talk to Curt as we're way past the beginning of Feb. to go down to HostTech). Need to upgrade sunrise from Mandrake 9.1 to Mandriva 2006 as 9.1 is way out of date (and I believe causing some wierd obfuscation of errors with the StormChat server due to the SMP nature of the box-- mainly, seeing EINTR errors that mask the true error on a socket).

05 February 2006 @ 10:45 am
FAL work...
Did more work on the FALs now that I got the general "API" figured out... renamed *_db.php to *_fal.php and added the functions. The FALs for SMF and Invision both need work (and testing). The phpBB FAL seems to work fine. I did sit down and write an initial LiveJournal FAL, but it needs further work and testing. Also need to work on how to support the different FALs during installation.

Code feels much cleaner with that reworked. Lot of config variables and whatnot that were able to be removed, which makes me happy.
05 February 2006 @ 06:12 am
Forum Abstraction Layer template...
Looking over the code, I found that it should be pretty trivial to generate a clean FAL... since I've already moved away from using the actual forum database as much as possible (mainly done when I was hosting StormChat for Fantastic Byways, and when Evolution was still being hosted on Pele).


function getAvatar($userinfo) {
// returns URL to the avatar to display for the user

checkAuth($username$password$modGroup$checkAdmin) {
// success: return user info array
    // failure: return error string

checkBoardBan($ip$userid) {
// returns boolean result

checkValidAlias($alias$uid) {
// returns boolean result

05 February 2006 @ 03:57 am
Today's Code...
  • ADMIN: Converted to template system:
    • Admin navigation header
    • Manage Rooms
    • Manage Groups
    • Delete Room
  • ADMIN: Added code to handle:
    • Delete Group
    • Add Group
    • Change Dynamic Group
05 February 2006 @ 02:19 am
Working on...
Haven't updated in a bit, but that doesn't mean that I've been idle.

I've been working on testing some AJAX-based code for the submit page. It works, but it's not where I want it to be right now, so I'm holding off on those changes at the moment rather than committing them to CVS. I think I'm going to split that development off to a separate branch while I work on getting things ready for release.

I am looking at working on the code for the FAL before release, though, because I really don't like how the conditional code is scattered all throughout the project.
25 January 2006 @ 06:51 am
I think I found a way around the problem with the dual ORDER BY statements in the C code that caused problems in MySQL 5.x and in PostgreSQL as well.

In PostgreSQL, I need to have the row # when retrieving a result when using libpq (PHP automatically handles this). In MySQL, I don't... but I can use mysql_data_seek() to go to a specific row. So on rows I'm doing:
sprintf(buffer, "(SELECT * FROM xtable ORDER BY xfield DESC LIMIT mylimit) ORDER BY xfield ASC");

results     = db_query(dbconn, buffer);
num_rows    = db_num_rows(results);

for (i = 0; i < num_rows; i++) {
    row     = db_fetch_row(results, i);
    // further processing
I can now just do:
sprintf(buffer, "SELECT * FROM xtable ORDER BY xfield DESC LIMIT mylimit");

results     = db_query(dbconn, buffer);
num_rows    = db_num_rows(results);

for (i = num_rows - 1; i >= 0; i++) {
    row     = db_fetch_row(results, i);
    // further processing

Still need to work this all the way in (I'm looking at how master_poll_events operates and I'm trying to determine if I need to handle it the way I currently am or not).