summaryrefslogtreecommitdiff
path: root/080_blog
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2019-02-19 12:25:40 +0100
committerMiguel <m.i@gmx.at>2019-02-19 12:25:40 +0100
commit5c530e67256f8ecbd93336ba4e876acbba73f716 (patch)
tree7744eed3a34d0a7c3ca6deddd71a02801858a767 /080_blog
parentb71633cad69d0b8fade8419cfd7a333615ad3aee (diff)
cleaning up more..
Diffstat (limited to '080_blog')
-rw-r--r--080_blog/00010_Various-Cheat-Sheets/00105_GNU-Screen-Multiplexer-Keyboard-Shortcuts/index.md (renamed from 080_blog/00105_GNU-Screen-Multiplexer-Keyboard-Shortcuts/index.md)18
-rw-r--r--080_blog/00010_Various-Cheat-Sheets/00110_Midnight-Commander-Cheatsheet/index.md61
-rw-r--r--080_blog/00010_Various-Cheat-Sheets/index.md3
-rw-r--r--080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/1.pngbin0 -> 90433 bytes
-rw-r--r--080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/2.pngbin0 -> 741047 bytes
-rw-r--r--080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/3.pngbin0 -> 743011 bytes
-rw-r--r--080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/4.pngbin0 -> 728056 bytes
-rw-r--r--080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/index.md (renamed from 080_blog/00035_Trumpet-in-Blender/index.md)10
-rw-r--r--080_blog/00020_3D-Art/index.md3
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/attack.png (renamed from 080_blog/0010_The-Old-Times/attack.png)bin25834 -> 25834 bytes
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/attack.zip (renamed from 080_blog/0010_The-Old-Times/attack.zip)bin26160 -> 26160 bytes
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/high1.png (renamed from 080_blog/0010_The-Old-Times/high1.png)bin169188 -> 169188 bytes
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/high2.png (renamed from 080_blog/0010_The-Old-Times/high2.png)bin89748 -> 89748 bytes
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/highway.zip (renamed from 080_blog/0010_The-Old-Times/highway.zip)bin2960639 -> 2960639 bytes
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/index.md (renamed from 080_blog/0010_The-Old-Times/index.md)0
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/naval.zip (renamed from 080_blog/0010_The-Old-Times/naval.zip)bin31425 -> 31425 bytes
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/naval1.png (renamed from 080_blog/0010_The-Old-Times/naval1.png)bin24910 -> 24910 bytes
-rw-r--r--080_blog/00030_Computer-Games/00010_The-Old-Times/naval2.png (renamed from 080_blog/0010_The-Old-Times/naval2.png)bin43527 -> 43527 bytes
-rw-r--r--080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-ASCII-Bars.pngbin0 -> 26480 bytes
-rw-r--r--080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-Animated-Display-Setup.pngbin0 -> 15425 bytes
-rw-r--r--080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-LCD-Panels.pngbin0 -> 28543 bytes
-rw-r--r--080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-Pixel-Display.pngbin0 -> 24105 bytes
-rw-r--r--080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/index.md (renamed from 080_blog/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/index.md)8
-rw-r--r--080_blog/00030_Computer-Games/index.md4
-rw-r--r--080_blog/00040_Haskell-Projects/00040_Graham-Scan-(Haskell)/index.md (renamed from 080_blog/00040_Graham-Scan-(Haskell)/index.md)0
-rw-r--r--080_blog/00040_Haskell-Projects/00065_Base64-Encoder-(Haskell)/index.md (renamed from 080_blog/00065_Base64-Encoder-(Haskell)/index.md)0
-rw-r--r--080_blog/00040_Haskell-Projects/00120_Lambda-Calculus-(Haskell)/index.md (renamed from 080_blog/00120_Lambda-Calculus-(Haskell)/index.md)0
-rw-r--r--080_blog/00040_Haskell-Projects/00130_Calculator-on-Parsec-and-GTK-(Haskell)/index.md (renamed from 080_blog/00130_Calculator-on-Parsec-and-GTK-(Haskell)/index.md)0
-rw-r--r--080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/SimpleSvg.hs179
-rw-r--r--080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/index.md (renamed from 080_blog/00140_Minimalistic-SVG-Generator-(Haskell)/index.md)13
-rw-r--r--080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/svg.pngbin0 -> 13130 bytes
-rw-r--r--080_blog/00040_Haskell-Projects/100_Static-Page-Maker-in-Haskell/index.md (renamed from 080_blog/100_Static-Page-Maker-in-Haskell/index.md)0
-rw-r--r--080_blog/00040_Haskell-Projects/index.md4
-rw-r--r--080_blog/00090_Miguels-KVM-Adventures/index.md2
-rw-r--r--080_blog/00090_Miguels-KVM-Adventures/ipv4.pngbin0 -> 123475 bytes
-rw-r--r--080_blog/00110_Midnight-Commander-Cheatsheet/index.md74
-rw-r--r--080_blog/00_garbage/00010_Monospace-Font-Bitmap-Generator/index.md (renamed from 080_blog/00_Old-And-Outdated/00010_Monospace-Font-Bitmap-Generator/index.md)0
-rw-r--r--080_blog/00_garbage/00020_About-Software-Fools/index.md (renamed from 080_blog/00020_About-Software-Fools/index.md)0
-rw-r--r--080_blog/00_garbage/00020_Notes-on-Mail-Clients/index.md (renamed from 080_blog/00_Old-And-Outdated/00020_Notes-on-Mail-Clients/index.md)0
-rw-r--r--080_blog/00_garbage/00025_Open-Source-Gaming-on-Linux/index.md (renamed from 080_blog/00025_Open-Source-Gaming-on-Linux/index.md)0
-rw-r--r--080_blog/00_garbage/index.md (renamed from 080_blog/00_Old-And-Outdated/index.md)0
-rw-r--r--080_blog/0100_Webkit-Keyboardless-Navigation/index.md4
42 files changed, 278 insertions, 105 deletions
diff --git a/080_blog/00105_GNU-Screen-Multiplexer-Keyboard-Shortcuts/index.md b/080_blog/00010_Various-Cheat-Sheets/00105_GNU-Screen-Multiplexer-Keyboard-Shortcuts/index.md
index 01bbb09..80b24b1 100644
--- a/080_blog/00105_GNU-Screen-Multiplexer-Keyboard-Shortcuts/index.md
+++ b/080_blog/00010_Various-Cheat-Sheets/00105_GNU-Screen-Multiplexer-Keyboard-Shortcuts/index.md
@@ -1,16 +1,16 @@
-GNU Screen - multiplexer - Keyboard Shortcuts
------------------------------------------
+GNU Screen - Keyboard Shortcuts
+=============================================
- March 12, 2015
-
- Invocation
+Invocation
+----------
$ screen [-S session_name] # simply start new session
$ screen -ls # lists sessions
$ screen -r session_name # resume detached session
$ screen -d -R session_name # resume session (also detach or create)
$ screen -d -RR #resume first session
- Shortcuts
+Shortcuts
+---------
ctrl-a c NEW WINDOW
ctrl-a n / ctrl-a p NEXT/PREVIOUS
ctrl-a d DETACH
@@ -29,7 +29,8 @@ GNU Screen - multiplexer - Keyboard Shortcuts
ctrl-a esc COPY/SCROLLBACK MODE
- Layout Commands
+Layout Commands
+---------------
ctrl-a : #enter command mode
:layout new [title]
:layout remove [n|title]
@@ -37,5 +38,6 @@ GNU Screen - multiplexer - Keyboard Shortcuts
:layout prev
:layout show #list layouts
- Ref
+Reference
+---------
[1] $ man screen
diff --git a/080_blog/00010_Various-Cheat-Sheets/00110_Midnight-Commander-Cheatsheet/index.md b/080_blog/00010_Various-Cheat-Sheets/00110_Midnight-Commander-Cheatsheet/index.md
new file mode 100644
index 0000000..eedc66a
--- /dev/null
+++ b/080_blog/00010_Various-Cheat-Sheets/00110_Midnight-Commander-Cheatsheet/index.md
@@ -0,0 +1,61 @@
+###>>>KWD midnight commander cheatsheet, mc cheatsheet, mc shortcuts, midnight commander shortcuts
+###>>>DSC Cheatsheet for Midnight Commander summarizing the most useful shortcuts.
+Midnight Commander Cheatsheet
+=============================
+
+A short cheat-sheet summarizing midnight commander's most useful shortcut keys.
+
+Basic Navigation
+----------------
+ tab switch active panel
+ up/down select previous/next rown
+ return open selected directory
+ alt-o open selected directory on other panel
+
+View
+----
+ alt-. toggle hidden files
+ ctrl-o toggle console
+ alt-t toggle listing mode
+ alt-i sync with other panel
+ ctrl-u swap panels
+
+Miscellaneous
+-------------
+ shift-f6 rename, filling in the current filename
+ insert/ctrl-t/+/\/* selections
+ esc-tab auto complete
+ ctrl-enter / alt-enter copy currently selected filename to console
+ Ctrl + Shift + Enter copy full path
+
+ alt-shift-h show dir history
+ alt-y/alt-u navigate history
+
+ alt+?/alt-s/ctrl-s searches
+
+ ctrl-space calculte size
+ ctrl - x c chmod
+ ctrl - x o chown
+
+Troubleshooting / Extras
+------------------------
+Adding this to your _.bashrc_ will let _mc_ stay in the current directory after exiting:
+
+ alias mc='. /usr/libexec/mc/mc-wrapper.sh'
+
+I run _midgnight commander_ inside _tmux_ and the shifted function keys did not work as
+expected. Use midnight commanders _Learn Keys_ dialog to fix this.
+
+Set default viewer for pdf:
+
+ xdg-mime default evince.desktop application/pdf
+
+Set default editor:
+
+ alias mc='EDITOR=vim'
+
+Reference
+---------
+
+* http://klimer.eu/2015/05/01/use-midnight-commander-like-a-pro/
+* man mc
diff --git a/080_blog/00010_Various-Cheat-Sheets/index.md b/080_blog/00010_Various-Cheat-Sheets/index.md
new file mode 100644
index 0000000..ee779fa
--- /dev/null
+++ b/080_blog/00010_Various-Cheat-Sheets/index.md
@@ -0,0 +1,3 @@
+Cheat Sheets
+============
+A growing collection of some of my cheat sheets.
diff --git a/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/1.png b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/1.png
new file mode 100644
index 0000000..4a28a5b
--- /dev/null
+++ b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/1.png
Binary files differ
diff --git a/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/2.png b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/2.png
new file mode 100644
index 0000000..980bef5
--- /dev/null
+++ b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/2.png
Binary files differ
diff --git a/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/3.png b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/3.png
new file mode 100644
index 0000000..6deb011
--- /dev/null
+++ b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/3.png
Binary files differ
diff --git a/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/4.png b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/4.png
new file mode 100644
index 0000000..90c2d8a
--- /dev/null
+++ b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/4.png
Binary files differ
diff --git a/080_blog/00035_Trumpet-in-Blender/index.md b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/index.md
index e1a9953..fab8cab 100644
--- a/080_blog/00035_Trumpet-in-Blender/index.md
+++ b/080_blog/00020_3D-Art/00035_A-quick-Trumpet-in-Blender/index.md
@@ -1,4 +1,4 @@
-hear the trumpets hear the pipers
+Hear the Trumpets hear the Pipers
=================================
November 9, 2017
Today morning I was playing with blender’s cycles “material nodes”, the “sub-surf modifier” and the “depth of field” camera setting.
@@ -7,19 +7,19 @@ I modeled a simple trumpet by extruding some cylinders and used the Diffuse and
**Extruded** and scaled some basic **cylinders** to get a simple (yet unfinished) trumpet:
-![](/DATA/3d/trumpet/1.png){.img-fluid}
+![](1.png){.img-fluid}
Added **materials**:
-![](/DATA/3d/trumpet/2.png){.img-fluid}
+![](2.png){.img-fluid}
Added the **subsurf** modifier:
-![](/DATA/3d/trumpet/3.png){.img-fluid}
+![](3.png){.img-fluid}
Configured **depth of field**:
-![](/DATA/3d/trumpet/4.png){.img-fluid}
+![](4.png){.img-fluid}
Voila, ... it's alpha and omega's kingdom come.
diff --git a/080_blog/00020_3D-Art/index.md b/080_blog/00020_3D-Art/index.md
new file mode 100644
index 0000000..b840fc7
--- /dev/null
+++ b/080_blog/00020_3D-Art/index.md
@@ -0,0 +1,3 @@
+3D Art
+======
+Some of my three dimensional creations, mostly in Blender.
diff --git a/080_blog/0010_The-Old-Times/attack.png b/080_blog/00030_Computer-Games/00010_The-Old-Times/attack.png
index 7c83d63..7c83d63 100644
--- a/080_blog/0010_The-Old-Times/attack.png
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/attack.png
Binary files differ
diff --git a/080_blog/0010_The-Old-Times/attack.zip b/080_blog/00030_Computer-Games/00010_The-Old-Times/attack.zip
index 2d09784..2d09784 100644
--- a/080_blog/0010_The-Old-Times/attack.zip
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/attack.zip
Binary files differ
diff --git a/080_blog/0010_The-Old-Times/high1.png b/080_blog/00030_Computer-Games/00010_The-Old-Times/high1.png
index 93ebf07..93ebf07 100644
--- a/080_blog/0010_The-Old-Times/high1.png
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/high1.png
Binary files differ
diff --git a/080_blog/0010_The-Old-Times/high2.png b/080_blog/00030_Computer-Games/00010_The-Old-Times/high2.png
index c94a5ef..c94a5ef 100644
--- a/080_blog/0010_The-Old-Times/high2.png
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/high2.png
Binary files differ
diff --git a/080_blog/0010_The-Old-Times/highway.zip b/080_blog/00030_Computer-Games/00010_The-Old-Times/highway.zip
index ffc7d7b..ffc7d7b 100644
--- a/080_blog/0010_The-Old-Times/highway.zip
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/highway.zip
Binary files differ
diff --git a/080_blog/0010_The-Old-Times/index.md b/080_blog/00030_Computer-Games/00010_The-Old-Times/index.md
index 192a1c7..192a1c7 100644
--- a/080_blog/0010_The-Old-Times/index.md
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/index.md
diff --git a/080_blog/0010_The-Old-Times/naval.zip b/080_blog/00030_Computer-Games/00010_The-Old-Times/naval.zip
index 6155a1e..6155a1e 100644
--- a/080_blog/0010_The-Old-Times/naval.zip
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/naval.zip
Binary files differ
diff --git a/080_blog/0010_The-Old-Times/naval1.png b/080_blog/00030_Computer-Games/00010_The-Old-Times/naval1.png
index d351629..d351629 100644
--- a/080_blog/0010_The-Old-Times/naval1.png
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/naval1.png
Binary files differ
diff --git a/080_blog/0010_The-Old-Times/naval2.png b/080_blog/00030_Computer-Games/00010_The-Old-Times/naval2.png
index fb45276..fb45276 100644
--- a/080_blog/0010_The-Old-Times/naval2.png
+++ b/080_blog/00030_Computer-Games/00010_The-Old-Times/naval2.png
Binary files differ
diff --git a/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-ASCII-Bars.png b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-ASCII-Bars.png
new file mode 100644
index 0000000..812e22e
--- /dev/null
+++ b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-ASCII-Bars.png
Binary files differ
diff --git a/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-Animated-Display-Setup.png b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-Animated-Display-Setup.png
new file mode 100644
index 0000000..e923382
--- /dev/null
+++ b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-Animated-Display-Setup.png
Binary files differ
diff --git a/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-LCD-Panels.png b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-LCD-Panels.png
new file mode 100644
index 0000000..26ef16b
--- /dev/null
+++ b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-LCD-Panels.png
Binary files differ
diff --git a/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-Pixel-Display.png b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-Pixel-Display.png
new file mode 100644
index 0000000..fc50dd0
--- /dev/null
+++ b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/Space-Engineers-Pixel-Display.png
Binary files differ
diff --git a/080_blog/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/index.md b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/index.md
index 12afa86..7786555 100644
--- a/080_blog/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/index.md
+++ b/080_blog/00030_Computer-Games/00100_Monospaced-Font-and-Pixel-Display-for-Space-Engineers/index.md
@@ -3,7 +3,7 @@
# Monospaced Font and Pixel Display for Space Engineers
<p class="text-secondary">September 23, 2016</p>
<figure class="text-center">
-![](/images/Space-Engineers/Space-Engineers-Pixel-Display.png){.img-fluid .rounded alt="Closeup of standard Space Engineers LCD Panel, showing pink letters. Single Pixels can be determined." title="Pink is the color of passion"}
+![](Space-Engineers-Pixel-Display.png){.img-fluid .rounded alt="Closeup of standard Space Engineers LCD Panel, showing pink letters. Single Pixels can be determined." title="Pink is the color of passion"}
<figcaption class="text-secondary">
Standard LCD Panel displaying monospaced text.
</figcaption>
@@ -25,14 +25,14 @@ The class can be easily embedded in your programmable blocks and allows simulati
First admire a few screenshot to get a first impression:
<figure class="text-center">
-![](/images/Space-Engineers/Space-Engineers-ASCII-Bars.png){.img-fluid .rounded alt="A Space Engineers Console showcasing our Font. It displays some ASCII styled bars." title="The Monospaced Font in Action."}
+![](Space-Engineers-ASCII-Bars.png){.img-fluid .rounded alt="A Space Engineers Console showcasing our Font. It displays some ASCII styled bars." title="The Monospaced Font in Action."}
<figcaption class="text-secondary">
Status bars showing normal and inverted font.
</figcaption>
</figure>
<figure class="text-center">
-![](/images/Space-Engineers/Space-Engineers-LCD-Panels.png){.img-fluid .rounded alt="Two adjacent Space Engineers Consoles. One shows a sinus wave, demonstrating pixel precise output."}
+![](Space-Engineers-LCD-Panels.png){.img-fluid .rounded alt="Two adjacent Space Engineers Consoles. One shows a sinus wave, demonstrating pixel precise output."}
<figcaption class="text-secondary">
The Display to the right demonstrates animated pixel precise output.
</figcaption>
@@ -52,7 +52,7 @@ The class exposes the following public methods:
## Pixel Display supports Animations
<figure class="text-center">
-![](/images/Space-Engineers/Space-Engineers-Animated-Display-Setup.png){.img-fluid .rounded alt="Complete setup with 3 Panels a timer block and a programmable block"}
+![](Space-Engineers-Animated-Display-Setup.png){.img-fluid .rounded alt="Complete setup with 3 Panels a timer block and a programmable block"}
<figcaption class="text-secondary">
A complete Setup featuring 3 LCD Panels and supporting blocks.
</figcaption>
diff --git a/080_blog/00030_Computer-Games/index.md b/080_blog/00030_Computer-Games/index.md
new file mode 100644
index 0000000..914d7d3
--- /dev/null
+++ b/080_blog/00030_Computer-Games/index.md
@@ -0,0 +1,4 @@
+Computer Games
+==============
+This section holds various content related to computer games.
+Be it simple games, mods or notes ...
diff --git a/080_blog/00040_Graham-Scan-(Haskell)/index.md b/080_blog/00040_Haskell-Projects/00040_Graham-Scan-(Haskell)/index.md
index 195dbe1..195dbe1 100644
--- a/080_blog/00040_Graham-Scan-(Haskell)/index.md
+++ b/080_blog/00040_Haskell-Projects/00040_Graham-Scan-(Haskell)/index.md
diff --git a/080_blog/00065_Base64-Encoder-(Haskell)/index.md b/080_blog/00040_Haskell-Projects/00065_Base64-Encoder-(Haskell)/index.md
index 830ed8d..830ed8d 100644
--- a/080_blog/00065_Base64-Encoder-(Haskell)/index.md
+++ b/080_blog/00040_Haskell-Projects/00065_Base64-Encoder-(Haskell)/index.md
diff --git a/080_blog/00120_Lambda-Calculus-(Haskell)/index.md b/080_blog/00040_Haskell-Projects/00120_Lambda-Calculus-(Haskell)/index.md
index 25c6b83..25c6b83 100644
--- a/080_blog/00120_Lambda-Calculus-(Haskell)/index.md
+++ b/080_blog/00040_Haskell-Projects/00120_Lambda-Calculus-(Haskell)/index.md
diff --git a/080_blog/00130_Calculator-on-Parsec-and-GTK-(Haskell)/index.md b/080_blog/00040_Haskell-Projects/00130_Calculator-on-Parsec-and-GTK-(Haskell)/index.md
index 9701481..9701481 100644
--- a/080_blog/00130_Calculator-on-Parsec-and-GTK-(Haskell)/index.md
+++ b/080_blog/00040_Haskell-Projects/00130_Calculator-on-Parsec-and-GTK-(Haskell)/index.md
diff --git a/080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/SimpleSvg.hs b/080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/SimpleSvg.hs
new file mode 100644
index 0000000..7b44557
--- /dev/null
+++ b/080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/SimpleSvg.hs
@@ -0,0 +1,179 @@
+--
+-- Miguel's Simple SVG Generator
+--
+-- Author: Michal Idziorek <m.i@gmx.at>
+-- Last Update: May 11th, 2018
+--
+
+{-# LANGUAGE ExistentialQuantification #-}
+
+module SimpleSvg (
+
+ svgExample1 -- predefined example canvas
+ -- you can generate the output string via:
+ -- putStr $ svgGenerate svgExample1
+
+ ,svgGenerate -- canvas to svg
+
+ ,svgEmpty -- empty canvas
+ ,svgAdd -- add to canvas (single)
+ ,svgAddList -- add to canvas (list)
+
+ ,svgCircle -- circle
+ ,svgLine -- line
+ ,svgTriangle -- trianvle
+
+ ,svgFilledCircle -- filled circle
+ ,svgFilledLine -- filled line
+ ,svgFilledTriangle -- filled trianvle
+
+ ,svgColor -- colors and shades of gray
+ ,svgRed
+ ,svgGreen
+ ,svgBlue
+ ,svgWhite
+ ,svgBlack
+ ,svgShGray
+
+
+ ,svgRedLine -- red line
+ ,svgBluePoint -- small blue circle
+ ,svgGreenTriangle -- green triangle
+
+
+ ) where
+
+-- CONFIG --
+
+svgStrokeWidth = 2
+
+-- EXAMPLE CANVAS --
+
+-- Demonstrating how to add a few objects to a light gray 300x200 canvas
+
+svgExample1 = svgAddList (svgEmpty (svgShGray 200) 300 200) $
+ [ svgRedLine (0,0) (200,200)
+ ,svgRedLine (300,0) (100,200)
+ ,svgBluePoint (33,133)
+ ,svgBluePoint (33,22)
+ ,svgBluePoint (66,25)
+ ,svgFilledTriangle svgBlack svgWhite (20,20) (100,100) (10,90)
+ ,svgFilledCircle svgWhite svgGreen (150,120) 30
+ ]++
+ map (svgBluePoint . (,) 250) [50,60..150]
+
+
+-- SHAPES --
+
+-- A few predefined shapes easing a quickstart as well as serving as an
+-- example, for how to define them in your own code.
+
+svgRedLine = svgLine svgRed
+svgBluePoint pos = svgCircle svgBlue pos 2
+svgGreenTriangle = svgTriangle svgGreen
+
+
+-- Shape construction
+
+svgLine c (x1,y1) (x2,y2) =
+ svgShape c (SvgLine (svgCoord x1 y1) (svgCoord x2 y2))
+
+svgCircle c (x,y) r =
+ svgShape c (SvgCircle (svgCoord x y) r)
+
+svgTriangle c (x1,y1) (x2,y2) (x3,y3)=
+ svgShape c (SvgTriangle (svgCoord x1 y1) (svgCoord x2 y2) (svgCoord x3 y3))
+
+svgFilledLine c1 c2 (x1,y1) (x2,y2) =
+ svgFilledShape c1 c2 (SvgLine (svgCoord x1 y1) (svgCoord x2 y2))
+
+svgFilledCircle c1 c2 (x,y) r =
+ svgFilledShape c1 c2 (SvgCircle (svgCoord x y) r)
+
+svgFilledTriangle c1 c2 (x1,y1) (x2,y2) (x3,y3)=
+ svgFilledShape c1 c2 (SvgTriangle (svgCoord x1 y1) (svgCoord x2 y2) (svgCoord x3 y3))
+
+svgShape c1 = SvgPrim c1 (svgNoFill)
+svgFilledShape c1 c2 = SvgPrim c1 (svgFill c2)
+
+-- CANVAS --
+
+data SvgCanvas = SvgCanvas SvgColor Int Int [SvgPrim]
+
+svgEmpty c w h = SvgCanvas c w h []
+svgAdd (SvgCanvas c w h xs) x = SvgCanvas c w h (x:xs)
+svgAddList (SvgCanvas c w h xs) ys = SvgCanvas c w h (reverse ys++xs)
+
+svgGenerate (SvgCanvas col width height prims) =
+ xml_enc "svg" [("height",show height),("width", show width),
+ ("style","background-color:"++svgGenColor col)]
+ body
+ where body = foldl f "" prims
+ f a x = primToSvg x++a
+
+-- COLORS --
+
+-- color type along with a few predefined colors to work with
+
+newtype SvgColor = SvgColor (Int,Int,Int)
+svgColor r g b = SvgColor (r,g,b)
+svgRed = svgColor 255 0 0
+svgBlue = svgColor 0 0 255
+svgGreen = svgColor 0 255 0
+svgShGray v = svgColor v v v
+svgBlack = svgShGray 0
+svgWhite = svgShGray 255
+
+svgGenColor (SvgColor (r,g,b)) = "rgb("++show r++","++show g++","++show b++")"
+
+-- the fill color is wrapped inside a Maybe type, since it is optional
+
+newtype SvgFill = SvgFill (Maybe SvgColor)
+svgFill col = SvgFill (Just col)
+svgNoFill = SvgFill Nothing
+
+-- SHAPES --
+
+-- A class for shapes that we want to transform into SVG
+-- We define instances for circle, line and triangle
+-- The 2D coordinates are wrapped inside a newtype SvgCoord
+
+newtype SvgCoord = SvgCoord (Double,Double)
+svgCoord x y = SvgCoord (x,y)
+
+data SvgPrim = forall a.SvgPrimClass a => SvgPrim SvgColor SvgFill a
+
+class SvgPrimClass a where
+ getSvg :: a->(String,[(String,String)])
+
+data SvgCircle = SvgCircle SvgCoord Double
+instance SvgPrimClass SvgCircle where
+ getSvg (SvgCircle (SvgCoord (x,y)) r) =
+ ("circle", [("cx",show x),("cy",show y),("r",show r)])
+
+data SvgLine = SvgLine SvgCoord SvgCoord
+instance SvgPrimClass SvgLine where
+ getSvg (SvgLine (SvgCoord (x1,y1)) (SvgCoord (x2,y2))) =
+ ("line", [("x1",show x1),("y1",show y1),
+ ("x2",show x2),("y2",show y2)])
+
+data SvgTriangle = SvgTriangle SvgCoord SvgCoord SvgCoord
+instance SvgPrimClass SvgTriangle where
+ getSvg (SvgTriangle (SvgCoord (x1,y1)) (SvgCoord (x2,y2)) (SvgCoord (x3,y3))) =
+ ("polygon", [("points",pts)])
+ where pts=show x1++","++show y1++" "++
+ show x2++","++show y2++" "++
+ show x3++","++show y3
+
+-- transform single primitve to SVG
+primToSvg (SvgPrim col (SvgFill fill) prim) = xml_enc tag (attrs++attrs2) ""
+ where (tag, attrs)=getSvg prim
+ attrs2=[ ("fill",maybe "none" svgGenColor fill)
+ ,("stroke",svgGenColor col)
+ ,("stroke-width",show svgStrokeWidth)]
+
+-- XML ENCODER --
+
+xml_enc tag attrs body = "<"++tag++" "++xml_attrs++">"++body++"</"++tag++">"
+ where xml_attrs = unlines $ map xml_attr attrs
+ xml_attr (a,v) = a++"=\""++v++"\" "
diff --git a/080_blog/00140_Minimalistic-SVG-Generator-(Haskell)/index.md b/080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/index.md
index b03fe16..8211ba2 100644
--- a/080_blog/00140_Minimalistic-SVG-Generator-(Haskell)/index.md
+++ b/080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/index.md
@@ -23,18 +23,9 @@ svgExample1 = svgAddList (svgEmpty (svgShGray 200) 300 200) $
map (svgBluePoint . (,) 250) [50,60..150]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-![](/DATA/haskell/svg/svg.png){.img-fluid .border}
+![](svg.png){.img-fluid .border}
Source Files
------------
-* [SimpleSvg.hs](/DATA/haskell/svg/SimpleSvg.hs)
-
-SimpleSvg.hs Listing
----------------
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.haskell .numberLines}
-{BEGIN:SOURCE}
-./DATA/haskell/svg/SimpleSvg.hs
-{END:SOURCE}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* [SimpleSvg.hs](SimpleSvg.hs)
diff --git a/080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/svg.png b/080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/svg.png
new file mode 100644
index 0000000..d679fad
--- /dev/null
+++ b/080_blog/00040_Haskell-Projects/00140_Minimalistic-SVG-Generator-(Haskell)/svg.png
Binary files differ
diff --git a/080_blog/100_Static-Page-Maker-in-Haskell/index.md b/080_blog/00040_Haskell-Projects/100_Static-Page-Maker-in-Haskell/index.md
index 0619078..0619078 100644
--- a/080_blog/100_Static-Page-Maker-in-Haskell/index.md
+++ b/080_blog/00040_Haskell-Projects/100_Static-Page-Maker-in-Haskell/index.md
diff --git a/080_blog/00040_Haskell-Projects/index.md b/080_blog/00040_Haskell-Projects/index.md
new file mode 100644
index 0000000..5a0766d
--- /dev/null
+++ b/080_blog/00040_Haskell-Projects/index.md
@@ -0,0 +1,4 @@
+Haskell
+=======
+
+Some of my small and tiny Haskell creations and notes.
diff --git a/080_blog/00090_Miguels-KVM-Adventures/index.md b/080_blog/00090_Miguels-KVM-Adventures/index.md
index 7f50c76..f69989b 100644
--- a/080_blog/00090_Miguels-KVM-Adventures/index.md
+++ b/080_blog/00090_Miguels-KVM-Adventures/index.md
@@ -122,7 +122,7 @@ Make sure to adapt the boot order in the os section by adding an appropriate lin
## Networking
Since my primary interface to the virtual machines is SSH, reliable network connectivity is one of the primary foci. IPv4 addresses became scarse so we will not waste any for the host systems virbr1 or eth0. The following diagram illustrates my IPv4 setup of a simple arp proxy utilizing ipv4 forwarding. The guests use their public ipv4 addreses and the ips of the hosts gateway.
-![](/DATA/kvm/ipv4.png){.img-fluid}
+![](ipv4.png){.img-fluid}
There is no need to save address space in case of IPv6 since we have a complete /64 IPv6 subnet at our disposal. While only a few guests are accessible by their IPv4 public addresses directly, we have virtually an infinite number of IPv6 addresses. Sidenote: One single /64 IPv6 subnet consists of 2^64 different addresses, which is over four billion times more than there are IPv4 addresses in the whole world! I use just the lower /65 half of our /64 subnet for the guests while the IPv6 address of the hosts NIC lies in the upper half.
diff --git a/080_blog/00090_Miguels-KVM-Adventures/ipv4.png b/080_blog/00090_Miguels-KVM-Adventures/ipv4.png
new file mode 100644
index 0000000..3dac4ed
--- /dev/null
+++ b/080_blog/00090_Miguels-KVM-Adventures/ipv4.png
Binary files differ
diff --git a/080_blog/00110_Midnight-Commander-Cheatsheet/index.md b/080_blog/00110_Midnight-Commander-Cheatsheet/index.md
deleted file mode 100644
index 5f9ed13..0000000
--- a/080_blog/00110_Midnight-Commander-Cheatsheet/index.md
+++ /dev/null
@@ -1,74 +0,0 @@
-###>>>KWD midnight commander cheatsheet, mc cheatsheet, mc shortcuts, midnight commander shortcuts
-###>>>DSC Cheatsheet for Midnight Commander summarizing the most useful shortcuts.
-Midnight Commander Cheatsheet
-=============================
-
- June 07, 2018
-
-A short cheatsheet summarizing midnight commander's most useful shortcut keys.
-
-Basic Navigation
-----------------
-<div class="row">
-<div class="col-2"><span class="px-2 bg-primary text-white">tab</span></div>
-<div class="col-10">switch active panel</div>
-</div>
-
-<div class="row">
-<div class="col-2"><span class="px-2 bg-primary text-white">up/down</span></div>
-<div class="col-10">select previous/next rown</div>
-</div>
-<div class="row">
-<div class="col-2"><span class="px-2 bg-primary text-white">return</span></div>
-<div class="col-10">open selected directory</div>
-</div>
-<div class="row">
-<div class="col-2"><span class="px-2 bg-primary text-white">alt-o</span></div>
-<div class="col-10">open selected directory on other panel</div>
-</div>
-<!--
-<table class="table">
-<tbody>
-<tr><td><span class="px-2 bg-primary text-white">up/down</span></td><td> select previous/next row</td></tr>
-<tr><td><span class="px-2 bg-primary text-white">return</span></td><td> open selected directory</td></tr>
-<tr><td><span class="px-2 bg-primary text-white">alt-o</span></td><td> open selected directory on other panel</td></tr>
-</tbody>
-</table>
--->
-
-View
-----
-<div><span class="px-2 bg-primary text-white">alt-.</span> toggle hidden files</div>
-<div><span class="px-2 bg-primary text-white">ctrl-o</span> toggle console</div>
-<div><span class="px-2 bg-primary text-white">alt-t</span> toggle listing mode</div>
-<div><span class="px-2 bg-primary text-white">alt-i</span> sync with other panel</div>
-<div><span class="px-2 bg-primary text-white">ctrl-u</span> swap panels</div>
-
-Miscellaneous
--------------
- shift-f6 rename filling in the current name
- insert/ctrl-t/+/\/* - selections
- esc-tab auto complete
- ctrl-enter / alt-enter - copy currently selected filename to console
- Ctrl + Shift + Enter - copy full path
- enter/f3/f4 - ??? how to have full control over behaviour.. debian? notes./.
- xdg-mime default evince.desktop application/pdf
- alias mc='EDITOR=vim'
-
- alt-shift-h show dir history
- alt-y/alt-u (navigate history?)
-
- alt+?/alt-s/ctrl-s search
-
- ctrl-space calc size
- ctrl - x c chmod
- ctrl - x o chown
-
- alias mc='. /usr/libexec/mc/mc-wrapper.sh' - will stay in dir after exit
-
- Ref: http://klimer.eu/2015/05/01/use-midnight-commander-like-a-pro/
- man mc
- ...
-
-NOTE: I run mc inside tmux and the shifted function keys did not work as
-expected. Use midnight commanders Learn Keys dialog to fix this
diff --git a/080_blog/00_Old-And-Outdated/00010_Monospace-Font-Bitmap-Generator/index.md b/080_blog/00_garbage/00010_Monospace-Font-Bitmap-Generator/index.md
index 3df7719..3df7719 100644
--- a/080_blog/00_Old-And-Outdated/00010_Monospace-Font-Bitmap-Generator/index.md
+++ b/080_blog/00_garbage/00010_Monospace-Font-Bitmap-Generator/index.md
diff --git a/080_blog/00020_About-Software-Fools/index.md b/080_blog/00_garbage/00020_About-Software-Fools/index.md
index 394b67e..394b67e 100644
--- a/080_blog/00020_About-Software-Fools/index.md
+++ b/080_blog/00_garbage/00020_About-Software-Fools/index.md
diff --git a/080_blog/00_Old-And-Outdated/00020_Notes-on-Mail-Clients/index.md b/080_blog/00_garbage/00020_Notes-on-Mail-Clients/index.md
index 68a7be8..68a7be8 100644
--- a/080_blog/00_Old-And-Outdated/00020_Notes-on-Mail-Clients/index.md
+++ b/080_blog/00_garbage/00020_Notes-on-Mail-Clients/index.md
diff --git a/080_blog/00025_Open-Source-Gaming-on-Linux/index.md b/080_blog/00_garbage/00025_Open-Source-Gaming-on-Linux/index.md
index 38a6311..38a6311 100644
--- a/080_blog/00025_Open-Source-Gaming-on-Linux/index.md
+++ b/080_blog/00_garbage/00025_Open-Source-Gaming-on-Linux/index.md
diff --git a/080_blog/00_Old-And-Outdated/index.md b/080_blog/00_garbage/index.md
index 3055918..3055918 100644
--- a/080_blog/00_Old-And-Outdated/index.md
+++ b/080_blog/00_garbage/index.md
diff --git a/080_blog/0100_Webkit-Keyboardless-Navigation/index.md b/080_blog/0100_Webkit-Keyboardless-Navigation/index.md
index a56a377..5299563 100644
--- a/080_blog/0100_Webkit-Keyboardless-Navigation/index.md
+++ b/080_blog/0100_Webkit-Keyboardless-Navigation/index.md
@@ -10,9 +10,9 @@ as a web extension.
I use simple unix pipes for communication between the
main thread and my webextension.
-Please note that this is a work in progress!
+__Please note that this is a work in progress!__
-You can take a look at both branches at my github repo: [https://github.com/miguelclean/surf-webext-dom](https://github.com/miguelclean/surf-webext-dom).
+You can take a look at both branches at my git repo: [https://gitweb.softwarefools.com/?p=miguel/surf-webext-dom.git](https://gitweb.softwarefools.com/?p=miguel/surf-webext-dom.git).
The DOM is manipulated on the fly by the browser without any JavaScript involved.