Index: .emacs
===================================================================
--- .emacs	(revision ca03784386722b623ba7a61b7718195300f64371)
+++ .emacs	(revision e6924eec5a4ef73e49874bf1c7a4a0c0140fc5ae)
@@ -91,5 +91,5 @@
          :html-postamble "
 
-      <p>Mikhail Kirillov © 2019-2022</p>
+      <p>w96k © 2019-2022</p>
 
       <p>
Index: content/cv.org
===================================================================
--- content/cv.org	(revision ca03784386722b623ba7a61b7718195300f64371)
+++ content/cv.org	(revision e6924eec5a4ef73e49874bf1c7a4a0c0140fc5ae)
@@ -1,8 +1,8 @@
-#+Title: Mikhail Kirillov: CV
+#+Title: CV
 #+LANGUAGE: en
 #+OPTIONS: toc:nil num:nil itemsep=0
 #+LATEX_HEADER: \usepackage[russian]{babel}
 #+LATEX_HEADER: \usepackage{lipsum,graphicx}
-#+latex_class_options: [12pt]
+#+latex_clashttps://www.youtube.com/watch?v=PEcqvARtjqss_options: [12pt]
 #+LaTeX_HEADER: \setlength{\parindent}{0} % Default is 15pt.
 
@@ -163,9 +163,10 @@
 *** Desired salary
 - €3000-3500+ / month :: Remote
-- €5000+ / month :: Relocation
 *** Type of work
 - Remote (desired)
 - Hybrid
 - Office
+
+*Relocation is DESIRED*  
 *** Company's field
 Company's field should be ethical
Index: ntent/en/posts/web-stacks.org
===================================================================
--- content/en/posts/web-stacks.org	(revision ca03784386722b623ba7a61b7718195300f64371)
+++ 	(revision )
@@ -1,400 +1,0 @@
-#+TITLE: Tech stacks for earning money as web developer
-#+DATE: <2022-07-27 Ср>
-#+LANGUAGE: en
-
-* Tech stacks for earning money as web developer
-#+BEGIN_abstract
-In this article I'm going to categorize languages, frameworks, libraries
-and software by a criteria of ease of starting to earn money. It is
-biased and irrational, be aware.
-#+END_abstract
-I work in IT field as web developer for many years, but cannot claim
-myself as professional. I don't like to work in general, I don't like
-corporate IT culture and I don't like web development in particular, but
-I has an experience in that field and it is much easier to dive in in
-order to earn money for a living than other IT fields. I hope this text
-will be useful for someone who is outside of field of web development
-and wish to start earning money in that field.
-
-* What is tech stack
-#+BEGIN_abstract
-Tech stack is the mix of technologies (software, frameworks, libraries)
-that project uses at your current or future company.
-#+END_abstract
-
-Knowing everything from your techstack is not the only key for
-success. It can sound obvious, but social skills can play more important
-role than your programming skills. Programming is very social activity,
-everything you are going to use is built by other people, sometimes
-something breaks and you need to contact with people that provide you
-software you use, it is also important to communicate with your
-company's team and not bring yourself into conflicts.
-
-Next I present the list of technologies you should know to work as web
-developer. The list is not mandotary and you are not required to learn
-it on expert level to get your job offer.
-
-* Fundamental technologies
-Some things you will use in most of your projects, so you are better to
-familarize with them anyway. What I've discovered, that most knowledge
-of some tech is transfarable to other techs.
-** Text Editor
-Not sure if I need to write it, but you need development environment
-where you will write code, run tests and compile your project.
-
-*Most popular choices*
-- [[https://gnu.org/software/emacs/][Emacs]] / [[https://www.vim.org/][Vim]] (I recommend them for a long run)
-- Jetbrains IDE (proprietary)
-- VSCode (proprietary)  
-
-*Less popular*  
-- Sublime (proprietary)
-- [[https://www.eclipse.org/][Eclipse]] / [[https://netbeans.apache.org/][Netbeans]] / [[https://www.kdevelop.org/][Kdevelop]]
-- other editors and IDEs
-
-Proprietary means that source code is not available and probably it
-costs money to use and you as a user don't have control over it. You can
-learn more why it is important on [[https://gnu.org/philosophy/][GNU website]]. Such important tool as
-text editor should be free for everyone.
-
-[[[https://en.wikipedia.org/wiki/Text_editor][Wikipedia: Text editor]]] |
-[[[https://en.wikipedia.org/wiki/Integrated_development_environment][Wikipedia: Integrated development environment]]]
-
-** SQL
-Or it should be called persistance, but mostly you will use something
-like [[https://www.postgresql.org/][Postgres]] or [[https://mariadb.com/kb/en/][MariaDB]]/[[https://mysql.com/][MySQL]]. Rarely it can be nosql like
-mongodb.
-
-The database is the main thing aroud which you will develop your
-application. I would say that the code is secondary compared to the data
-you store and get from the database, so it is extremely good idea to
-learn SQL well especially for a long run. For the start it is okay to
-know a little and get going along the way, because you will probably
-work with SQL through ORM.
-
-I recommend to use [[https://dbeaver.io/][Dbeaver]] as IDE for running SQL related code. It eases
-the complexity of writing and running SQL.
-
-[[[https://en.wikipedia.org/wiki/SQL][Wikipedia: SQL]]] |
-[[[https://en.wikipedia.org/wiki/Relational_database][Wikipedia: Reletational Database]]]
-
-*** ORM
-Each tech stack provides ORM. It is quite rare, where you need to work
-with pure SQL or the project doesn't use ORM at all. ORMs might be
-something from the list:
-- [[https://hibernate.org/][Hibernate]]
-- [[https://docs.djangoproject.com/][Django ORM]]
-- [[https://www.doctrine-project.org/][Doctrine]]
-- [[https://sqlalchemy.org/][SQLAlchemy]]
-- [[https://guides.rubyonrails.org/active_record_basics.html][Rails Active Record]]
-- and many others
-
-[[[https://en.wikipedia.org/wiki/SQL][Wikipedia: SQL]]] | [[[https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping][Wikipedia: ORM]]]
-
-** In-memory database
-Some data needs to be stored in RAM for better performance. For that
-cases you need to learn about Redis or similar technology.
-
-[[[https://en.wikipedia.org/wiki/In-memory_database][Wikipedia: In-memory database]]]
-
-** HTTP Server and HTTP protocol
-You don't actually need to know everything from the start, but since you
-are going to work as web dev you need to know what you are using. It is
-essential if you do backend APIs.
-
-HTTP server is usually [[https://en.wikipedia.org/wiki/Nginx][Nginx]] or [[https://en.wikipedia.org/wiki/Apache_HTTP_Server][Apache]] (it is used rarely now). If you
-work with Java, http servers can be written in Java such as [[https://en.wikipedia.org/wiki/Jetty_(web_server)][Jetty]] and
-others.
-
-[[[https://en.wikipedia.org/wiki/Web_server][Wikipedia: Web server]]] |
-[[[https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol][Wikipedia: Hypertext Transfer Protocol]]]
-
-** Fulltext search
-You might need searching functionality. In basic cases it is okay to
-include google search, but in many cases it is not acceptable choice. To
-do a search like google does you will need fulltext search engines. You
-can use your database for that or specific solutins like ElasticSearch
-for such purpose.
-
-[[[https://en.wikipedia.org/wiki/Full-text_search][Wikipedia: Full-text search]]] |
-[[[https://en.wikipedia.org/wiki/Elasticsearch][Wikipedia: Elasticsearch]]] (proprietary)
-
-** Message broker
-RabbitMQ, ZeroMQ, Kafka and others. You need those to create queues and
-other stuff that needs to be delayed.
-
-[[https://en.wikipedia.org/wiki/Message_broker][Wikipedia: Message Broker]]
-
-** Unix-like OS
-You will probably work on Linux, variants of BSD system or macs. You
-need to familiarize with the system you use, different tasks require
-different degree of that skill, but knowledge of what you are using
-every day will be handy.
-
-There are many ways to learn it, but I recommend try to install it on
-your machine and learn it along the way. I recommend to start with
-[[https://debian.org/][Debian GNU/Linux distribution]]. You can read [[https://www.debian.org/doc/manuals/debian-faq/][FAQ]], manuals about
-[[https://www.debian.org/releases/stable/amd64/index.en.html][installation]] and [[https://www.debian.org/doc/manuals/debian-reference/][how to use the system]]. Docs are very useful, they are
-will be present in your filesystem you can read it by jumping into
-/usr/share/docs folder or running ~info~ and ~man~ commands. I recommend to
-read it and explore Debian website. Also for learning linux Arch Linux
-wiki is good source of knowledge (Slackware and Gentoo wikis are good as
-well).
-
-[[[https://en.wikipedia.org/wiki/Unix][Wikipedia: Unix]]] |
-[[[https://en.wikipedia.org/wiki/Linux][Wikipedia: Linux]]] |
-[[[https://en.wikipedia.org/wiki/Linux_distribution][Wikipedia: Linux distribution]]]
-
-** OOP
-In corporate IT culture you will probably forced to use OOP
-techniques. It is not something that really improves development that
-much, but it is very common way to orginize codebase and it is kind of
-great for working with many people.
-
-Not everyone will degree with my definition, but patterns are needed to
-express by your programming language object system, which is impossible
-to express otherwise, because of different language limits. It is very
-true for very static and not expressive language like PHP or Java and
-less true for more expressive languages like Lisp and Haskell.
-
-Besides basic principle of using OOP in your programming language of
-choice you are going to need patterns to learn. The benefits of them are
-questinable, but it is not bad to know and they are being asked on
-interviews very often.
-
-The best way to learn patterns are to use [[https://en.wikipedia.org/wiki/Smalltalk][Smalltalk]] and read the book
-[[https://en.wikipedia.org/wiki/Design_Patterns]["Gang of Four"]]. Also there is very useful website about design patterns
-with examples in many mainstream languages: https://refactoring.guru/
-
-[[[https://en.wikipedia.org/wiki/Object-oriented_programming][Wikipedia: OOP]]]
-
-** Debugger
-You have a chance to work with others people code, so you have a chance
-to get confused by a lot of stuff going on. Also it is possible that you
-would make a mistake and will not understand what is going on, where is
-an error. In that case you will need a debugger. Debugger is usually can
-be the part of your text editor environment and it is usually included
-in your programming environment alongside your interpreter /
-compiler. Some languages don't include a debugger, so you need to
-download it seperately.
-
-Debugger allows you to step through your code and see the values of
-stack and heap, basically you get an access to everything evaluated by
-your interpreter/compiler. It is very common practice to use such a
-thing when errors happen and I personally think, that it is great way to
-learn how your language of choice works internally.
-
-[[[https://en.wikipedia.org/wiki/Debugger][Wikipedia: Debugger]]]
-
-** Profiler
-Profiler is similar to debugger, but it helps you to detect which part
-of your programm is running slow, it also helps you detect memory
-leaks. Sometimes you or others write functions and does everything as
-intended, but it is running slow. To understand which part of your code
-is a bottleneck you need to run it in a profiler. Then profiler will
-show you an diagram with execution time and memory consumption of your
-functions, which is helpful even when everything works fine.
-
-[[[https://en.wikipedia.org/wiki/Profiling_(computer_programming)][Wikipedia: Profiler]]]
-
-** Frontend
-If you are not exclusively backend developer, you will probably need to
-work with templates. Templates represent the outer view of your website,
-which represents backend's inner workings. Frontend part can be done
-using template engine or can be done as Single Page Application with
-lots of client-side javascript coe.
-
-
-*** HTML
-HTML is being used for representing your website information to your
-users. It contains only structural data and very basic formatting. If
-you see something that looks like old document, that is probably plain
-html used.
-
-[[[https://en.wikipedia.org/wiki/Web_template_system][Wikipedia: Web Template System]]] |
-[[[https://en.wikipedia.org/wiki/Single-page_application][Wikipedia: Single-page Application]]]
-
-*** CSS
-CSS is being used for creating styling for your html pages. The role of
-CSS is to make your html layouts pretty, to make your buttons beatiful
-and grid is clear.
-
-[[[https://en.wikipedia.org/wiki/CSS][Wikipedia: CSS]]]
-
-*** Javascript
-Javascript is being used for creating interectivity with your HTML
-pages. If you see dropdown menu, carousel or a slider, there is probably
-javascript involved. Javascript is big and complex programming language,
-so you as web developer will be required to know only subset of it
-except if your main programming language is Javascript.
-
-[[[https://en.wikipedia.org/wiki/Javascript][Wikipedia: Javascript]]]
-
-*** Template engines
-Template engines are needed to transfer your backend data to your
-user. It provides the way to generate HTML with embedding variables and
-different function for developer's ease. Template engine is usually
-built-in in your framework of choice.
-
-[[[https://en.wikipedia.org/wiki/Template_processor][Wikipedia: Template Processor]]]
-
-** Docker
-Your team probably will use docker for deployment or development (or
-both). Anyway you might want to get your project working in a container
-for better accessability by your team. The point of docker as
-development tool is to let your team quickly to get the same environment
-as you. The point of docker as deployment tool to deploy the same
-environment that you developing in, its important to have reproducible
-production environment, because catching bugs in 3 different
-environments (dev, staging, prod) suck a lot.
-** API
-There are standard ways to build APIs. If you are going to focus on that
-part of application, only backend work, you should learn it.
-- RestAPI
-- JSONAPI
--     
-** Type hierarchy and standard library
-
-** Framework or(and) set of libraries
-Every job sticks on their own stack. Very often it sticks to one
-specific web framework, that you are required to learn. It can be
-something like Django, Symfony, Spring, Ruby on Rails or others.
-
-Frameworks are usually the biggest part of your codebase. The difference
-between framework and library: Framework runs your code with your
-classes, but libraries are being used by you explicitly and you execute
-all the code from them. The concept of reverting the control over the
-code to your framework is called [[https://en.wikipedia.org/wiki/Inversion_of_control][Inversion of Control]].
-** Programming language
-
-You will need to 
-* Most popular programming languages
-Basically your choices are quite limited here. More jobs available, more
-chances to get that job. there will be different results in different
-areas. I think that in most areas you will have a choices between Java,
-Python and maybe PHP or Ruby. If you want to end up insane, there is
-also Javascript, but it is not that mature for backend as other
-technologies, so I will not include it (there is only "big" framework
-called NestJS, its demand should be low).
-
-** Java / C#
-Probably the most popular programming languages out there especially
-when it comes to working at companies. It is statically typed and quite
-easy to learn languages. They are restricted to OOP only, so you
-prorably will use oop design patterns here the most. Type system are not
-that advanced as in ML dialects and actually it is unsound, but it
-provides some merits of safety compared to nonsafe C.
-
-Frameworks:
-- Spring
-- .Net
-
-ORM:
-- Hibernate
-
-** Python
-Second the most popular programming language. It differs from Java a
-lot. It is dynamic typed, more object oriented (everything is an
-object), it forces you to indent your code right.
-
-Frameworks:
-- Django
-- Flask
-- FastAPI
-
-ORM:
-- Django ORM
-- SQLAlchemy
-
-** PHP
-PHP might be unpopular in some areas, but it is quite popular in
-Russia. It runs lots of small businesses and it is probably the easiest
-tech stack to get a job (but not the easiest language to work with). The
-language has lots of caveats such as weak typing, unorganized standard
-library, less developed OOP and type checking, lots of procedural php
-legacy, most functions of the language is defined in C.
-
-Frameworks:
-- Symfony
-- Laravel
-
-ORM:
-- Doctrine
-
-* Less popular programming language
-** Go
-** Ruby
-Ruby is mostly used solely for web development with popular Ruby on
-Rails framework. The demand of it might be low in some areas, so
-investigate your market yourself before learning it. Ruby is strongly
-type object-oriented in smalltalk sense language. It has mixed lisp,
-perl and smalltalk roots.
-
-Frameworks:
-- Ruby on Rails
-- Sinatra
-
-ORM:
-- Active Record
-- DataMapper  
-
-* Great language, but bad for finding work
-* How to get good
-First of all don't buy any paid course or workshops, most information
-are available for free for everyone. Just read wikipedia links I
-provided in artible and follow links there to official documentation of
-the thing you want to learn.
-
-When it comes to programming in general I recommend to learn it doing
-test projects or just playing with the code. For practice you can also
-use services like Exercism or Codewars to practice pure programming
-solving problems. Also there is great web-resource for complete
-beginners called [[https://freecodecamp.org/][FreeCodeCamp]], it covers basics of web development and
-javascript programming.
-
-Also I recommend reading old academic books on programming, because many
-concepts are the same in many programming languages, what you need is
-the ability think abstractly using data structures and algorhythms. I
-recommend anyone who wants to really grock programming to read:
-- [[https://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs][SICP]] (mit scheme)
-- [[https://en.wikipedia.org/wiki/How_to_Design_Programs][HTDP]] (racket)
-- [[https://www.cis.upenn.edu/~bcpierce/tapl/][TAPL]]
-- [[https://en.wikipedia.org/wiki/Essentials_of_Programming_Languages][Essentials Of Programming Languages]]
-- [[https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf][Programming from the ground up]]
-- Also see [[https://www.gnu.org/doc/other-free-books.html][free books from GNU website]]
-
-/Basically the rule of thumb is that if the book has wikipedia article, it is probably a good book and you should read it/.  
-      
-There are many free sources to learn you just need to invest your time
-into it. The downside of learning LISP is that mainstream programming on
-your job can feel very restrictive and less expressive. Also you will
-probably learn, that many mainstream languages have lots of quircks or
-plainly bad design decisions.
-
-* Conclusion
-It is possible to get a job with less popular stack, but if you are just
-starting it might be reasonable to focus on popular one first. The list
-of technologies is quite big, so newbies can be lost in new
-information. Be patient and learn one thing at the time. I would
-recommend starting with programming language documentation, then SQL and
-then going to docs of your web-framework / library.
-
-Demand for web developers is huge and in my opinion it is the easiest
-way to get a job. The web development sucks in general (at least for
-me), but that topic will be hold for another article. 
-
-If to continue tech stack tier list sorted by popularity next one should be:
-
-** Advanced tier
-- Scala
-- Clojure
-- Erlang
-- Rust
-
-** Rare tier
-- Common Lisp / Scheme
-- Haskell
-- SML / Ocaml
-** Rare and legacy tier
-- Perl
-- Cobol
Index: content/index.org
===================================================================
--- content/index.org	(revision ca03784386722b623ba7a61b7718195300f64371)
+++ content/index.org	(revision e6924eec5a4ef73e49874bf1c7a4a0c0140fc5ae)
@@ -1,3 +1,3 @@
-#+TITLE: @w96k: Kirillov Mikhail
+#+TITLE: @w96k
 #+OPTIONS: toc:nil
 #+LANGUAGE: ru
Index: content/legal.org
===================================================================
--- content/legal.org	(revision ca03784386722b623ba7a61b7718195300f64371)
+++ content/legal.org	(revision e6924eec5a4ef73e49874bf1c7a4a0c0140fc5ae)
@@ -3,5 +3,5 @@
 
 * Правовая информация
-*<@w96k>* Copyright © 2019-2021 /Mikhail Kirillov/
+*<@w96k>* Copyright © 2019-2022 /w96k/
 
 По вопросам правового характера обращаться по email: [[mailto:w96k@posteo.net][w96k@posteo.net]]
Index: content/presentations/emacs/emacs-polyglot.org
===================================================================
--- content/presentations/emacs/emacs-polyglot.org	(revision ca03784386722b623ba7a61b7718195300f64371)
+++ content/presentations/emacs/emacs-polyglot.org	(revision e6924eec5a4ef73e49874bf1c7a4a0c0140fc5ae)
@@ -1,5 +1,5 @@
 #+Title: Свободный текстовый редактор общего назначения GNU/Emacs
-#+Author: Михаил Кириллов https://w96k.ru
-#+EMAIL: w96k@posteo.net
+#+Author: Михаил Кириллов https://w96k.de
+#+EMAIL: w96k.ru@gmail.com
 #+DATE: 1 Июня 2020
 #+LANGUAGE:  ru
@@ -12,5 +12,5 @@
 #+LATEX_CLASS_OPTIONS: [article,12pt,notitlepage,notitle,oneside,twocolumn]
 #+STARTUP: beamer
-#+LINK_HOME: https://w96k.ru
+#+LINK_HOME: https://w96k.dev
 
 * Вступление
Index: content/sitemap.org
===================================================================
--- content/sitemap.org	(revision ca03784386722b623ba7a61b7718195300f64371)
+++ content/sitemap.org	(revision e6924eec5a4ef73e49874bf1c7a4a0c0140fc5ae)
@@ -5,4 +5,5 @@
 - [[file:legal.org][Правовая информация]]
 - [[file:index.org][@w96k: Кириллов Михаил]]
+- [[file:about.org][Обо мне: Кириллов Михаил]]
 - [[file:emacs.org][Конфигурация Emacs]]
 - [[file:music.org][@w96k: Music]]
Index: public/COPYING.txt
===================================================================
--- public/COPYING.txt	(revision ca03784386722b623ba7a61b7718195300f64371)
+++ public/COPYING.txt	(revision e6924eec5a4ef73e49874bf1c7a4a0c0140fc5ae)
@@ -1,3 +1,3 @@
-Copyright (c) 2019-2020, Mikhail Kirillov <w96k@posteo.net>.
+Copyright (c) 2019-2022, w96k <w96k.ru@gmail.com>.
 
 @w96k is a blog based on Emacs, org-mode and guix.
