Pichat Road Map
The following features are planned for Pichat v0.4.2:
- automatic download of updates from configurable repositories, nacholoading
- rewrite chat output from scratch with text selection, text size, animation
- internationalisation for Windows GUI resources
- user interface improvements and bugfixes
Here is a break-down of Pichat v0.4.2 into individual builds:
New in B46
> added chat window with smiley bar
> configurable smiley bar and side bar
# allow color scheme changes with context menu, new tab sets caret in address field
# bugfix: mouse cursor is correct while resizing big main window
# bugfix: tooltip does not vanish after a "focus-less" button was clicked
# bugfix: listctrl column does resize without "show window contents while dragging"
# bugfix: crash report is written on Windows Vista too
New in B45
> rewrote chat output with text selection, text size, animation
> INI file, new setting EnableVisualEffects=1, [GUI] section
# wiki like text formatting with bold and italics, text color types ordered R-G-B
# bugfix: check why images are not "inked" in night color scheme
# improve documentation and wiki engine (images)
New in B44
- updated Windows GUI resources, completed Swedish translation (thanks Magnus for help)
- updated SDK web page parser with language detection based on user agent language
- documentation tool with support for wiki text format (pikiengine)
- website with more information and new documentation engine, using a
MediaWiki/ReStructuredText like formatting suitable for technical documentation
- renamed simple chat mode to simple text mode in HTML templates
New in B43
- internationalisation for Windows GUI resources, defaults are English/German/Swedish
- updated options dialog with language selection, application restart after change
- INI file: new setting LanguageGuiDefault, [Languages] section
New in B42
- updated SDK with manual authentication for bots, C++ interface changed
New in B41
- updated status dialog with chat activity and user number in current color scheme
- refactored chat text drawing, custom calculation for word wrap and ellipsis
- refactored web page parser, added to SDK and updated webcam plugin
- homepage with two more screenshots, webchat and telnet example
New in B40
- updated webchat HTML templates, more layout control (for Feyd)
New in B39
- webchat with support for Wii (Opera browser) and iPhone (Safari browser)
- webchat with support for custom style sheet extensions, CSS skinning
- updated webchat HTML templates, optional send button and better error handling
- INI file: new setting SideBarLevel=2, [GUI] section
New in B38
- side bar with chatrooms and users for user interface and webchat
- command /WHO shows users in any chatroom, added to side bar
- protocol updated, server sends more chatroom information, new chat actions
- changed some color names, new colorscheme examples in download section
- homepage with CSS layout and updated screenshots
- INI file: new setting ChatroomListUpdateIntervall=120, [Server] section
- INI file: renamed setting ShowUserList to ShowSideBar, [GUI] section
New in B37
- experimental dynamic user list in webchat, add/change/remove with JavaScript and DOM
- experimental new webchat HTML templates, simplified for easier integration into existing
layouts, moved JavaScript into namespace, shorter loading time, tested with FF and IE
- most pages in standards compliant mode and HTML/CSS validated
- chat status page shows users in permanent chatrooms
- quizbot plugin with support for multiple languages
- webcam plugin with context menu in preview window
New in B36
- added blinking title bar to webchat and user interface
- user interface with interactive login if authentication is required
- startup connections via contacts
- homepage with sitemap in English/German (for search engines)
- INI file: added setting StartupCommands, [Pichat] section
- INI file: added setting AnimateWindowTitle=1, [GUI] section
- INI file: removed setting Connect, [Pichat] section
New in B35
- user interface optionally with precise time stamp
- updated SDK with access to logfile, updated plugin interface (for Feyd)
- added quiz plugin for running a chatroom quizbot, example trivia in download section
- better webcam plugin with logo for online, offline and on the air status (for Rickard)
- INI file: new setting NachoTimeStampPrecise=0, [GUI] section
- INI file: renamed setting ShowPingPrecise to PingPrecise, [GUI] section
New in B34
- user interface with button to show chat options
- updated preferences dialog with advanced server settings
- homepage with more pages in English/German
- INI file: new setting MainWindowOptions=1, [GUI] section
- INI file: changed settings for permanent chatrooms, [Server Chatrooms]
- bugfix: bots can be added and removed on runtime (bug 1054)
New in B33
- updated preferences dialog with user interface settings
- new hotkey Windows+P = show/hide main window (for Feyd)
- protocol updated, more chatroom information for bots, new chat actions
- homepage with developer documentation in English/German
- Winamp plugin with option to ignore song titles with specific text
- INI file: renamed setting ChatServerJoins to ChatServerUsers, [GUI] section
- INI file: removed setting MainWindow3dCheckbox, [GUI] section
- INI file: removed setting MainWindowStatusButtons, [GUI] section
New in B32
- updated preferences dialog with network settings and a password manager
- manual software updates with detailed error feedback
- crash report includes information about plugins (for Feyd)
- improved file parser class to read and write configuration data
- INI file: new setting ClearInputAndOutput=1, [GUI] section
- INI file: new setting UserAuthentication=1, [GUI] section
- INI file: new setting UserAuthenticationFile=pichat_user_authentication.ini, [GUI] section
- bugfix: HTTP/1.0 server closes non-persistent connections immediately (bug 1053)
New in B31
- updated MOTD (message of the day) with better support for multiple languages
- added ability to check manually for software updates (for Domk)
- added status plugin with list of all users in TEXT/XML format
- updated SDK with access to more server and user information, updated bot interface
- refactored connection manager, download updates optionally via HTTP proxy
- bugfix: compressing binary packages with correct length (bug 1052)
New in B30
- homepage with user handbook in English/German (for Mattze)
- custom title in main window and systray (for Mattze)
- HTTP 1.1 client allows dynamic change of traffic limitations during upload/download
- bugfix: XML translation without access violation, improved stability (bug 1051)
New in B29
- profiling and stress testing of network classes and incoming traffic
- bugfix: better handling for telnet and tinygrams (bug 1050)
New in B28
- webchat with own help page in English/German/Swedish
- command /WHOIS shows if user is registered and optional description
- command /LOGOUT and /QUIT to leave chat
- updated chat status query with more server information (for Feyd)
- updated password tool with IP ranges for all users types
- updated SDK to make it VC8 friendly, some incompatibilities as usual
- bugfix: web server handles requests with bare CR (bug 1050)
New in B27
- web server with support for reverse HTTP proxy (for Feyd)
- command /COLORSCHEME is the default command to change color scheme
- renamed colorsheme to colorscheme, updated webchat HTML templates
- INI file: new setting FollowXForwardedFor=127.0.0.1, [Server] section
- INI file: removed setting AssistantButtonsLevel, [GUI] section
- INI file: renamed section [Color Shemes] to [Color Schemes]
- bugfix: user login works reliable (bug 1049)
New in B26
- protocol updated for comunities that require registration, updated password tool
- new command /CHATMODE to change chat server mode
- new command /USER to log in or out as registered user
- updated SDK with text container and access to server information
- INI file, new setting ChatModeDefault=CHAT_OPEN, [Server Permissions] section
- INI file, new setting VisitorRestrictionChatroom=1, [Server Permissions] section
- INI file, new setting VisitorRestrictionNickname=1, [Server Permissions] section
- INI file, new setting SafeguardLoginFailedMax=10, [Server Permissions] section
- INI file, new setting SafeguardExpireTime=600, [Server Permissions] section
- INI file, new setting ClosedQuitTime=300, [Server Permissions] section
New in B25
- new application icons
- homepage with screenshot section, merged download and plugin section into one section
- added webcam plugin, shows picture in JPEG format (code from Feyd and Mark)
- added Winamp plugin, shows current song title
- INI file: changed setting SmileysAndGraphicsLevel=6, [GUI] section
New in B24
- updated visualisation and graphical user interface according to coding standard
- added PNG decoder to visualisation (code from Feyd), refactored TGA decoder in same style
- refactored visualisation input handling and data formats for stricter encapsulation
- refactored visualisation data manager classes to use polymorphism instead of templates
- profiling of file stream and string classes, improved implementation
- bugfix: automatic update unpacks files from download container
- bugfix: simple chat mode opens links in new browser window (bug 1048)
New in B23
- added automatic download of updates, also known as "nacholoading" (for Nacho)
- new tool to create file repository with version information and SHA256 checksum
- INI file, new section [Updates]
New in B22
- refactored HTTP server to offer data exchange with plugins, added to SDK
- refactored file/memory stream class to be shareable across library boundaries
- INI file: moved setting DedicatedServer to ServerDedicated, [Profile] section
- bugfix: STL is not used across DLL boundaries (bug 1047)
New in B21
- improved HTTP 1.1 client with partial file transfer and traffic limitations
- improved documentation tool with XML output (shown as HTML in standard web browser)
- refactored string parser for easier use, updated SDK examples
- bugfix: nickname change is reported to bots
New in B20
- added HTTP 1.1 client class to core, updated unit tests
- added SDK tools to download page, contains mkdoc + mkres + pipasswd + pngcomment
- improved memory stream class with read/write access
- refactored network error handling and data exchange
- bots with better text output and multi-threading support
- bugfix: trimming text lines before sending to chat server (bug 1046)
- bugfix: methods TrimTextEllipsis() and TrimTextLine() work without crashing
New in B19
- bugfix: flicker free drawing without GDI leaks (thanks Feyd for help)
New in B18
- rewrote tabs with theme support, images and close buttons (thanks Feyd for help)
- tabs show connection problems and blink if highlighted text is waiting
- refactored chat graphics and theme handling to work without singelton
- refactored system tray and icon animation
- INI file, new setting TabsCloseButton=1, [GUI] section
New in B17
- rewrote buttons with theme support, reorganised buttons in main dialog
- protocol updated, server sends more status information, new chat action
- bugfix: input focus and default button (owner-draw) is handled better
- bugfix: auto away message is not shown when text filter is enabled
New in B16
- web server supports authentication, updated password tool with IP ranges
- server puts automatic safeguard on user names with too many failed login attempts
- user interface with status button to zoom main window in/out
- user interface supports filtered text output (for Domk and Nacho)
- new hotkey Ctrl+R = enable/disable text filter
- new hotkey Ctrl+L = clear chat window
- documentation tool with more options and error feedback
- INI file: new setting DomkoTextFilter=0, [GUI] section
- INI file: new setting MainWindowZoomed=1, [GUI] section
- INI file: new setting ServerHttpLocationProtected="/private", [Server] section
- INI file: renamed setting MainWindowStatusAndContacts to MainWindowStatusView, [GUI] section
New in B15
- improved string and buffer classes with memory allocator
- added smart pointer templates (owned/shared), new engine unit test
- updated SDK coding standard with a new section about C++ memory handling
- reduced webchat to three browser types: dynamic, simple, unsupported
- INI file: new setting WebchatScreenSizeBrowserSimple=12, [Server] section
- INI file: renamed setting ServerDefaultEntryPage to ServerDefaultHomepage, [Server] section
- INI file: changed setting DataTransferBufferSize=32768, [Server] section
- INI file: removed setting WebchatBrowserNormal, [Server] section
New in B14
- added STL independent string and buffer classes for better binary compatibility
- refactored connection manager and plugin manager to use same pattern
- refactored command parser with proper encapsulation
New in B13
- improved chat server plugin support, new bot interface
- updated SDK with library documentation and more engine unit tests
- homepage with plugin section for tester
- new hotkey F12 = show 3D window
- bugfix: chat server announces correct name in LAN
- bugfix: user interface minimises without resizing views (bug 1011, bug 1017)
New in B12
- improved chat server plugin support, new command interface
New in B11
- improved chat server plugin support, new interfaces
- new command /PLUGIN to show and configure chat plugins (for Domk)
- resource tool with configurable namespace label
- INI file: new setting AnnounceNetworks=255.255.255.255, [Server] section
New in B10
- UDP scan for running chat servers in LAN, added to contacts, new chat actions
- new hotkey F5 = update contacts
- different icons for application and download container
- INI file: new setting ServerAnnounceLocalNetwork=1, [Server] section
- INI file: new setting AnnounceIntervall=60, [Server] section
- INI file: renamed setting EngineLogfile to VisualisationLogfile, [GUI] section
- INI file: renamed setting EngineLogLevel to VisualisationLogLevel, [GUI] section
- bugfix: webchat with stubborn web browsers requires initial stream update
- bugfix: webchat refresh initialises the stream compression
New in B9
- added simple chat server plugin support
- added simple software development kit (SDK) to download page
- updated engine unit tests, dynamically linked, all runs automatic, added to SDK
- refactored and splitted engine classes to reduce header dependencies
New in B8
- experimental chat plugin support (for Feyd)
- server logfile lists shared libraries and chat plugins in server debug mode
New in B7
- improved server reconnect, detects when local network connection has been restored
- command /COLORSHEME is the default command to change color sheme
- INI file: new setting ConnectRetryLocalNetwork=3, [Client] section
- bugfix: user interface clears chat output correct (means without crashing)
New in B6
- contacts with multiple groups
- INI file: new setting ContactGroupAddresses=Default, [GUI Connect List]
- INI file: removed section [GUI Connect List Favourites]
- bugfix: download container sets original file date after extraction
- bugfix: chatroom list is not wrong after update to a new build
New in B5
- added context menu in user bar with clickable chat commands
- added context menu for status and contacts
- refactored core data containers for stricter encapsulation
- refactored 3D visualisation error handling and logging, similar to chat server
- INI file: new section [Contacts]
- INI file: new setting EngineLogfile=pichat_3d.log, [3D Visualisation] section
- INI file: new setting EngineLogLevel=2, [3D Visualisation] section
New in B4
- added tabs for multiple chat windows
- preference dialog with checkbox for sticky window mode (always on top)
- INI file: new setting TabsWhenChatWindowNumber=2, [GUI] section
- INI file: renamed setting MainWindowHomepageButton to MainWindowStatusButtons, [GUI] section
New in B3
- added preferences dialog for basic chat settings like nickname
- updated hotkeys Ctrl+P = show chat preferences, Ctrl+G = pong back last user
- user can hide right part of chat dialog (for Phantomix)
- INI file: new setting MainWindowStatusAndContacts=1, [GUI] section
- INI file: changed setting ShowUserList=1, [GUI] section
New in B2
- splitted off core and engine into shared libraries (dll/so)
- redesigned engine resource handling to be more flexible
- reduced build time by making better use of precompiled headers
- bugfix: download container can run only once at a time
New in B1
- added download container for Windows, unpacks and starts exe
- added set of engine unit tests for Linux/BSD to download page
- redesigned source code structure into application + core + engine
- resource tool supports compression and file modification dates
- bugfix: user list is not empty on startup
New in B0
- protocol updated, client sends preferred languages with first line, new chat actions
- refactored client classes to have the same simple design
- command /MESSAGE is the default command to send private messages
- homepage relaunch with download section
Explanation of used symbols:
> = item planned
# = comment or smaller task
- multiple chat windows for private messages, dockable or something cool (mark)
- skinning support for Windows GUI, Winamp 2.x like, godX remix (feyd, mark)
- chat input with a 'girlie mode' where you can see smileys etc while typing (mark)
- in message window show if user is in DND mode (domk)
- in message window show if opponent is typing or not (domk, jns)
- in message window show user's image or webcam, if available (domk)
- automatic check if friends on contact list are online/offline (mark)
- status dialog with more information, possibly web based too (mark)
- options dialog with more settings, possibly web based too (phantomix, mark)
- 3D dialog with server and network details, both for Linux and Windows (mark)
- improve 3D rendering with animated models, textures, etc (mark)
- animated notifier for private messages, joins, etc (mark)
- chat window with search bar, Firefox like (domk)
- user can log his/her chat text and messages (domk)
- usability study with ca 10 users to make UI better (mark)
- investigate how to get rid of MFC GUI in favour of another Win32 wrapper (mark)
- investigate how to get a Linux GUI compiled with WINE or KDE/QT (mark)
- chat with filtered IP-address display and logging (mark, iamnacho)
- in /WHOIS command block LAN network information (mark, iamnacho)
- anti flood protection (iamnacho)
- web server handles pipelining with mixed text/binary data stream (mark)
- web server supports CGI and FastCGI (mark)
- web server with request rewrite interface, similar to mod_rewrite (mark)
- authentication interface for user authentication via database (mark)
- multiple 'view ports' to support multiple chat windows, suitable for multiplexing (mark)
- traffic encryption (mark, jamie)
- builtin proxy with a multi-purpose P2P tunneling service (mark)
- abbility to send/receive files via HTTP/HTTPS (mark, phantomix, domk)
- profiling of HTTP data flow, especially bulk data transfer and transaction rate (mark)
- instant messaging "short messaging" also when other person is offline (mark, rickard, domk)
- user profiles with vcard and interests (mark, iamnacho)
- finding users with common interests (mark)
- script for Pichat webpage that checks chat servers and makes statistics (mark)
- server cluster with automatic server change when one goes down (phantomix)
- data injection to harden against traffic activity analysis (mark)
- technical and functional improvements to harden against misuse, spamming and attacks (mark)
- adjustments for mobiles devices, e.g. extra low traffic (mark)
- ASCII and UTF8 text data streams, publish protocol specifications (mark)
- new ticket system for support and bug tracking
- refactor preferences classes, automatic update for dynamic entries and smaller footprint
- systray blinking doesn't work on Windows 64bit version, maybe a time calculation issue
- forced idle away from chat server and application logic should work better together
Ideas or wishes? Please visit the
Pichat Support and discuss your ideas!