teleren/devto huggingface dataset:
interactive musical
Tags: gamedev, writing
Published: 2024-02-25 21:28:29

---
title: interactive musical
published: true
date: 2024-01-26 00:00:00 UTC
tags: [ 'gamedev', 'writing' ]
canonical_url: https://onwriting.games/daily/20240126-2050-interactive-musical/
---

Those of you who know me know I'm a **sucker for musicals**.

It's not rare to find me cooking while singing my heart out to [The Next Right Thing](https://www.youtube.com/watch?v=kFkClV2gM-s), [Burn](https://www.youtube.com/watch?v=sShAKG6VzrM) or [Breathe](https://www.youtube.com/watch?v=1ZVoulUQSKk).

Yes, **falsetto and all**.

So it shouldn't be a surprise that I've always been waiting for a Broadway-style musical game.

This morning I was finally able to find some time to play [Stray Gods](https://store.steampowered.com/app/1920780/Stray_Gods_The_Roleplaying_Musical/).

I still don't know much about the game itself, but at least I was happy to see that they implemented the basic mechanic that I had been wanting:

That there are timed options to choose what to sing during the song ❤️

This was going to make or break the game for me. So I'm happy they did this.

I could have not imagined an interactive musical without this mechanic.

Now I'm excited to keep playing it, so far I'm really enjoying it, despite it being a murder mystery (I'm getting a bit tired of the genre).

But I'm also enjoying the adaptation of Greek mythology to the new world.

For now, I recommend it, if only to play that mechanic.

We'll see if it holds up or not.

PS: Any of you know Lin-Manuel Miranda? If so, I'd love an intro 🤭
Modules Status Update
Tags: puppet, community
Published: 2024-01-30 18:00:41

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

## Happy Friday

As we bid farewell to yet another Friday, I hope this message reaches you in good health. Reflecting on the week that passed, it was a rather calm period without any major updates or noteworthy events in our modules. Our efforts stayed committed to ongoing tasks, and we made steady progress on various fronts. May the warm rays of the sun bring positivity and joy to your days, and I send my heartfelt wishes for a delightful and fulfilling time in the days ahead.

## Community Contributions

We want to express our gratitude to the community contributors for their valuable contributions, even though last week saw a relatively quiet period in terms of new contributions.
Solutions for Current Software Challenges?
Tags: discuss
Published: 2024-01-26 00:00:00

---
published_at : 2024-01-26 00:00 +0000
---
Discuss the solutions your company offers to address the current challenges faced by your customers in the software industry. How does your organization approach problem-solving and tailor solutions to meet customer needs effectively?
Follow the DEVteam for more discussions and online camaraderie!
{% embed https://dev.to/devteam %}
DevX Status Update
Tags: puppet, community
Published: 2024-01-30 18:01:48

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

## UpFridayte

Here we are, once again, with a Friday update on our latest DevX projects. This week we have been focusing on finishing some projects we started around mid January and troubleshooting some issues we have been encountering with internal tools.

### Rubocop ~> 1.50.0

Just as announced last week, we have been working on updating our toolbox to ensure all of our tools use the latest version of Rubocop we can support, ~> 1.50.0. We took the opportunity and established some minor cop rules as well in some repositories to ensure that Rubocop is a bit more laxed around some of its Lint rules.

### Code coverage reports

Another project making a comeback is the codecov coverage reports. We finally implemented this new feature in most of our tool repositories and have been troubleshooting a few problems that lingered around. From now on, this tool should provide us with useful information about the state of our code testing. This tool is a still a bit fresh in our hands so we expect to be able to make good use of it.

## Community Contributions

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

- [`litmusimage#68`](https://github.com/puppetlabs/litmusimage/pull/68): “add alma and rocky 9”, thanks to [h0tw1r3](https://github.com/h0tw1r3)
- [`litmusimage#67`](https://github.com/puppetlabs/litmusimage/pull/67): “add amazonlinux 2023”, thanks to [h0tw1r3](https://github.com/h0tw1r3)
- [`provision#247`](https://github.com/puppetlabs/provision/pull/247): “Fix docker remote host support”, thanks to [seanmil](https://github.com/seanmil)
- [`puppet-strings#382`](https://github.com/puppetlabs/puppet-strings/pull/382): “Allow numerics for templates using code\_maybe\_block”, thanks to [seanmil](https://github.com/seanmil)
- [`puppet-strings#378`](https://github.com/puppetlabs/puppet-strings/pull/378): “Drop outdate Ruby version checks”, thanks to [ekohl](https://github.com/ekohl)

## New Gem Releases

- [`puppetlabs_spec_helper`](https://rubygems.org/gems/puppetlabs_spec_helper) (`7.0.3`)
A short story about events in Javascript
Tags: javascript
Published: 2018-09-29 12:22:32

---
title: A short story about events in Javascript
published: true
description: Differences between Event Bubbling, Target and Capturing
tags: javascript
---
In the JavaScript, Event Flow process is completed by three concepts :

* Event Capturing
* Event Target
* Event Bubbling

> Events are actions or occurrences that happen in the system you are programming, which the system tells you about so you can respond to them in some way if desired.  

## Event Bubbling

Event Bubbling is the event starts from the deepest element or target element to its parents, then all its ancestors which are on the way to bottom to top. At present, all the modern browsers have event bubbling as the default way of event flow.

### Example
```html
<div id="parent">
 <button id="child">Child</button>
</div>
```

```javascript
var parent = document.querySelector('#parent');
    parent.addEventListener('click', function(){
    console.log("Parent clicked");
});

var child = document.querySelector('#child');
    child.addEventListener('click', function(){
    console.log("Child clicked");
});
```

Execution will end as:
```Child clicked
Parent clicked```

When you click on the button, the event passes from inner event target (Button whose id is the child) to Document. Click event pass in the following order:

![bubbling]
(https://thepracticaldev.s3.amazonaws.com/i/x0i1b7ra0xw3bjltzkyc.png)

If you want to stop the event bubbling, you can use event.stopPropagation() method.


## Event Capturing
Event Capturing is the event starts from top element to target element. Modern browser doesn’t support event capturing by default but we can achieve that by code in JavaScript.

```html
<div id="parent">
 <button id="child">Child</button>
</div>
```

```javascript
var parent = document.querySelector('#parent');
var child = document.querySelector('#child');
parent.addEventListener('click', function(){
    console.log("Parent clicked");
},true);
child.addEventListener('click', function(){
    console.log("Child clicked");
});
```
Execution will end as:
```Parent clicked
Child clicked```

![capturing]
(https://thepracticaldev.s3.amazonaws.com/i/crhfkfu5168ah5g1y67m.png)


## Conclusion
In the event flow, Event target has two phases one is at the end of event capturing and starting of event bubbling.

![all]
(https://thepracticaldev.s3.amazonaws.com/i/mz1kgfil7cyog5esxbxi.png)
Write once, manage forever
Published: 2024-02-03 08:04:26

---
title: Write once, manage forever
published: true
date: 2024-01-26 00:00:00 UTC
tags: 
canonical_url: https://www.oliverdavies.uk/archive/2024/01/26/write-once-manage-forever
---

I built my [Build Configs](https://www.oliverdavies.uk/build-config) tool because I only wanted to write a file once and re-use it instead of writing it over again or copying and pasting between projects.

Having standardised templates for different languages and project types, I can easily set up new projects and get them running in a few minutes.

If I need to add a feature or fix a bug, I can do it once in the Build Configs tool and easily regenerate the configuration files for all projects, and they'll all get the updated files.

There's no "I need to copy this feature from project A or this bug fix from project B." when starting on project C.

As I only work on fixed-price engagements, it's in my interest to be able to create and maintain projects in a fast and efficient manner.

The Build Configs tool enables me to do that.

 P.S. Are you still using Drupal 7 and don’t know what’s involved to upgrade to Drupal 10? [Book a Drupal 7 upgrade consultation call](https://www.oliverdavies.uk/call) or [an upgrade roadmap](https://www.oliverdavies.uk/drupal-upgrade).
Add Portainer Stack
Tags: webdev, javascript, aws, devops
Published: 2024-01-26 00:00:00

In this section, we will migrate our current deployment to Portainer so that we can fully manage it inside Portainer later on. You can view the full code for the configuration [here](https://github.com/akbarnafisa/aws-devops-fullstack/tree/10-init-portainer). To migrate our app, let’s follow these steps:

# Update Docker Compose

In Portainer, we can set up the environment in their dashboard. However, we need to make some adjustments, such as changing the file name of **`.env.prod`** to **`stack.env`**.


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



Next, we need to change how we mount the **`create_tables.sql`**. In our current implementation, we cannot directly mount the file; Docker will treat the **`create_tables.sql`** as a folder instead of a file. Therefore, we need to use a new Docker volume to mount the file.


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



# Delete Existing Container

Moving on to the next part, we will delete our existing Docker container and Docker volumes.


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




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




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




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



# Create New Stack

The next step is to create a new stack for our project. To do so, open the **`Stacks`** section in the dashboard and click the **`Add stack`** button. Then, add the GitHub repository URL, branch name, and the Docker Compose file.


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


The following step is to add the environment variables and click **`Deploy the stack`** to finish the configuration.


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



After completing the deployment, we can now have total control over our stack.


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



We can also check our API endpoint to ensure that everything is working as before.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5pndcj1ddbrnll0ya8oe.png)
Day 902 : The Combination
Tags: hiphop, code, coding, lifelongdev
Published: 2024-01-25 23:06:36

_liner notes_:
- Professional : Had back to back to back meetings today. It was cool to see everyone. I responded to some Github questions. Followed up with community questions. Rest of the day finished updating the Web Components docs, pushed to the repo and published to npm. Not a bad day.

- Personal : Kind of got a lot done last night. Picked up some projects on Bandcamp. Got the social media posts ready for Friday. Did some work on my current side project. Created an account with the new platform I want to try out for quick proof of concept. Did some research on where I want to host the server for the proof of concept. I want something I can spin up quick. I was thinking I may want to try Deno again. From what I remember, I had a good experience creating https://WhatsThat.in Ended the night watching an episode of "Rurouni Kenshin". 

![A photo of snow-capped mountains in the distance with a blue sky and clouds. In the foreground is a dark mountain slope. The location is the Marmolada Glacier in Italy.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h5fq4ytwl8w29zhr7821.jpg)

Going to put together tracks together for this week's radio show. I think I need to look up the social media accounts for the playlist. I'll see how far I can get with the card preview functionality of my side project. It's going to require pulling together different functionalities I got working separately when I was just testing things out. Now it's about finding the combination that works best when put together. Definitely want to watch an episode of "Rurouni Kenshin".

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube uiltt_Ofty4 %}
Unleashing the Towing Capacity of Your Cars
Published: 2024-01-25 21:20:50

Towable adventures like boats, trailers, and campers beckon, but before you strap on the hitch, understanding your car’s towing capacity is key. It’s the difference between a smooth journey and a roadside breakdown (and a bruised ego).
https://towingcapacitycars.com/hyundai-santa-cruz-towing-capacity/
Why Towing Capacity Matters
Towing capacity is the heartbeat of successful towing. It’s the maximum weight a vehicle can safely tow, including the trailer and its contents. Exceeding this limit can compromise safety, vehicle performance, and even lead to costly damage. Whether you’re hauling a boat, RV, or a load for work, understanding your vehicle’s towing capacity is crucial.
https://towingcapacitycars.com/hyundai-santa-cruz-towing-capacity/
Unleashing the Towing Capacity of Your Cars
Towing capacity Cars, measured in pounds, tells you the maximum weight your car can safely pull. It’s not just about size – a compact SUV can sometimes out-tow a sedan. Look for this figure in your owner’s manual or manufacturer’s website. Consider it your car’s whispered secret, waiting to be unleashed.
Beyond the Numbers:
But it’s not just a black and white figure. Several factors influence your real-world towing prowess:
Engine Power: A beefier engine tackles heavier loads with ease.
Transmission: Automatics often have lower capacities than manuals.
Drivetrain: Four-wheel drive offers superior traction for uphill hauls.
Vehicle Condition: Regular maintenance ensures your car is up to the task.
Trailer Weight: Remember, it’s not just the trailer – factor in its cargo too!
The 85% Rule:
Safety first! While your car might technically tow a certain weight, the 85% rule recommends staying at 85% of the capacity for comfortable, controlled towing. This accounts for additional factors like wind resistance and uphill climbs.
Gear Up for the Journey:
Preparation is key. Invest in a quality trailer hitch, brake lights for the trailer, and proper weight distribution to keep everything balanced. Check tire pressure and fluids before hitting the road.
Towing Like a Pro:
Now, with knowledge and a well-equipped car, you’re ready to conquer the road. Take it slow, avoid sudden braking, and factor in extra stopping distance. Remember, you’re pulling a whole lot more than just yourself.
Unleash your car’s towing potential with the right knowledge and preparation. Hit the road with confidence, knowing you’ve got the power to handle whatever adventure awaits.
Cross-Platform application with Ruby + Tauri
Tags: ruby, tauri, opal, crossplatform
Published: 2024-01-25 22:55:08

Is there any way to create a cross-platform client application that consumes a fraction of resources than Electron would use... **with Ruby?** 🤯

TLDR; 
yes, **this is the way** 👇

1. Run `sh <(curl https://create.tauri.app/sh)`

2. Set:
  - **Project name:** `your-project` (what you want)
  - **Choose which language to use for your frontend:** `"TypeScript / JavaScript"`
  - **Choose your package manager:** `npm` (what you want)
  - **Choose your UI template:** `Vanilla`
  - **Choose your UI flavor:** `JavaScript`
![Tauri setup](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aopqt2x1err9d6sjj64v.png)

3. Run:
  - `gem install opal`
  - `cd your-project`
  - `echo "puts 'Hello from Opal!'" | cat > src/main.rb`
  - open `src/index.html` file and move `<script type="module" src="/main.js" defer></script>` line to the bottom
  - `mkdir src/app`
  - `npm install`
  - `npm run tauri dev`

4. Edit `src-tauri/tauri.conf.json`:
  - set `beforeDevCommand` with `"opal --output=src/main.js --watch -c src/main.rb -I src/app"`
  - set `beforeBuildCommand` with `"opal -c src/main.rb --output=src/main.js --no-source-map -I src/app"`
![Tauri configuration](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/plkvqrez3j3gv0dnfrqd.png)

5. Go to the window console (https://tauri.app/v1/guides/debugging/application/#webview-console),
  you should see `Hello from Opal!` 🥳
![Tauri application](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9zplhxmp5dpr79xibhpa.png)


Amazing uh? But... what next?
- Add any `.rb` file in `src/app` and require it from `src/main.rb`, yeah that's it!
- Build it with `npm run tauri build`

![Build Space](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fo7h32wcpv513xutsydm.png)
![Build ram](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3e6wsjjzp3y5pqy022l.png)

~6MB Space (notice that I didn't minify or optimize anything...)
~20-30MB Ram (this is crazy)

Joseph 😉


Resources:
[Opal guides](https://opalrb.com/docs/guides/v1.8.2/index.html)
[Tauri guides](https://tauri.app/v1/guides/)
How To Get Money Back From Crypto Scammers: Adware Recovery Specialist
Published: 2024-01-25 22:53:10

Imagine the sinking feeling of realizing that your wallet, brimming with valuable coins, has been hijacked by malicious actors. That exact nightmare became my reality, leaving me devastated and anxious about the loss. However, in my desperate search for a solution, I stumbled upon ADWARE RECOVERY SPECIALIST , a service that specializes in retrieving and restoring hijacked wallets. With their assistance, I was able to reclaim my wallet, restoring not only my funds but also my peace of mind. In this article, I will share my harrowing experience, shed light on the process of wallet hijacking, and highlight the crucial role that prompt recovery plays in safeguarding our digital assets. When all of a sudden you discover that your wallet has been compromised and that all of your valuable coins have vanished, you are simply going about your day. Because I experienced it myself, I am all too familiar with the feeling. You should not have to go through this painful experience; trust me. Not to worry, though; I found a fantastic fix that allowed me to retrieve my wallet without any damage. Introducing ADWARE RECOVERY SPECIALIST. You need to act quickly if your wallet is stolen. The likelihood of permanent harm increases with the amount of time you spend trying to get your wallet back. Particularly in the quick-paced world of cryptocurrencies, every second matters. For this reason, it's essential to take quick action and get expert assistance in order to assure a full recovery. Which is why ADWARE RECOVERY SPECIALIST, a company that specializes in freeing your wallet from those annoying hackers' hands, is so important.  Hackers have an arsenal of methods up their sleeves to gain access to your hard-earned coins. From phishing scams and keyloggers to malware and social engineering, these cybercriminals are relentless in their pursuit of your digital assets. It's essential to familiarize yourself with these common hacking techniques to better protect yourself and your wallet. Sometimes, signs of wallet hijacking can be subtle, making it easy to overlook until it's too late. If you notice any unauthorized transactions, unfamiliar addresses in your transaction history, or sudden changes in your wallet balance, alarm bells should start ringing. These are clear indicators that your wallet may have fallen victim to a hijacking attempt. Being vigilant and recognizing these warning signs can help you take action before it's too late. ADWARE RECOVERY SPECIALIST : everyone's go-to hero in a pinch. Your coins will be securely returned to their original location thanks to the expertise of their team of specialists, who are skilled in recovering and repairing compromised wallets.  ADWARE RECOVERY SPECIALIST has established itself as a reputable brand in the wallet recovery industry thanks to their knowledge and state-of-the-art equipment. Contact the information below:


Website: adwarerecoveryspecialist.expert 
Email: Adwarerecoveryspecialist@auctioneer.net
12 LinkedIn Tech Content Creators that you should follow immediately
Tags: opensource, development, coding, linkedin
Published: 2024-01-25 22:49:46

In the fast-paced world of tech, staying in the loop is essential. We've compiled a list of 12 LinkedIn tech content creators who are reshaping the industry. 

From seasoned engineers to visionary leaders, these creators offer insights and expertise that can supercharge your professional journey. Ready to level up? Follow these tech influencers now.

As a software engineer, here are 12 creators I recommend to grow fast:

1. **Raviraj Achar** - Staff Eng (Become a tech lead)
   LinkedIn: [Raviraj Achar](https://www.linkedin.com/in/ravirajachar/)

2. **Omar Halabieh** - Tech Director (Become a leader)
   LinkedIn: [Omar Halabieh](https://www.linkedin.com/in/omarhalabieh/)

3. **Irina Stanescu** - Staff Eng / Manager (Lead without authority)
   LinkedIn: [Irina Stanescu](https://www.linkedin.com/in/irinastanescu/)

4. **Ryan Peterman** - Staff Engineer (Get promoted and grow)
   LinkedIn: [Ryan Peterman](https://www.linkedin.com/in/ryanlpeterman/)

5. **Neo K.** - System Design Guru (Become a pro at System Design)
   LinkedIn: [Neo K.](https://www.linkedin.com/in/nk-systemdesign-one/)

6. **Ryan Murphy** - Eng Manager (Learn what a badass manager looks like and how to grow through raw personal stories)
   LinkedIn: [Ryan Murphy](https://www.linkedin.com/in/ryansmurphy1/)

7. **Gregor Ojstersek** - CTO (Become a leader)
   LinkedIn: [Gregor Ojstersek](https://www.linkedin.com/in/gregorojstersek/)

8. **Zach Wilson** - Data Engineering Solopreneur & Staff Eng (Become a Data Engineer)
   LinkedIn: [Zach Wilson](https://www.linkedin.com/in/eczachly/)

9. **John Crickett** - Software Architect (Become a better programmer)
   LinkedIn: [John Crickett](https://www.linkedin.com/in/johncrickett/)

10. **Caleb Mellas** - Senior Eng / Tech lead (Get promoted and grow)
    LinkedIn: [Caleb Mellas](https://www.linkedin.com/in/calebmellas/)

11. **Nicola Ballotta** - Eng Manager (Become a better eng manager and get 🔥 visuals)
    LinkedIn: [Nicola Ballotta](https://www.linkedin.com/in/nicolaballotta/)

12. **Mads Brodt** - Senior Eng / Frontend lead (Become solid at frontend)
    LinkedIn: [Mads Brodt](https://www.linkedin.com/in/madsbrodt/)

As we conclude this journey through the realms of tech insights and innovation, remember that the learning never stops. By following these 12 LinkedIn tech content creators, you've tapped into a wellspring of knowledge, experience, and inspiration. 

Keep engaging, stay curious, and let the shared wisdom of these creators propel you forward. The tech landscape evolves, and so do you. Until our next exploration, happy learning and thriving in the ever-dynamic world of technology!