teleren/devto huggingface dataset:
DevX Status Update
Tags: puppet, community
Published: 2024-03-29 16:42:55

---
title: DevX Status Update
published: true
date: 2024-03-29 00:00:00 UTC
tags: puppet, community
canonical_url: https://puppetlabs.github.io/content-and-tooling-team/blog/updates/2024-03-29-devx-status-update/
---

## Office Hours is Cancelled Next Week

This week we have been quiet due to some team holidays including St Patricks Day and Easter Holidays. With next week being the Easter week a lot of the team are off therefore we have agreed to cancel Office Hours with the DevX team and our next session in April will run as planned. If there is something urgent please feel free to reach out to one of us on the Puppet Community Slack and we will do our best to get back to you.

## PDK 3.0.1.3

We know it has been delayed as we were having some technical issues but we are also delighted to announce that PDK 3.0.1.3 is now available on chocolatey thanks to [Gavin](https://github.com/gavindidrichsen).

## Belfast Weather

There is a lot of rain in Belfast at the moment, therefore I think it is only right to drop a picture of a Harbour I took last week in Gran Canaria to brighten things up.

 ![](https://puppetlabs.github.io/content-and-tooling-team/images/grancanaria.jpg)

## Community Contributions

Although we don’t have any specific community PR contributions this week, we’d like to thank you all anyways for your ongoing support!
Modules Status Update
Tags: puppet, community
Published: 2024-03-29 16:41:26

---
title: Modules Status Update
published: true
date: 2024-03-29 00:00:00 UTC
tags: puppet, community
canonical_url: https://puppetlabs.github.io/content-and-tooling-team/blog/updates/2024-03-29-modules-status-update/
---

## Happy Friday!

As the week draws to a close, We trust this correspondence finds you well and in good spirits. Reflecting on the past week, it has been characterized by a sense of stability and continuity, devoid of any significant developments or notable occurrences within our operational modules. Throughout this period, our collective focus remained steadfast on the tasks at hand, and we are pleased to report that progress has been consistent across various initiatives. Looking ahead, We extend our sincerest hopes that the forthcoming days are greeted with an abundance of positivity and joy, akin to the warm embrace of the sun’s rays.

## Community Contributions

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

- [`puppetlabs-accounts#481`](https://github.com/puppetlabs/puppetlabs-accounts/pull/481): “Add bastelfreak to CODEOWNERS”, thanks to [bastelfreak](https://github.com/bastelfreak)
- [`puppetlabs-apache#2536`](https://github.com/puppetlabs/puppetlabs-apache/pull/2536): “vhost: Allow customizing show\_diff”, thanks to [kajinamit](https://github.com/kajinamit)
- [`puppetlabs-java#589`](https://github.com/puppetlabs/puppetlabs-java/pull/589): “Add bastelfreak to CODEOWNERS”, thanks to [bastelfreak](https://github.com/bastelfreak)
- [`puppetlabs-postgresql#1584`](https://github.com/puppetlabs/puppetlabs-postgresql/pull/1584): “Add a global password\_encryption parameter”, thanks to [ekohl](https://github.com/ekohl)
- [`puppetlabs-postgresql#1582`](https://github.com/puppetlabs/puppetlabs-postgresql/pull/1582): “Use RequiresMountsFor on datadir”, thanks to [ekohl](https://github.com/ekohl)
- [`puppetlabs-postgresql#1581`](https://github.com/puppetlabs/puppetlabs-postgresql/pull/1581): “Support Ubuntu 24.04 and postgis for postgresql 16”, thanks to [bmiklautz](https://github.com/bmiklautz)
- [`puppetlabs-postgresql#1580`](https://github.com/puppetlabs/puppetlabs-postgresql/pull/1580): “Add Fedora 39 support”, thanks to [lweller](https://github.com/lweller) and the following people who helped get it over the line ([ekohl](https://github.com/ekohl))

## New Module Releases

- [`puppetlabs-postgresql`](https://github.com/puppetlabs/puppetlabs-postgresql) (`10.1.0`)

- [`puppetlabs-accounts`](https://github.com/puppetlabs/puppetlabs-accounts) (`8.1.1`)
FRAUD CRYPTO ASSET RECOVERY EXPERTS (WIZARD WEB RECOVERY)
Published: 2024-03-28 23:41:37

This is a warning to all bitcoin investors. Don’t be a victim. Most investments and most of the companies out there are fraudulent. They are all scams. I have been a victim of their activities. I invested about £150,000 and when I wanted to withdraw after some weeks, I could not withdraw my money. I assumed they were having some maintenance routine checks, since that had happened in the past. I was contacted again and was asked to invest more which I refused and told them I wanted to withdraw my money. After this, I didn’t hear from them again. At this point, I started to feel like I had been duped. I was shattered as I had lost all my savings. I was depressed and frustrated. I was too ashamed to tell anyone about it, not even my children. I finally summoned some courage to tell my friend who came to visit me. He introduced me to Wizard Web Recovery, a firm that specializes in helping people get their money back. I contacted Wizard Web Recovery and I was guided on the way to recover most of my money. Getting £100,000 of my money back was a great feeling, as I had given up all hope. Thanks to wizardwebrecovery(@)programmer(.)net. You can contact Wizard Web Recovery if you fall into a similar situation.
How to debug AI image models to identify societal risks and harms
Tags: responsibleai, beginners, developer, azure
Published: 2024-03-28 23:22:41

Did you know AI generated images can have unintended biases, stereotypes, and harms? If you prompt an AI image generator for images of tech developers, you are likely going to get male dominated images. You're not going to see images of females or diverse ethnicities. Scenarios like this reveal challenges where image models do not always reflect every aspect of reality. The problem is multimodal AI systems such as DALL-E that can generate text-to-image, and other data types are paving the way for exciting applications in areas such as productivity, health care, creativity, and automation. That's why identifying and mitigating responsible AI risks are essential.

✨ Join the #MarchResponsibly challenge by learning responsible AI tools and services available to you.

In this article, Besmira Nushi, an AI researcher at Microsoft, explores several techniques and challenges on how to ensure multimodal models are responsibly developed, evaluated and deployed. She discusses how to unmask hidden societal biases across modalities. She shares strategies of evaluating, mitigating and improving AI image model for issues such as spurious correlation where an AI model incorrectly predicts an object based on other objects associated with it; or how text-to-image models often misinterpret surrounding cues in an image.


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

👉🏽 Checkout Besmira Nushi's article: https://aka.ms/march-rai/evaluate-multimodal-models

🎉Happy Learning :)
Day 937 : The Carpenter
Tags: hiphop, code, coding, lifelongdev
Published: 2024-03-28 23:21:27

_liner notes_:
- Professional : This day flew by! Had a couple of meetings in the morning. Responded to some community questions. For one, I did a proof of concept to see if I could get it working. I found the issue and let the team know about it to see if there is a work around.

- Personal : So after work, I made the trek to where a Orlando Developers group event. I got there maybe an hour before it started and did some work on my side project. I created a graphic and placed it in the layout. The longest part was creating the SVG. Went to the event. They didn't plan on streaming the event, so I just set up my laptop and webcam and did an impromptu stream with the application I made. Worked out pretty well. https://www.youtube.com/watch?v=tSRuROEgRso Next time, I'd like to get the link to the speakers ahead of time so they can share their slides so it's clearer on stream. This was a last minute thing. After that, I went to a HIPHOP show and caught up with a bunch of folks I haven't seen in a while. Sidenote: I still get hyped when I hear "The Carpenter". Can't believe the song is like 13 years old!

![A photo of a waterfall in Sekumpul Waterfalls, Indonesia. The waterfall is cascading over a cliff into a pool of water, with bright green moss-covered rocks and lush green vegetation surrounding it.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/38mb3y4ch7clc2pcvbzu.jpg)

Going to start adding the animation stuff I've been working on to the deployed version of the site. I'll also work on the styling. After that, I think I'm going to work on the content collection stuff and after that, work on the authentication and database stuff. It's Thursday so I'll pick up some projects on Bandcamp and put together my social media posts for tomorrow since I didn't get a chance to do it last night.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube pP7VeA_r2Jg %}
Limite os arquivos fonte
Tags: java, javadevelopment, javaefetivo, programming
Published: 2024-03-28 22:51:41

Esta é uma série baseada no entendimento de tópicos relacionados ao livro Java Efetivo Capitulo 4 Item 25: Limite os arquivos fonte a uma única classe de nível superior

Embora o compilador Java permita várias classes de nível superior em um único arquivo fonte, isso traz riscos significativos e nenhuma vantagem associada.

A definição de múltiplas classes de nível superior em um arquivo fonte pode resultar em várias definições para uma classe, dependendo da ordem em que os arquivos são passados para o compilador.

**Riscos Associados:**

Se ocorrerem múltiplas definições para uma classe, o comportamento do programa pode ser afetado pela ordem dos arquivos fonte passados para o compilador.
Exemplo de Risco:

Um exemplo é apresentado onde um programa tem uma classe Main referenciando membros de duas outras classes, Utensil e Dessert.
Se essas duas classes forem definidas em um único arquivo fonte e acidentalmente em outro arquivo fonte separado, isso pode levar a problemas de compilação e comportamento inconsistente do programa.


**Solução:**

A solução para esse problema é simples: dividir as classes de nível superior em arquivos fonte separados.

Se houver tentação de inserir várias classes de nível superior em um único arquivo fonte, considerar o uso de classes membro estáticas como uma alternativa para manter a legibilidade e reduzir a acessibilidade das classes.

**Importância da Boa Prática:**

Seguir a prática de limitar os arquivos fonte a uma única classe de nível superior garante que não haverá múltiplas definições para uma única classe durante a compilação.
Isso garante que os arquivos de classe gerados e o comportamento do programa resultante sejam independentes da ordem dos arquivos fonte passados para o compilador.
Default and named exports in node.js
Published: 2024-03-28 22:39:14

As an "old fart" programmer I tend to write a lot of reusable code and improve it with each usage. Eventually, now and then, I encounter compatibility issues, and although it is on a small scale (usually, the code is used only by my team and me) it still gets to be a PitA. One of those was expanding a commonly used node module that exports a single function as default:

```
module.exports=function(){
console.log("hello");
}
```
to multi-function module with named exports like this:

```
const fn1=function(){
console.log("hello");
}
const fn2=function(){
console.log("hi");
}
const fn3=function(){
console.log("howdy");
}
module.exports={fn1,fn2,fn3}
```

Simple and clean expansion, but one that would break compatibility with every other module that used this expecting a default export:

```
const greeting=require('./hello');
```

I solved it using a rather unorthodox approach and it seems to be working (tested down to version 16.20.2 and up to 21.5.0)

Here's the module code:

```
const fn1 = function () {
    console.log("hello");
}
const fn2 = function () {
    console.log("hi");
}
const fn3 = function () {
    console.log("howdy");
}
fn1.fn1 = fn1;
fn1.fn2 = fn2;
fn1.fn3 = fn3;
module.exports = fn1;
```

and here's the implementation:

```
const greeting = require('./hello');
const { fn1, fn2, fn3 } = require('./hello');
greeting();
fn3();
fn1();
fn2();
```

It works perfectly and I'm not aware of any downsides. I would appreciate any suggestion on how this could be wrong or potentially dangerous before I implement it in production.

On the other hand, if it is safe to use, it might be a useful approach in similar situations
Dockerize a Nodejs Express Api with VS Code
Published: 2024-03-28 22:15:10

With VS Code (and [Docker extension](https://code.visualstudio.com/docs/containers/overview)) it is much easier to dockerize a nodejs express app and monitor containers if you dont like to do it all via terminal like myself. 

## Create a simple nodejs express api

create a new folder then open it on VS Code.
```
mkdir node-docker
cd nodeapp
code .
```

Initialize a node project, and set the defaults.

```
npm init
```

then install express

```
npm i express
```

in project root, create app.js file.

```
const express = require('express');
const app = express();

const PORT = 3000;

app.get('/', (req, res) => {
  res.send('Hello World');
});

app.listen(PORT,() => {
  console.log(`Server listening on Port ${PORT}`);
});
```

Add a new script on package .json  to start api.
For simplicity copy this package.json

```
{
  "name": "nodedocker",
  "version": "1.0.0",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "4.19.2"
  }
}
```

Running **npm run start** will run api on port 3000.

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

Once confirmed terminate running app to free port 3000 on local machine as leaving it running prevents you from running your docker instance (this happens to me a lot).

## Dockerize express api

Install [docker vscode extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)

Using Ctrl + shift + p , to open command pallete. then run
`> Docker: Add Docker Files to Workspace...`

You can leave options to default as it will automatically detects your platform (Nodejs) and creates vs code launch configuration for debugging.

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

By default It will create a Docker file, 2 docker compose (another one for debug) ,handy docker ignore and vs code launch settings.

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


For simplicity, you can ryun docker compose via file system pane menu. Select docker compose file and right click to open context menu. Then click compose up to spawn a container instance.

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

You can then check on docker panel that container is running.

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

---------------------
I might write next
- mount virtual path
- add db to compose
- [Vscode dev container](https://code.visualstudio.com/docs/devcontainers/containers)
Dropout
Published: 2024-03-28 22:05:05

Daha düşük bir dropout oranı, daha fazla bilginin korunmasını sağlar ve modelin daha genelleştirilmiş olmasını sağlar, ancak daha yüksek bir oran, overfitting'i daha etkili bir şekilde azaltabilir, ancak daha fazla bilgi kaybına yol açabilir.
Making a program with Blipsy
Tags: javascript, gamedev, retro, fantasyconsole
Published: 2024-03-28 21:48:00

## What is Blipsy?
[Blipsy](https://gamemake-eng.github.io/Blipsy/) is a program for making simple retro games, demos, and other fun programs. It has a 64x64 pixel canvas to draw on and 14 sprite slots. It has a simple UI and API that can help you create amazing things!

## The Interface
![The blipsy interface](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uf1rnrh3shgervxn0dvg.png)

Blipsy has a simple, unstyled, (mostly) straightforward UI. 

### Preview
The first column is your preview (we will talk about the buttons later), this is where you can preview the current running blipsy program. 

### Sprite editor
The second column is the sprite editor where you can draw the sprites for your game. You press the buttons numbered 0-13 to switch the sprite slot you are currently editing and the Brush button to change between your eraser and brush.

### Code editor
This is the last column. Nothing too fancy, just a single window with your whole script. This is where you can edit the logic of your program with a simple api which we will touch on later. Also, make sure to reset the preview after any changes to see your result!

## What's next?
In the next part (which should be coming soon) we will begin making our game, starting with creating sprites. Can't wait to see you then! While you are waiting, you can experiment with Blipsy yourself by going to [https://gamemake-eng.github.io/Blipsy/](https://gamemake-eng.github.io/Blipsy/) (Ask your parent's permission before going online ;-D)
Final project part 2
Tags: dataengineering, github, cloudstorage
Published: 2024-03-28 21:43:19

In my last post, I uploaded the voter database to Google cloud storage. Then, using a jupyter notebook, I copied the file to my Google cloud vm instance and unzipped it. Now I have 351 text files that I will convert into parquet files and put on Google BigQuery.

I needed to figure out how to define the schema of the file before I read it in, because pandas is confused about some of the columns.

I started by going to https://console.cloud.google.com and clicking VM instances. Then I started my VM instance. I copied the new external IP address. I opened terminal and cd'd to .ssh. I edited config and pasted in the new IP address. Then I typed `ssh de-zoomcamp` and cd'd to notebooks, where I have my jupyter notebooks. In VSCode, I opened a directory on my virtual machine by invoking the command palette (command-shift-p) and selecting de-zoomcamp. I opened the terminal window in VSCode, and in the ports tab, I assigned the port 8888 to localhost:8888. Then I typed `jupyter notebook` in the terminal shell. In my browser, I opened localhost:8888. I had to cut and paste the token from the terminal window. Then I opened the notebook. This is a pretty simple blow-by-blow of how I start, but I need to have it written out somewhere so I don't forget it.

After messing around with the columns and the schema, I decided it was time to set up a repository for the project. I created a repository on GitHub called "voter-data". Then I set up a directory and put all my files in it on the virtual machine, and tried to connect it to my new repo. Well that was a chore, because I needed to set up an ssh key for my virtual machine to connect to GitHub, and I forgot how to do that. Basically, I had to ask ChatGPT how to do it. Here's what I did:

```
% ssh-keygen -t rsa -b 4096 -C 'crawford.cris@gmail.com'
% eval '$(ssh-agent -s)'
% ssh-add ~/.ssh/id_rsa
% cat ~/.ssh/id_rsa.pub
```

Then I copied the public key to my clipboard. I'm not sure what all the arguments were for or what the eval command did, but nothing broke, and it worked.

On GitHub, I clicked on my profile icon in the top-right corner of GitHub and selected "Settings". In the left sidebar, I clicked on "SSH and GPG keys". Then I clicked on the "New SSH key" button. I pasted my SSH public key into the "Key" field. Then I clicked "Add SSH key" to save the key to my GitHub account.

Then I was able to push my changes to the voter-data repository on GitHub. I'll write about putting my files back in Google cloud storage as parquet files in the next post.
Unveiling the Power of SEO: Why Your Business Can't Afford to Ignore It
Published: 2024-03-28 21:36:35

In today's digital age, having a strong online presence is crucial for businesses of all sizes. Search Engine Optimization (SEO) plays a pivotal role in ensuring your website ranks high on search engine results pages (SERPs), making it easier for potential customers to find you. But what exactly are the benefits of SEO, and why should you invest in it?

1. Increased Visibility:
   SEO helps improve your website's visibility on search engines like Google, Bing, and Yahoo. By optimizing your website with relevant keywords, meta tags, and quality content, you can appear higher in search results, leading to increased visibility and exposure to potential customers.

2. Enhanced User Experience:
   SEO isn't just about keywords and rankings; it's also about providing a seamless user experience. Websites that are optimized for SEO tend to load faster, have easy navigation, and are mobile-friendly, which ultimately improves user experience and encourages visitors to stay longer on your site.

3. Targeted Traffic:
   One of the significant advantages of [SEO is its ability to attract highly targeted traffic](https://www.fiverr.com/murtazabutt856). Unlike traditional advertising methods that cast a wide net, SEO allows you to target users who are actively searching for products or services related to your business. This means higher conversion rates and a better return on investment (ROI).

4. Cost-Effectiveness:
   Compared to other marketing strategies like paid advertising, SEO offers a higher ROI over the long term. While it may require upfront investment and ongoing maintenance, the traffic generated through organic search is essentially free, making it a cost-effective solution for businesses looking to grow their online presence.

5. Builds Credibility and Trust:
   Appearing at the top of search results signals to users that your website is credible and trustworthy. People tend to trust websites that rank higher on SERPs, which can positively impact their perception of your brand. By consistently appearing in search results, you can build credibility and trust with your audience over time.

6. Stay Ahead of Competitors:
   In today's competitive landscape, staying ahead of your competitors is essential for business success. By investing in SEO, you can outrank competitors in search results, attract more customers, and establish your brand as a leader in your industry.

In conclusion, SEO is a powerful tool that can significantly impact your business's online visibility, credibility, and ultimately, its success. By optimizing your website for search engines, you can attract targeted traffic, enhance user experience, and stay ahead of the competition. In today's digital world, ignoring SEO is not an option if you want your business to thrive. So why wait? Start optimizing your website today and reap the benefits of SEO!
app.cacher.io
Published: 2024-03-28 21:35:29

I'm a big fan of this app.

Whilst Copilot (another great app) is there to help predict what you might want to write, app.cacher.io is there to help you remember the things you've done before.

It's got a great VSCode extension that let's you search for existing snippets at the drop of a hat and also allows you to save new snippets directly from VSCode.

Well worth the $6 per month.