Pichat Road Map (Old Versions)

Last update 27/May/2008 by Mark Seuffert

Version history

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
Pichat is a simple to use peer to peer (P2P) chat software. It comes with integrated webchat, web server and chat server. The chat supports multiple chatrooms, text formatting with smileys and a user-friendly webchat (HTML, CSS, DOM, JavaScript). The webchat works with nearly any web browser, easily integrated into your design, no PHP/Flash/Java required. Software for free information exchange for Linux and Windows.