teleren/devto huggingface dataset:
What is Instant Messaging Freedom?
Tags: opensource, repost, history
Published: 2023-06-09 14:00:00

> This article was originally posted on [Patreon](https://www.patreon.com/posts/what-is-instant-80279019) and has been brought over here to get all of the [Pidgin](https://pidgin.im) Development/History posts into one single place.

Keen observers may have noticed that most of our development services like code hosting, issues, code review, and so are all on `.imfreedom.org` domains and might have wondered why. Today we're going to tackle that topic.

In short, [Instant Messaging Freedom](https://imfreedom.org/) or imfreedom as we often call it, is a non-profit organization whose primary purpose is to represent the best interests of libpurple, Pidgin, Finch, and Adium. What this means is that imfreedom acts as a legal identity for these projects which can represent these projects in legal matters as well as  accept tax free donations due to its non-profit status.

imfreedom grew out of a [trademark dispute](https://en.wikipedia.org/wiki/Pidgin_(software)#Naming_dispute) with America Online while the project was still named Gaim. AOL had tried to defend their trademark against us a few times before hand by targeting the lead developers. This was usually made moot, because the lead developers would eventually retire. Due to this, they were no longer responsible for the project which would cause the lawsuit to have to be dropped. **THIS IS NOT LEGAL ADVICE**.

However, when they came after Sean Egan, he reached out to the rest of the team and we decided to settle, change the name, and create the non-profit so that it could be targeted in legal disputes rather than the lead developers. We also wanted to have some cash on hand for things like legal council as well as handling payments for the projects like domains and so on.

While imfreedom had quite a bit of momentum behind it in 2007, just like Pidgin, interest in it dwindled over time. To the point where we even lost our non-profit status for failing to refile properly. Fortunately those days are more or less behind us now, but the organization never really grew past just libpurple, Finch, Pidgin, and Adium. This is why we've been trying to get the Instant Messaging Freedom name out there, to try and diversify past the libpurple projects.

imfreedom does have a yearly board meeting which is held privately, but minutes and recordings can be found on [imfreedom.org](https://imfreedom.org/). Aside from that imfreedom doesn't do a whole lot. We don't really have the time or money to do much more at the moment which is unfortunate. Hopefully with Pidgin 3's imminent release we can drum up some more interest!

I hope you're enjoying these posts! Remember they go live for patrons at 9AM CST on Mondays and go public at 12AM CST on Thursdays! If you'd like to support my work, you can join find a list of ways to do so [here](https://imfreedom.org/donate/#gary-kramlich).
El mundo es un caos (breve recordatorio)
Tags: javascript, microsoft, graph, spanish
Published: 2023-06-09 13:48:48

El mundo es un caos y aunque de pequeños no lo veamos así, con el tiempo uno se da cuenta de muchas cosas, por ejemplo que los papás tampoco saben muy bien lo que hacen, o que nuestros maestros también tienen sentimientos y si lloraron en clase probablemente la estaban pasando mal, pero sobre todo, que el código no va a correr a la primera.

😕 😕 😕

Durante las dos semanas anteriores estuve ~~trabajando~~ ... sobre trabajando con un script para hacer un backup de los archivos en las cuentas de OneDrive, la razón probablemente se las cuente en un futuro más lejano. 

El punto es que después de 1 semana para mi ya estaba listo: solo había que extraer los archivos de la cuenta que iniciaría sesión por medio de _OAUTH_ al _Microsoft Graph API_, sin embargo, las cosas no siempre son como uno las planea. Resultó que también tendría que obtener los archivos que se le compartieron al dueño de la cuenta (cosa que cuestioné durante la primer semana y se me había negado la necesidad de dicho requeriemiento).

Ahora, no quiero ser el buzón público de quejas por malas planeaciones, así que, antes que nada, les dejo el proyecto por si lo ocupan en algún punto o quieren tener una referencia: https://gitlab.com/opensource13/odbu

Continuando con la historia, el segundo problema al que me enfrenté fué que hice el desarrollo y las pruebas con una cuenta que tenía relativamente pocos documentos y, apesar de de que se pensé en concurrencia desde el inicio, dejé de lado el hecho de que las ligas de descarga que provee el api para un archivo, contienen un jwt que obviamente tiene una fecha de expiración.

Evidentemente, eso no afecta cuando la descarga se hace en unos minutos, sin embargo, la descarga real sería de varias horas o incluso días.

Creo que en situaciones así es cuando el programador le agradece a su yo del pasado por haber construido siguiendo patrones de diseño, ya que al tener una idea más clara de la responsabilidad que hace cada módulo o parte del código, estos cambios no tienen un impacto tan fuerte en tiempos y esfuerzo.

En los aprendizajes personales que me dejó la quincena pasada podría resumir:
- Definir desde un inicio cuál es el objetivo de cada módulo en tu proyecto.
- Considerar la expiración en los tokens para el api.
- Escuchar un poco más a mi intuición y voz interna en base a mi experiencia.

En fin, hasta aquí el relato de hoy. Si llegaste hasta acá espero que te sirva de algo mi experiencia y si te es útil el cliente, sientete libre de usarlo a tu convenviencia.

Obviamente y si está en mis posibilidades, también estoy abierto a ayudarte a resolver dudas.

_Salu2._
How To Earn Money From ChatGPT
Tags: chatgpt, earning, money
Published: 2023-06-09 13:45:48

One of the easiest ways to earn money on ChatGPT is by participating in surveys and polls. Many companies and businesses use ChatGPT to conduct market research and gather feedback from their customers. By participating in these surveys and polls, you can earn money while providing valuable insights to these companies. The amount you can earn for each survey or poll varies, but they typically pay anywhere from a few cents to a few dollars.

To participate in surveys and polls on [ChatGPT](https://www.regularupdates.tech/2023/06/how-to-earn-money-from-chatgpt.html), simply log in to your account and navigate to the "Earn" section. From there, you can browse available surveys and polls and choose the ones you want to participate in. Be sure to read the instructions carefully and provide accurate and honest feedback to ensure that you earn the maximum amount possible. [How To Earn Money](https://www.regularupdates.tech/2023/06/how-to-earn-money-from-chatgpt.html)
Code Challenge: Check Permutation - Java edition
Tags: java, algorithms, codenewbie, programming
Published: 2023-06-09 13:38:07

Today's problem is a fun one. 

## Problem
Given two strings, write a method to decide if one is a permutation of the other. 

## Solution 1
Clarifying questions are: Does white space count? Is the comparison case sensitive? Is the string in ASCI (I explain ASCI in this [post](https://dev.to/phouchens/check-if-all-characters-in-a-string-are-unique-java-edition-o15))? Once you have determined these answers, you can move on to solve the problem.

If the two strings are permutations we know they should have the same length. So one of the first things we can do is check if the strings are different lengths. We also know that permutations are the same characters but in a different order. If we sort the strings, we can simply compare the two strings.

```java
// Sort the string
public static String sort(String a) {
    char[] c = a.toCharArray();
    Arrays.sort(c);
    return new String(c);
}

public static boolean checkPermutation(String a, String b) {
    // permutations should be equal length
    if (a.length() != b.length() ) {
       return false;
     }
     
     return sort(a).equals(sort(b));
}
```

This solution is clean and readable and easy to understand. The Time Complexity is **_O(nlogn)_** since Java's [Arrays.sort](https://www.gregorygaines.com/blog/what-is-the-time-complexity-arrays-and-collections-sort/) uses a [Quicksort](https://big-o.io/algorithms/comparison/quicksort/) when sorting primitives. 

## Solution 2
This solution is faster but less clear. We use an array data structure to store counts of all possible characters (assuming ASCI). We loop through the first string to load the counts of the numbers, then loop through the second string to decrement the counts of each character. We know that if that count falls below zero, a character doesn't match.

```Java
public static boolean checkPermutations(String a, String b) {
	if (a.length() != b.length()) {
		return false;
	}

	int[] letters = new int[128]; // assuming ASCI
	for (int i = 0; i < a.length(); i++){
		// for each position of ASCI length(128) keep a count of the characters.
		letters[a.charAt(i)]++;
	}
	for (int i = 0; i < b.length(); i++) {
		// find the position in our ASCI array and subtract 1
		letters[b.charAt(i)]--;
		// if it's less than zero, we can return false
		if (letters[b.charAt(i)] < 0) {
		    return false;
		}
	}
	return true;
}
```
The above solution has a faster time of **_O(n)_**. 

If you know of some other clever ways to solve this problem, post in the comments and let me know.

_Photo by Ann H: https://www.pexels.com/photo/yellow-jigsaw-puzzle-piece-3482442/_
Quantum Computing
Published: 2023-06-09 13:34:01

## Understanding Quantum Computing:
Quantum computing harnesses the principles of quantum mechanics to perform computations. Unlike classical computing that relies on bits representing either 0 or 1, quantum computing utilizes quantum bits, or qubits, which can exist in a superposition of states. This unique characteristic allows quantum computers to perform complex calculations exponentially faster than their classical counterparts.

## Quantum Computing Building Blocks:
To comprehend the underlying elements of quantum computing, it's crucial to understand qubits, quantum gates, and quantum entanglement. Qubits are the basic units of quantum information, quantum gates manipulate the qubits' state, and entanglement allows for correlations between qubits, enabling powerful computational operations.

## Potential Applications of Quantum Computing:
While still in its early stages, quantum computing has the potential to revolutionize various fields. Areas such as cryptography, optimization, drug discovery, materials science, and artificial intelligence could greatly benefit from the computational power and problem-solving capabilities offered by quantum computers. However, it's important to note that practical quantum applications are still being explored and developed.

## The Current Landscape and Challenges:
Quantum computing is an active area of research, with both academic institutions and industry leaders investing heavily in its advancement. Companies like IBM, Google, and Microsoft are developing quantum computers and offering access to cloud-based quantum platforms. However, quantum computing faces challenges such as qubit stability, error correction, and scalability, which need to be addressed to realize its full potentia
Estructura de carpetas visual Google Drive
Tags: googleappsscript, proposals, folders, treeview
Published: 2023-06-09 13:21:07

---
title: Estructura de carpetas visual Google Drive
published: true
description: Expongo algunas opciones para visualizar mas facilmente nuestros archivos en la nube de Google Drive.
tags: GoogleAppsScript, Proposals, Folders, TreeView
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-06-09 13:08 +0000
---

## Objetivo

Una de las mejores maneras para entender algun tipo de estructura organizativa, corresponde a los graficos. A dia de hoy Google Drive no cuenta con las herramientas para visualizar graficamente una estructura de carpetas. En sistemas unix existe el comando `tree`el cual nos permite mostrar de manera gráfica y de forma estructurada la jerarquía de los directorios de nuestro sistema operativo.

Y como logramos tener esta estructura visual en Google Drive?

## Avances encontrados

Actualmente se tienen algunas iniciativas las cuales utilizan Google Apps Script para generar un Tree View.

- https://tecnologia.facilisimo.com/crear-un-tree-view-de-google-drive-para-ver-archivos-facilmente_1262031.html
- https://stackoverflow.com/questions/56400923/trying-to-create-tree-view-of-google-drive-folders
- https://www.labnol.org/internet/google-drive-tree/21198/

## Posible mejora

Se sugiere utilizar la tecnolog[ia de [Mermaid](https://mermaid.js.org/) para generar graficos en MarkDown a traves de la estructura generada por el Script de Google y obtener una representaci[on visual de la estructura de carpetas.

```mermaid
flowchart LR
    A[Hard edge] -->|Link text| B(Round edge)
    B --> C{Decision}
    C -->|One| D[Result one]
    C -->|Two| E[Result two]
```

En Notion se veria algo asi 

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


## Otra opci[on mas avanzada

Se podr[ia utilizar la API de https://app.diagrams.net/ para crear un grafico que incluya los enlaces a cada uno de las carpetas y podamos navegar de manera m[as rapida.

Si bien diagrams no tiene API si puede usar una herramienta para manipular los diagramas de [diagrams.net](http://diagrams.net) https://stackoverflow.com/questions/70543817/is-there-draw-io-api-to-manipulate-diagrams


## Solución definitiva 
Rclone nos proporciona el comando Tree

```bash
$ rclone tree remote:path
/
├── file1
├── file2
├── file3
└── subdir
    ├── file4
    └── file5

1 directories, 5 files
```
Crimes usando IA avançam no mundo. Saiba como se proteger — Entrevista com Bendev Junior
Tags: ai, podcast, bendevjunior, techtalks
Published: 2023-06-09 12:57:24

Olá, pessoal! Tenho uma novidade empolgante para compartilhar com todos vocês. Fui recentemente convidado para participar do renomado podcast do Canaltech, onde discuti um tema de extrema relevância: “Crimes usando IA avançam no mundo. Saiba como se proteger”. É uma honra ter tido essa oportunidade de compartilhar meu conhecimento sobre inteligência artificial e oferecer insights valiosos para a comunidade.

Como muitos de vocês já sabem, sou [Bendev Junior](https://bendevoficial.com), um entusiasta de tecnologia, programador e apaixonado por inteligência artificial. Desde sempre, acreditei que a programação e a internet iriam além da web, e é por isso que tenho me dedicado a estudar e aperfeiçoar minhas habilidades nesse campo fascinante.

Durante a entrevista no podcast do Canaltech, tive a oportunidade de abordar os avanços da inteligência artificial e, infelizmente, também os crimes que estão surgindo como consequência desse progresso. Discutimos os desafios e as medidas de segurança necessárias para nos proteger nesse cenário em constante evolução.

Aproveito esta oportunidade para compartilhar com vocês o link do episódio completo, que já está disponível para audição. [Clique aqui para ouvir](https://canaltech.com.br/podcast/podcast-canaltech/crimes-usando-ia-avancam-no-mundo-saiba-como-se-proteger-4552/): Crimes usando IA avançam no mundo. Saiba como se proteger. Tenho certeza de que vocês encontrarão insights valiosos e dicas essenciais para se protegerem nesse ambiente tecnológico em constante transformação.

Além disso, quero compartilhar que estou desenvolvendo projetos públicos relacionados à inteligência artificial. Fiquem atentos às minhas redes sociais, pois estarei divulgando mais informações sobre esses projetos em breve. Mal posso esperar para mostrar a vocês as maravilhas que a inteligência artificial pode oferecer!

Agradeço ao Canaltech pela oportunidade de participar desse projeto e por seu compromisso em fornecer informações de qualidade sobre tecnologia para o público. É uma satisfação fazer parte dessa iniciativa e poder compartilhar meu conhecimento com uma audiência tão engajada e interessada.

Se você é apaixonado por inteligência artificial, automação robótica ou está simplesmente interessado em se manter atualizado sobre as últimas tendências tecnológicas, não deixe de conferir o podcast do Canaltech com a minha participação. Tenho certeza de que será uma experiência enriquecedora!

Agradeço a todos pelo apoio contínuo e pela oportunidade de compartilhar minha paixão por tecnologia com vocês. Juntos, podemos explorar e aproveitar ao máximo as maravilhas que a inteligência artificial tem a oferecer!
Here we go again - the JSGameDev Summit will be held on September 28-29, 2023
Tags: javascript, gamedev, webdev, programming
Published: 2023-06-09 12:46:38

_See the latest updates from graphics engine crews, game dev case studies, best practices etc._

We've added a lot of **new & interesting topics**, such as WebGL, WebGPU, Canvas, Graphics Engines, Performance, Multiplayer Gaming, Best Practices & Know Hows, Games Marketing, Game Design, VR / AR. 

**Check out JSGameDev Summit website:** https://jsgamedev.com/
**Submit a talk:** https://shorturl.at/afm01
Creating a Hello World in Go with Zed 🙋‍♂️🌎
Tags: go, beginners, tutorial, programming
Published: 2023-06-09 12:28:33

[Zed ](https://zed.dev/) is a high-performance code editor (IDE) 🚀 developed by the creators of Atom and Tree-sitter.

It is currently available in beta and is exclusive to Mac users 🍎.

📌This tutorial considers that you already have Go configured on your machine, if you don't already have it, do it right now: [Installing Go](https://go.dev/doc/install).

To create a Hello World in Go just follow the steps below:

1. Create a file called `main.go`, then put the code below in it:

```go
package main

import "fmt"

func main() {
	fmt.Println("Hello, world!")
}
```

2. Open the terminal and execute the `go run main.go` command as shown in the image below:


![Hello world in terminal](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uf4072qodmq4fzr13vw8.png)

...And a new Hello world has just been born 🥳🎉.

Although Zed is still in a beta version, it already has several cool features, such as collaboration with your team in integration with GitHub and others…

Cover image made with Canva.
The Benefits of Choosing Magento for Your Online Business
Published: 2023-06-09 12:28:10

When it comes to building a successful online business, choosing the right e-commerce platform is crucial. Magento, with its robust features and flexibility, has emerged as a popular choice among entrepreneurs. In this blog post, we will explore the numerous benefits of selecting Magento for your online business. 

Additionally, we'll highlight the importance of Hiring Magento developers and utilizing **[Magento development services](https://www.webcluesinfotech.com/magento-development-services)** to maximize your e-commerce potential.

**1. Extensive Customization Options:**
Magento offers a wide range of customization options, allowing you to tailor your online store to align with your brand's unique identity. With the expertise of Magento developers, you can create a visually appealing and user-friendly website that captures the attention of your target audience.

**2. Scalability and Flexibility:**
As your business grows, so do your website's requirements. Magento is designed to handle high levels of traffic and can effortlessly accommodate expanding product catalogs. Hiring Magento developers ensures that your website can scale seamlessly and adapt to changing business needs.

**3. Rich Features and Functionality:**
Magento boasts a comprehensive set of features that empower your online business. From advanced search options and inventory management to secure payment gateways and mobile responsiveness, Magento has it all. By leveraging Magento development services, you can unlock the full potential of these features and provide an exceptional user experience.

**4. SEO-Friendly Structure:**
Having a well-optimized website is vital for attracting organic traffic. Magento's architecture is inherently search engine friendly, making it easier for your online store to rank higher in search engine results. Expert Magento developers can optimize your website further, ensuring that your business gains maximum visibility.

**5. Seamless Integration:**
Integrating third-party extensions and tools is crucial for enhancing your e-commerce store's functionality. Magento offers seamless integration with various payment gateways, shipping providers, analytics tools, and more. With the expertise of Magento developers, you can seamlessly integrate these services, providing a smooth and streamlined shopping experience for your customers.

**Conclusion:**
Choosing Magento for your online business can bring a multitude of benefits, from extensive customization options and scalability to rich features and SEO-friendliness. To unlock the full potential of Magento, it is essential to **[hire Magento developers](https://www.webcluesinfotech.com/magento-development-services)** and leverage Magento development services. By doing so, you can ensure that your online business stands out in the competitive e-commerce landscape and provides an exceptional user experience for your customers. Invest in Magento and take your online business to new heights of success.
How to get out of coding monkey and become a software engineer?
Tags: discuss
Published: 2023-06-09 12:27:33

We as developers are love to code - that's a good thing. However, too much focus on technical in the business aspect maybe not that great. Nowadays, standing out as a developer within an organization requires more than just core technical skills. And if not recognize this aspect, one can easily falling into the trap of the infinite loop of mindlessly taking orders and coding without further growth.

In your opinion, what additional skills do developers need beside technical perspective to become software engineers?