teleren/devto huggingface dataset:
Build law text corpus
Tags: python, xslt
Published: 2023-08-03 07:11:22

In this part of series, I will describe, how to create a corpus of German law texts from https://www.gesetze-im-internet.de.

## Previously in series

In the previous parts of this series, we downloaded 6518 German laws, in XML format, stored in ZIP files.

## Conversion to plain text

Converting XML documents to plain text format can be accomplished with many tools and technologies, but after thorough considerations about a couple of edge cases I decided to use an XSLT stylesheet.

After studying the [DTD file](http://www.gesetze-im-internet.de/dtd/1.01/gii-norm.dtd), which was referenced in the XML files, as well as the XML files themselves, following tasks had to be addressed (the paths given use XPath notation):

1. The XML files have root element `/dokumente`
2. The laws are either incredibly short and consist of a single paragraph, or rather long with a table of contents
3. In the first case from 2., the law name is in `metadaten/enbez` and `metadaten/titel` (if the first path is present) or in `metadaten/enbez` only; in the second case ibid, the title is in `norm/metadaten/langue`
4. The text body is always in `textdaten`
5. The paragraphs are in the `P` tags and end with a new line
6. The definition lists are in `DL` tags and are rendered similar to paragraphs, but without new line after the last entry
7. The new line in text has `BR` tag, but is not rendered if being within a table or a list entry
8. Table of contents (`TOC` tags) are excluded, as they repeat paragram titles only and thus senseless in language model training; also, they are unusable in case of plain text, as there are no known page numbers
9. Titles (`Title` tags) are rendered with appended new line
10. Tables (`table` tags) are rendered with rows (`row` tags) ending with a new line and all single cells but the last in row one (`entry` tags) with a tab character appended
11. The end marker of the law text will be 25 empty lines

And hence the short XSLT stylesheet of about 100 lines:

{% embed https://gist.github.com/wincentbalin/bd62c3a8e5a82b42d6c29124acaf352b %}

Run it in Windows using [msxsl.exe](http://web.archive.org/web/20140812045521/http://www.microsoft.com/en-us/download/details.aspx?id=21714) as XSLT processor like this:

```
msxsl BJNR001270871.xml giitotext.xsl > BJNR001270871.txt
```

Concatenating the text files creates a law text corpus.


## Next step

In the next part of series we will see how to train a language model with the text corpus we just created.
Only for people who have been informed of the situation in Spain-Europe for 4 years
Published: 2023-08-03 07:07:23

Hi Geeks,


**In English:**
**============**

I leave below the command to install the new firmware for your brains if in this legislature(ˈlɛʤɪsleɪʧə) President Sánchez governs (ˈɡʌvᵊnz) again


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


You will lose your personality, do what most people do, have no critical thoughts. In this update has been improved and increased the volume by pronouncing the mantra: fascist, machista, homophobic, racist and inserted new as fat phobia. 

There are already inserted(ɪnˈsɜːtɪd) phrases (ˈfreɪzɪz) such as: "Again mentioning the ghost of ETA that disappeared 12 years ago", "The best is the commissary (ˈkɒmɪsᵊri), sorry public supermarkets", "Be receptive (rɪˈsɛptɪv) to any new directive (daɪˈrɛktɪv) and not use critical thinking". As Zapatero3.0 says, "We have never been as free as now (in that talk the sad thing is that He was not drunk)


In Spanish:
=============

Abajo os dejo el comando para instalar el nuevo firmware para vuestros cerebros si en esta legislatura gobierna nuevamente Sánchez. 

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

Perderéis vuestra personalidad, haréis lo que hace la mayoría de la gente, no tendréis pensamientos críticos. En esta actualización se ha mejorado y aumentado el volumen al pronunciar el mantra: fascista, machista, homóphobo, racista y se insertan nuevas como gordophobia. 


Hay frases ya insertadas como: "Otra vez mencionando el fantasma de la ETA que hace 12 años desapareció, "Lo mejor es el economato, perdón supermercados públicos", "Ser receptivo ante cualquier nueva directriz y no usar pensamiento crítico". Como dice Zapatero3.0, nunca hemos sido tan libres como ahora (en esa charla lo triste es que no estaba borracho)
What is Robotic Process Automation Discovery?
Tags: writing
Published: 2023-08-03 06:57:08

RPA (Robotic Process Automation) discovery is a crucial phase in the implementation of RPA solutions. It involves an in-depth analysis and understanding of the existing business processes within an organization to identify suitable automation opportunities. During the discovery phase, RPA teams collaborate with subject matter experts and stakeholders to gather detailed information about the processes, including their inputs, outputs, decision points, and exception handling.

The primary objective of RPA discovery is to map the end-to-end process flow, documenting each step and its variations to create a clear and comprehensive picture of the current workflow. This information helps in identifying tasks that are repetitive, rules-based, and time-consuming, making them potential candidates for automation.

The RPA discovery process often includes workshops, interviews, and process walkthroughs to gain insights into the nuances of the processes and the challenges faced by the employees performing those tasks. It also helps in identifying the applications, systems, and data sources involved in the processes, as well as any security, compliance, or governance requirements that need to be addressed during automation.

The output of the discovery phase is a detailed process map, which serves as the foundation for the subsequent design and implementation of RPA bots. The RPA team can then prioritize the identified processes based on their complexity, business impact, and potential ROI (Return on Investment) to create a roadmap for automation implementation. Apart from it by obtaining [RPA Course](https://www.edureka.co/robotic-process-automation-training), you can advance your career as an RPA. With this course, you can demonstrate your expertise in RPA, Image and Text automation, Computer Vision activity, Object Repository, Data Manipulation using RPA bots, managing your processes from UiPath Orchestrator and building a solution with REFramework, many more fundamental concepts.

RPA discovery plays a critical role in the success of RPA initiatives, as it ensures that the right processes are selected for automation, leading to increased efficiency, reduced errors, and enhanced productivity. It also provides a clear understanding of the expected benefits and challenges, allowing organizations to set realistic expectations and plan for the successful adoption of RPA technology. Moreover, RPA discovery is an iterative process, as it continuously evolves with changing business requirements and process improvements, making it an essential ongoing practice in the journey of digital transformation through Robotic Process Automation.
Coding Vision: Working on Projects for the Long Haul or Sprinting?
Tags: codenewbie, beginners, discuss, career
Published: 2023-08-03 07:00:00

_Welcome to "Discover Your Code," guided by our official DEV moderator, Sloan the Sloth 🦥. This series is designed to help aspiring coders and students explore the coding universe, ignite their passion, and find their ideal career paths._

Today's question is:

> Do you lean toward long-term projects or prefer the excitement of short-term tasks?

Responses from newbies and experienced devs alike are encouraged in order to broaden our horizons and showcase different POVs.

Follow the [CodeNewbie Org](https://dev.to/codenewbieteam) and [#codenewbie](https://dev.to/t/codenewbie) for more discussions and online camaraderie!

*{% embed* https://dev.to/codenewbieteam *%}*
Mentors’ Influence: Changing Career Path Decisions?
Tags: discuss, carreer, learning
Published: 2023-08-03 07:00:00

_Discover diverse career growth stories and coding journeys in "Mentors & Mentorships" on The Daily Byte. Get inspired! 💻🌟_

> Tell us about a time when a mentor's advice or encouragement changed your perspective or decision regarding your career path. How did it shape your future choices?


Follow the DEVteam for more discussions and online camaraderie!

{% embed [https://dev.to/devteam](https://dev.to/devteam) %}
Spring IoC Container
Tags: java, spring, programming, tutorial
Published: 2023-08-03 06:52:23

Spring IoC Container
====================
1) Spring IoC container forms the core of the Java Spring Framework. 
2) It is responsible for instantiating, configuring and managing the beans in your spring application.
3) It uses configuration metadata to manage the beans.
4) Configuration metadata can be supplied through XML file or through Java annotations or through Java Code.
5) It uses configuration metadata and POJO classes to set up an application ready for use.


![Spring IoC Container](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8wctj9h9s21lswwuvu72.png)

See more at https://javaconceptoftheday.com/spring-ioc-container/
Develop inside a container for easy developer onboarding
Tags: gitpod, development, github, automation
Published: 2023-08-03 08:27:34

---
title: Develop inside a container for easy developer onboarding
published: true
date: 2023-08-03 06:49:24 UTC
tags: gitpod,development,github,automation
canonical_url: https://itnext.io/develop-inside-a-container-for-easy-developer-onboarding-505f41cf5cd7
---

[![](https://cdn-images-1.medium.com/max/2600/1*R-YHXLfv2xv4VI2gIDwgxA.jpeg)](https://itnext.io/develop-inside-a-container-for-easy-developer-onboarding-505f41cf5cd7?source=rss-d17426511f73------2)

Use containers to create developer environments.

[Continue reading on ITNEXT »](https://itnext.io/develop-inside-a-container-for-easy-developer-onboarding-505f41cf5cd7?source=rss-d17426511f73------2)
50 High-Quality Developer Jobs at VC-Backed Startups: Your Weekly Roundup [3rd Aug, 2023]
Tags: frontend, career, community, jobs
Published: 2023-08-03 06:42:10

Hello, Devs! Excited for another round of top-notch developer job opportunities? We're back with our weekly roundup, bringing you the best from the world of VC-backed startups!

Each week, we dive deep into over 30 job boards, including 20+ from leading VCs, to compile a list of 50 job posts that meet our stringent criteria. We're talking about companies backed by top-tier VCs, boasting a Glassdoor rating of 4+ and demonstrating impressive team growth over the past two years. Plus, we ensure the job post is fresh, indicating active recruitment.

To aid your evaluation, we present funding info from CrunchBase, team growth details from LinkedIn, ratings from Glassdoor, and specifics from the job post. We strive to maintain a balance between frontend, backend, and full-stack roles across various experience levels. Currently, we're covering jobs in the US and India, spanning remote, hybrid, and in-person roles.

This week, we've got some exciting roles lined up:

#### 1. SafeBase is looking for a Senior Software Engineer for a remote role. [Click Here](https://boards.greenhouse.io/safebase/jobs/4300252005?gh_src=1d5f87455us).

#### 2.ezCater is hiring a Staff Software Engineer for a remote position. [ Click Here](https://boards.greenhouse.io/ezcaterinc/jobs/4047323007).

#### 3. Stairwell is on the hunt for a Software Engineer for a remote role. [Click Here](https://boards.greenhouse.io/stairwell/jobs/4316724004).

#### 4. Flock Safety is seeking a Software Engineer for a remote role. [Click Here](https://boards.greenhouse.io/flocksafety/jobs/6851391002).

#### 5. Writesonic is looking for a Staff Software Engineer for a remote role. [Click Here ](https://app.pyjamahr.com/careers?company=writesonic&job_id=50882&company_uuid=C85090557F&source=LINKEDIN&apply_now=true)

But that's just the beginning! We have 25 roles each in the US and India, including 15 Backend, 12 Frontend, and 23 Fullstack roles. Plus, 17 jobs offer remote work opportunities, and 5 are Hybrid roles. In terms of experience level, we have something for everyone, from roles requiring less than 2 years of experience to those needing a minimum of 6 years of experience.

**To view all 50 of these these opportunities, check out [{Startups} && {Devs}](https://startupsanddevs.kombai.com/p/startup-dev-jobs-of-the-week-3th).**

That's all for this week! Remember, you're awesome, and your dream job could be just a click away. Don't hesitate to apply or share these opportunities with your network. See you next week with more exciting job posts!
The three states of Git - Looking into a typical Git workflow
Tags: git
Published: 2023-08-03 06:37:56

_📝 This post is part of my [“Shorts”](https://poddarayush.com/shorts) series, where each post is concise and hyper-focused on a single concept._

Continuing with my exploration of [Git](https://poddarayush.com/tags/git), this post will try to formalise the knowledge around the states of Git. As a developer, you may already be using them in your workflow.

> ℹ️ This post refers to the term “version database” repeatedly. It simply is a database that Git maintains to store the versions of files in your version-controlled repository. Read more about it in [this post](https://poddarayush.com/posts/history-of-git/).

The three states
----------------

1.  `modified`: This means that the file has been modified, but not committed (saved) to the version database.
2.  `staged`: This means that you have marked the modified file in its current version to be saved to the version database when you make you next commit.
3.  `committed`: This means that the current version of the file has been saved to the version database.

These three states give way to three sections of a Git project.

The three sections
------------------

1.  Working tree: This is a single version of your project checked out, where you can make some meaningful modifications to build a world-conquering application. Usually, it is the latest version, but you may have checked out a previous version which then becomes the working tree.
2.  Staging area: It stores information about which modified files will be part of your next commit (or saved into the version database).
3.  Git directory: Basically, it stores all information on your version-controlled repository, maintains the version database, stores any related metadata. This is the most important part of Git, and is duplicated when a repository is “git-cloned”.


![A typical Git workflow.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l6av7155q0tystumztg8.png)


Final words
-----------

With a formalised knowledge of the three states/sections of Git, a typical Git workflow would like:

1.  Modify files in the working tree.
2.  Select the files you want to move to the staging area.
3.  Commit - Store a snapshot of the current version permanently to the Git directory.

As I have written above, you have probably interacted with all the three states/sections of Git. Yet, I believe it is always helpful to be aware of what exactly is going on. This builds an appreciation for the effort put behind the development of tools, like Git.

Sources
-------

*   [https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F](https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F)
Manager Handbook for Distributed AntDB-T - P7
Tags: database
Published: 2023-08-03 06:35:33

#### clean

---


**Command function:**

The Clean command is used to clear all data under the data directory of the nodes in the AntDB cluster. This command assumes that all nodes are in the stop state and not in the cluster. There is no interaction with the clean command, so please execute this command carefully if you need to keep the data. Only the clean all command is supported for now. The specific functions can be viewed through the help command `\h clean`.

**Command format:**

```
CLEAN ALL 
CLEAN COORDINATOR { MASTER | SLAVE } { node_name [ , ... ] } 
CLEAN DATANODE { MASTER | SLAVE } { node_name [ , ... ] } 
CLEAN GTMCOORD { MASTER | SLAVE } node_name 
CLEAN MONITOR number_days 
CLEAN ZONE zonename 
```

**Command example:**

```sql
-- Empty the contents of the data directory of all nodes in the AntDB cluster (the ADB cluster is in the STOP state): 
CLEAN ALL; 
-- Empty the data directory of coordinator node: 
CLEAN COORDINATOR MASTER coord1; 
-- Empty the monitor data from 15 days ago: 
CLEAN MONITOR 15; 
```

#### deploy

---


**Command function:** The Deploy command is used to distribute the executable files of machine-compiled AntDB cluster where adbmgr is located to the specified directory on the specified host. It is commonly used when you are just starting to deploy AntDB cluster or when the source code of AntDB cluster has been changed and needs to be recompiled. The specific function can be viewed by the help command \\h deploy.

**Command format:**

```
DEPLOY { ALL | host_name [, ...] } [ PASSWORD passwd ] 
```

**Command example:**

```sql
-- Distribute the executable file to all hosts (all hosts on the host table), with no mutual trust configured between hosts and the password "ls86SDf79": 
DEPLOY ALL PASSWORD 'ls86SDf79'; 
-- Distribute the executable file to all hosts (all hosts on the host table), with mutual trust configured between hosts:
DEPLOY ALL; 
-- Distribute the executable file to host1 and host2, with no mutual trust configured on neither of them, and the password to both is 'ls86SDf79': 
DEPLOY host1,host2 PASSWORD 'ls86SDf79'; 
-- Distribute the executable file to host1 and host2, with mutual trust configured on both hosts: 
DEPLOY host1,host2; 
```
The Benefits of ERP For Small Business
Tags: erp, softwaredevelopment
Published: 2023-08-03 06:17:52

Enterprise Resource Planning (ERP) software has become a game-changer for small enterprises, streamlining processes and providing a competitive edge. [ERP For Small Business](https://adsgrill.com/erp-for-small-business/) can empower them to compete effectively in a dynamic market. While traditionally associated with larger corporations, ERP systems are now accessible to smaller businesses, bringing with them a lot of advantages. Let's explore the benefits of ERP for small business:

**1. Enhanced Efficiency:** A primary advantage of ERP is its ability to integrate and automate various business processes, from inventory management to accounting. 

**2. Data Visibility and Accuracy:** ERP systems provide real-time data insights across different departments. 

**3. Cost Reduction:** Implementing an ERP system might require an initial investment, but it can lead to long-term cost savings.

**4. Improved Customer Service:** Satisfied customers are the backbone of any successful business

**5. Scalability:** As small businesses grow, they need scalable solutions to accommodate their expanding operations.

**6. Compliance and Security:** Compliance with industry regulations and data security are paramount for any business, regardless of size. 

**7. Business Intelligence and Analytics:** ERP solutions often include business intelligence and analytics tools that can help small businesses derive valuable insights from their data.

**8. Streamlined Reporting:** Generating reports and performance metrics becomes hassle-free with ERP software.
Storing credentials securely in environment variables
Published: 2023-08-03 05:46:37

Environment variables: live on the computer somewhere separate from our code, and code will read the variables to access it

Access environment variables via the `ENV` hash

if there was an environment variable on your computer called zebra that had a value of giraffe, this is how you would access it from within Ruby:

```ruby
ENV.fetch("ruby_var") # => "env_var_cont"
```

[Storing credentials securely in your ENV variable to get access in your Codespaces project](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces#adding-a-secret)

Adding a secret:
1. In the upper-right corner of any page, click your profile photo, then click Settings.

2. In the "Code, planning, and automation" section of the sidebar, click  Codespaces.

3. To the right of "Codespaces secrets", click New secret.

4. Under "Name", type a name for your secret.

4. Under "Value", type the value of your secret.

6. Select the "Repository access" drop-down menu, then click a repository you want to have access to the secret. Repeat for every repository you want to have access to the secret.

`ENV.fetch("ENV_VAR_NAME")`

Stop and Start your workspace again to pick up the new entry

Test by running irb and fetching the key you added

<u>Local setup, dotenv</u>
`dotenv-rails gem` is a slightly better way than storing your secrets in your bash profile;

In your `.gitignore` file, make sure that there’s a line somewhere with `/.env*`

Make a git commit for the above change, if necessary.

Create a file in the root folder of the app called `.env` 

Then add your secrets to it:
```
 CLOUDINARY_CLOUD_NAME="paste your cloud name here"
 CLOUDINARY_API_KEY="paste your api key here"
 CLOUDINARY_API_SECRET="paste your api secret here"
```
`/.env*` is included in the `.gitignore` file, and doesn’t exist as far as git is concerned. Safe to put sensitive information in it

Restart `bin/dev` and you should now be able to access these values from the `ENV` hash, e.g. `ENV.fetch("CLOUDINARY_CLOUD_NAME")`
[More about dotenv](https://github.com/bkeepers/dotenv)
Best Digital Marketing Course in Coimbatore | 100% Placement
Tags: placement, trainingwithplacement, digitalmarketing
Published: 2023-08-03 05:46:32

Nschool Acadamy's digital marketing course in Coimbatore covers everything from the fundamentals to more complex ideas. Both novices and professionals are meant for the training programme. Additionally, we offer live instructor-led training with our mentors, who are renowned experts with at least five years of experience. You will learn about the various uses of SEO, SEM, SMO, affiliate marketing, and more throughout the Coimbatore Digital Marketing Course. Learn first-hand how to use applications like Google Analytics and Canva with the help of our knowledgeable mentors. To ensure that students thoroughly understand all tools and procedures, our experts offer practical education.
 Click the link to know more:https://www.n-school.com/digital-marketing-training/
Difference between Logical OR (||) and Nullish coalescing operator(??)
Tags: javascript
Published: 2023-08-03 05:45:30

Have you came across like this situation ?
```javascript
obj.name ? obj.name : "I don't know"
```
If you so, better write code like that
```javascript
obj.name || "I don't know"
```

`||` is called **Locgical OR**. When left-hand is `undefined` or `null` returns right-hand

> 🤔 Is it the same as `??`

`??` is called **Nullish coalescing operator**, it's like Logical OR except falsy values like `""`, `0`

```javascript
// example
const obj = {
  zero: 0,
  one: 1,
  emptyString: '',
  null: null,
  undefined: undefined,
}

console.log(obj.zero || 'Hello')// Hello
⭐ console.log(obj.zero ?? 'Hello')// 0

console.log(obj.one || 'Hello')// 1
console.log(obj.one ?? 'Hello')// 1

console.log(obj.emptyString || 'Hello')// Hello
⭐ console.log(obj.emptyString ?? 'Hello')// ""

console.log(obj.null || 'Hello')// Hello
console.log(obj.null ?? 'Hello')// Hello

console.log(obj.undefined || 'Hello')// Hello
console.log(obj.undefined ?? 'Hello')// Hello
```

So the reason why I wrote you should use `||` is that normally you just need to recognise "undefined" or "null" in that case, not falsy value.

it's just my opinion and of course it depends on situation!