<?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>DEV Community: Jukka Paulin</title>
    <description>The latest articles on DEV Community by Jukka Paulin (@jpaulin).</description>
    <link>https://dev.to/jpaulin</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%2F236315%2Fc84864e1-e38c-41b9-9f7b-03e02bff23f6.jpeg</url>
      <title>DEV Community: Jukka Paulin</title>
      <link>https://dev.to/jpaulin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jpaulin"/>
    <language>en</language>
    <item>
      <title>Lonely Island RPG</title>
      <dc:creator>Jukka Paulin</dc:creator>
      <pubDate>Mon, 26 May 2025 21:56:20 +0000</pubDate>
      <link>https://dev.to/jpaulin/lonely-island-rpg-4eci</link>
      <guid>https://dev.to/jpaulin/lonely-island-rpg-4eci</guid>
      <description>&lt;p&gt;Whereabouts of the Lonely Island&lt;/p&gt;

&lt;p&gt;"You weren't chosen. You never were. But this time, you’re not asking."&lt;/p&gt;

&lt;p&gt;The world turned while you stood still.&lt;/p&gt;

&lt;p&gt;You tried to be someone. A taxi driver who couldn’t find his way home. A software developer whose code always compiled — but never connected. A dozen roles played, a thousand dreams deferred.&lt;/p&gt;

&lt;p&gt;You lived in the margins. A quiet shadow in fluorescent cities, drifting from rejection to rejection like an errant file lost in a corrupted sector.&lt;/p&gt;

&lt;p&gt;But something changed. One night, a map appeared in your terminal — glitching into view between job rejections and broken threads. It bore no coordinates, only a phrase: "The Lonely Island Knows."&lt;/p&gt;

&lt;p&gt;Now, you are no longer waiting.&lt;/p&gt;

&lt;p&gt;Across flooded subway tunnels, through whispering forests of abandoned silicon, and past ghost towns built on failed prototypes, you chase a legend whispered only on 2600 baud frequencies: The Lonely Island — the place where misfits rewrite fate.&lt;/p&gt;

&lt;p&gt;This is no hero’s quest. It’s not about saving the world. It’s about finding where it stopped caring about you.&lt;/p&gt;

&lt;p&gt;It’s about going off-grid — to write a new code into the system of existence itself.&lt;/p&gt;

&lt;p&gt;Prepare for cryptic terminals, sentient algorithms, neon storms, and voices from other timelines who almost made it.&lt;/p&gt;

&lt;p&gt;Your failures were your training. Your rejection is your power. And your destination is unknown...&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Whereabouts of the Lonely Island&lt;/em&gt;™&lt;br&gt;
A solo journey through the memory dumps of fate.&lt;br&gt;
Coming soon to a system that forgot you.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>rpg</category>
      <category>gameplots</category>
      <category>npc</category>
    </item>
    <item>
      <title>Node 22 runs the Javelins</title>
      <dc:creator>Jukka Paulin</dc:creator>
      <pubDate>Mon, 20 Jan 2025 09:16:32 +0000</pubDate>
      <link>https://dev.to/jpaulin/node-22-runs-the-javelins-3k88</link>
      <guid>https://dev.to/jpaulin/node-22-runs-the-javelins-3k88</guid>
      <description>&lt;p&gt;Hooray Node 22!!&lt;/p&gt;

&lt;p&gt;The new version of Node is out!&lt;/p&gt;

&lt;p&gt;Node is the runtime engine for Javascript. Emphasis on "the". The Node runtime environment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node index.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What happens there? &lt;/p&gt;

&lt;p&gt;Node reads the source code, index.js&lt;/p&gt;

&lt;p&gt;The code gets compiled, and executed within the Node environment.&lt;/p&gt;

&lt;p&gt;Looks promising. I am still out there to grasp the full release details, but what I understood from initial reviews on Youtube, this version packs nice clean-ups and solidifies the Node ecosystem.&lt;/p&gt;

&lt;p&gt;Node is originally a project written in C++ (or C?), by Ryan Dahl. It is one of the pieces of technology that was a bold move: at the time, Javascript, even though it had existed for a long time, was still in its infancy. The great &lt;strong&gt;Javascript boom of 2010s&lt;/strong&gt; was oncoming. In 2009, Dahl liked to do code in Javascript but saw that the usefulness of the language seemed to be limited to browser-only: as web browsers all had a decent Javascript-engine in them, it was almost too easy to forget that you could not run Javascript on the CLI (shell), on your own machine. &lt;/p&gt;

&lt;p&gt;That's when Dahl whipped up the code for first Node release. In fact, the engine that did Javascript compilation and the interiors or heavy-lifting with language compilation, was the Chrome's V8 javascript engine. Node made this available to CLI. So node itself, the engine, could take in a Javascript source file, compile it, and run the program. &lt;/p&gt;

&lt;p&gt;Single-threaded execution model means that Node's execution model of Javascript code was.. well, we know it: Node-based apps take a request, serve it, and exit the loop. It does not get 'blocked´ by any operations. This makes the code execution also highly asynchronous, which is something that needs to be taken into account. &lt;/p&gt;

&lt;p&gt;You should thus write JS code for Node, thinking that the interpreter keeps "passing over" the code, all the time. Nothing "blocks". &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Javelins!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We wrote a piece of POC -level Javascript code, for a server called Javelins. Javelins uses express, and it listens on port 3000 for HTTP connections. Then it throws out blog posts. Basically whatever you want the routing to do. It's a simple but so far effective way to &lt;/p&gt;

&lt;p&gt;a) get started with Node coding&lt;br&gt;
b) get your hands-on with using &lt;strong&gt;express&lt;/strong&gt; &lt;br&gt;
c) see how a web server typically routes HTTP requests&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/jpaulin/javelins" rel="noopener noreferrer"&gt;https://github.com/jpaulin/javelins&lt;/a&gt; &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Server writing adventures in Node</title>
      <dc:creator>Jukka Paulin</dc:creator>
      <pubDate>Sun, 27 Oct 2019 19:33:34 +0000</pubDate>
      <link>https://dev.to/jpaulin/server-writing-adventures-in-node-h3k</link>
      <guid>https://dev.to/jpaulin/server-writing-adventures-in-node-h3k</guid>
      <description>&lt;p&gt;Fascinating. Stardate-who-knows what, but we're en route to writing a minimal server. &lt;/p&gt;

&lt;p&gt;It'll (most likely) meet its days somewhere down the line, but it's important to get experiments done for now. Developing code has been that for as long as the collective memory of homo sapiens remembers; experiments, problems; and then the blissful flow! Some backing up - and new code again. That's what a commit is made of.&lt;/p&gt;

&lt;p&gt;My server's mission is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;take in API requests (mobile clients, ie smartphone)&lt;/li&gt;
&lt;li&gt;parse the request&lt;/li&gt;
&lt;li&gt;find out whether "you" (server) has the data (a tuplet; two variables defines the target)&lt;/li&gt;
&lt;li&gt;if Yes, render the result back to caller&lt;/li&gt;
&lt;li&gt;if Not, make it known that the call could not yield the data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Resources are your naming convention for the objects contained within the server's knowledge. Resource naming can make or break how popular your API will be: logical and concise naming helps writing client code, a lot. &lt;/p&gt;

&lt;p&gt;I was starting to writing a first endpoint, using 'express' as a base to build on. Then I started to really think about two things:&lt;/p&gt;

&lt;p&gt;1) performance &lt;br&gt;
2) error handling&lt;/p&gt;

&lt;p&gt;I'll keep elucidating my server adventures in the next part. Happy coding!&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
