teleren/devto huggingface dataset:
Style React Application – apply SCSS/CSS files to React with Webpack

Tags: react, scss, webpack
Published: 2021-05-20 08:30:29

https://grokonez.com/frontend/react/how-to-add-style-react-application-webpack

Style React Application – apply SCSS/CSS files to React with Webpack


In this tutorial, we're gonna look at how to style a React Application (apply SCSS/CSS files to React Application) with Webpack.

Related Posts:
- <a href="https://grokonez.com/frontend/how-to-build-and-run-react-application-with-webpack-react-webpack-example">Build & run React Application with Webpack – React Webpack example</a>
- <a href="https://grokonez.com/frontend/react-modal-example">React Modal example</a>

<!--more-->
<h2>Goal</h2>
We had created a <a href="https://grokonez.com/frontend/how-to-build-and-run-react-application-with-webpack-react-webpack-example">React Application</a> like this:

<img src="https://grokonez.com/wp-content/uploads/2018/03/react-note-app-goal.png" alt="react-note-app-goal" width="369" height="327" class="alignnone size-full wp-image-11398" />

Today we will know way to decorate it:

<img src="https://grokonez.com/wp-content/uploads/2018/04/react-add-styles-example-result.png" alt="react-add-styles-example-result" width="583" height="472" class="alignnone size-full wp-image-11597" />
<h2>How to</h2>
<h3>Install Packages</h3>
We need <strong>style-loader</strong>, <strong>css-loader</strong>, <strong>sass-loader</strong>, <strong>node-sass</strong> for applying CSS, SCSS file:
<pre><code class="language-json">
{
  ...
  "dependencies": {
    ...
    "style-loader": "0.20.3",
    "css-loader": "0.28.11",
    "sass-loader": "6.0.7",
    "node-sass":"4.8.3"
  }
}</code></pre>
Run cmd <code>yarn install</code> to add these packages to our application.
<h3>Configure Webpack</h3>

More at:

https://grokonez.com/frontend/react/how-to-add-style-react-application-webpack

Style React Application – apply SCSS/CSS files to React with Webpack
Hiring? 
Published: 2021-05-20 08:23:04

https://000621034.codepen.website



Hi I am new to the development industry. 
I seek to keep learning and designing.
I am also seeking an entry level position. And have my self made site here, as a demo. It is not much but it is a start. I will be updating it as I go. 

Please write me if your hiring.

Thankyou ..

And take care....
One Simple Trick to Reduce Your Memory Usage in Python
Tags: python, beginners
Published: 2021-05-20 08:18:07

# Table of Contents
1. [Intro](#Intro)
2. [List Comprehension](#List Comprehension)
3. [Generator Comprehension](#Generator Comprehension)

### Intro
Python is ultimate "getting things done" language, where you can soo easily write code and not worry too much about performance and memory. However once your program becomes large, large memory usage can significantly slow down your program. One easy way to reduce memory usage and speed up your programs is to **switch your list comprehensions into generator comprehensions**.

Lets explore this with a simple example program to sum up a range of numbers.


### List Comprehension

**Code:**
```python
import sys
my_large_list = [i for i in range(100000)]
print(sum(my_large_list))
print(f"My list is {sys.getsizeof(my_large_list)} bytes")

``` 
**Output:**

```bash
4999950000
My list is 824456 bytes
``` 


### Generator Comprehension
My code is often filled with a lot of list comprehensions, where instead we could use generators instead. Generators operate like lists, except they are evaluated "lazily", so the values are grabbed when needed.

All we need to do is use curly braces on all of our list comprehensions.

**Code:**
```python
import sys
my_large_generator_list = (i for i in range(100000))
print(sum(my_large_list))
print(f"My generator is {sys.getsizeof(my_large_generator_list)} bytes")
``` 
 **Output:**
```bash
4999950000
My list is 112 bytes
``` 

As we can see both give the same result, however the generator only uses a fraction of the memory (112 bytes instead of 824456). When you have hundreds of lists floating in your code, switching them to generators is an easy way to save on memory and increase your program's speed :).
CODING ANYTIME  ANYWHERE
Published: 2021-05-20 08:17:35

【CODING 软件研发管理】我正在使用 CODING 来提升开发效率，体验赞爆了！邀请你也来使用：https://e.coding.net/register?invite_register_token=28d400e5491d452ea23afb79202cff6c
Érase una vez en el backend de Fotocasa ...
Tags: hiring, backend, microservices, kotlin
Published: 2021-05-20 08:08:29

¿Quieres conocer cómo trabajamos en el backend de [Fotocasa](https://www.fotocasa.es)?

**Ruben Martin** @ruben_martin_lozano, Engineering Manager, y **Pedro Martínez** @pedromcarrion, Principal Engineer, nos lo cuentan en 5 pasos ...

🎯 [¿Cúal es el reto técnico al que se va a enfrentar un/a backend al entrar en fotocasa?](https://www.youtube.com/watch?v=rFnROOj_rNU&t=0s)

⛰️ [¿Qué complicaciones tenemos y cómo las vamos a superar?](https://www.youtube.com/watch?v=rFnROOj_rNU&t=36s)

🛠️ [¿Qué herramientas, lenguajes, stacks vamos a utilizar?](https://www.youtube.com/watch?v=rFnROOj_rNU&t=56s)

✍️ [¿Nos puedes mostrar tu último commit de código/pull request?](https://www.youtube.com/watch?v=rFnROOj_rNU&t=85s)

👌 [¿Nos puedes mostrar la última pull request que has revisado?](https://www.youtube.com/watch?v=rFnROOj_rNU&t=122s)


[![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/811r6mbhnrhwvqxu06hu.png)] (https://careers.adevinta.es/ofertas/?search=backend&stc=aff-blog%20dev.to-%C3%A9rase%20una%20vez%20en%20el%20backend%20de%20fotocasa%20...)
OKHttp3!!!!why simple
Published: 2021-05-20 08:03:19


# SimpleInterceptor

Simpleinceptor is the interception interface tool of Android okhttp client, which is convenient for testing or development and quick problem finding.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nd989kva02tucyj85so0.gif)![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/047nvwy63li86zo2602a.gif)

## Environmental requirements

1. Android 4.1+

2. OkHttp 3.x or 4.x

3. androidx

## git address
github ：https://github.com/smartbackme/SimpleInterceptor

**Warning * *:

> Data generated and stored when using this interceptor may contain sensitive information such as authorization or cookie headers, as well as the content of the request and response principals.

Therefore, it can only be used in the debugging process and can not be published to the online

to configure
project : build.gradle
```
buildscript {
    repositories {
        maven { url 'https://www.jitpack.io' }
    }
```
Version associated with okhttp:

If the app is integrated with okhttp3. + version, please choose version 3.0 code

If the app is integrated with okhttp3 4. + version, please choose version 4.0 code

```
okhttp3 3.+
dependencies {

    debugImplementation 'com.github.smartbackme.SimpleInterceptor:simpleinterceptor-debug:3.0'
    releaseImplementation 'com.github.smartbackme.SimpleInterceptor:simpleinterceptor-release:3.0'
}
or

okhttp3 4.+
dependencies {

    debugImplementation 'com.github.smartbackme.SimpleInterceptor:simpleinterceptor-debug:4.0'
    releaseImplementation 'com.github.smartbackme.SimpleInterceptor:simpleinterceptor-release:4.0'
}

```

use:

```

OkHttpClient.Builder()

.addInterceptor(SimpleInterceptor(context))

.build()

```
What is a headless CMS ?
Published: 2021-05-20 08:01:54

__How a traditional CMS will work ?__

CMS is content management system. A simple example is a blog. Wordpress is considered to be a traditional CMS, which developers use to publish their content online via websites or web app's.

__How content is created or modified in a traditional CMS like Wordpress ?__

In Wordpress, we are provided with a dashboard from where we can create, update or remove content. If you need any content to be modified or the User interface to be modified, you will have to either `modify in the dashboard` or `code in the native language from which the CMS was built (php for example)`. 

In a traditional CMS, both the front-end and the api required for the CMS to function are tightly coupled in the server side. 

__How a headless CMS is different__

There is no front-end in a headless CMS. It doesn't care about how you display the content to the user. It will just `expose the api` which can be consumed by front-end applications written in any language or framework. The api will provide the content to be displayed to the user, let it both a normal website or a web app.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ielxok50vve3f5kexpd.png)

One such example of an headless CMS is given below :

__Prismic__

Prismic is yet another famous headless CMS trusted by leading tech giants. Prismic basically has two things :

__1. Writing room :__

Writing room where content managers work. It's basically a web application similar to wordpress admin dashboard.

__2. API and content backend__

This is the place where the content is stored. Developers will query the api in order to fetch the content.


__Main advantage of using Prismic__

Developers can use their own known framework to build the application or website.

There is no server side infrastructure required to maintain the backend of the application, prismic takes care of the server infrastructure. 

All you have to do is create content in the writing room, then prismic gives you the api, which can be easily integrated with the front-end.
React Components example
Tags: react, components
Published: 2021-05-20 07:54:30

https://grokonez.com/frontend/react/react-components-example

React Components example

In this tutorial, we're gonna look at how to create React Components (Nesting Components, too).

Related Posts:
- <a href="https://grokonez.com/frontend/react-helloworld-example">React Hello World example</a>
- <a href="https://grokonez.com/frontend/react-component-props-example">React Component Props example</a>
- <a href="https://grokonez.com/frontend/react-state-example">React State example</a>
- <a href="https://grokonez.com/frontend/react-note-application-react-example-with-react-props-state-example">React Note Application – React props and state example</a>

<!--more-->
<h2>I. Technologies</h2>
- React 16
- NodeJs 6.11.2
- NPM 3.10.10
- Yarn 1.5.1
- Babel 6.24.1
<h2>II. How to</h2>
<h3>1. Create a Component</h3>
To do this, we extend <code>React.Component</code>, then return template for component inside <code>render()</code> method
<pre><code class="language-javascript">class MyComponent extends React.Component {
    render() {
        return (
            &lt;div&gt;
                &lt;h2&gt;Java Sample Approach&lt;/h2&gt;
                &lt;h4&gt;Java/JavaScript Technology - Spring Framework&lt;/h4&gt;
            &lt;/div&gt;
        )
    }
}</code></pre>
<h3>2. Create Nesting Component</h3>
Nesting Component contains one or many Components. We use tags specified for nested Components like this:
<pre><code class="language-html">class MyComponent extends React.Component {
    render() {
        return (
            &lt;div&gt;
                &lt;h2&gt;Java Sample Approach&lt;/h2&gt;
                &lt;ChildOne /&gt;
                &lt;ChildTwo /&gt;
                &lt;ChildThree /&gt;
            &lt;/div&gt;
        )
    }
}

class ChildOne extends React.Component { ... }
class ChildTwo extends React.Component { ... }
class ChildThree extends React.Component { ... }</code></pre>
<h2>III. Practice</h2>
<h3>1. Overview</h3>
<img src="https://grokonez.com/wp-content/uploads/2018/03/react-components-example-overview.png" alt="react-components-example-overview" width="677" height="475" class="alignnone size-full wp-image-11347" />

We have 5 Components: <em>NoteApp</em>, <em>Header</em>, <em>Notes</em>, <em>Note</em>, <em>Action</em>.
NoteApp and Notes are nesting Components that contain other Components:
- <em>Notes</em> contains 3 <em>Note</em>
- <em>NoteApp</em> contains <em>Header</em>, <em>Notes</em> and <em>Action</em>
<h3>2. Project Structure</h3>
<img src="https://grokonez.com/wp-content/uploads/2018/03/react-example-project-structure.png" alt="react-example-project-structure" width="189" height="215" class="alignnone size-full wp-image-11329" />
<h3>3. Step by Step</h3>
<h4>3.0 Set up Environment</h4>
We need NodeJs, Yarn and Babel to compile and run this example.
Please visit <a href="https://grokonez.com/frontend/react/react-helloworld-example#I_Set_up_Environment">Set up Environment</a> for step by step.

More at:

https://grokonez.com/frontend/react/react-components-example

React Components example
N2 platform – Shattering Top 3 Hindrances Faced By Banks!
Tags: n2coin, cryptocurrency, blockchain, finance
Published: 2021-05-20 07:51:21

N2 coins provides a profitable solution for banks and financial institutions to overcome their existing challenges. Let us explore more and understand how they enhance traditional banks by breaking down the hindrances and fulfills the customers’ needs.

Explore More >> https://blog.n2coin.io/top-3-hindrances-faced-by-banks/
React Hello World example
Tags: react
Published: 2021-05-20 07:43:35

https://grokonez.com/frontend/react/react-helloworld-example

React Hello World example

In this tutorial, we're gonna look at how to create a simple React Hello World Application in NodeJs runtime, Yarn dependency management and Babel transpiler.

<!--more-->
<h2>I. Set up Environment</h2>
<h3>1. Install Node.js</h3>
Go to <a href="https://nodejs.org">NodeJs website</a>, download and install it on your PC.
You can check if the process finished with cmd:
<pre><code class="language-javascript">
> node -v
v6.11.2
</code></pre>
<h3>2. Install Yarn</h3>
Yarn is a package management in your web projects. It is fully backward compatible with the <strong>npm</strong> package manager structure (<strong><em>package.json</em></strong> and <strong><em>node_modules</em></strong>).

To install Yarn, run this cmd: <code>npm install -g yarn</code>
Then check Yarn version to determine that the installation is successful.
<pre><code class="language-javascript">
> yarn -v
1.5.1
</code></pre>
<h3>3. Install Babel CLI</h3>
Babel is a transpiler for JavaScript, it can turn JSX into React function calls.
For example:
<pre><code class="language-html">var template = &lt;p id='tempId'&gt;Java Technology - Spring Framework&lt;/p&gt;;</code></pre>
will be translated into:
<pre><code class="language-html">
var template = React.createElement(
  'p',
  { id: 'tempId' },
  'Java Technology - Spring Framework'
);</code></pre>
To install Babel, run this cmd: <code>npm install -g babel-cli@6.24.1</code>.
Then add Babel to Yarn: <code>yarn global add babel-cli</code>:

<img src="https://grokonez.com/wp-content/uploads/2018/03/react-hello-world-exampe-yarn-add-babel.png" alt="react-hello-world-example-yarn-add-babel" width="696" height="215" class="alignnone size-full wp-image-11302" />
<h2>II. React Hello World Example</h2>
<h3>1. Technologies</h3>
- React 16
- NodeJs 6.11.2
- NPM 3.10.10
- Yarn 1.5.1
- Babel 6.24.1

More at:

https://grokonez.com/frontend/react/react-helloworld-example

React Hello World example
Query system up time in powershell
Tags: powershell
Published: 2021-05-20 07:41:16

1. Download PowerShell 6.0 or later from [here](https://github.com/PowerShell/PowerShell/releases/tag/v7.1.3)
2. Install it. PowerShell 7.1 installs to a new directory and runs side-by-side with Windows PowerShell 5.1. 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hyrpl7f6bnc7421z9jf6.PNG)
Recorded or live demos during presentations?
Tags: presenting, devrel, discuss, watercooler
Published: 2021-05-20 07:34:24

It's an age old debate within the IT industry, or tech public speaking community, should your demos within presentations be live or recorded?

I'm personally on the side of recording demos and using them, as it gives you the ability to focus on the narrative rather than button pressing/typing commands etc. In the virtual world that we are living in, using videos to demo something in say Microsoft Azure means my Internet connection isn't having to deal with presenting my video/audio/screen AND work in the cloud. 

However, as I said it's something that there is a lot of debate around, and I'd love to hear your thoughts!
Settings linter in Angular 12
Tags: angular, eslint, linter, tslint
Published: 2021-05-20 07:33:20

The new version of Angular 12 not include linters because TSLint is deprecated.

For that I'm going to put here how to add eslint in Angular 12.

Prerequisites:
 - Node js -> 12.13.x/14.15.x or later minor
 - npm
 - angular/cli -> v12

First step:
```bash
 // create project
 ng new my-new-project
```

Second step:
```bash
// install eslint as dev dependency 
npm install --save-dev eslint
// install ts rules plugin
npm i --save-dev @typescript-eslint/eslint-plugin 
// install eslint parser
npm i --save-dev @typescript-eslint/parser
```

The next step is, add the rules of our linter:
 - create new file ".eslintrc", on the root folder, with this values:
```javascript
{
    "parser": "@typescript-eslint/parser",
    "extends": [
      "plugin:@typescript-eslint/recommended",
    ],
    "parserOptions": {
      "ecmaVersion": 2021,
      "sourceType": "module"
    },
    "rules": {
               // custom rules here
    }
}
```

Last step:
Add this script in package.json
```javascript
"lint": "eslint \"**/*.{ts,tsx}\" "
```

For run:
```bash
npm run lint
```
Vue Quick Tip #01: SFC Structure
Tags: vue, codenewbie, webdev, tutorial
Published: 2021-05-20 06:42:08

If you've been writing SFC (Single File Components) in Vue you're probably familiar with this structure: 

```vue
<template></template>

<script></script>

<style></style>
```

Which is totally right and if you're comfortable using it, it's 100% ok. 

But if you think about it, when you're working on a component, you're rarely working with the `script` and `style` tags at the same time, right? 

You're always working between `template/style` or `template/script`, rarely ever `script/style`.

That's why I recommend you start using this structure instead:

```vue
<script></script>

<template></template>

<style></style>
```

This way you have less scroll distance between your targets and the template works as a clear visual "wall" between your script and your style. Once you get used to it, you won't want to go back!

That's my quick tip for today, follow me on [twitter](https://twitter.com/jordienr) if you enjoyed it :)

Have a good day!
Breaking Bad random quotes using JavaScript fetch().
Tags: javascript, github, api
Published: 2021-05-20 06:34:01

https://breaking-bad-words.herokuapp.com/ link to the implementation 

async function fetchapi(){
const apiurl = `https://breaking-bad-quotes.herokuapp.com/v1/quotes/`;
const response = await fetch(apiurl);
  let data = await response.json();
   console.log(data);
   show(data);
  }
  function show(data){
    for (var  a of data){
    var s="";
    var au=""
     s+=a.quote;
     au+=a.author;
    }
      console.log(s);
  // document.getElementById('d2').innerHTML=c+'* Celsius';
  document.getElementById('d1').innerHTML=s+'<br>-'+au;
  }
  fetchapi();
Azure Data Studio: SQL Server Import
Tags: azuredatastudio, sqlserver, database, andreacarratta
Published: 2021-05-20 06:28:42

🛠️ Azure Data Studio: SQL Server Import 



⚠️ Importare file non è mai stato cosi semplice!



Quante volte ti sarà capitato di dovere importare i cosiddetti flat file all'interno di una tabella di #SQLServer?



➡️ Da qualche tempo -grazie ad #AzureDataStudio che reputo ottimo- effettuare questa procedura è davvero un piacere!



Il tutto viene effettuato in quattro passaggi di una semplicità unica:



1️⃣ Selezione database e file



2️⃣ Preview



3️⃣ Table Schema



4️⃣ Riepilogo



Si, tutto qua! 



🔗 [Ora non vi resta che leggere l'articolo completo sul mio blog per avere tutte le indicazioni del caso!](https://links.devandreacarratta.it/4OXh)



👇 Conosci altre soluzioni per arrivare allo stesso traguardo?



✍️ Scrivile nei commenti! Il confronto è sempre un piacere :)



#andreacarratta
User input in Python
Tags: python
Published: 2021-05-20 06:19:36

Accepting user input in applications is pretty standard as we would like to have the user give us some information.

In Python we can achieve this quite easily. Today, our end goal is to make a script that asks for some details and then prints these back to the user.

![User input in Python](https://cdn.hashnode.com/res/hashnode/image/upload/v1621233230370/612fsv5xc.gif)

## Using variables in Python

First of all, we must understand how we can use variables in Python, and this process is pretty simple.

```python
animal = "cat"
print("Your favorite animal is a " + animal);
```

And this will print the following line:

Your favorite animal is a cat

Of course, I'm just guessing your favorite animal is a cat here and could be entirely off.
So let's fix that and allow the user to state the correct answer.

## Accepting inputs in Python

We can change the variable we had to `input()`, allowing us to accept user input.

```python
print("What is your favorite animal?")
animal = input()
print("Your favorite animal is a " + animal)
```

Now when we run the script, the user will be prompted to give us input.

![User input in Python](https://cdn.hashnode.com/res/hashnode/image/upload/v1621233058226/K2exhvkcR.png)

And it's really as simple as using that `input()` command to capture a variable!

### Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on [Facebook](https://www.facebook.com/DailyDevTipsBlog) or [Twitter](https://twitter.com/DailyDevTips1)
บ่นโค้ดใน Smart Contract ของ Pancake Bunny
Published: 2021-05-20 05:59:39

อันนี้จะบ่นสั้นๆ คือวันนี้อยากรู้ว่า Pancake Bunny มันพลาดตรงไหน แล้วเห็นโค้ดชุดนึงที่น่าพูดถึง

คือออกตัวก่อน เวลาเขียน Smart contract มันจะมีเรื่องค่า Gas ซึ่งมันมีผลให้การเขียนโค้ดแบบปกติอาจจะสิ้นเปลือง จุดนี้ผมยังไม่เข้าใจมาก และที่เขาเขียนมันอาจจะดีที่สุดในโดเมน Smart Contract แล้วก็ได้นะครับ

แต่ถ้าเราเอามาเขียนในภาษาอื่นๆ ที่ไม่มีค่า Gas อย่าลอกเขามาทื่อๆ นะ

จากภาพนี้

![Src](https://miro.medium.com/max/1400/0*Lz5NRsBjyS4uy0pD.jpeg)

(ต้นทาง https://peckshield.medium.com/pancakebunny-incident-root-cause-analysis-7099f413cc9b)

ขอลอกส่วนนี้มา

```Solidity
if (IPancakePair(asset).token0() == WBNB) {
  valueInBNB = amount.mul(reserve0).mul(2).div(IPancakePair(asset).totalSupply());
  valueInUSD = valueInBNB.mul(priceOfBNB()).div(1e18);
} else if (IPancakePair(asset).token1() == WBNB) {
  valueInBNB = amount.mul(reserve1).mul(2).div(IPancakePair(asset).totalSupply());
  valueInUSD = valueInBNB.mul(priceOfBNB()).div(1e18);
}
// ต่อ ไม่ได้เอามาด้วย
```

จาก

```Solidity
valueInBNB = amount.mul(reserve0).mul(2).div(IPancakePair(asset).totalSupply());

// และ 

`valueInBNB = amount.mul(reserve1).mul(2).div(IPancakePair(asset).totalSupply());

```

สองบรรทัดนี้เหมือนกันเด๊ะๆ เลยแค่ใช้ reserve คนละตัว แล้วพอรวมกับ `if token1() == WBNB` ทำให้รู้ว่าจุดประสงค์ของโค้ดนี้คือมันต้องการจะเอา Reserve ของ WBNB มาใช้ในสูตร `amount * reserve * 2 / totalSupply()` นั่นแหละครับ

ดังนั้นการเขียนให้เจตนาตรงนี้เคลียร์กว่า ทำได้แบบนี้

```Solidity
uint reserveBNB
if (IPancakePair(asset).token0() == WBNB) {
  reserveBNB = reserve0
} else if (IPancakePair(asset).token1() == WBNB) {
  reserveBNB = reserve1
}

valueInBNB = amount.mul(reserveBNB).mul(2).div(IPancakePair(asset).totalSupply());
```

โค้ดชุดหลังมันทำให้อ่านปราดเดียวรู้เลยว่า มันมีสูตรคำนวนแค่สูตรเดียวนะ และสูตรต้องการค่า BNB ที่อยู่ใน Pool มาใช้งานนะ ต่างกับชุดแรกที่ต้องเพ่งนานมากกว่าจะรู้ว่า "อ้อ สูตรเหมือนกันนั่นแหละไม่มีอะไรหรอก แค่ต้องเลือก Reserve มาให้ถูกที่" ผมเพ่งหลายนาทีกว่าจะถึงบางอ้อ

ผมเดาว่าที่เขาไม่เขียนแบบนี้เพราะจริงๆ มันมี Condition ที่ 3 แล้วใน Solidity การเช็ค if ทุกครั้งมันมีค่า Gas ซึ่งผมไม่เชี่ยวชาญพอที่จะบอกได้ว่าโค้ดแบบนี้ในบริบทของ Solidity ดีหรือไม่ดี อาจจะดีสุดแล้วก็ได้พอเอาเรื่องความประหยัดเข้ามาร่วม

แต่อยากจะบอกโปรแกรมเมอร์ที่เขียนโปรแกรมทั่วๆ ไปว่า โค้ดแบบนี้จริงๆ อย่าลอกไปใช้ในภาษาที่ไม่ติดเรื่องค่า Gas นะครับ มันอ่านยากครับ