teleren/devto huggingface dataset:
Meet 3 New ODBC Drivers for Shopify, Google Sheets, and Zoho Projects
Tags: odbc, shopify, googlesheet, zohoproject
Published: 2023-04-13 14:19:40

Devart, a recognized vendor of world-class data connectivity solutions for various data connection technologies and frameworks, released new [ODBC drivers for Shopify](https://www.devart.com/odbc/shopify/?utm_source=medium&utm_medium=referral&utm_campaign=pr_odbc_13.04.2023), [Google Sheets](https://www.devart.com/odbc/googlesheets/?utm_source=medium&utm_medium=referral&utm_campaign=pr_odbc_13.04.2023), and [Zoho Projects](https://www.devart.com/odbc/zohoprojects/?utm_source=medium&utm_medium=referral&utm_campaign=pr_odbc_13.04.2023). Now it’s easier to integrate the data from popular platforms into the workflows, reducing the time and effort required for data analysis and reporting.  

**The detailed list of the features:**
- Seamless connectivity: easily access 3 commonly used cloud-based platforms directly from your preferred BI or reporting tool by utilizing standard SQL queries.
- Real-time data access: access your data in real-time, analyze, and make decisions based on up-to-date information.
- Customizable queries: use SQL queries to customize data extraction and analysis to get the data you need.
- Easy setup: with a simple and intuitive interface, you can easily set up the Devart driver in just three steps, ultimately saving your time.

To learn more about the recent release and download new products, visit: https://blog.devart.com/new-odbc-drivers-for-shopify-google-sheets-and-zoho-projects-now-available.html

**Devart ODBC Drivers** are high-performance connectivity solutions with enterprise-level features for accessing the most popular database management systems and cloud services from ODBC-compliant reporting, analytics, BI, and ETL tools on 32-bit and 64-bit Windows, macOS, and Linux. Our ODBC drivers fully support standard ODBC API functions and data types to enable easy access to live data from anywhere.

**About Devart**
 
Devart is one of the leading developers of database tools and administration software, ALM solutions, data providers for various database servers, data integration, and backup solutions. The company also implements Web and Mobile development projects. 
For additional information about Devart, visit https://www.devart.com/.
Week 12: Improving Notifications
Tags: opensource, programming, typescript, beginners
Published: 2023-04-13 14:17:36

With the release of [Starchart](https://github.com/DevelopingSpace/starchart) 0.9, I implemented the functionality to process SSL Certificates expiration after a fixed interval. 

To achieve this, we have a repeating background job to fetch certificates from the database that are no longer valid and notify the user regarding the most recent and successfully issued certificate if it is expired. 

With support, I also implemented an Info icon button (linking to [DNS Checker](https://dnschecker.org)) in the front end for every DNS record associated with the authenticated user. Clicking on the Info icon opens a new tab and displays information relevant to the DNS record upon interacting with the  "Search" button.

![demo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ngdx8wsdk9wskp4skn3.png)

For the remaining two weeks, I intend on perfecting Notifications-related code while making minor contributions to the front end.
SRE book notes: Wrapping Up
Tags: sre, books
Published: 2023-04-13 14:05:42

So, after a long vacation break, it has come to an end. I wish I had read this book before. Still actual to this day. So much experience condensed in a book, and so much learned the hard way.

The book comes with a bunch of additional material. They were used and discussed throughout the chapters, but deserve their own section given their usefulness:

- [Availability Table](https://sre.google/sre-book/availability-table/)
- [A Collection of Best Practices for Production Services](https://sre.google/sre-book/service-best-practices/)
- [Example Incident State Document](https://sre.google/sre-book/incident-document/)
- [Example Postmortem](https://sre.google/sre-book/example-postmortem/)
- [Launch Coordination Checklist](https://sre.google/sre-book/launch-checklist/)
- [Example Production Meeting Minutes](https://sre.google/sre-book/production-meeting/)

---

If you liked this post, consider subscribing to my newsletter [Bit Maybe Wise](http://bitmaybewise.com/).

You can also follow me on [Twitter](https://twitter.com/bitmaybewise) and [Mastodon](https://mastodon.online/@bitmaybewise).

---

Photo by [Markus Spiske](https://unsplash.com/@markusspiske) on Unsplash
A ChatGPT revela os populares sabores do cigarros electrónicos
Tags: discuss, chatgpt, webdev
Published: 2023-04-13 13:52:00

Perguntamos à inteligência artificial que sabores de cigarros electrónicos são mais populares em diferentes países. E isto foi o que ele nos disse.

Estados Unidos da América: Sabores de fruta como morango e melancia, assim como sabores de sobremesa como creme de baunilha e caramelo são populares nos EUA. Os sabores de mentol e tabaco também são populares.


Reino Unido: No Reino Unido, sabores de fruta como maçã e baga são populares, bem como sabores de mentol e tabaco. Os sabores de sobremesa como creme e caramelo são também comuns.


Austrália: A regulamentação australiana proíbe a venda de líquidos vape contendo nicotina, pelo que os vapers na Austrália tendem a preferir sabores como sabores de fruta e de sobremesa que não contenham nicotina.


Canadá: Os sabores mentol e tabaco são populares no Canadá, assim como os sabores a fruta como manga e mirtilo.


Japão: No Japão, os sabores de tabaco são populares, bem como os sabores de mentol e menta. Alguns vapers no Japão também apreciam os sabores a fruta e sobremesa.


Malásia: Os vapers malaios tendem a preferir sabores frutados como melancia e manga, bem como sabores de sobremesa como caramelo e baunilha.


França: Em França, os sabores de tabaco são populares, assim como os sabores de fruta como framboesa e cereja.

Então, gostou das estatísticas da IA?

Pergunto-me porque é que Portugal não está na lista) Gostaria de conhecer os sabores mais populares no nosso país?

https://vapepod.store/blogs/news/a-chatgpt-revela-os-populares-sabores-do-cigarros-electronicos
Como salvar a natureza com vapes descartáveis?
Tags: community, motivation, webdev
Published: 2023-04-13 13:49:10


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zcy45jiatofm06a1hndx.jpg)RELATÓRIO SOBRE A RESPONSABILIDADE PELOS PRODUTOS DE VAPE DESCARTÁVEIS: COMO UTILIZAR E ELIMINAR ARTIGOS SEM PREJUDICAR O AMBIENTE

Avançar para uma eliminação responsável dos produtos de vape.

Todos os anos são recolhidos mais de 25 milhões de toneladas de lixo nas ruas e praias de Portugal, mais de 60% do qual é lixo de cigarro. Globalmente, o lixo do cigarro é o tipo de lixo mais comum.Mais de 600 químicos cancerígenos são libertados na atmosfera sempre que uma ponta de cigarro é atirada para o chão. Ao escolher o vaping em vez de fumar, poupa-se uma média de seis árvores por ano de serem destruídas, o que corresponde a cerca de 352 árvores numa vida inteira.

As vape descartáveis têm crescido em popularidade nos últimos anos. São um produto de nível básico que é simples de utilizar e tem um baixo custo , o que é particularmente apelativo para os fumadores que procuram fazer a transição para o vaping.

Contudo, de todos os produtos de vaping em oferta, são os mais difíceis de eliminar de forma responsável, uma vez que produzem tanto resíduos de plástico como resíduos de pilhas. Tudo considerado, as vape descartáveis regulares não são a forma mais amiga do ambiente para o vaping. No entanto, a indústria está a tomar medidas para os tornar mais sustentáveis. As vape descartáveis são totalmente recicláveis.

Deixar de fumar a favor do vaping é uma decisão que não só é boa para a sua saúde - também beneficia o ambiente. No entanto, há sempre mais a fazer para reduzir a sua pegada ambiental: escolher cuidadosamente o seu método de vaping e comprometer-se a reciclar o maior número possível de materiais de vaping pode fazer uma verdadeira diferença.

https://vapepod.store/blogs/news/produtos-de-vape-descartaveis-como-utilizar-e-eliminar-artigos-sem-prejudicar-o-ambiente
Rest and Spread operators
Published: 2023-04-13 13:46:08

In JavaScript, both spread and rest operators are represented by the ellipsis (three dots) syntax (...), but they have different meanings and use cases.
The spread operator is used to "spread" the elements of an iterable object (e.g., an array, a string, or an object with a Symbol.iterator method) into a new array or object literal. It is commonly used to combine arrays, clone arrays or objects, and pass arguments to functions.
The rest operator, on the other hand, is used to collect the remaining arguments of a function into an array. It is often used when the number of arguments passed to a function is not known in advance.
In summary, the spread operator is used to spread the elements of an iterable object, while the rest operator is used to collect the remaining arguments of a function into an array.
Os 10 factos mais interessantes sobre o vaping
Tags: vape, vaping, electroniccigarettes, poddescartavel
Published: 2023-04-13 13:43:47


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ac1w5fkdz5ic9vzvrcl8.jpg)
1. Países líderes em termos de fumadores vape: Na liderança está a China, onde a percentagem de fumadores atinge os 20%. O segundo lugar é a França com 14%. Em terceiro lugar estão os Estados Unidos e o Reino Unido com 13% cada um. O Brasil é o país com o menor número de fumadores de cigarros electrónicos, com apenas 4%.

2. O número de "fumadores electrónicos" a nível mundial está a crescer muito rapidamente: 7 milhões de pessoas em 2011, 41 milhões em 2018, 85 milhões de vapers em 2021.

3. 10 mil milhões de dólares gastos em pods descartáveis por fumadores dos EUA, Reino Unido e França em 2021.

4. Sem fumo passivo: os cientistas franceses calcularam o tempo de dispersão do vapor dos cigarros vaping e convencionais. O fumo de um cigarro dissipa-se em 20 minutos. O vapor de vape pods desaparece em apenas 11 segundos, não é absorvido pelo vaping passivo (quando outra pessoa está a fumar nas proximidades) e, portanto, não representa qualquer risco para a saúde.

5. Nos EUA, as pods descartavel com sabores doces são populares: tarte de cereja, quiche de maçã, bolachas de gengibre, gelado de baunilha com morangos. Nos países da UE os pod descartavel aromatizados com fruta são mais frequentemente vendidos: manga suculenta, morango doce, melancia refrescante. Nos países asiáticos, os sabores do tabaco e os cigarros electrónicos que imitam os cocktails alcoólicos, por exemplo, Pina Colada, são mais populares.

6. A arte de soprar muito vapor pode fazer dinheiro. A arte de exalar muito vapor e de fazer anéis a partir dele chama-se "cludching". Há concursos regulares em círculos de vaping onde o vencedor pode ganhar até 2.000 euros.

7. A cigarros electrónicos remonta ao antigo Egipto. Isto é evidenciado pelas descobertas dos arqueólogos que falam da utilização de óleos e ervas que foram aquecidos sobre pedras aquecidas, formando assim vapor. As pessoas inalavam-no enquanto estavam dentro de casa.

8. A utilização de vape descartável não é fumar. Para uma pessoa de fora, não parece haver diferença nos processos de moldagem e tabagismo. No entanto, o que um cigarro electrónico reproduz é o vapor. O líquido no interior do vape é aquecido por um elemento de aquecimento formando um "fumo" denso e aromático que nada tem a ver com a queima de um cigarro de folha de tabaco.

9. É mais provável que os viciados em vaporizador descartável tenham mais de 30 anos de idade. Isto pode ser explicado pelo facto de que durante este período as pessoas começam a preocupar-se com a sua saúde, porque é difícil abandonar o hábito e é necessário encontrar opções mais benignas.
10. As pessoas com mais de 10 anos de experiência de tabagismo mudarão para os vape electrónicos. É bem possível que o sabor dos charutos normais esteja a irritar todos e que o corpo esteja a exigir novas sensações.

Mais informações no nosso sítio web https://vapepod.store/
RESALA SYSTEMS
Tags: programming, web3, watercooler, javascript
Published: 2023-04-13 13:42:49

RESALA SYSTEMS https://www.resalasystems.com/

It is a system for calculating calls, but it is dedicated to dealing in hotels, through which it is possible to access call reports with the possibility of linking to hotel systems and most of the transfer systems PBX Systems and it is one of the basics of hotel management systems
AWS CDK template validation during synthesis with Cloudformation Guard
Tags: cdk, aws, policymanagement, security
Published: 2023-04-13 13:22:14

`It takes about 5 minutes to integrate.`


Hey there! 👋

⚡️ CDK just [released](https://aws.amazon.com/about-aws/whats-new/2023/04/aws-cloud-development-kit-cdk-policies-validations/) a new killer feature that increases user experience for those ones who develop infrastructure in CDK. 💥


> Note: Keep in mind that you can use different plugins (such as OPA, Chekov, KICS, etc) instead of Cloudfromation Guard to validate your infrastructure with the feature.


## What is the benefit?
From what I see the biggest benefit of this feature is improved development flow of the CDK code. Being able to check your code on the fly against a ruleset of policies will warn you earlier which saves a lot of time and prevents accidental deployments of vulnerable infrastructure.

That being said do note this is an experimental feature in the CDK which comes with its own pros/cons.


## How to integrate the plugin into your project?

First thing first go to the terminal and add this [dependency](https://github.com/cdklabs/cdk-validator-cfnguard) to your project:

```bash
$ npm install @cdklabs/cdk-validator-cfnguard
```

The next step is to pass this into your `cdk.App` object
```typescript
const app = new cdk.App({
    policyValidationBeta1: [
        new CfnGuardValidator({
            rules: [
                "/workspace/aws-guard-rules-registry/rules/aws/amazon_s3/",
            ]
        })
    ]
});
```

All done 🍃 — Now you are ready to run use the plugin.

```bash
$ cdk synth                                                  
Performing Policy Validations

Validation Report
-----------------

Policy Validation Report Summary

╔════════════════════════╤═════════╗
║ Plugin                 │ Status  ║
╟────────────────────────┼─────────╢
║ cdk-validator-cfnguard │ success ║
╚════════════════════════╧═════════╝

Policy Validation Successful!
.....
```

## What if I'm new to Guard?
Well, it's totally fine. Guard is less known to the general public. I will not talk about Guard in this blog post, and it deserves a separate article to talk about the pros/cons.


I want to mention [repository](https://github.com/aws-cloudformation/aws-guard-rules-registry) created by AWS that didn't get a lot of attention. The repository contains a collection of rules written in Guard DSL, which covers 80% of use cases. If you're just starting off with your journey on increasing security posture definitely follow the link. 



## Wrapping Up
Looks like it is a good step forward to improve the framework. So go there and give it a try!


Thank you for your time! Stay awesome 🎃
Max

---
Links:
- https://github.com/cdklabs/cdk-validator-cfnguard
- https://github.com/aws/aws-cdk/blob/47468722786dd0faf7559dd0102687901814adbb/packages/%40aws-cdk/core/README.md#policy-validation
Facing issue with jest working with Node18 for react
Tags: react
Published: 2023-04-13 13:17:08

I am upgrading my code from node14 to node18 written for a react app. 
I tried mocking an api call and tried to mount it with Provider but the error comes that api call is undefined this results in error from my file. 
I get error like 

```
getData)(argument).then(res => {
                ^
TypeError: Cannot read properties of undefined (reading 'then')
```

Also after upgrading, jest is not able to find other test files.
A new App dedicated to couples
Published: 2023-04-13 13:16:58

**Melba ** is a French sexual wellness app that helps couples have a more fulfilling sex life and deepen their connection through playful experiences. We have introduced the first shareable audio guide to sex, a new exciting format accessible to everyone - partners are guided by voice instructions, step-by-step, through 20 minutes of pleasure. They can choose personalized content for their couple from a large catalog adapted to every fantasies and desires : explore new scripts, learn new ways of giving and receiving pleasure and reconnect with one another.

Audio episodes are written by erotic scriptwriters and validated by sex therapists. 

After testing the product in France with over 10,000 people, we are adapting the concept in English language, with a focus on US culture. 

**Download the App to discover Melba** : https://www.melba.app
How to do in-memory Caching using ReactJS
Tags: react, javascript
Published: 2023-04-13 13:12:59

In some cases where we don't require to call multiple API calls for the same result.

Using a Map object can be more efficient than using a plain object as a cache, especially when dealing with a large amount of data, as Map objects are optimized for handling key-value pairs. Additionally, using a hash map allows for faster lookup times than using an array or other data structures for caching.

In a real-world application, you may want to implement more advanced caching strategies or use a dedicated caching solution like Redis or Memcached.

But for the simple use case, we can use the in-memory cache mechanism.

Here is example

```
//using cahed object
import React, { useEffect, useState } from 'react';

const cache = {};

function App() {
  const [data, setData] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      const response = await fetch('https://example.com/api/data');
      const jsonData = await response.json();
      setData(jsonData);
    };

    // Check if the data is in the cache
    if (cache['cachedData']) {
      setData(cache['cachedData']);
    } else {
      fetchData();
    }
  }, []);

  useEffect(() => {
    // Store the data in the cache
    cache['cachedData'] = data;
  }, [data]);

  return (
    <div>
      {data ? (
        <ul>
          {data.map(item => (
            <li key={item.id}>{item.name}</li>
          ))}
        </ul>
      ) : (
        <p>Loading...</p>
      )}
    </div>
  );
}

export default App;
//using Map
import React, { useEffect, useState } from 'react';

const cache = new Map();

function App() {
  const [data, setData] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      const response = await fetch('https://example.com/api/data');
      const jsonData = await response.json();
      setData(jsonData);
    };

    // Check if the data is in the cache
    if (cache.has('cachedData')) {
      setData(cache.get('cachedData'));
    } else {
      fetchData();
    }
  }, []);

  useEffect(() => {
    // Store the data in the cache
    cache.set('cachedData', data);
  }, [data]);

  return (
    <div>
      {data ? (
        <ul>
          {data.map(item => (
            <li key={item.id}>{item.name}</li>
          ))}
        </ul>
      ) : (
        <p>Loading...</p>
      )}
    </div>
  );
}

export default App;

```
Ruby - With indifferent access
Tags: ruby, ror
Published: 2023-04-13 13:10:37


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

You know that when you deal with external APIs you may encounter anything, even the Frankenstein's monster as a response... (even when they tell you they will response only an inoffensive JSON)

I mean, in the response you could get a hash with some keys at different depths and perhaps in some cases you could have keys as strings or as symbols.


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

So you will be alternating among them in your code, something like


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

In other case, let's suppose you try access to the user name just using symbols or strings you will receive a nil response, let's check


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

Don't say I didn't tell you, we couldn't access the information, fortunately, here is when ".with_indifferent_access" method comes to the rescue!
It is a method of ActiveSupport::HashWithIndifferentAccess class.
And let's check how can we use it modifying the above example


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

Or you could just use it without dig


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

And that's all Ruby mates,
Thanks for reading!
The Fastest Time To Market For Your API
Tags: api, saas, showdev, programming
Published: 2023-04-13 13:10:01

Bringing a new API product to the market can be challenging in many ways.
One of the most time-consuming tasks in this process is implementing API monetization.

_User registration, authentication, subscription management, subscription plans, limit enforcement, premium features, usage metering, billing, invoicing, payment collection…_

In many cases it’s more effort than developing the API itself.

That's why we at [Project X](https://www.projectx.biz/) are determined to equip API providers with a solution that will save them an enormous amount of time.

Just imagine: you create an API and start selling it in a few minutes.

How quick could you validate new ideas? How soon would you be able to focus on hustling instead of spending time on developing secondary features?

What makes Project X stand out in a crowd of similar solutions like RapidAPI, APILayer, Blobr, OpenAPIHub, ByValue and others is its versatility.

While most of them allow you to implement the very basic "Pay per number of calls" pricing model, Project X gives you much more than that.

Combine several API into one product and sell it as a bundle, separate basic and premium endpoints, bill for a number characters in a request to Text-To-Speech API, impose hard and soft limits shared by many endpoints across several APIs, allow overages, offer pay per use model with usage cap, tiered and package pricing, define flexible rules of what is allowed in a certain product — all that is just a part of Project X offering.

And unlike other billing solutions, you don't have to write a single line of integration code.

Stripe, Chargebee, Moesif, Archetype — all these products require some effort to integrate with them.

Project X **does not**.

After setting up your API product with Project X you get a checkout link for that product and can use it anywhere: on your developer portal, landing page, Reddit, Indie Hackers.

When your potential customers click the link, they're immediately taken to the self-service checkout portal where they can subscribe, pay and start using your API products. In order to make the subscription process as smooth as possible, Project X offers a one-click login.

And it's **free** until you get paying customers.

Check out this [product pitch deck](https://docs.google.com/presentation/d/1emdhyXgURSGHqFEXaPys2dcX1r9AuhC-_tOEJlZILFI/edit?usp=sharing) to learn about Project X in detail.