khdev.ch
Open in
urlscan Pro
2606:4700:3036::6815:1f4e
Public Scan
Submitted URL: http://khdev.ch/
Effective URL: https://khdev.ch/
Submission: On January 09 via api from US — Scanned from CH
Effective URL: https://khdev.ch/
Submission: On January 09 via api from US — Scanned from CH
Form analysis
2 forms found in the DOM<form class="gh-form" data-members-form="">
<input class="gh-form-input" type="email" placeholder="jamie@example.com" required="" data-members-email="">
<button class="gh-button" type="submit">
<span><span>Subscribe</span> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256">
<path d="M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z"></path>
</svg></span>
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
<g class="nc-loop-dots-4-24-icon-o">
<circle cx="4" cy="12" r="3"></circle>
<circle cx="12" cy="12" r="3"></circle>
<circle cx="20" cy="12" r="3"></circle>
</g>
<style data-cap="butt">
.nc-loop-dots-4-24-icon-o {
--animation-duration: 0.8s
}
.nc-loop-dots-4-24-icon-o * {
opacity: .4;
transform: scale(.75);
animation: nc-loop-dots-4-anim var(--animation-duration) infinite
}
.nc-loop-dots-4-24-icon-o :nth-child(1) {
transform-origin: 4px 12px;
animation-delay: -.3s;
animation-delay: calc(var(--animation-duration)/-2.666)
}
.nc-loop-dots-4-24-icon-o :nth-child(2) {
transform-origin: 12px 12px;
animation-delay: -.15s;
animation-delay: calc(var(--animation-duration)/-5.333)
}
.nc-loop-dots-4-24-icon-o :nth-child(3) {
transform-origin: 20px 12px
}
@keyframes nc-loop-dots-4-anim {
0%,
100% {
opacity: .4;
transform: scale(.75)
}
50% {
opacity: 1;
transform: scale(1)
}
}
</style>
</g>
</svg> <svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
<path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"></path>
<style>
.checkmark {
width: 40px;
height: 40px;
display: block;
stroke-width: 2.5;
stroke: currentColor;
stroke-miterlimit: 10;
}
.checkmark__check {
transform-origin: 50% 50%;
stroke-dasharray: 48;
stroke-dashoffset: 48;
animation: stroke .3s cubic-bezier(0.650, 0.000, 0.450, 1.000) forwards;
}
@keyframes stroke {
100% {
stroke-dashoffset: 0;
}
}
</style>
</svg> </button>
</form>
<form class="gh-form" data-members-form="">
<input class="gh-form-input" type="email" placeholder="jamie@example.com" required="" data-members-email="">
<button class="gh-button" type="submit">
<span><span>Subscribe</span> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256">
<path d="M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z"></path>
</svg></span>
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
<g class="nc-loop-dots-4-24-icon-o">
<circle cx="4" cy="12" r="3"></circle>
<circle cx="12" cy="12" r="3"></circle>
<circle cx="20" cy="12" r="3"></circle>
</g>
<style data-cap="butt">
.nc-loop-dots-4-24-icon-o {
--animation-duration: 0.8s
}
.nc-loop-dots-4-24-icon-o * {
opacity: .4;
transform: scale(.75);
animation: nc-loop-dots-4-anim var(--animation-duration) infinite
}
.nc-loop-dots-4-24-icon-o :nth-child(1) {
transform-origin: 4px 12px;
animation-delay: -.3s;
animation-delay: calc(var(--animation-duration)/-2.666)
}
.nc-loop-dots-4-24-icon-o :nth-child(2) {
transform-origin: 12px 12px;
animation-delay: -.15s;
animation-delay: calc(var(--animation-duration)/-5.333)
}
.nc-loop-dots-4-24-icon-o :nth-child(3) {
transform-origin: 20px 12px
}
@keyframes nc-loop-dots-4-anim {
0%,
100% {
opacity: .4;
transform: scale(.75)
}
50% {
opacity: 1;
transform: scale(1)
}
}
</style>
</g>
</svg> <svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
<path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"></path>
<style>
.checkmark {
width: 40px;
height: 40px;
display: block;
stroke-width: 2.5;
stroke: currentColor;
stroke-miterlimit: 10;
}
.checkmark__check {
transform-origin: 50% 50%;
stroke-dasharray: 48;
stroke-dashoffset: 48;
animation: stroke .3s cubic-bezier(0.650, 0.000, 0.450, 1.000) forwards;
}
@keyframes stroke {
100% {
stroke-dashoffset: 0;
}
}
</style>
</svg> </button>
</form>
Text Content
KHDev * Home * Author Sign in Data Analytics GOOGLE DATA ANALYTICS CERTIFICATE Get started in the high-growth field of data analytics with a professional certificate from Google. Learn job-ready skills that are in demand, like how to analyze and process data to gain key business insights. By Kevin Häusler Jul 6, 2022 Homeassistant AUTOMATED HOT PEPPER IRRIGATION Watering 52 plants by hand is a lot of work. So why not automate it? By Kevin Häusler May 24, 2022 Powershell COPYING A FILE TO ALL SUBFOLDERS AND RENAMING IT A friend asked me about this issue. He needed to copy a onenote file to all subfolders and rename the file accordingly. This is how I did it. By Kevin Häusler May 24, 2022 Projects PLANNING A RECIPE WEBSITE I have a lot of ideas for a recipe website but no idea how to implement it yet. By Kevin Häusler Apr 6, 2022 FEATURED AUTOMATED HOT PEPPER IRRIGATION Watering 52 plants by hand is a lot of work. So why not automate it? By Kevin Häusler May 24, 2022 KHGHOST THEME V1.0.0 After a busy weekend I finally finished the initial version of my new Ghost theme "KHGhost" that is being used on this website! By Kevin Häusler Mar 28, 2022 MIFLORA IN HOMEASSISTANT VIA ESP32 AND ESPHOME A quick guide how to connect miflora to homeassistant "without" Bluetooth. By Kevin Häusler Feb 26, 2022 BACKUPS WITH BORG I finally set up some backups with borg. Here is a small overview how I did it and what settings I have used. By Kevin Häusler Feb 14, 2022 KHDEV A blog about homelab stuff, 3d printing and AI/ML! Subscribe LATEST 502 ERROR WITH PLESK BEHIND NGINX PROXY MANAGER Are you getting 502 Bad Gateway Errors with Plesk behind Nginx Proxy Manager? Here is the solution! By Kevin Häusler Apr 2, 2022 KHGHOST THEME V1.0.0 After a busy weekend I finally finished the initial version of my new Ghost theme "KHGhost" that is being used on this website! By Kevin Häusler Mar 28, 2022 MIFLORA IN HOMEASSISTANT VIA ESP32 AND ESPHOME A quick guide how to connect miflora to homeassistant "without" Bluetooth. By Kevin Häusler Feb 26, 2022 FFXIV PROFIT CALCULATOR SHEET On my road to become rich in FFXIV I created a Scrip calculator in Python and I liked it so much that I wanted to create a general profit calculator for various things. By Kevin Häusler Feb 18, 2022 FFXIV PYTHON PURPLE SCRIP CALCULATOR I was trying out some things with python and the universalis marketboard api. It works but it isnt very user friendly. By Kevin Häusler Feb 18, 2022 PYTHON DOWNLOAD MANAGER One thing that helped me when I was learning python was to create small but useful scripts to confirm what I have learned. This is a script that sorts files into different folders based on their filetype. By Kevin Häusler Feb 18, 2022 UPGRADING AND CALIBRATING THE SIDEWINDER X2 While the stock configuration of the Sidewinder X2 were pretty solid there are some relatively cheap upgrades that I could implement. By Kevin Häusler Feb 15, 2022 MY NEW ARTILLERY SIDEWINDER X2 It has been over a week since I have received my 3D printer and I learned a lot about the intricacies of 3D printing. I had successes but mostly failures but those helped me understand exactly what went wrong and how to fix it. By Kevin Häusler Feb 15, 2022 BACKUPS WITH BORG I finally set up some backups with borg. Here is a small overview how I did it and what settings I have used. By Kevin Häusler Feb 14, 2022 PROJECT: MKA-CHILI.CH I am currently growing a wide varieties of hot peppers. To document the project and journey from seed to sauce I have created another ghost based blog on https://mka-chili.ch . By Kevin Häusler Feb 10, 2022 PROJECT: KEVINHAEUSLER.COM This is my personal blog that I tend to neglect due to me just taking pictures but never uploading them. By Kevin Häusler Feb 10, 2022 PROJECT: DEV.KHDEV.CH My first try at creating a "CMS/Blog" from almost scratch. It uses Nuxt with the Nuxt Content module to render markdown files into posts. I really liked designing the layout with Tailwindcss. By Kevin Häusler Feb 10, 2022 See all KHDev Powered by Ghost KHDEV A blog about homelab stuff, 3d printing and AI/ML! Subscribe