<?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>Rafał, Author at Yumasoft</title>
	<atom:link href="https://blog.yumasoft.pl/author/rafal/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.yumasoft.pl/author/rafal/</link>
	<description>Software development blog</description>
	<lastBuildDate>Mon, 14 Jun 2021 15:24:10 +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>Rafał, Author at Yumasoft</title>
	<link>https://blog.yumasoft.pl/author/rafal/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Migrating to Bootstrap 4.5</title>
		<link>https://blog.yumasoft.pl/2021/02/migrating-to-bootstrap-4-5/</link>
					<comments>https://blog.yumasoft.pl/2021/02/migrating-to-bootstrap-4-5/#respond</comments>
		
		<dc:creator><![CDATA[Rafał]]></dc:creator>
		<pubDate>Mon, 15 Feb 2021 09:56:53 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=159</guid>

					<description><![CDATA[<p>In one of our biggest projects, we were using Bootstrap 3.4 for a long time. Finally, we decided to move on and upgrade it to the latest version &#8211; 4.5. This post summarizes how we did it and where we struggled the most. As a guide we have used the official Bootstrap&#160;migration document, but also&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/02/migrating-to-bootstrap-4-5/">Migrating to Bootstrap 4.5</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In one of our biggest projects, we were using Bootstrap 3.4 for a long time. Finally, we decided to move on and upgrade it to the latest version &#8211; 4.5. This post summarizes how we did it and where we struggled the most.</p>



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



<p>As a guide we have used the official Bootstrap&nbsp;<a href="https://getbootstrap.com/docs/4.5/migration/">migration document</a>, but also those unofficial ones:</p>



<ul class="wp-block-list"><li>&nbsp;<a href="http://upgrade-bootstrap.bootply.com/">upgrade-bootstrap.bootply.com/</a></li><li>&nbsp;<a href="https://designmodo.com/migrate-bootstrap-4/">designmodo.com/migrate-bootstrap-4/</a></li><li>&nbsp;<a href="https://medium.com/@lukaszholeczek/migration-from-bootstrap-3-to-bootstrap-4-4ec63a1dd8b1">medium.com/@lukaszholeczek/migration-from-bootstrap-3-to-bootstrap-4-4ec63a1dd8b1</a></li></ul>



<p>Our first step was to replace the old CSS classes with the new ones. For many cases, it was a simple &#8220;find and replace&#8221;. The part that gave us a lot of work was the HTML forms &#8211; because the new Bootstrap uses a slightly different HTML layout for them.<br><img decoding="async" src="https://strapi.yumasoft.pl/uploads/ab2b5ec634ed4965850414d2b87146ca.PNG" alt="text"><br>Next, we upgraded&nbsp;<a href="https://react-bootstrap.github.io/">React Bootstrap</a>&nbsp;and applied all the needed changed to compile our JavaScript code. Again, this forced us to changed a lot of code related to HTML forms.</p>



<p>Another challenge we encountered was how to update the icons. The old Bootstrap uses&nbsp;<a href="https://bootstrapdocs.com/v3.3.5/docs/components/#glyphicons">Glyphicons</a>, which were are no longer supported. As a replacement, we decided to use the new&nbsp;<a href="https://icons.getbootstrap.com/">icons for Bootstrap</a>. The problem was that the old ones were used as a font, so you could easily operate with them just by specifying its name (plus you could easily change its size or color). The new ones use SVG tags. To be able to use them in our React code we incorporated svgr/webpack loader into our webpack pipeline (for building the JavaScript and CSS code). This way we can ask for a specific icon in a JavaScript code and use it without copying and pasting SVG tag from the website. This way if the icons are updated, we will get it for free (after updating NPM package). Also changing color or size is easy now.</p>



<p>In parallel with the updating the Bootstrap we decided to update all our other NPM packages so they are compatible with the version 4.5. As you can expected some additional work was needed here to tweak the JavaScript code.</p>



<p>At this stage, our application worked again but still, we had smaller and bigger display issues everywhere. First, we needed to identify them &#8211; therefore we did heavy manual testing of our application. When most of the problems were found &#8211; we could fix them in a relatively short amount of time. I will only mention about one change in Bootstrap 4.5 that caused a lot of small display issues in our application. In the old Bootstrap a div with a &#8216;row&#8217; class could contain any other div and such div would take the whole space in it. In version 4.5 to have exact same behavior you need to add another div with the &#8216;col-*-12&#8217; class. Small thing but many places in our application looked bad because of that.</p>



<p>Overall, the whole migration took us about 2 weeks and went smoother than we initially expected. If we had this knowledge earlier, we would probably do migration sooner.</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/02/migrating-to-bootstrap-4-5/">Migrating to Bootstrap 4.5</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/02/migrating-to-bootstrap-4-5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevConf 2019</title>
		<link>https://blog.yumasoft.pl/2020/03/devconf-2019/</link>
					<comments>https://blog.yumasoft.pl/2020/03/devconf-2019/#respond</comments>
		
		<dc:creator><![CDATA[Rafał]]></dc:creator>
		<pubDate>Tue, 03 Mar 2020 14:27:00 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[deconf 2019]]></category>
		<category><![CDATA[devconf]]></category>
		<category><![CDATA[devconf2019]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=40</guid>

					<description><![CDATA[<p>Last year I had the pleasure of attending the DevConf 2019 in Krakow, Poland. It was a two day IT conference with multiple lectures and presentations taking place simultaneously. It served as a great opportunity for all attendees to delve into a vast array of topics like technology or self-growth to name a few. In&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2020/03/devconf-2019/">DevConf 2019</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://strapi.yumasoft.pl/uploads/c1f8eba193864e4f8a1c858f93046505.jpg" alt="text"/></figure></div>



<p>Last year I had the pleasure of attending the DevConf 2019 in Krakow, Poland. It was a two day IT conference with multiple lectures and presentations taking place simultaneously. It served as a great opportunity for all attendees to delve into a vast array of topics like technology or self-growth to name a few.</p>



<p>In this short note I would like to recommend a few interesting talks to watch at home. Here are my six picks:</p>



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



<h3 class="wp-block-heading" id="domaindrivendesignthegoodpartsbyjimmybogardahrefhttpsyoutubel3svikdlt88linka">“Domain Driven Design: The Good Parts” by&nbsp;<em>Jimmy Bogard</em>&nbsp;(<a href="https://youtu.be/L3SvIKdLt88">link</a>)</h3>



<p>An interesting case study about the implementation of DDD in the Texas Juvenile Justice Department’s system. The author goes into detail about which aspects of DDD work for him and which do not in said environment.</p>



<h3 class="wp-block-heading" id="sixlittlelinesoffailbyjimmybogardahrefhttpsyoutubej7ftsg6uy1wlinka">“Six Little Lines of Fail” by&nbsp;<em>Jimmy Bogard</em>&nbsp;(<a href="https://youtu.be/j7ftSg6Uy1w">link</a>)</h3>



<p>Another presentation by the same author and yet another hit. This time, Bogard focuses on possible approaches to handling errors in code with multiple operations involved (i.e. a method that writes to database and subsequently invokes external API). The author also describes existing solutions for such scenarios.</p>



<h3 class="wp-block-heading" id="codethefuturenowbyadamralphahrefhttpsyoutubeo6npaa8ymz0linka">“Code the Future, Now” by&nbsp;<em>Adam Ralph</em>&nbsp;(<a href="https://youtu.be/O6nPaa8ymZ0">link</a>)</h3>



<p>This presentation shows how the SAGA pattern (<a href="https://blog.knoldus.com/microservices-and-the-saga-pattern/">link</a>) can be used to change the state of system in the future.</p>



<p>Some service buses (like NServiceBus) allows sending a message form SAGA class that will occur in the future (a determined time period i.e. in a week). Such event has the potential to change the state of the system with a guarantee that it will be invoked only once (eliminating the issue of changing state by introducing multiple threats/services at the same time).</p>



<p>In NServiceBus such a scenario can be implemented using SAGA Timeouts – (<a href="https://docs.particular.net/nservicebus/sagas/timeouts/">link</a>).</p>



<p>If you would like to learn more then I can definitely recommend this talk.</p>



<h3 class="wp-block-heading" id="featuretogglesthegoodthebadandtheuglybyandydaviesahrefhttpsyoutubezf3xyrtd6cylinka">“Feature Toggles: The Good, The Bad and The Ugly” by&nbsp;<em>Andy Davies</em>&nbsp;(<a href="https://youtu.be/ZF3xYrtD6cY">link</a>)</h3>



<p>Here we can learn more about proper management of feature toggles in our code but also about the potential hazards of risky practices. This knowledge could save your company from an IT disaster. A definite must watch.</p>



<h3 class="wp-block-heading" id="theartofcodebydylanbeattieahrefhttpsyoutubezf3xyrtd6cylinka">“The Art of Code” by&nbsp;<em>Dylan Beattie</em>&nbsp;(<a href="https://youtu.be/ZF3xYrtD6cY">link</a>)</h3>



<p>A very entertaining presentation about the “art” of coding. Beattie demonstrates many examples of quirky code created by developers for fun and happiness of other people. A good and relaxing talk to improve your day.</p>



<h3 class="wp-block-heading" id="welcometothemachinebyhadihaririahrefhttpsyoutubeh90lzn8elpklinka">“Welcome to The Machine” by&nbsp;<em>Hadi Hariri</em>&nbsp;(<a href="https://youtu.be/h90LZn8eLPk">link</a>)</h3>



<p>Contrary to the previous suggestion, this lecture is more serious and even anxiety inducing. Hariri talks about the challenges the age of internet poses to our privacy and how big IT companies exploit our data for profit. Nowadays, we tend to divert our attention away from such issues and this presentation makes you think about the way you handle your data and with whom you share it.<a href="https://yumasoft.pl/blogpost/8"></a></p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2020/03/devconf-2019/">DevConf 2019</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2020/03/devconf-2019/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
