From bc4ea1bd4874860f1abb22f0a6a1b4c305cbc77e Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Fri, 25 Oct 2019 00:17:43 +0200 Subject: General cleanup --- config | 2 +- not-a-book/.book.tex.swp | Bin 20480 -> 0 bytes not-a-book/.gitignore | 4 ---- not-a-book/Makefile | 2 -- not-a-book/book.tex | 20 -------------------- not-a-book/book.toc | 6 ------ not-a-book/occams-razor.tex | 37 ------------------------------------- not-a-book/preface.tex | 20 -------------------- site.tmpl | 1 - 9 files changed, 1 insertion(+), 91 deletions(-) delete mode 100644 not-a-book/.book.tex.swp delete mode 100644 not-a-book/.gitignore delete mode 100644 not-a-book/Makefile delete mode 100644 not-a-book/book.tex delete mode 100644 not-a-book/book.toc delete mode 100644 not-a-book/occams-razor.tex delete mode 100644 not-a-book/preface.tex diff --git a/config b/config index a2c8887..0861a1a 100644 --- a/config +++ b/config @@ -2,7 +2,7 @@ TEMPLATES = site.tmpl SOURCE = src OUTPUT = public TITLE = Mitja Felicijan -DESCRIPTION = Embedded systems developer and fanatical fan of science fiction +DESCRIPTION = Fan of science fiction and dabbler in code GOOGLE_VERIFICATION = EwUGW1WlCkRIQuyQ9AE1-bLitWthw-eVMZFTAMZVZaA TWITTER_HANDLE = @mitjafelicijan URL = 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 Binary files a/not-a-book/.book.tex.swp and /dev/null 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 @@ -*.log -*.aux -*.pdf -*.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 @@ -dev: - 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 @@ -\documentclass[12pt]{book} -\usepackage[paperheight=9in,paperwidth=6in]{geometry} -\linespread{1.25} -\parindent 0pt -\parskip 10pt -\title{\bf This is not a book about programming} -\author{Mitja Felicijan} -\date{\today} - -\begin{document} - -\frontmatter -\maketitle -\tableofcontents - -\mainmatter -\input{preface.tex} -\input{occams-razor.tex} - -\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 @@ -\contentsline {chapter}{\numberline {}Preface}{1}% -\contentsline {chapter}{\numberline {1}Follow Occam\IeC {\textquoteright }s razor whenever you can}{5}% -\contentsline {section}{\numberline {1.1}What is Occam\IeC {\textquoteright }s razor}{5}% -\contentsline {section}{\numberline {1.2}How I apply Occam\IeC {\textquoteright }s razor}{6}% -\contentsline {section}{\numberline {1.3}Uncertainty vs. clarity}{7}% -\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 @@ -\chapter{Follow Occam’s razor whenever you can} - -\section{What is Occam’s razor} - -Occam’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. - -\section{How I apply Occam’s razor} - -For 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. - -I 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. - -This 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. - -\section{Uncertainty vs. clarity} - -Most 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. - -We 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. - -I 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. - -The 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. - -\section{Showcases and marketing} - -There 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. - -On 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. - -Well, 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. - -It’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. - -It 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. - -I 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 @@ -\chapter*{Preface} -\addcontentsline{toc}{chapter}{\protect\numberline{}Preface} - -Well, 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. - -It’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! - -But 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. - -All 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. - -Dealing 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. - -And 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. - -This 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. - -And 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. - -This 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 @@ - -- cgit v1.2.3