teleren/devto huggingface dataset:
Announcing my book "Rust Web Development"
Tags: rust, book
Published: 2021-11-09 20:31:20

---
title: Announcing my book "Rust Web Development"
published: true
description: 
tags: rust, book
cover_image: https://images.manning.com/192/256/resize/book/b/74ea4b7-da90-40ab-a2e8-52a72daecdb4/Gruber-MEAP-HI.png
---

## A pragmatic and "in-depth-enough" book about writing web services/applications in Rust

Hey folks! Long time since I have posted here! <a href="https://dev.to/gruberb/intro-to-web-programming-in-rust-for-nodejs-developers-lp">My original articles</a> on this platform kicked it all off for me: Getting into Rust, trying to explain to myself how to think about Rust when coming from NodeJS etc. 

One thing lead to another and now I am currently writing a book with Manning titled "Rust Web Development". I want to take you on a journey into Rust and how to think about Web Development when working with Rust.

### Ready for prime time?

Many things are new, different and at first glance, not as easy when comparing it to Java or NodeJS. However, once you understood the moving pieces, Rust is a joy to work with, a super solid language and enough great tooling to use it, right now, in production. 

It also has some tooling from the ecosystem which make it, in my view, a no-brainer to use for any future web service you are going to push to production. 

So in this short post, I want to invite you to come along with me on this journey, and figure it out as we go along converting to Rust! The language itself will eventually be used in the Linux Kernel (fingers-crossed), replace legacy systems and will find many friends in the new world which is currently built right before our eyes (Facebook calls it the metaverse...). 

### See for yourself

There is a <a href="https://rustwebdevelopment.com/">website</a> to the book, where I hopefully soon publish more little articles about Rust and the web, and I will list all talks I gave and Podcasts I am on, so you can learn more about this exciting new way of building for the web. 

And, if you made it this far, with <a href="http://mng.bz/yJmy">this link you will get a discount purchasing the book</a>.

It is currently in MEAP, but will be ready starting 2022. 

I am looking forward to your feedback!
Are you interested in these website product ideas?
Tags: design, business, webdev, saas
Published: 2021-11-09 20:28:07

Good day folks 👋! I hope you're doing good! 
If you're into website designs and development, we're looking for your opinions on product ideas!

I would appreciate your time to give feedback and opinions this survey 👇
https://www.surveymonkey.com/r/67QGZGB
Netgear Genie Smart Setup Wizard
Tags: netgear, genie, smart, setup
Published: 2021-11-09 19:57:04

Everyone wants to save themselves from intruders, especially your internet WiFi. So, every router & extender company has enabled the users to make advance changes to their routers or extenders in order to stop unauthorize users to use it. Netgear, has done the same. When it comes to Netgear extenders, if you want to make any changes to your extender use, <a href="https://mywifiextlogin.net/">https ://www mywifiext net to login</a> & make the changes. All you need to do is login to your extender admin dashboard and browse through advanced tab. There you will find all the options, which will help you change your extender’s behaviour in certain situation.
Sounds pretty easy right? But there are many cases where a user won’t get in through. They can’t even log in to mywifiext.net. The only thing it says that you are not connected to Netgear extender network. Which is a real time pain in the ass. In such situation, you may try several other methods, such as restart your computer and extender. You may also try to unplug and re-plug everything, but the chances are you will keep on the getting the same thing. So, what should you do? Well, try using different methods, for example, you can use <a href="https://1921681250.com/">192.168.1.250</a> instead of the domain name.
If nothing works out for you, then just reset your extender and start setting it up from scratch. To setup your extender you can use <a href="https://mywifiextlogin.net/download-netgear-genie-smart-setup-wizard">Netgear Genie Smart Setup Wizard</a> too. It’s not like, mywifiext.net is not a good method. But using the Netgear Genie could save you a lot of trouble.
Netgear Orbi ax4200 RBS750 Satellite setup Guide
Tags: orbi, rbs750, satellite, setup
Published: 2021-11-09 19:51:12

When you want to improve your Home Internet better, you should go for Orbi ax4200 router. But you do need to set it up with the modem and then you’ll able to enjoy your internet. Here is the guide your can use to <a href="https://orbilogin-com.net/orbi-ax4200-rbs750-setup-tri-band-add-on-satellite">setup your Netgear Orbi AX4200 RBS750 Satellite</a>.
Use the Netgear Orbi App to start the setup phase:
1. Make sure that your RBS750 Satellite is powered up and getting proper power supply.
2. Download the Orbi App on to your smartphone.
3. Open the Orbi App.
4. Click on the Home Icon Button.
5. Click on Add Satellite.
6. The Orbi App will start looking for the available satellite. Once you see your Orbi AX4200 RBS750 Satellite there select and continue with it.
7. Rest the Orbi App will guide you to perform rest of the things, which are quite easy to do.
In case, you are facing problems while following this method, then you can get things working using our help guide on Netgear Orbi RBS750 AX4200 Satellite Setup, using the <a href="https://orbilogin-com.net/">www orbilogin com or www orbilogin net</a>.
MicroServices Live #3 🏗️ AWS Infrastructure
Tags: microservices, kotlin, showdev
Published: 2021-11-09 19:23:43

En esta tercera sesión, junto a @tetexxr, crearemos en **AWS** una base de datos [postgresql](https://www.postgresql.org/) para nuestro **MicroService** "Hello World" basado en la template que usamos en **Adevinta Spain**.

Puedes ver el repositorio y el streaming de esta sesión 👇

{% github AdevintaSpain/ms-test--hello-twitch no-readme %}
{% youtube f7a-_baRon8 %}

Recuerda que en futuras sesiones mostraremos en live coding la implementación de:

* ✉️ Kafka
* 🐙 ApiGateway - [KrakenD](https://www.krakend.io/)

Síguenos en [twitter](https://twitter.com/AdevintaEng) o [twitch](https://www.twitch.tv/adevintaspaintech) para no perderte ninguna sesión!

[![Ofertas Backend](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/29o64o9b6uj5kf2beebm.png)](https://careers.adevinta.es/ofertas/?search=backend&stc=aff-blog%20dev.to-microservices%20live%20aws%20infrastructure)
Best Digital Marketing Company in Ludhiana
Tags: digital, marketing, ludhiana, company
Published: 2021-11-09 19:23:18

Digital Ludhiana is the <a href="https://www.digitalludhiana.com/digital-marketing-in-ludhiana/">best Digital Marketing Company in Ludhiana</a>, which will help you promote your business online through digital channels. We cover all sorts of market segments for digital marketing. Whether it’s a multi-national brand or a national brand.
If you are looking for professional website designers, developers for WordPress, Shopify, woo commerce, NitroSell, and other CMS developers. Contact our team to know more about our services.
You can also visit our services page:
<a href="https://www.digitalludhiana.com/digital-marketing-in-ludhiana/">Best Digital Marketing services in Ludhiana</a> | <a href="https://www.digitalludhiana.com/seo-company-in-ludhiana/">Best SEO services in Ludhiana</a> | <a href="https://www.digitalludhiana.com/website-development-in-ludhiana/">Best Website Development Company in Ludhiana</a> | <a href="https://www.digitalludhiana.com/ecommerce-website-developement-in-ludhiana/">Best eCommerce Website Designing & Development Company in Ludhiana</a> | <a href="https://www.digitalludhiana.com/website-designing-company-in-ludhiana/">Best Website Designing Company in Ludhiana</a>
What I learned from building REST APIs in 3 different languages
Tags: javascript, python, go, architecture
Published: 2021-11-09 19:00:38

While I was in bootcamp in 2020, I built REST APIs using JavaScript and Python.

Recently, using @karanpratapsingh's helpful [tutorial](https://dev.to/karanpratapsingh/build-a-rest-api-with-go-for-beginners-3gp), I got started on building a [REST API in Golang](https://github.com/Cerchie/go-rest-api).

It was during the process of following the Golang tutorial that certain things really clicked for me. I'm writing to share them with you! 

## 1. The basics of REST APIs are the same in all three of these languages

Building a REST API enabled me to establish a [CRUD pattern](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete), whether I was doing it in JavaScript, Python, or Golang. 

In each of those languages, I had many of the same considerations. Which CRUD operations did I really need for my end project? How was I going to handle errors? Security? Testing? I am now understanding by my own experience that API design can be language-agnostic! 

## 2. It's ok to build something without having memorized every last bit of the syntax 

Since I wrote my Python and JavaScript APIs in a fast-paced bootcamp, I was 'forced' to dive in headfirst after a quick review of language syntax. My Golang API is a side-project so there was none of that external pressure, and for that reason I put it off for a long time.

 But after about the twelfth video on the ins and outs of pointers, I realized it was time to get started actually building something-- because getting to know language syntaxes is like getting to know people: learning the names is the beginning, but you have to start interacting with them to understand their behavior. 

## 3. Python, JavaScript, and Golang are all different languages

I know, shocker. ;) 

But after working with them all I understand the differences better. When I only knew Python and JS, I thought maybe Golang was more like Python than I realize it is now, and that Python and JS were less alike than I think they are now.

I got hung up on the syntax differences -- `try` and `catch` in JS vs `try` and `except` in Python -- without realizing that these languages had some similarities as well. For example, JS and Python are both dynamically typed. You can declare a variable and the runtime gods will determine its type. Just try that with Golang! It won't let you, because you, as a Go developer, must declare a variable's type, it's not the runtime's concern. 

As far as similarities go, all three languages also participate in object-orientation to varying degrees/in varying ways -- as always, this depends on how you define object-orientation! That could be a whole separate blog post so I'm stopping here.

## Conclusion

If you normally build something in one language, try it in a new one! The perspective you gain may surprise you.
GitHub Actions Hackathon 2021 - Automate Password Rotation using GitHub Actions
Tags: actionshackathon21, githubactions, devsecops, github
Published: 2021-11-09 18:44:54

---
title: GitHub Actions Hackathon 2021 - Automate Password Rotation using GitHub Actions
published: true
description: GitHub Actions Hackathon 2021 Submission
tags: 'actionshackathon21, githubactions, DevSecOps, github'
cover_image: ''
canonical_url: null
id: 893134
series: Hackathons
date: '2021-11-09T18:44:54Z'
---

## :bulb: How to rotate VM passwords using GitHub Actions and Azure Key Vault

I decided to submit one of my github Actions hacks I did earlier this year as part of this years **ActionsHackathon21** contest.  
In my original post I demonstrate how we can implement a zero-touch fully automated solution under 15 minutes to rotate all our virtual machines local administrator passwords on a schedule by using a GitHub Actions workflow and a centrally managed Azure key vault. (The technique/concept used in the tutorial is not limited to only Virtual machines. The same concept can be used and applied to almost anything that requires secret rotation).

Here is the link to the original post, enjoy!

{% link <https://dev.to/pwd9000/automate-password-rotation-with-github-and-azure-412a> %}

## Submission Category: Wacky Wildcards

😳💥🔥 I know... ITSec Ops workflows are totally WACKY! 🔥💥😳

## Yaml File or Link to Code

{% github <https://github.com/Pwd9000-ML/Azure-VM-Password-Management> %}

- [README](https://github.com/Pwd9000-ML/Azure-VM-Password-Management/blob/master/README.md)
- [WORKFLOW](https://github.com/Pwd9000-ML/Azure-VM-Password-Management/blob/master/.github/workflows/rotate-vm-passwords.yaml)
- [LICENSE](https://github.com/Pwd9000-ML/Azure-VM-Password-Management/blob/master/LICENSE)

### _Author_

Like, share, follow me on: :octopus: [GitHub](https://github.com/Pwd9000-ML) | :penguin: [Twitter](https://twitter.com/pwd9000) | :space_invader: [LinkedIn](https://www.linkedin.com/in/marcel-l-61b0a96b/)

{% user pwd9000 %}

<a href="https://www.buymeacoffee.com/pwd9000"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=pwd9000&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff"></a>
How to become a successful Software Engineer?
Published: 2021-11-09 18:41:00

To be honest, I have no idea because my journey is still in progress 😄
But I want to share with you my lifehack on how I increase brain productivity and can do more tasks than previously.

💡All I need is a rest.

😥Previously, I overtired, worked round the clock, and did one middle task full workday. I was so nervous and stressed that it was so hard for me to focus on my duties and get tasks done. Also, I had no idea where can I find time and energy to learn new technologies and master my skills.

🤓Today I turn off my PC after 8 hours of productive work with Pomodoro tracker, have a stroll in the park near my house, go to the swimming pool. Also, I stopped reading the news, set 20 minutes timer on social networks, and spent less time on them. It is unbelievable but I can also find time and energy for English classes, programming courses, and Instagram activities.

Well, perhaps, it sounds so easy to do but it is really hard to win the battle between ambitions and self-care for me.

Stay safe and have a rest ❤️
Convert RGB to Hex color codes in JavaScript
Tags: javascript, webdev, programming, tutorial
Published: 2021-11-09 18:26:59

Sometimes you have the RGB color code but you just really want the Hex code, right? Well converting RGB to Hex is so easy in JavaScript!

```
const rgb2hex = (r, g, b) => {
    return '#' +
        (
            (1 << 24) +
            (r << 16) +
            (g << 8) +
            b
        )
        .toString(16).slice(1);
};

console.log(rgb2hex(0, 0, 0));
```

{% youtube b6ZWjOuPrnc %}
The ephemeral miniconf - It is coming
Tags: perl, raku, miniconf
Published: 2021-11-09 18:14:56

![It is coming](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6m0yy6hfkjsp0k45qht6.jpg)

I stayed a bit quiet these past days about **The ephemeral miniconf** but you can't imagine how much seriously I'm preparing the event. 

For those who are not aware, **The ephemeral miniconf** is a Perl and Raku free and online miniconf!

I'm taking it cool but I'm not this kind of guy to take it cool :grinning:

I'm this kind of guy to *meticulously* repeat and try so I get no surprise (at least I try to reduce the chances it happens to the maximum).

I will not give too much details now, since I could do a nice "making of" blog post, maybe after the event (?!) who knows :grinning:

Everything is going well, you should really book your calendar for Thursday 18th of November (next week).

Check [the timezone planner](https://everytimezone.com/s/ec3d1b5c) or see this picture:
 
![Timezone planner The ephemeral miniconf](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/09k7g36n46sheyj0crlw.png)

It's in the morning if you're in US, in the afternoon if you're in Europe and very late if you're in Asia (sorry).

The planning is still the same except that some talks have changed their title:
![The ephemeral miniconf](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ai4k0wk1swcgobuq27uj.png)

(it could change a bit inside the range, like shifting talks, but at the moment here it is)

I'm also preparing some surprises that I don't want to reveal for now.

So my message is basically, it's coming, book your calendar and I'm looking forward to see you at **The ephemeral miniconf**! :+1:
The journey begins...
Tags: beginners, programming, career, todayilearned
Published: 2021-11-09 17:55:56

In the last couple of days I finished up the Software Engineering course pre-work for Flatiron School. I feel like my basic knowledge of HTML, CSS, JavaScript has expanded but it also feels like I've only just scratched the surface.

In the coming weeks I'll be juggling course work with the holiday season. This means converting to using my laptop to do work at my mother's house while visiting for a couple of weeks over Thanksgiving. I'm hoping that I will be able to build out my own basic website very soon, and that as I learn more I'll be able to update it with new and exciting features.

I hope to make blogging a regular part of my learning process going forward, both to keep track of my own progress and show others how easy it is to pick up new skills. I'm coming to this at age 36, just left an old career because of covid-19 based anxieties (I was a production manager and live sound engineer at a venue here in Chicago) and wanting a lifestyle change.
TypeScript 4.5 adds JSDoc template tag defaults
Tags: javascript, typescript, jsdoc
Published: 2021-11-09 17:50:32

TypeScript 4.5, which is currently a release candidate, includes an exciting new feature for us [types in js](https://github.com/voxpelli/types-in-js) JSDoc users:

Defaults for template tags, [microsoft/TypeScript#45483](https://github.com/microsoft/TypeScript/pull/45483): `@template [T=string]`

I found this through when looking for a way to void `T` defaulting to `any` when no value was given in this code:

```javascript
/** @template [T=undefined] */
class ErrorWithCause extends Error {
  /**
   * @param {string} message
   * @param {{ cause?: T }} [options]
   */
  constructor (message, { cause } = {}) {
    if (cause) {
      /** @type {T} */
      this.cause = cause;
    }
    // ...
  }
}
```

Now it gets set to `undefined` when no value is provied and my [`type-coverage`](https://github.com/plantain-00/type-coverage) got closer to 100%.

And it properly compiles to:

```typescript
export class ErrorWithCause<T = undefined> extends Error {
    constructor(message: string, { cause }?: {
        cause?: T;
    } | undefined);
    cause: T;
}
```

I will push this new code to my [`pony-cause`](https://github.com/voxpelli/pony-cause) module very soon, just wanted to write this up first 🥳 

Originally posted [as a discussion](https://github.com/voxpelli/types-in-js/discussions/17) in the [types-in-js](https://github.com/voxpelli/types-in-js) community:

{% twitter 1458128109836935168 %}
React: Use the Lifecycle Method componentDidMount
Tags: javascript, react, devops, beginners
Published: 2021-11-09 17:33:12


* The best practice with React is to place API calls or any calls to your server in the lifecycle method `componentDidMount()`. This method is called after a component is mounted to the DOM. Any calls to `setState() `here will trigger a re-rendering of your component. When you call an API in this method, and set your state with the data that the API returns, it will automatically trigger an update once you receive the data.

* Below is a mock API call in `componentDidMount()`. It sets state after 2.5 seconds to simulate calling a server to retrieve data. This example requests the current total actives users for a site. In the render method, render the value of `activeUsers` in the `h1` after the text `Active Users:`.
```React
class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      activeUsers: null
    };
  }
  componentDidMount() {
    setTimeout(() => {
      this.setState({
        activeUsers: 1273
      });
    }, 2500);
  }
  render() {
    return (
      <div>
        {/* Change code below this line */}
        <h1>Active Users: </h1>
        {/* Change code above this line */}
      </div>
    );
  }
}

```

* Answer:
```React
class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      activeUsers: null
    };
  }
  componentDidMount() {
    setTimeout(() => {
      this.setState({
        activeUsers: 2324
      });
    },1500);
  }
  render() {
    return (
      <div>
        <h1>Active Users: {this.state.activeUsers} </h1>
      </div>
    );
  }
}
```
Keyboard shortcuts which will make sure you don't have to touch your mouse while writing code
Tags: vscode, javascript, webdev, beginners
Published: 2021-11-09 17:24:22

There are times when you might feel like reaching for the mouse to execute a certain task. But we all know that shifting our hand to and fro from the mouse reduces our productivity. So, 

Here are 10 keyboard shortcuts that will help you to speed up your coding process 🧵 


These shortcuts work with a majority of code editors and IDEs like VS Code, Atom, Sublime etc. If these doesn't work for you, make sure to check the settings of you editor.

Let's Begin 👇 


## 1️⃣ Copy/Cut/Paste Entire Line

You might be aware about Ctrl+C/X/V but there's a trick to it, if you don't select any portion in the line, your editor will copy/cut/paste the whole line including the line break.



## 2️⃣ Comment and Uncomment Lines

Comments are extremely handy for us, but instead of going to each and every line individually and commenting it, just highlight whatever lines you want commented and then hit

` Ctrl + /`

This command will comment and uncomment the entire line



## 3️⃣ Search for a file in your file

Navigating through a project can get hard, especially when the project is pretty big. You can just use

` Ctrl + P` 

to search for any file in your whole project.



## 4️⃣ Search for a keyword in a file and in the whole project

Searching for a keyword inside a file can be done using 

` Ctrl + F` and then pressing Enter will let you navigate through the keywords

To search in the whole project,

`Ctrl + Shift + F` is used. 



## 5️⃣ Indent and Un-indent code 

Select the code block that you need to indent and then press the Tab key to indent the whole code block. 

Similarly, to un-indent the code block, select it and press Shift + Tab



## 6️⃣ Create a new file

This might not be the most useful shortcut in bigger projects but you can create new files using 

` Ctrl + N`



## 7️⃣ Create a new line

Usually, when we have to create a new line, we place our cursor at the end of the line and press Enter, but pressing 

` Ctrl + Enter`

will create a new line just below the line where your cursor is present.



## 8️⃣ Navigate across the whole word rather than a character at a time

`Ctrl + Arrow Key` will allow you to navigate across a whole word at a time as compared to just a character

` Ctrl + Backspace ` will allow you to delete a whole word at a time


## 9️⃣ Highlighting characters and words

Holding down Shift key and pressing allow keys will allow you to highlight characters.

Similarly,

` Shift + Ctrl + Arrow keys` will allow you to highlight a whole word at a time.


##1️⃣ 0️⃣ The OG Shortcuts

` Ctrl + S` -> Save the file

` Ctrl + A` -> Select All

` Ctrl + Z` -> Undo

` Ctrl + Y` -> Redo


These are all the shortcuts you'll need to speed up your coding. Initially, it might be a little bit difficult to use them regularly.

You need to use these shortcuts consciously and in no time they'll get into your habit without you even knowing.