teleren/devto huggingface dataset:
Connecting to services that require jumphost from terraform
Tags: terraform, tutorial, ssh, go
Published: 2021-08-29 20:20:03

If you have services that require jumphosts to connect to them because there is no VPN, direct access, or configured zero trust mechanisms, it used to be a bit painful doing it with terraform.
Some would use things like `null_resource` to start the ssh command but still having a static number of tunnels.
Thinking of that use case, I've created a terraform provider that can play well with dependencies on resources being created like databases instances or any other services that are to be provisioned and will have a non deterministic hostname.

The cool thing is that the provider connects once to the jump host and you can have an arbitrary number of tunnels that connect to remote servers and assign a local port by using data sources. The provider itself only connects to the jump host when the first data source is being read, this will make sure that the connection only starts when you have a definitive hostname (i.e. an RDS instance that finished being provisioned). Once the jump host connection is done, many data sources can create tunnels using the same jump host connection.

## how to use it

Cutting to the chase, to use it you need to configure the provider itself with the following:
```terraform
terraform {
  required_providers {
    jumphost = {
      source = "jaysonsantos/jumphost"
      version = "0.0.2"
    }
  }
}
```
Next, configure where your jumphost is:

```terraform
provider "jumphost" {
  hostname = "my-server"
  username = "ubuntu"
}
```

Then configure the tunnels you are going to need to use:

```terraform
data "jumphost_ssh" "my_database" {
  hostname = aws_db_instance.my_database.address
  port     = aws_db_instance.my_database.port
}

// Configure a postgresql provider to use the tunnel

provider "postgresql" {
  host = "localhost" // As this will be tunneled, just use localhost
  // The port usage bellow makes sure that the provider only gets created
  // when after the database is created and the tunnel is established
  port = data.jumphost_ssh.my_database.local_port // This is the tunneled port
  // omitted the rest of the parameters
}

```

Or you can also use to reach services that you already have the host bust still need to proxy through the tunnel.
```terraform
data "jumphost_ssh" "my_api" {
  hostname = "httpbin.org"
  port     = 80
}

data "http" "my_api" {
  url = "http://localhost:${data.jumphost_ssh.my_api.local_port}/method"
}

output "api_response" {
  value = data.http.my_api.body
}
```

I hope this can help other people out there and don't forget to send issues and pull requests to my [github](https://github.com/jaysonsantos/terraform-provider-jumphost).
JavaScript Tips & Tricks #1 (undefined)
Tags: javascript
Published: 2021-08-29 20:04:41

##undefined##

En JavaScript existen **7** tipos _built-in_, a saber:

* null

* **undefined**

* boolean

* number

* string

* object

* symbol


Ahora mismo nos centraremos en _undefined._


Comencemos por comentar una mala idea xD... Desafortunadamente, a diferencia del tipo _null_ por ejemplo, _undefined_ resulta ser un identificador. ¿Qué quiere decir esto?, pues que podemos hacer locuras como esta:


    function foo() {
        var undefined = 2;
        console.log(undefined); // 2
    }

    foo();
        

Esto no podríamos hacerlo por ejemplo con _null_, ya que es una palabra reservada y no puede ser tratada como una variable.


###Operador void###

Mientras que undefined es un identificador _built-in_ que contiene el valor undefined por defecto, otra manera de obtener este valor es con el operador **void**.


La expresión _void_ __ , "vacía" cualquier valor, de manera que el resultado de la expresión es siempre el valor undefined. Esta expresión **no modifica el valor existente** solo asegura que ningún valor sea retornado de la expresión.


    var a = 42;

    console.log( void a, a ); // undefined 42
                

Por convención, la manera más común de representar el valor _undefined_ es usando la expresión **void 0**. Cabe destacar que no hay diferencia práctica entre **void 0, void 1 o undefined.**


##Resumen##
1. **undefined** es un identificador que contiene el valor undefined.

2. El operador **void** es otra manera de obtener el valor undefined y la manera más usada de obtenerlo es usando la expresión **void 0.**

###Fuentes###
[You Don't Know JS: Types & Grammar](https://books.google.es/books?id=NOFwBgAAQBAJ&lpg=PP1&dq=types%20%26%20grammar&pg=PP1#v=onepage&q=types%20&%20grammar&f=false) _escrito por Kyle Simpson_
Introduction
Published: 2021-08-29 19:55:36

Hello everyone! My name is Nick De Sanno and I am a senior at Penn State, majoring in IST with a focus in integration and application. I have a background in cyber security and IoMT which is a new and emerging field in the healthcare industry due to all of the cyber attacks in the past years.

Currently, I want to learn more about web development and specifically web components for multiple reasons. Researching web components I have found that it is still a new and emerging field which is very exciting for someone who likes to stay on top of new technologies, also it makes web development easier for people to get started. Web development can open up endless oppertunities especially when the a lot of the tools that have been cutting edge in the field are just now getting to become mainstream, giving new developers, like me, the opportunity to create something interesting.

With my very sort time researching and working with web development tools I can already tell that learning this field is going to be fun and exciting, because of all the innovations that are being made within the community. Getting a head start on a newly growing field and community like this is extremely advantageous to my career as someone who is a developer and is trying to grow their knowledge and get a good understanding in a lot of different fields.

I am excited to get started in my journey of learning how to become a web developer!
Building a habit
Tags: productivity, health, webdev, programming
Published: 2021-08-29 19:52:31


"Rome wasn't built in a day"

You probably know this quote and its meaning, which is, "Great things take time".

The same goes to building an amazing lifestyle or being a great Techie 🙂

It's all about the game of "*patience*".

If you play it right, you'll become successful, if you try to cheat, you'll fail in the process.

The #1 reason you fail in building a habit, is because you don't try to build habits, but you try to build a lifestyle.

Habit ≠ Good Lifestyle

Habits compounded = Good Lifestyle

You can't build an amazing lifestyle, without building great habits.

To build great habits, you need to be patient and build ONE at a time.

I've tried it both ways, and I've failed horribly.

I've tried building 10 habits at once and building 1 habit at a time and I've noticed the second is more effective.

Why?

I'll explain.

Think about the reason why you never succeed with your new year's resolutions?

You don't have patience.

You expect results fast.

When you start to build too many habits all at the same time, you overwhelm yourself with all these new things and when the excitement wears off, you slip out of it.

Because it's not fun anymore, you feel bored, you get disappointed because your lifestyle didn't change in a week or month.

When you focus on building one habit at a time, you don’t feel overwhelmed but you feel obliged to do it on a daily basis.

You can focus on building one habit for 21 days and then it becomes a daily ritual, after that you can start working on building another habit, and so on.

If you follow this — You will have successfully have built 17 new habits in 1 year.

Doesn't that sound crazy? 🤯

It only takes 21 days to build a habit.

So take it one step at a time, build a habit, then another, and another, compounding towards building that amazing lifestyle you want.

If I get good comments, I'll show you how to take actionable steps towards building great habits as a developer and how I track my habits and stick to them.


Disclaimer: this are all personal view that work for me if if doesn't work for you maybe build yours.

Drop by drop is the water pot filled. -Buddha
A Typewriter, but with no HTML, CSS, or JS?!
Tags: codepen, svg, html
Published: 2021-08-29 19:49:21

Apparently a battle of sorts has erupted amongst devs clamoring for the title of Best Typewriter Animator Person.

* @alvaromontoro started with a [Typewriter effect in CSS](https://dev.to/alvaromontoro/typewriter-effect-with-css-38im)
* @afif then gave us [A scalable CSS only Typewriter Effect](https://dev.to/afif/a-scalable-css-only-typewriter-effect-2opn)
* @inhuofficial has promised us an HTML-only typewriter
* And @alvaromontoro came back with an [Animated no-element typewriter ](https://dev.to/alvaromontoro/animated-no-element-typewriter-2835)

In the classic spirit of one-uppery that has arisen, it was only a matter of time before _someone_, _somewhere_ took on the most legendary of tasks: to create a typewriter animation for the web without using _anything_. No Javascript. No CSS. Not even HTML.

Behold, the power of **[Scalable Vector Graphics](https://developer.mozilla.org/en-US/docs/Web/SVG)**.

{% codepen https://codepen.io/auroratide/pen/ExXVdZG %}

Ok but actually **don't use this** if you want a typewriter animation! It's got browser compatibility and accessibility issues, but at least it's a cute experiment.

## How it works

The SVG spec has something called [Synchronized Multimedia Integration Language](https://developer.mozilla.org/en-US/docs/Web/SVG/SVG_animation_with_SMIL) (SMIL) which allows animations to be defined in the XML document directly.

For example, consider the [animate](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animate) tag. When made a child of some shape like `rect`, you can choose what attribute to animate over time and specify the way in which it changes.

So for example, the text cursor is given a simple blink animation just by adjusting the width of a rectangle between 0 and 1, and doing it discretely so it blinks:

```xml
<rect fill="black" x="0" y="4" width="1" height="12">
  <animate
    attributeName="width"
    calcMode="discrete"
    values="1; 0"
    dur="1s"
    repeatCount="indefinite" />
</rect>
```

This is the first time I've ever used SMIL, so almost certainly someone smarter than me can find a better way than adjusting an overlaying white rectangle!
findrun - TUI Search and run app in Rust 
Tags: rust, programming, help, beginners
Published: 2021-08-29 19:23:05

I have made an app that is used for searching for a file and then running it.  It is still a work in progress, but I think it is useable and useful in its current state.

[Findrun - Github repo](https://github.com/YesSeri/findrun)

You can search and choose what to open while the results are coming in, which can be useful if you are searching a lot of files. You can use the arrow keys to choose the file you want or the enter number of the file you want to open and press enter.

Feel free to open pull requests and raise issues. It is a work in progress and I would appreciate all the help I can get.

Long term I am thinking about making it a GUI app, and also thinking about prioritizing which folders to search in what order depending on you history of using the app.

What do you think?
Real World Python 🐍: Environment Setup - pyenv
Tags: python, beginners, tutorial, tooling
Published: 2021-08-29 19:22:26

You should **never ever** touch system python.

## What is system python?

System python is the python that comes installed with your operating system.

## Why shouldn't I touch it?

There are a host of reasons to not use system python.

- Not the version of python you're looking for. Maybe you want the latest features from python 3.9 but your OS only came with 3.8.
- Globally installing dependencies is never a good idea and problems with multiple versions of a dependency will have you troubleshooting on a Sunday morning.
- Your OS might have a system dependency on python which might make your entire system unusable because you managed to break python.

## pyenv

> Simple Python version management.

This tool lets us install our preferred python version and use that for our projects so that we don't have to touch system python.

{% github pyenv/pyenv no-readme %}

## Installing pyenv

### Build dependencies

pyenv builds python from source, so you will need some build dependencies to use pyenv. These dependencies vary by platform.

#### Mac
```shell
brew install openssl readline sqlite3 xz zlib
```

**Note:** Assumes you have brew installed on your machine.

#### Debian
```shell
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
```

For other systems please refer to the [official installation docs](https://github.com/pyenv/pyenv#installation).

### pyenv

```shell
curl https://pyenv.run | bash
```

This uses the [pyenv-installer](https://github.com/pyenv/pyenv-installer) project to install pyenv on your system.

## Installing a python version

Check what versions are available:
```shell
pyenv install --list
```

Install a python version
```shell
pyenv install -v 3.9.5
```

## Setting python version

pyenv lets us set the python version globally, locally in our project and even for a particular shell.

![Pyenv pyramid - System python at the bottom, above it global python, above it local python and at the top shell python](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yh9l7zbv7t1ngrllapri.png)

We want to set the python version for our project so we will use `local`.

We will create our project directory and navigate into it.
```shell
mkdir quotes-scraper && cd quotes-scraper
```
And then set the python version we want to use for our project.
```shell
pyenv local 3.9.5
```
This will create a `.python-version` file in the root directory of the project. If pyenv is active in our environment, this file will automatically activate the specified python version in the project.

---

I hope you found this post useful. Please leave any feedback in the comments or DM me [@tintin_das](https://twitter.com/tintin_das) on Twitter 🐦.

{% twitter 1432055144640704512 %}
Using FHIR to Interact with Natural Language
Tags: intersystems, iris, nlp, fhir
Published: 2021-08-29 19:14:18

## Whats NLP Stands For?
NLP stands for Natural Language Processing which is a field of Artificial Intelligence with a lot of complexity and 
techniques to in short words "understand what are you talking about".

## And FHIR is...???
FHIR stands for Fast Healthcare Interoperability Resources and is a standard to data structures for healthcare. There are 
some good articles here explainig better how FHIR interact with Intersystems IRIS.

## My Solution
![picture](https://raw.githubusercontent.com/renatobanzai/fhir-chatbot/master/img/fhir_chatbot.gif)

## Chatbot to query FHIR
The most common approach in chatbots is use machine learning to train the model based in old conversations. But when the 
chatbot need to use "live" data the challenge is improved. If you already know how a machine learning model works, you know 
that is most of cases the trained model is a kind of "hadcorde" application with all decision embedded inside. If you need 
more data without retraining the model you will need to create by yourself the integrations and put your mind to work part 
in machine learning and part in software engineering.

## First Approach
To show more about FHIR I have decided to first work on questions that a healthcare professional could do to a chatbot. 
And to do this I keep the software engineering simple, using just javascript and regular expressions to look for intentions 
and entities on the chat.

## Regular Expressions
![picture](https://raw.githubusercontent.com/renatobanzai/fhir-chatbot/master/img/regular_expressions.png)

This is my favorite subject in processing texts. Regex are a powerful way to work text and match patterns. With regular 
expressions I can search for what patient the person chatting wants to know about and what question or chart he wants to see.
Myself and Web Development
Published: 2021-08-29 18:58:45

My name is Khory Mull and I am a Senior majoring in Information Sciences and Technology with a focus in Design and Development.  I am from a small town outside of Philadelphia called Kennett Square, and I currently enjoy living in the State College area.  I am excited to learn more about web devlopment and the components that make up web development.  Web development plays a prominent role more than ever and to learn about something that has such rapid functional evolution and massive social influence in our society keeps me heavily interested and invested.  I hope to learn the right web development fundamentals so that one day I can innovate technology and hopefully provide help to those who need it.  I have always been pretty interested in learning about different facets of technology, and web development is an especially interesting one.  The Back-End aspect will certainly be interesting and important to hone and improve upon, but I am most looking forward to the Front-End area of web development.  I want to create beautifully intricate and interactive web pages, and find a perfect balance between art and science.  Design is important to me, so incorporating it into web development will keep me passionate about my projects and should peak my interest throughout the rest of my career.  Also, the idea of being able to generate an independent career utilizing only web development practices feels liberating and inspiring. I am also fascinated about the history of web development, and how it came to be what we know it as today.
Hello friend👋
Tags: hello
Published: 2021-08-29 18:49:46

## Hello everyone.
I'm Roberto Ramirez, I'm from Peru but actually I live in Brazil. This is my first post in dev.to!.

Because My wife I learned to make my first lines of code.

```
console.log('Hello World')
```

That was the beginner of my career as a Software developer.

At the University I learned *Python* and *C++*, but actually I use *Javascript* for everything 😁.

### I like to ...
* read, I try to be reading during the day.
* drink Coke, yes, this is my favorite drink.
* teach, my first job was as a Spanish teacher,so I still have this passion for teaching not just my mother tongue.
* code obviously! I love to know what is behind each System.

## So..

If you have any suggestion about books or topics to learn, I'll be happy to receive it!

I'll share the things that I learned in my journal as a Software developer.

### Connect with me:
[LinkedIn](https://www.linkedin.com/in/ramirezmz)
[Instagram](https://www.instagram.com/robertopramirez/)
[GitHub](https://github.com/ramirezmz)
[Telegram](https://t.me/Ramirezmz)

### THANKS!
Welcome Back to the Open Coder!
Published: 2021-08-29 18:36:35

## Who is the Open Coder?
**Hi there!** Welcome back to the Open Coder. I will be reviving these blog posts for a final semester of school. My name is Griffin Sullivan. I'm an undergraduate student at Penn State studying Human-Centered Design and Development. I've always had a strong interest and passion for computers and technology, and for the past couple of years that passion has focused on open-source software. I like learning about web technologies, machine learning, and open-source development. I spend a lot of my time learning about these aspects of technology, because I think they have the strongest ability to create change.

## Why Web Development?
Although I listed 3 specific areas of technology, my class this semester will focus mostly on web development and some open-source software. What I enjoy about web development is the ability to share my work with anyone, and it *usually* just works. Nowadays, everyone has a browser and can check out anything you make, so it's nice that web development is very easy to share with people. I also like the clear separation of structure, design, and logic that HTML, CSS, and JavaScript provides. Beyond this, I generally just enjoy writing JavaScript. Because of my passion for open-source, obviously I'm going to like JS, since there are so many frameworks and libraries that are available for free. I'm excited to dive deeper into building web components this semester, and I can't wait to share what I make on here!

## Setting up Open Web Components
{% youtube dQljWffZCv0 %}
Raidboxes im Test: Läuft WordPress in der Box besser als auf dem privaten Server?
Tags: wordpress, hosting, performance
Published: 2021-08-31 09:41:32

---
title: Raidboxes im Test: Läuft WordPress in der Box besser als auf dem privaten Server?
published: true
date: 2021-08-29 18:34:15 UTC
tags: WordPress,hosting,performance
canonical_url: https://bloggerpilot.com/raidboxes/
---

![](https://bloggerpilot.com/wp-content/uploads/2021/08/raidboxes-review.png)

Mein ehrliches Raidboxes Review! Wenn es um WordPress geht, dann...

Der Original-Artikel erschien auf [Raidboxes im Test: Läuft WordPress in der Box besser als auf dem privaten Server?](https://bloggerpilot.com/raidboxes/).
Why is chia-blockchain trending on Github?
Tags: crypto, blockchain, python, contributorswanted
Published: 2021-08-29 18:22:10


Chia-coin [(repo)](https://github.com/Chia-Network/chia-blockchain) is a python- based open-source project where "modern cryptocurrency is built from scratch, designed to be efficient, decentralized, and secure". 
 
In contrast to Bitcoin or Ethereum, Chia coin are mined by the force of a processor or video cards, this new digital currency is mined on hard drives and SSDs.

### What's space and time-proof?
While in PoW, the client should demonstrate the work he has done, in PoS, the stake is made, PoT related to Proof-of-Space suggests verification of free hard plate space. Proof of space and proof of time improve the network's security immensely. 

### The algorithms

Notwithstanding a few similitudes to Bitcoin, Chia's code is composed without any preparation and doesn't utilize the Bitcoin codebase. 

To lessen the instability of the coin, Chia will utilize the essential hold made because of pre-cultivating. The engineers set the accompanying regions as their objectives: making an ideal blockchain for conveying applications, making the first traded on an open market cryptographic money near ETF, animating reception in partnerships and among end-clients.

Being one of the most trendy repo on github, there're plenty of issues are required to be resolved ![enter image description here](https://img.shields.io/github/issues/Chia-Network/chia-blockchain) This may be a good opportunities for you to contribute to this "green" crypto project and gain some solid coding experience.
findrun TUI - search and run files on your computer quickly
Tags: rust, help, programming, github
Published: 2021-08-29 18:19:33

I have made an app that is used for searching for a file and then running it.  It is still a work in progress, but I think it is useable and useful in its current state.

[Findrun - Github repo](https://github.com/YesSeri/findrun)

You can search and while the results are coming in, open the file you want. This can be useful when you are searching a lot of files. 

You use the arrow keys to choose the file you want, alternatively the enter index of the file you want to open and press enter.

Feel free to open pull requests and raise issues. It is a work in progress and I would appreciate all the help I can get.

Long term I am thinking about making it a GUI app, and also thinking about prioritizing which folders to search in what order depending on you history of using the app.

What do you think?