teleren/devto huggingface dataset:
API de patentes de autos en Chile | Autente.io
Tags: spanish, webdev, api, node
Published: 2023-02-07 12:51:59

Hace unos días me encontraba buscando un API que me permitiera obtener datos de un auto por la patente (con información pública, claro) para poderlo integrar a la página web del emprendimiento que tenemos con mi hermano. Mala suerte la mía, no encontré nada.

Demás que debe haber algo, pensé. Busqué APIs, NPM, proyectos en github y nada. Así que me puse manos a la obra y estuve trabajando un par de días en desarrollar algo (básico pero funcional).

Servía, pero, demoraba algo así como 9 segundos en traerme los datos que necesitaba. Seguí con las manos en el código y logré hacer que se demorara entre 800ms a 2s. Como verás, en algunos casos, seguía demorando mucho pero, de momento, me sirve.


![Autente.io | Demo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9qyubx4ev506yydeetdf.png)

Ahora bien. Si me sirve a mí, ¿le servirá a alguien más?. Me puse a probar distintos servicios cloud para subir el proyecto. Así que, en una suerte de **beta**, liberé https://autente.io. Autente es una API que te permite obtener datos (públicos y no relacionados al dueño) de un auto o motocicleta por la patente. Trabajé algo así como 1 semana así que la estaré probando, pero, para probarla, necesito de vuestra ayuda.

Si bien el API como tal está funcionando, aún me falta hacer la documentación de los endpoints (sí, lo más importante jeje) pero en https://autente.io les dejo una sección con una demo de los datos que obtienen a ver si a alguien que tenga un emprendimiento automotriz, de seguros o quien necesite este tipo de datos le pueda servir y podamos colaborar.

FAQ:


1. ¿Tendrá costo? - De momento no, pero creo que sí. Algo mínimo, para poder costear los servicios Cloud.

2. ¿Tendrá soporte? - Pues sí. Imagino que si se paga por un servicio, el soporte es prácticamente obligatorio.

3. ¿Tendrá soporte para otros países? - Es algo a ver con el tiempo. Imagino que sí, creo que los procesos internos pueden ser similares. No lo tengo claro.

¡Gracias por leer! Responderé cualquier duda respecto a Autente.io en los comentarios :)
10 Questions to ask your unified API provider
Tags: saas, api, productivity
Published: 2023-02-16 14:47:36


 ![9 Questions to ask your unified API provider](https://truto.one/blog/content/images/2023/02/unified_API_provider_questions.png)

Integrations will form a core part of your product offering and its customer-facing. It's paramount that it just works 100% of the time. Use the questions below to make sure you don't end up firefighting one day.  

## Questions to ask your Unified API provider 

- What is your plan for the next 1,2 and 3 years?

Look for stability and clarity in thinking.

- What is your product roadmap? 

Look for features that will add value as time goes by. You don't want to use many SaaS products to get integrations done.

- What's their plan for adding to their integrations catalogue? 

Look for steady building activity on integrations. Make sure they will continue to support newer integrations. Better yet, ask them for custom integrations.

- Who are your current customers?

Look for big well-known names here.

- What is your tech stack?

Identify any gaps and make sure the tech stack is built for scale.

- What happens if you choose to shut down the company? 

Look for open-source solutions or solutions which have open-source elements in them. There are other solutions to alleviate this fear as well such as sharing the code base and self-hosted solutions.

- Is a price increase on the horizon? 

Since will be a fundamental part of your product offering, you want to make sure it doesn't become a burden later on. Make sure you have a long-term contract or a commitment to pricing caps.

- Do you do multi-year contracts? 

Any vendor will appreciate it when you ask them this question. The benefit you want to look for here for your team is a good price and/or services geared for you.

- Will there be any issues when we scale?  

This will bring out any gaps in the tech stack that may have been missed earlier.

- How can we switch to another vendor? 

If you are speaking with the right vendor, they will love this question and happily suggest how best to prepare for this event. Solutions you want to look for - help with migration, architecture design, and switching timelines.

>Build +200 native integrations

>Using Truto's Unified API for CRM, Unified API for ATS, Unified API for HRIS, Unified API for Accounting, and 26 other categories
[Get started free](https://truto.one/?ref=devto)
Cyclope - connect your bike for the ultimate cycling information and experience.
Tags: bike, app, sport, cycling
Published: 2023-02-08 11:24:18


[Cyclope](https://www.cyclope.dev/) is a comprehensive bike application designed to provide cyclists with maximum information and connect their bikes.

It features GPS navigation, 3D map display, live communication with other cyclists through a built-in walkie-talkie and messaging system, weather information, performance recording, 3D video replay of rides, social sharing, and various competition modes such as the World Cycling Championship.

It also includes bike tracking, fall detector, compass, customizable horn, and other classic and advanced functions such as speedometer, distance traveled, altitude measurement, inclinometer...

Android app on Play Store.
https://play.google.com/store/apps/details?id=com.Illusion.Cyclope

https://play-lh.googleusercontent.com/R3JdebhuEHux0LrIzApQ-Vih8VO9MZ7JAKvZs7UK5PgBoTAjrYEjdxDZBvgbXK7DPmdB=w2560-h1440-rw

https://play-lh.googleusercontent.com/SBLMjsDHGkPVJ7Qb66nljh1V7lHkeQQRePe9hf3ncYO7tqC4SCmEWwiHlIfZ7-o_bA=w2560-h1440-rw

https://play-lh.googleusercontent.com/_L4jvdbOhShRGOOCVnYjJgJYPQYIP4W0ns3QzIYzdl84yDnU4NsSKTHwu9T6USIMe9s=w2560-h1440-rw
Improve Your Dev Productivity with Bookmarks, Snippets and Notes Management
Tags: productivity, tooling, bookmarking, codever
Published: 2023-02-08 12:27:47

As a software developer, having quick access to relevant information and resources is essential to your productivity and success. Bookmarks, snippets and notes are an important tool in achieving this, allowing you to save links to websites, articles, documentation, as well as code snippets and notes. However, with so many bookmarks and snippets, it can be challenging to find what you need quickly.

Here are some tips for using bookmark and snippet management to improve your productivity as a software developer:

1. **Use tags to categorize your bookmarks and snippets** instead of organizing your bookmarks and snippets into folders, consider using tags to categorize them. This way, you can quickly filter and search for bookmarks and snippets based on their tag, making it easier to find what you're looking for. For example, you could use tags such as "javascript," "api", "tutorial" or "your-company-name".

2. **Keep your bookmarks and snippets up-to-date** In the world of software development, information can become outdated quickly. Regularly review your bookmarks and snippets and delete any that are no longer relevant or useful. This will ensure that you have quick access to only the most accurate and up-to-date information.

3. **Use browser & IDE extensions for better bookmark and snippet management**. There are several browser extensions available that can help you manage your bookmarks and snippets more efficiently. These extensions often come with features such as tag-based organization, search functionality, and the ability to find bookmarks and snippets across devices. Consider using one of these extensions to improve your bookmark and snippet management.

4. **Take advantage of the cloud**. Storing your bookmarks and snippets in the cloud can allow you to access them from any device, regardless of where you are. This is particularly useful for developers who work on multiple devices, as it ensures that they always have access to their most important information and resources.

5. **Use markdown for notes and snippets.** Using markdown to write your notes and snippets can provide a more organized and readable format. Markdown allows you to format your text using simple syntax, making it easier to quickly read and understand your notes and snippets.

In conclusion, by using tags to categorize your bookmarks and snippets, keeping them up-to-date, utilizing browser extensions, taking advantage of the cloud, and using **markdown** for notes and snippets, you can improve your productivity as a software developer. Quick access to relevant information and resources, as well as organized and easily readable notes and snippets, can help you make the most of your time and stay ahead of the game.

[Codever](https://www.codever.dev) offers all this and more, plus it's free and open source at [github.com/CodeverDotDev](https://github.com/CodeverDotDev)
TypeScript: Interface or Type? Hint: it's in the name
Tags: typescript, node, react, webdev
Published: 2023-02-08 15:03:07

> It's called **Type**Script not _InterfaceScript_

If you're a purist like I am, you know the debate between 'interface vs. type' can be frustrating. Why is there no official stance on this issue?

I've been using Ts since 2015 and I've been through different phases. 

First, I encouraged using interfaces instead of types (unless an [Union/Intersection](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html?ref=hackernoon.com) was needed); 

...then I reached the stable plateau of _"whichever you prefer, it doesn't matter"_ 😄.

**Till now.**

For some time I've been using the type **"Any key-value object"** a.k.a `Record<string, unknown>`

If you type something as any key-value object;

```ts
function foo(data: Record<string, unknown>) {
  for (const [key, value] of Object.entries(data)) {
    // ...
  }
}
```

You might reach a dead end if you use `interface`:

```ts
interface Profile {
  name: string;
}

function getProfile(): Profile {
  /* fetch data */
  return Promise.resolve({ name: 'jane' });
}

...
const profile = await getProfile()
foo(profile); // ERROR ❌
// Argument of type 'Profile' is not assignable to parameter of type 
// 'Record<string, unknown>'.
//  Index signature for type 'string' is missing in type 
// 'Profile'.ts(2345)
```

Our interface `{ name: string }` does NOT fulfill `Record<string, unknown>`. 

I _respectful disagree?_ with typescript here 🤓

***

Now, let's change the thing to `type` instead:

```ts
function foo(data: Record<string, unknown>) {
  for (const [key, value] of Object.entries(data)) {
    // ...
  }
}

type Profile = {
  name: string;
};

function getProfile(): Profile {
  /* fetch data */
  return Promise.resolve({ name: 'jane' });
}

...
const profile = await getProfile()
foo(profile); // ✅ nice
```

👉 The type `{ name: string }` **does** fulfill `Record<string, unknown>`

***

This type of situation isn't specific to `Record<string, unknown>`' but I don't want to research which [Advanced types](https://www.typescriptlang.org/docs/handbook/advanced-types.html) will work and which won't. So, **I've turned to using types -almost- exclusively**."

***

I was shocked to find out that [Matt Pocock](https://twitter.com/mattpocockuk) also **went through the same three phases!**.

If you haven't heard of Matt, I highly recommend checking him out. He creates high-quality TypeScript content on Youtube (and is a nice guy on Twitter 🦜).

{% embed https://www.youtube.com/watch?v=zM9UPcIyyhQ %}

***

**TL;DR**: prefer types to interfaces, people on the internet defend types.
AI Adaptable Resumes
Tags: ai, discuss
Published: 2023-02-08 19:59:52

I’m thinking about an idea that's stuck in my head, something I really want to build, the brand, the product all of it!

## The pitch
> "Discover the power of personalized resumes with NAME - the innovative platform that uses cutting-edge AI technology to create customized and adaptable resumes. No more generic, one-size-fits-all CVs - with NAME, you can showcase your skills and experience in the most effective and impactful way, giving you the best chance of landing your dream job. Say goodbye to ordinary resumes and hello to a world of opportunity with NAME"

I have a name idea too.

So what do you think - could it be a viable product?
Go and Fiber GET always get invoked first?
Tags: go, fiber, get
Published: 2023-02-08 20:57:29

Hello.  I am a newbie when it comes to GO and web development so let me start by apologizing for asking stupid questions. 

I am trying to teach myself GO using the Fiber framework along with PostgreSQL.  I came across a post that showed me a simple example of using GO with PostgreSQL.  Here's post that I found https://blog.logrocket.com/building-simple-app-go-postgresql/ .  I am trying to follow the steps outlined in the post and working through it step by step but came across a situation where I'm a bit puzzled.  It would appear that "app.Get" in the post always gets invoked first.  It does not matter if the app.Post is written before app.Get, the handler attached to the app.Get is always invoked first.  I was wondering why that is?  Is there something in the code that is causing that to happen? I'm sure there is a very simple explanation for this but I just can't see it.  Again, sorry for the stupid questions.

Thank you in advance for your help.

Here's the code I've have taken from the post. When I run this, the output always displays the handler attached to the app.Get.

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/gofiber/fiber/v2"
)

func indexHandler(c *fiber.Ctx) error {
	return c.SendString("Hello Index")
}

func postHandler(c *fiber.Ctx) error {
	return c.SendString("Hello Post")
}

func putHandler(c *fiber.Ctx) error {
	return c.SendString("Hello Put")
}

func deleteHandler(c *fiber.Ctx) error {
	return c.SendString("Hello Delete")
}

func main() {
	app := fiber.New()

	app.Get("/", indexHandler) // Add this

	app.Post("/", postHandler) // Add this

	app.Put("/update", putHandler) // Add this

	app.Delete("/delete", deleteHandler) // Add this

	port := os.Getenv("PORT")
	if port == "" {
		port = "3030"
	}
	log.Fatalln(app.Listen(fmt.Sprintf(":%v", port)))
}
Responsive Sidebar Menu in HTML CSS & JavaScript | Dark/Light Mode #html #css #javascript #sidebar
Published: 2023-02-08 21:44:31

A responsive sidebar menu is a navigation component that is displayed on the side of a web page and helps users access different sections of a website. In this article, we will discuss what a responsive sidebar menu is and how it can benefit a website.

What is a Responsive Sidebar Menu?

A responsive sidebar menu is a menu that is displayed on the side of a web page and can be expanded and collapsed on different devices. The menu adjusts its size and appearance based on the size of the device's screen, making it easily accessible on both desktop and mobile devices.

Benefits of a Responsive Sidebar Menu

Improved User Experience: A responsive sidebar menu provides a better user experience by making it easy for users to access different sections of a website. The menu is easily accessible and provides quick access to different parts of the website, improving navigation and making it easier for users to find what they are looking for.

Increased Engagement: A well-designed and functional sidebar menu can improve user engagement by making it easier for users to find and access the content they are interested in. This can lead to increased page views, longer session times, and a higher rate of user satisfaction.

Better Branding: A responsive sidebar menu can contribute to the overall branding of a website. A professional and user-friendly design can help build trust and credibility with users, making them more likely to return to the site.

Improved Accessibility: A responsive sidebar menu can improve accessibility by making it easier for users with disabilities to navigate the site. The menu adjusts its size and appearance based on the size of the device's screen, making it easier for users to access and interact with the content.

In conclusion, a responsive sidebar menu is an important component of a website that can provide many benefits, including improved user experience, increased engagement, better branding, and improved accessibility. Implementing a responsive sidebar menu can help ensure that your website is accessible and usable on a wide range of devices and screen sizes.

This is The Link My Channel To Know How To Create A Responsive SideBar Menu : 
https://youtu.be/QQni50OBNpU


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ogot5gj0sn0oadq2lg9.jpg)
Python's variable scope that every beginner needs to know to progress
Tags: python, programming, beginners, tutorial
Published: 2023-02-08 22:08:02


Starting out as a newbie in programming learning python, variable scope seemed to be the trickiest of them bunch at the time, but are probably the simplest and easiest concept to get

Hence it is essential to understand the levels of scope in python and how things can be accessed from all the different scopes. 

Well, lets just jump right into it. Scope refers to the area of the program where a variable or function is accessible, let's try this analogy here by going back to when you were 10 years of age, imagine you and your friends are playing with some toys in the room and Each of you has a box with your own toys, and you can only use the toys in your own box. That's like a scope in programming generally, 

In python there are different types of scopes,  Each scope is like a box or container with its own variables and rules. Variables and functions defined in one scope can only be used within that particular scope, and not in other scopes. This helps keep the code organized and prevents mistakes. There are generally 4 types of scopes in python:

- **Local scope**: They refer to the variable declared in the function alone. In the below code the **var** variable is only accessible to the code within the **main_function** function. Anything outside of this function will not be accessible.

```
def main_function():
    var = 1
    print(var) # prints the value 1
    
main_function() # Returns the value of function main which is 1
print(var) # Returns an error because it is outside the function
```

- **Enclosed scope**: Refers to the variables and functions that are defined within a function that is inside another function. In the code below, I added a nested function called **inner_function** to the **outer_function** function. 

As **inner_function** is inside the scope for the **outer_function** function it can then access the variable. However, the enclosed variable inside the **inner_function** function cannot be accessed from inside the **outer_function** function.

```
def outer_function(x):
    #enclosed variable declared inside a function
    y = 10
    def inner_function(z):
        return x + y + z
    return inner_function

result = outer_function(5)
print(result(6))
```

- **Global scope**: Its when a variable is declared outside of a function. This means it can be accessed from anywhere. 

In the code below, 

```
x = 10 # x is a global variable

def multiply_by_2():
    return x * 2

print(multiply_by_2()) # Output: 20
```
In this example, the variable x is defined in the global scope and can be accessed from within the function multiply_by_2(). The function returns x * 2, which is 20 in this case.

- **Built-in scope**: Refers to the reserved keywords that Python uses for its built-in functions, also defined in the core Python language and are available for use without importing any module or library, such as `print, def, for, in,` and so forth.  Functions with built-in scope can be accessed at any level within the code.
[WATCH] A Smart Home Concept created with skills you already know
Tags: javascript, vue, raspberrypi, node
Published: 2023-02-09 01:48:21

The great thing about design systems is the limitless possibilities on where and how it can be applied with skills developer already know or skills that are quick and easy to learn.

[Smart Home Concept](https://youtu.be/bisthKoiwDY)
Create a search domain in Amazon CloudSearch, upload a sample data and test the application
Tags: aws, cloud, awscommunity, 100daysofcloud
Published: 2023-02-09 10:52:08

[40/100] #100DaysOfCloud Today, I Created a search domain with indexes of a movie list and then uploaded the movie list so that we can search the data from the list.

Amazon CloudSearch is a managed service in the AWS Cloud that makes it simple and cost-effective to set up, manage, and scale a search solution for your website or application.
Amazon CloudSearch supports 34 languages and popular search features such as highlighting, autocomplete, and geospatial search.

With Amazon CloudSearch, you can quickly add rich search capabilities to your website or application. You don't need to become a search expert or worry about hardware provisioning, setup, and maintenance. With a few clicks in the AWS Management Console, you can create a search domain and upload the data that you want to make searchable, and Amazon CloudSearch will automatically provision the required resources and deploy a highly tuned search index.

You can easily change your search parameters, fine tune search relevance, and apply new settings at any time. As your volume of data and traffic fluctuates, Amazon CloudSearch seamlessly scales to meet your needs.

You can try do it by yourself by following the steps from the link below: [GitHub](https://github.com/aaditunni/100DaysOfCloud/blob/main/Journey/040/Readme.md)
Copy Files Compressed with Tar via ssh from and to a Linux Server
Tags: linux, ssh, tar, scp
Published: 2023-02-09 12:38:27

Copying files from a development machine or a server to another one may take up a lot of time, resources and traffic which dependent on the task may be more or less a problem. There are common Linux/Unix tools like scp and rsync to do the job, but they may be a wrong choice dependent on the task like:

- copy a lot of small files (like node_modules)
are big like text files or images in uncompressed formats like BMP or TIFF
- have special attributes set, which you want to transport over the wire (like permissions or user/group IDs set)
- files with encoding in names, which should be just transferred with errors

## The most common Solution in both Directions

These are the most common combination to copy files using tar to compress and ssh for transport (using pipes) which may be suitable for most solutions.

Copy the folder data/ from current machine (development machine or current server) to remote server or system to folder /opt. The sever must support ssh and have tar installed, which is common for most Linux/Unix systems.

```
tar czf - data/ | ssh user@remoteserver "cd /opt && tar -xvzf - "
```

Copy the folder data/ in /opt to current machine (development machine or current server) from remote server or system. The server must support ssh and have tar installed, which is common for most Linux/Unix systems.

```
ssh user@remoteserver "cd /opt && tar -cfz data/" | tar xfzv
```

## Deeper understanding

If you want to get a deeper understanding what all the parameters do, where to use them and which one you may need for which task, check the full article on my site: [qameta.com](https://qameta.com/posts/copy-files-compressed-with-tar-via-ssh-to-a-linux-server/).
Hey Developers, on-site jobs are also good :P
Tags: frontend, ios, android
Published: 2023-02-10 07:22:18

I am a technical recruiter & the more I am trying to convince Developers for on-site jobs they are like WHAT IS THAT !!! Yes I know remote & freelancing jobs are now available for creative guys & developers but you guys should not turn down our offer for on-site please !! We are trying hard to give you an office environment where can be as comfortable as you feel at your home :)

Right now I am hiring Front-end, Java, Android & iOS Developers (for an Instant Messaging App) for an on-site job in Philippines. If anyone wants to try this opportunity please knock me.

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