teleren/devto huggingface dataset:
I Miss The Good Old Backend Days - What Do You Prefer?
Tags: discuss, career, infra, product
Published: 2022-04-03 23:22:34

I've transitioned to product-facing engineer for about 2 years now. I wouldn't call myself a 'front-end' engineer or a 'full-stack' engineer - I don't think I'm qualified either. I've departed the pure Backend service engineer role. Now I'm working on product features, where I occasionally tap into different stacks but mostly focusing a smooth product experience.

**What do you prefer? Backend or frontend? Web or Mobile? Infra or Product?**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/024hi3qdzj225oooal8u.gif)

## The Backend Role
I'm aware of many public definitions of engineers (frontend, backend, software vs hardware, web vs mobile, or the glorious full-stack...etc). To me, I've only had 1 role previously at Amazon for 4 years - a backend engineer working on _services_. That means my role is primarily about designing and building backend APIs.

This has changed since I joined a new company. It has been 2 years since I look at API designs - I certainly miss it.

## What I Missed the Most
The decision making processing was 'simpler'.

The whole theme was about the API contract and use cases. You keep on finding corner cases and solving them, where the 'end user' is usually another team's engineers. You can disagree on many things, but all conflicts come down to certain set of mandatory use cases and another set of non-MVP use cases.

The decision making is simple in a way that, backend system do not often have to worry about the human factor - it's not user-facing. Engineers have a lot more control of the end to end system design.

## What I Don't Miss
I didn't enjoy the fact that my backend work was not usable by human beings. 

At dinner table, I'm sure we all get these questions: what do you work on? My answer is often vague because - when I say 'I work on backend system', it's really difficult for people to visualize or weigh the value of my work. 

Working on pure backend team, far from user-facing product, I was lack of many aspects of modern software development. I found out much later that there are engineers who wear many hats: user experience, end to end project timeline, collaborations with other systems. These are critical skill sets to train if I were to lead a team to build something.

## Reality
Now when I occasionally bump into people working on backend design - it just reminds me of the goold old conversations I used to have with teammates :) 

Once in a while, I wish I can dial back and just work with system that talks to systems. 

**What do you prefer to work on? Has anything changed in the past years? Backend or frontend? Web or Mobile? Infra or Product?**
i made a job site just for remote developers.
Tags: job, career, showdev, freelance
Published: 2022-04-03 23:04:10

### Hey Devs 👋! 

What started out as a frustration with the indeed.com filters became a major side project. 

introducing codie https://codie.work/ 

I intend to develop codie into a fully commercial and mainstream project, and you can help me by just visiting the site and subscribing to the mailing list. 

While the current model is similar to 'a traditional job site', I'm thinking about focusing on freelance devs as well (projects, etc) because the only real platforms for that right now are fiverr and upwork, which for the most part is dominated by people working for extremely low prices.

As for technical details, the client is completely powered by svelte-kit deployed on vercel. Firebase for db and auth and a python (fast-api) server for backend services.

And that's it for now, I'll keep you posted. Feel free to give feedback, because I need that a lot at this point.

PS: you can follow codie on twitter: https://twitter.com/codie_work
My first tech blog
Tags: beginners, javascript, programming, tea
Published: 2022-04-03 22:41:25

Hi! This is my first ever tech blog!

Not much to talk about right now as I am still a budding software engineer - so far I only know a little JavaScript, but it's enough to get into the second phase of my program at Flatiron School! If anybody is interested at all in seeing my first ever basic web app project, here is my GitHub link: https://github.com/joki9448/Phase-1-Project

I will definitely be posting more as I learn about the world of React.
A Practical Guide to Single Sign-On
Tags: programming, tutorial, node, saas
Published: 2022-04-03 22:32:59

Recently, I came across [Canming Jiang's](https://dev.to/cjddww) post [Democratize SSO for everyone](https://dev.to/cjddww/democratize-sso-for-everyone-5cec), where the author presents a narrative that 80% of SaaS products are not in SSO Portals, and that implementing SSO can take 3-6 months on average.  I disagree with this narrative, but I concede that my opinion is a result of a decade's worth of experience on both sides of single sign-on.  

Because I believe that SSO is already easily accessible, I decided to start a new blog series called **A Practical Guide to Single Sign-On**.  The goal of these posts will be to help accelerate developers with implementing SSO in their own products.  Some of the topics that I have planned for this series include:
- What is SSO?  
- Developer Resources
- No-Code solutions for SSO
- Adding SSO to a single-tenant application using node.js 
- Adding SSO to a multi-tenant application using node.js
- What SSO Looks like when it's Feature-Complete
- Tips and Tricks for Troubleshooting SSO 

Do you have any additional topics around single-sign on that are troubling you?  Drop them below in the comments, I'll try to address them as I author the individual posts.
Getting Started with Nginx
Tags: nginx, webserver, apache
Published: 2022-04-03 21:46:48

Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy, and HTTP cache. It was created in 2004 by Igor Sysoev.

Another very popular web server is Apache which existed before Nginx. However, most people prefer to use Nginx for their applications for a number of reasons:

- Faster Static Resources: Nginx serves static resources without the need for a server-side language
- It performs 2.5 times faster than Apache
- Higher Concurrency: it can potentially receive thousands of requests on a single process thread and respond to them as fast as possible


### Installing Nginx with Package Managers

**Ubuntu** - is a Linux distribution that uses the APT package manager. To install Nginx on Ubuntu, follow these steps:


- Update the package lists: **apt-get update**

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648897421790/VlsjGTvaM.png)

- Run the install command: **apt-get install nginx**

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648897520691/H_fI_UQph.png)

- Check your web server: at the end of the installation process Ubuntu starts Nginx. Run **systemctl status nginx** to check if Nginx is up and running

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648897646171/edhlOfnEW.png)


- Check your server's IP address in the browser, you should see the default Nginx landing page

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648897877639/EdTeeT8JJ.png)


**CentOS** - CentOS ships with the YUM package manager.


- Add the EPEL software repository: YUM does not come with an Nginx package and for this reason, you need to provide YUM with a package source containing Nginx. Run the **yum install epel-release **command

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648898523614/bIlRWfqmH.png)
 

- Install Nginx with the following yum command: **yum install nginx**

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648898684927/hx7GEdrGI.png)


- Start the Nginx service: Nginx will not automatically start after installation. Use the **systemctl start nginx** command to start the service. After that, check the status with **systemctl status nginx**

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648898871538/nDK9PiGTl.png)

Enter your server's IP address on the browser to check that everything worked fine. You should see the default CentOS Nginx web page

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648899063280/wrPtjpsYy.png)
Are You still Paying Taxes?  
Tags: taxation, finance, investment
Published: 2022-04-03 21:18:34


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y86k9dlcwwxlyb4dflni.jpg)

The ancient voluntary taxation system was created to ensure all people have access to food, medicine and basic humanitarian needs. However, the corrupted kings used the tax dollars to organize military, protect monarchy and build tools to kill people. When people realized the misuse of hard earned dollars; people refused to pay taxes. What rational mind would pay money to kill innocent people? 

Hence, the practice of collecting taxes involved use of force; eventually, adopted into a law to ensure social order and accountability of monarchy. Today, monarchy is replaced with corporate hierarchies, all working slaves are required to pay taxes and no option to opt out. Indeed, corporate structure operate under the illusion of democracy; which only serves billionaire class through illegal transfer of wealth from poor to the rich. 

Authoritative regimes around the world now seek to collect every penny from everyone using variety of control and enforcement mechanisms. The digital identification system is another tool for tax collectors to further oppress the working class people to pay taxes. Since humans are driven to live in peace instead of constant war, people are less like to support military complex, mass weapons and fake wars. 

The tax dollars only consented to be used to fund education, healthcare and social security; however, over 75 percent of tax revenue is used to police the poor, support military complex and create enemies abroad under false passport.  Ultimately, the endless campaign for war profit require manufacturing of lies, deception and predatory cultures that are inhuman to democracy. 

The search for government documents would only return misleading facts. Do not look up. Yes, exercise your right to vote and choose your choice of poison but none are worthy of your trust or tax dollars. Sadly, the western culture, once portrayed to be the most civilized is the least civil by all standards. #finance #taxation #investment
Suck Less - Minimalism and Simplicity
Tags: opensource, linux, minimalism, productivity
Published: 2022-04-03 21:00:38

## Introduction:
Have you ever heard about [suckless](https://suckless.org) and their philosophy? If no, then this article is just for you!

## Brief Talk:
Suckless is a famous community in the GNU/Linux world, primarily because of their philosophy and software.

The name is essentially a call-out to software developers that their software, well.. Should **Suck Less**. But what does it mean to suck less? Let's find out.

## History:
Suckless started out as a local community of developers in 2002, which eventually grew and became more wide-known in 2006-2012. Nowadays it's a relatively large community among GNU/Linux folks and is admired by many.

## Achievements:
Their main achievements are programs such as: DWM (Dynamic Window Manager), ST (Simple Terminal), II (Irc It), etc.

What makes them so good is that they provide the bare minimum for a functioning app, and let the user easily extend/configure the functionality by directly changing the source code.

A great example of this would be the previously mentioned DWM. It contains only 2000 Significant Lines of Code (I.E meaningful lines of code. So things like curly braces, empty new lines, don't count as such) which makes it very easy to change the code without breaking stuff. Its existing functionality is configured via the "config.h" file, and extended via [patching](https://dwm.suckless.org/customisation/patches_in_git/) (or diffing) the "dwm.c" file.

## Philosophy:
They adhere to the [Unix Philosophy](https://en.wikipedia.org/wiki/Unix_philosophy) of doing one thing, and doing it well.

They focus on simplicity, clarity and keeping things minimal.

They believe that most coders these days think that writing more lines of code results in bigger progress, bigger progress means bigger skill, suckless states that it's simply a delusion. What they say instead is that minimalism sets attainable goals and as such, makes development and extending easier.

A Quote from their own website:

> Ingenious ideas are simple. Ingenious software is simple. Simplicity is the heart of the Unix philosophy. The more code lines you have removed, the more progress you have made. As the number of lines of code in your software shrinks, the more skilled you have become and the less your software sucks.

## Miscellaneous:
They host a list of software that [sucks](https://suckless.org/sucks/) (Which is bad, duh), and a list of software that [rocks](https://suckless.org/rocks/) (Which is good, duh).
Suckless also gives [coding style guidelines](https://suckless.org/coding_style/) which are supposed to make your code more readable.

## Summary
To wrap things up, let's recap on things that make your software _suck less_:

- Simplicity, Clarity and Minimalism
- Extensibility
- Doing one thing, and doing it well

Thanks for Reading!

## Links and Further Reading:
https://suckless.org
https://suckless.org/coding_style
https://suckless.org/philosophy/
https://suckless.org/rocks/
https://suckless.org/sucks/
📗 My articles list
Published: 2022-04-03 20:45:49

### Frontend
{% link https://dev.to/kaziusan/history-of-stop-unnecessary-re-rendering-component-in-react--146f %}

{% link https://dev.to/kaziusan/how-i-resolved-frontend-performance-problem-with-103-input-forms-did %}

{% link https://dev.to/kaziusan/sukurorudedong-kanakunarimasu-wodouyatutechrome-dev-toolshi-yong-sitefrontnowen-ti-wojie-jue-sitanoka-53a2 %}

{% link https://dev.to/kaziusan/what-ive-done-in-frontend-code-reviews-481o %}

{% link https://dev.to/kaziusan/frontend-performance-tips-1d1p %}

{% link https://dev.to/kaziusan/ive-just-created-frontend-todo-app-with-clean-architecture-2n0f %}

{% link https://dev.to/kaziusan/cache-banana-on-your-desk-react-performance-with-react-query-5ghb %}

{% link https://dev.to/kaziusan/javascript-closure-i-think-you-can-get-what-it-is-finally-after-reading-this-14d6 %}

{% link https://dev.to/kaziusan/-is-false-what-let-me-explain-it-with-image-58ef %}

{% link https://dev.to/kaziusan/difference-between-logical-or-and-nullish-coalescing-operator-1fdb %}

{% link https://dev.to/kaziusan/return-in-useeffect-2ikm %}

{% link https://dev.to/kaziusan/objectassign-its-easier-than-you-think-24bi %} 

{% link https://dev.to/kaziusan/control-this-apply-call-1724 %}

{% link https://dev.to/kaziusan/hoisting-and-var-let-const-1b6m %}

{% link https://dev.to/kaziusan/var-let-const-31il %}

{% link https://dev.to/kaziusan/destructuring-assignment-in-javascript-2a4h %}

{% link https://dev.to/kaziusan/closure-arrow-function-extremely-short-2dhf %}

{% link https://dev.to/kaziusan/iterator-and-generator-40nm %}

{% link https://dev.to/kaziusan/for-what-prototype-536e %}

{% link https://dev.to/kaziusan/loop-and-block-scope-1bga %}

{% link https://dev.to/kaziusan/i-wanna-make-cpu-slower-than-default-setting-in-chrome-devtool--3bb %}

### Backend
{% link https://dev.to/kaziusan/what-is-database-index-4m5l %}

{% link https://dev.to/kaziusan/what-is-n1-problem-2h1a %}

{% link https://dev.to/kaziusan/how-to-resolve-n1-problem-on-rails-fl2 %}

{% link https://dev.to/kaziusan/group-by-having-join-view-sub-query-scala-sub-query-case-sql-18ch %}

{% link https://dev.to/kaziusan/sql-select-order-3mi6 %}

{% link https://dev.to/kaziusan/lets-run-deadlock-manually-sql-1h %}

### Real project
{% link https://dev.to/kaziusan/analyse-ag-grid-performance-problem-in-real-project-318m %}

{% link https://dev.to/kaziusan/why-only-my-friends-pc-doesnt-change-css-real-story-on-my-project-5887 %}

### General
{% link https://dev.to/kaziusan/-escape-from-crazy-boy-friend-explain-dependency-injection-so-easily-32fe %}

{% link https://dev.to/kaziusan/solid-open-closed-principle-explain-simply-3319 %}

{% link https://dev.to/kaziusan/solid-liskov-substitution-dont-escape-its-simpler-than-you-think-1lo9 %}

{% link https://dev.to/kaziusan/solid-interface-segregation-d5i %}

{% link https://dev.to/kaziusan/solid-dependency-inversion-399h %}

{%link https://dev.to/kaziusan/dns-record-a-mx-cname-txt-2ieg %}

### Other
{% link https://dev.to/kaziusan/how-to-change-character-code-on-mac-373c %}

{% link https://dev.to/kaziusan/my-backpackers-3d-earth-portfolio-2199 %}
😈 Let's run deadlock manually ! [SQL]
Tags: mysql, sql, database, beginners
Published: 2022-04-03 20:42:56

## 💎 What is deadlock?
This is a situation that multiple users wait for releasing each locks, and forever lock wont release.

## 💎 Let's do deadlock

### 1️⃣ create these tables
```sql
-- schema
CREATE TABLE Lefty (
    Id INT NOT NULL AUTO_INCREMENT,
    Number INT,
    PRIMARY KEY(Id)
);
CREATE TABLE Righty (
    Id INT NOT NULL AUTO_INCREMENT,
    Number INT,
    PRIMARY KEY(Id)
);

-- data
INSERT INTO Lefty (Number) VALUES (1);
INSERT INTO Righty (Number) VALUES (1);
```
**Lefty table**

|Id|Number|
|:-----|-----:|
|1|1|

**Right table**

|Id|Number|
|:-----|-----:|
|1|1|

### 2️⃣ Let's start

**1.**At first both tables start transaction, in other words they start **BLOCKING**

▼ Imagine 2 users(tabs) try to do something now at same time
![sql](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4sqswqdbbdi9eqknbkqf.png)

**2.**Execute `UPDATE Righty SET Number = Number+1;` from left tab
![query block](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ah4taab09tczgfsc3qnd.png)
 
As you see UPDATE SQL waits... and does't finish because Righty was locked before. It's gonna wait forever

**3.**While executes order2, run `UPDATE Lefty SET Number = Number+1;` from right tab
Then deadlock error appeared !! Both users wait for releasing each locks now.
![deadlock](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k36is2vsfi0ts1usg19s.png)

**Nobody can stop running because everybody waits for someone stops to stop running!**
 
---
> If deadlock error didn't appear, you could change **autocommit setting**
```sql
mysql> SELECT @@session.autocommit;
+----------------------+
| @@session.autocommit |
+----------------------+
|                    1 |
+----------------------+

-- change autocommit to 0
SET autocommit=0;
```

Thanks for reading 😎

---
(just note for me in the future)
**Nobody can stop running because everybody waits for someone stops to stop running!**
-> みんな走ってる、止まる条件は誰かが止まったら。でもみんな誰かが止まるの待ってるから、誰も止まりません。
I did it I made a react project
Tags: react, beginners, webdev, programming
Published: 2022-04-03 20:18:15

I just finished creating my first react application. Lets Go! It used two Api's one that converted crypto currency and another that had crypto related news and created a multi-page layout using the browser router npm package as well as adding some animations with styled-components. And man it was such a fun experience building this project and learning a new thing for every new concept I wanted to implement. For example my favorite thing I got to implement the JavaScript key word "confirm" to prompt the user to confirm if they wanted to delete a saved conversion and if they clicked confirm it would send a delete fetch request to remove it from my local db.json server and if they clicked cancel it wouldn't remove the item they selected. 


https://gifs.com/gif/daniel-s-react-project-WP16vx
Open Source Adventures: Episode 28: Introduction to D3
Tags: javascript, d3
Published: 2022-04-03 19:57:11

D3 is a JavaScript framework for data visualization. I've used it a bit a while back, [even created Opal Ruby bindings](https://github.com/taw/opal-d3), but that was many versions ago.

So let's see what it's like now.

### What is D3 even

D3 has far more disjointed set of functionality than most libraries or frameworks. It basically contains anything that could possibly be used for data visualization.

Here's just some of the many things you can find in D3:

* [color manipulation functions](https://github.com/d3/d3-color)
* [data fetching](https://github.com/d3/d3-fetch)
* [data interpolation system](https://github.com/d3/d3-interpolate)
* [extra data structures](https://github.com/d3/d3-collection) like `d3.set` and `d3.map`
* [extra functionality for existing JavaScript arrays](https://github.com/d3/d3-array) like `max`, `mean`, `quantile` etc.
* [generate random numbers from various distributions](https://github.com/d3/d3-random)
* [geographical data handling system](https://github.com/d3/d3-geo)
* [jQuery-like data manipulation framework](https://github.com/d3/d3-selection)
* [parsers for formats like CSV](https://github.com/d3/d3-dsv)
* [printf like formatting](https://github.com/d3/d3-format)
* [scale system](https://github.com/d3/d3-scale)
* [timer management](https://github.com/d3/d3-timer)
* [visualization components for various types of data](https://github.com/d3/d3-chord)

Back in the days, it used to be a single library doing all those things. Later it got separated into multiple separate packages, as these tasks are mostly not very related. Quite a few of them are deprecated, for example there's no real need to use `d3.set` now that JavaScript has standard `Set` built-in.

### How to use D3

You can either [get the latest D3 as a single-file script](https://cdn.jsdelivr.net/npm/d3@7) like in the olden days, or go through npm and bundlers, only requiring the parts you need, at cost of additional complexity.

After that there are two ways to use D3:

* use data manipulation parts of D3, and also its jQuery-style framework to integrate that data with the DOM
* use data manipulation parts of D3, and one of standard frameworks like React or Svelte to interact with the DOM

### Coming next

In the next few episodes, I'll write a few D3 visualizations, with different design patterns - D3+cdn, D3+npm, D3+React, D3+Svelte, and so on.