<?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: Mikołaj Romanowski</title>
    <description>The latest articles on DEV Community by Mikołaj Romanowski (@mikolaj6r).</description>
    <link>https://dev.to/mikolaj6r</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%2F213330%2Fdb87815b-93c9-46dc-a346-a5c4f1e560a4.png</url>
      <title>DEV Community: Mikołaj Romanowski</title>
      <link>https://dev.to/mikolaj6r</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mikolaj6r"/>
    <language>en</language>
    <item>
      <title>My thoughts about  problems and solutions</title>
      <dc:creator>Mikołaj Romanowski</dc:creator>
      <pubDate>Wed, 29 Sep 2021 09:06:39 +0000</pubDate>
      <link>https://dev.to/mikolaj6r/my-thoughts-about-solution-taking-3c06</link>
      <guid>https://dev.to/mikolaj6r/my-thoughts-about-solution-taking-3c06</guid>
      <description>&lt;p&gt;To be honest, I was struggling myself whether to publish this post. These are my thoughts, that may seem obvious, but some part of me thinks that it's still worth sharing.&lt;/p&gt;

&lt;p&gt;I want to address the space of problems and solutions.&lt;/p&gt;

&lt;p&gt;As I see, we tend (in web community) to get into the hype train with new solutions. &lt;/p&gt;

&lt;p&gt;Although this is good because of the impact and progress it has, you should take care before applying new, hot ideas in your project.&lt;/p&gt;

&lt;p&gt;First of all, remember that these solutions/projects came out not to shine, but to solve exact problems that someone had in his own project. Most of them are not the one-and-only-universal-best-ever takes on exact problem, but probably they have proven it's value in someone's case. However, it may not in yours. Moreover, their's problems may never exist in your project! This thoughts could be (and maybe will) developed in another post about technical debt, but what I want to provide is: Start simple and focus on your business, make it work, make it profitable 💲 and then, if you will have some problems - solve them. Overengineered project can be worse in maintenance then many simple ones.&lt;/p&gt;

&lt;p&gt;So to sum up: Every project is different, each has its own bottlenecks, slightly different architecture, etc. Things that worked for others, may not work in your case or may be overengineered for your project. Analyse your problems/bottlenecks and then (of course do the research, check if somebody had similar problem) apply the best solution that suits your case. Maybe you would invent your thing, that when shared, could solve other's problems.&lt;/p&gt;

&lt;p&gt;The key is to SOLVE YOUR PROBLEMS and use/create solutions that solve them. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>solutions</category>
      <category>problems</category>
      <category>programming</category>
    </item>
    <item>
      <title>Web &amp; React Native development in WSL</title>
      <dc:creator>Mikołaj Romanowski</dc:creator>
      <pubDate>Tue, 12 May 2020 12:26:48 +0000</pubDate>
      <link>https://dev.to/mikolaj6r/web-react-native-development-in-wsl-59eh</link>
      <guid>https://dev.to/mikolaj6r/web-react-native-development-in-wsl-59eh</guid>
      <description>&lt;h1&gt;
  
  
  Intro
&lt;/h1&gt;

&lt;p&gt;As many of You, I like Windows for it's simplicity, but developing software on that OS sometimes can turn into a nightmare. Recently Windows released WSL2 - big update to Windows Subsystem for Linux, which brought:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new architecture&lt;/li&gt;
&lt;li&gt;full Linux kernel&lt;/li&gt;
&lt;li&gt;much, much faster IO&lt;/li&gt;
&lt;li&gt;easy to install Docker&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/en-us/windows/wsl/wsl2-about"&gt;more info here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although WSL2 has many improvements towards its predecessor, it has also some downsides like virtual network hidden behind NAT and lack of access to USB devices.&lt;/p&gt;

&lt;h1&gt;
  
  
  Before
&lt;/h1&gt;

&lt;p&gt;First, assure that You have WSL2 installed (&lt;a href="https://docs.microsoft.com/en-us/windows/wsl/wsl2-install"&gt;check this link&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Secondly, I strongly encourage to check Windows Terminal (which is open-sourced on &lt;a href="https://github.com/microsoft/terminal"&gt;Github&lt;/a&gt;) &lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;Add the snippet below to the end of Your shell config file (usually &lt;code&gt;.bashrc&lt;/code&gt; or &lt;code&gt;.profile&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;dbus-launch&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;LIBGL_ALWAYS_INDIRECT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1

&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;WSL_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt; /etc/resolv.conf | &lt;span class="nb"&gt;cut&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt;&lt;span class="s1"&gt;' '&lt;/span&gt; &lt;span class="nt"&gt;-f2&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;DISPLAY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$WSL_HOST&lt;/span&gt;:0

&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ADB_SERVER_SOCKET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;tcp:&lt;span class="nv"&gt;$WSL_HOST&lt;/span&gt;:5037
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now Your WSL is ready.&lt;br&gt;
You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;install some GUI on linux and use Windows X Server to run graphic apps from linux (e.g develop some Electron-based apps)&lt;/li&gt;
&lt;li&gt;develop mobile apps using React Native (just follow official instructions for Linux)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  React Native &amp;amp; adb
&lt;/h2&gt;

&lt;p&gt;There's one more thing about adb. You have to start it under Windows (e.g. cmd)&lt;br&gt;
As You remember, there's no USB support in WSL :)&lt;/p&gt;

&lt;p&gt;Final steps:&lt;br&gt;
1) &lt;a href="https://gist.github.com/bergmannjg/461958db03c6ae41a66d264ae6504ade#start-adb-server-in-windows"&gt;Start adb server in windows&lt;/a&gt;&lt;br&gt;
2) &lt;a href="https://gist.github.com/bergmannjg/461958db03c6ae41a66d264ae6504ade#enable-port-fowarding-to-metro-bundler-from-windows"&gt;Enable port fowarding to metro bundler from Windows&lt;/a&gt;&lt;br&gt;
3) Follow &lt;a href="https://reactnative.dev/docs/running-on-device"&gt;React Native docs&lt;/a&gt;. Remember to execute commands under WSL, not Windows.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final note
&lt;/h1&gt;

&lt;p&gt;That's my first post in the &lt;strong&gt;DEV&lt;/strong&gt; community :) Please give me some feedback.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>reactnative</category>
      <category>wsl</category>
      <category>windows</category>
    </item>
  </channel>
</rss>
