aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2019-10-25 00:17:43 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2019-10-25 00:17:43 +0200
commitbc4ea1bd4874860f1abb22f0a6a1b4c305cbc77e (patch)
tree47692b8140f869839706edfbc38b585dae05df42
parent43f8b6b309b0e28712086c7d6547f507aeb0a750 (diff)
downloadmitjafelicijan.com-bc4ea1bd4874860f1abb22f0a6a1b4c305cbc77e.tar.gz
General cleanup
-rw-r--r--config2
-rw-r--r--not-a-book/.book.tex.swpbin20480 -> 0 bytes
-rw-r--r--not-a-book/.gitignore4
-rw-r--r--not-a-book/Makefile2
-rw-r--r--not-a-book/book.tex20
-rw-r--r--not-a-book/book.toc6
-rw-r--r--not-a-book/occams-razor.tex37
-rw-r--r--not-a-book/preface.tex20
-rw-r--r--site.tmpl1
9 files changed, 1 insertions, 91 deletions
diff --git a/config b/config
index a2c8887..0861a1a 100644
--- a/config
+++ b/config
@@ -2,7 +2,7 @@ TEMPLATES = site.tmpl
2SOURCE = src 2SOURCE = src
3OUTPUT = public 3OUTPUT = public
4TITLE = Mitja Felicijan 4TITLE = Mitja Felicijan
5DESCRIPTION = Embedded systems developer and fanatical fan of science fiction 5DESCRIPTION = Fan of science fiction and dabbler in code
6GOOGLE_VERIFICATION = EwUGW1WlCkRIQuyQ9AE1-bLitWthw-eVMZFTAMZVZaA 6GOOGLE_VERIFICATION = EwUGW1WlCkRIQuyQ9AE1-bLitWthw-eVMZFTAMZVZaA
7TWITTER_HANDLE = @mitjafelicijan 7TWITTER_HANDLE = @mitjafelicijan
8URL = https://mitjafelicijan.com 8URL = https://mitjafelicijan.com
diff --git a/not-a-book/.book.tex.swp b/not-a-book/.book.tex.swp
deleted file mode 100644
index 4741d98..0000000
--- a/not-a-book/.book.tex.swp
+++ /dev/null
Binary files differ
diff --git a/not-a-book/.gitignore b/not-a-book/.gitignore
deleted file mode 100644
index d4b5038..0000000
--- a/not-a-book/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
1*.log
2*.aux
3*.pdf
4*.swp
diff --git a/not-a-book/Makefile b/not-a-book/Makefile
deleted file mode 100644
index 5f19965..0000000
--- a/not-a-book/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
1dev:
2 find -type f | egrep -i "*.tex|*.yml|*.html|*.js" | entr -r pdflatex book.tex
diff --git a/not-a-book/book.tex b/not-a-book/book.tex
deleted file mode 100644
index 1004f65..0000000
--- a/not-a-book/book.tex
+++ /dev/null
@@ -1,20 +0,0 @@
1\documentclass[12pt]{book}
2\usepackage[paperheight=9in,paperwidth=6in]{geometry}
3\linespread{1.25}
4\parindent 0pt
5\parskip 10pt
6\title{\bf This is not a book about programming}
7\author{Mitja Felicijan}
8\date{\today}
9
10\begin{document}
11
12\frontmatter
13\maketitle
14\tableofcontents
15
16\mainmatter
17\input{preface.tex}
18\input{occams-razor.tex}
19
20\end{document}
diff --git a/not-a-book/book.toc b/not-a-book/book.toc
deleted file mode 100644
index 74eee9b..0000000
--- a/not-a-book/book.toc
+++ /dev/null
@@ -1,6 +0,0 @@
1\contentsline {chapter}{\numberline {}Preface}{1}%
2\contentsline {chapter}{\numberline {1}Follow Occam\IeC {\textquoteright }s razor whenever you can}{5}%
3\contentsline {section}{\numberline {1.1}What is Occam\IeC {\textquoteright }s razor}{5}%
4\contentsline {section}{\numberline {1.2}How I apply Occam\IeC {\textquoteright }s razor}{6}%
5\contentsline {section}{\numberline {1.3}Uncertainty vs. clarity}{7}%
6\contentsline {section}{\numberline {1.4}Showcases and marketing}{8}%
diff --git a/not-a-book/occams-razor.tex b/not-a-book/occams-razor.tex
deleted file mode 100644
index 4694dc7..0000000
--- a/not-a-book/occams-razor.tex
+++ /dev/null
@@ -1,37 +0,0 @@
1\chapter{Follow Occam’s razor whenever you can}
2
3\section{What is Occam’s razor}
4
5Occam’s razor (or Ockham’s razor) is a principle from philosophy. Suppose there exists two explanations for an occurrence. In this case the one that requires the least speculation is usually correct. Another way of saying it is that the more assumptions you have to make, the more unlikely an explanation. Occam’s razor applies especially in the philosophy of science, but also more generally.
6
7\section{How I apply Occam’s razor}
8
9For me this principle means, if we have a problem we normally have multiple solutions for it and the most simple solution is usually the correct one. Sometimes this is not possible but in that case all solutions are usually complex ones.
10
11I have learned that complex solutions don’t translate well into reality and introduce a lot of moving parts and systems with a lot of moving parts break apart easier.
12
13This is one of the reasons I have been and still am very conservative with micro-services. They are amazing, no question about it. But people can go too far with them. And then you end up with an insanely complex system relying on crazy amount of inner-service communication. There is a reason why GNU Hurd was never finished. Managing this complexity moves accountability away from developers and increases pressure on DevOps.
14
15\section{Uncertainty vs. clarity}
16
17Most of the projects I observed never went beyond discovery phase in matters of clarity. They just assumed that the first explanation for a solution is good enough. Discovery phase was there just to add billable hours and boilerplate text was added to the documents.
18
19We threat project documentation like legal documents which is just idiotic and in the end this hurts project immensely. There is a place for legal text but not in a specification documents.
20
21I understand that client can be sneaky and can try to push feature creep into the project. I totally get it. But all this could be fixed by having an appendix to the document explaining rules on how to read this document. That being vague does not permit anybody to start adding additional functionalities to specs.
22
23The amount of times I have sat on meetings when we went from "Client wants a form on his page" to "There should be a short animated film here explaining XYZ" astonishes me. Now that I look back I really wonder how was I able to listen to this without loosing my mind. And I was even an active participant digging my own grave most of the time by accepting a task without properly thinking about it. Getting swept by brainstorming session. I have learned this lesson the hard way.
24
25\section{Showcases and marketing}
26
27There seem to be this disconnect between reality and what I call a Lala Land where people in places of authority don’t really even take the time to properly analyze their requests.
28
29On multiple occasions I witnessed first hand somebody coming with an idea they saw on Google I/O video or some other conference they visited some or even read about it in a marketing blog and tell everybody on a team that this is the future and we must go into this direction.
30
31Well, nothing wrong with that in general. I am all for progress. But what bothered me was their lack of listening skills. Specially when team lead started to explain that it took them 6 months and a team of 10 developers to accomplish this task. And they want to have it done in a week or two. Preferably by Friday morning so they can talk about it while sipping coffee in the morning. Back to the dungeon you go.
32
33It’s mind-boggling. How in the hell didn’t you listen to that part also. I find it amazing how people get caught in shiny things. And this type of people are very vocal when it comes to their territory. You don’t understand. Writing code is the easy part. Try to write a proposal. You need to have this high-level perspective and you must be able to bla bla bla. I always just zone out. I have written proposals and I can say that they were far more structured and organized with proper info in proper places.
34
35It doesn’t take a genius to write a proposal. And it doesn’t take a genius to write code. All it takes is good personal organization and knowledge about the field which can be learned.
36
37I don’t mean to over simplify things but to say that this things are just for the most intellectual ones is just absurd and it doesn’t serve anybody any good.
diff --git a/not-a-book/preface.tex b/not-a-book/preface.tex
deleted file mode 100644
index 5c01c0a..0000000
--- a/not-a-book/preface.tex
+++ /dev/null
@@ -1,20 +0,0 @@
1\chapter*{Preface}
2\addcontentsline{toc}{chapter}{\protect\numberline{}Preface}
3
4Well, well, well. This is something I wanted to write about for about two years now and haven’t had the time to actually sit down and write about it. I have been gathering this nuggets of knowledge for years and they have helped me to get a better look at myself, my relationships with my coworkers and the most importantly, how I actually do my job and how does this effect my work performance.
5
6It’s been years since I was able to sit down in front of a TV and actually watch a movie without having minor panic attacks what is going on with the projects I was working on. Many of you probably know perfectly well what I am talking about. It’s this constant never ending pain inside that prohibits you of actually relaxing and have some quite time without brain rushing like you just drank 10 Red Bulls in an hour. The feeling of being on call all the time. Being available for everybody and not really having 5 minutes to slow down your thoughts. That feeling!
7
8But regardless of all this I strive under pressure. I love it. I can’t live without it if I am being totally honest with myself. I love the grind. I love late night coding sessions. I love the subtle competition that comes with it. I just love it. And I find it impossible to explain this to my friends. They just can’t wrap their heads around it. How the hell can you enjoy this? How is this even remotely something compared to life? And to be honest, I can’t explain it to them. I have zero words. I just know that this is something I need in my life.
9
10All this becomes problematic when pressure is not self inflicted but comes from the outside world. When other people start to immensely pressure you into dedicating time for them. Into agreeing with conditions you would never agree just so they leave you alone. And by the way, I find this type of extracting agreements from people totally disgusting. We all know that developers, when writing code, are in a totally different reality and if you ask them to give you their liver, they would probably say yes, just to be left alone with the joy of solving a problem. Taking advantage of this is just so foreign to me that it leaves me with a bad taste in my mouth. I hate it and I hate people that do this. They are intellectual and moral cowards as far as I am concern.
11
12Dealing with this corporate bullshit for now 10 years really started to affect my better judgment. At one point I was working on three projects and sleeping for 3 hours a day for months on end. I slept behind a desk. I slept on the floor. I slept on tables. Practically everywhere but on a bed. And that didn’t bother me at all. I am that kind of a person that doesn’t need any special conditions in life. I don’t care about beds, about chairs, about tables, food, about day or night. I simply don’t care. When I start working on a project the only thing I care about is doing the work the best way that I can. I forget about all this stuff and this type of obsession can lead to real isolation. Which again, I just don’t mind.
13
14And I am unapologetic about this. I don’t mind being called weird, strange, isolationist, odd, bizarre or any other adjective you might choose to describe me. I have my own morals and ethics that don’t revolve around external image. All I care about is internal happiness.
15
16This book is not a set of rules. It’s not even something you or your company should blindly follow. Maybe you disagree with some of the points, or maybe even all of them completely. It’s fine, I don’t care actually. Maybe all this will do is make you think and reevaluate how you do your job.
17
18And I am unapologetic about this. I don’t mind being called weird, strange, isolationist, odd, bizarre or any other adjective you might choose to describe me. I have my own morals and ethics that don’t revolve around external image. All I care about is internal happiness.
19
20This book is not a set of rules. It’s not even something you or your company should blindly follow. Maybe you disagree with some of the points, or maybe even all of them completely. It’s fine, I don’t care actually. Maybe all this will do is make you think and reevaluate how you do your job.
diff --git a/site.tmpl b/site.tmpl
index 12cafca..243fc59 100644
--- a/site.tmpl
+++ b/site.tmpl
@@ -7,7 +7,6 @@
7 <meta name="theme-color" content="#ffffff"> 7 <meta name="theme-color" content="#ffffff">
8 <meta name="google-site-verification" content="{{ html .Site.Other.Google_verification }}"> 8 <meta name="google-site-verification" content="{{ html .Site.Other.Google_verification }}">
9 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 9 <meta http-equiv="X-UA-Compatible" content="ie=edge">
10 <meta name=description content="{{ html .Site.Other.Description }}">
11 10
12 <link rel="preconnect" href="https://www.google-analytics.com"> 11 <link rel="preconnect" href="https://www.google-analytics.com">
13 12