<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Haruan Justino</title>
    <description>The latest articles on Forem by Haruan Justino (@haruanm).</description>
    <link>https://forem.com/haruanm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F52051%2F135d0eb6-24fd-4ce8-9f75-5ac26d5d7c01.jpg</url>
      <title>Forem: Haruan Justino</title>
      <link>https://forem.com/haruanm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/haruanm"/>
    <language>en</language>
    <item>
      <title>Does typescript increase the bundle size of a project?</title>
      <dc:creator>Haruan Justino</dc:creator>
      <pubDate>Thu, 24 Sep 2020 14:36:43 +0000</pubDate>
      <link>https://forem.com/haruanm/does-typescript-increase-the-bundle-size-of-a-project-mp4</link>
      <guid>https://forem.com/haruanm/does-typescript-increase-the-bundle-size-of-a-project-mp4</guid>
      <description>&lt;p&gt;Does typescript increase the bundle size of a project?&lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>It is not about code</title>
      <dc:creator>Haruan Justino</dc:creator>
      <pubDate>Mon, 14 Sep 2020 21:52:03 +0000</pubDate>
      <link>https://forem.com/haruanm/it-is-not-about-code-57ke</link>
      <guid>https://forem.com/haruanm/it-is-not-about-code-57ke</guid>
      <description>&lt;p&gt;TL;DR&lt;/p&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;There is some time since I started to use dev.to and I have tried to write something that I feel meaningful here many times and never could because technology is important but I didn't feel that I could make a difference by showing some code.&lt;/p&gt;

&lt;p&gt;So right now I want to talk a bit about software development as a whole because the next modern tech will not solve your problem (mostly).&lt;/p&gt;

&lt;h2&gt;
  
  
  History
&lt;/h2&gt;

&lt;p&gt;I have started to work with software development in 2010, and in the last 10 years I have worked with shell scripts, pure PHP, Zend, Yii, Symfony, and Laravel, python, Django, spark, TensorFlow, sci-kit learn, Objective-C, Swift, Java for Android, Cordova, Flutter, Xamarin, Docker, Kubernetes, AWS, etc, and the technology evolve to solve new problems, but the main problem that I had to deal all the time was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1  - The business rules were not clear enough&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You start to work with something that was requested for and in the middle of the process everything changes, something wasn't considered, some business rule is not well defined and will generate bugs in the future.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2 - The code is a mess&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You need to work with a code that is not yours and it is a mess, you spend much more time trying to understand what the heck is that&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3 - People that do not understand code, saying to you how to code, or giving deadlines that aren't feasible&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sometimes it happens&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;None of these problems are really related to the technology itself&lt;/strong&gt;, maybe if you work on Google or Facebook, you will face other kinds of main problems but well, you got it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Moving the frontend to a SPA, creating APIs to everything, and putting your project to run on Kubernetes won't solve any problem if you are not solving the problems that these technologies were created to solve.&lt;/p&gt;

</description>
      <category>metaprogramming</category>
    </item>
    <item>
      <title>Learning Go Notes - Crosscompiling</title>
      <dc:creator>Haruan Justino</dc:creator>
      <pubDate>Tue, 21 May 2019 11:54:42 +0000</pubDate>
      <link>https://forem.com/haruanm/learning-go-notes-crosscompiling-5ae2</link>
      <guid>https://forem.com/haruanm/learning-go-notes-crosscompiling-5ae2</guid>
      <description>&lt;p&gt;As part of my studies with Go, yesterday tried to compile a simple project to windows from my ubuntu linux, and I've got some small tips for that.&lt;/p&gt;

&lt;p&gt;1 - To Crosscompile you just need to change 2 enviroment variables, GOARCH (the architecture of the processor) and GOOS (the operational system), you could do this by using export:&lt;/p&gt;

&lt;p&gt;export GOARCH="amd64"&lt;br&gt;&lt;br&gt;
export GOOS="windows"&lt;/p&gt;

&lt;p&gt;But this makes you need to revert it later.&lt;/p&gt;

&lt;p&gt;For a 1 line approach you can pass the parameters before run build command.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GOOS=windows GOARCH=386 go build&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2 - If you are using some C library with cgo, you gonna need to enable the CGO_ENABLED flag, and have the structure to compile the C library properly (mingw for windows and things like that). Ex:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ go build -ldflags "-H windowsgui"&lt;/code&gt; &amp;lt;= this didn't work.&lt;/p&gt;

&lt;p&gt;In some cases you can use xgo ( &lt;a href="https://github.com/karalabe/xgo"&gt;https://github.com/karalabe/xgo&lt;/a&gt; ):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;xgo --targets=windows/* .&lt;/code&gt; would compile to windows.&lt;/p&gt;

&lt;p&gt;It was relatively easy to crosscompile, lets check later with larger projects.&lt;br&gt;
If you have some case to tell or some suggestion, please comment.&lt;/p&gt;

</description>
      <category>go</category>
      <category>crosscompiling</category>
    </item>
    <item>
      <title>Learning Go Notes - Clean Architecture and Go, is it a match?</title>
      <dc:creator>Haruan Justino</dc:creator>
      <pubDate>Wed, 15 May 2019 23:33:01 +0000</pubDate>
      <link>https://forem.com/haruanm/clean-achitecture-and-go-its-a-match-35co</link>
      <guid>https://forem.com/haruanm/clean-achitecture-and-go-its-a-match-35co</guid>
      <description>&lt;p&gt;These last days I was migrating a PHP project from symfony 2.8 to 3.4 and PHP from 5.6 to 7.2 and it was taking a lot of time to run the unit tests, I recently started to study go and I was postponing the study of clean/hexagonal achitecture for a while.&lt;/p&gt;

&lt;p&gt;I still a bit unconfortable using go since I am pretty new, I felt that there was no very mature web framework to use with it to understand the language patterns, everyone saying to use the standard library, but no examples about how to do complex applications.&lt;/p&gt;

&lt;p&gt;Since I didn't found a good example, I thinked a good Idea would be study another thing for a while and try go again later, and them I searched about hexagonal architecture and bang, I found these 2 presentations:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GopherCon UK 2018: Kat Zien - How do you structure your Go apps?&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=VQym87o91f8"&gt;https://www.youtube.com/watch?v=VQym87o91f8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Robert C Martin - Clean Architecture and Design&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=Nsjsiz2A9mg"&gt;https://www.youtube.com/watch?v=Nsjsiz2A9mg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And to me it seems like a match, the way that golang works with projects and dependencies, seems to work pretty well, I will try it later.&lt;/p&gt;

</description>
      <category>go</category>
      <category>cleanachitecture</category>
    </item>
  </channel>
</rss>
