teleren/devto huggingface dataset:
Belajar Sketchup Bagi Pemula
Tags: tutorial, sketchup, 3d, modeling
Published: 2023-03-11 09:26:51

## Belajar Sketchup bagi Pemula

[Belajar sketchup untuk pemula](https://www.intisinau.eu.org/2023/03/belajar-sketchup-untuk-pemula.html) dapat kamu lakukan asalkan Anda mau belajar dengan sungguh-sungguh. Mungkin dalam waktu singkat Anda akan dapat mengusai sketchup dengan benar.

belajar sketchup pemula,belajar sketchup untuk pemula,belajar sketchup online,belajar sketchup bagi pemula,belajar sketchup interior,belajar sketchup dasar,belajar sketchup 2020,belajar sketchup 2021,belajar sketchup 2017,belajar sketchup 2018,belajar sketchup 2016,belajar sketchup 2015


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

Belajar Sketchup Pemula Pasti Bisa Bila Ingin
Berikut beberapa tips yang dapat Anda lakukan

Kenali Tampilan Sketchup

Pertama-tama, kenali tampilan Sketchup agar Anda lebih mudah dalam menggunakan software ini. Tampilan Sketchup terdiri dari area kerja, toolbar, dan panel alat. Di bagian tengah adalah area kerja tempat Anda membuat gambar 3D. Di bagian atas adalah toolbar yang berisi perintah dasar seperti select, move, dan rotate. Sedangkan di bagian samping adalah panel alat yang berisi berbagai macam alat untuk membuat objek 3D.

Mulailah dengan Objek Sederhana

Saat memulai belajar Sketchup, mulailah dengan membuat objek sederhana seperti kotak, bola, atau silinder. Dengan memulai dari objek sederhana, Anda dapat memahami dasar-dasar Sketchup dan lebih mudah untuk memperluas kemampuan Anda ke objek yang lebih kompleks.

Gunakan Shortcut Keyboard

Menggunakan shortcut keyboard dapat mempercepat kerja Anda dengan Sketchup. Beberapa shortcut yang perlu Anda ketahui adalah Ctrl + Z untuk undo, Ctrl + C untuk copy, dan Ctrl + V untuk paste. Dengan menggunakan shortcut keyboard, Anda tidak perlu terus-menerus mengklik toolbar atau menu dropdown.

Gunakan Fitur Sketchup yang Tersedia

Sketchup memiliki banyak fitur yang tersedia untuk membantu Anda membuat gambar 3D dengan lebih mudah dan cepat. Salah satu fitur yang paling berguna adalah "Follow Me" yang memungkinkan Anda membuat objek 3D dengan cepat dan mudah.

Pelajari dari Tutorial Sketchup

Untuk memperdalam kemampuan Anda, cari tutorial Sketchup online. Tutorial ini dapat membantu Anda memahami teknik-teknik yang lebih kompleks dan meningkatkan kemampuan Anda dalam membuat gambar 3D.

Belajar Sketchup memang membutuhkan waktu dan kesabaran, tetapi dengan mengikuti tips dan trik di atas, Anda dapat mempercepat proses belajar dan memahami Sketchup dengan lebih mudah. Jangan takut untuk mencoba hal baru dan terus berlatih untuk meningkatkan kemampuan Anda dalam menggunakan Sketchup.
This week’s newsletter is out! (11-03-2023) - Bleak Beyond Belief
Tags: javascript, tech, webdev
Published: 2023-03-11 09:03:59

---
title: This week’s newsletter is out! (11-03-2023) - Bleak Beyond Belief
published: true
description: Another week of great javascript, tech and web development links.
tags: javascript, tech, webdev, discuss
---

Bleak Beyond Belief

https://markjgsmith.substack.com/p/mark-smiths-newsletter-11-03-2023

Would love to hear any comments and feedback you have.

[@markjgsmith](https://twitter.com/markjgsmith)
Каскадный rescue в ruby и в ActiveSupport::Rescuable
Tags: ruby, rails
Published: 2023-03-11 08:56:17

Возьмем пример
```ruby
class E < StandardError; end

begin
  raise E
rescue E
  puts "here we rescue E"
rescue 
  puts "here we rescue StandardError"
end
```

Если вы используете вот такой вот каскадный `rescue`, то вы наверняка знаете, что сработает только обработчик первой ошибки, которая подпадает под условие.
```shell
=> here we rescue E
nil
```
Если мы повторно сделаем `raise` в обработке ошибки, то этот `raise` уже отловлен не будет и приведет к эксепшену

```ruby
class E < StandardError; end

begin
  raise E
rescue E
  puts "here we rescue E"
  raise
rescue 
  puts "here we rescue StandardError"
end
```
```shell
=> here we rescue E
E: E
from (pry):27:in '__pry__'
```


## rescue_from из ActiveSupport::Rescuable
Если мы захотим перенести такую логику в контроллер, или у нас есть какой-то кастомный бизнес-экшен, который использует `ActiveSupport::Rescuable`, то нужно помнить, что работать обработчик будет по-другому.

Пусть у нас будет вот такой базовый бизнес-экшн.
```ruby
class Action
  include ActiveSupport::Rescuable

  def call
    call_impl
  rescue => ex
    rescue_with_handler(ex) or raise
  end
end
```
И мы наследуемся от него, определяя `call_impl` и добавляя обработчики ошибок,
```ruby
class A < Action
  class E < StandardError; end

  rescue_from E do |ex|
    puts "here we rescue E"
    raise
  end

  rescue_from StandardError do |ex|
    puts "here we rescue StandardError"
  end

  def call_impl
    raise E
  end
end
```
то получим вот такой результат.
```shell
> A.new.call
here we rescue StandardError
=> #<A::E: A::E>
```

Дело в том, что `rescue_from` работает в FILO режиме (First In Last Out), то есть последний обработчик, который мы определили, будет первым попробованным.

Поменяем местами обработчики местами
```ruby 
class A < Action
  class E < StandardError; end

  rescue_from StandardError do |ex|
    puts "here we rescue StandardError"
  end

  rescue_from E do |ex|
    puts "here we rescue E"
    raise
  end

  def call_impl
    raise E
  end
end
```
и вот результат
```shell
irb(main):044:0> A.new.call
here we rescue E
Traceback (most recent call last):
...
1: from (irb):41:in `call_impl'
A::E (A::E)
```
Таким образом мы видим, что сработал именно обработчик ошибки `A::E`, а не `StandardError`, а так же, что `raise` внутри обработчика ошибки не привел к еще повторному `rescue` из `StandardError`.
CSS Grid Auto vs Fraction
Tags: css, grid
Published: 2023-03-11 08:53:09

Actually after experience by using CSS, I notice that the CSS grid-auto is "Shy" taking the space by division it on the same element as fit-width, but the CSS grid-fraction is "Greedy" taking the remain space by division it on some quarters as expand the element fit-width.


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

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gi97lmiuakk04itfhkav.png)
Learing The import Module in Python
Published: 2023-03-11 08:38:42

Import in python is similar to #include header_file in C/C++. Python modules can get access to code from another module by importing the file/function using import. The import statement is the most common way of invoking the import machinery, but it is not the only way.

Example :

import math
pie = math.pi
print("The value of pi is : ",pie)

Output : The value of pi is : ', 3.141592653589793


import module_name.member_name 

In the above code module, math is imported, and its variables can be accessed by considering it to be a class and pi as its object. 
The value of pi is returned by __import__(). pi as a whole can be imported into our initial code, rather than importing the whole module. 


Thats it done !!!
Wecoded
Published: 2023-03-11 08:36:01

<!-- ✨This template is only meant to get your ideas going, so please change/add/remove these prompts as you wish! ✨ -->

## I pledge to embrace equality in tech by...

## A validating experience I had in the workplace was...

## One of the biggest obstacles to gender equality in the tech industry is...

## Diversity and inclusion initiatives have positively impacted my workplace by...

## I will commit to educating myself about...

<!-- Once your post is published, it will not appear on the /t/wecoded page until an admin approves it. This is an extra step to ensure there is no abuse on this important tag. -->
Wecode
Published: 2023-03-11 08:35:10

<!-- ✨This template is only meant to get your ideas going, so please change/add/remove these prompts as you wish! ✨ -->

## I pledge to embrace equality in tech by...

## A validating experience I had in the workplace was...

## One of the biggest obstacles to gender equality in the tech industry is...

## Diversity and inclusion initiatives have positively impacted my workplace by...

## I will commit to educating myself about...

<!-- Once your post is published, it will not appear on the /t/wecoded page until an admin approves it. This is an extra step to ensure there is no abuse on this important tag. -->
Today's Fun Joke For Developers - Daily Developer Jokes
Tags: jokes, dailydeveloperjokes
Published: 2023-03-11 08:00:25

---
title: "Today's Fun Joke For Developers - Daily Developer Jokes"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
published: true
tags: #jokes, #dailydeveloperjokes
---

Hi there! Here's today's Daily Developer Joke. We hope you enjoy it; it's a good one.

![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1258c4f0d26.png)

---

For more jokes, and to submit your own joke to get featured, check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/). We're also open sourced, so feel free to view [our GitHub Profile](https://github.com/dailydeveloperjokes).

### Leave this post a ❤️ if you liked today's joke, and stay tuned for tomorrow's joke too!

_This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit._

<!--
Joke text:
___Q:___ What is a computer virus?

___A:___ A terminal illness!
 -->
Create Edge in Apache AGE
Tags: apacheage, graphdatabase
Published: 2023-03-06 11:17:51

In Apache AGE, data is stored in edges and vertices. In this blog, I will tell you how you can create edge and how you can store data in it.
Firstly, in edge we have edge name, formally we call it label.
Secondly, we can also store data in the edge. The data is stored in key value pair.

------------------------------------------

**Simple Edge General Form**

`SELECT * 
FROM cypher('graph_name', $$
    MATCH (a:VertexLabelName), (b:VertexLabelName)
    WHERE a.PropertyName = 'AnyThing' AND b.PropertyName = 'AnyThing'
    CREATE (a)-[e:RelationName]->(b)
    RETURN e
$$) as (e agtype);`

**Explanation:**
We selected the Graph, `SELECT * FROM cypher('graph_name', $$` which we are going to use. We matched the labels of the vertices on which we want to create the edge using `MATCH (a:VertexLabelName), (b:VertexLabelName)`. Afterwards, we apply a condition on the vertices using `WHERE a.PropertyName = 'AnyThing' AND b.PropertyName = 'AnyThing'`. Now we have got the two desired vertices between which we want to create an edge.
We can create an edge using `CREATE (a)-[e:RelationName]->(b)`. We can get the newly created edge information using `RETURN e
$$) as (e agtype);`

------------------------------------------

**Edge with Properties General Form**

`SELECT * 
FROM cypher('graph_name', $$
    MATCH (a:VertexLabelName), (b:VertexLabelName)
    WHERE a.PropertyName = 'AnyThing' AND b.PropertyName = 'AnyThing'
    CREATE (a)-[e:RelationName{edgePropertyName:'Anything', ...}]->(b)
    RETURN e
$$) as (e agtype);`

**Explanation:**
We selected the Graph, `SELECT * FROM cypher('graph_name', $$` which we are going to use. We matched the labels of the vertices on which we want to create the edge using `MATCH (a:VertexLabelName), (b:VertexLabelName)`. Afterwards, we apply a condition on the vertices using `WHERE a.PropertyName = 'AnyThing' AND b.PropertyName = 'AnyThing'`. Now we have got the two desired vertices between which we want to create an edge.
We can create an edge along with its properties using `CREATE (a)-[e:RelationName{edgePropertyName:'Anything', ...}]->(b)`. We can also define more properties here using the `key : value` pair, `{edgePropertyName:'Anything', ...}`. `...` means `edgePropertyName2:'Anything2', edgePropertyName3:'Anything3'`, and so on. We can get the newly created edge information using `RETURN e
$$) as (e agtype);`

------------------------------------------

For more details visit: https://age.apache.org/overview/

**AGE Github Link:** https://github.com/apache/age

**AGE Viewer Github Link:** https://github.com/apache/age-viewer
Mapping it Out
Tags: webdev, python, beginners
Published: 2023-03-11 07:08:39



Object-Relational Mapping (ORM) is a programming technique that allows developers to map object-oriented programming models to relational databases. ORM is a tool that bridges the gap between object-oriented programming and relational databases. It allows developers to write code in an object-oriented programming language like Python and save the data in a relational database like MySQL or Oracle.

ORM is a powerful tool that has revolutionized the way developers interact with databases. With ORM, developers no longer have to write complex SQL queries to interact with the database. Instead, they can use simple object-oriented code to perform CRUD (Create, Read, Update, Delete) operations on the database.

ORM is based on the principle of mapping objects to tables. Every object in an ORM framework has a corresponding table in the database. The properties of the object are mapped to the columns of the table. For example, if you have an object called Customer with properties like Name, Email, and Phone, these properties would be mapped to the columns of the Customer table in the database.

ORM frameworks provide a layer of abstraction between the application and the database. This means that developers can work with high-level abstractions like objects and classes instead of low-level constructs like tables and columns. This makes it easier for developers to write code and maintain their applications.

ORM frameworks also provide features like lazy loading, caching, and transaction management. Lazy loading is a technique that allows the ORM framework to load only the data that is needed at a given time. This helps to improve performance and reduce memory usage. Caching is a technique that allows the ORM framework to store frequently accessed data in memory for faster access. Transaction management is a feature that allows developers to perform multiple database operations as a single atomic transaction.

ORM frameworks have become an essential tool for modern web development. They help developers to write code faster, improve performance, and reduce the complexity of database interactions. A popular frame work is Django for Python.

In conclusion, ORM is a powerful tool that has revolutionized the way developers interact with databases. It allows developers to work with high-level abstractions like objects and classes instead of low-level constructs like tables and columns. ORM frameworks provide features like lazy loading, caching, and transaction management that improve performance and reduce the complexity of database interactions. ORM has become an essential tool for modern web development and is a must-know technology for any aspiring developer.
Zero Cost, Maximum Benefit: The Top Free Hosting Platforms for Beginners
Published: 2023-03-11 06:59:03

Web hosting is a crucial part of building a website, but it can be costly for beginners and small businesses. Fortunately, there are several free hosting platforms available that make web hosting more accessible and user-friendly.

Here are some of the best free hosting platforms that you can use:

### 1. GitHub Pages 

GitHub Pages is a free web hosting platform that allows you to host static websites directly from your GitHub repository. It supports Jekyll, a static site generator, and provides custom domains, HTTPS encryption, and other features to make your website look professional.

---

### 2. Netlify 

Netlify is another free web hosting platform that supports static websites, but it also allows you to deploy and host dynamic websites with serverless functions. It provides a user-friendly interface, continuous deployment, custom domains, HTTPS encryption, and other features to make your website fast and secure.

---

### 3. Firebase

Firebase is a free cloud platform that supports dynamic websites built with popular programming languages such as JavaScript, Java, and Swift. It provides a user-friendly interface, easy deployment, real-time database, authentication, hosting, and other features to make your website engaging and interactive.

--- 

### 4. Vercel 

Vercel is a free cloud platform for building and deploying web applications, which supports both static and dynamic websites built with popular frameworks such as Next.js, Gatsby, and React. It provides a user-friendly interface, custom domains, HTTPS encryption, serverless functions, and other features to make your website fast and secure. Additionally, Vercel has a global edge network that ensures fast and reliable performance for your website.

---

### 5. InfinityFree 

InfinityFree is a free web hosting platform that supports dynamic websites built with popular programming languages such as PHP and MySQL. It provides unlimited storage and bandwidth, custom domains, and other features to make your website accessible and fast.

---

These free hosting platforms offer a great way to get started with web hosting without breaking the bank. They are user-friendly and provide many features that you would expect from a paid hosting provider. However, it's important to note that free hosting platforms may have limitations on storage, bandwidth, and other resources, so it's always a good idea to read the terms and conditions carefully.

In conclusion, free hosting platforms are a great way to make web hosting more accessible and user-friendly. With the help of these platforms, beginners and small businesses can get started with web hosting quickly and easily. So, if you're looking for a free hosting platform, check out GitHub Pages, Netlify, Vercel, Firebase, and InfinityFree to find the one that best fits your needs.
I wanna make CPU slower than default setting in chrome devtool 😣!
Published: 2023-03-11 06:35:11

Normally when you need CPU to get slower in chrome, set `Performance > CPU`

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

but slowest setting is 6 times slowdown

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ndstmg5yftkp9rx46ti.png)

> 😱 But I do wanna get it slower !!

OK, let's do it

### 1. Activate `Protocol Monitor`

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

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ix60tb454mlrb372xl0.png)

### 2. Close devtool and reopen it again
then select `Protocol monitor`

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

### 3. write code at bottom part
`{"command":"Emulation.setCPUThrottlingRate","parameters":{"rate": 10}}`
and property of `rate` is throttle down speed


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

just note for myself and other developers

ref.
https://zenn.dev/from_host/articles/2d91bf31807b57
(this article helped me a lot, thank you)
C++ Identifiers
Published: 2023-03-11 05:47:54

All C++ variables must be identified with unique names.

These unique names are called identifiers.

`Identifiers` can be short names _(like x and y)_ or more descriptive names _(age, sum, totalVolume)._

```
#include <iostream>
using namespace std;

int main()
{

int age = 24;
string name = "I am learning C# at the moment";
string country = "Uzbekistan";

cout << name << endl;
cout << country;

return 0;
}
```
The general rules for naming variables are:

- Names can contain letters, digits and underscores

- Names must begin with a letter or an underscore (_)

- Names are case sensitive (`myVar` and `myvar` are different variables)

- Names cannot contain whitespaces or special characters like !, #, %, etc.

- Reserved words (like C++ keywords, such as `int`) cannot be used as names
C++ Variables
Tags: programming, cpp
Published: 2023-03-11 05:32:45

Variables are containers for storing data values.

In C++, there are different **types** of variables (defined with different keywords), for example:

- `int` - stores integers (whole numbers), without decimals, such as _456_ or _-456_.

- `double` - stores floating point numbers, with decimals, such as _25.27_ or _-25.27_.

- `char` - stores single characters, such as _'a'_ or _'B'_. Char values are surrounded by single quotes.

- `string` - stores text, such as _"Hello World"_. String values are surrounded by double quotes.

- `bool` - stores values with two states: _true or false_
How to become a Frontend Developer.
Tags: frontend, developer, webdev
Published: 2023-03-11 04:47:34

Becoming a frontend developer involves learning a variety of programming languages, tools, and technologies to create visually appealing and user-friendly websites and applications. Here are some steps you can follow to become a frontend developer:

Learn HTML, CSS, and JavaScript: HTML is used to create the structure and content of a webpage, CSS is used for styling and layout, and JavaScript is used for interactivity and dynamic functionality. You can start by taking online courses or tutorials that teach the basics of these languages.

Learn a CSS framework: CSS frameworks like Bootstrap and Foundation provide pre-built styles and templates that can help you create responsive and modern-looking websites. Learn to use them to create visually appealing layouts.

Familiarize yourself with version control: Version control systems like Git are essential for collaborating with other developers and keeping track of changes to your code. Learn to use Git to manage your codebase.

Learn a JavaScript framework: Popular JavaScript frameworks like React, Angular, and Vue.js provide a more structured approach to building complex frontend applications. Learn to use them to create dynamic user interfaces and interactive web applications.

Practice your skills: Build your own projects or contribute to open source projects to gain practical experience and showcase your skills.

Stay up-to-date: Keep up with the latest developments in frontend technologies and trends by attending meetups, reading blogs, and following industry experts on social media.

Becoming a frontend developer takes time and effort, but with dedication and persistence, you can develop the necessary skills and knowledge to succeed in this field.