summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreug-vs <eugene@eug-vs.xyz>2022-04-21 21:46:43 +0300
committereug-vs <eugene@eug-vs.xyz>2022-04-21 21:46:49 +0300
commit9a38fed5f259db004e93746e432cd8cb7885e1ea (patch)
treeb63e9b5658a152923a763db779096705e28f2ce3
parent98d85738e0eb7f21669f78420d5e3a457117de66 (diff)
downloadeug-vs-xyz-9a38fed5f259db004e93746e432cd8cb7885e1ea.tar.gz
fix: add missing components
-rw-r--r--src/articles/taskwarrior.md74
-rw-r--r--src/public/emoji/rss.pngbin0 -> 41021 bytes
-rw-r--r--src/public/highlight.css74
-rw-r--r--src/public/style.css1
-rw-r--r--src/urls4
-rw-r--r--templates/openring.html40
-rw-r--r--templates/page.html4
-rw-r--r--templates/rss.xml2
8 files changed, 188 insertions, 11 deletions
diff --git a/src/articles/taskwarrior.md b/src/articles/taskwarrior.md
new file mode 100644
index 0000000..02681d9
--- /dev/null
+++ b/src/articles/taskwarrior.md
@@ -0,0 +1,74 @@
+# TaskWarrior :taskwarrior: is all you need to be productive
+
+Nowadays there is an **ocean** of different productivity tools, systems and methodologies. The secret is - you only need one!
+
+# The problem
+I always wanted to come up with a standartized system to manage my life. I bet you too!
+
+## TickTick
+I've tried different approaches and tools and finally ended up with [TickTick](https://ticktick.com) (*and even bought a premium subscription*).
+
+It provided me with many features, including:
+ - *Calendar* - this was a must-have to me, I wanted to be able to see top-down view of my week and be able to do "time blocking"
+ - *Disctinction between tasks and notes* - that was important because back then I already wanted to start accumulating my knowledge somewhere
+ - *Markdown support* - plaintext is good, but `Markdown` is just so much better for notetaking
+ - *Arbitrary folder hierarchy* - allowed me to have full control over the structure
+ - *Tags and complex filtering system*
+
+It has even more cool stuff, like reminding you about tasks when you arrive at their location, voice input and excellent UI/UX.
+
+## So why did I switch?
+`TickTick` covered all my use-cases (*and even more*), so why did I switch?
+
+Well, there are a couple reasons for that:
+ - They have all your data. Ideally I want my management system to be **private** and available offline.
+ - Keeping notes there just felt like it's too much. The question is: how is it different from writing in plaintext `Markdown` files on mobile phone or laptop?
+
+# Discovering Vimwiki
+At this point I was already using `Vim` a lot and when I learned about [vimwiki](https://githbu.com/vimwiki/vimwiki) I immediately migrated all my notes into the local folder on my computer.
+It provides you with much broader functionality than just keeping notes - well, this website is build using `vimwiki`, but I won't go into details here, because I plan to do a separate article about it.
+
+Also, vimwiki provides you with folder hierarchy for free! Why overuse any other software when your filesystem has it covered?
+
+
+# Discovering TaskWarrior
+After using `TickTick` for two years, I finally discovered [TaskWarrior](https://taskwarrior.org):
+ - Terminal application (*but it has frontends if you can't live without it*)
+ - Deadly simple
+ - Data is stored locally
+ - Scriptable and hackable
+ - Methodology-agnostic
+ - Focused on doing one thing
+
+<p align="center">
+<img src="https://upload.wikimedia.org/wikipedia/en/5/59/Taskwarrior_logo.png">
+</p>
+
+When I saw it first time - I knew that was it. You see, since I was already not keeping notes in `TickTick`, I was only using it only to keep track of my tasks. And `TaskWarrior` actually does a better job in managing tasks - it's the software that follows *Unix philosophy* - **it does one thing and does it well**.
+
+I won't do a guide about `TaskWarrior` here, because they have an amazing documentation on their website. I suggest you go ahead and [learn this powerful tool](https://taskwarrior.org/docs/30second.html) in 30 seconds!
+
+# Choosing methodology
+Having `TaskWarrior` ready, you may get stunned by the amount of choice you have in managing your tasks. It's time to choose a methodology and stick to it. I prefer [Getting Things Done](https://hamberg.no/gtd) (or **GTD**) - it has a very precise set of rules that you have to follow and they acutally make sense.
+
+**GTD** is focused, well, on *getting things done*. It's a general approach to organizing tasks and projects. I'd say it's an **interface** which can have multiple **implementations** (like in `TickTick`, `Google Calendar`, `TaskWarrior` etc.).
+It's aim is to make you have 100% trust in a system for collecting tasks, ideas, and projects.
+
+Main advantage of **GTD** is that it only works with **actionable** visible items. E.g. you don't keep a task `Get a driver lisence` - it's stupid from such point of view. "Do I get it right now or what?" Instead you create a project `driver-lisence` with following tasks:
+ - Ask Michael to recommend a driving course
+ - Assign to driving course
+ - Pass rules exam
+ - Pass driving exam
+ - Pass final exam
+
+Hopefully you get the point. Learn more about GTD [here](https://hamberg.no/gtd).
+
+# Putting it all together
+`TaskWarrior` + `vimwiki` is an ultimate replacement for `TickTick` or any other productivity tool you can imagine. **GTD** eliminates the problem with calendar - according to **GTD**, you only assign deadlines to the tasks that actually have them. With that considered, TaskWarrior's built-in calendar works perfectly.
+
+And the good thing is: you don't need be using `vimwiki` for it to work - you can write your notes any way you like (*I actually suggest pen & paper*). The same for methodology - if you don't like *GTD* - choose any system that fits you (or adapt already existing one). The point is: **TaskWarrior will play nicely with everything**. It's an ultimate tool that you only have to learn once in your life.
+
+# PS
+There's also **TimeWarrior**, but I recommend getting familliar with **TaskWarrior** first. The main difference - TaskWarrior focuses on the tasks you have to do in future, while TimeWarrior analyzes the past.
+
+I will do an artcile focused specifically on my productivity workflow later, stay tuned!
diff --git a/src/public/emoji/rss.png b/src/public/emoji/rss.png
new file mode 100644
index 0000000..65cb623
--- /dev/null
+++ b/src/public/emoji/rss.png
Binary files differ
diff --git a/src/public/highlight.css b/src/public/highlight.css
new file mode 100644
index 0000000..fa5ceb1
--- /dev/null
+++ b/src/public/highlight.css
@@ -0,0 +1,74 @@
+/* Automatically generated by Pandoc */
+code{white-space: pre-wrap;}
+span.smallcaps{font-variant: small-caps;}
+span.underline{text-decoration: underline;}
+div.column{display: inline-block; vertical-align: top; width: 50%;}
+div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+ul.task-list{list-style: none;}
+pre > code.sourceCode { white-space: pre; position: relative; }
+pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
+pre > code.sourceCode > span:empty { height: 1.2em; }
+.sourceCode { overflow: visible; }
+code.sourceCode > span { color: inherit; text-decoration: inherit; }
+div.sourceCode { margin: 1em 0; }
+pre.sourceCode { margin: 0; }
+@media screen {
+div.sourceCode { overflow: auto; }
+}
+@media print {
+pre > code.sourceCode { white-space: pre-wrap; }
+pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
+}
+pre.numberSource code
+ { counter-reset: source-line 0; }
+pre.numberSource code > span
+ { position: relative; left: -4em; counter-increment: source-line; }
+pre.numberSource code > span > a:first-child::before
+ { content: counter(source-line);
+ position: relative; left: -1em; text-align: right; vertical-align: baseline;
+ border: none; display: inline-block;
+ -webkit-touch-callout: none; -webkit-user-select: none;
+ -khtml-user-select: none; -moz-user-select: none;
+ -ms-user-select: none; user-select: none;
+ padding: 0 4px; width: 4em;
+ background-color: #232629;
+ color: #7a7c7d;
+ }
+pre.numberSource { margin-left: 3em; border-left: 1px solid #7a7c7d; padding-left: 4px; }
+div.sourceCode
+ { color: #ebdbb2; background-color: #1d2021; }
+@media screen {
+pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
+}
+code span { color: #cfcfc2; } /* Normal */
+code span.al { color: #95da4c; background-color: #4d1f24; font-weight: bold; } /* Alert */
+code span.an { color: #3f8058; } /* Annotation */
+code span.at { color: #2980b9; } /* Attribute */
+code span.bn { color: #f67400; } /* BaseN */
+code span.bu { color: #7f8c8d; } /* BuiltIn */
+code span.cf { color: #fdbc4b; font-weight: bold; } /* ControlFlow */
+code span.ch { color: #b16286; } /* Char */
+code span.cn { color: #fabd2f; font-weight: bold; } /* Constant */
+code span.co { color: #928374; } /* Comment */
+code span.cv { color: #7a7c7d; } /* CommentVar */
+code span.do { color: #a43340; } /* Documentation */
+code span.dt { color: #d3869b; } /* DataType */
+code span.dv { color: #f67400; } /* DecVal */
+code span.er { color: #da4453; text-decoration: underline; } /* Error */
+code span.ex { color: #c45b00; font-weight: bold; } /* Extension */
+code span.fl { color: #d79921; } /* Float */
+code span.fu { color: #d79921; } /* Function */
+code span.im { color: #689d6a; } /* Import */
+code span.in { color: #c45b00; } /* Information */
+code span.kw { color: #cfcfc2; font-weight: bold; } /* Keyword */
+code span.op { color: #ffffff; } /* Operator */
+code span.ot { color: #27ae60; } /* Other */
+code span.pp { color: #27ae60; } /* Preprocessor */
+code span.re { color: #2980b9; background-color: #153042; } /* RegionMarker */
+code span.sc { color: #b16286; } /* SpecialChar */
+code span.ss { color: #da4453; } /* SpecialString */
+code span.st { color: #fabd2f; } /* String */
+code span.va { color: #27aeae; } /* Variable */
+code span.vs { color: #da4453; } /* VerbatimString */
+code span.wa { color: #da4453; } /* Warning */
+.display.math{display: block; text-align: center; margin: 0.5rem auto;}
diff --git a/src/public/style.css b/src/public/style.css
index b6f5b7d..db40b6a 100644
--- a/src/public/style.css
+++ b/src/public/style.css
@@ -141,4 +141,3 @@ div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
-
diff --git a/src/urls b/src/urls
new file mode 100644
index 0000000..e7d6fb2
--- /dev/null
+++ b/src/urls
@@ -0,0 +1,4 @@
+https://lukesmith.xyz/rss.xml
+https://drewdevault.com/blog/index.xml
+https://blog.codinghorror.com/rss/
+https://100r.co/links/rss.xml
diff --git a/templates/openring.html b/templates/openring.html
index be91912..675c623 100644
--- a/templates/openring.html
+++ b/templates/openring.html
@@ -1,23 +1,47 @@
-<sectiong style="margin-top: 128px;">
+<section class="webring" style="margin-top: 128px;">
<h2>Articles from blogs I read</h2>
- <section>
+ <section class="articles">
{{range .Articles}}
- <div>
- <h3>
+ <div class="article">
+ <h3 class="title">
<a href="{{.Link}}" target="_blank" rel="noopener">{{.Title}}</a>
</h3>
- <p>{{.Summary}}</p>
- <div>
+ <p class="summary">{{.Summary}}</p>
+ <div class="source">
via <a href="{{.SourceLink}}">{{.SourceTitle}}</a>
</div>
- <div>{{.Date | datef "January 2, 2006"}}</div>
+ <div class="date">{{.Date | datef "January 2, 2006"}}</div>
</div>
{{end}}
</section>
- <div>
+ <div class="attribution">
<small>
Generated by
<a href="https://git.sr.ht/~sircmpwn/openring">openring</a>
</small>
</div>
</section>
+<style>
+.webring .articles {
+ display: flex;
+ flex-wrap: wrap;
+ margin: -0.5rem;
+}
+.webring .title {
+ margin: 0;
+}
+.webring .article {
+ flex: 1 1 0;
+ display: flex;
+ flex-direction: column;
+ margin: 0.5rem;
+ padding: 0.5rem;
+ min-width: 10rem;
+}
+.webring .summary {
+ flex: 1 1 0;
+}
+.webring .attribution {
+ text-align: right;
+}
+</style>
diff --git a/templates/page.html b/templates/page.html
index a839e46..cb78f85 100644
--- a/templates/page.html
+++ b/templates/page.html
@@ -2,11 +2,13 @@
<head>
<link rel="shortcut icon" type="image/jpg" href="/public/icon-64.png"/>
<link rel="stylesheet" href="/public/style.css" />
+ <link rel="stylesheet" href="/public/highlight.css" />
</head>
<body>
<header class="display: inline">
<a href="/" style="text-decoration: none;">
- <img src="/public/eug-vs.png" alt="eug-vs" width="128px"> <h1 style="margin-top: 12px;">Eugene's Space</h1>
+ <img src="/public/eug-vs.png" alt="eug-vs" width="128px">
+ <h1 style="margin-top: 12px;">Eugene's Space</h1>
</a>
</header>
<main>
diff --git a/templates/rss.xml b/templates/rss.xml
index 683bdb2..88a2536 100644
--- a/templates/rss.xml
+++ b/templates/rss.xml
@@ -1,4 +1,4 @@
-<rss>
+<rss version="2.0">
<channel>
</channel>
</rss>