teleren/devto huggingface dataset:
css - flexbox
Published: 2023-08-04 03:19:05


Flexbox 是一种 CSS 布局模式，用于在容器中快速、灵活地排列和对齐子元素，可以有效地实现自适应布局和响应式设计。Flexbox 的全称是 Flexible Box Layout，即“弹性盒子布局”。

Flexbox 的核心是容器和子元素之间的关系，容器称为 flex container（弹性容器），子元素称为 flex item（弹性子元素）。通过在容器上设置 display: flex 或 display: inline-flex 属性，可以将容器变为一个 flexbox，然后可以使用一系列的 CSS 属性来控制子元素的排列和对齐方式。

以下是 Flexbox 常用的属性和其作用：

- flex-direction：定义 flex container 的主轴方向，取值包括 row、row-reverse、column 和 column-reverse 四种方向。
- justify-content：定义 flex container 中子元素沿主轴方向的对齐方式，包括 flex-start、flex-end、center、space-between、space-around、space-evenly 六种取值。
- align-items：定义 flex container 中子元素沿交叉轴方向的对齐方式，包括 flex-start、flex-end、center、baseline、stretch 五种取值。
- flex-wrap：定义 flex container 中子元素在一行放不下时如何换行，取值包括 nowrap、wrap 和 wrap-reverse 三种。
- align-content：定义多行子元素在交叉轴方向的对齐方式，仅当 flex-wrap 属性为 wrap 或 wrap-reverse 时生效，包括 flex-start、flex-end、center、space-between、space-around、stretch 六种取值。
- flex-grow：定义子元素的放大比例，如果容器有多余的空间，子元素会按照各自的放大比例分配这些空间。
- flex-shrink：定义子元素的缩小比例，如果容器空间不足，子元素会按照各自的缩小比例缩小。
- flex-basis：定义子元素的基准尺寸，用于计算子元素的放大和缩小比例。
- order：定义子元素的排列顺序，数值越小的子元素越靠前。

Flexbox 的优点是可以简化布局代码，减少使用 float 和 position 的情况，同时可以实现自适应和响应式设计，提高页面的可维护性和可扩展性。但是需要注意的是，Flexbox 不适用于所有场景，例如多行文本的垂直居中需要结合其他技术实现。

以下是一个使用 Flexbox 实现的简单的响应式布局案例，包含一个 header、一个 sidebar 和一个 content 区域，可以根据屏幕尺寸自适应布局：

HTML 代码：

```html
<div class="container">
  <header>Header</header>
  <div class="content">
    <div class="sidebar">Sidebar</div>
    <div class="main">Main content</div>
  </div>
</div>
```

CSS 代码：

```css
.container {
  display: flex;
  flex-wrap: wrap;
}

header {
  width: 100%;
  background-color: #333;
  color: #fff;
  padding: 20px;
  text-align: center;
}

.content {
  display: flex;
  flex-wrap: wrap;
  flex-grow: 1;
  justify-content: flex-start;
  align-items: stretch;
}

.sidebar {
  flex-basis: 200px;
  background-color: #eee;
  padding: 20px;
}

.main {
  flex-grow: 1;
  padding: 20px;
}

@media screen and (max-width: 768px) {
  .sidebar {
    flex-basis: 100%;
  }
}
```

解释：

首先将容器设置为 flex 布局，使用 flex-wrap 属性允许子元素在需要时换行。

- header 元素使用宽度为 100%，背景颜色为深灰色，颜色为白色，使用 padding 属性来增加内边距，使其看起来更美观。

- content 元素作为 flex container，使用 flex-grow 属性让其占据剩余的空间，使用 justify-content 和 align-items 属性分别对子元素进行水平和垂直对齐。

- sidebar 元素使用 flex-basis 属性指定其基准尺寸为 200px，背景颜色为浅灰色，使用 padding 属性增加内边距。

- main 元素使用 flex-grow 属性让其占据剩余的空间，使用 padding 属性增加内边距。

- 在屏幕宽度小于 768px 时，将 sidebar 元素的基准尺寸设置为 100%，让其占据整行宽度。

这个案例展示了 Flexbox 的基本用法，通过简单的 CSS 属性设置，可以实现自适应和响应式布局。

更多请参考：[Flexbox 指南](/blog/css/tips/Flexbox指南)
什么是容器
Published: 2023-08-04 03:19:04


## 什么是容器

在容器化里，容器是最基本的概念。正如官方解释：

> A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.
> 容器是一个标准的软件单元，它将代码和所有依赖打包起来，使得应用程序可以快速可靠地从一个计算环境迁移到另一个计算环境。

![5zgpMt](https://cdn.jsdelivr.net/gh/manonicu/pics@master/uPic/5zgpMt.jpg)

每个虚拟机都有自己的客户操作系统，其重量与主机操作系统一样。

在虚拟机中运行的应用程序与客户操作系统进行通信，客户操作系统与虚拟机管理程序进行通信，虚拟机管理程序再与主机操作系统进行通信，从而将必要的资源从物理基础设施分配给正在运行的应用程序。

正如你所看到的，在虚拟机中运行的应用程序与物理基础设施之间存在一条长长的通。在虚拟机中运行的应用程序可能只占用很少的资源，但是来宾操作系统增加了明显的开销。与虚拟机不同，容器以更智能的方式完成虚拟化的工作。它没有在容器中拥有完整的客户操作系统，而是通过容器运行时利用主机操作系统，同时保持隔离——就像传统的虚拟机一样。

![fVYWrK](https://cdn.jsdelivr.net/gh/manonicu/pics@master/uPic/fVYWrK.jpg)

容器运行时是一个软件层，它位于主机操作系统和容器之间。容器运行时的主要任务是将容器中的应用程序与主机操作系统隔离开来。容器运行时还负责管理容器的生命周期，包括创建、启动、停止、删除和暂停容器。

```shell
uname -a
# Linux alpha-centauri 5.8.0-22-generic #23-Ubuntu SMP Fri Oct 9 00:34:40 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

docker run alpine uname -a
# Linux f08dbbe9199b 5.8.0-22-generic #23-Ubuntu SMP Fri Oct 9 00:34:40 UTC 2020 x86_64 Linux
```

在上面的代码块中，我已经在主机操作系统上执行了 uname-a 命令，以打印出内核的详细信息。

然后在下一行中，我在运行 Alpine Linux 的容器中执行了相同的命令。

正如您在输出中看到的，容器确实使用了来自我的主机操作系统的内核。这证明了容器虚拟化主机操作系统而不是拥有自己的操作系统的观点。

如果你在一台 Windows 机器上，你会发现所有的容器都使用 WSL2内核。之所以会发生这种情况，是因为 WSL2充当 Windows 上 Docker 的后端。在 macOS 上，默认的后端是运行在 HyperKit hypervisor 上的 VM。

## 容器操作

当你部署你的应用程序，然后你想修复一个 bug，或者只是发布一个更新，会发生什么？

运行容器后，可以使用 docker ps 获取其 ID，然后使用 docker commit 从中为图像创建新标记：

```bash
docker commit <id> <username>/<imagename>:<tagname>
```

您还可以添加一条 changelog 消息，列出新版本中更改的内容：

```bash
docker commit --change "description" <id> <username>/<imagename>:<tagname>
```

```bash
# 列出本机正在运行的容器
$ docker container ls
```

```bash
# 列出本机所有容器，包括终止运行的容器
$ docker container ls --all
```

上面命令的输出结果之中，包括容器的 ID。很多地方都需要提供这个 ID，比如上一节终止容器运行的 docker container kill 命令。

终止运行的容器文件，依然会占据硬盘空间，可以使用 docker container rm 命令删除。

```bash
$ docker container rm [containerID]
```

运行上面的命令之后，再使用 docker container ls --all 命令，就会发现被删除的容器文件已经消失了。
Chrome插件开发 - External requests
Published: 2023-08-04 03:17:28


到目前为止，我们的浏览器插件已经具备了内容展示和交互。

接下来为浏览器添加一些其他的请求数据。

## Weather API

打开[OpenWeather](https://openweathermap.org/)，注册、登录，然后申请 api，如图：

![BkjOBD](https://cdn.jsdelivr.net/gh/manonicu/pics@master/uPic/BkjOBD.jpg)

添加`.env`文件，将申请的 api 写入

```bash
VITE_APP_API_URL='https://api.openweathermap.org/data/2.5'
VITE_APP_API_KEY='YOUR_KEY'
```

创建`Weather.jsx`

```jsx
export default function Weather() {
  return (
    <div>
      <h2>The weather today ☁️</h2>
    </div>
  )
}
```

在`App.jsx`组件内引入`Weather.jsx`

```jsx
import Counter from './Counter'
import Weather from './Weather'

export function App() {
  return (
    <div className="flex flex-col items-center justify-center w-screen h-screen bg-indigo-400 text-6xl font-bold text-white">
      <p>Welcome 👋</p>
      <br />
      <Weather />
      <br />
      <Counter />
    </div>
  )
}
```

在`Weather.jsx`引入 hooks 状态

```jsx
import {useEffect, useState} from 'react'

export default function Weather() {
  const [latLng, setLatLng] = useState({})
  const [data, setData] = useState(null)

  useEffect(() => {
    if (!latLng.lat && !latLng.long) {
      navigator.geolocation.getCurrentPosition(function (position) {
        setLatLng({
          lat: position.coords.latitude,
          long: position.coords.longitude
        })
      })
    }
  }, [latLng])
}
```

当获取经纬度权限被允许，将会返回当前经纬度，就可以请求天气接口了

```jsx
import {useEffect, useState} from 'react'

export default function Weather() {
  const [latLng, setLatLng] = useState({})
  const [data, setData] = useState(null)
  useEffect(() => {
    if (!latLng.lat && !latLng.long) {
      navigator.geolocation.getCurrentPosition(function (position) {
        setLatLng({
          lat: position.coords.latitude,
          long: position.coords.longitude
        })
      })
      return
    }
    if (!data) {
      fetch(
        `${import.meta.env.VITE_APP_API_URL}/weather/?lat=${latLng.lat}&lon=${
          latLng.long
        }&units=metric&APPID=${import.meta.env.VITE_APP_API_KEY}`
      )
        .then((res) => res.json())
        .then((result) => setData(result))
    }
  }, [latLng])
}
```

![CxW8Dv](https://cdn.jsdelivr.net/gh/manonicu/pics@master/uPic/CxW8Dv.jpg)

## Source Code

[【Source Code】](https://github.com/rebelchris/popup-extension)
Swift - 字符、字符串
Published: 2023-08-04 03:16:56


## 字符串的定义：

Swift 中可以使用两种方式来定义字符串：

- 使用双引号("")将字符串括起来。
- 使用三个双引号(""")来定义多行字符串。
  例如：

```swift
let str1 = "Hello, world!" // 使用双引号定义字符串
let str2 = """
This is a
multi-line
string.
""" // 使用三个双引号定义多行字符串
```

Swift 中的字符类型（Character）表示一个单独的字符，通常用于表示一个字母、数字、符号或空格等单个文本字符。

## 字符的定义：

Swift 中使用单引号('')来定义字符，例如：

```swift
let char1: Character = "A" // 定义单个字符
```

在字符串中，可以使用字符的集合来表示一段文本。例如：

```swift
let str3 = "Swift"
for char in str3 {
print(char)
}
```

上述代码会输出字符串 "Swift" 中的每个字符，即 "S"、"w"、"i"、"f"、"t"。

Swift 中的字符串和字符类型还支持各种文本处理功能，例如拼接、截取、查找、替换、转换大小写等。这些功能可通过使用字符串和字符类型的内置方法和属性来实现。

以下是一些常见的字符串和字符处理方法和属性的示例：

## 字符串拼接

可以使用加号运算符（+）将两个字符串连接起来。例如：

```swift
let str1 = "Hello"
let str2 = "world"
let str3 = str1 + " " + str2 // "Hello world"
```

## 字符串截取

可以使用下标操作符([])和 range(范围)操作符(...和..\<)从字符串中截取一段子字符串。例如：

```swift
let str = "Hello, world!"
let subStr1 = str[..<5] // "Hello"
let subStr2 = str[7...] // "world!"
let subStr3 = str[7..<12] // "world"
```

## 字符串查找

可以使用内置的 contains() 方法查找字符串是否包含某个子字符串，也可以使用 range(of: String) 方法查找子字符串的范围。例如：

```swift
let str = "Hello, world!"
let hasWorld = str.contains("world") // true
let range = str.range(of: "world") // Range<String.Index>(7..<12)
```

## 字符串替换

可以使用 replaceSubrange() 方法替换字符串中的一段子字符串。例如：

```swift
var str = "Hello, world!"
str.replaceSubrange(7..<12, with: "Swift") // "Hello, Swift!"
```

## 字符串大小写转换

可以使用 uppercased() 方法将字符串中的所有字符转换为大写，使用 lowercased() 方法将其转换为小写。例如：

```swift
let str = "Hello, world!"
let upperStr = str.uppercased() // "HELLO, WORLD!"
let lowerStr = str.lowercased() // "hello, world!"
```

## 字符串和数字类型的相互转换

可以使用 String() 方法将数字类型转换为字符串，使用 Int()、Float() 或 Double() 等方法将字符串转换为相应的数字类型。例如：

```swift
let num = 123
let str = String(num) // "123"

let str2 = "3.14"
let floatNum = Float(str2) // 3.14
```
css的小技巧
Published: 2023-08-04 03:16:56


1. 使用 css 复位

不同浏览器有不同的自带初始样式，通常可以使用 normalize.css、tinyreset.css 进行通配初始化。

```css
*,
*:after,
*:before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
```

2. 继承 box-sizing

```css
html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}
```

3. 使用 unset 而不是重置所有属性
4. 使用 :not() 选择器来决定表单是否显示边框
5. 为 body 元素添加行高
6. 為表單元素設置:focus
7. 垂直居中任何元素
8. 逗号分隔的列表
9. 使用负的 nth-child 来选择元素
10. 使用 SVG 图标
11. 使用 “形似猫头鹰” 的选择器
12. 使用 max-height 来建立纯 css 的滑块
13. 创造格子等宽的表格
14. 利用 Flexbox 去除多余的外边距
15. 利用属性选择器来选择空链接
16. 给 “默认” 链接定义样式
17. 一致的垂直节奏
18. 内在比例盒
19. 为破碎图象定义样式
20. 用 rem 来调整全局大小；用 em 来调整局部大小
21. 隐藏没有静音、自动播放的影片
22. 使用选择器 :root 来控制字体弹性
23. 为更好的移动体验，为表单元素设置字体大小
24. 使用指针事件來控制鼠标事件
Các hình thức đặt cược cá cược đua xe ảo 12Bet phổ biến năm 2023
Published: 2023-08-04 03:14:43


Cá cược đua xe ảo 12Bet là một loại hình cá cược độc đáo và mới lạ trong thị trường cờ bạc trực tuyến, nơi người chơi có thể tham gia vào những cuộc đua xe diễn ra hoàn toàn ảo. Thay vì theo dõi các trận đua thực tế trên đường đua, đặt cược đua xe ảo mang người chơi đến môi trường hoàn toàn ảo với những chiếc xe trên đường đua được tạo ra bởi công nghệ. Nhờ vào sự phát triển của công nghệ 3D và trí tuệ nhân tạo, các nhà phát triển đã tạo ra các trận đua xe hấp dẫn với hình ảnh chân thật cùng lối đua tốc độ đỉnh cao. Người chơi sẽ thấy được những cảm xúc giống như chơi khi đua thực tế, chứ không phải đối diện với các thử thách và hiểm nguy thực tế. 
Xem ngay tại: https://12bet.win/ca-cuoc-dua-xe-ao-12bet/
Xem thêm tại: https://www.tumblr.com/12betwinwin
#cacuocduaxeao12bet #vnsport12 #12bet
Hướng dẫn cách tham gia cá cược bóng ném tại bet168bio.
Published: 2023-08-04 02:49:29

 Để tham gia cá cược bóng ném một cách hiệu quả, cược thủ cần nắm rõ các quy tắc cơ bản sau đây:
Kết quả cá cược bóng ném dựa vào tổng số điểm sau 60 phút chính thức của trận đấu. Không tính hiệp phụ hoặc loạt sút luân lưu, trừ khi có quy định khác. Thời gian bù giờ cũng được tính vào kết quả cược.
Chỉ những cược đặt trước khi trận đấu chính thức bắt đầu được xem là hợp lệ nếu trận đấu bắt đầu sớm hơn dự kiến. Cược đặt sau khi trận đấu đã bắt đầu sẽ không được tính, trừ trường hợp cược "Trong trận".
Trong trường hợp các trận đấu áp dụng "Luật Merci" để kết thúc sớm khi chênh lệch điểm giữa hai đội quá lớn, các cược vẫn được xem là hợp lệ và thanh toán dựa trên kết quả tại thời điểm đó.
Những quy tắc trên giúp bạn dễ dàng tham gia và hiểu rõ hơn về cách đặt cược bóng ném một cách hiệu quả.

Xem chi tiết tại:  https://bet168.bio/ca-cuoc-bong-nem/ 

Trang liên quan: https://twitter.com/bet168bio 

#cacuocbongnem #bet168 #bet168bio
AntDB Installation and Deployment Documentation - P8
Tags: database
Published: 2023-08-04 02:38:29

## Installation error report

**_package antdb-4.0-1.el7.centos.x86_64 is already installed_**

Cause explanation: The RPM package is already installed on the server. Solution: Please install it as an upgrade or uninstall it first before installing it. Here are some RPM installation and uninstallation methods. Query the installed antdb RPM package.

```
[root@cos01 ~]# rpm -qa antdb 
antdb-4.0-1.el7.centos.x86_64 
```
Query RPM package details: installation time, installation path, etc..

```
[root@cos01 ~]# rpm -qi antdb-4.0-1.el7.centos.x86_64 
Name  : antdb 
Version  : 4.0 
Release  : 1.el7.centos 
Architecture: x86_64 
Install Date: Sat 18 Feb 2017 02:34:47 PM CST 
Group  : Applications/Internet 
Size  : 45039454 
License  : GPL 
Signature  : (none) 
Source RPM  : antdb-4.0-1.el7.centos.src.rpm 
Build Date  : Sat 18 Feb 2017 01:33:04 PM CST 
Build Host  : cos01 
Relocations : /usr  
URL  : none 
Summary  : ADB 
Description : 
adb2.2 build at 20170217. 
```
List what files RPM contains, detailed list information.

```
[root@cos01 ~]# rpm -ql antdb-4.0-1.el7.centos.x86_64 
/opt/antdb 
/opt/antdb/bin 
/opt/antdb/lib 
/opt/antdb/share 
/opt/antdb/include 
```
Which package a program is installed by or which package contains this program.

```
 rpm -qf `which program name`  #Returns the full name of the package 
 rpm -qif `which program name`  #Returns information about the package 
 rpm -qlf `which program name`  #Returns a list of files for the package 
```
Installing RPM.

```
[root@cos01 ~]# rpm -ivh adb-4.0-1.el7.centos.x86_64 
```
Installing RPM as an upgrade.

```
[root@cos01 ~]# rpm -Uvh adb-4.0-1.el7.centos.x86_64 
```
Uninstall RPM.

```
[root@cos01 ~]# rpm -e antdb 
```
**_error: library 'crypto' is required for OpenSSL_**

Cause explanation: When installing AntDB, some system dependency packages are required. If similar error occurs, it means that AntDB dependency package is not installed. Solution: Just install as root user as described above.

```
yum install openssl openssl-devel 
```
The complete dependency package is as follows.

```
yum install perl-ExtUtils-Embed flex bison readline-devel zlib-devel openssl-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel libssh2-devel 
```
**_rpm: relocations must begin with a /_**

Cause explanation: When installing the program using the rpm package provided by antdb, if you do not specify the installation path, it will be installed in the /opt/app/adb (or /opt/app/antdb) directory by default. However, customers generally require installation to the specified directory, so you can use the relocate option provided by the rpm command to adjust the default installation path to the specified directory (take the /data/sy/adb40sy/adb specified directory as an example).

```
sudo rpm -ivh adb-4.0.9ff827a8-10.el7.centos.x86_64.rpm --relocate=/opt/app/adb=$ADB_HOME 
```
There should be no spaces between relocate and the configuration that follows. If spaces are present, the error message shown in the title is thrown Solution. Do not add spaces between relocate and value.
Features of IAST(Interactive Application Security Testing)
Tags: webdev, programming, database, security
Published: 2023-08-04 02:36:41

IAST uses instrumentation to collect security information directly from running code instead of static(SAST) or dynamic(DAST) analysis of code. This allows IAST to detect issues earlier during development.

IAST has access to the code itself, HTTP traffic, application states, data flows, control flows and backend connections. This gives IAST a comprehensive view of vulnerabilities compared to traditional SAST/DAST tools.

IAST works by injecting security probes into the application. The probes monitor security-related events and pass them to an analysis engine which reassembles the events and identifies vulnerability patterns in the application's behavior.

IAST can be deployed at any stage of the SDLC - during development in IDEs, local testing, QA, CI/CD pipelines, and even production. IAST does not require any changes to existing development processes.

IAST offers real-time feedback,precise issue localization, and integrates with common developer tools. This empowers developers to find and fix their own security issues and submit "clean" code.

IAST can detect a wide range of vulnerability types from injections to authorization issues. IAST rules can also enforce positive security controls and best practices.

IAST helps achieve the benefits of static analysis(performance,scalability) while maintaining the dynamic nature of SAST through runtime instrumentation.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysmlj56mybm05eqq4ldz.png)
Write-Only Hugo Theme
Published: 2023-09-09 19:04:56

---
title: Write-Only Hugo Theme
published: true
date: 2023-08-04 02:21:06 UTC
tags: 
canonical_url: https://themes.gohugo.io/themes/writeonlyhugo-theme/
---

Write-Only Hugo Theme Write-Only Hugo is a simple, clean and straightforward blog theme. Live Demo See here. Quick Start If you are creating a new website, the quickest way to get up and running is to clone the demo website. git clone https://gitlab.com/writeonlyhugo/writeonlyhugo-demo.git Alternatively, you can clone just the theme to your theme folder: git clone https://gitlab.com/writeonlyhugo/writeonlyhugo-theme.git themes/writeonlyhugo-theme The folder hugoBasicExample contains a working version of a website with the theme.
How did I earn more than 300 BNB from 1 BNB ?
Tags: news, blockchain, web3
Published: 2023-08-04 02:09:22

Buy NFT (polygon): https://matrixpro.nftify.network/nft/matrixpro
Blog: https://matrixpro.nftify.network/blog
Web3 (BSC): https://matrixpro.vip/signup?referralid=1
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hf4x487xwafpioxwlw0l.PNG)
Javascript Basic
Tags: beginners, javascript, webdev
Published: 2023-08-04 02:03:45

**1. Data Types**

1. String
`"Any text"`
2. Number
`12345`
3. Boolean
`true or false`
4. Null
`null`
5. Undefined
`undefined`
6. Symbol
`symbol('something')`
7. Object `{key: 'value'}`
    - array `[1,"text", false]`
    - function `function name(){}`

number 1-6 are six primitive types



**2. Basic Vocabulary**

var a = 7 + "2";

_var_ = **keyword/reserved word**
any word that is part of the vocabulary of the programming languange is called a keyword(a.k.a reserve word).
Example: `var = + if for...`

_a_ = **variable**
a named reference to a value is a variable

_= and +_ = **operator**
operators are reserved-words that perform action on values and variables
Example: `+ - = * in === typeof != ...`


_var a = 7 + "2";_ = **statement**
a group of words, numbers and operators that do a task is a statement

_7 + "2"_ = **expression**
a reference, value or a group of reference(s) and value(s) combined with operator(s). **which result in a single value**.

**3. Object**
An object is a data type in Javascript that is used to store a combination of data in a simple key-value pair.

```
var user = {
   name: "Lourdes Suello",
   yearOfBirth: "1991"
   calculateAge: function(){
    // some code to calculate age
  }
}
```

`name, yearOfBirth, calculateAge` = **Key**
these are the keys in user object.

`"Lourdes Suello", "1991", function(){}` = **Value**
these are the values of the respective keys in user object.

`function(){}` = **Method**
if a key has a function as a value its called a method



**4. Function**
A function is a simple bunch of code bundled in a section. This bunch of code ONLY runs when the function is called. Functions allow for organizing code into section and code reusability.
Typescript as a beginner
Tags: beginners, programming, typescript, webdev
Published: 2023-08-04 01:26:32

**Typescript** is a programming language that's very similar to JavaScript, but with some added features. It's often described as "JavaScript with types". Essentially, Typescript is a "superset" of JavaScript, meaning that it's a language that contains all of the features of JavaScript and then some.

It allows you catch errors earlier in the development process and avoid bugs in your code as  it can check the types of variables and make sure that they're used correctly right as type the lines of codes immediately.

Typescript was also developed primarily to be able to write large-scale applications, makes your work clean and well defined.

This is just an introductory read, hope you enjoy it...
3 comportamentos que vão te levar de pleno pra sênior.
Tags: productivity, devops, career
Published: 2023-08-04 01:07:38

Fala pessoal! Hoje resolvi trazer um assunto que é muito importante e que muitas vezes é negligenciado: O comportamento dentro da empresa e como você é visto por causa desse comportamento.

Vamos falar sobre coisas que você pode fazer para evoluir como profissional e ser visto como sênior pelo seu time.

## 1) Não fuja da raia
Sabe aquele momento que o bicho pega ? Quando deu problema no banco de produção ? App está fora do ar por algum motivo, etc. 
Então, tenha coragem! Entre na discussão, ajude procurando logs, fazendo testes, chame seu colega para fazer um troubleshooting juntos, proponha formas de solucionar o problema. 

Esses momentos são ótimos para que tu possa se provar como profissional e mostrar para seus lideres e seu time que você está engajado com o produto.

Use momentos como War Room para tomar a frente do problema e tente atuar de forma que possa contribuir de verdade e sem medo de parecer que não sabe de algo, nesse momento o que vai ficar marcado é a sua atitude de encarar o problema de frente e estar junto do time.

**Eu sempre gosto de dizer que normalmente em War Room sempre tem duas pessoas que ficam dividindo o compartilhamento de tela e tentando resolver o problema, enquanto outras assistem, seja um dos que compartilha.**


## 2) Leve a sério os rituais do time
Sabe quando você inicia seu dia, abre o calendário e está marcada aquela planning de duas horas ? Bate um desânimo ? Então, esqueça isso!
Esses rituais são muito importantes para o desenvolvimento do produto e também para o amadurecimento do time, então participe disso, leve a sério, esteja 100% presente na reunião. 
No momento da review, traga pontos que foram importantes para as entregas da sprint e também pontos que prejudicaram as entregas.

### Coisas que você pode fazer

- Durante a retro, ajude a quebrar o gelo entre o time.
- Preste atenção em reviews de PRs, realmente olhe e entenda o código.
- Durante a planning, ajude a deixar as tarefas com boas descrições.

## 3) Olhe para fora do seu time
Ser um membro Sênior do seu time não é apenas sobre ter um conhecimento técnico, mas também sobre como você usa esse conhecimento para ajudar o time, o produto e outros times da empresa. 

### Colocando isso em prática
- Preste atenção em reuniões gerais onde os times mostram no que estão trabalhando e, caso veja algo que possa ajudar, chame após a reunião e troque uma ideia.
- Em momentos em que alguma aplicação de outro time está passando por algum momento ruim, como downtime, ofereça ajuda.
- Caso outro time adote uma tecnologia que você já tem contexto, apresente a eles como você usa essa tecnologia atualmente.

Esses são apenas alguns comportamentos que vão te ajudar a evoluir como profissional e deixar uma boa impressão para o seu time, mas lembre que o mais importante é sempre estar sendo útil, se aprimorando tecnicamente e tentando entregar o melhor de si para o time.

Qualquer dúvida, comentário, critica ou sugestão, fique a vontade e deixe um comentário.

E estou aceitando sugestões de assuntos para criar novos posts!
Forte abraço!
About our new app-Jokookie
Tags: jokookie
Published: 2023-08-04 00:44:14

Jokookie is a kind of jokes set app which can show the users calendar and random joke. The joke can randomly generated according to different dates. Meanwhile, the users can also generate the jokes manually, and the users can search the related jokes by the term they input. Most importantly, the users can save the jokes as a picture, so they can show the picture to the other people. It's a very funny app.
ReactJS Coding and TechTalking, come join :D
Tags: podcast, react, javascript, frontend
Published: 2023-08-04 00:42:16

Programming a real company app with reactjs, using microfroentds and typescript C#, javascript, html, css, net core, kubernetes.

Worked for more than 6 tech companies, including AbInbev, Banco Safra e Dell Computers. For now i own a fintech and i am also building a new startup.

[Youtube Live](https://www.youtube.com/watch?v=ikUIIk3t7tE)