<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yumasoft</title>
	<atom:link href="https://blog.yumasoft.pl/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.yumasoft.pl/</link>
	<description>Software development blog</description>
	<lastBuildDate>Wed, 06 Sep 2023 15:49:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.yumasoft.pl/wp-content/uploads/2021/05/cropped-yumasoft_icon_transparent-32x32.png</url>
	<title>Yumasoft</title>
	<link>https://blog.yumasoft.pl/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Half a year in a campervan in Spain and Portugal</title>
		<link>https://blog.yumasoft.pl/2023/09/half-a-year-in-a-campervan-in-spain-and-portugal/</link>
					<comments>https://blog.yumasoft.pl/2023/09/half-a-year-in-a-campervan-in-spain-and-portugal/#respond</comments>
		
		<dc:creator><![CDATA[Adrian Mikołajczyk]]></dc:creator>
		<pubDate>Wed, 06 Sep 2023 15:49:46 +0000</pubDate>
				<category><![CDATA[Remote work]]></category>
		<category><![CDATA[camping]]></category>
		<category><![CDATA[digital nomads]]></category>
		<category><![CDATA[traveling]]></category>
		<category><![CDATA[working remotely]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=998</guid>

					<description><![CDATA[<p>In today&#8217;s dynamic world, many people are seeking unconventional ways of life that combine the freedom of travel, closeness to nature, and remote work. One of the increasingly popular trends is the lifestyle of a digital nomad. This is a person who works and travels at the same time because his job doesn’t depend on&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2023/09/half-a-year-in-a-campervan-in-spain-and-portugal/">Half a year in a campervan in Spain and Portugal</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-left">In today&#8217;s dynamic world, many people are seeking unconventional ways of life that combine the freedom of travel, closeness to nature, and remote work. One of the increasingly popular trends is the lifestyle of a digital nomad. This is a person who works and travels at the same time because his job doesn’t depend on a location.&nbsp; Many of them choose living in a campervan, blending work with the exploration of new places and experiences.</p>



<span id="more-998"></span>



<h2 class="wp-block-heading">The Beginning</h2>



<p>Thanks to the remote work opportunities offered by Yumasoft, I decided to give this lifestyle a try. In May 2022, I purchased a van, an Opel Vivaro. Over the next 8 months, in my spare time, I transformed it into a campervan. The conversion itself was an adventure, requiring a significant amount of work, the acquisition of new knowledge and skills, and patience. The end result brought me great satisfaction and faith in my own abilities. In early January 2023, I set off on my journey.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" src="https://blog.yumasoft.pl/wp-content/uploads/2023/09/wnetrze-kampera-768x1024.jpg" alt="" class="wp-image-1005" style="width:554px;height:738px" width="554" height="738" srcset="https://blog.yumasoft.pl/wp-content/uploads/2023/09/wnetrze-kampera-768x1024.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/wnetrze-kampera-225x300.jpg 225w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/wnetrze-kampera-1152x1536.jpg 1152w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/wnetrze-kampera-1536x2048.jpg 1536w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/wnetrze-kampera-scaled.jpg 1920w" sizes="(max-width: 554px) 100vw, 554px" /></figure>
</div>


<h2 class="wp-block-heading">The Route</h2>



<p>I began my journey in Wrocław (Poland) and headed straight for Spain. I wanted to escape the cold and rainy weather as quickly as possible. In less than 4 days, I reached the French-Spanish border, and since then, the sun accompanied me for (almost) the entire six-month journey.</p>



<p>The plan was to travel around the Iberian Peninsula along the coast. And this plan almost succeeded. Almost, because to my surprise, in May, northern Spain was still chilly and rainy. I avoided the interior simply because it was much colder there than on the coast. You can see the route of my journey on the map.</p>



<p>The return journey, from the Spanish-French border to Wrocław, was also without many stops, except for a few days visiting friends in Brussels.</p>



<p>At the beginning of June, after traveling 10,000 kilometers on wheels and (luckily the last) 500 kilometers on a tow truck, I reached Wrocław.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="752" src="https://blog.yumasoft.pl/wp-content/uploads/2023/09/mapka-1024x752.jpg" alt="" class="wp-image-1008" srcset="https://blog.yumasoft.pl/wp-content/uploads/2023/09/mapka-1024x752.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/mapka-300x220.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/mapka-768x564.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/mapka.jpg 1234w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Life in the Campervan</h2>



<p>I equipped the campervan to be self-sufficient. That means I have a toilet on board, water tanks, and a solar panel providing electrical power. This allows me to avoid using campgrounds. Out of approximately 150 nights, I spent maybe 15 in campgrounds. This not only saved me a lot of money but, more importantly, allowed me to &#8220;live&#8221; in beautiful places: on beaches, cliffs, in pine forests, by lakes, rivers, and in the mountains. Although there were times when I slept in a supermarket parking lot or in the city center. I mainly found &#8220;wild&#8221; spots using the Park4Night app, which is popular among vanlifers, enabling me to meet like-minded people and chat with them around a campfire.</p>



<p>Life in the campervan is simple but not easy. It&#8217;s simple in a way, similar to life in the countryside: without haste, distractions, in peace, in contact with nature and its rhythm. It&#8217;s not easy because it lacks the conveniences we&#8217;re accustomed to: the amount of water in the tank is limited, as is the gas in the bottle, space is limited, and you have to search for a new place to stay almost every day, as well as places to refill clean water, empty dirty water, and the toilet every few days.</p>



<p>The combination of advantages, apparent disadvantages, and remote work provides flexibility and freedom, which is the essence of this lifestyle. You can plan your trips as you see fit, at your own pace, adapting to your work schedule and personal preferences.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="768" src="https://blog.yumasoft.pl/wp-content/uploads/2023/09/miejscowka-1024x768.jpg" alt="" class="wp-image-1010" srcset="https://blog.yumasoft.pl/wp-content/uploads/2023/09/miejscowka-1024x768.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/miejscowka-300x225.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/miejscowka-768x576.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/miejscowka-1536x1152.jpg 1536w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/miejscowka-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Working in the Campervan</h2>



<p>Working in the campervan is not simple and not easy! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f604.png" alt="😄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> The limited space rules out having a comfortable chair, a large desk, or two additional monitors. It&#8217;s definitely less comfortable than at home or in an office.&nbsp;</p>



<p>Just like working from home, working from a campervan requires self-discipline and good organization. Additionally, the beautiful changing view outside the window doesn&#8217;t help. You have to cultivate the mindset that it&#8217;s not a vacation; it&#8217;s a privilege to be able to work in such places. Despite these challenges, work provides additional satisfaction because it enables us to lead this kind of lifestyle.</p>



<p>Regarding the internet, in each country I purchased a local SIM card with mobile data. Usually, the coverage was good. When it was poor or nonexistent, I had to move a few kilometers or change plans altogether. Fortunately, this happened rarely. An alternative solution would be Starlink, but it&#8217;s very expensive.</p>



<h2 class="wp-block-heading">Reflections</h2>



<p>Living on the road allows you to feel the call of adventure, a thrill of excitement, step out of your comfort zone, and get to know yourself better. However, long-term travel like this isn&#8217;t for everyone. Therefore, it&#8217;s best to rent a campervan for a week first and see if it suits you. I sincerely recommend giving it a try.</p>



<p>Life in a campervan as a digital nomad has far more advantages than disadvantages. Besides work, traveling allows you to discover new cultures, flavors, and traditions. Meeting local residents and fellow travelers from all over Europe becomes a way to broaden your horizons and understand the diversity of the world. It&#8217;s a lifestyle that promotes a minimalist approach to material possessions and paying attention to what truly matters.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.yumasoft.pl/wp-content/uploads/2023/09/zachod-slonca-768x1024.jpg" alt="" class="wp-image-1011" style="width:585px;height:780px" width="585" height="780" srcset="https://blog.yumasoft.pl/wp-content/uploads/2023/09/zachod-slonca-768x1024.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/zachod-slonca-225x300.jpg 225w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/zachod-slonca-1152x1536.jpg 1152w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/zachod-slonca-1536x2048.jpg 1536w, https://blog.yumasoft.pl/wp-content/uploads/2023/09/zachod-slonca-scaled.jpg 1920w" sizes="auto, (max-width: 585px) 100vw, 585px" /></figure>
</div>


<p></p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2023/09/half-a-year-in-a-campervan-in-spain-and-portugal/">Half a year in a campervan in Spain and Portugal</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2023/09/half-a-year-in-a-campervan-in-spain-and-portugal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Technologies We Are Looking At In 2023</title>
		<link>https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/</link>
					<comments>https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Sun, 01 Jan 2023 14:54:15 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[2023]]></category>
		<category><![CDATA[2023 predictions]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[google cloud]]></category>
		<category><![CDATA[react]]></category>
		<category><![CDATA[saas]]></category>
		<category><![CDATA[technologies 2023]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=984</guid>

					<description><![CDATA[<p>As 2022 approaches its end, we can start making some summaries. By this opportunity, we have recently had a series of internal, in-person meetings. One of them included brainstorming sessions with one of our largest customers. The product of those meetings are technological perspectives for Yumasoft and our clients in the coming months. In this&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/">Technologies We Are Looking At In 2023</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>As 2022 approaches its end, we can start making some summaries. By this opportunity, we have recently had a series of internal, in-person meetings. One of them included brainstorming sessions with one of our largest customers.</p>



<p>The product of those meetings are technological perspectives for Yumasoft and our clients in the coming months. In this article, I&#8217;d like to share some of the technologies we are going to look into in 2023.</p>



<span id="more-984"></span>



<h2 class="wp-block-heading">AI</h2>



<p>Artificial Intelligence is one of the technologies that’s been getting a lot of hype recently. Mostly thanks to OpenAI opening its GPT-3&nbsp;<a href="https://beta.openai.com/playground">playground</a>&nbsp;and&nbsp;<a href="https://chat.openai.com/chat">chat</a>. This is all fun, but companies started looking into how to use this in their businesses. We are also looking on how to leverage these new findings in AI to make our customers’ businesses easier. We think that AI can make end users’ life smoother, allowing them to focus on what is the most important.</p>



<p>The fact is that in many applications we develop for our clients, there is a lot of data. We have quite rich experience in developing various document and quality management systems. The data in those systems can be generally classified as documents. The documents contain tons of information. This information is currently manually enriched with metadata by the end users. In AI, we see a huge potential to automate this part of people’s jobs.&nbsp;<a href="https://en.wikipedia.org/wiki/Natural_language_processing">NLP</a>&nbsp;is very promising in this manner. It is also worth looking into the technologies like&nbsp;<a href="https://www.usehaystack.io/">Haystack</a>&nbsp;and&nbsp;<a href="https://dotnet.microsoft.com/en-us/apps/machinelearning-ai/ml-dotnet">ML.NET</a>. The goal is that the end users can focus on their most important tasks, i.e. providing business value to companies they work for. Manual work should be limited to supervision and “teaching” the AI algorithm to perform better.</p>



<p>At Yumasoft, one of the technologies we are looking at in 2023, is definitely Artificial Intelligence. We think it’s a way forward in most applications of software development, especially those including big data. What’s more, implementing AI is a great marketing leverage <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">Guide-based forms/wizards</h2>



<p>Diving into AI, we got inspired by how algorithms can help users fill the data online. We think that instead of presenting the end user with an old-school form containing dozens of input fields, we can ask him/her a few relevant questions and&nbsp;<em>prefill</em>&nbsp;the form based on the answers.</p>



<p>Firstly, when performing an operation in the system, the user is asked several questions in a wizard/step-by-step guide form. Finally, our algorithm analyses the user’s answers and present the user with a&nbsp;<em>prefilled</em>&nbsp;HTML form. The user’s ultimate role is to verify the data. What’s more, if the form’s values are corrected manually by the user, the algorithm can learn from those editions to propose better values in the future.</p>



<p>At Yumasoft, we think it’s better to sometimes lead the users by hand, instead of presenting them with complex, old-school forms. We’ll be exploring such ideas in the coming months.</p>



<h2 class="wp-block-heading">Minimal UIs</h2>



<p>Nowadays, we are generally overstimulated. The marketing is omnipresent. Still remember these 3-weeks-long Black Friday sales? And the week-long Cyber Monday ones just after? We don’t want our applications to make people even more distracted in today’s world.</p>



<p>Similarly to simplifying the forms, we think creating&nbsp;<a href="https://en.wikipedia.org/wiki/KISS_principle">KISS</a>&nbsp;UIs is crucial. We can also call them the&nbsp;<em><a href="https://uxdesign.cc/a-guide-to-the-modern-minimal-ui-style-531ac1e9fbfe">minimal UIs</a></em>.</p>



<p>For instance: let’s assume we have a dashboard. The dashboard shows many things: new procedures, unread documents, some actions to take, people to call, notifications, company events… Usually, you as a user are only interested in what you actually need to do &#8211; now and today. The typical dashboard may contain too much information to easily spot the really important things requiring your immediate action. A solution to that could be presenting a simple indicator, like a colored, pulsating dot in a place that is central to the user:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="370" height="215" src="https://blog.yumasoft.pl/wp-content/uploads/2023/01/1_Certifeye_dashboard_dot.png" alt="Technologies we are looking at in 2023 - pulsating dot marking tasks to be done in a dashboard for the user" class="wp-image-987" srcset="https://blog.yumasoft.pl/wp-content/uploads/2023/01/1_Certifeye_dashboard_dot.png 370w, https://blog.yumasoft.pl/wp-content/uploads/2023/01/1_Certifeye_dashboard_dot-300x174.png 300w" sizes="auto, (max-width: 370px) 100vw, 370px" /></figure>
</div>


<p>The goal is to clearly see, in a single place, whether you have something to do for now or not. This is the only thing you&#8217;re really interested in.</p>



<p>Such an approach simplifies working with the system and saves a lot of users’ time. It is also based on showing as little information as possible to get the job done.</p>



<h2 class="wp-block-heading">React</h2>



<p>As per&nbsp;<a href="https://2021.stateofjs.com/en-US/libraries/front-end-frameworks">The State of JS 2021 survey</a>, React is currently the most popular front-end framework on the market. We’ve already been working with it for a long time, but it seems that we will be exploring React even more. At the moment, React is our default choice for new projects.</p>



<h2 class="wp-block-heading">SaaS</h2>



<p>For some of our customers, we are still maintaining heavy desktop clients, including Windows applications. These programs require quite good hardware, as well as manual installation and maintenance. If the application we develop makes use of external desktop tools like Microsoft Office, this also adds the costs of licensing for every end user.</p>



<p>As a consequence, the businesses are expecting to move the software into the cloud.&nbsp;<a href="https://en.wikipedia.org/wiki/Software_as_a_service">SaaS</a>&nbsp;looks like the preferred model. Web apps only require a modern web browser and Internet access to be used. Additionally, end users don’t need to worry about licensing. Most of UI and other frameworks are licensed per application or per developer. This is a huge difference to desktop applications, where every end user must possess a proper license for the operating system and used programs.</p>



<p>Finally, it’s much easier to maintain SaaS-based systems. The updates are provided to everyone in a timely manner. It adds some complexity on the development and infrastructure, like keeping the backwards compatibility, but it seems to be worth the effort. Heavy clients are fading away and becoming unwanted in most use cases.</p>



<h2 class="wp-block-heading">Cloud</h2>



<p>Last but not least, at Yumasoft we are looking to more integration with cloud services like&nbsp;<a href="https://azure.microsoft.com/en-us/">Microsoft Azure</a>,&nbsp;<a href="https://aws.amazon.com/">AWS</a>&nbsp;and&nbsp;<a href="https://cloud.google.com/">Google Cloud</a>. This goes together with betting on SaaS. Delegating the infrastructure to the cloud makes the maintenance much easier and smoother. Moreover, cloud computing services provide AI platforms and tools. The examples include&nbsp;<a href="https://cloud.google.com/document-ai">Google’s Document AI</a>&nbsp;or&nbsp;<a href="https://azure.microsoft.com/en-us/products/search/">Azure Cognitive Search</a>.</p>



<p>Of course, moving the data into the cloud comes with challenges. Data anonymization and security should be of a great concern here.</p>



<h2 class="wp-block-heading">Summary</h2>



<p>All of us &#8211; the technical teams as Yumasoft, our clients, their customers and finally &#8211; the end users &#8211; will have to go through a transformation which is happening right now. AI will bring a lot of improvements into most areas of our lives. Cloud computing will challenge all of us in terms of privacy and willingness to share our data with external companies. Will we trust them? Will we decide to go with the innovation flow, sometimes sacrificing our current beliefs? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f914.png" alt="🤔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>We are so excited about the coming months. We look forward to 2023 and can’t wait to get our hands on these technologies! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/">Technologies We Are Looking At In 2023</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevConf 2022</title>
		<link>https://blog.yumasoft.pl/2022/09/devconf-2022/</link>
					<comments>https://blog.yumasoft.pl/2022/09/devconf-2022/#respond</comments>
		
		<dc:creator><![CDATA[Rafał]]></dc:creator>
		<pubDate>Fri, 30 Sep 2022 07:28:03 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[devconf]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=917</guid>

					<description><![CDATA[<p>This year, in September, I was finally (after the COVID “dark times”) able to attend the real conferences. This one took place in the city of Lodz (Poland) and it was a 2 day event. In this short summary I will describe the main topics of the conference and I will point to some good&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/09/devconf-2022/">DevConf 2022</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>This year, in September, I was finally (after the COVID “dark times”) able to attend the real conferences. This one took place in the city of Lodz (Poland) and it was a 2 day event.</p>



<p>In this short summary I will describe the main topics of the conference and I will point to some good talks I’ve seen.</p>



<span id="more-917"></span>



<h2 class="wp-block-heading">Metaverse</h2>



<p>In simple words, the metaverse is a virtual place on the Internet, where people can join and do some social activities (like playing games, doing meetings and so on). There is an assumption that such a world will be visited using the Virtual/Augmented Reality headset &#8211; but this is not a must.</p>



<p>It looks like this topic is trending right now and many big companies (like Meta (Facebook), Microsoft, Google) want to develop software in this area.</p>



<p>This subject was represented by two talks:</p>



<ul class="wp-block-list"><li>“<strong>The Future of Computing with Spatial Computing and Quantum Computing</strong>” by René Schulte &#8211; a nice overview of the metaverse and what can be achieved with it.</li><li>“<strong>Foundations of the MetaVerse: Azure Spatial Anchors and Understanding 3D Space</strong>” by Andreas Erben &#8211; quite a heavy introduction to the ways Metaverse could be implemented (and used) using the Microsoft Azure cloud.</li></ul>



<h2 class="wp-block-heading">Software quality and architecture</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="640" height="480" src="https://blog.yumasoft.pl/wp-content/uploads/2022/09/2-Small-2.png" alt="DevConf  2022" class="wp-image-932" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/09/2-Small-2.png 640w, https://blog.yumasoft.pl/wp-content/uploads/2022/09/2-Small-2-300x225.png 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>


<p>As always a large part of the conference was devoted to talks about how to write better code. Here I could recommend those presentations:</p>



<ul class="wp-block-list"><li>“<strong>Why GraphQL is Perfect for Microservices</strong>” by Roy Derks &#8211; a nice introduction to the GraphQL query language and its usage to create a consistent API layer on top of all microservices APIs&nbsp;</li><li>“<strong>Domain-Driven Refactoring</strong>“ by Jimmy Bogard &#8211; a live coding session which presents a way to refactor a typical web application code into the one that applies Domain Driven Design. If you start with DDD this is a very nice presentation to watch.</li><li>“<strong>Consistency and Agreements in Microservices</strong>“ by Jimmy Bogard &#8211; an overview with some code examples of how transactions could be implemented in a distributed system.</li></ul>



<h2 class="wp-block-heading">Soft skills</h2>



<p>Most conferences these days not only have technical talks, but also there are a bunch of non-technical presentations about various themes (starting with business topics and ending with topics that inspire to action)</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="640" height="480" src="https://blog.yumasoft.pl/wp-content/uploads/2022/09/3-Small.png" alt="DevConf  2022" class="wp-image-928" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/09/3-Small.png 640w, https://blog.yumasoft.pl/wp-content/uploads/2022/09/3-Small-300x225.png 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>


<ul class="wp-block-list"><li>“<strong>Can Virtual Reality Change the Real World?</strong>“ by Piotr Łój &#8211; this talk influenced me the most &#8211; it shows how VR technology can help kids in their fight with their serious diseases or disabilities. Piotr does amazing work in his <a href="https://patronite.pl/VirtualDream">foundation</a>, so I encourage you to support his work!</li><li>“<strong>The Effective Developer &#8211; Work Smarter, Not Harder</strong>” by Sven Peters &#8211; an interesting study on how software developers should not only focus on writing code, but also on many more aspects like: <ul><li>the business they are working with</li><li>the interactions with other people in a team</li><li>expansion of their knowledge beyond the topics they know from work</li></ul></li><li>“<strong>Building a Software Company From The Ground Up &#8211; Facts, Myths, and Everything In Between</strong>“ by Spencer Schneidenbach &#8211; in spite of its title, this talk could be interesting even for people who don&#8217;t want to create their own company. It not only shows some more technical stuff about running a software house, but it also shows what values make that the software engineer is good in what he does.</li><li>“<strong>Use Principles of Psychology to Build Better Software</strong>” by Rachel Appel &#8211; this talk is a good reminder that while writing a software we should always think about people who will interact with it and how they view our software.</li></ul>



<h2 class="wp-block-heading"><strong>Final words</strong></h2>



<p>Overall, it was a good conference. I enjoyed all the talks &#8211; regardless they were more or less focused on the technical stuff. It’s always nice to meet with other people and exchange knowledge and experience with them.</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/09/devconf-2022/">DevConf 2022</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2022/09/devconf-2022/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why Do You Attend IT Conferences – For Talks or For People?</title>
		<link>https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/</link>
					<comments>https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Tue, 24 May 2022 18:46:02 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[getnet]]></category>
		<category><![CDATA[infoshare]]></category>
		<category><![CDATA[it community]]></category>
		<category><![CDATA[it conferences]]></category>
		<category><![CDATA[ndc]]></category>
		<category><![CDATA[net developer days]]></category>
		<category><![CDATA[programming conference]]></category>
		<category><![CDATA[wrocsharp]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=899</guid>

					<description><![CDATA[<p>The question I’d like to openly ask today is: why do you attend IT conferences? Is it for talks or is it for people? Let’s try to find out what the answer is ? My conferences story Back in 2015-2019, I used to attend conferences in person only. My first events included GET.NET in Łódź&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/">Why Do You Attend IT Conferences – For Talks or For People?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>The question I’d like to openly ask today is: why do you attend IT conferences? Is it for talks or is it for people? Let’s try to find out what the answer is ?</p>



<span id="more-899"></span>



<h2 class="wp-block-heading">My conferences story</h2>



<p>Back in 2015-2019, I used to attend conferences in person only. My first events included <a href="https://sii.pl/en/news-feed/register-to-the-get-net-conference-in-lodz/?category=events-2&amp;tag=sii-lodz,get-net">GET.NET in Łódź</a>  and <a href="https://www.wrocsharp.com/">WROC#</a> in Wrocław. Then I attended <a href="https://net.developerdays.pl/">.NET Developer Days</a> in Warsaw two times in a row. This one was the first big-size programming conference I took part in.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="575" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-1024x575.jpg" alt="" class="wp-image-901" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-1024x575.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-300x168.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-768x431.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-1536x863.jpg 1536w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-2048x1150.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Dino Esposito speaking at .NET Developer Days 2016</figcaption></figure>



<p>Back then, I was a newbie junior programmer. I was also a bit shy to talk to people. Probably I had a huge impostor syndrome, as I thought everyone there was better in programming than me. I attended many sessions, even though I didn’t understand many technical aspects and never used them in real life.</p>



<p>I also always used to go to conferences and even meetups with someone I know (a colleague most of the time). If no one was going, I didn’t go alone. This didn’t help in becoming less shy and starting to talk to people I didn&#8217;t know ?&#x200d;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2642.png" alt="♂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>And then it happened. In 2018, I decided to go to <a href="https://infoshare.pl/infoshare2018/">InfoShare conference</a>. Alone ? I still wasn’t very open to talk to anyone encountered, but I was a little braver. I talked to a few awesome speakers, including <a href="https://jakoszczedzacpieniadze.pl/o-mnie-i-o-blogu">Michał Szafrański</a> and <a href="https://malawielkafirma.pl/o-blogu/">Marek Jankowski</a>. Those guys really were inspiring to me before, so it was an awesome feeling to talk to them face-to-face ?</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2316" height="1304" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_prezentacja.jpg" alt="" class="wp-image-902" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_prezentacja.jpg 2316w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_prezentacja-300x169.jpg 300w" sizes="auto, (max-width: 2316px) 100vw, 2316px" /><figcaption>Presentation at InfoShare 2018</figcaption></figure>



<p>InfoShare conference changed my life. It was another booster to make significant changes in my life and become a <a href="https://blog.yumasoft.pl/2020/03/traveling-the-world-as-a-digital-nomad/">digital nomad</a>. Several months later, I started working fully remotely for Yumasoft and traveling the world ?</p>



<p>There were some awesome guys like <a href="https://michael.team/">Michał Śliwiński</a> speaking about a <a href="https://nozbe.com/about/">fully remote companies</a> at that time already:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2316" height="1304" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_MSliwinski.jpg" alt="" class="wp-image-903" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_MSliwinski.jpg 2316w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_MSliwinski-300x169.jpg 300w" sizes="auto, (max-width: 2316px) 100vw, 2316px" /><figcaption>Michał Śliwiński speaking at InfoShare 2018</figcaption></figure>



<p>I also felt great after attending the <a href="https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/">NDC Porto 2022</a>. After not seeing fellow programmers in person for more than 4 years, it was awesome to finally be more open and talk to many people at the conference. I was also alone this time.</p>



<h2 class="wp-block-heading"><strong>Talks or people?</strong></h2>



<p>What can we take from my conferences&#8217; story? As you read it, you can easily notice that the only things I remember are people. Either talking to one or two speakers or chatting with many people attending the event. That’s what I remember from the event. <strong>Technologies and tools come and go, but people stay</strong>. You stay connected with them on Twitter/Instagram. Think how nice it would be meeting them again at another conference by coincidence!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-1024x576.jpeg" alt="" class="wp-image-878" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Heather Downing speaking at NDC Porto 2022</figcaption></figure>



<p>On the other hand, I remember almost nothing from <a href="https://blog.yumasoft.pl/2021/04/can-online-conferences-replace-offline-ones/">Boiling Frogs 2021</a>, which I attended online. That&#8217;s how it works for me.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="483" src="https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021-1024x483.jpg" alt="" class="wp-image-95" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021-1024x483.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021-300x141.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021-768x362.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021.jpg 1523w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Boiling Frogs online platform</figcaption></figure>



<p>I have to go back to the blog post or my notes to get something from it. This is also useful – that’s why I make notes. However, for me, this is not the real goal of attending a conference. All sessions are anyway recorded and in most cases available for free online after the conference. The community, interactions, Q&amp;A sections and conference parties cannot be transferred to the online world and provide the same value. For me, it simply doesn’t work.</p>



<h2 class="wp-block-heading">Conclusions</h2>



<p>For me, conferences are the people. Not the talks.</p>



<p>However, I had to learn it throughout the years of attending several conferences, both offline and online. That’s why I wanted to share my story with you at the beginning of this article. To give you my perspective.</p>



<p>If you are about to take one thing from this article – <strong>please open yourself and talk more to people at the conferences</strong>. Try going to a conference alone, or if you go with someone &#8211; don’t stick with your fellows all the time. I know this is going out of your comfort zone. I still feel uncomfortable doing that, but I’m trying to improve little by little. If each of us makes a little effort, it will overall become much easier for everyone. Maybe next time I’m walking around the conference room getting stressed on selecting a random person to talk to, you’ll reach me and initiate the conversation? ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/">Why Do You Attend IT Conferences – For Talks or For People?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What Do People Talk About At Programming Conferences In 2022?</title>
		<link>https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/</link>
					<comments>https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Mon, 16 May 2022 06:30:00 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[ndc]]></category>
		<category><![CDATA[ndc conferences]]></category>
		<category><![CDATA[ndc porto]]></category>
		<category><![CDATA[ndc porto 2022]]></category>
		<category><![CDATA[programming conferences]]></category>
		<category><![CDATA[programming conferences 2022]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=884</guid>

					<description><![CDATA[<p>After attending NDC Porto 2022, my first in-person conference for 4 years, I thought it would be nice to sum up the most talked-through topics. This will be a subjective summary and my feelings after attending ~20 sessions and talking to dozens of people. Let&#8217;s see what people talk about at programming conferences in 2022.&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/">What Do People Talk About At Programming Conferences In 2022?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>After attending <a href="https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/">NDC Porto 2022</a>, my first in-person conference for 4 years, I thought it would be nice to sum up the most talked-through topics. This will be a subjective summary and my feelings after attending ~20 sessions and talking to dozens of people. Let&#8217;s see what people talk about at programming conferences in 2022.</p>



<span id="more-884"></span>



<h2 class="wp-block-heading">.NET</h2>



<p>This is going to be the longest section of this article ? I think it’s a bit specific to NDC Conference (“.NET” is the first one on the <a href="https://ndcoslo.com/call-for-papers">list of proposed topic for an NDC talk</a>), but there was a lot about .NET. There were quite a few speakers either working for or associated with Microsoft.</p>



<p></p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1024x576.jpeg" alt="Steve Sanderson standing in front of audience" class="wp-image-867" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>I think the most discussed .NET topic was <a href="https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor">Blazor</a>. There were many sessions discussing various aspect of the Blazor framework, its new features and development. <a href="https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui">MAUI</a> was also mentioned several times.</p>



<p>Except that, .NET developers and speakers seems interested in issues related to the new versions of .NET (.NET 6/7) and generally this whole new ecosystem that’s being formed. Topics included <a href="https://docs.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-6.0">gRPC</a>/<a href="https://github.com/grpc/grpc-web">gRPC web</a>, as well as <a href="https://github.com/dotnet/roslyn">Roslyn compiler</a> possibilities.</p>



<p>Another important area of .NET was the multi-platform thing. It seems to be very important to the teams at Microsoft and contributors to related projects to make everything working on as many platforms as possible. Including desktops (Windows, Linux and Mac), web and mobile (Android and iOS). There were at least few multi-platform solutions discussed several times: <a href="https://platform.uno/">Uno</a>, <a href="https://avaloniaui.net/">Avalonia</a>, <a href="https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor">Blazor</a> and <a href="https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui">MAUI</a>. All seem to be solving similar problems, but each has different entry costs and technologies used.</p>



<h2 class="wp-block-heading">Software architecture</h2>



<p>From software architecture topics, the most popular seemed to be everything around DDD. Not only the fully religious implementations of DDD were discussed, but also some of its simplified forms or just few concepts extracted from it.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2364" height="1330" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Jimmy-Bogard-Domain-Driven-Refactoring.jpg" alt="Jimmy Bogard during his Domain-Driven Refactoring talk" class="wp-image-886" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Jimmy-Bogard-Domain-Driven-Refactoring.jpg 2364w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Jimmy-Bogard-Domain-Driven-Refactoring-300x169.jpg 300w" sizes="auto, (max-width: 2364px) 100vw, 2364px" /></figure></div>



<p>It seems it’s all about understanding our end users better. I like it ?</p>



<h2 class="wp-block-heading">Cloud</h2>



<p>Possibilities of various cloud providers were discussed at almost every talk I attended. What I liked about that, is that it was not only Microsoft Azure discussed everywhere as it used to be few years ago ? Cloud is now seen more as a concept rather than concrete cloud providers’ possibilities.</p>



<p>While we still need to support on-premise deployments, cloud seems an inevitable way to go for many applications.</p>



<h2 class="wp-block-heading">Web</h2>



<p>WebAssembly and accessibility. There were the two topics discussed very often in terms of web technologies. Some sessions touched on React, but rather briefly. I even didn’t hear about JavaScript very often, which is actually weird ? TypeScript was also a topic, as well as some frontend testing techniques/frameworks.</p>



<h2 class="wp-block-heading">UX</h2>



<p>I attended two sessions about UX. This is quite interesting for me, as I think we can do much better in terms of usability of our software for the end users.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2364" height="1330" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Tatiana-Kolesnikova-Change-wings-on-the-fly.jpg" alt="Tatiana Kolesnikova and her talk: Change wings on the fly: replace a system that handles 50 million euro turnover with zero downtime" class="wp-image-889" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Tatiana-Kolesnikova-Change-wings-on-the-fly.jpg 2364w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Tatiana-Kolesnikova-Change-wings-on-the-fly-300x169.jpg 300w" sizes="auto, (max-width: 2364px) 100vw, 2364px" /></figure></div>



<p>In general, I love the concept of designing and implementing the application from the user’s point of view. Maybe it sounds obvious, but it’s not always like that. Especially in corporations, when there are several layers between programmers and end users. Each layer adds its own filtering. This process makes the final solution sometimes far away from end users’ expectations.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-1024x576.jpeg" alt="Eleftheria Batsou - It’s easy to create a good looking product, but what about a useful one?" class="wp-image-873" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Soft skills/team leadership</h2>



<p>Not only technical stuff at programming conferences in 2022? Sure ?</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-1024x576.jpeg" alt="Heather Downing - The Care and Feeding of Software Developers" class="wp-image-878" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>I also enjoy team leadership and light-management topics. Although not many programmers I talked to especially love those talks. Except the ones who have actually managed people. There were, however, quite a few sessions on that, and I liked them. I think leadership is translatable to everyday life, not only work.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>My general feeling after NDC Porto 2022 is that <strong>we all want to be focused on people</strong>. We want to take care of our end users, but also of ourselves ? The main message was to <strong>make everyone feel welcome in IT</strong>. Especially after the pandemic, which increased anxiety and reduced the importance of social aspects in software development. I think programming conferences in 2022 should cover these topics.</p>



<p>Technical stuff is important – without that we can’t make anything. However, we are all people, and we need to take care of ourselves first, so all of those awesome tools can be used effectively and to everyone’s satisfaction ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/">What Do People Talk About At Programming Conferences In 2022?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Does Attending An In-person Conference Feel After The Pandemic?</title>
		<link>https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/</link>
					<comments>https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Wed, 04 May 2022 15:35:06 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[ndc]]></category>
		<category><![CDATA[ndc conferences]]></category>
		<category><![CDATA[ndc porto]]></category>
		<category><![CDATA[ndc porto 2022]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=859</guid>

					<description><![CDATA[<p>After 4 years of not attending an in-person IT conference, I finally did. I had a chance to attend NDC Porto 2022 conference, which took place from 27th until 29th of April 2022. How did it feel? What did people say about seeing each other in person again? Let’s find out ? My last conference&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/">How Does Attending An In-person Conference Feel After The Pandemic?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>After 4 years of not attending an in-person IT conference, I finally did. I had a chance to attend <a href="https://ndcporto.com/">NDC Porto 2022 conference</a>, which took place from 27<sup>th</sup> until 29<sup>th</sup> of April 2022. How did it feel? What did people say about seeing each other in person again? Let’s find out ?</p>



<span id="more-859"></span>



<p>My last conference was the online Boiling Frogs event, which I attended remotely from Indonesia. As you could <a href="https://blog.yumasoft.pl/2021/04/can-online-conferences-replace-offline-ones/">read here</a>, I was generally happy with the sessions, but something was missing. This missing piece was <strong>community</strong>. A real one. Physical. The community you can touch. And talk to ? I didn’t even realize how much I missed that. Until I attended #NDCPorto 2022.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="1024" data-id="861" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDC_Porto_logo_entrance-576x1024.jpeg" alt="NDC Porto 2022 - my first in-person conference for 4 years" class="wp-image-861" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDC_Porto_logo_entrance-576x1024.jpeg 576w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDC_Porto_logo_entrance-169x300.jpeg 169w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDC_Porto_logo_entrance.jpeg 768w" sizes="auto, (max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="1024" data-id="862" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_before_keynote-576x1024.jpeg" alt="NDC Porto 2022 - my first in-person conference for 4 years" class="wp-image-862" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_before_keynote-576x1024.jpeg 576w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_before_keynote-169x300.jpeg 169w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_before_keynote.jpeg 768w" sizes="auto, (max-width: 576px) 100vw, 576px" /></figure>
</figure>



<p>Firstly, Porto is an awesome city for an in-person conference. It offers a mild climate, especially by the end of April. The temperatures were around 24 Celsius degrees during the day. It also does offer wine, of course ? It all means that you can enjoy a technical event during the day and still have some fun and socializing in the evening.</p>



<p>I lived in Porto for 2 weeks in September 2020 and really loved the city. It’s charming, not overwhelming and very appealing. It’s also a students&#8217; city, so you can feel that young vibe – lot of street bars, people drinking beers or wine starting late afternoon until very late night.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2-1024x576.jpeg" alt="Porto - view on the city from the bridge" class="wp-image-869" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>All right, let’s get to the point. NDC. This great, first in-person conference I attended since 2018. I will not talk about the sessions here. I will talk about the people.</p>



<p>I tried to list the most-talked-through topics from this conference. The only real conclusion I can make, is that everyone I talked to, at some point said “It’s so great to be back in person”, or something very similar. The pandemic has taken a lot from us. Now it’s time to get it back.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-1024x576.jpeg" alt="Talk's title on the projector and some attendees sitting on the chairs" class="wp-image-873" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>I didn’t realize it, but the remote work time made me a little anxious with talking to people ? I’m not talking about pandemic, because I was fortunate enough to spend most of it in Indonesia (yes, Yumasoft is fine with you working from another continent!). Before I started working remotely, I used to be a Team Leader. It made me talk to so many people at the office every day. I always thought I’m rather extrovert than introvert. However, I was very curious to see how it is to interact with people again.</p>



<p>Before going to NDC Porto, I promised myself I will be starting chats with random people. Especially that I was going alone and didn’t know anyone there (except a few of the speakers). At first, I felt a bit stressed to just chit-chat to random people at the conference ? But then, after I started talking with the first 1 or 2 people, it felt great. It was so awesome to exchange opinions. Not only on coding, but also on pandemic, remote work and everything it changed in our lives.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1-1024x576.jpeg" alt="Steve Sanderson and his talk &quot;What's next for Blazor and .NET on WASI&quot;" class="wp-image-870" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>There was also a great <a href="https://www.youtube.com/watch?v=VFIw0LlULyc">opening keynote by Scott Hanselman</a>. He covered few very important topics related to pandemic times. Scott mentioned burnout, anxiety and onboarding issues while working remotely. Of course, he also proposed few solutions everyone can implement quite easily. Just watch it yourself.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1-1024x576.jpeg" alt="Scott Hanselman speaking at the NDC Porto 2022 opening keynote" class="wp-image-872" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>During the conference, I also attended two socializing events. The first one was a diner with wine tasting after the 1<sup>st</sup> conference day. It was an additional event everyone could sign up to, but was not officially part of the agenda. I’m very happy I went there, as it was another chance to meet some great people, including few of the conference speakers. On the 2<sup>nd</sup> day of the conference, there was an official NDC Party. Very well organized, again allowing for socializing and exchanging views on various topics. Not only software ?</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>My conclusion is that the <strong>online events will never be a substitute for in-person ones</strong>. They are just different. I don’t feel the community and interactions at online events. There might be a chat, but it’s not the same.</p>



<p>I encourage everyone to attend in-person events from time to time. It doesn’t need to be a big in-person conference in a foreign country like NDC is (although I definitely recommend that!). Look for local meetups in your city or smaller conferences in your own country. Go there and overcome your fears and anxiety about talking to people. Just do it – talk to random people you don’t know. You will feel awesome, believe me ?</p>



<p>Attending a conference not only makes me wanting to try 10 new frameworks which I will forget about in a week. It makes me feel that we have an awesome programming community. That we are not alone in what we do. That others face the same pains we all have, like <a href="https://en.wikipedia.org/wiki/Impostor_syndrome">impostor syndrome</a> or feeling stagnated at work. I got to know that other developers are not magicians and geeky coders who don’t use StackOverflow. Not every programmer’s job is his/her hobby. They are just normal people like me, with their own pains and fears. And that is awesome! ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/">How Does Attending An In-person Conference Feel After The Pandemic?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Webpack Watch Cached And Not Refreshing Bundles</title>
		<link>https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/</link>
					<comments>https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Wed, 24 Nov 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webpack]]></category>
		<category><![CDATA[webpack watch]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=829</guid>

					<description><![CDATA[<p>If you use webpack as your JavaScript bundler, you might have experienced an issue with webpack --watch not refreshing your bundles when modifying the source files. In this case, webpack&#8217;s output after changing the file is similar to the following one: As you can see, there are some [cached] mentions there in a few places&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/">Webpack Watch Cached And Not Refreshing Bundles</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>If you use <a href="https://webpack.js.org/">webpack</a> as your JavaScript bundler, you might have experienced an issue with <code>webpack --watch</code> not refreshing your bundles when modifying the source files. In this case, webpack&#8217;s output after changing the file is similar to the following one:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="87" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache-1024x87.png" alt="Webpack output showing [cached]" class="wp-image-830" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache-1024x87.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache-300x25.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache-768x65.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache.png 1112w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>As you can see, there are some <code>[cached]</code> mentions there in a few places and no <code>[code generated]</code> statements at all. The effect is that your bundles are not rebuilt at all. In order to have them refreshed, you need to restart the building process, which takes time and makes your development flow painful. If you want to know how to solve that problem, read on ?</p>



<span id="more-829"></span>



<h2 class="wp-block-heading">webpack watch cached files</h2>



<p>We have struggled with this issue for quite some time. It starts with launching <code>webpack</code> with <code>--watch</code> option. Such build script can be defined in your <code>package.json</code> in the following or similar way:</p>



<script src="https://gist.github.com/dsibinski/974e74538fae860a5d1f908b8193fcd4.js"></script>



<p>The effect you would expect is for webpack to rebuild your bundles as soon as you make any change in the source code.</p>



<p>When the webpack watch cached issue occurs, the first change you make in a file is properly reloaded by <code>webpack</code> and looks similarly to that:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="375" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime-1024x375.png" alt="webpack watch correctly rebuilding bundles with [code generated] statements" class="wp-image-832" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime-1024x375.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime-300x110.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime-768x281.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime.png 1048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>However, as soon as you change the file for the second time, the output looks less promising:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="87" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache-1024x87.png" alt="webpack watch cached issue" class="wp-image-833" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache-1024x87.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache-300x25.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache-768x65.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache.png 1112w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>As soon as you see some of these <code>[cached]</code> things, it probably means that webpack cached something and did not generate new bundles. Especially if there are no <code>[built]</code> and <code>[code generated]</code> statements in the output. You notice that your files are not refreshed, so your last change is not reflected in JS bundles ?</p>



<h2 class="wp-block-heading">Hotfix: disable webpack cache</h2>



<p>The first hotfix solution &#8211; especially if you can&#8217;t easily find the cause &#8211; is to disable <code>webpack</code> cache completely. In order to do that, you should set <code>cache</code> to <code>false</code> in your <a href="https://webpack.js.org/configuration/cache/">webpack configuration file</a>:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="413" height="216" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_WebpackDisableCache.png" alt="cache set to false in webpack config file" class="wp-image-836" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_WebpackDisableCache.png 413w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_WebpackDisableCache-300x157.png 300w" sizes="auto, (max-width: 413px) 100vw, 413px" /></figure></div>



<p>This will work, and webpack should now rebuild your bundles on every source change. However, it comes with a significant performance cost. Disabling the cache will make webpack actually rebuilding all your bundles on each change. This solution is actually a shortcut for restarting the build from scratch. Not what we really want ? Let&#8217;s see how to find the cause and solve webpack watch cached issue properly.</p>



<h2 class="wp-block-heading">Wrong casing &#8211; the real cause of webpack watch cached issue</h2>



<p>In our case, the problem turned out to basically be <strong>wrong casing when importing stuff</strong>. </p>



<p>The general advice is to find how given file you are modifying is entered into your webpack&#8217;s build flow. It can be <a href="https://flexiple.com/javascript-require-vs-import/">imported or required</a> directly. Maybe it&#8217;s used via <a href="https://webpack.js.org/configuration/resolve/">webpack alias</a>. I know these are quite general statements, so I&#8217;ll show you two examples.</p>



<h3 class="wp-block-heading">Wrong casing in import</h3>



<p>First, we had a problem of <code>webpack watch</code> not refreshing bundles after making changes in a single file. This file is named <code>questionnaireCorrectTemplate.tsx</code>. It exports a single React component called <code>QuestionnaireCorrectTemplate</code>.</p>



<p>In order to use this component, we imported it in another file in the following way:</p>



<script src="https://gist.github.com/dsibinski/a3e267ad6a41defc62fa22b405f8f96a.js"></script>



<p>Have you already noticed the problem? Note that the import contains the module name with <strong>capital</strong> letter: &#8220;./<strong>Q</strong>uestionnaireCorrectTemplate&#8221;. As soon as we changed it to a small letter, so exactly as the  <code>questionnaireCorrectTemplate.tsx</code>  file&#8217;s name:</p>



<script src="https://gist.github.com/dsibinski/af26050bee05f9c52a5a253326b801a6.js"></script>



<p>Everything started to magically work ? Since this change, <code>webpack watch</code> is properly rebuilding our bundles after changes in the affected file ?</p>



<h3 class="wp-block-heading">Wrong casing in webpack alias</h3>



<p>We had another issue with <code>webpack</code> not refreshing the bundles when we made changes in a <code>Site.css</code> file. This is a file in which we store custom CSS for our React app. The issue was very similar to the previous one. After starting <code>webpack watch</code>, the first modification of <code>Site.css</code> file triggered a proper rebuild of bundles:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="315" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh-1024x315.png" alt="webpack watch correctly rebuilding bundles for css file" class="wp-image-840" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh-1024x315.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh-300x92.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh-768x236.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh.png 1114w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>However, all subsequent modifications to the <code>Site.css</code> file causes the webpack watch cached issue:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="66" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue-1024x66.png" alt="webpack watch cached issue for css file" class="wp-image-841" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue-1024x66.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue-300x19.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue-768x50.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue.png 1094w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The reason was wrong casing again. However, this time we found out that the <code>Site.css</code> file was included as an alias in webpack configuration file:</p>



<script src="https://gist.github.com/dsibinski/731c30adc2b09ac12120a8426be5b400.js"></script>



<p>I guess you can already see what is the problem ? The file was included as <code><strong>s</strong>ite.css</code>, instead of <code><strong>S</strong>ite.css</code>. As soon as we changed this part of the <code>webpack.config.js</code> file to the one with proper casing:</p>



<script src="https://gist.github.com/dsibinski/2d9900d68441aa83e50584d0ac2b91a8.js"></script>



<p>Everything started to work correctly. Since this change, <code>webpack watch</code> correctly refreshes the bundles after each modification of <code>Site.css</code> file ?</p>



<h2 class="wp-block-heading">Webpack watch cached &#8211; summary</h2>



<p>I hope this article helps you solve your <code>webpack watch</code> refreshing issue ? Webpack is still kind of magical tool for me and it surprises me very often. Such issues can be really painful &#8211; that&#8217;s why I wanted to share our solution to this problem with you. </p>



<p>The general advice is to find how the problematic file is imported/required/added to webpack build flow. It&#8217;s very probably that you have the wrong casing somewhere. I hope it saves you some pain one day!</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/">Webpack Watch Cached And Not Refreshing Bundles</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Remote Work Is Changing The World</title>
		<link>https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/</link>
					<comments>https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Mon, 15 Nov 2021 07:00:00 +0000</pubDate>
				<category><![CDATA[Remote work]]></category>
		<category><![CDATA[digital nomads]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=771</guid>

					<description><![CDATA[<p>As you know, at Yumasoft, we are proponents of remote work. We think that, as long as the work is done, our colleagues can work from any place they want. The development of remote work has increased significantly in the recent months. How is that affecting the world and politics? Have governments already defined who&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/">How Remote Work Is Changing The World</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>As you know, at Yumasoft, we are proponents of remote work. We think that, as long as the work is done, our colleagues can work from any place they want.</p>



<p>The development of remote work has increased significantly in the recent months. How is that affecting the world and politics? Have governments already defined who a digital nomad is? How do countries see remote workers &#8211; are they welcome or not? What about <a href="https://blog.yumasoft.pl/2021/10/most-annoying-digital-nomads-problems/#Visas">visa problems for digital nomads</a> &#8211; is it being solved, or is still kept in the <em>gray area</em>? ?</p>



<p>In today&#8217;s essay, I&#8217;m trying to answer these questions and make some predictions on how the future of remote work will look like.</p>



<span id="more-771"></span>



<h2 class="wp-block-heading">Remote work in 2021</h2>



<p>First, let&#8217;s see a few statistics. We&#8217;ve already taken <a href="https://blog.yumasoft.pl/2021/06/10-things-pandemic-changed-in-remote-work/">a brief look at them</a>, but it was more related to digital nomads. Let&#8217;s see, what can we say about the current state of telework.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="322" height="459" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_Percentage-of-Remote-Employees.png" alt="" class="wp-image-775" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_Percentage-of-Remote-Employees.png 322w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_Percentage-of-Remote-Employees-210x300.png 210w" sizes="auto, (max-width: 322px) 100vw, 322px" /><figcaption>Source: <a href="https://www.quantumworkplace.com/future-of-work/remote-work-statistics">quantumworkplace.com</a></figcaption></figure></div>



<p>This is quite interesting. As we all know, COVID increased the number of remote workers significantly in 2020. Now we can see the employees in the United States are slowly, but steadily, going back to offices. Even though, in June 2021, when the economy has already been going back on track for quite some time, <strong>35% of employees are remote workers</strong>. <strong>Before the pandemic, this was only 7%.</strong></p>



<p>In addition to that, 30% of people work in hybrid mode (few days in the office and few days working from home). That all means that <strong>65% of the US workforce is capable of doing their work remotely</strong>.</p>



<p>These people will still want to leverage workations and living in different places than their employers or clients are based. This is especially true for those employed in big cities, where costs of living are relatively high. Often, by moving to a lower-cost area, these people can save a lot of money.</p>



<p>We know the scale, but what about quality?</p>



<div class="wp-block-image"><figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_US-Remote-Work-Survey_-PwC.png" alt="" class="wp-image-778" width="763" height="311" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_US-Remote-Work-Survey_-PwC.png 763w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_US-Remote-Work-Survey_-PwC-300x122.png 300w" sizes="auto, (max-width: 763px) 100vw, 763px" /><figcaption>Survey performed in June 2020 and December 2020, Source: <a href="https://www.pwc.com/us/en/library/covid-19/us-remote-work-survey.html">PwC</a></figcaption></figure></div>



<p>As you can see, with time passing, <strong>more employees and employers think remote work increases productivity</strong>.</p>



<p>This makes sense, because with time, companies are refining their telework policies, getting used to using <a href="https://blog.yumasoft.pl/2021/04/asynchronous-communication-and-its-importance-for-remote-work/">proper communication tools and techniques</a> etc.</p>



<p>Fine. Now it&#8217;s clear that the working out-of-office has got really popular in the last 2 years. Employers and employees were forced to switch to this working mode, which was far from ideal at the beginning. However, in the end, they made it better. Tools improved and work&#8217;s quality followed ?</p>



<h2 class="wp-block-heading">Sovereign Individuals &#8211; the new social class of the digital age</h2>



<p>It might be surprising to most of you, but this scenario (common telework, physical borders losing their meaning etc.) was predicted in a 1999-book <em>The Sovereign Individual: Mastering the Transition to the Information Age.</em> The authors provide a wide context on how societies change when a new era is coming. The modern era &#8211; <em>information age</em> &#8211; has been predicted to be the fastest-coming revolution in history. <strong>That&#8217;s exactly what we can see today, and this phenomenon is often called the <em>digital era</em></strong> ?</p>



<p>One of the most significant predictions made by <em>Sovereign Individual</em> authors is that the nation states and governments, as we used to know them, will become obsolete and less significant in XXI century. As people can now easily <em><a href="https://en.wikipedia.org/wiki/Foot_voting">vote with their feet</a></em>, countries should start competing for digital workers, referred to as <strong>sovereign individuals</strong>.</p>



<p>I don&#8217;t want to go into too many details here. If you want to know more, I strongly recommend <a href="https://www.goodreads.com/en/book/show/82256">reading the book</a>.</p>



<p>However, let&#8217;s try to see whether the governments really care about remote workers.</p>



<h2 class="wp-block-heading">How are governments attracting remote workers?</h2>



<p>Currently, in my view, governments can divided into 2 types from remote work point of view:</p>



<ul class="wp-block-list"><li>completely ignoring the fact of digital workers&#8217; existence and their troubles, keeping telework in the gray area</li><li>seeing huge potential in remote workers and going ahead of their needs, welcoming and encouraging them to move into their countries and work remotely from there.</li></ul>



<p>Still, most governments prefer the first, gray area option ?&#x200d;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2642.png" alt="♂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Fortunately, there are more and more countries attracting digital nomads, offering tax incentives and easy visa processes. Let&#8217;s see a few of the most interesting examples in the next sections.</p>



<h2 class="wp-block-heading">Georgia</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-1024x683.jpg" alt="" class="wp-image-793" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-1024x683.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-300x200.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-768x512.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-263x174.jpg 263w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia.jpg 1387w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Georgia (the country) has launched heir <a href="https://agenda.ge/en/news/2020/2654">Remotely from Georgia</a> program in the middle-2020 to attract digital workers from around the world. Citizens of 95 countries were allowed to enter the country and legally work remotely while in Georgia. All this happened during the global pandemic, when most countries in the world were closed to foreigners.</p>



<p>Would you ever think, that such a small country like Georgia proposes such a solution? It&#8217;s not common, even within the <a href="https://blog.yumasoft.pl/2021/08/top-5-places-for-digital-nomads-in-southeast-asia/">most popular digital nomad destinations</a>, to give legal work permit in such an easy way. The only requirement was $2000 earnings per month for covering expenses while in the country.</p>



<p>What&#8217;s even more interesting, Georgia is offering very attractive tax rates for freelancers &#8211; you can pay as little as <a href="https://expathub.ge/why-move-your-taxes-to-georgia/">1% tax</a> on your income.</p>



<h2 class="wp-block-heading">Portugal</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-1024x683.jpg" alt="" class="wp-image-794" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-1024x683.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-300x200.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-768x512.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-263x174.jpg 263w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal.jpg 1500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Portugal has become a digital nomads&#8217; hub in Europe in the last few months. It seems that the mild climate, quite affordable living costs and nomads-friendly attitude of government officials attracted a lot of digital nomads into the country.</p>



<p>In the recent interview, Portugal’s Minister of Labor and Social Security said:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Telework can be a ‘game changer’ if we profit from the advantages and reduce the disadvantages (&#8230;) </strong></p><p><strong>We consider Portugal one of the best places in the world for these digital nomads and remote workers to choose to live in, we want to attract them to Portugal.</strong></p><cite><em>Ana Mendes Godinho, Portugal’s Minister of Labor and Social Security, <a href="https://www.pennlive.com/nation-world/2021/11/portugal-bans-bosses-from-texting-their-employees-after-work.html">source</a></em></cite></blockquote>



<p>It is very nice to hear that some countries are welcoming digital nomads, a phrase that can&#8217;t often be heard in South-East Asia, for instance ?</p>



<p>EU citizens can easily travel to and work remotely from Portugal based on EU laws. However, what&#8217;s interesting is that Portugal is offering the <a href="https://www.sovereigngroup.com/portugal/portugal-passive-income-d7-visa/">D7 visa</a> also to non-EU citizens. The requirement is to have a passive income equivalent to €7,620 per year. This allows anyone to live and work legally in Portugal, opening a business there or qualify for Portuguese citizenship after 5 years in the country.</p>



<h2 class="wp-block-heading">Malta</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1008" height="756" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_Malta.jpg" alt="" class="wp-image-796" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_Malta.jpg 1008w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_Malta-300x225.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_Malta-768x576.jpg 768w" sizes="auto, (max-width: 1008px) 100vw, 1008px" /></figure>



<p>Malta is another country which is very open to remote workers. They have launched an official program <a href="https://residencymalta.gov.mt/overview/">called Nomad Residence Permit</a>. As long as you are employed by a foreign company, are a freelancer or owner of an offshore company and can work remotely, you qualify for the nomad permit. You must also have a gross monthly income of 2,700 EUR.</p>



<p>An interesting point here is that the digital nomads earning money remotely while in Malta are not subjected to personal income tax. You only need to pay the tax in the country where your income is generated (or where your tax residency is, but not in Malta).</p>



<h2 class="wp-block-heading">Costa Rica</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="998" height="748" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/6_CostaRica.jpg" alt="" class="wp-image-797" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/6_CostaRica.jpg 998w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/6_CostaRica-300x225.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/6_CostaRica-768x576.jpg 768w" sizes="auto, (max-width: 998px) 100vw, 998px" /></figure>



<p>In August 2021, Costa Rica <a href="https://www.lonelyplanet.com/articles/costa-rica-digital-nomad">approved a law to introduce digital nomads visas</a>. You need to earn at least $3000 per month (or $5000 per family). If your application is successful, you can stay in Costa Rica for up to a year, with a possibility to extend it for another year. Previously, a tourist visa allowed people from most countries to stay only for 90 days.</p>



<p>Similarly to Malta, digital nomad visa holders are exempt from paying local income tax in Costa Rica. Teleworkers can also easily open a bank account in the country.</p>



<h2 class="wp-block-heading">Taiwan</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-1024x683.jpg" alt="" class="wp-image-799" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-1024x683.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-300x200.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-768x512.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-1536x1024.jpg 1536w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-263x174.jpg 263w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan.jpg 1552w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Coming back to South-East Asia&#8230; As I already mentioned, countries in this region of the world still keep digital nomads mostly in gray area. However, there&#8217;s a tiny island which seems to have noticed the potential ?</p>



<p>This island country is Taiwan. Within their <a href="https://goldcard.nat.gov.tw/en/">Gold Card </a>program, foreigners can obtain resident visa and work permit in the country. The card allows you to work legally in Taiwan, but also work remotely for offshore clients or companies.</p>



<p>To be eligible for the Taiwanese Gold Card, your professional skills must be related to one of the following areas: Science and Technology, Economics, Education, Culture and Art, Sport, Finance, Law, or Architecture. As long as you can prove your skills in one of them (e.g. by presenting an academic thesis or work experience proof), the card should be given to you without bigger issues. As programmers, we are a perfect fit ?</p>



<p>Gold Card valid for 1 year costs around $160, while the one valid for 2 years costs around $200. You can also bring your spouse, who can also apply for residence and work permit in Taiwan. You will also be eligible for public healthcare after 6 months waiting period.</p>



<p>In addition to all that, for the first 3 years of living in Taiwan with Gold Card, half of your income up to around $110,000 will not be taxable. Sounds good, doesn&#8217;t it? ?</p>



<h2 class="wp-block-heading">What about the most popular digital nomad destinations?</h2>



<p>What&#8217;s surprising for me, most of the <a href="https://blog.yumasoft.pl/2021/08/top-5-places-for-digital-nomads-in-southeast-asia/">most popular digital nomads destinations</a> and not doing their homework here. It seems they don&#8217;t see (or don&#8217;t want to see?) the potential in remote work and the changes that happened very quickly in the last few months.</p>



<p>A great example is Indonesia, the country which normally attracts a lot of teleworkers into its island Bali. They have recently <a href="https://coconuts.co/jakarta/news/indonesian-tourism-minister-sandiaga-uno-plans-turbo-charged-5-year-visa-for-high-spending-tourists/">announced to launch a digital nomad visa</a> in the near future. However, the planned requirements are insane. You will have to deposit around $143,000 (or around $179,000 for family) in an Indonesian bank account in order to be eligible for the visa&#8230; ?&#x200d;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2642.png" alt="♂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>In my opinion, such countries will lose a lot in the years to come. Remote workers have a huge potential for bringing a lot of money into the country. The countries that realize that soon enough will be the winners.</p>



<h2 class="wp-block-heading">The future of remote work</h2>



<p>I think that more and more countries will realize the potential of telework. They will start defining who digital nomads are and how their income should be taxed. Easy-to-obtain work visas for remote workers will be more popular. As national borders are beginning to have much less meaning, countries will need to start competing for location-independent professionals. Digital workers will seek for a state in which the taxes they pay are proportional to the value they get.</p>



<p>Will the residency and associated benefits become a free market good? Will the governments be competing with each other, offering &#8220;a better residency package&#8221;? I guess we will see that in the years to come. For sure, COVID accelerated these movements a lot. Now the question is, which countries will realize that and enter the new &#8220;market&#8221; the fastest.</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/">How Remote Work Is Changing The World</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Does TypeScript Types Narrowing Work?</title>
		<link>https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/</link>
					<comments>https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Wed, 27 Oct 2021 05:30:00 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[ts]]></category>
		<category><![CDATA[typescript]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=736</guid>

					<description><![CDATA[<p>Have you ever heard about TypeScript types narrowing? Have you ever seen such an error in your TypeScript code: Even tough, you really knew that the name property exists on the person object? How did you solve this problem? Did you cast the variable to the expected type? If the answer to at least one&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/">How Does TypeScript Types Narrowing Work?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Have you ever heard about <em>TypeScript types narrowing</em>? Have you ever seen such an error in your TypeScript code:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="604" height="118" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_missing_property_error.png" alt="TypeScript complains about &quot;name&quot; property not existing  on &quot;person&quot; object of type &quot;object&quot;" class="wp-image-746" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_missing_property_error.png 604w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_missing_property_error-300x59.png 300w" sizes="auto, (max-width: 604px) 100vw, 604px" /></figure></div>



<p>Even tough, you <em>really knew</em> that the <code>name</code> property exists on the <code>person</code> object? How did you solve this problem? Did you cast the variable to the expected type?</p>



<p>If the answer to at least one of those questions is <em>yes,</em> you might read on. There are better ways of determining the type of local variable in TypeScript. What&#8217;s more, TS compiler does a lot of stuff for us by leveraging types narrowing. In this article, we are going to see how it works and how it can be useful ?</p>



<span id="more-736"></span>



<h2 class="wp-block-heading">TypeScript types narrowing &#8211; what is that?</h2>



<p>One of the <a href="https://blog.yumasoft.pl/2021/06/migrating-javascript-react-app-to-typescript/">goals of TypeScript</a> is to make writing JavaScript code better and more secure by adding the typing system. However, we don&#8217;t want the typing system to be problematic and making us to use the <em>dirty haxes</em> like all the time casting our variables explicitly, do we? ?</p>



<p>First, we need to understand that TypeScript does a lot of stuff in order to ensure we work with the most specific type as possible. Basically, if the exact type of local variable can be determined, TS compiler tries to do that.</p>



<p>Imagine such a function:</p>



<script src="https://gist.github.com/dsibinski/b67234dc1fa7fba52a0695ce8b001c4d.js"></script>



<p>In <a href="https://www.javatpoint.com/what-is-vanilla-javascript">vanilla JS</a>, such code would of course compile. But in our case, TypeScript sees a problem:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="730" height="170" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_type_error.png" alt="TypeScript complains that &quot;lenght&quot; doesn't exist on a variable of type &quot;string&quot; or &quot;number&quot;" class="wp-image-740" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_type_error.png 730w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_type_error-300x70.png 300w" sizes="auto, (max-width: 730px) 100vw, 730px" /></figure></div>



<p>The compiler is right here. Our parameter is either <code>string</code> or <code>number</code>, so the <code>length</code> property may not be available if someone passes a <code>number</code>.</p>



<p>You might have already been in such situations. What did you do? Well, sometimes when the code is more complex, and you <em>just know</em> that the variable contains the requested property, it might be tempting to cast:</p>



<script src="https://gist.github.com/dsibinski/fe0787bacfdadb10e0411c126a85f978.js"></script>



<p>Of course, we will satisfy the compiler here. But does that make our code any more safe than the previous version? Not at all.</p>



<p>In our example, based on the code we have written, TypeScript is not able to determine the exact type of <code>variable</code>. We can help it by using <em>type guards</em>. We will talk about them in details in a separate article. However, for now it&#8217;s enough to know that the language has some built-in type guards &#8211; one of them is <a href="https://www.typescriptlang.org/docs/handbook/advanced-types.html#typeof-type-guards">typeof</a>. Let&#8217;s use it in our function:</p>



<script src="https://gist.github.com/dsibinski/3848759ec400644ce6b36326cb5b3e13.js"></script>



<p>That&#8217;s cool, TS compiler doesn&#8217;t complain anymore. But how does it work? Our code is still accessing <code>variable.length</code> directly, there&#8217;s no casting there.</p>



<p>Notice what your IDE tells you when you hover your mouse over the <code>variable</code> in the first <em>if</em> branch after checking if the type is <code>string</code>:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="559" height="202" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/2_TypeScript_narrowing1.png" alt="TypeScript types narrowing figures out the type of variable is &quot;string&quot;" class="wp-image-741" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/2_TypeScript_narrowing1.png 559w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/2_TypeScript_narrowing1-300x108.png 300w" sizes="auto, (max-width: 559px) 100vw, 559px" /></figure></div>



<p>and also what it tells you when hovering over <code>variable</code> in the <code>else</code> block:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="560" height="178" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/3_TypeScript_narrowing2-1.png" alt="TypeScript types narrowing figures out the type of variable is &quot;number&quot;" class="wp-image-743" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/3_TypeScript_narrowing2-1.png 560w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/3_TypeScript_narrowing2-1-300x95.png 300w" sizes="auto, (max-width: 560px) 100vw, 560px" /></figure></div>



<p>Wow! The IDE magically knows what&#8217;s the exact type of our locally scoped variable! ?</p>



<p>This magic is called <em>types narrowing</em>. TypeScript compiler does many things to ensure that the type of local variable you work with is of the most specific type possible. It is based on the complex analysis of the source code, especially the code surrounding the place in which the local variable is used.</p>



<h2 class="wp-block-heading"><em>in</em> keyword in types narrowing</h2>



<p>Let&#8217;s take a look at this code now:</p>



<script src="https://gist.github.com/dsibinski/5ecdd052adb538e50e3f4917d11fe785.js"></script>



<p>Let&#8217;s say we have a variable which may either be <code>Employee</code> or <code>Manager</code>:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="166" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1-1024x166.png" alt="TypeScript doesn't know the type is it's not narrowed" class="wp-image-756" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1-1024x166.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1-300x49.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1-768x125.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1.png 1189w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>In that place, TypeScript can&#8217;t say whether <code>person</code> is <code>Employee</code> or <code>Manager</code>.</p>



<p>Maybe you&#8217;ve used the <code>in</code> keyword for determining types before. Types narrowing also works with <code>in</code> keyword:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="688" height="228" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/6_TypeScript_narrowing_in_keyword.png" alt="in keyword helps TypeScript narrow the type" class="wp-image-757" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/6_TypeScript_narrowing_in_keyword.png 688w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/6_TypeScript_narrowing_in_keyword-300x99.png 300w" sizes="auto, (max-width: 688px) 100vw, 688px" /></figure></div>



<p>As you can see, TypeScript analyzed the flow, and it noticed that in the first <code>if</code> block we check whether the <code>person</code> object contains the <code>employees</code> property. If it does, the compiler known it must be <code>Manager</code>, not <code>Employee</code>. Cool, isn&#8217;t it? ?</p>



<h2 class="wp-block-heading">Narrowing and equality operator</h2>



<p>Another interesting application of TypeScript types narrowing is using the equality operator:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="780" height="417" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/7_TypeScript_narrowing_equality.png" alt="TypeScript types narrowing determines type of variable based on === equality operator" class="wp-image-760" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/7_TypeScript_narrowing_equality.png 780w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/7_TypeScript_narrowing_equality-300x160.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/7_TypeScript_narrowing_equality-768x411.png 768w" sizes="auto, (max-width: 780px) 100vw, 780px" /></figure></div>



<p>Notice how TypeScript determines the type of variables based on the <code>===</code> operator. If both parameters are equal, they must be both <code>string</code>s.</p>



<h2 class="wp-block-heading">TypeScript types narrowing &#8211; summary</h2>



<p>Narrowing in TypeScript is a very power feature of the language. I just showed you some simple examples, so you can grasp the idea and notice how much TS compiler does to ensure your type is <em>the correct one</em>.</p>



<p>If you&#8217;re interested, you can read much more about this in <a href="https://www.typescriptlang.org/docs/handbook/2/narrowing.html">TypeScript docs</a>. It&#8217;s however worth knowing how TypeScript compiler works and how you should properly check for types in your code. Remember that using <code>any</code> or explicit casting should be your last resort ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/">How Does TypeScript Types Narrowing Work?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>When Not To Use TDD?</title>
		<link>https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/</link>
					<comments>https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Thu, 21 Oct 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[tests]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=719</guid>

					<description><![CDATA[<p>Some time ago we talked about 7 reasons to start using Test Driven Development. As soon as you learn it and start practicing it on a daily basis, it might be tempting to always be TDDing. However, TDD is not always a good fit. There are some cases when it might not be worth using&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/">When Not To Use TDD?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Some time ago we talked about <a href="https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/">7 reasons to start using Test Driven Development</a>. As soon as you learn it and start practicing it on a daily basis, it might be tempting to always be <em>TDDing</em>. However, TDD is not always a good fit. There are some cases when it might not be worth using TDD. Let&#8217;s explore them today ?</p>



<span id="more-719"></span>



<h2 class="wp-block-heading">Prototypes</h2>



<p>You may consider not doing TDD with prototypes. By <em>prototype</em>, I mean an app that will most probably be thrown away or completely changed very soon. It may be created when you are experimenting with some technology/framework or are just asked to <em>conduct research</em> on something.</p>



<p>TDD gives you a high code/flow coverage, which may need to be changed in case of prototype projects. If you are in such situation, consider resigning from TDD at this stage.</p>



<h2 class="wp-block-heading">Short living apps</h2>



<p>Similarly to prototypes, short living solutions might be the ones where TDD is not the best fit. It applies to one-time-use apps or scripts which are supposed to do one thing well and quickly.</p>



<p>Short living apps are the ones where you may consider not using Test Driven Development. I&#8217;d even argue whether you need any kind of tests for such programs. Testing such apps or even scripts may be art for art&#8217;s sake. If something is supposed to realize a given task without fireworks (like reusability, maintenance etc.), I wouldn&#8217;t bother with testing it. It&#8217;s better to focus on solving your current, short-lived problem than on practicing the profound TDD idea ?</p>



<h2 class="wp-block-heading">Unclear requirements</h2>



<p>One of the reasons not to use TDD might be unclear requirements. The idea of writing tests in Test Driven Development is to define the expected outcomes for predefined incomes. As we said <a href="https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/">in the previous article</a>, Test Driven Development can help spot the edge cases and make the business requirements more <em>close to the code</em>. However, if you don&#8217;t have these requirements defined, TDD might be a waste of time (at this stage). If the requirements actually arrive or are completely changed, your significant set of tests will need to be changed or even removed.</p>



<h2 class="wp-block-heading">MVP</h2>



<p>If you&#8217;re creating an <a href="https://en.wikipedia.org/wiki/Minimum_viable_product">MVP</a>, with very short time and budget, TDD might not be worth the struggle. It&#8217;s probably better to resign from using TDD in that case. You should rather focus on your product and the business value it needs to deliver. TDD might slow down the delivery time, which, in case of MVPs, can be critical. It&#8217;s better to deliver the minimum viable product without TDD than to not deliver it with TDD ?</p>



<p>However, remember to add some tests, even post-factum. MVPs have a high chance of survival, so you&#8217;d want your final product to be tested and testable. You need to find a good balance here, not to make your solution completely untestable when it&#8217;s ready for production use.</p>



<h2 class="wp-block-heading">Tests writing beginner</h2>



<p>If you are a total beginner in writing tests in general, Test Driven Development might not be the best approach to start with. You may consider not to use TDD at the beginning of your testing journey.</p>



<p>To make Test Driven Development effective, you should be able to write tests quickly and efficiently. Starting to learn software testing with Test Driven Development may make you feel overwhelmed and discouraged. If you&#8217;re a beginner, I suggest to first write some unit tests, get familiar with that and then try to learn Test Driven Development. </p>



<p>It would be great if you can find some smaller and well-defined task to start with TDD. If you don&#8217;t have such tasks, try solving one of the programming katas (e.g. <a href="https://codingdojo.org/kata/StringCalculator/">this one</a>) with TDD. </p>



<h2 class="wp-block-heading">When not to use TDD &#8211; summary</h2>



<p>Like everything, TDD is not a gold standard for every possible case. It should be used as often as possible, but not always. Remember to always weight the gains and losses from using Test Driven Development in a given project or application at a given time.</p>



<p>What&#8217;s your experience with Test Driven Development? Can you list any more cases where it&#8217;s not worth using it? Share your thoughts in the comments below!</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/">When Not To Use TDD?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
