<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: mascalzone</title>
    <description>The latest articles on Forem by mascalzone (@mascalzone).</description>
    <link>https://forem.com/mascalzone</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F416090%2F474cc75b-f111-4407-b462-f02137c4c6b6.png</url>
      <title>Forem: mascalzone</title>
      <link>https://forem.com/mascalzone</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mascalzone"/>
    <language>en</language>
    <item>
      <title>I Built a Portable Text Editor for Windows — One .exe File, No Installation, Forever Free</title>
      <dc:creator>mascalzone</dc:creator>
      <pubDate>Wed, 01 Apr 2026 22:24:14 +0000</pubDate>
      <link>https://forem.com/mascalzone/i-built-a-portable-text-editor-for-windows-one-exe-file-no-installation-forever-free-52od</link>
      <guid>https://forem.com/mascalzone/i-built-a-portable-text-editor-for-windows-one-exe-file-no-installation-forever-free-52od</guid>
      <description>&lt;p&gt;A solo developer's story of building the Notepad replacement that should have existed years ago.&lt;/p&gt;

&lt;p&gt;I've been using Windows my whole life. And my whole life, every time I needed to write something with a bit of formatting — a heading, some bold text, a colored note — I ended up either opening Word (too heavy), using Notepad (too limited), or pasting into a browser-based tool (too many accounts).&lt;/p&gt;

&lt;p&gt;WordPad was the middle ground. Then Microsoft removed it from Windows 11.&lt;br&gt;
That was the moment I decided to build my own.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem I Was Solving
&lt;/h2&gt;

&lt;p&gt;Let me be specific about what I needed, because "text editor" covers everything from Vim to Google Docs.&lt;/p&gt;

&lt;p&gt;I wanted something that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requires zero installation. I work on multiple machines — personal, work, sometimes borrowed. I don't always have admin rights. I don't want to install anything.&lt;/li&gt;
&lt;li&gt;Has real formatting. Not just bold and italic. Headings, colors, lists, font selection, clickable links. Enough to write a proper document.&lt;/li&gt;
&lt;li&gt;Is portable. Put it on a USB drive, plug it into any Windows 10 or 11 machine, open it, use it.&lt;/li&gt;
&lt;li&gt;Is completely free. Not free-with-a-watermark. Not free-for-30-days. Free.&lt;/li&gt;
&lt;li&gt;Does something the others don't. Publishing and sharing built directly into the editor — no browser needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of the existing tools checked all of these boxes. Notepad++ is excellent but built for code, not documents. VS Code is powerful but weighs hundreds of megabytes and is designed for developers. &lt;strong&gt;Notepad is 1985&lt;/strong&gt; with a fresh coat of paint.&lt;br&gt;
So I built TxT EvoluTioN.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Is
&lt;/h2&gt;

&lt;p&gt;TxT EvoluTioN is a rich text editor for Windows 10 and 11. It ships as a single .exe file — no installer, no dependencies the user needs to manage, no folders scattered across the system drive.&lt;/p&gt;

&lt;p&gt;You download it, put it wherever you want — the desktop, a folder, a USB stick — and open it. That's the entire setup process.&lt;/p&gt;

&lt;p&gt;Under the hood it's built with Python and PyQt6, packaged into a standalone executable. The first launch takes a few seconds while Windows caches the libraries. From the second launch onward it's noticeably faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Features I Actually Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rich formatting&lt;/strong&gt;&lt;br&gt;
Bold, italic, underline, strikethrough. Headings H1 through H4. Bullet and numbered lists. Text alignment. Font selection from a curated set of typefaces — not every font on the system, just the ones that actually work well for writing. Size from 8pt to 72pt and beyond.&lt;/p&gt;

&lt;p&gt;Color control is split into three independent layers: global text color, page background color, and per-selection color. You can write a dark document in a light interface, or a light document in dark mode. They don't interfere with each other.&lt;/p&gt;

&lt;p&gt;Clickable hyperlinks and images embedded from URL are both supported and export correctly to HTML.&lt;br&gt;
Find and replace with case sensitivity options — because searching without case sensitivity is only useful half the time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three save formats&lt;/strong&gt;&lt;br&gt;
This was one of the design decisions I'm most satisfied with. Instead of one format that tries to do everything, TxT EvoluTioN has three, each with a clear purpose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;.TXT — plain text.&lt;/strong&gt; No tags, no formatting metadata. Opens in anything. Use it for code snippets, configuration files, notes you need to share with other programs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;.RTX — the native format.&lt;/strong&gt; Preserves everything: fonts, colors, headings, clickable links. Opens only in TxT EvoluTioN. Think of it as your personal formatted notebook — not meant to be shared, just to be used.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;.HTML *&lt;/em&gt;— exports the document as a complete, mobile-friendly HTML5 page with all styles embedded. Whatever you wrote in the editor becomes a web page you can upload, attach to an email, or open in any browser. No coding required on the user's side.&lt;/p&gt;

&lt;h2&gt;
  
  
  Direct web publishing
&lt;/h2&gt;

&lt;p&gt;This is the feature that most people don't expect in a text editor.&lt;br&gt;
With one click, TxT EvoluTioN publishes your document directly to IRCWebNet — a free web publishing service I also built — and gives you a live URL with a custom slug.&lt;/p&gt;

&lt;p&gt;No switching to a browser, no copying and pasting, no login required.&lt;br&gt;
It's a small thing, but it changes the workflow significantly. You write, you publish, you share the link. Three steps, no detours.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ev Pastebin
&lt;/h3&gt;

&lt;p&gt;A built-in temporary sharing tool. You generate a link to any text, code, or markdown content, set an expiration time from five minutes to one year, and the link gets copied to your clipboard automatically. When it expires, the content deletes itself. No account required on either end.&lt;/p&gt;

&lt;p&gt;Developers who use Pastebin or similar services daily will find this useful — having it inside the editor means one less context switch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dark and light theme
&lt;/h3&gt;

&lt;p&gt;The interface theme is independent of document colors. You can work in dark mode while writing a document with a white background, or in light mode while writing a dark-themed document. This sounds like a minor detail until you actually want it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Automatic update checking
&lt;/h3&gt;

&lt;p&gt;At startup, the editor silently checks whether a new version is available and notifies you if one exists. No background processes, no forced updates, no surprises. Just a notification when something new is ready.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Technical Side
&lt;/h3&gt;

&lt;p&gt;Building a desktop application with Python and PyQt6 and packaging it into a single portable .exe is not as straightforward as it sounds.&lt;/p&gt;

&lt;p&gt;PyInstaller handles the packaging, but the resulting binary embeds the entire Python runtime along with all Qt libraries — which is why the file is around 45MB and why the first launch takes a moment.&lt;/p&gt;

&lt;p&gt;There are trade-offs here. A native C++ application would be faster and lighter. But Python and PyQt6 gave me the development speed I needed as a solo developer, and the performance is entirely acceptable for a text editor. Nobody is writing novels under real-time constraints.&lt;/p&gt;

&lt;p&gt;The settings are stored in %APPDATA%\TxT EvoluTioN\ — not next to the executable. This is intentional: it means you can move or update the .exe without losing your preferences, and it means the USB drive version doesn't write user data to the drive itself.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Learned Building It
&lt;/h3&gt;

&lt;p&gt;Portability is harder than it looks. Making an application that truly works on any Windows 10/11 machine without leaving traces requires thinking carefully about where every file gets written. Registry entries, temp files, user data — all of it has to be handled deliberately.&lt;/p&gt;

&lt;p&gt;Users care about formats more than features. The three-format system was the decision that generated the most positive feedback. People understood immediately why having .TXT for universal compatibility, .RTX for personal use, and .HTML for sharing made sense. It was more useful than any individual formatting feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Free forever"&lt;/strong&gt; is a design constraint, not just a pricing decision. Deciding from the start that there would be no premium plan forced me to think differently about what the tool should do. It has to be complete — not a demo, not a teaser.&lt;/p&gt;

&lt;p&gt;Everything in it had to be something I was willing to give away permanently.&lt;/p&gt;

&lt;p&gt;The built-in publishing feature is what makes it different. Every other lightweight editor stops at the file. TxT EvoluTioN goes one step further — it can put your document on the web without you leaving the application. That single feature separates it from every comparable tool in its category.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The roadmap is public and honest about what's planned and what's speculative.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version 1.1&lt;/strong&gt; focuses on startup speed improvements and multilingual interface support — English, French, and Spanish menus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version 1.2&lt;/strong&gt; adds a browser-based RTX viewer, so people without the editor can read .RTX files online.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version 2.0&lt;/strong&gt; is the ambitious one: real-time collaborative editing, where you share a document via link and work on it simultaneously with someone else. That's a significant technical lift for a solo project, but it's the direction I want to go.&lt;/p&gt;

&lt;p&gt;Try It&lt;br&gt;
TxT EvoluTioN is free, open source, and available now for Windows 10 and 11.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="https://ircwebnet.com/txt-evolution" rel="noopener noreferrer"&gt;ircwebnet.com/txt-evolution&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/mascalzone/txt-evolution" rel="noopener noreferrer"&gt;github.com/mascalzone/txt-evolution&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you try it, I'd genuinely like to know what you think — what works, what doesn't, what's missing. Solo projects get better through real feedback, and this one is no exception.&lt;/p&gt;

&lt;p&gt;Built by AkTaRuS — an independent Italian developer. All projects at &lt;a href="https://ircwebnet.com" rel="noopener noreferrer"&gt;ircwebnet.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>python</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>TCL for eggdrop IRC bot SPY chan to chan</title>
      <dc:creator>mascalzone</dc:creator>
      <pubDate>Sun, 25 Jun 2023 20:20:08 +0000</pubDate>
      <link>https://forem.com/mascalzone/tcl-for-eggdrop-irc-bot-spy-chan-to-chan-4pjc</link>
      <guid>https://forem.com/mascalzone/tcl-for-eggdrop-irc-bot-spy-chan-to-chan-4pjc</guid>
      <description>&lt;p&gt;I recommend you don't run this script on a bot that already has to do alot&lt;br&gt;
If the channel you're spying on has alot of users with alot of talking your bot could excess flood&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`# Info
# Author : AkTaRuS - #SiamoSoloNoi on IRCserveR Italia https://www.ircwebnet.com/chat
# Version: 007.TCL 1.1
set spy(author)  "AkTaRuS - #SiamoSoloNoi on IRCserveR Italia https://www.ircwebnet.com/chat"
set spy(version) " OO7.tcl 1.1"

# Description

# This script will relay anything said on one channel to the other channel you configure
# I recommend you don't run this script on a bot that already has to do alot
# If the channel you're spying on has alot of users with alot of talking your bot could excess flood

# Configuration

# The channel it reports everything to
set spy(home) "#siamosolonoi"

# The channel it gets all the data from and then reports it to the homechannel
set spy(chan) "#canale spiato"

bind PUBM   -|- *                spychan:chat
bind CTCP   -|- "ACTION"         spychan:action
bind SIGN   -|- "$spy(chan) *"   spychan:sign
bind JOIN   -|- "$spy(chan) *"   spychan:join
bind PART   -|- "$spy(chan) *"   spychan:part
bind SPLT   -|- "$spy(chan) *"   spychan:split
bind KICK   -|- "$spy(chan) *"   spychan:kick
bind RAW     *  "MODE"           spychan:mode

proc spychan:part { nickname hostname handle channel reason } {
    global spy
    if {[string equal -nocase $channel $spy(chan)]} {
    putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has left $spy(chan)"
    }
       }

proc spychan:join { nickname hostname handle channel } {
    global spy
    if {[string equal -nocase $channel $spy(chan)]} {
    putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has joined $spy(chan)"
    }
       }

proc spychan:kick { nickname hostname handle channel target reason } {
    global spy
    if {[string equal -nocase $channel $spy(chan)]} {
    putserv "PRIVMSG $spy(home) :\[$channel\] * $target was kicked from $spy(chan) by $nickname ($reason)"
    }
       }

proc spychan:mode { from key arguments } {
    global spy
    set channel [string trim [lindex [split $arguments] 0]] 
    set modechange [string trim [lindex [split $arguments] 1]] 
    set victims [string trim [join [lrange [split $arguments] 2 end]]] 

    set nickname [string trim [lindex [split $from "!"] 0]] 
    set hostname [string trim [lindex [split $from "!"] 1]]
    if {[string equal -nocase $channel $spy(chan)]} {
    putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname sets mode: $modechange $victims"
    }
       }

proc spychan:sign { nickname hostname handle channel reason } {
    global spy
    if {[string equal -nocase $channel $spy(chan)]} {
    putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has quit IRC ($reason)"
    }
       }

proc spychan:split { nickname hostname handle channel arguments } {
    global spy
    if {[string equal -nocase $channel $spy(chan)]} {
    putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname has split from the network"
    }
       }

proc spychan:chat { nickname hostname handle channel arguments } {
    global spy
    if {[string equal -nocase $channel $spy(chan)]} {
        putserv "PRIVMSG $spy(home) :$arguments"
        }
       }

proc spychan:action { nickname hostname handle channel keyword arguments } {
    global spy
    if {[string equal -nocase $channel $spy(chan)]} {
        putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname $arguments"
        }
       }

putlog "OO7.tcl version $spy(version) by $spy(author)  Loaded!"`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Click here for clarification on &lt;a href="https://www.ircwebnet.com/tcl-script-per-eggdrop/"&gt;how to install a TCL on eggdrop&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to install eggdrop on vsp</title>
      <dc:creator>mascalzone</dc:creator>
      <pubDate>Sun, 25 Jun 2023 20:06:49 +0000</pubDate>
      <link>https://forem.com/mascalzone/how-to-install-eggdrop-on-vsp-55n4</link>
      <guid>https://forem.com/mascalzone/how-to-install-eggdrop-on-vsp-55n4</guid>
      <description>&lt;p&gt;Eggdrop is the most advanced, most popular and best supported IRC bot. If you've never used a bot before, you'll find that Eggdrop provides a staggering range of channel management options and can easily be expanded further to provide even more features. The Eggdrop code is free to download and use by anyone. Some of Eggdrop's key features include:&lt;/p&gt;

&lt;p&gt;``wget &lt;a href="http://ftp.eggheads.org/pub/eggdrop/source/1.8/eggdrop-1.8.4.tar.gz"&gt;http://ftp.eggheads.org/pub/eggdrop/source/1.8/eggdrop-1.8.4.tar.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;tar zxvf eggdrop-1.8.4.tar.gz&lt;/p&gt;

&lt;p&gt;rm -rf eggdrop-1.8.4.tar.gz&lt;/p&gt;

&lt;p&gt;cd eggdrop-1.8.4&lt;/p&gt;

&lt;p&gt;./configure&lt;/p&gt;

&lt;p&gt;make config&lt;/p&gt;

&lt;p&gt;make&lt;/p&gt;

&lt;p&gt;make install&lt;code&gt;&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
CD&lt;/p&gt;

&lt;p&gt;cd eggdrop&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pico eggdrop.conf &lt;/code&gt;(or use your favorite file editor eg nano)&lt;/p&gt;

&lt;p&gt;If your setup doesn't work as it should and you see something like this:&lt;/p&gt;

&lt;p&gt;Tcl cannot be found on this system.&lt;/p&gt;

&lt;p&gt;Eggdrop requires Tcl to be compiled. If you already have Tcl installed on&lt;/p&gt;

&lt;p&gt;this system, and I wasn't looking in the right place for it, re-run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;./configure&lt;/code&gt; using the -con-tcllib = '/path/to/libtcl.so' and&lt;/p&gt;

&lt;p&gt;-with -tclinc = "/path/to/tcl.h" options.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;./configure –with-tclinc = / usr / include / tcl8.6 / tcl.h –with-tcllib = / usr / lib / x86_64-linux-gnu / libtcl8.6.so&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;`gcc -v&lt;/p&gt;

&lt;p&gt;make -v&lt;/p&gt;

&lt;p&gt;make config&lt;/p&gt;

&lt;p&gt;make`&lt;/p&gt;

&lt;p&gt;More detailed for beginners click on: &lt;a href="https://www.ircwebnet.com/eggdrop-irc-bot/"&gt;install eggdrop beginner's guide.&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>irc</category>
      <category>bot</category>
      <category>ubuntu</category>
      <category>eggdrop</category>
    </item>
  </channel>
</rss>
