-
Notifications
You must be signed in to change notification settings - Fork 0
/
rss.xml
100 lines (100 loc) · 10.1 KB
/
rss.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Filip Meštrović: Software Consultant]]></title><description><![CDATA[Personal website and blog]]></description><link>https://filipmestrovic.com</link><generator>GatsbyJS</generator><lastBuildDate>Wed, 08 Jul 2020 09:17:40 GMT</lastBuildDate><item><title><![CDATA[Coding isn't always the solution]]></title><description><![CDATA[We’re here to code, right? Right!? Well, yes and no. You’re usually part of a team, trying to solve a business problem.
Naturally, when your…]]></description><link>https://filipmestrovic.com/coding-isnt-always-the-solution/</link><guid isPermaLink="false">https://filipmestrovic.com/coding-isnt-always-the-solution/</guid><pubDate>Wed, 08 Jul 2020 00:00:00 GMT</pubDate><content:encoded><p>We’re here to code, right? Right!?</p>
<p>Well, yes and no.</p>
<p>You’re usually part of a team, trying to solve a business problem.
Naturally, when your mind is very technical, you conclude that you must build a new microservice™. It’s not a big deal, since it’s just <em>micro</em>.</p>
<p>You sit down, get in the zone and can’t stop yourself. Hammering out thousands of lines of code with auto-completes from your IDE is too satisfying.</p>
<p>But is this always the appropriate response?</p>
<h2>Write less code</h2>
<p>Reinventing the wheel is dangerous. Something that seemed simple at first turns out to be a nightmare.
Trying to effectively cover all edge cases could take you months, without counting the bugs.
Before you know it, you could find yourself having to build a team around it.</p>
<p>Don’t be afraid to use existing solutions. This is how developer productivity keeps going up.
Great libraries appear every day. Do your due diligence, discuss internally and make a decision.</p>
<p>If you’re part of a larger project, that team you interface with, but never actually talked to, might’ve solved it already!</p>
<h2>Write no code</h2>
<p>I hope you’re not compensated for the lines of code you write. If you are, stop reading this and get back to work!</p>
<p>This one was difficult for me, but revelations come in unexpected ways. I would find myself reading parts of elaborate specifications thinking:</p>
<p><em>“This makes no sense.“</em></p>
<p>Our brains can get stuck in a certain mode of thinking. This is exactly why rubber ducking works so well. (Although, I have to admit, the duck gets little use, I just bother actual people.)</p>
<p>The trick here is to push through the fear of embarrassing yourself and dig deeper. So why not go ahead and ask:</p>
<ul>
<li>“Why are we doing this again?”</li>
<li>“Do we need this right now?”</li>
<li>“Are we sure our customers want this?”</li>
</ul>
<p>More often than I would’ve thought, we would end up redefining that part of the product for the better. In some cases even, a solution would pop up that didn’t involve coding <strong>at all</strong>.</p>
<h2>Why you’re there</h2>
<p>To be able to contribute to a project effectively, understanding the big picture is crucial.</p>
<p>Probably the most important aspect is knowing who your customer is, what they value and how they’ll use your software.
This will help you make the right design decisions and ultimately simplify your code.</p>
<p>When everyone is on board with the project’s mission, creativity and motivation flourish.
Work together <strong>with</strong> your stakeholders, and not in a vacuum, to make something your customers will love.</p></content:encoded></item><item><title><![CDATA[Why you should consider using Linux for software development]]></title><description><![CDATA[Imagine, running your OS updates when you want to. Linux has emerged as the weapon of choice in almost all professional IT environments…]]></description><link>https://filipmestrovic.com/why-you-should-consider-using-linux-for-software-development/</link><guid isPermaLink="false">https://filipmestrovic.com/why-you-should-consider-using-linux-for-software-development/</guid><pubDate>Fri, 06 Dec 2019 00:00:00 GMT</pubDate><content:encoded><p>Imagine, running your OS updates when <strong>you</strong> want to.</p>
<p>Linux has emerged as the weapon of choice in almost all professional IT environments,
from small web servers to high-performance computing.
And in recent years, even the desktop environments have gotten, kinda pretty actually.</p>
<p>I had the luck of coming across a Linux installation CD back when I was a kid.
I had no idea what it was. It did have a cute yellow penguin etched onto it,
but no <code class="language-text">setup.exe</code> to run left me a little confused.</p>
<p><span
class="gatsby-resp-image-wrapper"
style="position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; "
>
<a
class="gatsby-resp-image-link"
href="/static/6806fa103793a178f75431ff3179b08f/29114/kde.png"
style="display: block"
target="_blank"
rel="noopener"
>
<span
class="gatsby-resp-image-background-image"
style="padding-bottom: 56.08108108108109%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACnElEQVQozyXQX0jUcADA8dFLoORDkGHhYwRRFkFKmQTlc5AQQS8KmZgERVYYoXRQQuUhlmJoZ5mVf8g0/5ao6fxzlH9ubrubu93Ou23edrvfdttt+21nkB0En9fvyxcZYq2hsD0QUJdpnhI1gge+LZEUAMEncB4wwAoCuM4rW8AUktDHgUFSjEiqJPBRSUG+R+GUsDNISn6KTjtpaDuKmlSTum6YKgA/JicnxycUWfYue/v6+ikCG/WL0yEQ3Y75xBQyFYVfGWsQF1cDDDB3FMMOysYMA3yShW+Gzl+rPlN2Yw0P3KmtO3rqbKenOwBgN65d7g7VjPAIyknvVrZXBB2ommXBP2knrhl+AUQSelLTUO/CDPoTKKC3/0u96xmKop4lruRtaF9L+MDrMLIR44MpnbN3TDttQMeBdkyzvJEkJVlpR4cSCsUFB6ovWjxXK2onx6fKh9g9TXS+J3Koi0N+ReNeToykIIR2RjqdjicAFmB4UZYk6U1HR2tbmyAI3T2f7z6oW5yfuzkSymoi8l6RB1s3ETQYXeMk1bRtaFvQ3t39G4sr6Dod5GSWDVdU3b5eUUX6A4/qXYUlpb2fPt76Ru99spTnXs91Y4gfmFQSspptZmILhjgx84mgGTLIkkxkgwqSNEuxkTWC+o351zeIS83TyMPZrPr5bNcy4ledgGpTKtzSHFzUD9d0ZZe351R25FR27q9+n39/4IRrrNg9XfRy+kj9aO69/nPu2bIe35UPvgutS4hfSlGSvimnGMXEYnqha/TY4+GChpHjDSMFrvHTjVPFzfOl7d6LrctFTXMnG2eeTmBjGDNMRJ6PryGrrIhxiUA8xagOrdhE3PgPz5BNXDYIYGaQCQNPmDgwMdlYDIuzND+/yf8DWcX1P89GqXAAAAAASUVORK5CYII='); background-size: cover; display: block;"
></span>
<img
class="gatsby-resp-image-image"
alt="KDE Plasma"
title="KDE Plasma"
src="/static/6806fa103793a178f75431ff3179b08f/fcda8/kde.png"
srcset="/static/6806fa103793a178f75431ff3179b08f/12f09/kde.png 148w,
/static/6806fa103793a178f75431ff3179b08f/e4a3f/kde.png 295w,
/static/6806fa103793a178f75431ff3179b08f/fcda8/kde.png 590w,
/static/6806fa103793a178f75431ff3179b08f/efc66/kde.png 885w,
/static/6806fa103793a178f75431ff3179b08f/c83ae/kde.png 1180w,
/static/6806fa103793a178f75431ff3179b08f/29114/kde.png 1920w"
sizes="(max-width: 590px) 100vw, 590px"
style="width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;"
loading="lazy"
/>
</a>
</span></p>
<h2>1. The Shell</h2>
<p>The scary black screen, the direct connection to <a href="https://github.com/abishekvashok/cmatrix">The Matrix™</a>.</p>
<p>Using and learning the shell will make you pretty much invincible.
You’ll be able to traverse, manage and debug various environments where
your applications are deployed and actually know what you’re doing.</p>
<h2>2. Customization</h2>
<p>Applications developed for Linux tend to allow a lot of configuration.
So go ahead, maximize your productivity and make it yours.
I mean, just look at this <a href="http://reddit.com/r/unixporn">beauty</a>.</p>
<p>Leaving everything on default is also an option.</p>
<h2>3. Speed</h2>
<p>One of the core Unix philosophies is to create programs that <strong>do one thing,
and do it well</strong>, not complicating by adding too many extra features.
This helps the software to be more easily understood and optimized as time goes by.</p>
<p>Something I like pointing out is <a href="https://www.principledtechnologies.com/Red%20Hat/RHEL6_IO_0613">EXT4</a>,
the default file-system in most Linux distributions.
Indexing and working with lots of small files (e.g., <code class="language-text">npm install</code>) is noticeably faster.</p>
<h2>4. Privacy</h2>
<p>Open-source software respects your privacy. Most of the time, it has no hidden agenda, no tracking to “opt-out” of.
It’s designed to do it’s job and nothing more.</p>
<h2>5. Developer heaven</h2>
<p>While still lacking in complete convenience for the casual user, developers are first-class citizens.
Installing the tools you need to do your best work is usually only a command away.
There’s a good chance you’ll find them in your distribution’s package repository.
No need to go through an installer that slips in a toolbar or two.</p>
<h2>OK, how do I start?</h2>
<p>I am a big advocate of learning by doing. I encourage you to try installing a beginner friendly distribution
like <strong>Mint</strong> or <strong>Ubuntu</strong>. You can use a virtual machine or a computer not critical to your daily work
and then play around with it.</p>
<p>Break something, now is the best time to do so! Let me know how it went.</p></content:encoded></item></channel></rss>