teleren/devto huggingface dataset:
State of Rust Web Frameworks (Server, DB)
Tags: rust, webdev, discuss
Published: 2020-04-05 01:24:34

I've seen two frameworks consistently the most talked about: Rocket and Actix-web.

<b>Rocket</b> and <b>Actix-web</b> seem to have a positive user experience and are more complete frameworks, but Rocket (for now) uses Nightly and does not have async yet and Actix-web's maintainer recently changed.
<b>Warp</b> and <b>Tide</b> are also drumming up excitement.
<b>Hyper</b>—and soon <b>async-h1</b>—perform at a lower level and form the foundation of Warp and Tide respectively.
(More at: <a href="https://lib.rs/web-programming/http-server">lib.rs/server</a>)

Tokio, Actix and async-std bring async functionality to the frameworks. Tokio is tried and true, Actix is great but is only used for Actix-web, and async-std is the final evolution of Tokio.
(More at: <a href="https://lib.rs/asynchronous">lib.rs/async</a>) 

For databases interfaces, <b>diesel</b> ORM is the most complete and popular solution. <b>SQLx</b> is angling to be the most perfect and Rusty solution (async, pure Rust, most DBMS, compile time checked).
(More at: <a href="https://lib.rs/database">lib.rs/db</a>) 

With stability, performance, features, and learning curve in mind which is best? 
Are any worth adopting yet? Why (not)?
Are they only usable for niche projects? What use cases?

*Thank you for your major contribution robertorojasr!*

<h2>Takeaways</h2>

<h4>Server</h4>

Actix-web is the best complete framework <em>today</em>. It has LTS, a community, excellent performance, and a well-equipped vertical integration. However Rocket(v0.5), Warp, and Tide should quickly challenge it.

<h4>DB Interface</h4>

If you like using ORM solutions, diesel is ready to go. Otherwise, depending on your DB and bravery you might want to wait for/jump into SQLx or try one of the many DBMS-specific option.

<h4>Overall</h4>

There are viable comprehensive Rust solutions ready-to-go out there. You can build a speed, lightweight, simple server as an at least moderately experienced Rustacean and BE dev today with limited but meaningful granularity. For less experienced  devs (like myself), Actix is the most suitable full solution, Hyper for very lightweight simple solutions, but otherwise you may run into problems with lack of documentation, shifting support, and lack of features and abstractions towards simplicity.

***I will try to keep this up to date as the discussion continues. Please notify me if anything is misrepresentative or inaccurate, or to contribute to the post.***
สรุป Make learning part of the culture @ Google
Tags: google, g2g
Published: 2020-04-05 00:45:59

---
title: สรุป Make learning part of the culture @ Google
published: true
description: ที่ Google เค้ามีโปรแกรมภายในที่ชื่อ g2g ("Googlers-to-Googlers") พูดง่ายๆ ว่ามันคือโปรแกรมสอนกันเองนี่แหละ เค้าเลยพูดได้ว่าเค้าเป็น "the best place to learn on the planet"
tags: google, g2g
---

เคยอ่านบทความ [Make learning part of the culture](https://rework.withgoogle.com/guides/learning-development-employee-to-employee/steps/make-learning-part-of-the-culture/) เมื่อนานมาแล้ว กลับมาเขียนสรุปไว้เผื่อแวะมาอ่านกัน

คือที่ Google เค้ามีโปรแกรมภายในที่ชื่อ g2g (“Googlers-to-Googlers”) พูดง่ายๆ ว่ามันคือโปรแกรมสอนกันเองนี่แหละ และเค้ามี core believe ที่ทำให้ learning process ของเค้าเป็น "the best place to learn on the planet"

1. **Learning is a process.** - มันคือการมี motivation และการที่เราได้โอกาสฝึกฝนตัวเองรัวๆ และได้ feedback กับสิ่งที่เราทำ
1. **Learning happens in real life.** - เราเรียนรู้ และเจอสิ่งที่ท้าทาย ตลอดเวลาในชีวิตจริง
1. **Learning is personal.** - แต่ละคนมี learning style ที่แตกต่างกัน ผมเคยฟังโน้สอุดม เค้าพูดเปรียบว่าเด็กแต่ละคนเหมือนผลไม้คนละชนิดกัน บางคนเป็นมะนาว บางคนเป็นแตงโม ซึ่งผลไม้แต่ละชนิดนั้นมีช่วงเวลาที่ออกดอกออกผลที่แตกต่างกัน เราจะไปยัดเยียดวิธีเรียนรู้สำหรับคนที่เป็นมะนาว ให้กับคนที่แตงโม ไม่ได้.. โคตรจะจริง
1. **Learning is social.** - ที่ Google เค้าสนับสนุนสภาพแวดล้อมที่ทำให้ Googlers ทุกคนสามารถช่วยเหลือ และสนับสนุนกันได้ง่าย

พารากราฟสุดท้ายในบทความเป็นพารากราฟที่ผมชอบมาก ขอยกมาแปะไว้ตรงนี้ด้วย

> The g2g team is often asked: “How do you motivate people to do something outside their core job?” The answer is actually pretty simple; trust people to do great work, give them tools and feedback, show them how it connects to the big picture, and then step aside. When the team focused their strategy around trust and support, participants have consistently exceeded expectations.
A team with long experience in waterfall  experienced agile development.
Tags: agile
Published: 2020-04-05 00:35:54

# Summary
I works as a consultant and coached a team with long experience in waterfall to develop a product by agile. I lectured some agile practices and I asked what they thought about them.

# Practices which I lectured
* Sprint
* Task management with Kanban
* Test Driven Development
* Pair Programming
* Refactoring
* Estimation by story points

## Impressions of introducing Sprint
* In the first sprint, we only focused on the most valuable feature so we designed it and coded it immediately. I thought it was good that the span of PLAN to DO was short. Because in the watarfall case we cannot DO(coding) until we PLAN(design) everything and this is too slow to verify that the product is really valuable.

## Impressions of introducing Task management with Kanban
* Task size was smaller than we do in the watarfall and I was glad I could concentrate on the small task. I didn't need to see other modules or functions.
* I could see who do what, so I didn't need to worry about progress.


## Impressions of introducing Test Driven Development
* It was very interesting to develop product gradually.
* Test driven development seems to be incompatible when test specifications and test reports are requested as deliverables
* I think it's very interesting that the test behaves like a specification, so I'd like to actively incorporate it if I can get the customer's understanding.


## Impressions of introducing Pair Programming
* Troubles are solved immediately and it is easy to do (less time spent worrying alone)
* I spend more time thinking or doing research than coding, so I thought pair programming does not decrease productivity.
* It seems to be incompatible with man-month calculation.
* There is no atmosphere of coding with people(normally alone) in the current position, so introduction of pair programming seems to have psychological obstacles.

## Impressions of introducing Refactoring
* The end of production means the end of the project in watarfall, so there's not much motivation for refactoring.
* Code doesn't have to be pretty. If it move, OK!
* But I know I should code cleanly.
* Because specification of product can change every weeks in agile development, it's important to keep the code base so that changes can be accepted.

## Impressions of introducing Estimation by story points
* Accuracy was higher than estimated by feeling
* I was able to experience that the accuracy improved with each sprint

# Conclusion

Waterfall development is vulnerable to change, and programmers at the site are aware of it.
The importance of doing things like "I don't know what the user wants. Let's make a hypothesis and receive feedback to grow the product" is increasing in this age.
In doing so, the above agile practices may be helpful.

# I want your comment.
I am Japanese and in Japan almost all of development is waterfall.
I work as a consultant to change their mind, skill, or company system to move to agile from waterfall.
I want to know about your country case.
What would be the best choice later on?
Published: 2020-04-05 00:34:34

Hello guys.
Since COVID has affected our original lives, I am in the need to get remote jobs.
I know that there are lots of frameworks and developers on the job sites.
So it would be important to learn the right skills.

I am going to choose the best framework for web development to learn later on.
I am now considering Node js/Express js, PHP/Laravel/Symfony, Python/Django/Flask, Ruby on Rails as well as ASP.NET CORE for the backend.
And React js, Vue js, Angular, Svelte for the frontend.

Not sure which is the best one to learn to get more jobs in the freelancing market place.

When it comes to the backend, I've heard that it goes without saying that ASP.NET CORE and Laravel have the largest amount of jobs in market places like Upwork.com, linkedin.com and so on.
However, it is true that it would be hard to get this kind of job since there are tons of PHP, ASP.NET developers.
Meanwhile, the cost would be quite low.

Regarding the frontend, it is obviously true that React has tons of jobs and developers on the Job sites.

What I am considering are two things.
- More chances to get jobs means low competition - (more jobs, fewer developers on market place)
- The cost
- consistency - (should keep its value at least a few more years from now)

Looking forward to your valuable comments.
Thanks in advance,
My favorite front-end debugging hack
Tags: javascript, frontend, tooltip, debugging
Published: 2020-04-05 00:14:58

---
title: My favorite front-end debugging hack
published: true
description: Using setTimeout + debugger to debug tooltips.
canonical_url: https://www.lucasjanon.com/my-favorite-tooltip-debugging-hack
tags: javascript, frontend, tooltip, debugging
---
TL;DR, the trick is:

```javascript
setTimeout(() => { debugger; }, 3000);
```

I've been using that line of code for years.
I use it once in a while, but those times, it saves me from a big headache.

You may be asking yourself... _really?_
_Can I delay a debugger statement?_
_Why would I even need to do that?_
_Why am I reading this post?_

Chill, I have a gif to answer all your questions.
I'll bring a coffee website as our example since we all love coffee ☕️:

![Debugging coffee tooltip](https://res.cloudinary.com/luqih/image/upload/v1586025007/coffee-debug_wu2uyf.gif)

>The best use case for our hack is whenever we need to change or check styles in DevTools and the element gets closed if we move the cursor or press any key.

>With that line of code, we can just put the cursor whenever we need it and wait for the debugger to start by itself without doing anything.

I hope your next impossible-to-debug tooltip finds you ready with this great hack 🚀.

Let me know in the comments if you find another use case!
Yet Another Coronavirus Dashboard
Tags: react, javascript, showdev
Published: 2020-04-05 00:12:03

I've joined countless others in creating a Coronavirus data dashboard using React. So far it's pretty bare bones. I'm planning on adding more but I thought I'd share what I built so far.

You can see the dashboard here: [https://corona-info.netlify.com/](https://corona-info.netlify.com/)

You can see the code here: [https://github.com/joeattardi/corona-info](https://github.com/joeattardi/corona-info)

I plan on adding more content soon. Next on my list is historical data charts, and maybe a map later on.
Day 004 of #100DaysOfDesign
Tags: 100daysofdesign, design, webdev
Published: 2020-04-05 00:01:52

On the 4th day of challenge, I tried creating a simple (might be stupid) website which is called "Screen Saver". Yeah strange right? I wanted to learn browser's full screen API. I wanted to create website around this to learn more about this feature.

The design is inspired from MacOS's default screen saver. This website lets user to choose his favourite emoji in screen saver along with user's custom text. And also, the website includes Dark Mode! I tried my best to implement the dark mode but it was a fast design so I might have not done great job on this.

I have used default emojis in the design, but I might change the emoji font during the development phase. I am thinking about FireFox emojis for now. Please drop a comment with your favourite emoji fonts! I appreciate your help ❤️!

**Today's design:**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/yiccb6tywdbxhkyxxqw2.png)

**Here is the design file on Figma:** https://www.figma.com/file/x4WIvMi215ClBdj561GJi1/004-Screen-Saver?node-id=0%3A1

**Plan for Day 005:** Rank JS Frameworks (Website to learn HTML Drag and Drop API)
Weekly Roundup 26
Tags: weekly, links
Published: 2020-04-09 01:21:43

---
title: Weekly Roundup 26
published: true
date: 2020-04-05 00:00:00 UTC
tags: weekly, links
canonical_url: https://www.ankursheel.com/blog/weekly-roundup-26
description: This weeks roundup contains articles/tools from Sara Viera, Tim Urban, Kent Dodd, Erik Kennedy, Michael Bierut and Charity Majors
---

Every week I come across some great articles. Here are some of the posts I feel you will enjoy reading as much as I did.

If you are using object styles for CSS-in-JS like how I am using for this blog and need to convert large blocks of CSS styles from tutorials, [CSS2JS](https://css2js.dotenv.dev/) from **Sara Viera** is a handy tool which transforms between CSS, JS objects and React props.

**Tim Urban** has a whimsical article on how the [coronavirus is manufactured](https://waitbutwhy.com/2020/03/my-morning.html) by a world much smaller than us to cause a scary global crisis so that humans can realise that they are a single team alone in a dangerous universe.

**Ahmad Shadeed** has a [deep dive on viewport units in CSS](https://ishadeed.com/article/viewport-units/) which includes the different use case for them.

**Kent Dodd** has a great tutorial on [how to build a custom dev tool using react](https://kentcdodds.com/blog/make-your-own-dev-tools) to do things like control feature toggles, latency etc.

**Erik Kennedy** has 7 rules for creating gorgeous UI’s without going into any theory. Its divided into 2 parts which you find at [Part 1](https://learnui.design/blog/7-rules-for-creating-gorgeous-ui-part-1.html) and [Part 2](https://learnui.design/blog/7-rules-for-creating-gorgeous-ui-part-2.html)

**Michael Bierut** has some great tips on [what you can do in a recession](https://designobserver.com/feature/designing-through-the-recession/7177). The best thing is that the tips make sense even in good times.

**Charity Majors** has a great post on [why they promoted their VP of Engineering from within](https://www.honeycomb.io/blog/honeycomb-welcomes-new-vp-engineering-why-its-so-important-to-look-inside-your-org-before-you-look-outside/).

Hope you enjoy reading these articles as much as I did.
TIL: inset is an upcoming shorthand for top, right, bottom and left
Tags: css
Published: 2020-04-05 16:14:07

---
title: TIL: inset is an upcoming shorthand for top, right, bottom and left
published: true
date: 2020-04-05 00:00:00 UTC
tags: css
canonical_url: https://www.stefanjudis.com/today-i-learned/inset-is-a-shorthand-for-top-right-bottom-and-left/
---

Today I was reading [CSS Findings From The New Facebook Design](https://ishadeed.com/article/new-facebook-css/), written by [Ahmad Shadeed](https://twitter.com/shadeed9). I didn't know about a new CSS property the article mentions. 

The new [CSS Logical Properties and Values Level 1](https://drafts.csswg.org/css-logical/) specification comes with lots of new CSS properties that make styling dependent on logical rather than directional conditions. New properties like `margin-inline-start` aim to replace `margin-left`. They take, for example, left and(!) right aligned languages into consideration. The addition of logical properties is another step forward to make the web as a platform more adjustable to user preferences. It means that margins, paddings, borders and others can follow the language preference. Left margins can become right margins and vice-versa. That is excellent news!

I wasn't aware of the new `inset` property. `inset` is a shorthand that corresponds to the `top`, `right`, `bottom`, and/or `left` properties. Developers can use this new CSS property to shorten common absolute positioning declarations. It follows the same syntax that developers know from `margin`/`padding` declarations.

```css
.element {
  position: absolute;
  inset: 0; 
  /* 👆 is the same as `top: 0; right: 0; bottom: 0; left: 0;` */
  inset: 1em 2em; 
  /* 👆 is the same as `top: 1em; right: 2em; bottom: 1em; left: 2em;` */
  inset: 1em 2em 3em; 
  /* 👆 is the same as `top: 1em; right: 2em; bottom: 3em; left: 2em;` */
  inset: 1em 2em 3em 4em; 
  /* 👆 is the same as `top: 1em; right: 2em; bottom: 3em; left: 4em;` */
}
```

⚠️ **[The browser support of `inset`](https://caniuse.com/#feat=mdn-css_properties_inset) is not great yet (Firefox only)**, but [PostCSS has you covered on that front](https://www.npmjs.com/package/postcss-inset).

-----

Logical properties and `inset` are a very useful addition, because who isn't tired of typing `top`, `right`, `bottom` and `left` all the time?
What Data Structures and Algorithms should mean to you
Tags: computerscience
Published: 2020-04-04 23:55:51

Cover Photo by [Tim Gouw](https://unsplash.com/@punttim?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com)

Pursuing a career in Software Engineering is a lot of work. I get a lot of advice from different angles that it seems quite overwhelming. At different points part of the advice included studying Data Structures and Algorithms. One problem I had though was that I was never satisfied with the reasons I was given to study it (maybe that was why I was always scared of it).As a self taught developer who reads materials as it comes my way and relies on answers from Stack Overflow a lot, the only reason I could conjure up for studying DS & A (Data Structures and Algorithms) was I needed to know them in order to answer questions during interviews. It wasn't till I started reading that I understood how wrong I was. 

Learning Data Structures and Algorithms isn't just about the interview – it goes beyond that. Have you ever wondered **WHY** companies want you to know these things? Its all about implementation! Data Structures were created to improve the time and space complexity. Algorithms are the steps taken to perform a given task. Now naturally, lesser steps would translate to smaller time. This is important to companies because time spent and space consumed translates to money – money for production, money for maintenance. If the software took too much time for work, it wouldn't be of much use to anyone. If it crashed as result, that would mean bringing more people in to fix it.

When we solve problems as newbies, we just hack till we find solutions. After doing this for a while, patterns begin to emerge. Now instead of going through the same painful process each time you need to solve a problem, DS & A helps us shorten the time it takes to craft a solution. Imagine immediately searching for a number in an array, I know immediately a binary search would be the fastest way to do it! It also optimizes operations for better efficiency – they take lesser time or lesser space (there are trade offs, through). A solution hacked together might work, but the difference in efficiency when compared to a solution carefully crafted using Data Structures is clear.

Bottom line, having knowledge of Data Structures and Algorithms is like a superpower. Its like the ultimate fashion trend that never goes out of style. You'll be able to implement it no matter the time or the language. Most books on the topic write solutions in pseudo code making it easier to understand despite your background. It also makes you see problems differently. Solving problems won't be about hacking things together anymore. There's a mathematical side to it all (the side that leaves me bewildered the most) but I suggest just trying to understand the basics first and ease into it slowly.

I'm still studying but would love learn more things that can be gotten out of DS & A.👋
I have my website up and running again!
Tags: transfer, website, webdev, html
Published: 2020-04-04 23:37:49

Quick update!

I had originally put up my website with a domain of .epizy.com, which was a bad idea in the first place and shit. but, now its .tk (and yes it's a free domain). but, its being hosted now thanks to https://www.freewebhostingarea.com/ (and no this is not a sponsor at all and they are not paying me to do any kind of promo).

thought i'd give them a shout out since i'm able to host the site for free and you can too! albeit with a couple of setbacks mainly (low storage server at the most) but, if you just wanna host your site just for the sake of having a site online then use https://www.freewebhostingarea.com/.

visit www.thoughtsandprayers.tk
Ludo Board with CSS
Tags: css, design, codepen, webdev
Published: 2020-04-04 22:53:53

---
title: Ludo Board with CSS
published: true
tags: css, design, codepen, webdev
---

<p>A Ludo board made from pure CSS</p>

{% codepen https://codepen.io/jo_Geek/pen/MWwMyaM %}
Asynchronous JavaScript
Tags: javascript
Published: 2020-04-04 22:52:32

I'm sure you heard of 'AJAX', and if you are a beginner, wondering what does it means and how it is used in JavaScript?

AJAX = Asynchronous JavaScript and XML. XML(Extensible Markup Language) is a format, lightweight that is used to send data from browser to server and server to browser. The most common way of sending data nowadays is a JSON (JavaScript Object Notation).

Yes, JavaScript is a synchronous language. Which means only one operation can be carried out at a time. That’s where AJAX comes into play. Using asynchronous JavaScript (such as callbacks, promises, and async/await), you can perform long network requests without blocking the main thread.

Synchronous code is executed one after the other. This means each statement has to wait for the previous one to finish executing.
```javascript
const second = () => {
    console.log('Second');
}
const first = () => {
    console.log('Hey there');
    second();
    console.log('The end');
}

first();
// Hey there
// Second
// The End
```
Asynchronous code takes statements outside of the main program flow, allowing the code after the asynchronous call to be executed immediately without waiting. I will add _setTimeout_ function, which is a timer in JavaScript, that allows us to write code that will be executed later. 
```javascript
const second = () => {
    setTimeout(() => {
      console.log('Hey There Async')
    }, 2000)
}
const first = () => {
    console.log('Hey there');
    second();
    console.log('The End');
}

first();
// Hey there
// The End
// Hey There Async (this will appear after 2 seconds)
```
_setTimeout_ does not pause the execution of the code. It only schedules something to happen in the future, and then immediately continues to the next line.
[Tutorial Git] Visualizando o commit no modo gráfico
Tags: github, gitk, git, braziliandevs
Published: 2020-04-04 22:31:26

A depender do tamanho do projeto, a visualização dos commits pelo terminal pode ser difícil. Podemos fazer a visualização em modo gráfico através do **Git repository browser**.

```
$ sudo apt install gitk
```

- **$** indica que você deve usar o **usuário comum** para fazer essa operação.
- **sudo** é o comando que dá permissões de super usuário temporariamente; assim é possível fazer a instalação de programas.
- **apt** do inglês, *Advanced Package Tool*, em português, Ferramenta de Empacotamento Avançada; é a ferramenta que nos ajuda na instalação, atualização e desinstalação de programas, entre outras funções.
- **install** é o comando de instalar, indicando ao apt o que fazer.

Assim ao digitar no terminal

```
$ gitk
```

A seguinte janela abrirá:

![visualização gráfica do fluxo do git](https://thepracticaldev.s3.amazonaws.com/i/r7rjwzgbzmlc7npmef0p.png)

## Visualizando grafo de commits

Outra maneira de visualizar o grafo de commits, porém sem instalar nada é através do comando:

```
$ git log --graph
```

Abaixo, um exemplo do retorno.

![grafo commit](https://thepracticaldev.s3.amazonaws.com/i/hlorl2jr7xmkpzx0iuxk.png)
Me & Quarantine
Tags: vue, css, saas, webdev
Published: 2020-04-04 22:13:03

this days, we quarantine in home. this days is best days from all of my age.why???????????

in this days i learn a lot about vuejs and how it works. in this days i learn a lot  about css,sass,scss and bootstrap...

i just create this post to say all of you.

all of you can do that. so let's start at this time.