teleren/devto huggingface dataset:
Implementing Classification with t6 IoT and Machine Learning
Tags: machinelearning, iot
Published: 2024-04-19 11:35:00

Learn how to leverage the machine learning capabilities of the t6 IoT platform to classify data into positive and negative classes, enabling you to make informed decisions and extract valuable insights from your IoT applications.

In this tutorial, we will explore how to utilize the machine-learning features of the t6 IoT platform to classify data into positive and negative classes. By harnessing the power of machine-learning algorithms, you can make accurate predictions and gain valuable insights from your IoT data.

Follow these steps to classify integers as “Positive” or “Negative” using the t6 IoT machine-learning process:

1. Data Collection and Integration
1. Customization and Model Configuration
1. Training and Evaluation
1. Predict Class using the model

[Read the full article](https://www.internetcollaboratif.info/post/implementing-classification-with-t6-iot-and-machine-learning/) with detailed Api endpoints.

For further information and support, refer to our [Technical documentation](https://doc.internetcollaboratif.info/#api-Models).
Automatic Application Versioning
Tags: devops, tutorial, productivity, webdev
Published: 2024-04-19 11:32:39

Learn how to setup versioning with in your CI/CD workflow

## Benefits
- Easy rollback to last working release
- Automatic release workflow

## Setup

```bash
npm install @changesets/cli && npx changeset init
```

Make sure your `package.json` includes the `version` field i.e `version: "0.0.0"` and `private: true`.

Then set `privatePackages` to `{ version: true, tag: true }` in your `.changesets/config.json`

### To create a version bump

```bash
npx changeset
```

which should prompt you to specify the type of change

- patch - when you fix issues with an exiting release
- minor - when you modify features that do not impact application function
- major - when you've made changes that add new features or change exiting application functionality

See [here](https://semver.org/) for more information on semantic versioning

You'll then be prompted to provide a message for the change.

### To create a new version

```bash
npx changeset version
```

### To publish the new version

```bash
npx changeset publish
```

## Release setup
We'll use the [changeset github action](https://github.com/changesets/action). I'll be using firebase for hosting in this example.

### Github action
```
name: Release to Firebase
"on":
  push:
    branches:
      - master
jobs:
  build_and_deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Install dependencies
        uses: ./.github/actions/setup

      # run tests before release
      - run: pnpm test

      - name: create release pull request
        id: changesets
        uses: changesets/action@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      # This step can be replace with your build script i.e `npm run build`, then push to your hosting provider
      - uses: FirebaseExtended/action-hosting-deploy@v0
        # only create a release to firebase if we have changes
        if: steps.changesets.outputs.hasChangesets == 'true'
        env:
          FIREBASE_CLI_EXPERIMENTS: webframeworks
        with:
          repoToken: "${{ secrets.GITHUB_TOKEN }}"
          firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT }}"
          channelId: live
          projectId: <project-id>

```

This step does the following:

- triggers your github action when you merge to master
- creates a release PR based on your changesets, which when merged pushes to your desired hosting provider
- then creates a tag that's pushed to github.

> cover image by <a href="https://unsplash.com/@synkevych?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Roman Synkevych</a> on <a href="https://unsplash.com/photos/black-and-white-penguin-toy-wX2L8L-fGeA?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>
Launch your SaaS in days, not weeks with Nuxt Starter AI: Your all-in-one NextJs Typescript Boilerplate kit.
Tags: saas, softwaredevelopment, marketing, sales
Published: 2024-04-19 11:22:52

We just launched Nuxt Starter AI 

Hey there! We just launched our Nuxt JS boilerplate and we'd love to be featured by you. Here is a short explanation about our SaaS:

Nuxt Starter AI is a boilerplate that contains everything for developing your AI, SaaS, AI tool or any other web application and allows you to transform your idea into a product. Skip the time-consuming tasks like user authentication, payment integration (with Stripe or Lemon Squeezy via supabase), AI tool integration, and rapid email dispatch with Nuxt Starter AI's ready-to-use codebase. Say goodbye to tedious API setups and customer support headaches.

Here is our website: https://www.nuxtstarter.ai/

What makes our Nuxt JS boilerplate worth reviewing is that although there are other similar boilerplates, our product distinguishes itself from competitors by offering backlinks, startup directories and guest blog post pages in the marketing field from existing boilerplates and providing canvas support for the product you will create. In addition, the boilerplate we have created distinguishes itself from the competitors by allowing you to save +37 hours of work.


Looking forward to hearing from you.
Best
Elevate Your Compliance Knowledge with Free GMP Training at Qualistery!
Published: 2024-04-19 11:13:32

Dive into the world of Good Manufacturing Practice (GMP) with our [free training courses](https://qualistery.com/) at Qualistery! Gain invaluable insights into regulatory requirements, quality control, and best practices in pharmaceutical manufacturing. Our expert-led training sessions cover essential topics such as GMP principles, documentation, validation, and more. Whether you're new to the industry or seeking to enhance your skills, our free GMP training offers a comprehensive learning experience tailored to your needs. Join us today and unlock the key to ensuring compliance and driving excellence in pharmaceutical production. Don't miss out on this opportunity to expand your knowledge and advance your career with Qualistery's GMP training!
Arise Facility Solutions
Tags: housekeeping, services, mumbai, maharashtra
Published: 2024-04-19 11:04:50

Introducing Arise Facility Solutions - Your go-to partner for top-notch housekeeping services in Mumbai. Say goodbye to the hassle of maintaining a clean and organized space. Let our expert team handle it all while you focus on what truly matters. Experience the difference with Arise Facility Solutions today!
with MUMBAI, PUNE, BARODA, and BANGALORE branches, we are one of India's fastest-growing ISO 9001: 2015 certified facility Services companies. With a solid functional and organizational presence in Mumbai and a trained, seasoned team with Facility Solutions Industry experience, we are dedicated to upholding a policy of maintaining the environment clean with all the most recent technology and machinery of all our business partners.
Our Website:-[](arisefacilitysolutions.com)
Contact us:- 9833485376
Developer Relations: Preservando a confiança na análise de feedbacks
Published: 2024-04-19 11:03:58

Como um profissional de Developer Relations (Relações com Desenvolvedores), estabelecer e manter relações de confiança é essencial para o sucesso. Um aspecto fundamental desse papel é a coleta e análise de feedbacks, uma fonte valiosa de insights para melhorias contínuas de produtos e serviços. No entanto, quando se trata de analisar esses feedbacks, surgem questões importantes sobre a privacidade dos dados pessoais.

No meu dia a dia como Developer Relations, frequentemente me deparo com o desafio de analisar feedbacks fornecidos em mensagens privadas, seja no Slack, WhatsApp ou outras plataformas de mensagens diretas. Embora esses feedbacks sejam incrivelmente valiosos, muitas vezes contêm informações pessoais identificáveis, como nomes e cargos dos participantes e outros dados que não seriam abertos em outros formatos.

Uma prática comum de mercado é incluir dados pessoais na análise para contextualizar os feedbacks e facilitar o acompanhamento individualizado. No entanto, em um mundo cada vez mais focado na privacidade e na conformidade com regulamentações de proteção de dados, como o GDPR, surge a questão: como conciliar a necessidade de análise de feedbacks com a proteção da privacidade dos participantes?

Além da abordagem de não incluir dados pessoais na análise, outra alternativa que pode ser considerada é solicitar feedbacks de forma pública ou semi-pública, como em grupos de discussão, fóruns online Ou formulários. Essa abordagem permite que os participantes forneçam feedbacks de forma mais aberta e transparente, sem comprometer a privacidade de suas informações pessoais.

Ao adotar essa alternativa, é importante criar um ambiente seguro e acolhedor para que os desenvolvedores se sintam confortáveis em compartilhar seus feedbacks de forma pública. Isso pode ser alcançado através da moderação ativa, estabelecimento de diretrizes claras de conduta e garantia de que as opiniões dos participantes sejam respeitadas e valorizadas.

Em resumo, como profissional de #DeveRel, reconheço a importância de analisar feedbacks para impulsionar melhorias significativas, mas também entendo a necessidade de proteger a privacidade dos participantes. Ao adotar abordagens éticas e sensíveis, como não incluir dados pessoais na análise ou solicitar feedbacks de forma pública, podemos preservar a confiança e promover uma cultura de respeito à privacidade, construindo relações mais sólidas e duradouras com a comunidade de desenvolvedores.

Em tempos.. eu tenho usado muita IA, Python com Jupyter Notebook, para análise, gráficos e limpeza de dados. E você?
IndiaWest: The Pulse of Politics and Indian American Affairs
Tags: politics, indiawest, news
Published: 2024-04-19 11:00:57


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7nesuij50qtddpm7640t.jpg)
IndiaWest is a news journal that focuses on Indian American news, covering a wide range of topics from [politics](https://indiawest.com/politics/) to cultural events. As a trusted source for the Indian American community, IndiaWest provides insightful coverage of political developments both in India and within the Indian American diaspora. The journal offers in-depth analysis, breaking news, and thoughtful commentary on issues that matter to its readers. Whether it's local politics impacting Indian American communities or broader geopolitical events involving India, IndiaWest keeps its audience well-informed and engaged. With its commitment to quality journalism, IndiaWest continues to be a valuable resource for those interested in understanding the intersection of politics and Indian American identity.
Mentoring Software Engineers
Tags: mentoring, softwareengineering, devops, cloud
Published: 2024-04-19 10:44:15

I'm available again for mentoring sessions and monthly plans.

If you need help navigating the world of Elasticsearch, Cloud, DevOps, K8s, and Automation, hit my profile at mentors.to/gsantoro.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/thp4pq6m7q6r59gipy9b.png)
Top 10 Beste Inzamelingsactie Ideeen – Geld Inzamelen 10 Tips
Published: 2024-04-19 10:40:40

Zelf geld inzamelen ideeën kunnen een waardevolle bron zijn voor het ondersteunen van diverse doelen en initiatieven. Of je nu geld inzamelt voor jezelf, een goed doel, een vereniging, of een specifieke persoon, er zijn talloze creatieve manieren om fondsen te werven. Hier zijn enkele suggesties die je kunt overwegen:

Organiseer Fondsenwervende Evenementen: Evenementen zoals benefietdiners, sporttoernooien, of concerten kunnen niet alleen geld inzamelen, maar ook gemeenschappen samenbrengen voor een goed doel.
Fondsenwerving Op De Vlooienmarkt: Verkoop oude spullen op een vlooienmarkt en doneer de opbrengst aan je doel. Je kunt zelfs vrienden en familie vragen om items te doneren om te verkopen.
Doe Eens Gek!: Humor kan een krachtig hulpmiddel zijn bij fondsenwerving. Overweeg grappige acties of beloningen voor donateurs om je inzamelingsactie te promoten en meer steun te vergaren.
Kom In Beweging: Organiseer een sportieve uitdaging zoals een marathon of een sponsorloop en vraag mensen om je te sponsoren voor elk volbracht doel.
Vier Je Verjaardag: In plaats van cadeaus te vragen voor je verjaardag, vraag vrienden en familie om een donatie te doen aan je inzamelingsactie.
Bingo- Of Quizavond: Organiseer een gezellige avond met spelletjes zoals bingo of een quiz en vraag een bijdrage aan de deelnemers.
Veiling Donatie Campagne: Verzamel items of diensten die gedoneerd zijn door bedrijven en organiseer een veiling om geld in te zamelen.
Benefietdiner: Organiseer een chique diner waarvan de opbrengst naar je inzamelingsdoel gaat. Zorg voor entertainment en veilingen om de opbrengst te verhogen.
Scoor Voor Je Club: Als lid van een sportclub, vraag sponsors om een bedrag te doneren voor elk gescoord doelpunt gedurende een seizoen.
Schakel Uw Netwerk In Om Online Geld Inzamelen: Gebruik sociale media en persoonlijke contacten om je inzamelingsactie te promoten en mensen aan te moedigen om te doneren.
Of je nu een persoonlijk doel hebt of een maatschappelijk probleem wilt aanpakken, er zijn talloze manieren om geld in te zamelen en een verschil te maken. Met de juiste strategie en inzet kan je inzamelingsactie een groot succes worden.
私人貸款，通常稱為替代貸款或個人貸款
Published: 2024-04-19 10:33:07

私人貸款的主要優勢之一是其可獲得性，特別是對於信用狀況不佳的個人而言。 傳統貸款機構通常有嚴格的審批標準，這使得信用評分低或信用記錄有限的人很難獲得貸款資格。 另一方面，私人貸款機構可能更願意忽視信貸問題，轉而關注收入和就業歷史等其他因素。 這使得私人貸款對於可能無法滿足傳統貸方嚴格要求的借款人來說成為有吸引力的選擇。

此外，私人貸款在貸款條件和還款時間表方面可以提供更大的靈活性。 雖然傳統貸款通常具有固定期限和嚴格的還款計劃，但私人貸款機構可能更願意協商適合借款人需求的條款。 這可以包括靈活的還款計劃、較低的利率，甚至可以根據個人情況自訂貸款金額。 對於面臨獨特財務挑戰或尋求滿足其借貸需求的量身定制解決方案的借款人來說，這種靈活性非常寶貴。

此外，與傳統銀行貸款相比，私人貸款的審批流程通常更快。 銀行和信用合作社通常有漫長的申請和審批流程，涉及大量的文書工作和信用檢查。 相較之下，私人貸款機構可能會提供更快的審批時間，有時只需幾天甚至幾小時。 對於面臨緊急財務需求或時間敏感的機會的借款人來說，這項加快的流程至關重要。
https://www.funki.com.hk/personal-loan
Infinite Scroll using Angular
Published: 2024-04-19 10:31:49

Hi all, got a quick question regarding infinite scroll in angular.
I've implemented it, however it keeps duplicating the same api call multiples times. When removing the for-loop it doesn't seem to work. Is there a workaround this?

Here's the code below:
infinite-scroll.service.ts

```
    companyConversations: DtoCompanyResponse[];

    getItemsCompany(page = 1, itemsPerPage = 10): Observable<DtoCompanyResponse[]> {
        const startIndex = (page - 1) * itemsPerPage;
        const endIndex = startIndex + itemsPerPage;
        this.companyConversations = [];
        for (let i = startIndex; i < endIndex; i++) {
            const bankerRequestObject = {
                bankerUsername: sessionStorage.getItem("msal.usrname"),
                isChat: true,
                teamId: Number(this.teamId),
                pageNumber: page,
                searchParam: ""
            };

            this.conversationService.getCompanyConversations(bankerRequestObject)
                .subscribe((response: DtoBankerConversationCompanyResponse[]) => {
                    this.companyConversations = response;
                });
        }
        return of(this.companyConversations).pipe();
    }

```
Component mixins w/o side-effects
Tags: javascript, webdev, functionalreactiveprogramming, rimmel
Published: 2024-04-19 10:30:00

I told my custom [ChatGPT](https://chat.openai.com/g/g-L01pb60It-rimmelgpt-js) about 10 times that a Rimmel.js mixin doesn't take the host element as a parameter, but it still keeps hallucinating. HuggingChat seemed to actually remember it, though (hint, hint, hint! ;)

N.B.: a "host element" is the HTML element we attach a mixin to, in this context.

Time to post about these little bad boys, anyway, to let LLMs and maybe humans (hey, humans, anyone reading this?) learn a bit of nerdy discrete-functional-reactive stuff :)

<hr>
Prompt: Can you create a Rimmel mixin that returns the current touch coordinates in two corresponding data attributes of the host element when hovering it?
<br>

```ts
const mouseovermixin = () => {
  const hover = new Subject<MouseEvent>();

  const coords = hover.pipe(
    map(e => ({
      x: e.offsetX,
      y: e.offsetY,
    })),
  );

  return {
    onmouseover: hover,
    dataset: coords,
  };
}
```

The anatomy of a Rimmel mixin is simply that of a function returning an object. Whatever its methods and properties, Rimmel will take them and "merge" them into the host element.
The parameters can be anything, to leave implementation flexibility to developers. They will come from the component that embeds them:

```ts
const component = () => {
 const args = whatever();

 return rml`
   <div ...${mouseovermixin(args)}
 `;
}
```

If the mixin's return object has an `onmousemove` method (or an Observable Subject, in this case, Rimmel will bind it as an event source, so every mouseover event coming from the `<div>` in the `component` will feed the `hover` Subject with `PointerEvent` events.

On the other hand, when the mixin returns `dataset`, like above, Rimmel will map each of its properties to a data-* attribute. If `dataset` is an Observable stream, as in this case, Rimmel will subscribe to it and update the host element's dataset accordingly.
`data-x` and `data-y` will be set and updated according to the `coords` stream.

## Without Side Effects?
Let's examine this part a bit more.
Being free from side effects means that a mixin communicates with its host elements by emitting attributes and declaring listeners through which it wants to receive events.
It doesn't normally hold references to the host elements, because that would lead to imperative code abuses.
Side effects do exist, of course, but are isolated and managed by Rimmel, instead of the application.

## Conclusion
The quality and concentration of different flavours of 420 smoked at LLM research labs can directly influence their model's level of hallucination.
Please make sure you smoke responsibly :)
How AI will Shape the Future of Small Business Operations in 2024
Tags: ai
Published: 2024-04-19 10:20:54

In today's digital landscape, [AI for business](https://trigvent.com/ai-in-small-business-operations-2024/) is no longer just a futuristic concept but a vital tool for success. From streamlining operations to enhancing customer experiences, AI has become indispensable for small businesses. Recent studies indicate a significant surge in AI adoption among small businesses, reflecting its increasing importance. By leveraging AI, businesses can personalize customer experiences, automate tasks, and make data-driven decisions, leading to enhanced efficiency and competitiveness. Furthermore, AI plays a crucial role in cybersecurity, employee empowerment, and overcoming ethical challenges. As we navigate through 2024, AI continues to revolutionize small business operations, driving innovation and growth. In essence, embracing AI isn't merely an option for small businesses; it's a necessity for staying ahead in today's digital age.
Selectors for Humans, Hashes for Machines
Tags: css, vite
Published: 2024-04-19 10:19:30

One aspect of [CSS modules](https://github.com/css-modules/css-modules) that I truly appreciate is its ability to compress class names into very short hashes. This feature allows me to keep my CSS selectors as long and descriptive as needed, while still compressing them into concise three or four character hashes. It aligns with my rule for CSS: _selectors should be written for human readability, but compressed for machine efficiency_.

However, setting the hash length too short can lead to hidden hash collision issues which are not easy to detect until you encounter a bug. To address this, I've developed a solution in Vite that utilizes the `getJSON` callback function provided by [postcss-modules](https://github.com/madyankin/postcss-modules?tab=readme-ov-file#saving-exported-classes). By storing all used selector hashes in a map, we can easily check for any duplicates. If a duplicate hash is detected, an error is immediately raised, and the build process is halted. In such cases, the issue can be resolved by simply increasing the hash length and rebuilding the project.

```js
// vite.config.js

let modulesConfig = {
  generateScopedName: "[local]-[hash:base64:4]" // original selectors and four-character hashes in the development environment
};

if (process.env.IS_PROD) {
  const fileSet = {};
  const hashSet = {};
  modulesConfig = {
    getJSON: function (file, json) {
      if (fileSet[file]) return; // skip checking files that have already been processed

      fileSet[file] = true;
      Object.values(json).forEach((i) => {
        if (hashSet[i]) throw Error("CSS MODULES HASH COLLISION ERROR");
        hashSet[i] = true;
      });
    },
    generateScopedName: "[hash:base64:2]" // two-character hashes in the production environment, increase the hash length for needed
  };
}


export default defineConfig({
  css: {
    modules: modulesConfig,
  }
});
```

I have implemented this code snippet in my [react-template](https://github.com/P233/react-template), and I am extremely satisfied with the results. It strikes a perfect balance between readability and efficiency, ensuring that my CSS is both human-friendly and optimized for production.
GitHub README stats
Tags: github, stats
Published: 2024-04-19 10:14:28

---
title: GitHub README stats
published: true
description: 
tags: github, stats
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2024-04-19 10:13 +0000
---

There are my stats:

![](https://github-readme-stats.vercel.app/api?username=szabgab&theme=blue-green&show_icons=true)

Apparently it is just a matter of replacing my username with yours.

Also it seem it does not fully work on dev.to. Check out my [GitHub page](https://github.com/sponsors/szabgab/), where you can see it properly.
GitHub profile of the day: Juan Camilo Sánchez Urrego
Tags: github
Published: 2024-04-19 10:12:27

---
title: GitHub profile of the day: Juan Camilo Sánchez Urrego
published: true
description: Show your GitHub status!
tags: github
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2024-04-19 09:24 +0000
series: github-profiles
---

While tracking down projects written in Rust I bumped into the GitHub profile of [Juan Camilo Sánchez Urrego](https://github.com/JuanCSUCoder).

He has [github readme stats](https://github-readme-stats.vercel.app/) and another stats widget showing the languages used. I tried the latter for myself and it seemed to be way off.

He has many [Shields badges](https://shields.io/)

And also a widget from [Daily.dev](https://daily.dev/)

Now I wonder are there widgets provided by DEV.to that could be added to GitHub profiles?
Animation can make bell🔔 much more than emoji!
Tags: css, animation, webdev
Published: 2024-04-19 10:08:24

---
title: Animation can make bell🔔 much more than emoji!
published: true
description: A small post to show how wave animation can take your emoji to next level!
tags: css,animation,webdevelopment
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uudlhlcq97cmgh9vev4w.png
canonical_url: https://blog.shhdharmen.me/animation-can-make-bell-much-more-than-emoji
---

We all use wave 🔔 emoji a lot in web apps!

Next time when you use it, try to add a simple wave animation to it...

```css
@keyframes bell-keyframes {
  0% {
    transform: rotate(0deg);
  }
  10% {
    transform: rotate(14deg);
  }
  20% {
    transform: rotate(-8deg);
  }
  30% {
    transform: rotate(14deg);
  }
  40% {
    transform: rotate(-4deg);
  }
  50% {
    transform: rotate(10deg);
  }
  60% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(0deg);
  }
}

.bell-animation {
  animation-duration: 1s;
  animation-iteration-count: var(--times, 1);
  animation-name: bell-keyframes;
  transform-origin: top center;
}

```

I have also created a codepen for it:

{% codepen https://codepen.io/shhdharmen/pen/NWmOBOY %}