Pichat Road Map (Old Versions)
Last update 27/May/2008 by Mark Seuffert
The following is the version history for old Pichat v0.4.1:
New in B41
- chat status page shows users in entrance (for Nacho)
- chat server user number is updated delayed, less traffic on very active servers
- cleaned up internal chat actions
- INI file: new setting WebchatTextBreakLength=40, [Server] section
- INI file: new setting WebchatLinkBreakLength=40, [Server] section
- INI file: new setting UserNumberUpdateIntervall=20, [Server] section
- bugfix: webchat login shows correct error message
New in B40
- added command /ROOMMODE for chat admins
- added conference rooms and moderated chatrooms
- server logfile shows user permission problems in server debug mode
- INI file: new setting ChatroomEnterInAny=1, [Server Permissions] section
New in B39
- chat admins with ability to ban users (for Phantomix and Domk)
- added commands /BAN, /UNBAN, /USERMODE for chat admins
- cleaned up commands and arguments, no extrawurscht
- user identification and session management updated
- INI file: new setting UserTypeDefault=USER_NORMAL, [Server Permissions] section
- INI file: new setting VisitorRestrictionLevel=0, [Server Permissions] section
- INI file: new setting ZombieQuitTime=120, [Server Permissions] section
- INI file: new setting VisitorQuitTime=3600, [Server Permissions] section
- INI file: new setting NormalQuitTime=0, [Server Permissions] section
- INI file: new setting ChatroomBanTime=120, [Server Permissions] section
New in B38
- added commands /ADMIN, /BROADCAST for chat admins
- added tool to change user permission, server supports SHA-256 and plaintext passwords
- improved HTML version of documentation, clickable section links
- INI file: new section [Server Permissions], moved some server settings to it
- INI file: new setting UserPermissionsFile, [Server Permissions] section
- INI file: new setting ChatroomBanned=Zillout, [Server Permissions] section
- INI file: new setting DisabledCommands, [Client] section
- INI file: new setting ChatAdminCommands=1, [GUI] section
- INI file: changed setting AutoQuitWebchatAfterIdle=10800, [Server] section
New in B37
- webchat porting finished, private release party with pizza and beer :)
- added a newbie friendly introduction to user handbook
- added topic and chatroom user list to webchat parser arguments (for Nacho)
- bugfix: chat locations are treated case insensitive (bug 1043)
- bugfix: URL encoding corrected (bug 1042)
New in B36
- refactored server classes for ordered handling of socket write errors
- refactored network class event handling to be more flexible
- webchat shows if user is disconnected or blocked by a proxy
- INI file: changed setting WebchatPageRefreshIntervall=240, [Server] section
- bugfix: redirect works again with webchat help (bug 1041)
- bugfix: FF does not steal input focus with webchat sound effects (bug 1039)
- bugfix: GUI sound effects work again on Windows XP
New in B35
- web server stress testing with siege and torture, improved transactions per second
- web server supports logfile with referer and user agent
- refactored HTTP class for more efficient use of TCP and better caching of static content
- INI file: new setting ServerHttpLogfile=pichat_webserver.log, [Server] section
- INI file: renamed setting ServerLogfile to ServerChatLogfile, [Server] section
- INI file: renamed setting ServerLogfileHourStatus to ServerHourStatus, [Server] section
- INI file: more default users in MaxUsersTextchat and MaxUsersWebchat, [Server] section
- bugfix: Accept-Encoding header with wildcard also triggers content compression
- bugfix: transition between server timeouts works properly
New in B34
- webchat templates cleanup, most pages are HTML/CSS validated, porting step 14
- splitting content and layout where possible, generally better use of CSS,
no inline style/scripting where it makes sense, no uppercase or obsolete tags
- web server with default entry page
- INI file: new setting ServerDefaultEntryPage=1, [Server] section
- INI file: new settings WebPageHeader and WebPageFooter, [Server] section
New in B33
- webchat templates more flexible, porting step 13
- color shemes with alternative colors for text and background
- ghost session resurrection (for Nacho and Domk), regain nickname after disconnect
- INI file: new setting GhostSessionResurrection=1, [Client] section
- INI file: changed setting WebchatStreamPaddingSize=1024, [Server] section
- bugfix: stream padding uses uncompressed byte size, for brain dead browsers
New in B32
- webchat templates more comfortable, porting step 12
- bigger chat input with cursor hotkeys, requires web browser with JavaScript
- chat input history places cursor at end of line and ignores empty lines
- command /ECHO shows chat output settings, /TIMESTAMP for all chat users
- added session management with resurrection, protocol updated
- INI file: new setting WebchatPageRefreshIntervall=300, [Server] section
- INI file: changed setting WebchatStreamForceIntervall=15, [Server] section
- INI file: changed setting NachoTimeStampLevel=2, [GUI] section
- INI file: removed setting HistoryUniqueEntries, [GUI] section
New in B31
- experimental new webchat templates for tester, porting step 11
- webchat control bar with list of chatrooms and smileys
- multi language welcome message, various language resource updates
- INI file: removed setting Welcome, [Pichat] section
- INI file: moved setting ServerName and ServerVersion to [Pichat Profile] section
- INI file: new setting Interests=chat, [Pichat Profile] section
New in B30
- webchat with automatic LAG detection, porting step 10
- webchat is more HTTP cache friendly, reduced parsed files and login traffic
- command /PING and /LAG with estimated time for webchat users, always good to have
- INI file: renamed setting ServerHttpRoot and all HTTP locations, [Server] section
- INI file: renamed setting WebchatBrowserStatic to WebchatBrowserSimple, [Server] section
- INI file: new setting DataCompressionFileSizeMin=128, [Server] section
- INI file: new setting WebchatEnableLagDetection=1, [Server] section
New in B29
- webchat with sound, porting step 9
- configurable sound effects (for Domk and Jamie), ping/pong sounds included
- configurable chat server actions for invoking external programs or scripts
- investigated how to fork processes from a thread
- hyperlink parsing allows comma and semicolon in URLs
- INI file: renamed Enable3dVisualisation to MainWindow3dCheckbox, [GUI section]
- INI file: removed 'phantomix', [GUI Connect List Favourites] section
- INI file: new section [GUI Sounds], also moved setting EnableSoundEffects to it
- INI file: new section [Server Actions]
New in B28
- refactored webchat parser, more flexible and with changed syntax
- session management prevents collisions with old session IDs
- bugfix: webchat parser prevents code injection (Cross Side Scripting)
- bugfix: chat output drawing code is more defensive, hopefully (bug 1036)
- bugfix: using latest zlib library (Windows version has static library linked)
New in B27
- webchat with response for commands which are not supported, porting step 8
- private messages in web/text chat show once how to answer
- chat status available as RSS feed, let's be nice to the semantic web
- chat status with activity statistics and optional full hour status in logfile
- server logfile shows more/different information in server debug mode
- more documentation about chat personalisation, status and statistics
- INI file: renamed setting Port to PortChat, [Server] section
- INI file: new setting ServerLogfileHourStatus=0, [Server] section
- INI file: new setting MaxUsersPichat=100, [Server] section
- bugfix: file transfar works properly with persistent connections
New in B26
- webchat with humble improvements for users behind proxy, porting step 7
- server logfile shows possible webchat problems in server debug mode
- server logfile with system info in server debug mode
- automatic browser detection also catches broken browsers, lots of testing
- directory listing shows rounded file size
- INI file: renamed settings WebchatBrowserNormal/Dynamic/Static/Unsupported, [Server] section
- INI file: changed setting WebchatSessionIpNetmask=30, [Server] section
- INI file: new setting WebchatStreamPaddingSize=2048, [Server] section
- INI file: new setting WebchatStreamForceIntervall=10, [Server] section
- bugfix: hyperlink parsing and graphic parsing more strict (bug 1035)
New in B25
- webchat with smileys and graphics, porting step 6
- reorganised image names, ca 100 images included with chat server
- refactored chat graphics class and added GUI independent version for server
- server logfile shows compression library problems on startup (bug 1033)
- server logfile shows invalid chatroom names on startup (bug 1034)
- INI file: new setting WebchatSessionIpNetmask = 28, [Server] section
- INI file: new setting WebchatSmileysAndGraphicsLevel = 5, [Server] section
New in B24
- resource tool supports command line arguments and configuration file
- bugfix: nickname is taken from a valid login name (bug 1032)
- bugfix: POST method works properly with persistent connections
New in B23
- webchat with improvements for slow internet connections, porting step 5
- web server supports persistent connections and chunked transfer
- auto unaway also for webchat and simple text chat (bug 1028)
- INI file: renamed setting AutoAwayAfter to AutoAwayAfterIdle, [GUI] section
- INI file: new setting DataTransferKeepAlive=30, [Server] section
- INI file: new setting DataTransferPersistentMax=500, [Server] section
- INI file: new setting AutoAwayTextchatLevel=1, [Server] section
- INI file: new setting AutoAwayWebchatLevel=1, [Server] section
New in B22
- webchat and dynamic web pages use default color sheme, porting step 4
- command /COLORS for webchat users, requires web browser with CSS, JavaScript and DOM
- GUI with assistant button to toggle color sheme (day/night mode)
- refactored chat colors class, updated color shemes format, more internal restructuring
- INI file: renamed setting AssistantButtons to AssistantButtonsLevel, [GUI] section
- INI file: renamed section [GUI Color Shemes] to [Color Shemes]
New in B21
- webchat with clickable hyperlinks, porting step 3
- hyperlinks in webchat via redirector to protect user's identity
- refactored chat hyperlinks class, meta chars in URLs are filtered out
- external temperature sensor with sun shield, available in Malmö
- web server supports '304 Not Modified', now is allround HTTP 1.0/1.1 server
New in B20
- webchat with multi language login and status page, porting step 2
- covering wide range of web browsers including text browsers and broken ones
- commands /CLEAR and /ECHOSCREEN for webchat users
- server logfile shows web browser user agent in server debug mode
- INI file: new setting AutoAwayWebchatAfterIdle=900, [Server] section
- INI file: new setting AutoQuitWebchatAfterIdle=3600, [Server] section
- INI file: new setting WebchatBrowserDynamicOnly=MSIE,Opera, [Server] section
- INI file: new setting WebchatBrowserStaticOnly=Lynx, [Server] section
New in B19
- very simple webchat, ported my old Perl HTTP chat daemon from 1998
- protocol and error handling updated again, more flexible for future purpose
- INI file: new setting ServerRootHTTPLocationChat=/chat, [Server] section
- INI file: new setting ServerRootHttpLocationMedia=/chatmedia, [Server] section
- INI file: changed setting MaxUsersWebchat=5, [Server] section
- bugfix: admins can change language also when being in offline mode
- bugfix: solved race condition when two users log in with same nickname
New in B18
- chat server with compression public available, protocol and error handling updated
- chat clients won't transfar chat conversation as plaintext anymore
- web server supports GET/HEAD/POST methods and dynamic parsed web pages
- server logfile shows handshake errors
New in B17
- experimental chat server with compression for tester
- refactored network classes for improved handling of line based and binary protocols
- server logfile and traffic statistics show overall compression ratio
- resizer and splitter class detect dead window handles in debug builds
- bugfix: aliases work on first start (bug 1025)
New in B16
- builtin web server, small HTTP 1.0/1.1 server
- web server supports partial file transfar, compression and directory browsing
- INI file: new setting ServerRootHttp=webserver, [Server] section
- INI file: new setting ServerRootHttpLocationStatus=/chatstatus, [Server] section
- INI file: new setting ServerMimeFile=, [Server] section
- INI file: new setting DataTransfarTimeout=10, [Server] section
- INI file: new setting DataTransfarBufferSize=16384, [Server] section
- INI file: new setting DataCompressionFileSizeMax=1048576 (1MB), [Server] section
- INI file: new setting DataCompressionFilesExclude=gif,gz,jpeg,jpg,mp3,mpeg,mpg,tgz,zip [Server] section
- INI file: new setting DirectoryBrowsing=1, [Server] section
New in B15
- experimental web server
- updated traffic statistics, web traffic now means all headers plus payload
- added multi platform file directory class, new functionality test
- added multi platform data compression class based on zlib, new functionality test
- Windows uses zlib static library, Linux uses zlib shared library
New in B14
- chatrooms can be accessed by name or number, Domk deluxe request
- friendly and forced shutdown of server, a lot of testing
- INI file, new setting DisconnectTimeout=20, [Server] section
New in B13
- profiling to improve asynchronous bulk data transfar
- refactored network classes for proper disconnect (active/passive/gracefull close)
- refactored network classes for easier use and maintainability
- added functionality tests for file, network and thread classes
- bugfix: small multi language update (bug 1024)
New in B12
- command /CHATROOMS, list chatrooms on a chat server
- last chatroom is preferably used on rejoin
- optionally show topic and user list when joining a chatroom
- optionally admins can see when new user has entered chat (in any chatroom)
- INI file: new setting ChatroomTopic=1, [GUI] section
- INI file: new setting ChatroomUsers=0, [GUI] section
- INI file: new setting ChatServerJoins=0, [GUI] section
- INI file: renamed setting ShowHighlight to Highlight, [GUI] section
New in B11
- multiple chatrooms on chat server, including permanent chatrooms
- commands /JOIN and /LEAVE, to join or leave a chatroom
- INI file: renamed setting Topic to Welcome, [Pichat] section
- INI file: new setting ChatroomAdminCanCreate=1, [Server] section
- INI file: new setting ChatroomUserCanCreate=0, [Server] section
- INI file: new setting ChatroomDefault=Entrance, [Server] section
- INI file: new section [Server Chatrooms] with 4 default chatrooms
- bugfix: small update of builtin language resources (bug 1023)
New in B10
- simple contacts with EU and US chat server, double click will connect
- added version and build number to crash report, silly without
- port 9009 was officially assigned by IANA
- INI file: new section [Pichat Profile]
- INI file: new setting ServerName, [Server] section
New in B9
- multi server support, including multiple startup connections
- updated hotkeys Ctrl+N = new chat window, Ctrl+E = next color sheme (day/night mode)
- server logfile shows full INI file path in server debug mode
New in B8
- review of swedish translation, thanks Magnus!
- changing color sheme is shown in all windows, similar to away change
- server logfile with optional debug output for better trouble shooting
- INI file: new setting ServerDebugMode=0, [Server] section
- bugfix: dedicated server not freezing when disconnected from LAN (bug 1021)
- bugfix: client shows better error text when disconnected from proxy
New in B7
- multi language chat server, now supports loading own language packs
- refactored file parser classes to be more flexible, as a side effect also became faster
- home page with documentation for chat personalisation
- INI file: changed sections [GUI Color Shemes] and [Languages], new format
- INI file: renamed MainWindowEscKeyMinimize to MainWindowEscKeyMinimise, [GUI] section
- INI file: renamed MainWindowAnimateMinimize to MainWindowAnimateMinimise, [GUI] section
New in B6
- multi language chat server, English, German and Swedish language included
- INI file: new setting LanguagesPreferred, [Languages] section
- INI file: new setting LanguagesSupported=en,de,sv [Languages] section
New in B5
- time stamp format in 12 and 24 hours
- original nickname is preferably used on rejoin
- simple text chat offers interactive and automatic login
- first start detects if HTTP port 80 or alternative port 8008 available
- home page with improved HTML version of documentation, Mozilla and IE friendly
- INI file: new setting NachoTimeStampHours=24, [GUI] section
- INI file: renamed setting ShowWelcomeMessage to ShowFirstStartMessage, [GUI] section
- INI file: renamed section [Aliases] to [GUI Aliases]
New in B4
- chat server status with traffic statistics
- server logfile shows user and traffic statistics on shutdown
- home page with HTML version of documentation, thanks Domk!
New in B3
- Linux chat server public available after more testing, thanks Nacho!
- command line argument for INI file path
- support for local server logfile
- INI file: new setting Enable3DVisualisation=1, [GUI] section
- INI file: new setting ServerLogfile=pichat_server.log, [Server] section
- INI file: added 'domk', [GUI Connect List Favourites] section
New in B2
- experimental Linux chat server for tester
- added multi platform resource management and resource tool
- added multi platform buffered file and memory stream class, integrated everywhere
- added multi platform file parser classes, refactored from old preferences code
- added a simple status page for web browser
New in B1
- new improved network core, tri-threaded asynchronous network model
- ported network core to Linux and Windows, platform independent code is shared
- added multi platform thread and locking classes
- added multi platform thread safe event handler class (event queue)
- added automatic timer events (can't flood event queue)
New in B0
- summer cleanup: update of coding style, code with less comments but instead self
explaining code and more design documents, strict encapsulation (composition rather
than multiple/mixed inheritance), strict const correctness, strictly not poluting
global namespace
- redesigned engine classes and files for easier multi platform support, did some
research and profiling to select appropriate design pattern
- splitted up files, compiling from multiple directories
- refactored network classes to use STL like string class (8 bit characters)
- refactored network classes to get rid of duplicate code