teleren/devto huggingface dataset:
A new unified streaming and batch table storage solution similar to iceberg/hudi/delta lake but with several new functions
Tags: dataengineering, opensource, bigdata, programming
Published: 2022-03-17 15:13:59

I have seen a new unified streaming and batch table storage solution named **_Lakesoul_** on Github, which is similar to Iceberg, Hudi and Detalake, but with several new functions, such as upsert, meta-data Management and so on. However, there are also some shortcomings, such as Flink is not supported. But its roadmap shows Flink integration in progress. Have any of you used Lakesoul before?

I used _upsert_, which can be interpreted as a combination of update and insert, which is a great time saver. Lakesoul supports range and Hash partitions, which can be used to add, delete, and modify rows and columns simultaneously using upsert.

Here's[ an official description of Upsert from Lakesoul](https://github.com/meta-soul/LakeSoul/wiki/03.-Usage-Doc#3-upsert-lakesoultable)
Multi-level partitioning and efficient upsert: LakeSoul supports range and hash partitioning, and a flexible upsert operation at row and column level. The upsert data are stored as delta files, which greatly improves the efficiency and concurrency of writing data, and the optimized merge scan provides efficient MergeOnRead performance.

Code Examples

```
import com.dmetasoul.lakesoul.tables.LakeSoulTable
import org.apache.spark.sql._
val spark = SparkSession.builder.master("local")
  .config("spark.dmetasoul.lakesoul.meta.host", "cassandra_host")
  .config("spark.sql.extensions", "com.dmetasoul.lakesoul.sql.LakeSoulSparkSessionExtension")
  .getOrCreate()
import spark.implicits._
val tablePath = "s3a://bucket-name/table/path/is/also/table/name"
val lakeSoulTable = LakeSoulTable.forPath(tablePath)
val extraDF = Seq(("2021-01-01",3,"chicken")).toDF("date","id","name")
lakeSoulTable.upsert(extraDF)
```
The official of [Lakesoul, DMetaSoul](https://github.com/meta-soul/LakeSoul/wiki), introduces that LakeSoul is a unified streaming and batch table storage solution built on top of the Apache Spark engine by the DMetaSoul team, and supports scalable metadata management, ACID transactions, efficient and flexible upsert operation, schema evolution, and streaming & batch unification.

I want to learn more about Lakesoul and be a contributor to it. IF you want to learn more about lakesoul, please click [its GitHub page](https://github.com/meta-soul/LakeSoul), or follow me in my next post, where I'll also share what I learned about the Data Lake warehouse.
10.000 downloads of Luos on Github!
Tags: community, opensource, devtool, robot
Published: 2022-03-17 15:54:29

🥳 We wanted to say 10k times thank you by:

- Creating a thank you robot
- Developing a Python script to send a personalized message to each of you.
- Generating random gifs personalized with your Discord avatar.
- Building a robotic arm that writes each of your pseudos.

But we figured that simply saying thank you in a message that sums up the 10,000 downloads of Luos could be enough.

❤️ community
Join our fantastic community: https://discord.gg/luos
Birthday Journal - Day 2: Hindering Patterns to Sucess
Tags: discuss, writing
Published: 2022-03-17 15:52:47

### **Discretion
_Please note, reading this devjournal is at your discretion! Contents may be touching, dark or implicit!! The aim of this is to portray the transparency of becoming!!!_

---

**Clocking 24** is making me grow to be more understanding to oneself, accepting the flaws and weaknesses, taking decisions every minute to be better than the last minute lived is indeed the height of living conciously.

Clocking 24, brings to my face dawning realities of so many perspectives: knowing oneself, **staying grounded**, understanding one's voice and tone, knowing your friends and frienemies.

---

**Today,** going through series of converstaion in my head and some recording, I began to realize some basic patterns that had being **hindering me from exploring better sides of myself**. Amongst them are:

- Constant need for validation
- Ego
- Not letting go
- Not learning to define my ground in a more matured tone
- Agressive approach
- Always putting myself at detriments of unnecessary situations
- Over-thinking every situations
- Always having a thing of 'being right'
- Victim mentality
- Extreme actions for tiny situations
- Fighting systems while inwardly desiring one
- Having too many expectations of myself whereas not taking decisive actions in actualizing them.
- Masking fears with arguments.

---

> Understanding is a vital key to success, personal attainment and achievements.
HTML5 subtitles with dynamic width on OSX
Tags: html5video, subtitles, css, ttml
Published: 2022-03-17 15:28:46

If you've run into subtitles taking up 100% width of the HTML5 video player window, which is common in Chrome or Safari on OSX, here is a neat styling trick:

```css
::-webkit-media-text-track-display {
  // prevent subtitles from taking up 100% width
  // while remaining centered
  width: auto !important;
  left: 50% !important;
  transform: translateX(-50%);
  // prevent unexpected line breaks, since the  
  // above styling will otherwise force 50% width
  // on the subtitle element
  white-space: pre;
}
```

This code will center the subtitle element, make sure it keeps a dynamic width, and prevent unexpected line-breaks.

Since the fix maintains native subtitle rendering, it allows for operating system level accessibility options to be applied.
Amazon Code Quest: Series walkthrough
Tags: aws, codequest, cloud
Published: 2022-03-17 15:12:53

## Code Quest: Aws training 'metaverse'

![front](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itvrgibwrc40mraw23kv.jpg)

**AWS Code Quest**

Cloud Practitioner is an all-new 3D role-playing game, designed by AWS Training and Certification, to help adult learners gain practical AWS experience.
You will be Cloud practitioner who helps citizens of the city by solving their problems through building cloud solutions.

### Code Quest strategy
You are the master of your own pace and, and your technical training will be reinforced using various hands on labs, DIY challenges, rewards, puzzles and simulations.

![levelsn](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8vegjx12p5ord1o8dhh3.jpg)
The game helps you to think in cloud computing terms through following 4 basic steps:


![Steps](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9g8iyiirl545dns8hv8n.jpg)
1. **Learn**

Each challenge covers a specific knowledge domain in Aws. The game has resources and videos covering that section. You will learn more about the necessary procedures required to solve the challenge

2. **Plan**

Each challenge also requires a plan or architecture. In some solutions, the plan is already completed for you and requires optimization or restructuring.

3. **Practice**

A sandbox Aws console is provided to practice and implement the solution. This is awesome as it totally eliminates the possibility of accidentally incurring costs when using your own account. Sometimes we forget to turn off the EC2 instance!!
Also a step by step instructions are available with concept explanations.

4. **DIY**

This part requires us to implement what we have practiced without the guiding hand ✋ and steps. This stage has a validation submission to verify the results.

---
The game will enable individuals to step into the shoes of cloud professionals and cater highly available, scalable, cost effective, efficient cloud solutions; it is perfect learning tool for someone who has no experience with cloud computing.
Keep updated as I explore the game.
Starting Game development journey!
Tags: csharp, gamedev, programming, productivity
Published: 2022-03-17 15:09:05

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

Hello guys, I have finished python, web development full-stack, bot development and now I am stepping into C# and Game development! I'm using unity, so I will start posting what I have learned in game development each and every day stay tuned & supportive!😊
Working with Vercel
Published: 2022-03-17 14:59:58

## What is Vercel?
Vercel calls themselves a platform for front-end frameworks and static sites that is built to integrate with headless content, commerce, or databases. Vercel makes deployment very fast and easy and takes care of scaling. So instead of trying to work out GitHub pages, Vercel will configure and deploy the application and do it very quickly making it such a powerful tool.

## Creating an Account and Linking it with GitHub
First thing you want to do to start working with Vercel is to create an account and link it to your GitHub account. To do this go to [](https://vercel.com/signup) and click continue with GitHub. From there sign on to GitHub and you have completed the first step.

## Deploying a Project
While signed on and looking at your Dashboard, click the New Project button. This will take you to page that will let you import a GitHub repo and should look like this (except with your GitHub repos not mine).

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

Select the repo that you want to deploy and depending on the project, you may have to change some of the default configurations. Once the configurations are set, click on deploy and Vercel will build, run checks, and assign domains. After some time, if successful you will see a screen like this

![ist-vercel-demo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lqnjcnkyqn09u4e7d0q9.png)

## 11ty Blog Post Deployed with Vercel
This is a successful deployment of my 11ty lab in Vercel

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qi0il6akqry9ctof99di.png)
Terminal komandalari | 4, 5
Tags: programming, cpp, uzbek, beginners
Published: 2022-03-17 14:57:18

## Part 4
## `Date`
*`mkdir $(date '+%d--%m-%Y')`*
- Bu komanda asosan sizga (dd-mm-yyyy) ya'ni hozirgi vaqtdagi sana nomi bilan papka yaratishga yordam beradi.

*`echo $(date '+%d--%m-%Y')`*
- Bu komanda asosan sizga (dd-mm-yyyy) ya'ni hozirgi vaqtdagi sanani ekranga chop etishga yordam beradi.

## Part 5
#### `g++ main.cpp -o dastur && ./dastur`
Ushbu komanda sizga ko'p marotaba *`vscode`* da **`g++ main.cpp`** keyin **`./a.out`** deyishni oldini oladi. 
#### `alias run='g++ main.cpp -o dastur && ./dastur'`
bu komanda yuqoridagi komandani yanada qisqa qilib bera oladi
yuqoridagi *run* so'zini o'rniga start, go va shunga o'xshagan so'zlarni qo'yish mumkin.
Elastic Load Balancing & Auto Scaling Groups
Tags: aws, elb, asg, cloud
Published: 2022-03-17 14:52:07

**_Scalability and High Availability_**

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

**_Vertical Scalability_**
Scaling one thing.

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

**_Horizontal Scalability_**
Increase the size of an institution. 

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

- 
High Availability usually goes hand
in hand with horizontal scaling

- 
At least 2 Availability Zones

- 
The goal of high availability is to
survive a data center loss
(disaster)

**_Scalability vs Elasticity vs Agility_**

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


**_Load Balancing_**

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

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




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



**_Gateway Load Balancer_**
[Gateway Load Balancer](https://aws.amazon.com/blogs/aws/introducing-aws-gateway-load-balancer-easy-deployment-scalability-and-high-availability-for-partner-appliances/)

**_Auto Scaling Group_**

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


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


**_Auto Scaling Strategies_**

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


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

**_Summary_**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ax5wuia6sgqyqwm6vmim.png)
Programming Language for Bhailog
Tags: bhailan, bhailog, bhai, programming
Published: 2022-03-17 14:47:01

BhaiLang is a programming language made using syntax familier to Indian language. 

For example to print something in bhai it is written 
```
bol bhai "Hello World";
```
**bol bhai** means **say** in hindi. 

Here i will show how to set up bhailang on you machine and write first bhai lang program. 

To install you need to have installed node and npm installed into your system. If you haven't please checkout this video. 

Mac : https://youtu.be/pHz7TgEIa0w
Linux : https://youtu.be/P6rPI7x28nY
Windows : https://youtu.be/n3M9qKvFZeg

Once you install node and npm open your terminal and to install bhai lang just type : 

```
npm i -g bhailang
```

This should install bhailang on your system. You just need to type sudo npm i -g bhailang for Linux and Mac. 

To check if bhailang is installed or not just type 

```
bhailang --version
```

To write your first program just open VS code or any Editer and simply create a file with .bhai extension 

For example test.bhai 

For first program just write : 
```
hi bhai 
 bol bhai "Code With Arjun";
bye bhai
```

To run the program just type 

```

bhailang test.bhai 
```

And the output will be : 
```
Code With Arjun
```

For more detail Please watch this video  :

{% youtube es7zx-baeUE %}
SerpApi Integration for Zapier (wip)
Tags: nocode, webscraping
Published: 2022-03-17 14:33:55

---
canonical_url: https://serpapi.com/blog/serpapi-integration-in-zapier-beta/
description: "Beta SerpApi Integration for Zapier allows getting search results for the specific domain and creating a record in Airtable, for example."
---

> SerpApi Integration for Zapier is work-in-progress.

## Idea

Two years ago we wrote a [note about a SerpApi Integration for Zapier](https://medium.com/serpapi/track-daily-google-rankings-for-specific-query-and-domain-via-serpapi-integration-in-zapier-beta-f8c69da88a24). Currently, we're working on supporting all search parameters that SerpApi has.

Work-in-progress SerpApi Integration for Zapier works similarly to the `SERPAPI_RANK` function from [SerpApi Add-On for Google Sheets](https://workspace.google.com/marketplace/app/serpapi_search_engine_results_and_ranks/562749385480) ([tutorial](https://medium.com/@elizabeth_38962/how-to-scrape-google-results-into-a-spreadsheet-serpapi-google-sheets-plugin-e2915e73299f)). It is a Zapier Action that makes a search to SerpApi with the specific parameters.

![Parameters for the SerpApi Action in Zapier](https://serpapi.com/blog/content/images/2022/03/image-1.png)

## Returned data

Then returns a search result that matches the domain.

![Test results of the SerpApi Integration for Zapier](https://serpapi.com/blog/content/images/2022/03/2022-03-17_16-08.png)

## Use cases

A matched search result, *for example*, can be passed to the next Zapier Action like "Create Record in Airtable" or "Create Record in Google Sheets".

![Using SerpApi result in the Create Record in Airtable Action in Zapier](https://serpapi.com/blog/content/images/2022/03/2022-03-17_16-12.png)

![Zapier Action creates a record in Airtable](https://serpapi.com/blog/content/images/2022/03/image--1-.png)

## SerpApi + Zapier

SerpApi integration for Zapier is in development. We're working on [accepting more search parameters](https://github.com/serpapi/public-roadmap/issues/69) that SerpApi supports.

## Outro
If you have anything to share, any questions, suggestions, or something that isn't working correctly, reach out via Twitter at [@ilyazub_](https://twitter.com/ilyazub_), or [@serp_api](https://twitter.com/serp_api).

Yours,
Illia, and the rest of the SerpApi Team.

----

<p style="text-align: center">Join us on <a href="https://www.reddit.com/r/SerpApi/">Reddit</a> | <a href="https://twitter.com/serp_api">Twitter</a> | <a href="https://www.youtube.com/channel/UCUgIHlYBOD3yA3yDIRhg_mg">YouTube</a></p>

<p style="text-align: center"><a href="https://github.com/serpapi/public-roadmap/issues/new">Request a Feature 💫 or Report a Bug 🐞</a></p>
The Subtle Art Of Cold Emailing
Tags: tutorial, beginners, productivity, discuss
Published: 2022-03-17 14:22:43

## What is cold- emailing?
Is there a dream company/dream role you want to work for? Do you want a reply from your favorite celebrity? Do you want to get mentored by your idol? Cold-emailing can do it for you!

You never know, when a simple tweet or an email or a message can lead to your first big hit! Put your creative hat on and get the desired results!

There are numerous examples of people getting hired from a LinkedIn post or an email, becoming a social media celebrity overnight and more. Once you figure out how it is done, you use the skills to get what you desire for.

We will see what worked for me, hoping it works for you too. But but, not everything works for everyone. A/B testing works good in such cases!

## Ace the art

From getting internship opportunities that had no openings to setting up 1:1 calls with my favorite personality - I have nailed it all with cold-emailing/texting.

### Here's how I did it:
- Sent the email with a witty subject line
- Introduced myself in 2 lines (an introduction that is relevant to the person I am reaching out to)
- Remember precis writing in school? I used that skill - to draft my request/thoughts precisely (I prefer to write in bullet points)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c375tv1pf1dmswk88ejm.jpg)
- Do your own research first (this helps in building interest)
- Attach a proof of work/concept (if it is required)

### Let us try with an example:

**Scenario:** Imagine you want to intern in a company, and there are openings only for full time employees. But that's the perfect opportunity for you to showcase your skills and also hone them. 

### You can approach this in two ways:
- Reach out to the hiring manager, give a brief introduction (also add about your work in the particular field) and show your interest to intern there. End it by saying that you would like to setup a quick call to discuss about opportunities, if not this, future ones. 

**P.S** - I love to keep open endings, maybe you can try it too.

- Email the hiring manager, you can add a subject line like "Interns can help you save some bucks, I can be one". Frame the body with pointers introducing yourself, your area of interest, the value you can add to the company and be sure to attach your proof of work.

- **Bonus**: For many people, even a Twitter/LinkedIn post has worked wonders. Be creative!

**Note:** The author cannot be held responsible if things go wrong (since not everyone likes the idea of cold emailing).


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pzuslircn6aojcd2qgir.gif)
3 nice little JavaScript tips that you will want to use!
Tags: beginners, javascript, codenewbie, tutorial
Published: 2022-03-17 14:21:36

## Short circuiting


```javascript
// instead of using the usual if statement
if (login.status) {
displayUser()
}

// use a technique called short circuit evaluation

login.status && displayUser()
```
This works because of the && (the logical AND which is read left to right), so if the **first operand is true**(login.status)  then it will **run the second operand** (displayUser()).

If the first operand is false Javascript will 'short-circuit' as the AND will always be false and carry on reading the rest of the code!

This technique is especially import if using React as you cannot use IF/ELSE statements in JSX code.

## Using an unary operator to turn a string into a number

```javascript
// you may get an Id or some number as a string type

data.id = "3223"

// a quick and easy to turn it into a number

if(+data.id===3223) console.log("It is now a number!)


```

All you have to do is place a +(the operator) before your string(operand) and it converts the operand to a number.

There are more unary operators to use, like for example "++"
which adds 1 to its operand.

Another use tip with this is changing any negative number/string into a positive

```javascript

console.log(-"-12") // 12!
console.log(--12) // 12

```

See what happens when you place a + or - operator before other operands such as true, null, false, NaN etc. Can you correctly predict?

## Shortening multiple condition checking

We have all been there

```javascript

if(input==="yes" || input ==="y"|| input ==="ok"){
//code to execute
}
```
It is long, you can miss an equals or just use one, you can forget to write input again. So if you find yourself needing to write some code similar to the above try this little JavaScript code!

```javascript

if(["yes","y","ok"].includes(input)) {
//code to execute
}
```
The includes is a method for an array which returns a boolean, if it does not find any of the elements in the array it simply returns false.
How to Change Node.JS Version
Tags: node, javascript, webdev, tutorial
Published: 2022-03-17 14:19:06

In this quick guide, we'll be looking at the easiest way to change Node.JS version using nvm.

## Using nvm to change Node.JS version
First, you will need to install nvm, which stands for node version management. To install nvm, you can do it by running the following script:

```
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
```

Alternatively, you can install it with wget:

```
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
```

After it is installed, you have to run the following command to start using it immediately - simply copy and paste this into your terminal and press enter to get going:

```
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
```

To test this has worked, write `nvm` into terminal, and press enter. You should be greeted with the nvm help functions.

## Changing Node.JS version with nvm
To change Node.JS versions, we have to first download the version we want. Make sure you have nvm installed first. If you don't know the version you want to install, type nvm ls-remote to get a full list of all installable Node.JS versions.

Next, when you have selected the version you want to install, use nvm install to install it. The below code will install Node.JS v17.0.1:

```
nvm install 17.0.1
```

If you simply want to install the latest stable version of Node.JS, you can use the following command:

```
nvm install node
```

You can also use `nvm install --lts` instead!

Once the installation has finished, use the nvm use command to ensure the correct version is being used. The below code will ensure v17.0.1 is being used:

```
nvm use 17.0.1
```

As before, `nvm` use node or `nvm use --lts` will use the latest stable version. Now you have installed and changed your Node.JS version using nvm.

## Upgrading an old project to a new Node.JS version
If you have been stuck on an old version of Node.JS, your project may be dependent on old versions of packages. To fully upgrade your old package.json after changing Node.JS version, you can use the npm package, `npm-check-updates`.

To install `npm-check-updates`, use cd to move into the directory you want to upgrade. Then run the following command:

```
npx npm-check-updates
```

You will be asked to install `npm-check-updates` - type 'y' and then press enter.

After the installation is complete, you will be given a list of possible upgrades for your package.json. If you wish to proceed, run `ncu -u` to fully upgrade your package.json.

Now you will have changed Node.JS version, and fully upgraded your old project with `npm-check-updates`.