Jelikož jsem, jak jsem zmínil už v minulém článku, postižen nemocí zvanou dementia assembleris, nemohl jsem nechat bez následků včerejší menší diskuzi na Slacku. Řešilo se tam mimo jiné, jak programuji, a já se zmínil o jedné své vlastnosti: když na ZX Spectru, případně samozřejmě na Nextu, něco chci a nikdo jiný to není ochoten udělat, nebo aspoň nevidím známky toho, že by se do toho někdo chystal, prostě to udělám sám.
Mám takový punkový přístup. Ne každému je asi sympatický, ne každý ho ocení a někdo má možná i strach usnout, protože během té doby dokážu vypotit ne úplně promyšlený kus kódu. No a právě při té diskuzi na Slacku jsem se zmínil, že mě neuvěřitelně štve, že nemám žádného IRC klienta pro ZX Spectrum Next. A pak mi to nedalo spát. Doslova.
Protože sem tam pracuji s WiFi modulem, který ZX Spectrum Next má, a nějaký software pro Next už jsem také napsal (tím pádem mám knihovnu různých rutinek), nebyla samotná myšlenka realizace IRC klienta zase tak vzdálená. V praxi šlo hlavně o to zjistit, jak IRC server komunikuje. A to se, představte si, dá najít.
Abych to neprodlužoval: představuji vám NextIRC, plnohodnotného IRC klienta pro ZX Spectrum Next.
Při startu má jednoduchý wizard. Můžete použít aktuální WiFi připojení, uloženou WiFi konfiguraci, nebo zadat novou SSID a heslo. Podobně se dá použít uložený nick, případně zadat jiný. Konfigurace se ukládá a načítá ze souboru IRC.CFG. V něm je WiFi SSID, heslo, server, port, nick, realname a channel, včetně magic hodnoty, verze a checksumu.
Aktuálně jsou implementované tyto slash příkazy:
NextIRC podporuje více otevřených oken. Každé okno má vlastní scrollback v 8KB RAM bance, zhruba 199 řádků na okno. Aktivní okno se dá přepínat přes /next, /prev nebo přes window picker na klávese EDIT. Klávesa GRAPH otevře user picker aktivního kanálu a vybraný nick vloží do vstupního řádku jako „nick: “. NAMES ukládá až 64 nicků na kanál, každý o délce maximálně 16 znaků. Chatové zprávy se zalamují na více řádků a totéž platí pro dlouhé serverové texty. Vlastní zprávy se po odeslání rovnou zobrazí v chatu. Když zpráva obsahuje aktuální nick, dostane interní highlight marker. Nicky mají stabilní barevné bucketování podle hash logiky, takže stejný nick má vždy stejnou barvu. Join a quit hlášky mají vlastní zvýraznění. Vstupní historie si pamatuje posledních 32 odeslaných řádků. Vstupní řádek podporuje kurzor vlevo a vpravo, backspace, vkládání do pozice kurzoru a posun pohledu pro delší text.
NextIRC není pěkný, ale funguje. To, aby byl pěkný, přijde časem. Tedy ono se to samozřejmě nestane samo, protože věci se samy nedělají samy, ale časem ten program upravím tak, aby lahodil i oku. A víte, co je na NextIRC opravdu dobré? Dokáže mě upozornit na soukromou zprávu tak, že ji jen tak nepřehlédnu. Což WeeChat, který je ale hodně starý, pořádně neumí.