<?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: Dawid Kimana</title>
    <description>The latest articles on DEV Community by Dawid Kimana (@keymannerdawid).</description>
    <link>https://dev.to/keymannerdawid</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%2F39481%2Fc0f2e6be-ab4c-486f-b4aa-6fff6ed84695.jpg</url>
      <title>DEV Community: Dawid Kimana</title>
      <link>https://dev.to/keymannerdawid</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keymannerdawid"/>
    <language>en</language>
    <item>
      <title>SvelteKit - At the edge of Tomorrow</title>
      <dc:creator>Dawid Kimana</dc:creator>
      <pubDate>Tue, 29 Nov 2022 17:34:20 +0000</pubDate>
      <link>https://dev.to/keymannerdawid/sveltekit-at-the-edge-of-tomorrow-3a63</link>
      <guid>https://dev.to/keymannerdawid/sveltekit-at-the-edge-of-tomorrow-3a63</guid>
      <description>&lt;p&gt;The day is finally nigh, at 99% with 5 issues open, the excitement for SvelteKit v1 keeps building. &lt;/p&gt;

&lt;p&gt;I have been a big fan of SvelteKit (SK), having adopted Svelte on several projects as referred in &lt;a href="https://dev.to/keymannerdawid/why-sveltekit-31hh"&gt;this article&lt;/a&gt;; SK being the full-fledged framework for Svelte and being the successor to Sapper, it's exciting news that we are at the cusp of v1.&lt;/p&gt;

&lt;p&gt;Having implemented my app from Sapper to SvelteKit in beta, I eagerly await v1 and related documentation to launch and stabilize to finally port the app to a ready-to-production version of SK&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But why the excitement despite a smaller ecosystem for new frameworks?&lt;/strong&gt;&lt;br&gt;
For those unaware and with queries on the size of the Svelte/SK ecosystem it's important to highlight the ease of interoperability between Svelte and base Javascript(JS). In most instances JS components don't need to be wrapped to Svelte, therefore will work outside the box in a plug-n-play fashion. This in essence means that Svelte's ecosystem is as big as the JS ecosystem!&lt;br&gt;
&lt;strong&gt;finally&lt;/strong&gt;&lt;br&gt;
As this writer implored us in their reddit article, &lt;a href="https://www.reddit.com/r/sveltejs/comments/xbf9on/dont_give_up_on_sveltekit_please/" rel="noopener noreferrer"&gt;Don't give up on SvelteKit please!&lt;/a&gt;. For now we wait with baited breath, hopefully v1 will be launched before end of 2022..&lt;/p&gt;

</description>
      <category>emptystring</category>
    </item>
    <item>
      <title>Why Sveltekit</title>
      <dc:creator>Dawid Kimana</dc:creator>
      <pubDate>Mon, 27 Jun 2022 10:50:38 +0000</pubDate>
      <link>https://dev.to/keymannerdawid/why-sveltekit-31hh</link>
      <guid>https://dev.to/keymannerdawid/why-sveltekit-31hh</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have just concluded on a project built with Sveltekit (locked at version 170) and in this article I will brush over my experience with the framework.&lt;/p&gt;

&lt;p&gt;Sveltekit is a Javascript framework for svelte; much like we have Next.JS for react. As of the writing of this article, Sveltekit is still in beta with development at 70% as per the &lt;a href="https://github.com/sveltejs/kit/milestones"&gt;milestone tracker&lt;/a&gt;. This notwithstanding, it's still a solid framework that one can pick up and incorporate in their production-level projects (like I did 😌); I would recommend Sveltekit for production for most use cases as noted in this &lt;a href="https://www.reddit.com/r/sveltejs/comments/r4prys/sveltekit_ready_for_production/"&gt;reddit thread&lt;/a&gt;, but use with caution since the api is still in flux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Sveltekit&lt;/strong&gt;&lt;br&gt;
Sveltekit is the official meta-framework for the svelte library (&lt;a href="https://dev.to/ben/whats-the-difference-between-a-library-and-a-framework-1eaj"&gt;click here&lt;/a&gt; on the differences between a framework and library). &lt;br&gt;
Svelte itself offers a few advantages over its contemporaries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Back to the Basics - In the story of JS, svelte conforms to canon by building, enhancing and advancing on familiar technology. Other frameworks are adopting this strategy, more prominently &lt;a href="https://remix.run/"&gt;Remix&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Sane Store management - svelte library bundles a default implementation for store management which is simple and striaght-forward. The nearest example I have seen of a similar simplified implementation is &lt;a href="https://jotai.org/"&gt;jotai&lt;/a&gt; with its atomic model&lt;/li&gt;
&lt;li&gt;Simplified Reactivity API - The svelte includes two-way binding that enables a terser syntax in setting and getting of variables. On this Svelte's implementation is &lt;a href="https://imfeld.dev/writing/how_svelte_makes_two_way_binding_safe"&gt;safe from a technical perspective&lt;/a&gt;, and also one can opt out of two-way binding by ensuring only one-way binding at the code level&lt;/li&gt;
&lt;li&gt;Wide integration with (most) JS libraries, no mods and wrappers/ing required. Svelte was built for &lt;a href="https://www.youtube.com/watch?v=kMlkCYL9qo0&amp;amp;list=WL&amp;amp;index=16&amp;amp;t=1620s"&gt;visual journalism&lt;/a&gt; hence needed to work comfortably with existing viz libraries like &lt;a href="https://d3js.org/"&gt;D3.js&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;CSS - Straightforward and familiar CSS semantics in the component layer. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In essense, if you know html, css and javascript there's basically very little learning curve in picking up svelte.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sapper&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started working on this app in mid-2020, after picking up svelte after it had just turned to version 3 a year earlier - and yes I am a convert from the  &lt;a href="https://svelte.dev/blog/svelte-3-rethinking-reactivity"&gt;Rethinking Reactivity&lt;/a&gt; talk by the framework's author.&lt;/p&gt;

&lt;p&gt;I was &lt;a href="https://keymannerdawid.medium.com/why-reactjs-b601e1a131a0"&gt;working with React (pre-hooks)&lt;/a&gt; and was wondering how to simplifying the DX, and &lt;a href="https://keymannerdawid.medium.com/react-hooks-svelte-knockoutjs-angular1-in-2021-cd7c647d47a9"&gt;comparing with some alternatives&lt;/a&gt; at the time, svelte was a good balance between modern concepts (components etc) and reduced complexity via simplified apis.&lt;/p&gt;

&lt;p&gt;After getting familiar with svelte, I started my project on Sapper, the predecessor of Sveltekit. Sapper was an easier take for me compared to the alternatives, and I enjoyed exploring js-land using a "non-express" node based framework. I also ventured into &lt;a href="https://tailwindcss.com/"&gt;tailwind&lt;/a&gt; for the front-end UI, and &lt;a href="https://vincit.github.io/objection.js/"&gt;Objection JS&lt;/a&gt; (a superset of Knex) for backend database access. I was in nirvana!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sveltekit Beta&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After sometime I abandoned the Sapper-based project to concentrate on bread-making activities; then Sveltekit crossed the corner of my eye. &lt;/p&gt;

&lt;p&gt;Was it time to go back to the side-project?...hmm... sneaky temptation&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7RIjBzHl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://awskimana.s3.ap-south-1.amazonaws.com/articles/Darth%2BVader%2B1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7RIjBzHl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://awskimana.s3.ap-south-1.amazonaws.com/articles/Darth%2BVader%2B1.gif" alt="Vader" width="500" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The compelling answer was a resounding YES!. So I started porting the app from Sapper to Sveltekit! This was a mostly painless process since both frameworks are very similar. &lt;/p&gt;

&lt;p&gt;The challenge was Sveltekit was and is in beta. Apis were updated every so often, breaking builds when adding some libraries - a good example being adding certain adapters, which would break on cue. &lt;/p&gt;

&lt;p&gt;This is expected for a framework in beta, therefore I decided to lock into version 170 'till version 1 is officially released.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New Changes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since I had locked the api at v170, I was able to happily finish the side-project. Some new changes have since been introduced to the api which I don't have at the current version.&lt;br&gt;
One major change is &lt;em&gt;Request can now handle blobs&lt;/em&gt; - at v170, the custom request object in sveltekit could not handle blobs, therefore one could not upload an image to the backend. This was remedied by either intercepting the upload url call via adding your own server in the backend, or calling an external api for this. I chose the latter. &lt;/p&gt;

&lt;p&gt;All changes are documented in the &lt;a href="https://github.com/sveltejs/kit/blob/master/packages/kit/CHANGELOG.md"&gt;changelog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Looking into the future&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We await the launch of v1 of Sveltekit! I'm personally very excited for the meta-framework, and the general trajectory of JS frameworks to compiler-based technologies (e.g. Angular Ivy, &lt;a href="https://www.youtube.com/watch?v=lGEMwh32soc"&gt;React forget&lt;/a&gt;). IMO I view Svelte and the kit as the next iteration/advancement in JS framework landscape, and I believe more developers should give it a chance. &lt;/p&gt;

&lt;p&gt;For more inspiration watch the "FKIT Stack" 🤣&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=rFP7rUYtOOg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UKKo7mDk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://i3.ytimg.com/vi/rFP7rUYtOOg/hqdefault.jpg" alt="FKIT" width="480" height="360"&gt;&lt;/a&gt;&lt;br&gt;Fireship IO - My Bleeding Edge Tech Stack for 2025
 &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Rust in Linux, AoT Compiler in React</title>
      <dc:creator>Dawid Kimana</dc:creator>
      <pubDate>Mon, 20 Dec 2021 10:27:04 +0000</pubDate>
      <link>https://dev.to/keymannerdawid/rust-in-linux-aot-compiler-in-react-2a44</link>
      <guid>https://dev.to/keymannerdawid/rust-in-linux-aot-compiler-in-react-2a44</guid>
      <description>&lt;p&gt;Some interesting things are happening in the development space as we head into 2022. I will highlight two&lt;/p&gt;

&lt;h3&gt;
  
  
  Rust
&lt;/h3&gt;

&lt;p&gt;I am very excited about conversations materializing into Rust's adoption as &lt;a href="https://www.zdnet.com/article/rust-takes-a-major-step-forward-as-linuxs-second-official-language/"&gt;linux's second language&lt;/a&gt; (also the &lt;a href="https://www.zdnet.com/article/rust-in-the-linux-kernel-why-it-matters-and-whats-happening-next/"&gt;preamble&lt;/a&gt;, and &lt;a href="https://www.theregister.com/2021/11/10/where_rust_fits_into_linux/"&gt;here too&lt;/a&gt;). This is of-course great news for Rust's adoption metrics, but as an applications developer, I believe this will expose some application developers to start using Rust.&lt;/p&gt;

&lt;p&gt;Personally I have wanted to adapt a systems programming language, since this will make for a better developer, and Rust is my top candidate&lt;/p&gt;

&lt;p&gt;I believe Rust stands on its own merit on speed and memory safety, and this is no mean feat i.e. writing code without sacrificing safety - and not depending on garbage collection for this by enforcing proper coding conventions. Memory safety enhances application security and stability. The speed metric is comparable to C, C++&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As revealed by a Microsoft engineer in early 2019, about 70% of all vulnerabilities in their products are due to &lt;a href="https://www.zdnet.com/article/microsoft-70-percent-of-all-security-bugs-are-memory-safety-issues/"&gt;memory safety issues.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I hope Rust will &lt;strong&gt;a)&lt;/strong&gt; either be adapted into a major game engine or &lt;strong&gt;b)&lt;/strong&gt; one of Rust's game engine will have wide scale adoption. This will encourage development of games with surety of the aforementioned features, in essence increasing adoption.. well.. my adoption at-least 😬.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;some game engines&lt;br&gt;
&lt;a href="https://github.com/PistonDevelopers"&gt;https://github.com/PistonDevelopers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.libhunt.com/l/rust/topic/game-engine"&gt;https://www.libhunt.com/l/rust/topic/game-engine&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/rg3dengine/rg3d"&gt;https://github.com/rg3dengine/rg3d&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/pragmatic-programmers/game-development-with-rust-31147f7b6096"&gt;https://medium.com/pragmatic-programmers/game-development-with-rust-31147f7b6096&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Rust is a newer generation language that stands on the shoulders of its predecessors, adopting years of learnings and research in language design. In this regard, Rust tries to bridge the worlds of Application and System development. Rust also has high priority for &lt;a href="https://sebnilsson.com/blog/from-csharp-to-rust-introduction/"&gt;interop&lt;/a&gt; with other languages &lt;a href="https://codingupastorm.dev/2020/05/04/executing-rust-from-csharp/"&gt;Rust in C#&lt;/a&gt;, &lt;a href="https://ejmahler.github.io/rust_in_unreal/"&gt;Rust in Unreal&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  React
&lt;/h3&gt;

&lt;p&gt;I think I have waxed lyrical on Svelte &lt;a href="https://keymannerdawid.medium.com/react-hooks-svelte-knockoutjs-angular1-in-2021-cd7c647d47a9"&gt;enough times&lt;/a&gt;. Svelte popularized  Ahead-of-Time compilation in front-end frameworks, eliminating the use of &lt;a href="https://www.syntaxsuccess.com/viewarticle/optimizing-applications-using-svelte"&gt;shipping a runtime with compiled code&lt;/a&gt;, but I digress.&lt;/p&gt;

&lt;p&gt;The idea of Ahead-of-Time compilation for app memoization is currently being researched in React Labs, the &lt;a href="https://youtu.be/lGEMwh32soc"&gt;auto-memoization compiler&lt;/a&gt;, ensuring optimized output.&lt;/p&gt;

&lt;p&gt;I really do commend the approach of the react team on implementing updates: New features are introduced whilst ensuring backwards compatibility, giving developers enough time to migrate to the 'new normal'. 👍🏽&lt;/p&gt;

&lt;p&gt;Happy Holidays, Onwards to 2022&lt;/p&gt;

</description>
      <category>rust</category>
      <category>react</category>
      <category>linux</category>
    </item>
    <item>
      <title>Knockout Js in 2020</title>
      <dc:creator>Dawid Kimana</dc:creator>
      <pubDate>Mon, 22 Jun 2020 16:14:09 +0000</pubDate>
      <link>https://dev.to/keymannerdawid/knockout-js-in-2020-59fn</link>
      <guid>https://dev.to/keymannerdawid/knockout-js-in-2020-59fn</guid>
      <description>&lt;p&gt;Hi there, &lt;br&gt;
I made a simple scoreboard for phase10 &amp;amp; uno card games  to learn the intricacies of tailwindcss; works by tracking individual players scores and levels in the game  &lt;a href="https://dakn2005.github.io/phase10"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For context, I'm a fullstack dev who uses react and svelte for frontend, and have been using knockout since 2015 in various projects.  In this implementation, I used knockout as the lib of choice, reason being newer libraries would provide a marginal benefit compared to this 'ancient' (10year old) library for my use case. &lt;/p&gt;

&lt;p&gt;I was wondering, who else is still using knockout in 2020?&lt;/p&gt;

&lt;p&gt;Repo:&lt;a href="https://github.com/dakn2005/phase10"&gt;https://github.com/dakn2005/phase10&lt;/a&gt;&lt;br&gt;
..maybe fork and implement in alpine or surplus js :) &lt;br&gt;
&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>javascript</category>
      <category>microframeworks</category>
    </item>
  </channel>
</rss>
