teleren/devto huggingface dataset:
Content & Tooling Team Status Update
Tags: puppet, community
Published: 2023-08-18 03:34:55

---
title: Content & Tooling Team Status Update
published: true
date: 2023-08-11 00:00:00 UTC
tags: puppet, community
canonical_url: https://puppetlabs.github.io/content-and-tooling-team/blog/updates/2023-08-11-status-update/
---

## Hello Again!!

Happy Friday everyone! Another relatively quiet week so we’ve not got a lot to say from modules team, but hope you are all enjoying the sun :).

From the tooling team in Belfast we are just continuing to get up to speed with the tools including and not limited to the pdk and the Visual Studio Code Extension. Everyone is still enjoying and making the most of Summer hours which pretty much means half day Fridays during the Summer which is pretty amazing.

### Modules

While nothing much from modules, we worked on optimizing and streamlining our regular processes. This allowed us to enhance efficiency and lay a stronger foundation for future tasks.

### Tooling

This week the team have continuing to work on tool familiarisation, when we chat about tooling it includes [everything listed here](https://puppetlabs.github.io/content-and-tooling-team/tools/). You will start to see some movement on PRs, issues and getting new epics planned out that will keep us busy for the rest of the year. Specifically a few repos that have had some focus on this week are:

- [provision module](https://github.com/puppetlabs/provision)
- [pdk-docker](https://github.com/puppetlabs/pdk-docker)
- [pdk-vanagon](https://github.com/puppetlabs/pdk-vanagon)
- [pdk-rubocop](https://github.com/puppetlabs/pdk-rubocop)
- [dependency\_checker](https://github.com/puppetlabs/dependency_checker/)

Anyway, we have big plans for the tooling in 2023-2024. Watch this space!

## Community Contributions

We’d like to thank the following people in the Puppet Community for their contributions over this past week:

- [`litmusimage#58`](https://github.com/puppetlabs/litmusimage/pull/58): “Remove duplicate oraclelinux 7 table row from README”, thanks to [jeffbyrnes](https://github.com/jeffbyrnes)
- [`litmusimage#48`](https://github.com/puppetlabs/litmusimage/pull/48): “Add newer oraclelinux images”, thanks to [jeffbyrnes](https://github.com/jeffbyrnes)
- [`puppet-strings#361`](https://github.com/puppetlabs/puppet-strings/pull/361): “Fix option tag handling with no data types”, thanks to [seanmil](https://github.com/seanmil)

## New Module / Gem Releases

- [`dependency_checker`](https://rubygems.org/gems/dependency_checker) (`1.0.1`)
From livestream to blog: How I repurposed my own content
Tags: ai, astro
Published: 2023-08-11 16:37:41

---
title: From livestream to blog: How I repurposed my own content
published: true
date: 2023-08-11 00:00:00 UTC
tags: ai, astro
canonical_url: https://blog.brainstory.ai/talk-to-blog-cw/
cover_image: https://images.unsplash.com/photo-1604187351574-c75ca79f5807?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1770&q=80
---

This week, I stumbled upon [an old talk](https://www.youtube.com/watch?v=0eka27P4Pr4) I gave about the Astro framework. I realized that I didn’t actually do much with the talk after giving it, besides a single tweet about it. It’s a long one too (over an hour), and I didn’t really feel like rewatching the whole thing just to remember the points that I hit.

I decided to add the video of that talk to my Contenda account, not having any expectations. For full context, though I work at Contenda, I hadn’t actually used the new [Contenda Studio](https://dev.to/cassidoo/contenda-studio-and-new-pricing-2a9g-temp-slug-2056091) since coming back from my parental leave!

Later on after uploading the video, I was [livestreaming on my channel](https://twitch.tv/cassidoo) and gave Contenda Studio a whirl, and within just a few minutes (almost exactly 5 minutes, if you wanna get specific), I had a pretty darn good blog that summed up my old Astro talk.

Check out how I did it:

{% youtube B-cdGt0gb8M %}

[The final blog I output is here](https://dev.to/cassidoo/why-i-like-astro-25na) if you’d like to read up on Astro, and if you’d like to try out Contenda Studio for yourself, [sign up for free at contenda.co](https://contenda.co)!
Trying out Brave
Published: 2023-08-29 09:24:42

---
title: Trying out Brave
published: true
date: 2023-07-30 09:18:59 UTC
tags: 
canonical_url: 
---

I love Firefox. But because it's not based on Chromium, it doesn't have Chrome extensions, the latest Chrome features, etc. My difficulty was mainly the lack of available extensions on their official Addons store, so I decided I needed a Chromium browser.

Chrome was not an option, so I decided to go with Brave browser.

### Using Brave browser

I went to the Brave website and installed the browser, but at first, I wasn't happy about it. All the web3 crypto nonsense, ads when it's made for privacy, the useless "Talk" feature that is basically a Jitsi Meet wrapper, and other annoying stuff.

The "import from browser" feature and the setup were quite default. Some things I didn't like were, for example, how chrome-like it was. Also, there were no options to remove the built-in VPN (as I have my own, Proton VPN - I'll maybe make an article on it later).

I immediately noticed that it had a "Private browser with Tor" feature, which I thought was a great idea, because why have a separate browser for Tor when you can have it on your normal browser? ( **edit** : after trying it, I noticed it was extremely slow and didn't load CSS for some pages)

I wish there was more personalization, and that the browser wasn't so much dedicated to Crypto - you have an icon in the toolbar about it, a button in the options menu, 3 entire huge sections about it on the settings, and some default options about it that I don't like.

### Conclusion

I have decided to stick with Firefox as my main browser, and use Brave for other stuff.

🕑

Stay tuned for more articles about interesting stuff!
Why I like Astro
Tags: astro, javascript
Published: 2023-08-11 16:28:12

---
title: Why I like Astro
published: true
date: 2023-08-11 00:00:00 UTC
tags: astro, javascript
canonical_url: https://cassidoo.co/post/i-like-astro/
cover_image: https://images.unsplash.com/photo-1614728263952-84ea256f9679?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1908&q=80
---

My blog, our website at [Contenda](https://contenda.co), and [Share Pear](https://github.com/Contenda-Team/share-pear) are all built with Astro!

It has quickly become one of my favorite frameworks. Here’s why!

1. **Comfortably Familiar:** Astro doesn’t require you to learn new lifecycle methods or other complex concepts. It brings back the simplicity of web development, reminiscent of when we all started dabbling with HTML and CSS. You can build with plain old HTML and CSS and add other stuff as needed.

2. **Flexibility:** Want to use React or Svelte for certain components on your page? You can do that with Astro. It allows you to pull in different libraries and frameworks, giving you the flexibility to use the tools you prefer.

3. **Minimalist by Design:** Astro is intentionally minimal. It only runs certain things when you tell it to, which helps to avoid unnecessary bloat on your page. This design philosophy aligns with the idea of making websites faster by not adding too much rather than trying to optimize heavy pages.

4. **File-based Routing:** Astro does file-based routing, which means you just add the page to the folder and it’s done. You can make your app as React-heavy as you want without having to set up routing.

5. **Server-side Rendering (SSR) and Static Generation:** Astro supports both SSR and static generation. Whether you prefer to upload something to a CDN or want to handle things server-side, Astro has you covered.

6. **Built-in Pagination:** Astro has a built-in function called getStaticPaths that creates static paths based on whatever function you pass into it. This means you can create and paginate through pages with ease.

Astro brings a lot of exciting features to the table, offering a blend of simplicity, flexibility, and performance. It’s a tool that certainly warrants your attention if you’re in the web development space.

As always, I’m open to discussions and answering any questions you might have about Astro. Let’s explore this new framework together!
The 55th Day of the 100 Days of Code Challenge
Published: 2023-08-10 23:14:58

Hey everyone!

Today was a pretty exciting day, worked more on the real-time transcription app that I'm officialy a contributor of and finalized some things. Opened issues to work on and it looks good! Got to do some more exploration with Vocode and set up a work plan for the personal assistant who makes restaurant reservations over the phone for you!

Honestly, it looks great. Tomorrow, I'm taking a lighter day and only working on it to have some fun. Happy coding everyone!
📯 Hi, this is Cyber postman talking 🎙️
Tags: api, ai, showdev, python
Published: 2023-08-10 22:00:43

## 🎯 About

At [`opt-nc`](https://www.opt.nc/), we have APIs to track package delivery as well as a web portal for end users called ["OPT-NC Mon espace"](https://monespace.opt.nc/):

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

The purpose of this story telling is to show how we could imagine a performance that consists in :

> **creating a customized AI-driven digital assistant thanks to public APIs, on free tiers.**

## 👨‍🍳 The recipe

Find the recipe below:

1. 📦 A **package `id`** (as input)
2. 🔑 Get `API` **credentials** (as inputs)
3. 🎙️ **Generate a whole speech** in a high quality `mp3` (and listen some bugs too 😅)
4. 🤓 Do **something fun** with `mp3`

## 🧰 `APis` as ingredients

We will rely on:

- [`📦 opt-nc/suivi-colis`](https://rapidapi.com/opt-nc-opt-nc-default/api/suivi-colis) to track package
- [`🤖 llElevenLabs`](https://elevenlabs.io/) for **Text-to-Speech**
- [`😭 SadTalker`](https://sadtalker.github.io/) to build a **movie clip**

ℹ️ Notice that **as all have free plans**, you can run (and change this code) for free at you own convenience, **as long as it's not for commercial purpose.**

## 🍿 Build the soundtrack

That said, let's take a look at demo and have some fun, first, build the soundtrack (see [🏤 Suivi colis 🤖 🎙️ Notebook for more](https://www.kaggle.com/code/adriensales/suivi-colis/notebook)):

{% youtube gCTfPxjrJ9U %}


## 🎞️ Bring "Cyber Postman to life" ⚡

To build the movie clip, we need two ingredients:

- **🎙️ A soundtrack**: the one we have just built (`mp3`)
- **🎭 An avatar**: the one I've built myself on [`bluewillow.ai`](https://www.bluewillow.ai/)

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

Next, with some parameter tweaks on `Sad Talker`, we can bring our cyber postman to life:

{% youtube nIq-Vwexk4I %}

## 🔭 The "Customer Experience" screenwriter

Beyond the fun, it makes appear the **need to work on the delivery scenario speech** which may be achieved in different ways:

- 📜 **Hard code the scenario with placeholders** (current version) : you can get help from chatBOTs, **yet the final version is static**
- 🦾 Use **variables (location, status,...) and inject into AGI** ... and get an original script with a **`PROMPT` template**, play with temperature and get original content **while keeping control**
- 🤯 **Hybrid** of previous ones : create a template, **get an output then ask to AGI to build a brand new one** on top of it and carefully design a system context

From my very own point of view, **the emergence of the _screenwriter_ role is the most exciting one.**

## 🔖 Resources

Take a look at [🏤 Suivi colis 🤖 🎙️ Notebook for more](https://www.kaggle.com/code/adriensales/suivi-colis/notebook) and discover more hacks around this API below (ask to add yours):

[![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jmdee6o2r96rajsn6txo.png)](https://rapidapi.com/opt-nc-opt-nc-default/api/suivi-colis/details)
Day 802 : Past
Tags: hiphop, code, coding, lifelongdev
Published: 2023-08-10 21:32:32

_liner notes_:
- Professional : Didn't get as much as I wanted. Had a couple of meetings. Had quite a bit of discussion about some upcoming features. Had to handle some things that popped up with the travel I booked. Started working on refactoring an old demo up to use some new stuff coming in the future so I can test things out.

- Personal : I want to shout out my past self. haha I went to work on the authorization part on my side project for the session hosts and guests. Open up the host page to start working on the login and guess what? Looks like I already did it. haha Got the login with GitHub working. Don't even remember working on it. haha I remember doing some research and playing around with it. Guess I did more than I thought. I probably did it during the Sunday study sessions. Well either way, I was super happy. I just added a way to check to see if the person that logged in is in a list for the hosts of the session and return if they are or not. I just thought that I may need to send some more info if the person is authorized. We'll see.

![A small stone path through the hills of Piopio, New Zealand that is almost overtaken by the vegetation and shrubs on the sides under a sky full or feathery white clouds](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s3avw5qugkk7zcah9ptb.jpg)

So it's HIPHOP's 50th birthday tomorrow. Going to splice together a video and go through Bandcamp and pick up some projects to list tomorrow. If I have time, I want to continue working on my side project. Maybe get a video showing on the host page.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube _AvsdXjZubU %}
How to check all ports in use in linux/Mac
Tags: linux, macos, node
Published: 2023-08-10 21:10:36

When you work with NodeJS and micro-service architecture by the end of the day there are a number of ports which you start using.

To check which port is already in use, use the following command.

## For Linux
```
netstat -lnp | grep node
```

- -l: Show only listening ports.
- -n: Show numerical addresses instead of resolving hostnames.
- -p: show type of port (grep works on this)

```
ss -tuln
```

- -t: Show TCP ports.
- -u: Show UDP ports.
- -l: Show only listening ports.
- -n: Show numerical addresses instead of resolving hostnames.

```
lsof -i -n -P | grep node
```

- i: Specifies that you're interested in network-related information, specifically open network connections and listening sockets.
- -n: Prevents lsof from attempting to resolve IP addresses to hostnames. Shows numerical IP addresses instead.
- -P: Prevents lsof from resolving port numbers to service names. Shows numerical port numbers instead.

## For Mac

```
lsof -i -n -P | grep node
```

- i: Specifies that you're interested in network-related information, specifically open network connections and listening sockets.
- -n: Prevents lsof from attempting to resolve IP addresses to hostnames. Shows numerical IP addresses instead.
- -P: Prevents lsof from resolving port numbers to service names. Shows numerical port numbers instead.

Additionally, you can use graphical tools like lsof and network monitoring tools like nmap for more advanced analysis of open ports and network connections.
Using a Proxy for smart destructuring
Tags: javascript, programming
Published: 2023-08-10 20:56:47

 

> **_The Proxy object enables you to create a proxy for another object... [(MDN)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy)_**

Ok, we understand: Proxies are one of the more exotic language features of Javascript, that are seemingly not so easy to explain. **_But they enable a clever and sometimes handy design pattern I want to introduce here._**

### Using smart destructuring

Simply spoken, a proxy can change the behavoir of an object: proxy functions can be invoked if properties are set or read, which is often used to change or limit values. But we can also introduce a completely new behavoir. This is used in the following code:

```JS
const extract = (arg) => new Proxy({}, {
    get: (obj, prop) => {
         let ret = arg[prop]
         delete ar[prop]
         return ret
    }
})
let ar = { a: 1, b: 2, c: 3, d: 4 }

let { a, b } = extract(ar) // extract a and b

console.log(a) // => 1
console.log(b) // => 2
console.log(ar) // => {c: 3, d: 4}
```

The example above gets a and b from the array `ar` using destructuring, but it not only reads a and b, but removes them from the object. How can we use this? Here is an example that packs all parameters into an array and unpacks them inside the function again:

```JS


let a = 1,
    b = 2,
    c = 3,
    d = 4

let myarr = {
    a,
    b,
    c,
    d
}

function test(ar) {
    var {
        a,
        b
    } = split(ar)

    console.log(a) // => 1
    console.log(b) // => 2
    console.log(ar) // => {c: 3, d: 4}
}

test(myarr)
```

Using a proxy for destructuring is a clever code pattern that can be used for different purposes. As you get the property names of the left side, you can do a lot of crazy stuff like auto-generating functions names from the object keys.
Graph Database: Apache AGE.
Tags: database, postgres, apache
Published: 2023-08-10 19:54:22

Hi, In this blog we will be looking and exploring what is a graph database. Its applications, advantages and how Apache AGE can help us in this regards.


## Graph Database

A graph database is a special type of database which is used to manage our data. From the very begining data has been an important part of the computer. And we have different ways to store, process and show that data. Traditional ways are relational databases. In relational databases we store data in tables with some predefined schemas for that table. 

![Schema](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gmczdd2gcfhcx8ag4m0n.png)

And we store data in the table based on that specific schema. Infact we can't store anything that does not match with that schema. 

On the other hand, Graph databases organize data in the form of nodes and edges instead of table and documents. Infact, it shows the data as node and relationalship between the data as an edge between the data. 
A graph database is more easy to understand relations between the data as compared to traditional database. 

![Graph database image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xo7a3nzaar9azylvr25.png)

Understanding relation between data is much easier through the image above as compared with the simple tables of these data.

## Key Features

**1**. It uses graph structure to explain relation between data and connect them using edges between data. In this way we can easily visualize complex relations.
**2**. As it stores data on nodes. So, nodes can also store some metadata which can provide us some additional information.
**3**. It's easy to traverse a graphed structure database to navigate from one node to the other one through the defined relation. This traversing capability enables very fast and efficient querying of difficult to understand relationships.
**4**. As tables database required predefined schema. Graph database are flexible towards these predefined schema. They allow nodes and relationship to have different properties and structures.
**5**. These graph databases are so designed to manage the relationship between nodes elegantly. As compared to complex joins in traditional database, graph database can get the data from databse more quickly.


## Apache AGE:

Apache AGE is a PostgreSQL extension that provides the graph databse functionality over the top of PostgreSQL. AGE stands for A Graph Extension. You can learn more about [Apache AGE](https://age.apache.org/age-manual/master/intro/overview.html).

It provides many functionalities like hybrid queries, fast graph query processing graph visualization and analytics and much more. 


## References

[https://age.apache.org/download](https://age.apache.org/download)
[https://neo4j.com/developer/graph-database/](https://neo4j.com/developer/graph-database/)
This Week's Undiscovered (8/10/23)
Tags: spotlight
Published: 2023-08-10 19:52:36

---
title: This Week's Undiscovered (8/10/23)
published: true
description: A curated selection of posts published within the last week that are just waiting to be discovered.
tags: spotlight
series: This Week Undiscovered
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/toiq286x75hefzypiiiy.jpg
---

Introducing **This Week's Undiscovered**, a curated selection of amazing posts published within the last week that are just waiting to be discovered.

The goal is to shed light on hidden gems within DEV's community that haven't yet received the attention they may deserve 🌱

Hope you enjoy it!



{% embed https://dev.to/spences10/should-i-create-my-own-blog-2mi6 %}The title says it all! And @spences10 is here to say that making your own blog is absolutely worth doing. 

{% embed https://dev.to/stealthmusic/delete-all-the-codes-1gg %}This article from @stealthmusic is not about not writing code, it's about deleting code… OK, maybe not all of it. 

{% embed https://dev.to/grim/trials-and-tribulations-34od %}There's a lot that happens behind the scenes when managing an Open Source project that many people don't ever see. Here are two of @grim’s experiences that really showcases how stressful the life of a maintainer can be. 

{% embed https://dev.to/adam_cyclones/choose-a-startup-vs-established-company-4c10 %}@adam_cyclones poses a really important question! Start-ups or established companies: which is best for someone new to the role but ready to hit the ground running to get started in?

{% embed https://dev.to/edgedb/make-your-users-happy-by-keeping-it-ryl-in-documentation-1l32 %}DRY can be useful in software development, but keep using a hammer and everything will start to look like a nail. Try to keep it RYL with these tips from @raddevon.

{% embed https://dev.to/balastrong/create-a-custom-github-action-in-typescript-21ad %}If you can't find the action you need, @balastrong will show you how to create your own and publish it to the GitHub Actions Marketplace!

<br>
Let us know if we missed anything; share your predictions for the next top talent in the comments! 

<a href="https://www.freepik.com/free-photo/golden-number-one-with-gold-crown-top-floor-champion-winner-yellow-background-by-3d-render_25829004.htm#query=spotlight%20on%20a%201&position=38&from_view=search&track=ais">Image by DilokaStudio</a> on Freepik
TIL #3
Published: 2023-08-10 19:42:41

Today I learned that I need to work on my skills in front of a camera. No wonder my TikTok career has not taken off. 

When I was recording my elevator speech. I noticed how difficult it was for me to record a 30-60 second video. I had about 30 tries, and every time, I got stuck in a sentence or could not pronounce my last job title (Marketing Technology Jr Consultant). I mumbled a lot and I sounded nervous. 

I don't know why I struggled with this assignment, since I am able to do the same in an interview face to face with a human no problem. I'm even able to answer even harder questions. 

My goal in the next couple of days is to see how I can improve this skill.

I am also looking for suggestions or any help I can get.