teleren/devto huggingface dataset:
Help, save a life
Published: 2022-05-28 12:47:01

Hi all right with you?!!
I'm new here, and I'm entering the programming world now, after discovering that this is what I want for my life, because I can spend all day programming and never get tired. Currently I have taken courses on youtube and some free platforms in my free time, I am an electrician in the industrial area and I confess that I hate working there, it is a very dangerous place and stressful work conditions. The point I want to make is that I want to dive deep into the world of IT, but I'm having a lot of problems with tool documentation updates, the videos on youtube are very outdated and the tool updates too, and with the stagnation of my productivity. That's why I come to ask you for help with idication of some course you can take, indications about what helped you to enter this market and always renew yourself over time.
Day-2 of learning Cyber Security
Published: 2022-05-28 12:23:50

## Computer Networking

- OSI Model & TCP Model 

- DNS  and DNS types
 
- The life of a data packet 

- Common Ports and running Services 

- Cyber Security Mindset and motivation 

A resource to understand how internet works  
[Internet explained from first principles](https://explained-from-first-principles.com/internet)
Helper - the architecture whole
Tags: python, django
Published: 2022-05-28 12:09:41

Helper, this word starts my list of the most hated dev words. I am experienced developer who work with many languages, but lately I've sticked longer in Python and particularly in Django. In every project there is the same problem, where to put things and how to name things, helpers are very much about how we can do it wrong.

Very often these reusable things get a name like - utils. I am ok with the name, it means that this are some utilities. Of course like with everything we can do too much and make these utilities a garbage. But this article is not about this problem, but the hated "helper" problem.

So my journey with Django started, and I got this MVC thing which I am familiar with, though in current architecture BE is not responsible for the view part, so Django MVC ends with really MC - we have models and controllers, eventually repositories in the middle - MRC or services MSC. Yes these are just made names, so I have no clue anybody names it like that. 

Ok, so going back to helpers. What I was surprise to see was that outside of controllers and models, we have helpers, and developers really put there a lot of staff. This helpers thing is a liquide level of architecture. Everything which doesn't belong to C or M is there. So looks like at least half of the whole codebase lands in helpers 😱. Even more, when developers talk about the code they say - "I will make this and that helper" or "I will use this and that helper". Helpers are everywhere. They are reusable functions, but also classes responsible for specific domain flow. There is nothing consistent in it, or there are no rules where helpers live in the codebase. Helpers can be used by any part of the code, helpers can use third parties, can call database, but can be also reusable pure functions.

What is this helper thing then? Really, after almost 2 years in this environment, I know what is it. It is just everything and nothing, it is just a proof of the whole in the architecture. When some dev tells me - "I will make an helper", I am asking what does it mean? For me saying this is like saying - "I will make a function", or "I will make a class" or just "I will make a thing", it does not say really nothing more. 

Of course I forced some improvements, we have introduced the missing part of the architecture so - Service layer which connects our so called Views, but really just end point definitions with models and repositories (QuerySet). This level is now used instead of helpers for all kind of flow managing, actions with side effects, it manages transactions and business procedures. The other things like - reusable functions moved to utils, other things like domain knowledge representations is put now in domain related files. Helpers - I don't write them, and never plan to do it again. If I hear word "helper", my response is WHAAAAT?!.

That article has been written in 20 minutes, sorry for any gramma errors, don't hesitate to point them in comments though.
Making file uploads faster
Tags: cloud, serverless, cloudskills, api
Published: 2022-05-28 11:46:41

_Using Cloudflare Workers for improving upload speeds_

We are an end-to-end encrypted photo service, and we were able to ship an improvement to make uploads faster for our customers ⚡️ This post explains the small but important change.

#### How uploads happened before

When uploading a file, we fetched a list of URLs from the server to `PUT` files to. Then, the encrypted files / file parts were uploaded to those URLs, that are hosted on storage servers located in Europe.

We noticed that this could be improved by proxying data through [Cloudflare Workers](https://workers.cloudflare.com/) that are deployed across the world, there by ensuring proximity to our customers. There was also the added advantage of Cloudflare's great network speeds.

#### How uploads happen now

Now, we upload the same encrypted file / file parts to the Cloudflare Worker rather than directly uploading to our servers in Europe. The Worker then uploads these to our servers.

Even though this has increased the complexity of uploads on the backend, this has made our uploads faster due to the Workers being closer and having greater network speeds. This gain is even more pronounced for large multi-part uploads.

We got the following results from a sample test using the same set of files:

| File Size | Before         | After          |                                 Improvement |
| --------- | -------------- | -------------- | ------------------------------------------: |
| 2.60 MB   | 5.379 seconds  | 4.119 seconds  | <span style="color: #68df68;">23.42%</span> |
| 2.75 MB   | 4.345 seconds  | 5.6 seconds    | <span style="color: #68df68;">28.88%</span> |
| 3.38 MB   | 8.136 seconds  | 8.174 seconds  |  <span style="color: #68df68;">0.46%</span> |
| 23.60 MB  | 23.159 seconds | 21.168 seconds |  <span style="color: #68df68;">8.60%</span> |
| 141.70 MB | 119.21 seconds | 82.018 seconds | <span style="color: #68df68;">31.20%</span> |
| 354.40 MB | 306.75 seconds | 217.76 seconds | <span style="color: #68df68;">29.01%</span> |

A small change, but faster uploads! 😊

---

Cover image: [Julian Hochgesang](https://unsplash.com/photos/3-y9vq8uoxk)

If you'd like to hear more about our performance challenges, follow us on [Twitter](https://twitter.com/enteio).

Or if you'd hang out with a bunch of engineers building an e2ee photo storage service, come say hello on [Discord](https://ente.io/discord).
Affirm | Made with Gatsby JS
Published: 2022-05-28 11:29:45

![Affirm | Made with Javascript | Gatsby JS](https://res.cloudinary.com/madewithjavascript/image/upload/v1653324400/large_affirm_made_with_gatsby_js_5633ef11e4.jpg "Affirm | Made with Javascript | Gatsby JS")


### With Affirm, you can pay over time at your favorite brands. No late fees or compounding interest.

> ### Pay at your own pace
> 
> When you buy with Affirm, you always know exactly what you’ll owe and when you’ll be done paying. There are no hidden fees—not even late fees.
> 
> ### How to buy with Affirm
> 
> #### Go shopping
> Shop your favorite stores online or in-store and pay later with Affirm. You’ll see us at checkout, or you can request a virtual card in the Affirm app.
> 
> #### Choose your payment terms
> You’re in control. Pick the payment option that works for you and your budget—from 4 interest-free payments every 2 weeks to monthly installments.
> 
> #### Make your payments
> Manage your payments in the Affirm app or online, and set up AutoPay so you don’t miss a payment. But if you do, you’ll never pay any fees.

## Check out more such amazing projects on our website

[Made with Javascript](https://madewithjavascript.club)

## Want us to feature your project

[Submit your Project to Made with Javascript](https://madewithjavascript.club/submit-project)


You can also write to us for any of your queries at:

[Email Made with Javascript](mailto:madewithjavascript@gmail.com)

## Project already shared on our social media handles.

| SocialMedia | SharedLink |
| ----------- | ---------- |
| Twitter | [Affirm on Twitter](https://twitter.com/withjavascript/status/1530510662698401794?s=20&t=nfOiclMcQOgGmVRc3LsANg)
 |
| Medium | [Affirm on Medium](https://medium.com/@madewithjavascript/affirm-made-with-gatsby-js-e5c483b8bd63)
 |
| Facebook | [Affirm on Facebook](https://www.facebook.com/madewithjavascript/posts/pfbid0cFau87JNYu4p2xzrqfJqqbT3sSyd2KhWhzpQFBH61gwEgtq5wLEsSfa17cr3mAEVl)
 |
| Tumblr | [Affirm on Tumblr](https://madewithjavascript.tumblr.com/post/685493190815580160/affirm-made-with-gatsby-js-with-affirm-you)
 |
| LinkedIn | [Affirm on LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:6936276604373401600)
 |


Filled Under:
 - [Made with Javascript](https://madewithjavascript.club)    
 - [Made with Gatsby JS](https://madewithjavascript.club/categories/gatsby-js)

Make sure to give this post ❤ 50 ❤ hearts, click the 🦄 unicorns 🦄 and follow 👉 @madewithjavascript 👈 for more such awesome showcases. Show you love for the people who have worked so hard!
Freelance Mobile App developer
Tags: freelancemobileappdeveloper
Published: 2022-05-28 11:08:41

I Provided [Freelance Mobile App developer](https://www.mrmobileappdeveloper.com/) service. twelve years of expertise and full time dedicated freelance ios, android app developer. I provide startup consultations and mobile development.
Hire me Today For More details contact me at 9818805835.
JS Refactoring Combo: Inline Function as Method
Tags: javascript, tutorial, programming, beginners
Published: 2022-05-28 11:02:31


Sometimes functions are only used as property values. In such cases, you can convert the functions into methods.

### Before (Example)
```javascript
function aFunction(aParameter) {
  doSomething(aParameter);
}

const anObject = {
  aMethod: aFunction
};
```

### Refactoring Steps
![Inline Named Function as Method](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9sqgvcf055903pjgtau9.gif)

> 💡&nbsp;&nbsp;The refactoring steps are using [P42 JavaScript Assistant](https://marketplace.visualstudio.com/items?itemName=p42ai.refactor) v1.109

1. [Convert the named function into a variable that contains the function expression](https://p42.ai/documentation/code-assist/convert-named-function-to-function-expression)
1. [Inline the variable](https://p42.ai/documentation/code-assist/inline-variable)
1. [Convert the function to an object method](https://p42.ai/documentation/code-assist/convert-function-to-object-method)

### After (Example)
```javascript
const anObject = {
  aMethod(aParameter) {
    doSomething(aParameter);
  }
};
```
Understanding Javascript Normal Function VS Arrow Function
Tags: javascript, frontend, webdev, programming
Published: 2022-05-28 10:51:17

Sometimes in our code we use javascript regular functions and also a function called arrow function.Both are functions but there are certain difference between them.

1.First we see the syntactical difference between them.

```js
//normal function
function normalFunc() {
  console.log('hi');
}

normalFunc(); //hi

//arrow function

let arrFunc = () => {
  console.log('i am arrow function');
};

arrFunc(); //i am arrow function
 ```

2.Accessing the '**this**' key word.
   Arrow function doesn't have it's own this key world.It                        works something like lexical scoping.

But normal function always have its own **this** key word and it is the global this or window or the parent object where it has been  declared.

```js

let person = {
  name: 'Jhone',
  gfg1: () => {
    console.log('hello ' + this.name); // hello undefined
  },
  gfg2() {
    console.log('hi ' + this.name); // hi Jhone
  },
};
person.gfg1();
person.gfg2();
 ```

3.In arrow function we can not access the arguments object but in normal function we can.

```js
//normal function
function food(a, b, c) {
  console.log(arguments);
}

food('rice', 'milk', 'fish'); // {0: "rice", 1: "milk", 2: "fish"}


//arrow function
let fruits = (a, b, c) => {
  console.log(...arguments); //ReferenceError: arguments is not defined
};

fruits('apple', 'banana', 'berry');
 ```

4.Using normal function to return something you have to use return statement but in arrow function you can use implicit return.

```js
//normal function
function nFunc() {
  return 'i am normal function';
}
console.log(nFunc());

//arrow function
let arrFunc = () => 'i am arrow function';
console.log(arrFunc());
 ```

5.Normal javascript functios are constructible but **arrow funtion**s are not. You can not create constructor function usig arrow functon but with notmal functions you can.

```js
  function nFunc(name, email) {
  this.name = name;
  this.email = email;

}

let preson = new nFunc('jony', 'jony@gmail.com');

console.log("name: ",preson.name,' ',"email: ",preson.email); // name: jony email: jony@gmail.com
 ```
I built a sharing files webapp with Nextjs / Firebase / tailwindcss
Tags: react, firebase, nextjs
Published: 2022-05-28 10:43:32

Webapp : [ephemere-clud](https://ephemere-cloud.com)
Repository: [github](https://github.com/ablil/ephemere-cloud.com)

**why ?**


Ther are soo many tools or websites that allows to share files over the internet with people, however I didn't find one simpler and intuitive to use, not filled with ads or pricing plans ... 

So I thought, why not build one myself, a one that suits my style and liking, and I think this is it 

**What's so special about it ?**
It's easy to use, simple and intuitive. You upload a file or multiple files, set a password if you want to protect it, set a timer before the file get removed by default and set a description for the reciever.

After that you simply click on upload and share the generated link with your friends.

**how it's working ?**
This webapp is built with **Nextjs** and **Firebase**, It's my first time building something with Nextjs, so it was an opporutunity to discover this Framework and it was awesome.

The webapp is hosted on **vercel** since it goes well with **Nextjs**, and use **Firebase** for storage.


**Challenges**
One of the main challenges I had is, how to organize the data in the backend, how to keep track of files (and sometimes there are group of files), and how to keep track of the metadata (public url, password, descrption ...); so I came up with the following simple strategy:
The user upload one or multiple files, I'll generate a unique identifier that act a directory to group all these files,I store them on firebase storage, after that I'll upload a metadata object to firebase database which keep a record of the identifier, password, public url of files ... and since we have the identifier we can access directly the file on firebase storage.

Another challenge I had is, how to remove files automatically, I know there are firebase function, but I'm sticking right now with the free plan of firebase, so I had to think of another solution.
Well I have created a small python script that run every 15 minutes through a cronjob, and check if there is some experied files to be removed

**What to come next ?**
1. Since this is just a side project, I thinking about integrating aws S3 as well and being able to switch between S3 and firebase storage easily whenever I want.
2. Creating a Telegram bot, you send a file and get a response with a link you can share with your friends.
3. Create a react native app ( I've never built something with react native so this is the opportunity)


_please feel free to contribute_
Migrating Databases to Google Cloud VMWare Engine
Tags: database, migration, googlecloud, vmware
Published: 2022-05-28 10:29:33

Google 𝘾𝙡𝙤𝙪𝙙 VMware 𝙀𝙣𝙜𝙞𝙣𝙚 (𝙂𝘾𝙑𝙀):

(1) is a 𝙛𝙪𝙡𝙡𝙮-𝙢𝙖𝙣𝙖𝙜𝙚𝙙 𝙨𝙚𝙧𝙫𝙞𝙘𝙚 that lets you run the VMware platform in Google Cloud. 

(2) includes:
- 𝙫𝙎𝙥𝙝𝙚𝙧𝙚, 
- 𝙫𝘾𝙚𝙣𝙩𝙚𝙧, 
- 𝙫𝙎𝘼𝙉, 
- 𝙉𝙎𝙓-𝙏, and corresponding tools. 

(3) environment 𝙧𝙪𝙣𝙨 𝙣𝙖𝙩𝙞𝙫𝙚𝙡𝙮 𝙤𝙣 𝙂𝙤𝙤𝙜𝙡𝙚 𝘾𝙡𝙤𝙪𝙙 𝙗𝙖𝙧𝙚 𝙢𝙚𝙩𝙖𝙡 infrastructure in some Google Cloud locations, 

(4) includes all the features required to help 𝙘𝙤𝙣𝙨𝙪𝙢𝙚 the VMware platforms 𝙚𝙛𝙛𝙞𝙘𝙞𝙚𝙣𝙩𝙡𝙮 𝙖𝙣𝙙 𝙨𝙚𝙘𝙪𝙧𝙚𝙡𝙮. 


A number of tools exist to 𝙢𝙞𝙜𝙧𝙖𝙩𝙚 𝙨𝙚𝙧𝙫𝙚𝙧𝙨 𝙩𝙤 𝙂𝘾𝙑𝙀, and three common options are listed below:
(1) VMware 𝙃𝘾𝙓
(2) 𝙋𝙡𝙖𝙩𝙚𝙎𝙥𝙞𝙣 𝙈𝙞𝙜𝙧𝙖𝙩𝙚
(3) 𝘿𝙖𝙩𝙖𝙗𝙖𝙨𝙚 𝙧𝙚𝙥𝙡𝙖𝙩𝙛𝙤𝙧𝙢


Thanks to Matt S. for his blog post:
𝙈𝙞𝙜𝙧𝙖𝙩𝙚 𝙙𝙖𝙩𝙖𝙗𝙖𝙨𝙚𝙨 𝙩𝙤 𝙂𝙤𝙤𝙜𝙡𝙚 𝘾𝙡𝙤𝙪𝙙 𝙑𝙈𝙬𝙖𝙧𝙚 𝙀𝙣𝙜𝙞𝙣𝙚 (𝙂𝘾𝙑𝙀)
https://cloud.google.com/blog/products/databases/migrate-databases-to-google-cloud-vmware-engine-gcve


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

https://www.linkedin.com/posts/mahmoudrabie2004_didabryouabrknowabrthat-google-googlecloud-activity-6936262104668631040-AZYs?utm_source=linkedin_share&utm_medium=member_desktop_web
howto use Ubuntu and Windows simultaneously, in 2022
Tags: jrebel, wsl, ubuntu, intellij
Published: 2022-05-28 10:25:40

My relationship with Windows has been love&hate for ages.

Windows is quite good at having a huge ecosystem, but it is quite different from the target machines.

Just think of it - developers have to develop using machines with an architecture that differs a lot from production.
I do understand we have containers & stuff, but still, simplicity is something I am fond of.

However, there is a light shining at the end of the tunnel. And it is not a train.

It is fully possible to run Ubuntu natively on your Windows 10 and up.
You can:
install Ubuntu using WSL (Windows Subsystem for Linux)
checkout a OSS project from github
generate SSH key on Windows side
provide Ubuntu with public SSH key from Windows
point your IDE (Intellij Ultimate, VSC) to localhost:22
Now you have a fully running:
your favourite IDE in Windows
your code in Ubuntu
SSH terminal in your IDE, with full access to the Ubuntu

@antonarhipov  - that is so cool. Please tell the department, responsible for that IntelliJ-WSL connectivity that they deserve ALL THE COOKIES IN THE WORLD.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iz8msdwhpwajdljlx1rb.png)
Unloved Project | Made with Next JS
Published: 2022-05-28 10:14:48

![Unloved Project | Made with Javascript | Next JS](https://res.cloudinary.com/madewithjavascript/image/upload/v1652979990/large_unloved_project_made_with_next_js_388d652508.png "Unloved Project | Made with Javascript | Next JS")


### Discover under-valued projects. Pay less for your next acquisition.

> Save time and development costs.
> 
> Pay less for your next acquisition and get an instant route to market.
> 
> ### Discover under-valued projects 🦄
> Pay less for your next acquisition. Deal with the maker directly.
> 
> 
> 
> 

## Check out more such amazing projects on our website

[Made with Javascript](https://madewithjavascript.club)

## Want us to feature your project

[Submit your Project to Made with Javascript](https://madewithjavascript.club/submit-project)


You can also write to us for any of your queries at:

[Email Made with Javascript](mailto:madewithjavascript@gmail.com)

## Project already shared on our social media handles.

| SocialMedia | SharedLink |
| ----------- | ---------- |
| Twitter | [Unloved Project on Twitter](https://twitter.com/withjavascript/status/1530491821306130433?s=20&t=gE3UV2GK0HaanSZAvXiXbA)
 |
| Medium | [Unloved Project on Medium](https://medium.com/@madewithjavascript/unloved-project-made-with-next-js-8ffa22bfb23f)
 |
| Facebook | [Unloved Project on Facebook](https://www.facebook.com/madewithjavascript/posts/pfbid0uCaukKfnoYUS4vYrMHDCjATNsswn9R3YgTJrEHffu7yFp5r1jYEbVSXdeN2GHzp5l)
 |
| Tumblr | [Unloved Project on Tumblr](https://madewithjavascript.tumblr.com/post/685488456906964992/unloved-project-made-with-next-js-discover)
 |
| LinkedIn | [Unloved Project on LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:6936257701836464128)
 |


Filled Under:
 - [Made with Javascript](https://madewithjavascript.club)
 - [Made with Next JS](https://madewithjavascript.club/categories/next-js)

Make sure to give this post ❤ 50 ❤ hearts, click the 🦄 unicorns 🦄 and follow 👉 @madewithjavascript 👈 for more such awesome showcases. Show you love for the people who have worked so hard!
This week’s newsletter is out! (28-05-2022) - Transitioning empires
Tags: javascript, tech, webdev, discuss
Published: 2022-05-28 10:08:39

---
title: This week’s newsletter is out! (28-05-2022) - Transitioning empires
published: true
description: Another week of great javascript, tech and web development links.
tags: javascript, tech, webdev, discuss
---

Transitioning empires

https://markjgsmith.substack.com/p/mark-smiths-newsletter-27-05-2022

Would love to hear any comments and feedback you have.

[@markjgsmith](https://twitter.com/markjgsmith)
Vibrating your phone with JavaScript 📱
Tags: javascript, webdev, tutorial, programming
Published: 2022-05-28 09:56:55

In this article we are going to vibrate mobile phones with JavaScript Vibration API.

**JavaScript is an amazing language**


## Navigator.vibrate()
The `navigator.vibrate` method pulses the vibration hardware on the device if such device is compatible. If device is not compatible, no effect will take place.

The method works in the following structure,

```javascript
navigator.vibrate(pattern)
```
So, this was a little explanation on the `navigator.vibrate` method. Now let's deal with some easy examples.

### Examples
```javascript
const vibrate = () => {
  window.navigator.vibrate([500])
}
```
This will vibrate the hardware for 500ms.

```javascript
const vibrateTwoTimes = () => {
  window.navigator.vibrate([200, 100, 200])
}
```
In this example, vibration will occur two times for `200ms` with a gap of `100ms`.

{% codepen https://codepen.io/codewithsnowbit/pen/MWQrvGL %}
## Conclusion
I hope you have found this article useful. Thank you for reading!

### Let's Connect

- Twitter - [@codewithsnowbit](https://codewithsnowbit.hashnode.dev/twitter)
- GitHub - [@codewithsnowbit](https://codewithsnowbit.hashnode.dev/github)
- [Keep me motivated](https://codewithsnowbit.hashnode.dev/supportme)
You might be fired tomorrow. Are you ready?
Published: 2022-05-28 09:45:55

The bull market is over, and the people with the cushiest jobs – software engineers – are getting sacked from outwardly successful companies. This week brought sad news about Klarna, Getir, Gorillas firing a significant percentage of their talent, engineers included.

I fear this is just the beginning.

So, the chances of you losing your job as a software engineer just became significantly higher. Are you ready for what's to come? 

If not, watch my video to hear some of my thoughts on being ready for the worst while keeping a cool head:

{% embed https://youtu.be/Hhm-R85Yis8 %}
Web Dasturlashda Matematika (Part 2)
Published: 2022-05-28 09:27:24

Birinchi postimiz [Arifmetika](https://dev.to/nomanoff_tech/web-dasturlashda-matematika-part-1-2080) 🧮, ya'ni, Web dasturlashda arifmetikaning qaysi mavzularini o'rganish haqida bo'lgan edi [👉 link](https://dev.to/nomanoff_tech/web-dasturlashda-matematika-part-1-2080). Ushbu post esa Geometriya haqida. 

**Geometriya**

_Geometriya_ - matematikaning nuqtalar, chiziqlar, sirtlar, qattiq jismlar va yuqori o'lchamli analoglarning xossalari va munosabatlari bilan bog'liq bo'lgan bo'limi.

_Muhim bo'lgan mavzular 📌:_

**✧ 2-D shakllar ✧**
❍ To'g'ri chiziq
❍ uchburchak
❍ To'rtburchak
❍ kvadrat

**...**

❍ Doira
❍ ellips
❍ Egri chiziq

**✧ 3D shakllar ✧**
❍ kuboid
❍ Sfera
❍ Silindr
❍ Konus

**✧ Transformatsiya ✧**
❍ Masshtab
❍ Aylantirish
❍ Egrilik

**Asosan nima uchun kerak bo'ladi 🤔**

➀ Shakllar grafik dizaynlarda va **UI**larda qo'llaniladi. ✅

➁ Shaklni o'zgartirish juda tez loyihalashda muhim ahamiyatga ega. **Bu animatsiyada ham juda muhim.**

➂ **CSS** yozishda geometriya juda ham muhim hisoblanadi. Geometriyada olgan bilimingiz Websaytda joylashgan shakillarni boshqara olishingiz va ularni istalgan ko'rinishda ifodalashingizda juda kerakli bo'ladi.

Geometriya, ayniqsa, _frontend_ dasturchilari uchun foydali. Shuning uchun agarda siz frontda(frontend dasturchi) yoki UIda (dizayner) da ishlamoqchi bo'lsangiz Geometriyaga befarq bo'lmang.