nrw.social ist einer von vielen unabhängigen Mastodon-Servern, mit dem du dich im Fediverse beteiligen kannst.
Wir sind eine freundliche Mastodon Instanz aus Nordrhein-Westfalen. Ob NRW'ler oder NRW-Sympathifanten, jeder ist hier willkommen.

Serverstatistik:

2,8 Tsd.
aktive Profile

#nfa

0 Beiträge0 Beteiligte0 Beiträge heute
Lorry :unverified:<p>I figured it was time to write a weblog post breaking down the political and illogical farce of Trudeau's executive actions on firearms these last few years. </p><p>You probably won't see many posts like this from the far left, but as the saying goes: "When you go far enough left, you get your guns back."</p><p>Oh yeah, I should put a link instead of spending all of my time writing an alt-text on that free Tornado spud-gun advert that doesn't even link anywhere.</p><p><a href="https://superhighwayman.com/2025/canadas-gun-bans/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">superhighwayman.com/2025/canad</span><span class="invisible">as-gun-bans/</span></a></p><p><a href="https://infosec.exchange/tags/Canada" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Canada</span></a> <a href="https://infosec.exchange/tags/Guns" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Guns</span></a> <a href="https://infosec.exchange/tags/CanPoli" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>CanPoli</span></a> <a href="https://infosec.exchange/tags/Politics" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Politics</span></a> <a href="https://infosec.exchange/tags/Firearms" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Firearms</span></a> <a href="https://infosec.exchange/tags/SKS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SKS</span></a> <a href="https://infosec.exchange/tags/I" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>I</span></a> <a href="https://infosec.exchange/tags/Bet" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bet</span></a> <a href="https://infosec.exchange/tags/Twitter" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Twitter</span></a> <a href="https://infosec.exchange/tags/Has" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Has</span></a> <a href="https://infosec.exchange/tags/More" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>More</span></a> <a href="https://infosec.exchange/tags/AR15" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>AR15</span></a> <a href="https://infosec.exchange/tags/Hashtags" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Hashtags</span></a> <a href="https://infosec.exchange/tags/than" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>than</span></a> <a href="https://infosec.exchange/tags/Mastodon" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Mastodon</span></a> <a href="https://infosec.exchange/tags/NFA" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NFA</span></a> <a href="https://infosec.exchange/tags/PeePee" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PeePee</span></a> <a href="https://infosec.exchange/tags/polievre" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>polievre</span></a> <a href="https://infosec.exchange/tags/Trudeau" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Trudeau</span></a> <a href="https://infosec.exchange/tags/Carney" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Carney</span></a> <a href="https://infosec.exchange/tags/BigBills" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BigBills</span></a> <a href="https://infosec.exchange/tags/Blog" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Blog</span></a> <a href="https://infosec.exchange/tags/Tornado" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Tornado</span></a> <a href="https://infosec.exchange/tags/Comic" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Comic</span></a> <a href="https://infosec.exchange/tags/Potato" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Potato</span></a> <a href="https://infosec.exchange/tags/TooManyHashtags" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TooManyHashtags</span></a> <a href="https://infosec.exchange/tags/AI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>AI</span></a> <a href="https://infosec.exchange/tags/Assisted" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Assisted</span></a> <a href="https://infosec.exchange/tags/Weblog" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Weblog</span></a> <a href="https://infosec.exchange/tags/NobodyReadsTheseAnyway" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NobodyReadsTheseAnyway</span></a> <a href="https://infosec.exchange/tags/RamRanch" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RamRanch</span></a> <a href="https://infosec.exchange/tags/FreedumbConvoy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FreedumbConvoy</span></a> <a href="https://infosec.exchange/tags/TimBitTaliban" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TimBitTaliban</span></a> (I haven't used those for ages, I will stop now)</p>
Harald<p>When you move, for example your software from Github to Codeberg, you should install a Nachsendeantrag (forwarding request).😜 </p><p>Not the least because the old version persists in search engine results.</p><p>I now did so on Github leading to my NFA/DFA software for Java: <a href="https://codeberg.org/harald/monqjfa" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">codeberg.org/harald/monqjfa</span><span class="invisible"></span></a></p><p>Which was previously hosted on <a href="https://nrw.social/tags/github" class="mention hashtag" rel="tag">#<span>github</span></a>: <a href="https://github.com/HaraldKi/monqjfa" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">github.com/HaraldKi/monqjfa</span><span class="invisible"></span></a></p><p><a href="https://nrw.social/tags/codeberg" class="mention hashtag" rel="tag">#<span>codeberg</span></a> <a href="https://nrw.social/tags/monqjfa" class="mention hashtag" rel="tag">#<span>monqjfa</span></a> <a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a> <a href="https://nrw.social/tags/dfa" class="mention hashtag" rel="tag">#<span>dfa</span></a></p>
Harald<p><a href="https://nrw.social/tags/monqjfa" class="mention hashtag" rel="tag">#<span>monqjfa</span></a>, my <a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>/#dfa, <a href="https://nrw.social/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> library for <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> got some cleanup in the way finite automata are built. They do not only have the accepting states, but a state may also store a value. The values can be used for special tricks during state traversal. Historically the only &quot;trick&quot; was that this was an accepting state.</p><p>The latest refactoring made it clearer that more can be done and how states with values and accepting states are related.</p><p><a href="https://harald.codeberg.page/monqjfa/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">harald.codeberg.page/monqjfa/</span><span class="invisible"></span></a></p><p>Feedback welcome.</p>
Harald<p><a href="https://nrw.social/tags/monqjfa" class="mention hashtag" rel="tag">#<span>monqjfa</span></a>, my <a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>/#dfa, <a href="https://nrw.social/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> library for <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> has a grep-like program as an example of the use of the library. This got a new feature resembling grep&#39;s --color option to show matches with colors, using ANSI escape sequences</p><p>ooo r=&#39;RuleParser-&gt;{c:<a href="https://nrw.social/tags/44ff11" class="mention hashtag" rel="tag">#<span>44ff11</span></a>}&#39;</p><p>Yes, the program is called &quot;ooo&quot; 🙂 Why? ... Why not?</p><p>There are more things possible within the braces, the simplest one is </p><p> &#39;...-&gt;{c}&#39; as a shortcut for &#39;...-&gt;{:red}</p><p>to get the match in red.</p><p><a href="https://harald.codeberg.page/monqjfa/javadoc/monq/Oooo.html" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">harald.codeberg.page/monqjfa/j</span><span class="invisible">avadoc/monq/Oooo.html</span></a></p>
:praha_metro: Chloe :sallysbahn: :Blobhaj_Flag_Lesbian:<p><span class="h-card" translate="no"><a href="https://zug.network/@tonfolge" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>tonfolge</span></a></span> <span class="h-card" translate="no"><a href="https://zug.network/@ril100" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>ril100</span></a></span> <a href="https://zug.network/tags/NFA" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NFA</span></a></p>
Harald<p><a href="https://nrw.social/tags/monqjfa" class="mention hashtag" rel="tag">#<span>monqjfa</span></a>, my finite automaton library for <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> got </p><p> Capturing Parenthesis</p><p>Wait, WHAT? This is impossible with a deterministic finite automaton!</p><p>Yes it is, in full generality. But in a limited fashion it is possible, and I am not at the end of the road of this experiment.</p><p><a href="https://codeberg.org/harald/monqjfa#dfa-versus-capturing-parentheses" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/harald/monqjfa#df</span><span class="invisible">a-versus-capturing-parentheses</span></a></p><p><a href="https://nrw.social/tags/jvm" class="mention hashtag" rel="tag">#<span>jvm</span></a> <a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a> <a href="https://nrw.social/tags/dfa" class="mention hashtag" rel="tag">#<span>dfa</span></a> <a href="https://nrw.social/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a></p>
Harald<p><a href="https://nrw.social/tags/monqjfa" class="mention hashtag" rel="tag">#<span>monqjfa</span></a>, my <a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>/#dfa, <a href="https://nrw.social/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> library for <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> has a grep-like program as an example of the use of the library. This got a new feature resembling grep&#39;s -l option to only list file names with matches, not the matches themselves. Example</p><p>ooo r=&#39;import.*map&#39; names=only src</p><p>Yes, the program is called &quot;ooo&quot; 🙂 Why? ... Why not?</p><p>The names=only is the new feature. As soon as a match is found, the file name is printed and the program moves on to the next file.</p><p><a href="https://codeberg.org/harald/monqjfa" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">codeberg.org/harald/monqjfa</span><span class="invisible"></span></a></p>
Harald<p>You sure have wondered what practical use the intersection of two regular languages has.😀 It is not live changing, but hey, at least interesting.😎 (To a certain tribe.)</p><p>Here it is: <a href="https://miamao.de/blog/2024-08/18.A_Practical_Use_for_Regular_Language_Intersection.html" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">miamao.de/blog/2024-08/18.A_Pr</span><span class="invisible">actical_Use_for_Regular_Language_Intersection.html</span></a><br /><a href="https://nrw.social/tags/cs" class="mention hashtag" rel="tag">#<span>cs</span></a> <a href="https://nrw.social/tags/computerscience" class="mention hashtag" rel="tag">#<span>computerscience</span></a> <a href="https://nrw.social/tags/informatik" class="mention hashtag" rel="tag">#<span>informatik</span></a> <a href="https://nrw.social/tags/endlicheautomaten" class="mention hashtag" rel="tag">#<span>endlicheautomaten</span></a> <a href="https://nrw.social/tags/finiteautomata" class="mention hashtag" rel="tag">#<span>finiteautomata</span></a> <a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a> <a href="https://nrw.social/tags/dfa" class="mention hashtag" rel="tag">#<span>dfa</span></a> <a href="https://nrw.social/tags/monqjfa" class="mention hashtag" rel="tag">#<span>monqjfa</span></a></p>
Harald<p><a href="https://nrw.social/tags/monqjfa" class="mention hashtag" rel="tag">#<span>monqjfa</span></a>, my <a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>/#dfa, <a href="https://nrw.social/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> library for <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> got its first new feature during current modernization. The last operation of finite automata/regular languages which was missing: intersection<br />You can now write a regular expression &quot;some.*stuff&amp;(END)^&quot; which means</p><p>Match strings which match<br />- some.*stuff<br />- AND (the &amp;) at the same time<br />- any string NOT CONTAINING (the ^) END</p><p>Allows to use .* but avoids a match across a hard end, e.g. the string &quot;END&quot;.</p><p><a href="https://codeberg.org/harald/monqjfa" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">codeberg.org/harald/monqjfa</span><span class="invisible"></span></a></p><p><a href="https://nrw.social/tags/computerscience" class="mention hashtag" rel="tag">#<span>computerscience</span></a></p>
Harald<p>My <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> package <a href="https://nrw.social/tags/monqjfa" class="mention hashtag" rel="tag">#<span>monqjfa</span></a> for (non)deterministic finite automata (<a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>, <a href="https://nrw.social/tags/dfa" class="mention hashtag" rel="tag">#<span>dfa</span></a>) got an update: Following the advice &quot;eat your own dogfood&quot;, I wrote a small application somewhat resembling grep or sed, more to show how the library could be used than pretending to be better than sed/grep/awk. Though it has some coolness in the defaults used 😀 .</p><p><a href="https://codeberg.org/harald/monqjfa#example-application" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/harald/monqjfa#ex</span><span class="invisible">ample-application</span></a></p><p><a href="https://nrw.social/tags/informatikEdu" class="mention hashtag" rel="tag">#<span>informatikEdu</span></a><br /><a href="https://nrw.social/tags/informatik" class="mention hashtag" rel="tag">#<span>informatik</span></a><br /><a href="https://nrw.social/tags/endlicheautomaten" class="mention hashtag" rel="tag">#<span>endlicheautomaten</span></a><br /><a href="https://nrw.social/tags/finiteautomata" class="mention hashtag" rel="tag">#<span>finiteautomata</span></a></p>
Harald<p>My <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> package for (non)deterministic finite automata (<a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>, <a href="https://nrw.social/tags/dfa" class="mention hashtag" rel="tag">#<span>dfa</span></a>) updated.</p><p>This refactoring/rewrite provides a cleaner API to creating an NFA and compiling a DFA from it.</p><p><a href="https://harald.codeberg.page/monqjfa/javadoc/monq/jfa/NfaBuilder.html" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">harald.codeberg.page/monqjfa/j</span><span class="invisible">avadoc/monq/jfa/NfaBuilder.html</span></a></p><p>Computer science courses may visualize NFA and DFA via the included FaToDot. I think Thompson&#39;s Construction in the code is quite readable.</p><p><a href="https://codeberg.org/harald/monqjfa" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">codeberg.org/harald/monqjfa</span><span class="invisible"></span></a></p><p><a href="https://nrw.social/tags/informatikEdu" class="mention hashtag" rel="tag">#<span>informatikEdu</span></a><br /><a href="https://nrw.social/tags/informatik" class="mention hashtag" rel="tag">#<span>informatik</span></a><br /><a href="https://nrw.social/tags/endlicheautomaten" class="mention hashtag" rel="tag">#<span>endlicheautomaten</span></a><br /><a href="https://nrw.social/tags/finiteautomata" class="mention hashtag" rel="tag">#<span>finiteautomata</span></a></p>
Harald<p>My <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> package for (non)deterministic finite automata (<a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>, <a href="https://nrw.social/tags/dfa" class="mention hashtag" rel="tag">#<span>dfa</span></a>) updated.</p><p>You can create massive regular expressions with tons of stop states. Each stop state has a value, so a match is effectively a lookup. Like a hash table where the keys are regular expressions.</p><p>Computer science courses may visualize NFA and DFA via the included FaToDot. I think Thompson&#39;s Construction in the code is quite readable.</p><p><a href="https://codeberg.org/harald/monqjfa" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">codeberg.org/harald/monqjfa</span><span class="invisible"></span></a></p><p><a href="https://nrw.social/tags/informatikEdu" class="mention hashtag" rel="tag">#<span>informatikEdu</span></a> <a href="https://nrw.social/tags/informatik" class="mention hashtag" rel="tag">#<span>informatik</span></a> <a href="https://nrw.social/tags/endlicheautomaten" class="mention hashtag" rel="tag">#<span>endlicheautomaten</span></a> <a href="https://nrw.social/tags/finiteautomata" class="mention hashtag" rel="tag">#<span>finiteautomata</span></a></p>
Harald<p>I finished another round of modernizing my (Non)deterministic Finite Automata (<a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>, <a href="https://nrw.social/tags/dfa" class="mention hashtag" rel="tag">#<span>dfa</span></a>) <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> library.</p><p>Now with <a href="https://nrw.social/tags/Javadoc" class="mention hashtag" rel="tag">#<span>Javadoc</span></a> on the <a href="https://nrw.social/tags/Codeberg" class="mention hashtag" rel="tag">#<span>Codeberg</span></a> pages for the project. The link is at the top of the README.</p><p><a href="https://codeberg.org/harald/monqjfa" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">codeberg.org/harald/monqjfa</span><span class="invisible"></span></a></p>
Harald<p>After years I looked again at a <a href="https://nrw.social/tags/Java" class="mention hashtag" rel="tag">#<span>Java</span></a> library I once wrote to create (Non)deterministic Finite Automata (<a href="https://nrw.social/tags/nfa" class="mention hashtag" rel="tag">#<span>nfa</span></a>, <a href="https://nrw.social/tags/dfa" class="mention hashtag" rel="tag">#<span>dfa</span></a>). I removed a lot of stuff to trim it to the real core. Now I will slowly add features again.</p><p>In contrast to builtin regular expression in Java, this one does DFAs and also allows to visualize them (see FaToDot). Javadoc and tutorial are not up, but source code is on <a href="https://nrw.social/tags/codeberg" class="mention hashtag" rel="tag">#<span>codeberg</span></a> .</p><p>The name prefix, monq, was not invented by a native french speaker. 😀 </p><p><a href="https://codeberg.org/harald/monqjfa" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">codeberg.org/harald/monqjfa</span><span class="invisible"></span></a></p>