a lot of changes at once

This commit is contained in:
Thomas Ruoff
2019-09-12 20:49:42 +02:00
parent efb5ce3188
commit 34e9d844f1
7 changed files with 997 additions and 11 deletions

236
.export/bw-functions.html Normal file
View File

@@ -0,0 +1,236 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>bw-cloud-functions</title>
<meta name="author" content="(Thomas Ruoff)"/>
<style type="text/css">
.underline { text-decoration: underline; }
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@3/css/reveal.css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@3/css/theme/solarized.css" id="theme"/>
<link rel="stylesheet" href="./local.css"/>
<!-- If the query includes 'print-pdf', include the PDF print sheet -->
<script>
if( window.location.search.match( /print-pdf/gi ) ) {
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'https://cdn.jsdelivr.net/npm/reveal.js@3/css/print/pdf.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
}
</script>
<meta name="description" content="">
</head>
<body>
<div class="reveal">
<div class="slides">
<section id="sec-title-slide"><h1 class="title">bw-cloud-functions</h1><h2 class="author">Thomas Ruoff</h2><p class="date">Created: 2019-08-13 Tue 23:18</p>
</section>
<section>
<section id="slide-org27d6d8f">
<h2 id="org27d6d8f">Logos in Analytics</h2>
<p>
A Logo Query contains a set of logo versions.
</p>
<p>
Our backend identifies them by an URL that resolves with a PNG of that logo
version.
</p>
<p>
The URL and the PNG is controlled by Logograb (our logo detection provider).
</p>
</section>
</section>
<section>
<section id="slide-org6deced3">
<h2 id="org6deced3">Showing Logos in Analytics</h2>
<p>
We show the logo versions in various places in Analytics, also in the chart exports.
</p>
<p>
Though the PNGs used by Logograb are not optimized for displaying, especially
not on a whitish background.
</p>
</section>
</section>
<section>
<section id="slide-org0dfade8">
<h2 id="org0dfade8">1st try</h2>
<p>
Detect whitish logos in the client and add a dark background if it&rsquo;s a whitish
logo.
</p>
</section>
</section>
<section>
<section id="slide-org7c6f587">
<h3 id="org7c6f587">Problems</h3>
<p>
Detection runs every single time a logo is shown.
</p>
<p>
It runs on the client.
</p>
<p>
We couldn&rsquo;t make it work in certain places, especially in highcharts and
obviously exported charts.
</p>
</section>
</section>
<section>
<section id="slide-org88ba199">
<h2 id="org88ba199">2nd try</h2>
<p>
Move the detection and conversion to the server.
</p>
</section>
</section>
<section>
<section id="slide-org691cc40">
<h3 id="org691cc40">Wins</h3>
<p>
Browser caches converted image.
</p>
<p>
Client stays slim.
</p>
<p>
We can just use an image URL in the frontend and chart export service.
</p>
</section>
</section>
<section>
<section id="slide-org15f1540">
<h3 id="org15f1540">Problems left</h3>
<p>
Requested logos are cached only in memory.
</p>
<p>
Not seperate
</p>
</section>
</section>
<section>
<section id="slide-orgaacc7a2">
<h2 id="orgaacc7a2">3rd try</h2>
<p>
Frontend was moved to CDN while this happend.
</p>
<p>
Cloudfront seemed to support what we needed: execute some JS when the response
of an origin came back, so we could place detection and conversion before
returning it to the client and storing it in the CDN.
</p>
</section>
</section>
<section>
<section id="slide-org159bd34">
<h3 id="org159bd34">no wins, just problems</h3>
<p>
Turns out no way even access on the body, so no way to detect nor modify that
body. :(
</p>
</section>
</section>
<section>
<section id="slide-org2d6b790">
<h2 id="org2d6b790">4th try</h2>
<p>
CDN directs logo URL calls directly to a cloud function.
</p>
<p>
We use <code>bw-cloud-functions</code> to implement conversion and detection.
</p>
</section>
</section>
<section>
<section id="slide-orgf53d241">
<h3 id="orgf53d241">wins</h3>
<p>
Re-used detection and conversion we already wrote in JS in the 2nd try.
</p>
<p>
Super easy deployment
</p>
<p>
Still makes it&rsquo;s way into the CDN store
</p>
</section>
</section>
<section>
<section id="slide-org9e9f30e">
<h3 id="org9e9f30e">problems left</h3>
<p>
Well, we misunderstood how a CDN actually works. It&rsquo;s NOT a storage as it
removes content that is not requested often enough in a region, so just a very
small TTL in the cache.
</p>
<p>
To be fair, it&rsquo;s not too bad the costs for all logo versions we currently get is
still pretty low and does not really justify to spend more time on it.
</p>
</section>
</section>
<section>
<section id="slide-org3b6aff9">
<h2 id="org3b6aff9">5th try (to be done)</h2>
<p>
Use cloud storage to store converted images and check there first, before doing
a <span class="underline">fetch, detect an maybe do a conversion</span> dance.
</p>
</section>
</section>
</div>
</div>
<p> Created by Thomas. </p>
<script src="https://cdn.jsdelivr.net/npm/reveal.js@3/js/reveal.js"></script>
<script>
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
width:1200, height:800, margin: 0.1, minScale:0.2, maxScale:2.5, transition:'cube', center: false,
multiplex: {
secret: '', // null if client
id: '', // id, obtained from socket.io server
url: '' // Location of socket.io server
},
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }]
});
</script>
</body>
</html>

382
.export/emacs.html Normal file
View File

@@ -0,0 +1,382 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title></title>
<style type="text/css">
.underline { text-decoration: underline; }
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@3/css/reveal.css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@3/css/theme/moon.css" id="theme"/>
<!-- If the query includes 'print-pdf', include the PDF print sheet -->
<script>
if( window.location.search.match( /print-pdf/gi ) ) {
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'https://cdn.jsdelivr.net/npm/reveal.js@3/css/print/pdf.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
}
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section id="sec-title-slide"><p class="date">Created: 2019-08-12 Mon 23:09</p>
</section>
<section id="table-of-contents">
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#/slide-org343fe85">1. to research</a>
<ul>
<li><a href="#/slide-orgced0244">1.1. backup file location configurable?</a></li>
<li><a href="#/slide-org2b841af">1.2. highlight line</a></li>
<li><a href="#/slide-orgecf44b7">1.3. git gutter needed</a></li>
<li><a href="#/slide-orgff30bba">1.4. what the hell is that footer thing you cannot edit?</a></li>
<li><a href="#/slide-orgb2f6dc7">1.5. <code>C-o</code> does not open last file, not sure why yet</a></li>
<li><a href="#/slide-orgd97863d">1.6. persistant undo possible?</a></li>
<li><a href="#/slide-org36078e6">1.7. helm/ivy - dash?</a></li>
<li><a href="#/slide-orge8841d4">1.8. gruvbox-theme</a></li>
<li><a href="#/slide-org3ababc1">1.9. which-key</a></li>
<li><a href="#/slide-org8092b31">1.10. magit</a></li>
<li><a href="#/slide-org5695222">1.11. language server protocol</a></li>
<li><a href="#/slide-org80a5c8f">1.12. vim-unimpaired ?</a></li>
<li><a href="#/slide-org6546912">1.13. vim-abolish ?</a></li>
<li><a href="#/slide-org9e62754">1.14. ranger/dired-ranger</a></li>
<li><a href="#/slide-org6a09d9f">1.15. devdocs</a></li>
</ul>
</li>
<li><a href="#/slide-orgb326385">2. installed packages</a>
<ul>
<li><a href="#/slide-orga4f6901">2.1. general</a>
<ul>
<li><a href="#/slide-orgb12a413">2.1.1. editorconfig</a></li>
<li><a href="#/slide-orgc2e7db4">2.1.2. helm</a></li>
<li><a href="#/slide-orgbd880b1">2.1.3. projectile</a></li>
<li><a href="#/slide-org5db7a6e">2.1.4. magit</a></li>
</ul>
</li>
<li><a href="#/slide-org0911a87">2.2. evil related</a>
<ul>
<li><a href="#/slide-org88b5166">2.2.1. evil</a></li>
<li><a href="#/slide-org1595b1a">2.2.2. evil-escape</a></li>
<li><a href="#/slide-orgd478ae2">2.2.3. evil-leader</a></li>
<li><a href="#/slide-orgf339492">2.2.4. evil-surround</a></li>
<li><a href="#/slide-org8d5c2cb">2.2.5. evil-magit</a></li>
<li><a href="#/slide-org0facc22">2.2.6. evil-org</a></li>
</ul>
</li>
<li><a href="#/slide-orgcf221ef">2.3. org-mode related</a>
<ul>
<li><a href="#/slide-org4e0872b">2.3.1. org-bullets</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#/slide-org09a2887">3. considering packages</a>
<ul>
<li><a href="#/slide-orge898fc9">3.1. general</a></li>
<li><a href="#/slide-org53a2f2d">3.2. evil related</a>
<ul>
<li><a href="#/slide-org1b2b54b">3.2.1. evil-args</a></li>
<li><a href="#/slide-org3762fc3">3.2.2. evil-matchit</a></li>
<li><a href="#/slide-orge864784">3.2.3. evil-collection</a></li>
</ul>
</li>
<li><a href="#/slide-org63b59bf">3.3. org-mode related</a>
<ul>
<li><a href="#/slide-org5b65d1e">3.3.1. org-download</a></li>
<li><a href="#/slide-org9a5ed25">3.3.2. org-gcal</a></li>
<li><a href="#/slide-org48db92a">3.3.3. org-jira</a></li>
<li><a href="#/slide-org4ac8396">3.3.4. org-projectile</a></li>
<li><a href="#/slide-orga7aafd3">3.3.5. org-pandoc</a></li>
<li><a href="#/slide-orgf844221">3.3.6. org-reveal</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</section>
<p>
To get a list of packages type <code>M-x list-packages</code>
</p>
<section>
<section id="slide-org343fe85">
<h2 id="org343fe85"><span class="section-number-2">1</span> to research</h2>
<div class="outline-text-2" id="text-1">
</div>
</section>
<section id="slide-orgced0244">
<h3 id="orgced0244"><span class="section-number-3">1.1</span> backup file location configurable?</h3>
</section>
<section id="slide-org2b841af">
<h3 id="org2b841af"><span class="section-number-3">1.2</span> highlight line</h3>
</section>
<section id="slide-orgecf44b7">
<h3 id="orgecf44b7"><span class="section-number-3">1.3</span> git gutter needed</h3>
</section>
<section id="slide-orgff30bba">
<h3 id="orgff30bba"><span class="section-number-3">1.4</span> what the hell is that footer thing you cannot edit?</h3>
</section>
<section id="slide-orgb2f6dc7">
<h3 id="orgb2f6dc7"><span class="section-number-3">1.5</span> <code>C-o</code> does not open last file, not sure why yet</h3>
</section>
<section id="slide-orgd97863d">
<h3 id="orgd97863d"><span class="section-number-3">1.6</span> persistant undo possible?</h3>
</section>
<section id="slide-org36078e6">
<h3 id="org36078e6"><span class="section-number-3">1.7</span> helm/ivy - dash?</h3>
<p>
Still trying to figure what use-case each of these tries to
solve. I&rsquo;m primarily looking for something that offers me an nice
interface to deal with all kind of lists of elements, like files,
buffers, commits, tags, grepper etc.
</p>
<p>
I used to cover that all with vim.fzf and would again like to have
something like that.
</p>
<p>
Though it seems, that I just need some inteface for lists of any
kind that I can easily fuzzy search.
</p>
<p>
And other plugins to actually provide the content.
</p>
</section>
<section id="slide-orge8841d4">
<h3 id="orge8841d4"><span class="section-number-3">1.8</span> gruvbox-theme</h3>
</section>
<section id="slide-org3ababc1">
<h3 id="org3ababc1"><span class="section-number-3">1.9</span> which-key</h3>
<p>
Seems great for learning the editor commands. But could also be
distracting
</p>
</section>
<section id="slide-org8092b31">
<h3 id="org8092b31"><span class="section-number-3">1.10</span> magit</h3>
</section>
<section id="slide-org5695222">
<h3 id="org5695222"><span class="section-number-3">1.11</span> language server protocol</h3>
<p>
Mainly for my JS work, but probably worth to look at something
generic if there is something out there.
</p>
</section>
<section id="slide-org80a5c8f">
<h3 id="org80a5c8f"><span class="section-number-3">1.12</span> vim-unimpaired ?</h3>
<p>
Couln&rsquo;t find something replicating unimpaired until now.
</p>
<p>
Maybe I just need to roll most of these on my own
</p>
</section>
<section id="slide-org6546912">
<h3 id="org6546912"><span class="section-number-3">1.13</span> vim-abolish ?</h3>
</section>
<section id="slide-org9e62754">
<h3 id="org9e62754"><span class="section-number-3">1.14</span> ranger/dired-ranger</h3>
</section>
<section id="slide-org6a09d9f">
<h3 id="org6a09d9f"><span class="section-number-3">1.15</span> devdocs</h3>
</section>
</section>
<section>
<section id="slide-orgb326385">
<h2 id="orgb326385"><span class="section-number-2">2</span> installed packages</h2>
<div class="outline-text-2" id="text-2">
</div>
</section>
<section id="slide-orga4f6901">
<h3 id="orga4f6901"><span class="section-number-3">2.1</span> general</h3>
<div class="outline-text-3" id="text-2-1">
</div>
</section>
<section id="slide-orgb12a413">
<h4 id="orgb12a413"><span class="section-number-4">2.1.1</span> editorconfig</h4>
</section>
<section id="slide-orgc2e7db4">
<h4 id="orgc2e7db4"><span class="section-number-4">2.1.2</span> helm</h4>
</section>
<section id="slide-orgbd880b1">
<h4 id="orgbd880b1"><span class="section-number-4">2.1.3</span> projectile</h4>
</section>
<section id="slide-org5db7a6e">
<h4 id="org5db7a6e"><span class="section-number-4">2.1.4</span> magit</h4>
</section>
<section id="slide-org0911a87">
<h3 id="org0911a87"><span class="section-number-3">2.2</span> evil related</h3>
<div class="outline-text-3" id="text-2-2">
</div>
</section>
<section id="slide-org88b5166">
<h4 id="org88b5166"><span class="section-number-4">2.2.1</span> evil</h4>
<p>
evil uses &ldquo;state&rdquo; for the &ldquo;modes&rdquo; in vi. The term &ldquo;mode&rdquo; is already used in emacs
for a set of key bindings for a cetrain sort of text. A &ldquo;mode&rsquo; may include custom
bindings for evil states.
</p>
<p>
The state is shown in the status bar.
</p>
<p>
There is also an emacs state &lt;E&gt;, basically turn off evil, which you can
toggle with &rsquo;C-z&rsquo;.
</p>
<p>
I&rsquo;ve heard numerous times that people claim evil covers 99% of what they use in vim.
[[evil-maps.el][~/.emacs.d/elpa/evil-20190729.704/evil-maps.el] is a good place
to start looking if something does not work for you.
</p>
</section>
<section id="slide-org1595b1a">
<h4 id="org1595b1a"><span class="section-number-4">2.2.2</span> evil-escape</h4>
</section>
<section id="slide-orgd478ae2">
<h4 id="orgd478ae2"><span class="section-number-4">2.2.3</span> evil-leader</h4>
<p>
I was first not sure if I should even start using the leader key
as I did in my vim config, as it would again not bring me further
in learning the standard key bindings vim offers.
</p>
<p>
This is still a valid point, but I also feel it will slow me down
quite a bit, now that I&rsquo;m considering to switch to Emacs.
</p>
<p>
So I&rsquo;ll start with using it, but keep it very high in my priorities
to finally getting rid of it.
</p>
<p>
This is pretty important, as I&rsquo;m pretty sure that I&rsquo;ll still be using
Vim in quite some remote systems.
</p>
</section>
<section id="slide-orgf339492">
<h4 id="orgf339492"><span class="section-number-4">2.2.4</span> evil-surround</h4>
</section>
<section id="slide-org8d5c2cb">
<h4 id="org8d5c2cb"><span class="section-number-4">2.2.5</span> evil-magit</h4>
</section>
<section id="slide-org0facc22">
<h4 id="org0facc22"><span class="section-number-4">2.2.6</span> evil-org</h4>
</section>
<section id="slide-orgcf221ef">
<h3 id="orgcf221ef"><span class="section-number-3">2.3</span> org-mode related</h3>
<div class="outline-text-3" id="text-2-3">
</div>
</section>
<section id="slide-org4e0872b">
<h4 id="org4e0872b"><span class="section-number-4">2.3.1</span> org-bullets</h4>
<p>
UTF-8 bullets
</p>
</section>
</section>
<section>
<section id="slide-org09a2887">
<h2 id="org09a2887"><span class="section-number-2">3</span> considering packages</h2>
<div class="outline-text-2" id="text-3">
</div>
</section>
<section id="slide-orge898fc9">
<h3 id="orge898fc9"><span class="section-number-3">3.1</span> general</h3>
</section>
<section id="slide-org53a2f2d">
<h3 id="org53a2f2d"><span class="section-number-3">3.2</span> evil related</h3>
<div class="outline-text-3" id="text-3-2">
</div>
</section>
<section id="slide-org1b2b54b">
<h4 id="org1b2b54b"><span class="section-number-4">3.2.1</span> evil-args</h4>
</section>
<section id="slide-org3762fc3">
<h4 id="org3762fc3"><span class="section-number-4">3.2.2</span> evil-matchit</h4>
</section>
<section id="slide-orge864784">
<h4 id="orge864784"><span class="section-number-4">3.2.3</span> evil-collection</h4>
<p>
This seems to use vim like keybindings in most common emacs
places. Not sure yet if this is a good idea.
</p>
</section>
<section id="slide-org63b59bf">
<h3 id="org63b59bf"><span class="section-number-3">3.3</span> org-mode related</h3>
<div class="outline-text-3" id="text-3-3">
</div>
</section>
<section id="slide-org5b65d1e">
<h4 id="org5b65d1e"><span class="section-number-4">3.3.1</span> org-download</h4>
<p>
image d&rsquo;n&rsquo;d
</p>
</section>
<section id="slide-org9a5ed25">
<h4 id="org9a5ed25"><span class="section-number-4">3.3.2</span> org-gcal</h4>
</section>
<section id="slide-org48db92a">
<h4 id="org48db92a"><span class="section-number-4">3.3.3</span> org-jira</h4>
</section>
<section id="slide-org4ac8396">
<h4 id="org4ac8396"><span class="section-number-4">3.3.4</span> org-projectile</h4>
</section>
<section id="slide-orga7aafd3">
<h4 id="orga7aafd3"><span class="section-number-4">3.3.5</span> org-pandoc</h4>
</section>
<section id="slide-orgf844221">
<h4 id="orgf844221"><span class="section-number-4">3.3.6</span> org-reveal</h4>
</section>
</section>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/reveal.js@3/js/reveal.js"></script>
<script>
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
multiplex: {
secret: '', // null if client
id: '', // id, obtained from socket.io server
url: '' // Location of socket.io server
},
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3/plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }]
});
</script>
</body>
</html>

View File

@@ -18,7 +18,7 @@
** TODO Tür bestellen ** TODO Tür bestellen
Hornbach Petura Kiefer oder Fichte? Hornbach Petura Kiefer oder Fichte?
** TODO Einbauen ** TODO Einbauen
* Wände [0%] * Wände [31%]
** Decke [50%] ** Decke [50%]
*** DONE Lattung *** DONE Lattung
CLOSED: [2019-07-06 Sat 23:13] CLOSED: [2019-07-06 Sat 23:13]
@@ -29,12 +29,12 @@
*** TODO Lampenloch gipsen *** TODO Lampenloch gipsen
*** TODO Grundieren *** TODO Grundieren
*** TODO Tapezieren *** TODO Tapezieren
** Badseite [40%] ** Badseite [60%]
*** DONE Grundieren *** DONE Grundieren
CLOSED: [2019-07-06 Sat 23:13] CLOSED: [2019-07-06 Sat 23:13]
*** DONE Rigips *** DONE Rigips
CLOSED: [2019-07-06 Sat 23:13] CLOSED: [2019-07-06 Sat 23:13]
*** TODO Tapete voll ablösen *** DONE Tapete voll ablösen
*** TODO Löcher ausbessern *** TODO Löcher ausbessern
*** TODO Verspachteln *** TODO Verspachteln
** Esszimmerseite [0%] ** Esszimmerseite [0%]

276
emacs.org Normal file
View File

@@ -0,0 +1,276 @@
To get a list of packages type ~M-x list-packages~
* Intersting learnings
** Help systems
~SPC h RET~ emacs manual
~C-h a~ appropos
~C-h l~ list 300 last keystrokes with description
~C-h m~ docs to major and minor modes activg
~C-h k~ what does a keybinding X do
~C-h w~ which keybinding is active for X
* Elisp
Following this [[http://ergoemacs.org/emacs/elisp.html][Practical Emacs Lisp]]
** Basics
*** Eval code block with ~C-c C-c~
#+BEGIN_SRC elisp
(+ 547 1)
#+END_SRC
#+RESULTS:
: Result 548
*** Eval last expression with ~C-x C-e~
*** Printing with (message ...)
#+BEGIN_SRC elisp
(message "Result %S" (+ 547 1))
#+END_SRC
#+RESULTS:
: Result 548
*** Arithmetic
Singel digit numbers as ~2.~ are integers. Use ~2.0~ for floats.
#+BEGIN_SRC elisp
(+ 4 5 1) ; 10
(- 9 2) ; 7
(- 9 2 3) ; 4
(* 2 3) ; 6
(* 2 3 2) ; 12
;; integer part of quotient
(/ 7 2) ; 3
;; division
(/ 7 2.0) ; 3.5
;; mod, remainder
(% 7 4) ; 3
;; power; exponential
(expt 2 3) ; 8
;; int to float
(float 3) ; 3.0
(truncate 3.3) ; 3
(floor 3.3) ; 3
(ceiling 3.3) ; 4
(round 3.4) ; 3
#+END_SRC
*** Convert string and numbers
#+BEGIN_SRC elisp
(string-to-number "547")
(number-to-string 547)
#+END_SRC
*** True and False
**** ~nil~ is false
**** anything else is true,
**** nil is equivalent to a empty list ~()~, so also false
**** ~t~ is by convention true
*** and/or/not
#+BEGIN_SRC elisp
(and t nil)
(or t nil () t)
(not (and t t))
#+END_SRC
*** comparing
#+BEGIN_SRC elisp
; numbers
(< 3 4)
(>=_ 3 4)
(= 3 3.0000000000000000000000001)
(/= 3 4) ; not equal
;strings
(equal "abc" "abc") ; checks
(string-equal "string" "strings")
(string-equal "symbol" 'symbol) ; can be used to compare string with symbol
; generic equal - checks datatype and value
(equal 3 3) ; t
(equal 3 3.0) ; nil
(not (equal 3 4)) ; t. general way to test inequality
#+END_SRC
*** variables
**** global
#+BEGIN_SRC elisp
(setq x 1)
(setq x 2 y 3 z -1)
#+END_SRC
**** local
#+BEGIN_SRC elisp
(let name "value")
(let (name1 name2)
(setq name1 "Gustav")
(setq name2 "Gustl")
(+ 40 2) ; return value, optional
)
; or even shorter
(let ((name1 "Gustav") (name2 "Gustl"))
"Gustav+Gustl" ; return value, optional
)
#+END_SRC
*** if then else
#+BEGIN_SRC elisp
(if (< 3 2) "yay" "nay")
(if (< 1 2) "yay") ; no else, nil
; no else, clearer to use ~when~. All args executed.
(when (< 1 2) (setq a 1) (setq b 2)) ; a=1 and b=2
#+END_SRC
#+RESULTS:
: 2
*** block of expressions
Same as a code block in C-like languages ~{...}~
#+BEGIN_SRC elisp
(progn (message "a") (message "b"))
#+END_SRC
Often used inside ~if~
#+BEGIN_SRC elisp
(if something
(progn ; true
(message "something is t")
(message "yay")
)
(progn ; else
(message "something is nil")
(message 'nai')
)
)
#+END_SRC
*** loops
#+BEGIN_SRC elisp
;; inserts Unicode chars 32 to 126
(let ((x 32)))
(let ((r "")))
(while (< x 127)
(setq r (concatenate 'string r (char-to-string x)))
(setq x (+ x 1)))
(message "%s" r)
#+END_SRC
#+RESULTS:
: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
* to research
** backup file location configurable?
** highlight line
** git gutter needed
** what the hell is that footer thing you cannot edit?
** ~C-o~ does not open last file, not sure why yet
** persistant undo possible?
** helm/ivy - dash?
Still trying to figure what use-case each of these tries to
solve. I'm primarily looking for something that offers me an nice
interface to deal with all kind of lists of elements, like files,
buffers, commits, tags, grepper etc.
I used to cover that all with vim.fzf and would again like to have
something like that.
Though it seems, that I just need some inteface for lists of any
kind that I can easily fuzzy search.
And other plugins to actually provide the content.
** gruvbox-theme
** which-key
Seems great for learning the editor commands. But could also be
distracting
** magit
** language server protocol
Mainly for my JS work, but probably worth to look at something
generic if there is something out there.
** vim-unimpaired ?
Couln't find something replicating unimpaired until now.
Maybe I just need to roll most of these on my own
** vim-abolish ?
** ranger/dired-ranger
** devdocs
* installed packages
** general
*** editorconfig
*** helm
*** projectile
*** magit
** evil related
*** evil
evil uses "state" for the "modes" in vi. The term "mode" is already used in emacs
for a set of key bindings for a cetrain sort of text. A "mode" may include custom
bindings for evil states.
The state is shown in the status bar.
There is also an emacs state <E>, basically turn off evil, which you can
toggle with 'C-z'.
I've heard numerous times that people claim evil covers 99% of what they use in vim.
[[evil-maps.el][~/.emacs.d/elpa/evil-20190729.704/evil-maps.el] is a good place
to start looking if something does not work for you.
*** evil-escape
*** evil-leader
I was first not sure if I should even start using the leader key
as I did in my vim config, as it would again not bring me further
in learning the standard key bindings vim offers.
This is still a valid point, but I also feel it will slow me down
quite a bit, now that I'm considering to switch to Emacs.
So I'll start with using it, but keep it very high in my priorities
to finally getting rid of it.
This is pretty important, as I'm pretty sure that I'll still be using
Vim in quite some remote systems.
*** evil-surround
*** evil-magit
*** evil-org
** org-mode related
*** org-bullets
UTF-8 bullets
* considering packages
** general
"So now " it makes really fun to work like this
#+BEGIN_SRC elisp
(print "blup")
#+END_SRC
#+BEGIN_SRC lisp
#+END_SRC
** evil related
*** evil-args
*** evil-matchit
*** evil-collection
This seems to use vim like keybindings in most common emacs
places. Not sure yet if this is a good idea.
** org-mode related
*** org-download
image d"n'd
*** org-gcal
*** org-jira
*** org-projectile
*** org-pandoc
*** org-reveal

View File

@@ -40,12 +40,12 @@
**** TODO tables **** TODO tables
***** TODO spreadsheets ***** TODO spreadsheets
** How to do things ** How to do things
**** Add a sibling ~CTRL-Enter~ *** Add a sibling ~CTRL-Enter~
**** Add a sibling with TODO ~CTRL-Shift-Enter~ *** Add a sibling with TODO ~CTRL-Shift-Enter~
**** Denote subtree ~,sl~ or ~>~ or ~TAB~ in insert mode *** Denote subtree ~,sl~ or ~>~ or ~TAB~ in insert mode
**** Promote subtree ~,sh~ or ~<~ or ~S-TAB~ in insert mode *** Promote subtree ~,sh~ or ~<~ or ~S-TAB~ in insert mode
**** todo *** todo
***** toggle todo state ~,TT~ **** toggle todo state ~,TT~
* Footnotes * Footnotes
[fn:1] Hey ho, this is a footnote and I don't really have a use-case for it but it's nice than I can add one :) [fn:1] Hey ho, this is a footnote and I don't really have a use-case for it but it's nice than I can add one :)

View File

@@ -1,2 +0,0 @@
#+TITLE: ad hoc notes

94
steuererklaerung.org Normal file
View File

@@ -0,0 +1,94 @@
#+TITLE: Steuererklärung
* Kinder
** TODO Kitagebühren Jacob
** TODO Kitagebühren Anna
* Valerie
** DONE Elternzeit
CLOSED: [2019-09-04 Wed 20:32]
01.01.2018-27.10.2018
** DONE Pendlerpauschale Arbeitstage im Büro
CLOSED: [2019-09-04 Wed 20:41]
* Thomas
** DONE Elternzeit
CLOSED: [2019-09-04 Wed 20:32]
28.10.2018-27.10.2018
** TODO Elterngeld Januar wirklich richtig?
** TODO Arbeitstage im Büro
** TODO VVS Kosten
** TODO HH6 versteuerbare Einkünfte
* Versicherungen
** TODO Haftpflicht
* Mömpelgardgasse
** DONE Handwerker
*** Schornsteinfeger Wiech 29.06.2018
| Was | Betrag |
|------------+--------|
| Lohnkosten | 58,20 |
*** Rauch Heizungkörper 05.11.2018
| Was | Betrag |
|------------+--------|
| Lohnkosten | 1739 |
| | |
*** Rauch Heizungswartung 14.06.2018
| Was | Betrag |
|------------+--------|
| Lohnkosten | 119 |
*** Rauch Frostschaden 06.03.2018
| Was | Betrag |
|------------+--------|
| Lohnkosten | 52 |
#+TBLFM: @4$2=vsum(@2..@-1)
*** Leopold 11.06.2018
| Was | Betrag |
|----------------------+--------|
| Demontage/Monatge | 850.0 |
| Altfenster entsorgen | 72.0 |
|----------------------+--------|
| Summe | 922 |
#+TBLFM:
*** Bauer 16.05.2018
| Was | Betrag |
|---------+--------|
| Montage | 742,50 |
*** Morgenrot 10.10.2018
| Was | Betrag |
|--------+--------|
| Lohn 1 | 1600 |
| Lohn 2 | 345 |
| Gerüst | 200 |
|--------+--------|
| Summe | |
** Kontoführungsgebühren
** Reparaturen
** DONE Grundsteuer 52,59
** Müllgebühren
** Wasser
** Strom
Nur wenn wir grenze noch nicht erreichen
Zeitraum 10.9.2018 18.9.2018
unten 1053,97
oben 150,31
** Versicherung
*** TODO Wohngebäudeversicherung
* Auto
** Reperaturen
| Time | durP1 | ratioP1 | P1 | durP2 | ratioP2 | P2 | SDS_P1 | SDS_P2 | Temp | Humidity | BMP_temperature | BMP_pressure | BME280_temperature | BME280_humidity | BME280_pressure | Samples | Min_cycle | Max_cycle | Signal | | |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | | |
| 2019/01/01 00:01:06 | | | | | | | 63.70 | 41.53 | | | | | | | 3.81 | 100.00 | 95765.69 | 1775028 | 77 | 24342 | -86 |
| 2019/01/01 00:03:57 | | | | | | | 68.02 | 42.23 | | | | | | | 3.88 | 100.00 | 95770.13 | 1800911 | 77 | 24249 | -86 |
| 2019/01/01 00:06:47 | | | | | | | 45.90 | 30.88 | | | | | | | 4.06 | 100.00 | 95783.44 | 1782144 | 79 | 24268 | -87 |
| 2019/01/01 00:09:37 | | | | | | | 52.83 | 35.45 | | | | | | | 4.16 | 100.00 | 95778.77 | 1796475 | 80 | 24261 | -85 |
| 2019/01/01 00:12:27 | | | | | | | 44.98 | 32.88 | | | | | | | 4.01 | 100.00 | 95770.27 | 1766860 | 80 | 24278 | -85 |
| 2019/01/01 00:15:18 | | | | | | | 34.63 | 25.70 | | | | | | | 4.02 | 100.00 | 95773.95 | 1837415 | 78 | 24248 | -85 |
| 2019/01/01 00:18:08 | | | | | | | 34.75 | 26.17 | | | | | | | 4.13 | 100.00 | 95770.08 | 1838041 | 78 | 24243 | -85 |
| 2019/01/01 00:20:59 | | | | | | | 38.00 | 22.65 | | | | | | | 4.30 | 100.00 | 95768.03 | 1837785 | 78 | 24264 | -87 |
| 2019/01/01 00:23:49 | | | | | | | 37.80 | 23.95 | | | | | | | 4.16 | 100.00 | 95764.53 | 1842532 | 77 | 24770 | -88 |
| 2019/01/01 00:26:40 | | | | | | | 38.30 | 25.92 | | | | | | | 4.19 | 100.00 | 95763.36 | 1846767 | 77 | 24329 | -85 |
| 2019/01/01 00:29:30 | | | | | | | 34.78 | 24.47 | | | | | | | 4.00 | 100.00 | 95762.17 | 1814816 | 77 | 24269 | -86 |
| 2019/01/01 00:32:20 | | | | | | | 45.30 | 30.68 | | | | | | | 3.85 | 100.00 | 95760.94 | 1807797 | 78 | 24250 | -85 |
| 2019/01/01 00:35:11 | | | | | | | 46.83 | 29.90 | | | | | | | 3.73 | 100.00 | 95758.04 | 1808862 | 78 | 24798 | -86 |
| 2019/01/01 00:38:01 | | | | | | | 50.35 | 30.23 | | | | | | | 3.72 | 100.00 | 95753.83 | 1806262 | 78 | 24283 | -86 |