These are some books I read but that do not have an official print version.
- So I type-setted them myself (mostly in LyX) and printed them online.
+ So I type-setted them myself (mostly in LyX) and printed them online.
I do not own the rights of any of these books.
The LyX files and generated PDF's are public and everyone who wants can print them on his own.
diff --git a/www/statics/blog/befunge93.md b/www/statics/blog/befunge93.md
index cd05a89..421f8c2 100644
--- a/www/statics/blog/befunge93.md
+++ b/www/statics/blog/befunge93.md
@@ -474,9 +474,9 @@ Character | Name | Description
[^pfix]: Postfix = [Postfix notation][6]
- [1]: http://i.imgur.com/Jkks7Uy.gif?1
- [2]: http://i.imgur.com/Z5Ljr5Z.gif?1
- [3]: http://i.imgur.com/82FKwkM.gif?1
- [4]: http://i.imgur.com/AqpsPRW.gif?1
- [5]: http://i.imgur.com/rxqZhIJ.gif?1
- [6]: http://en.wikipedia.org/wiki/Reverse_Polish_notation
\ No newline at end of file
+ [1]: https://i.imgur.com/Jkks7Uy.gif?1
+ [2]: https://i.imgur.com/Z5Ljr5Z.gif?1
+ [3]: https://i.imgur.com/82FKwkM.gif?1
+ [4]: https://i.imgur.com/AqpsPRW.gif?1
+ [5]: https://i.imgur.com/rxqZhIJ.gif?1
+ [6]: https://en.wikipedia.org/wiki/Reverse_Polish_notation
\ No newline at end of file
diff --git a/www/statics/blog/bfjoust.md b/www/statics/blog/bfjoust.md
index 392f611..860d4a9 100644
--- a/www/statics/blog/bfjoust.md
+++ b/www/statics/blog/bfjoust.md
@@ -1,12 +1,12 @@
-[Brainfuck Joust](http://esolangs.org/wiki/BF_Joust) is a tournament for Bots written in [brainfuck](http://esolangs.org/wiki/Brainfuck) *(or at least in a brainfuck-like language)*.
+[Brainfuck Joust](https://esolangs.org/wiki/BF_Joust) is a tournament for Bots written in [brainfuck](https://esolangs.org/wiki/Brainfuck) *(or at least in a brainfuck-like language)*.
The board consist of 10 to 30 fields, one player starts left and one player right. The value of every field goes from `-127` to `128` and then wraps around, every field has a value of zero, except the two starting fields (the "flags"), they have a value of `128`.
Your goal is to zero the enemy flag for two consecutive cycles and you loose if you either leave the board or the enemy zeroes your flag first. Of course the bots are written in brainfuck, which adds a whole lot of interesting limitations due to brainfucks minimalistic (7) set of operations.
-The thing that surprised me the most is the [strategically depth](http://esolangs.org/wiki/BF_Joust_strategies) of the game (despite the simple rules and language) and the fact that there are [extremely efficient and complex programs](http://codu.org/eso/bfjoust/in_egobot/) out there.
+The thing that surprised me the most is the [strategically depth](https://esolangs.org/wiki/BF_Joust_strategies) of the game (despite the simple rules and language) and the fact that there are [extremely efficient and complex programs](https://codu.org/eso/bfjoust/in_egobot/) out there.
-So here is my own bot *(originally made for [stackexchange](http://codegolf.stackexchange.com/questions/36645/brainfedbotsforbattling-a-brainf-tournament))*, it can't really keep up with the big ones from egojoust but I'm fairly proud of it:
+So here is my own bot *(originally made for [stackexchange](https://codegolf.stackexchange.com/questions/36645/brainfedbotsforbattling-a-brainf-tournament))*, it can't really keep up with the big ones from egojoust but I'm fairly proud of it:
```
> # Build 9 big decoys
diff --git a/www/statics/blog/net_format_spec.md b/www/statics/blog/net_format_spec.md
index 4d4ef20..0a4b5fb 100644
--- a/www/statics/blog/net_format_spec.md
+++ b/www/statics/blog/net_format_spec.md
@@ -66,7 +66,7 @@ Here my (growing) collection of C# format specifier, this is not a complete list
"{0:#,##0,,, bill}" // (number/1000/1000/1000) billion
```
-> **see: ** [stackoverflow.com](http://stackoverflow.com/questions/11731996/string-format-numbers-thousands-123k-millions-123m-billions-123b)
+> **see: ** [stackoverflow.com](https://stackoverflow.com/questions/11731996/string-format-numbers-thousands-123k-millions-123m-billions-123b)
###Right align currency
@@ -74,7 +74,7 @@ Here my (growing) collection of C# format specifier, this is not a complete list
"{0,10:#,##0.00}" // Right aligned & always 2 decimal places
```
-> **see: ** [stackoverflow.com](http://stackoverflow.com/questions/7422625/right-align-currency-in-string-format)
+> **see: ** [stackoverflow.com](https://stackoverflow.com/questions/7422625/right-align-currency-in-string-format)
###Align strings
diff --git a/www/statics/blog/v4.md b/www/statics/blog/v4.md
index ef75fc9..6a0de3f 100644
--- a/www/statics/blog/v4.md
+++ b/www/statics/blog/v4.md
@@ -1,14 +1,14 @@
When you see this Log you probably notice that this site looks a whole lot different than a few days before.
And you you can probably guess it **I rewrote this website completely from scratch**.
-Finally there is a *real* PHP Framework behind this all ([Yii](http://www.yiiframework.com/) with [Yiistrap](http://www.getyiistrap.com/)) and my code looks kinda good and is [version controlled](https://github.com/Mikescher/www.mikescher.de).
+Finally there is a *real* PHP Framework behind this all ([Yii](https://www.yiiframework.com/) with [Yiistrap](https://www.getyiistrap.com/)) and my code looks kinda good and is [version controlled](https://github.com/Mikescher/www.mikescher.de).
My hopes are that I can now easier add new programs and that the whole page looks a bit more professional.
If you want to see how this page has evolved over the years - here are the thumbnails of mikescher.de version `1`, `2`, `3` and the current `4`:
-![version 1](/images/log/ms_de_v1.jpg)
-![version 2](/images/log/ms_de_v2.jpg)
-![version 3](/images/log/ms_de_v3.jpg)
-![version 4](/images/log/ms_de_v4.jpg)
+![version 1](/data/images/log/ms_de_v1.jpg)
+![version 2](/data/images/log/ms_de_v2.jpg)
+![version 3](/data/images/log/ms_de_v3.jpg)
+![version 4](/data/images/log/ms_de_v4.jpg)
Also look at the new [Blog section](/blog), for now there is not much content but perhaps that will change over te next few months.
diff --git a/www/statics/euler/Euler_Problem-007_explanation.md b/www/statics/euler/Euler_Problem-007_explanation.md
index 69502cc..7c917cd 100644
--- a/www/statics/euler/Euler_Problem-007_explanation.md
+++ b/www/statics/euler/Euler_Problem-007_explanation.md
@@ -1 +1 @@
-Finally a opportunity to use my favorite algorithm: [The sieve of Eratosthenes.](http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)
\ No newline at end of file
+Finally a opportunity to use my favorite algorithm: [The sieve of Eratosthenes.](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)
\ No newline at end of file
diff --git a/www/statics/euler/Euler_Problem-022_explanation.md b/www/statics/euler/Euler_Problem-022_explanation.md
index 008db66..310f6cf 100644
--- a/www/statics/euler/Euler_Problem-022_explanation.md
+++ b/www/statics/euler/Euler_Problem-022_explanation.md
@@ -1,2 +1,2 @@
-The main thing here was sorting the list. I used [bubble sort](http://en.wikipedia.org/wiki/Bubble_sort), which is not the fastest algorithm but was pretty easy to implement in befunge.
+The main thing here was sorting the list. I used [bubble sort](https://en.wikipedia.org/wiki/Bubble_sort), which is not the fastest algorithm but was pretty easy to implement in befunge.
The rest is just calculating the single scores.
\ No newline at end of file
diff --git a/www/statics/euler/Euler_Problem-027_explanation.md b/www/statics/euler/Euler_Problem-027_explanation.md
index c942882..bb2a1f6 100644
--- a/www/statics/euler/Euler_Problem-027_explanation.md
+++ b/www/statics/euler/Euler_Problem-027_explanation.md
@@ -1,4 +1,4 @@
-If you looked at the previous problems you probably know what comes now ... (Sieve of Eratosthenes)[http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes].
+If you looked at the previous problems you probably know what comes now ... (Sieve of Eratosthenes)[https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes].
To lower the amount of A-B combinations we have to check here are 2 rules I found out:
- `B` must be a (positive) prime, otherwise n=0 wouldn't yield a prime number
diff --git a/www/statics/euler/Euler_Problem-033_explanation.md b/www/statics/euler/Euler_Problem-033_explanation.md
index e16fcbb..b694e89 100644
--- a/www/statics/euler/Euler_Problem-033_explanation.md
+++ b/www/statics/euler/Euler_Problem-033_explanation.md
@@ -2,5 +2,5 @@ This one was relaxing. You can simple iterate through all 8100 cases and test ea
Three notable things:
- You can test two fraction `a/b` and `c/d` simple of equality with the formula `a*d == b*c`.
-- This is my compact [GCD algorithm](http://en.wikipedia.org/wiki/Euclidean_algorithm) in befunge (stack -> stack)
+- This is my compact [GCD algorithm](https://en.wikipedia.org/wiki/Euclidean_algorithm) in befunge (stack -> stack)
- This is one of the few *real* Befunge-93 programs in this series. (It doesn't violate the [80x25](https://github.com/catseye/Befunge-93/blob/master/doc/Befunge-93.markdown) size rule)
\ No newline at end of file
diff --git a/www/statics/euler/Euler_Problem-035_explanation.md b/www/statics/euler/Euler_Problem-035_explanation.md
index f9386ca..7438bfc 100644
--- a/www/statics/euler/Euler_Problem-035_explanation.md
+++ b/www/statics/euler/Euler_Problem-035_explanation.md
@@ -1,2 +1,2 @@
-Thats one big [sieve](http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes), even though not as big as the on in problem 10.
+Thats one big [sieve](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes), even though not as big as the on in problem 10.
Here we needed a way to "rotate" a number: `value = value%10 * 10^digitcount + value/10`. The rest is standard befunge stuff and trying to optimize it.
\ No newline at end of file
diff --git a/www/statics/euler/Euler_Problem-044_explanation.md b/www/statics/euler/Euler_Problem-044_explanation.md
index 911d973..ccba3cf 100644
--- a/www/statics/euler/Euler_Problem-044_explanation.md
+++ b/www/statics/euler/Euler_Problem-044_explanation.md
@@ -1,8 +1,8 @@
My first attempt at this problem took over 5 hours to compute and had a complexity of O(n^3).
The problem is that you need a square root to inverse the pentagonal formula and Befunge has no square root function.
-So I needed to implement my own version of integer square roots in Befunge (see [wikipedia](http://en.wikipedia.org/wiki/Methods_of_computing_square_roots)).
+So I needed to implement my own version of integer square roots in Befunge (see [wikipedia](https://en.wikipedia.org/wiki/Methods_of_computing_square_roots)).
The program is still not really fast but it's good that I managed to speed it up to a time where you can execute it without waiting the whole night.
-Also this program is nicely compact, by the time I'm writing this my Befunge interpreter [BefunExec](http://www.mikescher.de/programs/view/BefunGen) has gotten a display of all possible paths a program can take.
+Also this program is nicely compact, by the time I'm writing this my Befunge interpreter [BefunExec](https://www.mikescher.de/programs/view/BefunGen) has gotten a display of all possible paths a program can take.
And if you look at the graph of this program, it looks pretty interesting...
\ No newline at end of file
diff --git a/www/statics/euler/Euler_Problem-046_explanation.md b/www/statics/euler/Euler_Problem-046_explanation.md
index c4a00b0..fcd588c 100644
--- a/www/statics/euler/Euler_Problem-046_explanation.md
+++ b/www/statics/euler/Euler_Problem-046_explanation.md
@@ -1,4 +1,4 @@
-I really missed my [sieve of erastothenes](http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes). There were really a few problems without primes in a row.
+I really missed my [sieve of erastothenes](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes). There were really a few problems without primes in a row.
In this problem we go through all primes `i`, search through all smaller primes `j` were `(i-j)/2` is a quadratic number. If you can't find one, this falsifies the theorem.
diff --git a/www/statics/euler/Euler_Problem-049_explanation.md b/www/statics/euler/Euler_Problem-049_explanation.md
index 9d7fa5a..5dedad9 100644
--- a/www/statics/euler/Euler_Problem-049_explanation.md
+++ b/www/statics/euler/Euler_Problem-049_explanation.md
@@ -5,6 +5,6 @@ This is only an approximation, but a rather good one. In tested the numbers from
So now we've got the numbers where `digit_product(p) == digit_product(p+3330) == digit_product(p+6660)` (in fact there are only 40 of these).
We then use a simple primality test to check if all three numbers are prime.
-The primality test is basically a port of the [wikipedia](http://en.wikipedia.org/wiki/Primality_test) version to befunge. Wit it we only have to do `n/6` divisions to test a number `n` for primality.
+The primality test is basically a port of the [wikipedia](https://en.wikipedia.org/wiki/Primality_test) version to befunge. Wit it we only have to do `n/6` divisions to test a number `n` for primality.
All in all tis leads to a fast, small and not very grid-intensive program (Only one field is used, *and only as a temporary storage to swap three values*).
\ No newline at end of file
diff --git a/www/statics/euler/Euler_Problem-051_explanation.md b/www/statics/euler/Euler_Problem-051_explanation.md
index 9b3db91..e69afb3 100644
--- a/www/statics/euler/Euler_Problem-051_explanation.md
+++ b/www/statics/euler/Euler_Problem-051_explanation.md
@@ -2,7 +2,7 @@ This is effectively an optimized implementation of [this algorithm](http://www.m
You can see the ten patterns on the left side and beside them the area were we build our numbers.
So what we do is iterate through the numbers from `100` to `1 000`, through the ten patterns and through the digits `0`, `1` and `2`.
-In each iteration we generate the number (from value, pattern and digit) and test for it primeness (with a simple [primality test](http://en.wikipedia.org/wiki/Primality_test) - no prime sieve).
+In each iteration we generate the number (from value, pattern and digit) and test for it primeness (with a simple [primality test](https://en.wikipedia.org/wiki/Primality_test) - no prime sieve).
If we found a prime we count the number of primes in it's family and if this count is eight we print the generated number and exit.
This program is not the fastest, because I check all the primes "manually" and not with an prime sieve each iteration takes quite a time.
diff --git a/www/statics/euler/Euler_Problem-053_explanation.md b/www/statics/euler/Euler_Problem-053_explanation.md
index c3a6fbb..bb01620 100644
--- a/www/statics/euler/Euler_Problem-053_explanation.md
+++ b/www/statics/euler/Euler_Problem-053_explanation.md
@@ -1,17 +1,17 @@
*That* is the kind of problem I really like. There is a lot of depth in the solution and a proper algorithm solves this in no time.
-The algorithm idea here is that we use the properties of [Pascal's Triangle](http://en.wikipedia.org/wiki/Pascal%27s_triangle).
+The algorithm idea here is that we use the properties of [Pascal's Triangle](https://en.wikipedia.org/wiki/Pascal%27s_triangle).
As you probably know this triangle starts at its top with a `1`. Then every cell is calculated as the sum of the two cells above it.
~~~
cell[y][x] = cell[y-1][x-1] + cell[y-1][x]
~~~
-![Animated GIF of Pascals Triangle. (c) by Wikimedia Foundation](http://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif)
+![Animated GIF of Pascals Triangle. (c) by Wikimedia Foundation](https://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif)
When we calculate `C(n, r)` this is nothing more than the number at row *n* and column *r*.
-So what we do is build [Pascal's Triangle](http://en.wikipedia.org/wiki/Pascal%27s_triangle) up to a height of one-hundred and look at the cells with values greater than one million.
+So what we do is build [Pascal's Triangle](https://en.wikipedia.org/wiki/Pascal%27s_triangle) up to a height of one-hundred and look at the cells with values greater than one million.
The obvious problem is that the numbers grow extremely big, and sooner or later *(probably sooner)* the numbers will overflow. So what we do is use a little trick:
As soon as a cell is over `1 000 000` we mark her *(= put a zero in that cell)*. When we create a new cell out of its two parents we check if one of the parents has the mark *(= is zero)* and then the children gets also marked. Because if one of the parents (or both) is over one million then all of its children will also be over one million.
diff --git a/www/statics/euler/Euler_Problem-058_explanation.md b/www/statics/euler/Euler_Problem-058_explanation.md
index 90bf2c8..670a234 100644
--- a/www/statics/euler/Euler_Problem-058_explanation.md
+++ b/www/statics/euler/Euler_Problem-058_explanation.md
@@ -1,4 +1,4 @@
It's obvious that the bottleneck of this program is the primality test.
The numbers become here too big to create a sieve and "normal" prime testing takes too long.
-So we use the [Miller-Rabin primality test](http://en.wikipedia.org/wiki/Miller-Rabin_primality_test) that I implemented a while ago (thank [mathblog.dk](http://http://www.mathblog.dk)).
+So we use the [Miller-Rabin primality test](https://en.wikipedia.org/wiki/Miller-Rabin_primality_test) that I implemented a while ago (thank [mathblog.dk](https://http://www.mathblog.dk)).
The rest is just enumerating all the diagonals until `primes*10
-
+