teleren/devto huggingface dataset:
eat your own food
Tags: gamedev, writing
Published: 2023-12-24 16:21:59

---
title: eat your own food
published: true
date: 2023-12-11 00:00:00 UTC
tags: [ 'gamedev', 'writing' ]
canonical_url: https://onwriting.games/daily/20231211-233-eat-your-own-food/
---

It's interesting how one can have strong opinions, talk and think a lot about something, and not apply it to their own creations.

Yesterday, I was playing Dance of the Spirits a bit, the game we're working on, and I noticed that no matter what you did during the game, the final dialogue was always very similar and didn't have much connection with what was happening before.

So, I added a small system:

Fede, the last character you talk to, is on the stage playing the harp throughout the game while you talk to the rest of the ghosts at the dance.

I decided to randomly integrate Fede into this situation.

Every time you go to talk to a character, there's a chance that Fede is watching you. There's also a chance that the game will notify you of this.

If Fede is watching you, he's going to "pay attention" to your conversation, and if you empathize with characters he doesn't get along with, it will lower your reputation with him.

The opposite will happen if he sees you talking with the characters he gets along with.

Abril, your character, can use this to their advantage...

At the end of the game, depending on the reputation you have with him, and what you have found out, you will have certain options and certain reactions from Fede, enabling different endings of the game.

I thought it would be interesting to tell you this so you can see how a single decision integrates several things I've been talking about:

- Randomness
- Reaction to state
- Designing around narrative needs

What do you think of this example? Any suggestions on how to improve it?
Essential Software Commands: What's Crucial in Your Toolbox?
Tags: discuss, codenewbie, beginner
Published: 2023-12-11 00:00:00

---
published_at : 2023-12-11 00:00 +0000
---
Essential skills are often emphasized in various professions. In the context of software engineering, what commands are considered fundamental, and why are they crucial for professionals in the field?
<br>
Follow the CodeNewbie Org and #codenewbie for more discussions and online camaraderie!
{% embed https://dev.to/codenewbieteam %}
Let's use Brainstory for meetings
Published: 2023-12-10 23:53:35

---
title: Let's use Brainstory for meetings
published: true
date: 2023-12-11 00:00:00 UTC
tags: 
canonical_url: https://blog.brainstory.ai/brainstory-meeting/
---

## What is meeting prep?

Meeting prep is prework done to make meeting discussion more productive. Typically, it involves gathering and distributing the facts as the basis of discussion. Amazon is famous for creating a [writing culture](https://thehustle.co/02162021-amazon-writing/) around meeting prep, but most of corporate America is known for its PowerPoint decks. For some meetings, not having sufficient meeting prep means a _very expensive_ hour is wasted.

## Why should I use Brainstory for meeting prep?

Brainstory lets you speak freely to naturally extend your ideas, while it **handles the organization side of things**. We generally believe [talking](https://blog.brainstory.ai/talk-the-walk/) is better for your thoughts overall.

## Why should I send my Brainstory to others for feedback before a meeting?

Often, the majority of a meeting is spent getting everyone on the same page, with the same context, around the facts. People often want to express the level of agreement or disagreement they have on a subject. **Brainstory allows everyone to feel heard** , without derailing a meeting for someone to express a tangential thought.

With Brainstory, a meeting that typically lasts an hour with multiple people can be boiled down to as little as a 15 minute discussion on only the **most important topics,** because everyone has the context they need to make decisions, faster.
Keeping an ASP.Net Core/6/7/8 app alive in IIS
Published: 2023-12-21 13:43:31

---
title: Keeping an ASP.Net Core/6/7/8 app alive in IIS
published: true
date: 2023-12-11 00:00:00 UTC
tags: 
canonical_url: https://stegriff.co.uk/upblog/keeping-an-asp-net-core-6-7-8-app-alive-in-iis/
---

There are three things you have to do.

First, [install the ‘Application Initialization’](https://learn.microsoft.com/en-us/iis/configuration/system.webserver/applicationinitialization/#windows-server-2012-or-windows-server-2012-r2) IIS feature on the server! This caught me out.

Next, configure your `applicationInitialization` settings in `web.config` or IIS:

```
  <system.webServer>
    <applicationInitialization doAppInitAfterRestart="true">
      <add initializationPage="/some-route" hostName="hostname.example.com" />
    </applicationInitialization>
  </system.webServer>

```

The hostname property doesn’t need a scheme (like `https://`); just the raw hostname.

I believe the `initializationPage` can be the root route (`/`) but it might be best to specify a page/file name. The docs say the default value is `""` but that doesn’t mean it would work…

Lastly, in the Application Pool settings for the target app pool, in Advanced Settings, set Start Mode to `AlwaysRunning` and the Idle Time-out to `0`.

See the excellent Hangfire docs for [Making ASP.NET Core application always running on IIS](https://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html#making-asp-net-core-application-always-running-on-iis). The only part not covered there is installing the server role! 😩

Have fun out there ☔
❤️ Date Me Docs
Tags: webdev, ai, programming
Published: 2023-12-10 23:24:36

**What is Date Me Doc?**

"Date-me docs” are both an emerging dating trend and a relic of a past era, more akin to newspaper personal ads than any bio posted on an algorithm-driven, swipe-based app. - NYT

The "Date Me Doc" is a new feature inspired by a trend highlighted in The New York Times and Wired, where people use detailed, Google Docs-like documents to express their dating preferences. Unlike brief profiles on dating apps, these documents allow individuals to thoroughly describe themselves, their interests, and what they seek in a partner. Accessible at https://thedrive.ai/date, this experimental feature aligns with the growing shift away from traditional dating apps, providing a more personal and comprehensive way for users to find romantic connections. This feature, however, does not mean we are shifting our focus to being a dating app or company.

**How Do I Make My Date Me Doc?**

The core of "Date Me Doc" is its format-free approach: it's simply a document about yourself and what you're looking for. For inspiration, Steve has a directory of such docs on Notion. On The Drive AI, you can set any document as your public profile, whether it's a PDF, a YouTube video, a website, or something created in our editor.

**AI assistant**

On your profile page, you have the option to turn on the assistant feature. This lets you choose how the assistant talks, kind of like setting its personality to match your style. You can also add extra details to make it more personal. Think of it as creating your own AI buddy that reflects who you are. The assistant only answers based on the contents of the profile page, and additional information provided to it.

Happy date-me-docing!!
Postman as a Pro Series
Tags: postman, postmanapi
Published: 2023-12-10 22:48:31

Hello 👋, 

I am excited to publish the series of my article titled; Use Postman as a Pro.

Visit Postman as  Pro Series links  [1](https://bit.ly/postman-like-a-pro-series-1), [2](https://bit.ly/postman-like-a-pro-series-2), [3](https://bit.ly/postman-like-a-pro-series-3) now to see how pros uses postman and learn how you can accomplish the same.

Feel free to share and give some claps if you do gain value in what I shared.

Bye.
3 features to make Dev.to perfect!
Tags: forem, discuss
Published: 2023-12-10 22:39:37

[Dev.to](https://dev.to) is awesome indeed, it's just a few features short from perfection. Here's the 3 features I wish it had:


## 1. Ability to archive posts straight from the share menu

I tend to archive the best post I come by, but in order to do so I must bookmark them first, then go to my reading list and only there I can find the `Archive` button. I wish it was a one-click experience instead


## 2. Hide or grey out the posts I have seen/opened already

I wish I doomscrolled [Dev.to](https://dev.to) as often as I do Facebook... but I can't even if I want to. An ability to skip the items you have already seen would be very helpful here, since subsequent attempts to scroll through [Dev.to](https://dev.to) often comes to spending too much energy to identify what you have already read or worse -- decided not to read earlier. I wish the feed would automatically filter out (or at least grey out) the items I have already opened and let me mark items seen myself.


## 3. Tips

The feed has evolved a lot during this year, but I don't feel like I am fully aware of its nuts and bolts, so I am not making the most out of it. I wish there was a link to some wiki page (or at least some tooltips) right on top of the feed explaining it all.

---
That's all I have -- not a big ask, I assume. I wonder if you feel the same way or what features would make [Dev.to](https://dev.to) perfect for you instead.


---
[Photo credit](https://www.tiktok.com/@dina_kalanta)
How to Add Custom Markers on Google Maps in Flutter?
Tags: flutter, googlemaps, markers, dart
Published: 2023-12-10 22:15:48

Flutter offers great flexibility when it comes to customizing maps, especially with the **google_maps_flutter: ^2.5.0** plugin. In this tutorial, we will explore how to replace the standard marker icon with any custom widget using the **screenshot: ^2.1.0** plugin.

**Step 1: Create a Flutter project**

If you haven't installed Flutter yet, follow the instructions on the [official Flutter website](https://docs.flutter.dev/get-started/install) to do so. After that, create a new Flutter project using the following command:

```
flutter create mon_projet_maps
cd mon_projet_maps
```

**Step 2: Set Up Google Maps**
Add the `google_maps_flutter` plugin to your pubspec.yaml file and run flutter pub get to install the dependencies.


```
dependencies:
  google_maps_flutter: ^2.5.0
```

Now, initialize Google Maps in your application. Make sure to add your Google Maps API key. You can follow the instructions [here](https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter#getting-started)

**Step 3: Create a Replacement Widget**
Create the widget you want to use as a replacement for the marker icon. For example, let's take this example:

{% embed https://gist.github.com/dongorias/d83771726ff9ba74c86472d2b6dd368f.js %}

**Step 4: Use the screenshot plugin for BitmapDescriptor**
Add the `screenshot` plugin to your pubspec.yaml file:

```
dependencies:
  google_maps_flutter: ^2.5.0
  screenshot: ^2.1.0
```
Use this plugin to capture the custom widget and convert it into a BitmapDescriptor:

{% embed https://gist.github.com/dongorias/e01f1a632246c8499a91d8ab9ae6633f.js %}


Now, use the `customMarkerIcon` function to obtain your custom BitmapDescriptor and use it when adding markers to the map.

If you want to find a complete example check out [this repository](https://github.com/dongorias/custom-marker-app).

Ps: Don't forget to leave a comment if you enjoyed.
Cloud Resume Challenge
Published: 2023-12-10 22:10:08

After numerous tabs open and tons of hours accumulated, I've finished the cloud resume challenge and wanted to share my experience. It took me less than a month and is a high learning experience.

**Certification**
I passed the AWS Certified Cloud Practitioner and quickly passed the AWS Certified Solutions Architect Associate in November 2023.

**HTML, CSS, and JavaScript**
Using a template, I build and configured my own resume website and styled it accordingly. I've done this kind of thing before, but I always found it fun to modify applications and see how interactive I can make it.

**Host Static Website on S3**
I created a bucket called sean-cloud-resume-challenge and configured it, so the bucket and objects are not public.

**CoudFront and Route 53**
Created a CloudFront Distribution that makes S3 website as HTTPS as well as a CloudFront Distribution URL with the origin to be my S3 bucket. I bought a domain from Route 53 and use that to configure the name of my website.

**DynamoDB, Lambda, and API Gateway for view counter**
As I've done projects utilizing these services before, this part was not tricky and integrating these to be able to communicate with each other securely was straightforward. Lambda tells the API Gateway about the number of views from DynamoDB, and the API Gateway URL tells JavaScript. DynamoDB stores the number of views with a single digit ID.

**Python Tests, Unit Tests**
I configured Python tests in the Lambda console on AWS and the scripts were coded to check if Lambda function was able to communicate with DynamoDB to retrieve the number of views.

**Serverless Application Model, IaC with Terraform**
This was be far the trickiest part of the challenge as I haven't used utilized platforms such as SAM and Terraform. I ultimately chose Terraform because I was using guides on the internet. Terraform will to deploy my DynamoDB, Lambda, and API Gateway as well as setting IAM role for Lambda to communicate with DynamoDB.

**CI/CD for Frontend and Backend**
I set up GitHub Actions for the frontend and backend to automate code and AWS resources to set them up. This was my first time utilizing Github Actions and it's incredibly simply to use. GitHub also allows you to store secrets for AWS Credentials so it's much safer and provides security.

**Conclusion**
The Cloud Resume Challenge greatly helped to improve my skills and knowledge on my cloud journey thus far and I'm much more confident to implement my skills in the future with the latest technologies.
If you need cloud experience and don't know where to start, I'd highly recommend giving this challenge a try. With the amount of researching, building, and testing you'll have to do, you're bound to gain significant improvement in your skills and knowledge.
The Psychology of Linux
Tags: linux, psychology
Published: 2023-12-10 22:02:39


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/90wnr9o2epi9zpmimmub.jpeg)

In the vast landscape of operating systems, Linux has emerged as a compelling alternative, captivating developers, technology enthusiasts, and businesses alike. Beyond its technical prowess, Linux has fostered a unique community, shaping a culture influenced by collective intelligence and collaboration. Today, let’s delve into the psychology of Linux and explore the factors that distinguish this open-source giant from the rest.

**1. Autonomy and Freedom**
One fundamental psychological aspect of Linux is its provision of autonomy and freedom to its users. Traditional operating systems often impose strict limitations on customisation and decision-making, leaving users feeling constricted. However, Linux enthusiasts revel in the open-source nature of the platform that allows them... [Read more on _Betshy_. ](https://betshy.com/2023/11/24/the-psychology-of-linux-unravelling-the-intricacies-of-open-source-community/)
HOW TO RECOVER YOUR LOST AND STOLEN BITCOIN
Published: 2023-12-10 12:14:49

ADRIAN LAMO HACKER has gained a reputation for its remarkable success in recovering lost bitcoins from hacks and scams. With their expertise and cutting-edge techniques, they have been able to retrieve funds that were once thought to be lost forever. From individuals who fell victim to phishing attacks to businesses that experienced crypto exchange hacks, ADRIAN LAMO HACKER has consistently helped their clients reclaim their valuable assets. These success stories highlight the exceptional skills and dedication of the team at ADRIAN LAMO HACKER. When it comes to handling sensitive data, ADRIAN LAMO HACKER takes security and privacy seriously. They employ state-of-the-art encryption and secure protocols to ensure that the information shared by their clients remains confidential. With strict access controls and thorough data handling procedures, ADRIAN LAMO HACKER ensures that your personal and financial information is protected throughout the recovery process. Rest assured, your bitcoins are in safe hands with ADRIAN LAMO HACKER. you can contact them via
Email: Adrianlamo@consultant.com

WhatsApp: +1 (313) 213‑2442
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mpi2znoglglgbcp3e43p.jpeg)
Looking for a job opportunity
Tags: unity3d, unrealengine, cpp, csharp
Published: 2023-12-10 21:57:41

🕹️ Senior Game Developer 💻 Programming Expert 🚀

I am a seasoned game developer with a strong emphasis on programming, boasting proficiency in languages such as C++, C#, and Python. Over the past 10 years, I've successfully contributed to the development of a diverse range of games, from indie games to AAA titles. My expertise extends to gameplay mechanics, AI systems, and performance optimization.

In addition to my technical skills, I bring a proven ability to collaborate within multidisciplinary teams, ensuring a seamless integration of code with art, design, and audio elements. I have a deep understanding of game architecture and a track record of delivering projects on time and within budget.

My experience includes working with industry-standard engines such as Unity and Unreal, where I've implemented features ranging from intricate gameplay systems to complex physics simulations. I pride myself on staying abreast of the latest industry trends, including VR/AR development and the integration of online multiplayer functionalities.

Let's connect to discuss how my extensive programming expertise and passion for game development can contribute to the success of your next project. Portfolio available upon request.
آینه کاری و استفاده از آینه رنگی در آن
Published: 2023-12-10 20:57:08

 آینه کاری و استفاده از آینه رنگی در آن
در ایران باستان آب و آینه نماد پاکی و روشنی هستند و ورود آن به معماری داخلی نیز احتمالا برای تداعی کردن همین معنی است . استفاده از آینه ها در تزیین فضای داخلی ساختمان ها با کاربرد های مختلف از زمان ساسانیان در بین ایرانیان رواج یافته و آثار شکوهمند این هنر باستانی ایرانی در دوران صفوی به اوج خود رسید که تا امروز هم چشم هر بیننده خوش ذوقی را به خود خیره میکند. در آن دوران آینه از سایر کشور ها مانند هلند وارد ایران می شد و به دلایل مختلف در طول راه دچار آسیب می شد و می شکست.[ خرید آینه خرد شده رنگی](https://nipaco.ir/%d8%a2%db%8c%db%8c%d9%86%d9%87-%d9%87%d8%a7%db%8c-%d8%b1%d9%86%da%af%db%8c/)، هنرمندان ایرانی با توجه به تفکر اقتصادی خود به فکر استفاده از این قطعات شکسته اینه افتادند و هنر آیه کاری به این ترتیب متولد شد.

 

استاد آینه کار  برای آنکه بتواند طرح [آینه کاری رنگی](https://nipaco.ir/%d8%a2%db%8c%db%8c%d9%86%d9%87-%d9%87%d8%a7%db%8c-%d8%b1%d9%86%da%af%db%8c/) را به بهترین شکل در فضای مورد نظر که ممکن است سقف و یا دیوار های بنا باشد، ابتدا طرح را روی کاغذ اجرا کرده و سپس کاغذ را سوزن کاری میکند و با نصب آن بر روی فضای مدنظر  به عنوان نقشه راه از آن استفاده می کند. هنر آینه کاری یکی از انواع هنرهایی است که به ابزار و وسایل گران قیمت نیازی ندارد و با استفاده از ابزار آلات ساده ای مانند یک میز کار ساده، قلمو جهت طراحی، الماس آینه بر، خط کش و گچ نرم ، سیریش، چسب چوب . کاردک برای چسباندن تکه های آینه، قابل انجام است.

 

یکی از ویژگی های خاص هنر [خرید آینه رنگی با قیمت مناسب](https://nipaco.ir/%d8%a2%db%8c%db%8c%d9%86%d9%87-%d9%87%d8%a7%db%8c-%d8%b1%d9%86%da%af%db%8c/) این است که میتوان آن را بر روی انواع زمینه ها از جمله دیوار یا سقف سیمانی، رنگ روغن، کاهگل، فلز، MDF، چوب، گچ و سرامیک اجرا کرد و به زیر سازی های عجیب و غریبی برای نصب آن نیاز نیست. آینه کاری را می توان در مدل های مختلفی مانند دایره، لوزی، مربع و مستطیل و سایر اشکال هندسی و حتی اشکال نامنظم متناسب با طراحی انجام شده، اجرا کرد. در آینه کاری مدرن استفاده از آینه های رنگی برا زیبایی بخشی به فضا و اضافه کردن رنگ به محیط مورد توجه قرار گرفته است. استفاده از تکه های محدود از آینه رنگی در میان طرح کلی آینه کاری میتواند جذابیت بیشتری به طرح ببخشد و طرح آینه کاری از حالت یکنواخت و تکراری ان خارج کند.
How to Get Audio Transcriptions from Whisper without a File System
Tags: webdev, openai, javascript
Published: 2023-12-10 20:42:11

Whisper is OpenAI's intelligent speech-to-text transcription model. It allows developers to enter audio and an optional styling prompt, and get transcribed text in response.

However, the official OpenAI Node.js SDK API docs only show [one way to use Whisper](https://platform.openai.com/docs/api-reference/audio/createTranscription) - reading an audio file with `fs`.

```js
async function main() {
  const transcription = await openai.audio.transcriptions.create({
    file: fs.createReadStream("audio.mp3"),
    model: "whisper-1",
  });

  console.log(transcription.text);
}
```

That works fine if you have static files... but in any consumer application, we'll be processing data from an end-user client such as an app or web browser. To receive audio from thousands of users and save it as files is a major waste of disk space and a huge ineffeciency. Plus, serverless deployment is extremely popular today, and in a serverless environment we usually don't have persistent file storage. I wrote this article because it was surprisingly hard to figure out how to achieve audio transcription without saving the audio as a file first.

## How to use Whisper without files

On the client-side, you'll need to get your audio into a Base64 encoded string. I'm using the library "@ricky0123/vad-react" for this purpose, which comes with utilities to accomplish that:

```js
onSpeechEnd: (audio) => {
      const wavBuffer = utils.encodeWAV(audio);
      const base64 = utils.arrayBufferToBase64(wavBuffer);
      const audioUrlAsData = `${base64}`;
      // chose POST here with a payload to ensure the Base64 string doesn't violate the max length of a URL
      fetch("/api/transcribe", {
        method: "POST",
        body: JSON.stringify({ audioData: audioUrlAsData }), 
      })
}
```

Then on the server-side, the trick is to **create a buffer from the base64 data and use the undocumented toFile function from OpenAI's library.**

```js
import OpenAI, { toFile } from "openai";

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

export default async function handler(
  req,
  res
) {
  try {
    // Extract Base64 encoded data from the request
    const bodyData = JSON.parse(req.body);
    const base64Audio = bodyData.audioData;

    // Decode Base64 to binary
    const audioBuffer = Buffer.from(base64Audio, "base64");

    // Use OpenAI API to transcribe the audio
    const transcription = await openai.audio.transcriptions.create({
      file: await toFile(audioBuffer, "audio.wav", {
        contentType: "audio/wav",
      }),
      model: "whisper-1",
    });

    // Send the transcription text as response
    res.json({ transcription: transcription.text });
  } catch (error) {
    console.error("Error during transcription:", error);
    res.status(500).send("Error during transcription");
  }
}
```

Voila! Through this process, you can use Whisper without saving audio from every user as static files, allowing it to be used in a serverless environment.
GitTrust (GT): Enhanced S/MIME Commit Signing with Device Authentication
Tags: security, git
Published: 2023-12-10 20:34:41

Inspired by [FIGMA](https://www.figma.com/blog/how-we-enforce-device-trust-on-code-changes/)

To proactively mitigate the risk of malicious code reaching production, GitTrust ensures that code changes merged into GitHub release branches come from trusted, company-managed devices. It does this by S/MIME signing for Git commits in an environment where devices are managed by MDM and access control is managed by Okta. It ensures that only compliant devices can make signed commits to Git repositories.


**Looking for contributors.**
https://github.com/austinsonger/GitTrust