From d1ab62b1bd8fb62b4d0c55166b0b1a14d1242276 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Mon, 7 Oct 2019 23:34:00 +0200 Subject: [PATCH 01/56] ++ hack a job preview --- content/u/blog/hack-a-job-2019/contents.lr | 139 +++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 content/u/blog/hack-a-job-2019/contents.lr diff --git a/content/u/blog/hack-a-job-2019/contents.lr b/content/u/blog/hack-a-job-2019/contents.lr new file mode 100644 index 0000000..1004ab6 --- /dev/null +++ b/content/u/blog/hack-a-job-2019/contents.lr @@ -0,0 +1,139 @@ +title: Hack-a-job (2019 edition) +--- +pub_date: 2019-10-08 +--- +author: ungleich +--- +twitter_handle: ungleich +--- +_hidden: yes +--- +_discoverable: no +--- +abstract: +Hack a job in 42 hours and live in Switzerland afterwards. +--- +body: + +On the 1st of November to 3rd of November the 2019 edition of +**Hack a job** will take place in the Hacking Hotel Diesbach, +Switzerland. + +## Hack a what? + +We are a team of hackers running the [Data Center +Light](https://datacenterlight.ch) at ungleich and we think +that hacking to get a job is the right way +of finding someone fitting to us. + +## How does it work? + +At hack a job you have one weekend to show your skills. You will be +given the choice of three different tasks and you choose one of them. + +You then have 42 hours to do your best to solve the task. During these +42 hours, we will coach you and direct you into the right direction. + +During that time, food and drinks will be provided. + +## Who can apply? + +At this Hack a job edition anybody can apply, who can start working in +Switzerland without special work permits. This usually includes + +* citizens of EU/EFTA countries +* Swiss citizens + +Checkout + +* https://www.swissinfo.ch/eng/work-permits/29191706 +* https://www.sem.admin.ch/dam/data/sem/eu/fza/broschueren/blau-europaeer-in-ch-e.pdf + +for more details. +Unfortunately we cannot offer anyone from +"third states" to participate, as this has complicated and partially +impossible constraints for hiring attached. + +## What if I win? + +The winner(s) of hack-a-job are getting offered the following: + +* A 1 year contract with ungleich, likely to be extended +* A monthly pre-tax salary of 2'500 CHF +* A paid stay in the Hacking Hotel with IPv6 native 10 Gbit/s network +* A halb tax (half fare) card for Switzerland + +Additionally you can request to be reimbursed for the travel expenses +to Hack-a-Job. + +### What if I don't win? + +Even if you are not selected, it is a great learning to take home. +You will get + + +## The schedule + +* 2019-10-08: Openning of CfP +* 2019-10-20: midnight UTC: close of CfP +* 2019-10-22: Notification of +* 2019-11-01: 13-15: Hacking Hotel Opens for arrival, registration +* 2019-11-01: 15-16: Introduction of the three tasks +* 2019-11-01-1700 to 2019-11-03-1100: 42 to solve the task +* 2019-11-03-1100 to 1300: Presentations +* 2019-11-03-1300 to 1500: Final lunch +* 2019-11-03-1300 to 1500: Jury meeting +* 2019-11-03-1500: Presentation of jury ratings and notification of winner(s) + +## How to prepare? + +We recommend to refresh your knowledge of the following topics prior +to participation: + +* Python3: you should be able to code mildly complex programs +* HTTP / REST: you should be able to talk REST +* Networking: Basic knowledge of IPv6 (including multicast), VLAN and + VXLAN +* OS: knowledge of either Linux or BSD, Unix commandline, Shell scripting + +## Who gets the job? + +Up to two people can stay and to join our team. +The criteria for evaluation can be seen below. +Note: there is **no right for anyone** to the job. + + +### Degree of success + +How much of the task did you get done? +Is it solved + +* not at all +* partially +* mostly +* fully + +? + +### Cleanliness of the solution + +Is your solution + +* documented? +* easy to understand? +* using best practice? + +### Creativity of the solution + +Did you think out-of-the-box? Are you employing smart solutions? + +### Sustainability / Unix Philosophy + +How much did you think about running your application for longer? +Did you follow the unix philosophy? + +### Communication + +Work is only worth something, if other team members can work with +you. How do you communicate with the mentors, how do you present your +solution? From 44a1100ce8eb56f489cd478d60dac450128bf04e Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Mon, 7 Oct 2019 23:52:11 +0200 Subject: [PATCH 02/56] rephrase, cleanup, make unhidden --- content/u/blog/hack-a-job-2019/contents.lr | 121 ++++++++++++--------- 1 file changed, 67 insertions(+), 54 deletions(-) diff --git a/content/u/blog/hack-a-job-2019/contents.lr b/content/u/blog/hack-a-job-2019/contents.lr index 1004ab6..1bcf4f1 100644 --- a/content/u/blog/hack-a-job-2019/contents.lr +++ b/content/u/blog/hack-a-job-2019/contents.lr @@ -6,7 +6,7 @@ author: ungleich --- twitter_handle: ungleich --- -_hidden: yes +_hidden: no --- _discoverable: no --- @@ -16,29 +16,31 @@ Hack a job in 42 hours and live in Switzerland afterwards. body: On the 1st of November to 3rd of November the 2019 edition of -**Hack a job** will take place in the Hacking Hotel Diesbach, +**Hack-a-job** will take place in the Hacking Hotel Diesbach, Switzerland. ## Hack a what? We are a team of hackers running the [Data Center -Light](https://datacenterlight.ch) at ungleich and we think -that hacking to get a job is the right way +Light](https://datacenterlight.ch) at [ungleich](https://ungleich.ch) +and we think that hacking to get a job is the right way of finding someone fitting to us. ## How does it work? -At hack a job you have one weekend to show your skills. You will be +At hack-a-job you have one weekend to show your skills. You will be given the choice of three different tasks and you choose one of them. - You then have 42 hours to do your best to solve the task. During these 42 hours, we will coach you and direct you into the right direction. During that time, food and drinks will be provided. +After the 42h you present your work and in the afternoon of the +Sunday, everyone will get direct feedback from the jury. + ## Who can apply? -At this Hack a job edition anybody can apply, who can start working in +At this hack-a-job edition anybody can apply, who can start working in Switzerland without special work permits. This usually includes * citizens of EU/EFTA countries @@ -52,56 +54,17 @@ Checkout for more details. Unfortunately we cannot offer anyone from "third states" to participate, as this has complicated and partially -impossible constraints for hiring attached. +impossible constraints for hiring attached. If you are a creative mind +and can convice us that you can be hired nonetheless - this might be a +good chance for earning first points. -## What if I win? - -The winner(s) of hack-a-job are getting offered the following: - -* A 1 year contract with ungleich, likely to be extended -* A monthly pre-tax salary of 2'500 CHF -* A paid stay in the Hacking Hotel with IPv6 native 10 Gbit/s network -* A halb tax (half fare) card for Switzerland - -Additionally you can request to be reimbursed for the travel expenses -to Hack-a-Job. - -### What if I don't win? - -Even if you are not selected, it is a great learning to take home. -You will get - - -## The schedule - -* 2019-10-08: Openning of CfP -* 2019-10-20: midnight UTC: close of CfP -* 2019-10-22: Notification of -* 2019-11-01: 13-15: Hacking Hotel Opens for arrival, registration -* 2019-11-01: 15-16: Introduction of the three tasks -* 2019-11-01-1700 to 2019-11-03-1100: 42 to solve the task -* 2019-11-03-1100 to 1300: Presentations -* 2019-11-03-1300 to 1500: Final lunch -* 2019-11-03-1300 to 1500: Jury meeting -* 2019-11-03-1500: Presentation of jury ratings and notification of winner(s) - -## How to prepare? - -We recommend to refresh your knowledge of the following topics prior -to participation: - -* Python3: you should be able to code mildly complex programs -* HTTP / REST: you should be able to talk REST -* Networking: Basic knowledge of IPv6 (including multicast), VLAN and - VXLAN -* OS: knowledge of either Linux or BSD, Unix commandline, Shell scripting +You should be at least 18 years old to participate. ## Who gets the job? -Up to two people can stay and to join our team. +**Up to two people** can stay and to join our team. The criteria for evaluation can be seen below. -Note: there is **no right for anyone** to the job. - +We promise to be fair, but there is **no right** to get the job. ### Degree of success @@ -135,5 +98,55 @@ Did you follow the unix philosophy? ### Communication Work is only worth something, if other team members can work with -you. How do you communicate with the mentors, how do you present your -solution? +you. How do you communicate with the mentors? +How do you present your solution? + +## What if I win? + +The winner(s) of hack-a-job are getting offered the following: + +* A 1 year contract with ungleich, likely to be extended +* A monthly pre-tax salary of 2'500 CHF +* A paid stay in the Hacking Hotel with native IPv6 10 Gbit/s network +* A halb tax (half fare) card for Swiss trains + +Additionally you can request to be reimbursed for the travel expenses +to Hack-a-Job. + +## What if I don't win? + +Then you probably will take home a lot of new knowledge and you will +get a certificate for participation. Also you get a good feeling for +being one of the 6 people that were invited in the first place. + +## How to prepare? + +We recommend to refresh your knowledge of the following topics prior +to participation: + +* Python3: you should be able to code mildly complex programs +* HTTP / REST: you should be able to talk REST +* Networking: Basic knowledge of IPv6 (including multicast), VLAN and + VXLAN +* OS: knowledge of either Linux or BSD, Unix commandline, Shell scripting + +## The schedule + +* 2019-10-08: Openning of CfP +* 2019-10-20: midnight UTC: close of CfP +* 2019-10-22: Notification of invitation +* 2019-11-01 1300 to 1600: Hacking Hotel opens for arrival and registration +* 2019-11-01 1600 to 1700: Introduction of the three tasks +* 2019-11-01 1700 to 2019-11-03-1100: Hack-a-Job main event! +* 2019-11-03 1100 to 1300: Presentations +* 2019-11-03 1300 to 1500: Final lunch +* 2019-11-03 1300 to 1500: Jury meeting +* 2019-11-03 1500: Presentation of jury ratings and notification of winner(s) + +## The location + +Hack-a-Job will be held in the +[Hacking +Hotel](https://hack.digitalglarus.ch/hacking-and-living-in-hotel-diesbach.html) +in Switzerland, 8777 Diesbach, Hauptstrasse 28. The nearest train +station is **Diesbach-Betschwanden**. From 0b2b281802df9c4e0f7360810ae6f3ef144e9208 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 8 Oct 2019 00:42:41 +0200 Subject: [PATCH 03/56] +chat +ignore .lektor --- Makefile | 2 +- content/u/blog/hack-a-job-2019/contents.lr | 34 +++++++++++++++++----- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 6057724..a40ffb8 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ pull: git pull publish: pull build permissions - rsync -av $(BUILDDIR)/ $(DESTINATION) + rsync -av --exclude .lektor/ $(BUILDDIR)/ $(DESTINATION) permissions: build find $(BUILDDIR) -type f -exec chmod 0644 {} \; diff --git a/content/u/blog/hack-a-job-2019/contents.lr b/content/u/blog/hack-a-job-2019/contents.lr index 1bcf4f1..614eff5 100644 --- a/content/u/blog/hack-a-job-2019/contents.lr +++ b/content/u/blog/hack-a-job-2019/contents.lr @@ -16,8 +16,8 @@ Hack a job in 42 hours and live in Switzerland afterwards. body: On the 1st of November to 3rd of November the 2019 edition of -**Hack-a-job** will take place in the Hacking Hotel Diesbach, -Switzerland. +**Hack-a-job** will take place in the +[Hacking Hotel Diesbach, Switzerland](https://hack.digitalglarus.ch/hacking-and-living-in-hotel-diesbach.html). ## Hack a what? @@ -28,19 +28,19 @@ of finding someone fitting to us. ## How does it work? -At hack-a-job you have one weekend to show your skills. You will be +At Hack-a-job you have one weekend to show your skills. You will be given the choice of three different tasks and you choose one of them. You then have 42 hours to do your best to solve the task. During these 42 hours, we will coach you and direct you into the right direction. During that time, food and drinks will be provided. -After the 42h you present your work and in the afternoon of the +After 42h you present your work and in the afternoon of the Sunday, everyone will get direct feedback from the jury. ## Who can apply? -At this hack-a-job edition anybody can apply, who can start working in +At this Hack-a-job edition anybody can apply, who can start working in Switzerland without special work permits. This usually includes * citizens of EU/EFTA countries @@ -60,11 +60,15 @@ good chance for earning first points. You should be at least 18 years old to participate. +Go [to the application page for registering!](https://survey.ungleich.ch/2/). + ## Who gets the job? **Up to two people** can stay and to join our team. The criteria for evaluation can be seen below. -We promise to be fair, but there is **no right** to get the job. + +We promise to be fair, however joining Hack-a-job does not mean +you get the job. ### Degree of success @@ -103,7 +107,7 @@ How do you present your solution? ## What if I win? -The winner(s) of hack-a-job are getting offered the following: +The winner(s) of Hack-a-job are getting offered the following: * A 1 year contract with ungleich, likely to be extended * A monthly pre-tax salary of 2'500 CHF @@ -128,7 +132,14 @@ to participation: * HTTP / REST: you should be able to talk REST * Networking: Basic knowledge of IPv6 (including multicast), VLAN and VXLAN -* OS: knowledge of either Linux or BSD, Unix commandline, Shell scripting +* Storage: knowledge of Ceph of advantage ("how to build a small cluster")! +* OS: knowledge of either Linux or BSD, Unix commandline, Shell + scripting + +### What to bring? + +You need to bring yourself, a working computer (including +wifi) with either Linux or BSD on it and a sleeping bag. ## The schedule @@ -150,3 +161,10 @@ Hack-a-Job will be held in the Hotel](https://hack.digitalglarus.ch/hacking-and-living-in-hotel-diesbach.html) in Switzerland, 8777 Diesbach, Hauptstrasse 28. The nearest train station is **Diesbach-Betschwanden**. + +## More information + +You can get in touch with us via + +* email: info at ungleich.ch +* chat: [chat.ungleich.ch](https://chat.ungleich.ch) From dfdb7613890eee57a0715f543d3328081950ab93 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 8 Oct 2019 00:44:50 +0200 Subject: [PATCH 04/56] make it public --- content/u/blog/hack-a-job-2019/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/u/blog/hack-a-job-2019/contents.lr b/content/u/blog/hack-a-job-2019/contents.lr index 614eff5..d74823d 100644 --- a/content/u/blog/hack-a-job-2019/contents.lr +++ b/content/u/blog/hack-a-job-2019/contents.lr @@ -8,7 +8,7 @@ twitter_handle: ungleich --- _hidden: no --- -_discoverable: no +_discoverable: yes --- abstract: Hack a job in 42 hours and live in Switzerland afterwards. From 96868313b766a3c34c8a304fca948c1ced8b48c9 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 8 Oct 2019 14:35:49 +0200 Subject: [PATCH 05/56] add draft blog article --- .../blog/what-is-wrong-with-ipv4/contents.lr | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 content/u/blog/what-is-wrong-with-ipv4/contents.lr diff --git a/content/u/blog/what-is-wrong-with-ipv4/contents.lr b/content/u/blog/what-is-wrong-with-ipv4/contents.lr new file mode 100644 index 0000000..c176fbb --- /dev/null +++ b/content/u/blog/what-is-wrong-with-ipv4/contents.lr @@ -0,0 +1,68 @@ +title: What is wrong with IPv4? +--- +pub_date: 2019-10-01 +--- +author: Nico Schottelius +--- +twitter_handle: NicoSchottelius +--- +_hidden: yes +--- +_discoverable: no +--- +abstract: +Why are people talking about moving to IPv6? +What is wrong with running application on IPv4? +--- +body: + +## TL;DR + +Nothing is wrong with IPv4. There is just too less of it. + +## IPv6 vs. IPv4 for end users + +At home +Not big difference at the moment +But: big potential for independence + +### Example: home automation + +All devices talk to a vendor + +You already have a bridge. Why sending data elsewhere? + +If enough IPv4: give all devices a public address. Can directly +connect to your home bridge. But you can't. NAT. + +## IPv6 vs. IPv4 for developers + +This is the section I like most. Forums with posts from developers who +recommend to turn off IPv6, to ignore it, complain about the new +format. +All of these are valid points. IPv6 is an additional protocol that +applications need to handle. + +New apps: develop IPv6 only. + + + +## IPv6 vs. IPv4 for ISPs + +- SKT +- Multiple NATs +- Need to run IPv6 anyway to provide reachability +- Easier to run end point NAT64 + + +## IPv6 vs. IPv4 for cloud providers + +Probably highest pressure for IPv4 users is on cloud + + +## Other applications + +If you know about other applications or want to enhance one of our +configuration, we invite you to join the [IPv6 +chat](https://IPv6.chat) or [write to us on +Twitter](https://twitter.com/ungleich). From ff6273e088903c04a3fcadd961ae02f2c205f462 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 8 Oct 2019 15:36:51 +0200 Subject: [PATCH 06/56] +blog Signed-off-by: Nico Schottelius --- .../contents.lr | 82 ++++++++++++++++++ .../contents.lr | 2 +- .../how-to-support-open-source/contents.lr | 30 +++++++ content/u/ipv4nat.png | Bin 0 -> 20131 bytes content/u/ipv6direct.png | Bin 0 -> 15751 bytes 5 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr create mode 100644 content/u/blog/how-to-support-open-source/contents.lr create mode 100644 content/u/ipv4nat.png create mode 100644 content/u/ipv6direct.png diff --git a/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr b/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr new file mode 100644 index 0000000..5a2ea16 --- /dev/null +++ b/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr @@ -0,0 +1,82 @@ +title: How IPv6 can help in protesters in Hong Kong +--- +pub_date: 2019-10-08 +--- +author: Nico Schottelius +--- +twitter_handle: NicoSchottelius +--- +_hidden: no +--- +_discoverable: no +--- +abstract: +Protesters in HK encounter communcation disruption by Apple. +This article shows how this can be avoided by using IPv6. +--- +body: + +Recently +Apple decided to [remove a central +app for communication in Hong +Kong](https://www.bbc.com/news/technology-49919459), just +[to add it later +again](https://www.bbc.com/news/technology-49961149). + +With this move Apple effectively disrupted the communication between +people demonstrating in Hong Kong and at the same time endangered +those who wanted to protect themselves from violance on the streets. + +In this article I want to show how this problem can be mitigated by +the use of IPv6. + +## The core problem: centralisation + +The main problem is that we depend on centralised +services. One of the questions is, why do we depend on centralised +services at all? The reason for this is that there are not enough IPv4 +addresses and for that reason we use NAT to hide multiple devices +behind one IPv4 address. Wait what? Let's take it a bit slower. + +## How NAT works + +In the old times of the Internet, every device in the Internet used to +have a public IPv4 address. However when the number of devices began +to exceed amount of officially available IPv4 addresses, NAT was +introduced and it works as follows: + +![IPv4 NAT](/u/ipv4nat.png) + +Many devices are hidden behind one Public IP address. So for a phone +to communicate with another phone, it needs to connect via a +central, publicly available IPv4 server. + +## How IPv6 solves the problem + +In the IPv6 world, there are enough IP addresses available. +So every device, every smart phone, every alarm clock, every computer +can have a public IP address. Because every device can have a public +IPv6 address, they can communicate directly with each other: + +![IPv6 direct connections](/u/ipv6direct.png) + +## How to communicate with IPv6? + +So how does it look like with IPv6? Instead of relying on a central +entity (Apple in this case), you can directly connect to the phone of +your friends. This way, you could even use your standard browser like +Firefox, Chrome or Safari to write a message to your friend's phone. + +## So, what to do now? + +At the moment IPv6 is picking up pace in deployment and ISPs +everywhere in the world are moving forward with it. However, if you do +not have IPv6 connectivity, we [provide IPv6 +VPNs](https://ungleich.ch/ipv6/vpn/) that enable you world wide to +have IPv6. + +## More IPv6 + +If you are interested in IPv6, we invite you to join the [IPv6 +chat](https://IPv6.chat) or [follow us on +Twitter](https://twitter.com/ungleich). diff --git a/content/u/blog/how-to-enable-ipv6-in-applications/contents.lr b/content/u/blog/how-to-enable-ipv6-in-applications/contents.lr index 55804b2..17240c4 100644 --- a/content/u/blog/how-to-enable-ipv6-in-applications/contents.lr +++ b/content/u/blog/how-to-enable-ipv6-in-applications/contents.lr @@ -2,7 +2,7 @@ title: How to enable IPv6 in applications --- pub_date: 2019-09-26 --- -author: Team ungleich +author: ungleich --- twitter_handle: ungleich --- diff --git a/content/u/blog/how-to-support-open-source/contents.lr b/content/u/blog/how-to-support-open-source/contents.lr new file mode 100644 index 0000000..8a859bf --- /dev/null +++ b/content/u/blog/how-to-support-open-source/contents.lr @@ -0,0 +1,30 @@ +title: How to support Open Source +--- +pub_date: 2019-10-08 +--- +author: Nico Schottelius +--- +twitter_handle: NicoSchottelius +--- +_hidden: yes +--- +_discoverable: no +--- +abstract: +How to support Open Source as a hosting company +--- +body: + +## TL;DR + +Anyone who is working on a serious open source project can apply +for a free IPv6-VM and free IPv6-VPN. + + + +## More information + +You can get in touch with us via + +* email: info at ungleich.ch +* chat: [chat.ungleich.ch](https://chat.ungleich.ch) diff --git a/content/u/ipv4nat.png b/content/u/ipv4nat.png new file mode 100644 index 0000000000000000000000000000000000000000..f29619bc2453a6f53b2769e4884cc516bc41c8e5 GIT binary patch literal 20131 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�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 literal 0 HcmV?d00001 diff --git a/content/u/ipv6direct.png b/content/u/ipv6direct.png new file mode 100644 index 0000000000000000000000000000000000000000..02c5e6e4889ca5b4ed137b28747984e8a2b0cc4f GIT binary patch literal 15751 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 literal 0 HcmV?d00001 From e307eb7315e39e0dd8c5630afbb2192c1dc91689 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 8 Oct 2019 16:45:01 +0200 Subject: [PATCH 07/56] release blog article about HK --- .../contents.lr | 21 ++++++++++++------ content/u/ipv4doublenat.png | Bin 0 -> 29313 bytes 2 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 content/u/ipv4doublenat.png diff --git a/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr b/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr index 5a2ea16..f8668d7 100644 --- a/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr +++ b/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr @@ -1,4 +1,4 @@ -title: How IPv6 can help in protesters in Hong Kong +title: How IPv6 can help protesters in Hong Kong --- pub_date: 2019-10-08 --- @@ -8,7 +8,7 @@ twitter_handle: NicoSchottelius --- _hidden: no --- -_discoverable: no +_discoverable: yes --- abstract: Protesters in HK encounter communcation disruption by Apple. @@ -49,7 +49,11 @@ introduced and it works as follows: Many devices are hidden behind one Public IP address. So for a phone to communicate with another phone, it needs to connect via a -central, publicly available IPv4 server. +central, publicly available IPv4 server. So in the end, the complete +picture looks as follows: + +![IPv4 Double NAT](/u/ipv4doublenat.png) + ## How IPv6 solves the problem @@ -70,10 +74,13 @@ Firefox, Chrome or Safari to write a message to your friend's phone. ## So, what to do now? At the moment IPv6 is picking up pace in deployment and ISPs -everywhere in the world are moving forward with it. However, if you do -not have IPv6 connectivity, we [provide IPv6 -VPNs](https://ungleich.ch/ipv6/vpn/) that enable you world wide to -have IPv6. +everywhere in the world are moving forward with it. +However, if you do not have IPv6 connectivity, +[ungleich provides IPv6 VPNs](https://ungleich.ch/ipv6/vpn/) that +enable you world wide to have IPv6. +If you are an application developer, I urge you to checkout whether +your application supports IPv6, because in the future you might enable +people to talk to each other, just by supporting IPv6 now already. ## More IPv6 diff --git a/content/u/ipv4doublenat.png b/content/u/ipv4doublenat.png new file mode 100644 index 0000000000000000000000000000000000000000..869b2f30a5cbe4be3497ad2b997575e2fa2b74b0 GIT binary patch literal 29313 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 literal 0 HcmV?d00001 From 62f0f4e1cb2845515435343d7f3b18365413c9ae Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 8 Oct 2019 16:45:47 +0200 Subject: [PATCH 08/56] +time --- .../blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr b/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr index f8668d7..6292ac1 100644 --- a/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr +++ b/content/u/blog/how-ipv6-can-help-protesters-in-honk-kong/contents.lr @@ -11,7 +11,7 @@ _hidden: no _discoverable: yes --- abstract: -Protesters in HK encounter communcation disruption by Apple. +Protesters in HK encountered communcation disruption by Apple. This article shows how this can be avoided by using IPv6. --- body: From 98782cfa52f416d87181490b78db092e42c92187 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 8 Oct 2019 17:35:22 +0200 Subject: [PATCH 09/56] add link to old blog, too --- templates/layout.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/templates/layout.html b/templates/layout.html index 01abb36..a7883d3 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -29,6 +29,7 @@ %}>ungleich.ch {% for href, title in [ ['/u/blog', 'the new ungleich blog'], + ['/blog', 'the old ungleich blog'], ] %} {{ title }} @@ -40,6 +41,6 @@ {% block body %}{% endblock %} From a6b336f0b86b5b65c260d85ba067648a54c68fe6 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 8 Oct 2019 18:51:12 +0200 Subject: [PATCH 10/56] [draft] ungleich ipv6 ecosystem --- .../the-ungleich-ipv6-eco-system/contents.lr | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 content/u/blog/the-ungleich-ipv6-eco-system/contents.lr diff --git a/content/u/blog/the-ungleich-ipv6-eco-system/contents.lr b/content/u/blog/the-ungleich-ipv6-eco-system/contents.lr new file mode 100644 index 0000000..a11e56a --- /dev/null +++ b/content/u/blog/the-ungleich-ipv6-eco-system/contents.lr @@ -0,0 +1,35 @@ +title: The ungleich IPv6 ecosystem +--- +pub_date: 2019-10-10 +--- +author: ungleich +--- +twitter_handle: ungleich +--- +_hidden: yes +--- +_discoverable: no +--- +abstract: +How to enable people with IPv6 - the ungleich IPv6 ecosystem. + +--- +body: + +As you might have noticed, we have a focus on IPv6, because we think +it is required for a sustainable development of the Internet. But what +do we actually do at ungleich to support IPv6? + +- ipv6.chat +- ipv6.blog +- ipv6 vpn +- ipv6onlyhosting +- ipv6 proxies +- posts in /r/ipv6 + + +## More IPv6 + +If you are interested in IPv6, we invite you to join the [IPv6 +chat](https://IPv6.chat) or [follow us on +Twitter](https://twitter.com/ungleich). From cd06355eda64f4f33e9daf30c769ec1584e7d76d Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 9 Oct 2019 22:16:21 +0200 Subject: [PATCH 11/56] Begin blog: isn't it too late for a data center? --- .../contents.lr | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr diff --git a/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr b/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr new file mode 100644 index 0000000..04fd7d3 --- /dev/null +++ b/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr @@ -0,0 +1,87 @@ +title: Isn't it too late to build a data center? +--- +pub_date: 2019-10-09 +--- +author: ungleich +--- +twitter_handle: ungleich +--- +_hidden: no +--- +_discoverable: yes +--- +abstract: +Is it or is it not too late to build a data center? +--- +body: + +The very valid question, +[Isn't it too late....to build a +data center?](https://twitter.com/Mac_S13/status/1181983378100424710) +was asked on Twitter and it made our team here in Glarus smile a lot +and we decided to write a blog article about this question. + +## Fiber = the advantage of a data center? + +According to the tweet, the main strength of a data center is fast +network connection, or the fiber line that you have. And nowadays, +everyone has fast fiber, so it follows that data centers are maybe not +needed anymore. + +## TL;DR + +It is not that easy. + +## How to run a data center in reality + +Some time ago we wrote about +[How to run a really green +data center](https://ungleich.ch/de/cms/ungleich-blog/2019/07/12/how-run-really-green-datacenter/). +Admittedly, the question was not about running a **green** data +center, so let's dive a bit more into it. + +Running a data center like we do at [Data Center +Light](https://datacenterlight.ch) does indeed require a fiber +connection. To be precise, actually a couple. + +## How much fiber is enough fiber? + +Don't tell anyone, but geeks are working at ungleich. And according to +geeks, there is never enough fiber. But for real, how much fiber is +needed? In our case, running a data center at 3 different locations, +requires a couple of dark fiber lines and a couple of redundant +upstream connections. Using the rule of thumb, let's say we need at +least 3 fiber connections: + +* One for location A +* One for location B +* One to connect locations A and B + +So are three fiber connections enough? + +## What is actually in a data center? + +Maybe the real question is, why would you run a data center at all? +Alright, for the geeks of us, "just because I can" is a reason, but +let's think about other cases as well. For instance we are running a +data center, because we our customers asked us to run one (easy, isn't +it?). So some years ago we started buying hardware like switches, +servers, SSDs, cables, transceivers, disks, network cards, access +points and even much, much more cables. + +And why did we do that? Because we were asked to host virtual machines +and data for our existing customers. So if you want to run a data +center, you also need a bit of hardware. + +And there comes one of the bigger problems: hardware also needs to be +turned on. And if it is on, it actually consumes energy and you do not +proper fuses. Not only the ones inside the data center, but also the +ones going into the building! + + +## More information + +You can get in touch with us via + +* email: info at ungleich.ch +* chat: [chat.ungleich.ch](https://chat.ungleich.ch) From 4831999bb4621d139dcc6792fa4d7026b5c9d457 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 9 Oct 2019 22:49:28 +0200 Subject: [PATCH 12/56] push isnt't it too late... blog post --- .../contents.lr | 75 +++++++++++++++++-- 1 file changed, 70 insertions(+), 5 deletions(-) diff --git a/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr b/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr index 04fd7d3..452df2d 100644 --- a/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr +++ b/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr @@ -16,9 +16,9 @@ Is it or is it not too late to build a data center? body: The very valid question, -[Isn't it too late....to build a +[isn't it too late....to build a data center?](https://twitter.com/Mac_S13/status/1181983378100424710) -was asked on Twitter and it made our team here in Glarus smile a lot +was asked on Twitter and it made our team here in Glarus smile a lot, and we decided to write a blog article about this question. ## Fiber = the advantage of a data center? @@ -78,10 +78,75 @@ turned on. And if it is on, it actually consumes energy and you do not proper fuses. Not only the ones inside the data center, but also the ones going into the building! +## So what do you need to run a data center? -## More information +So to run a data center, you need at least -You can get in touch with us via +* enough power (best to be 100% renewable here!) +* enough network capacity +* enough space + +These are the three base ingridients for a data center. Then the only +thing that is left, like for every good menu, is a chef. And in case +of a data center, the chef is the team running it. The team that is +available all the time, that fixes the network, replaces the disks and +servers, etc. + +## Too late or not too late? To be or not to be? + +We would like to rephrase the question a bit, because we actually +think the notion of the question was more: **Does it make sense to +start a new data center TODAY?** +So what is the answer to this seemingly easy to answer question? Does +it make sense or not? +We want to answer with a crystal clear **yes-and-no** answer. + +### Yes, build a new data center today + +We encourage everyone to actually build their own data center. Get +some IPv6 space to your home, get a bit of equipment. Even get some +servers. Maybe even some ARM servers to save some energy for a change? + +Build it, like it, maybe even fail at it. It is a great experience to +build your own. We strongly believe into decentralisation, so we +encourage distributing the Internet more to different places. + +Put all the fun stuff on it. Put your development on it. Don't forget +to backup your stuff to somewhere else, though. + +We even invite you to [join our chat](https://chat.ungleich.ch) to ask +about how to build a data center and we are more than happy to share +our experiences. + +### No, don't build a new data center today + +If you start fresh and you are not with an experienced team and you +want to offer services to other people, we disrecommend building a +data center on your own. Taking the responsibility to run things even +when you are sick, even when you want to go to holidays, even if it is +3am is not very healthy if you are not a team that works well +together. + +If you think that the world is already well off with Amazon and co., +it is also not a good idea to build one yourself. You need to be able +to stay in the business even though you get questions like "But I can +put everything to Amazon - why does it need you?" + + +## Does fiber at home make data centers redundant? + +And to answer the other implicit question asked: we think that fiber +at home actually enables the use of data centers better. So far if +your connection was slow, you had to have all your data +locally. With fiber at home, you can store your data anywhere (you +probably shouldn't, but that is a topic for a different post) and +access it quickly. + + +## More of it? + +If you want to learn more about this topic, +you can always get in touch with us as follows: * email: info at ungleich.ch -* chat: [chat.ungleich.ch](https://chat.ungleich.ch) +* open chat: [chat.ungleich.ch](https://chat.ungleich.ch) From 02e700f92515fa307482cbf9098fd8c2ccbfadb1 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 9 Oct 2019 22:50:30 +0200 Subject: [PATCH 13/56] ++ispell --- .../isnt-it-too-late-to-build-a-datacenter/contents.lr | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr b/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr index 452df2d..113dcf4 100644 --- a/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr +++ b/content/u/blog/isnt-it-too-late-to-build-a-datacenter/contents.lr @@ -86,7 +86,7 @@ So to run a data center, you need at least * enough network capacity * enough space -These are the three base ingridients for a data center. Then the only +These are the three base ingredients for a data center. Then the only thing that is left, like for every good menu, is a chef. And in case of a data center, the chef is the team running it. The team that is available all the time, that fixes the network, replaces the disks and @@ -121,7 +121,7 @@ our experiences. ### No, don't build a new data center today If you start fresh and you are not with an experienced team and you -want to offer services to other people, we disrecommend building a +want to offer services to other people, we dis-recommend building a data center on your own. Taking the responsibility to run things even when you are sick, even when you want to go to holidays, even if it is 3am is not very healthy if you are not a team that works well @@ -150,3 +150,6 @@ you can always get in touch with us as follows: * email: info at ungleich.ch * open chat: [chat.ungleich.ch](https://chat.ungleich.ch) + + From 3f4ff474de14d3f6581e5f6083efb1531f71cc84 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 10 Oct 2019 12:57:38 +0200 Subject: [PATCH 14/56] ++ blog about guessing ripe date --- .../contents.lr | 45 ++++++++++++++++++ content/u/ripe_ipv4_pool_20191010.png | Bin 0 -> 71486 bytes 2 files changed, 45 insertions(+) create mode 100644 content/u/blog/when-does-ripe-run-out-of-ipv4-addresses/contents.lr create mode 100644 content/u/ripe_ipv4_pool_20191010.png diff --git a/content/u/blog/when-does-ripe-run-out-of-ipv4-addresses/contents.lr b/content/u/blog/when-does-ripe-run-out-of-ipv4-addresses/contents.lr new file mode 100644 index 0000000..7a13de6 --- /dev/null +++ b/content/u/blog/when-does-ripe-run-out-of-ipv4-addresses/contents.lr @@ -0,0 +1,45 @@ +title: When will RIPE run out of IPv4 addresses? +--- +pub_date: 2019-10-10 +--- +author: ungleich +--- +twitter_handle: ungleich +--- +_hidden: no +--- +_discoverable: yes +--- +abstract: +This month? Next month? 2019?! +--- +body: + +As of today, +[RIPE has less than 1 million IPv4 addresses available](https://www.ripe.net/manage-ips-and-asns/ipv4/ipv4-available-pool). + +![ripe ipv4 pool](/u/ripe_ipv4_pool_20191010.png) + +So the question is, how long until RIPE does not have any IPv4 +addresses anymore? Or more specifically, +**which is the exact date on which RIPE will have run out of IPv4 +addresses**? + +We are very curious and wonder who can best predict the exact date. +And because it's a lot of fun to guess the right time, we will give +out an **IPv6 only VM for free** to the person that guesses the exact +date. + +## Guesses + +* [@zajdee](https://twitter.com/zajdee/status/1182236698266275846) 2019-11-15 +* [@pb_double](https://twitter.com/pb_double/status/1182236265233752064): + 2019-11-27 0610 UTC (very precise!) +* [@agowa338](https://twitter.com/agowa338/status/1182236572047101952) 2019-11-28 +* [@ReplicaJune](https://twitter.com/ReplicaJune/status/1182235564180942849): + 2019-12-12 + +## Want to guess? + +Just follow [@ungleich](https://twitter.com/ungleich) on Twitter +and post your guess as [a reply to our tweet](https://twitter.com/ungleich/status/1182234419102388224). diff --git a/content/u/ripe_ipv4_pool_20191010.png b/content/u/ripe_ipv4_pool_20191010.png new file mode 100644 index 0000000000000000000000000000000000000000..3f966950397f237b4fad737c5d92598bf433aad6 GIT binary patch literal 71486 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

Qfkzg>v<#}R@;rE@(?FTzoq)6(w ze_5L845}vb9~>OQZKutPHsaUf$@D?Uv9p4F|7Fj-HfRldFjRZ(%2G<$Vhs7Q{q8!C z7W=u1_8f)^-S@b0K(D@wl&!fehGfVQ5LMPqVA%T|QTSXBp>5|f5~R+ZGo=nyv|ZGr>Po!dd&PWZ=;Oj$ z)gv3^`DMfwXSyJ!T193S*Q?0y;T?laZi@)T;q{{5&i^+3vQc!kLyJxLt^y@)GBXA8 z3&P7j+i`{7DpkRiR56+?-q)>qmN!!(21{TAzEyAC6w5^~O?06}pFp{T==Gk{zVBQ} zy)Dg?oT2ITk{{J!;FtPf4Vc#2)>G<^NF1t%KX{#Xd93U$Z0{8n7MS{MihwFkn+14Q%w53%_Gt_#Jxo6lY#@< z$c4qLTj+2yNT;g1S$H7in;iq@iSe*4-6`6YkAM|VldGloc;Gjm6YBo(2 zYzo0Ql&j@b{J>U*2YI-DNeD;rK15y9!j-Kq$jWYs9>+cRW#c{_BC91?#o(#6tERLv zK()7+UFOF<6ym)1F*k*{j3vZh4BG3);ndKx<=am_k#122}{XRdMTE!v4?i6pcMQi` zBna`?a?ec?Is95!%P1)fV|U!JAis2o7g~_2>L<7LlfFSm}#Dz4l8rm$-(G$bJm z_9l8YGLC^i$geH}?&+UW)hnx-(Le z>YkO{UH5?xjVJ3*?*%^%+#@^i4F~O5^@=o~(AfmSri)m^mcYNvAL`<~g>%XZSgHP_ z;;W8lLc9jHZqam!m!smT{t&>}ZoRN)bXQ>yhHC1t&W8H^j{xYv4qdtOrGSA=Oxz28(oGrVZ0 z{KJvD=I#Cw*rGZ$8;bXEDn~d84RbP^wyqT2ykmEq;CRz5|4qR9uUVdo~ z{5x|En0zhyn1`F6d^D>~Z3x_spjC`_j2Ybis_A^meIxn1$$kW_w%FE?kHj<9Y1qw~ z`C@SW7sc_su9oO?{!R9B|1@^|S+MBS=10cGLpg{#3&OqyvWYJejqw>ILFw9Us9Uz3{|Zwu zf;vZ4AQ#3vnKAQlvWg)kZ#V*DS7G%nfh=i7)k$N8qdw@obQ{q-Xl`+gV;$$^VSXT8 zJ%A$qExEoLaMyNb!wnIJP{);Sn9AEPqXWtOp#^wv1j?* zpr;KM*xNj9(!zn+J^El#{=*PKWwbO`j^NUv?yS}Z7ELRvT>j*r*W>d>aU6R%0An3T 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