teleren/devto huggingface dataset:
We launched 10k+ code changes to production. It took us 4.5h and it was (surprisingly) problem-free. This was our recipe.
Tags: devops, webdev, testing, programming
Published: 2022-01-14 22:20:57

Two days ago we launched 10k+ code changes to production. Although it was intense, it was problem-free, unlike some other deployments. The deployment process lasted 4.5 hours, with us following a 10-step process:

1. We organized everyone mission-critical on standby and were ready for the deployment to last much more than anticipated.
2. We did it overnight to disturb as few users as possible. For us, this meant fewer variables to worry about.
3. We created a Google spreadsheet with all the scenarios that had to work perfectly. For every scenario, we defined 3 phases: development, dev QA, product QA. 
4. We wrote a deployment guide, simulated deployment locally multiple times, and iterated over it.
5. Before launch, we deployed a sandbox, restored production databases there, and verified that everything worked.
6. We then deployed a new production environment next to the active one. We had to set up many things and wanted to verify everything was done correctly.
7. Once verified, we created new backups on the old production and restored them on the new production.
8. We rerouted the traffic to the new production.
9. We kept the old production on standby if things went terribly wrong (you never know). Since everything worked, we turned it off after a day.
10. We all went to sleep with our ringtones on maximum in case of any errors.

---------

If you find my content interesting, follow me on [twitter](https://twitter.com/JurajMalenica). We can share half-baked ideas and discuss engineering challenges.
Tutorial: Add TailwindCSS to your Remix Project
Tags: react, tailwindcss, webdev, tutorial
Published: 2022-01-14 21:50:48

## TailwindCSS 3.0 Setup with Remix
This is a super quick tutorial to get TailwindCSS up and running in Remix!  I wrote this when TailwindCSS3.0 was released on Remix V1.1.1

![Remix logo, plus symbol, Tailwind logo](https://cdn.hashnode.com/res/hashnode/image/upload/v1642196481303/i8CvMXYmA.png)

This tutorial assumes you have already created your Remix app using the `npx create-remix@latest` command, if not, do that first then follow these steps. 

Open your terminal and let's install TailwindCSS

`npm install -D tailwindcss`

We also need Concurrently for running TailwindCSS in our dev environment. 

`npm install concurrently`

Perfect, now lets initialize Tailwind to create our tailwind.config.js file

`npx tailwindcss init`

Let's update our `tailwind.config.js` file in our application for their purge function for any javascript `.js` or `.jsx` file. 
```javascript
module.exports = {
  purge: ["./app/**/*.{js,jsx}"], // Here we are going to tell Tailwind to use any javascript .js or .jsx file
  theme: { extend: {

  } },
  variants: {},
  plugins: [], 
};
```

Perfect, now we need to update our `package.json` file with scripts to generate our tailwind.css file. 
Update your `package.json` scripts section to match this
```javascript
  "scripts": {
    "build": "npm run build:css && remix build",
    "build:css": "tailwindcss -o ./app/tailwind.css",
    "dev": "concurrently \"npm run dev:css\" \"remix dev\"",
    "dev:css": "tailwindcss -o ./app/tailwind.css --watch",
    "postinstall": "remix setup node",
    "start": "remix-serve build"
  },
```

Now when we run `npm run dev` it will generate a tailwind.css file in the root of our /app/ folder. We need to tell Remix that want to use this stylesheet. I'm going to set this up in our `Root` file so that TailwindCSS styles are imported to the entire site. Remix does this by importing our styles and using their links function to apply the stylesheet to the head of the HTML file. 

Open your `root.jsx` file under (`/app`)
Add the following import statement and then update the exported links function:
```javascript
import tailwindstyles from "./tailwind.css";

// https://remix.run/api/app#links
export let links = () => {
  return [
    { rel: "stylesheet", href: tailwindstyles }
  ];
};
```

Perfect, TailwindCSS is all setup in our Remix app!!! 

Go forth and style beautiful apps and sites with amazing user experiences, because that's what Remix is all about!


I’m on @buymeacoffee. If you like my work, you can buy me a taco and share your thoughts 🎉🌮
<a href="https://www.buymeacoffee.com/ChrisBenjamin" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
Introduction to Solidity...
Tags: smart, contract, solidity, blockchain
Published: 2022-01-14 21:50:11

Hey there,Today i am going to talk a little bit about Solidity.What is solidity?Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs which govern the behaviour of accounts within the Ethereum state.Interesting,right?Let's write some solidity code.

To write solidity code you would like to use a online IDE called remix.visit IDE

[remix ide](https://remix.ethereum.org/)

First we need to say license and which solidity version you are going to use.In my case it looks like below..

```solidity
//SPDX-License-Identifier:GPL-3.0

pragma solidity ^0.8.4;
```

As solidity is a `contract` oriented language.We need to create contract

```solidity
contract FirstPrograme{

}
```

If you know OOP.you can imagine contract as a `Class`.Now let's create two variables and deploy our contract.

```solidity
contract FirstPrograme{
   string public name="Hakim";
   uint public age=18;
}
```
Here the `public` keyword is variables visibility.Now if we compile and deploy our contract we will see two buttons.To compile contract click this button.


![compile](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c723td265yw3lq9lvhy7.png)

and to deploy click


![deploy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kcxtgc7f2qc36mxgfvmb.png)

now use should see variables value.


![value](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rcjihwspcwpmh954v2fy.png)


Thanks ❤.
Live Stream Community SpriteKit Game Creation
Tags: podcast, livestream
Published: 2022-01-17 21:05:51

---
title: Live Stream Community SpriteKit Game Creation
published: true
date: 2022-01-14 21:36:32 UTC
tags: Podcasts,livestream
canonical_url: https://peterwitham.com/podcasts/cs-s04-e01/?utm_source=rss&utm_medium=rss&utm_campaign=cs-s04-e01
---

![Featured image, CompileSwift podcast episode](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0ct5n58eivgra28d3kn.png)

The new season of the podcast kicks off with information on the community game we are building on the LiveStream.

{% spotify spotify:episode:4Le4N3lk66uLzQMNQrs8QL%}

This really has taken a turn and surprised me, it started as something for me to learn SpriteKit and have some fun, now it is a community project that we all contribute and benefit from.

Community for the win!

The post [CompileSwift Podcast – Live Stream Community Game](https://peterwitham.com/podcasts/cs-s04-e01/) appeared first on [Peter Witham](https://peterwitham.com).
OSD700 Goals
Tags: opensource, telescope
Published: 2022-01-14 21:32:35


This week I have started my last semester at Seneca and decided to continue the open source work by taking the final Open Source Development class ([OSD700](https://apps.senecacollege.ca/ssos/findOutline.do?subjectCode=OSD700)).

The focus this semester will be on the Telescope project and its dependencies. The goal as a team will be to ship [Telescope 3.0](https://github.com/Seneca-CDOT/telescope/wiki/Winter-2022---Telescope-3.0) at some point this April. It was great meeting with every student in the class this week, many of whom I have worked with last semester.

I have a few ideas about what I will be focusing on for the next few months. Of course it's possible that things will change as I go along.

## React

I learned React in my WEB422 course and used it again last semester on the telescope front-end to [display Github info](https://dev.to/menghif/adding-a-feature-to-telescope-adi) for each post. I would like to improve my knowledge of React by getting involved in more front-end issues.

## Monorepo tooling

Last semester I also worked on the developer experience by moving Telescope from npm to [pnpm](https://pnpm.io) to achieve faster install times. The [issue](https://github.com/Seneca-CDOT/telescope/issues/1778) about improving monorepo tooling is still open and I will do some research on the benefits of potentially using [Rushjs](https://rushjs.io) or [Turborepo](https://turborepo.org) with Telescope.

## Docker

One area of the project that I would like to get involved more in is Docker. I only know the basics of working with containers so I think it will be interesting to get deeper in the Docker world and maybe improve the current Telescope micro-services implementation.

---

These are the plans I have at the moment. It is very exciting to continue working on Telescope and I cannot wait for what we will be able to create as a group by the end of the semester.
Documentación de Go #1
Tags: go, programming, beginners, tutorial
Published: 2022-01-14 20:00:23

# Conceptos básicos
Go es un lenguaje de programación **compilado y tipado estático**. El lenguaje a menudo se conoce como Golang debido al nombre de la web oficial, golang.org, pero el nombre propio es Go.

Vamos a empezar por tres características principales del lenguaje: paquetes, funciones y variables.

## Paquetes
Las aplicaciones de Go están organizadas en paquetes. Un paquete es una **colección de archivos fuente ubicados en el mismo directorio**. Todos los archivos de origen en un directorio deben compartir el mismo nombre de paquete.

Lo normal es que el nombre del paquete sea el último directorio en la ruta de importación. Por ejemplo, el paquete math/rand importaría todas las funciones, tipos, variables, constantes del paquete rand, cuyos nombres comienzan con una letra mayúscula.

El estilo de nomenclatura recomendado en Go es que **los identificadores se nombran usando camelCase**, excepto aquellos destinados a ser accesibles entre paquetes, que deberían ser PascalCase.

Un ejemplo de definición de un paquete en código sería:
```
package prove
```

## Variables
Go usa **tipos estáticos**, lo que significa que todas las variables deben tener un tipo definido en cuando la aplicación se compile.
Las variables se pueden definir especificando explícitamente un tipo:
```
var explicit int
```

También puede usar un inicializador y el compilador asignará el tipo de variable para que coincida con el tipo del inicializador.
```
implicit := 10
```

Una vez declaradas, a las variables se les pueden asignar valores usando el operador =, pero **el tipo de una variable nunca puede cambiar**.
```
number := 1 // Se le asigna un valor inicial de 1
number = 2  // Se edita a valor 2

number = true // Esto provoca un error porque el tipo de valor que se intenta guardar es booleano no un int
```

## Constantes
Las constantes contienen datos al igual que las variables, pero **su valor no se puede cambiar** durante la ejecución del programa.

Las constantes se definen mediante la palabra clave **const** y pueden ser números, caracteres, cadenas o valores booleanos:
```
const Name = "FuenRob"
const Age = 29
```

## Funciones
Las funciones en Go **aceptan cero o más parámetros**. Los parámetros deben escribirse explícitamente, no hay inferencia de tipo.

Los valores se devuelven de las funciones utilizando la palabra clave **return**.

Una función se invoca especificando el nombre de la función y pasando argumentos para cada uno de los parámetros de la función.

```
package wellcome

// Función pública
func Hello (name string) string {
    return hi(name)
}

// Función privada
func hi (name string) string {
    return "hi " + name
}
```

## Comentarios
Hay dos formas de poner comentarios en Go:
comentarios de una sola línea que están precedidos por // y bloques de comentarios de varias líneas que están envueltos con /* y */.
¿Cómo aumentar la productividad si se forma parte de Crowd1?
Published: 2022-01-14 21:07:16

El confort del trabajo a distancia, donde el empleado sabe que puede organizar su tiempo y atender cualquier posible imprevisto (una gestión urgente, un hijo que se ha puesto malo…) sin que le suponga un grave problema, hace que el trabajador aprecie más las ventajas de su situación laboral.

De esta forma, su motivación y compromiso se ve aumentado para cumplir con las expectativas, lograr los objetivos e implicarse en la buena marcha de la empresa que le facilita esta flexibilidad en las condiciones de trabajo.

Por estas y muchas otras ventajas que aporta el teletrabajo, tanto a empleador como a empleado, cada vez hay más empresas que se unen a este modelo de trabajo.

Una de las empresas que lo ha hecho es Crowd1, con sede en los Emiratos Árabes Unidos ofrece a sus miembros de todo el mundo la posibilidad de participar en la economía digital.

Aquellos que estén dispuestos a esforzarse un poco en su membresía y terminen generando ventas, tienen la posibilidad de obtener beneficios a través del programa de bonificaciones de Crowd1.

Pero para maximizar los beneficios trabajando desde la distancia, hay que seguir una serie de consejos.

- Crear un espacio de trabajo acogedor.
- Arreglarse como si se saliera a la oficina. Está permitido ponerse cómodo, pero no trabajar en pijama. La mente inconsciente recibe “imputs” de lo exterior, así si la vestimenta es igual o parecida a la que se utiliza generalmente en el trabajo se está mandando el mensaje de “estoy trabajando”.
- Evitar distracciones. Por ejemplo, el primer paso sería desactivar las notificaciones del teléfono, tales como Facebook, Instagram y Snapchat, que muy probablemente no se necesitarán mientras se trabaja. Esto ayudará a mantener la concentración. Hay varios estudios que demuestran que la multitarea tiene un efecto negativo en la productividad.
- Hacer pequeños descansos cada cierto tiempo. Lo ideal es parar cada 30 ó 35 minutos.
- Establecer objetivos claros sobre lo que se quiere conseguir durante el día. Tener objetivos claros para la jornada laboral ayudará sin duda a ser más productivo cuando se trabaja desde casa.
- Estos consejos serán muy útiles para aumentar la productividad si se trabaja con ventas online desde casa como miembro de Crowd1, o si se trabaja desde casa en cualquier otra profesión.

[Ver mas...](https://lavozdesuramerica.com/)
AI won't destroy us all... but it might automate your day.
Tags: javascript, ai, programming
Published: 2022-01-14 20:59:29

AI (artificial intelligence) is becoming of specific importance in use cases such as analytics, writing copy, decision making, and more as technology advances. A short introduction into these cases is introduced here for thought.

Using language models, AI uses contextual information provided by the user to infer the requested output.  It does not have knowledge of facts or do web-crawling like search engines. It simply looks for the answer to the request based on the context in its model. As a result, it will generate text as an output relevant to the language input it sees as if it expects that repeating similar patterns is the expected output (For our purposes it considers numbers to be part of language.)
 
For example, if one is to ask an AI (such as GPT-3):
“What is the number 70 as binary code?” 

Response:
“The number 70 in binary code is 1000110.”

As such it is capable of inferring a number system and doing conversions, including math functions such as integrations and predictive analytics.


One of the things that it does NOT do is synthesize new ideas: If the context is not sufficient to build from, it generally returns what it has seen before, i.e. output similar to the input.  It is as if in a newsroom, the editor/user requests an article.  In return the copywriter/AI will return something that looks like other articles in context. Specifically in copywriting, this is actually a unique problem because AI is very good at this task - however - it may not be factual in any way.  Therefore, when using these models the reader cannot expect that a novel solution will be generated that is a departure from what it has previously “seen” in its model.

Again, these are concepts that the AI has parsed before. In essence, the GIGO (Garbage-In, Garbage-Out) concept applies to the behavior of an AI program.

In its current form, AI is used inside frameworks that are provided by the models.  In some cases they are called Application Program Interface (API), and in others they are used in programming language formats such as Python. This is not the limit of possible implementations.

For clarification, APIs are associated with data transmitted using remote servers that host the AI computer program, and requests are transmitted from the computer using internet format rules to do so. This means that even a remote computer can take advantage of these models without having to invest the resources to build one on an onsite computer. Another implementation, Python is a computer programming language that is commonly used.  Using tabular data (files that separate data in a way that they can be read by the computer) these files can then be analyzed according to natural language input requests such as “What was the fastest runner’s bib number, and what was the time?” or “Which woman placed second?” and so on.

So, just because you can train a computer to interpret data doesn't mean you can train it to justify harming something. So don't worry about the apocalypse.

Yet.
Smoking® consigue el objetivo: 150.000 árboles plantados en el África Subsahariana
Published: 2022-01-14 20:59:19

 Smoking®, la marca española líder en la fabricación de libritos de liar, ha logrado su objetivo de plantar 150.000 árboles en el África Subsahariana, gracias a la colaboración con la ONG Trees for the Future® y a la participación activa que los usuarios han tenido en redes sociales a través de la campaña #RollWithGreen.
Con el propósito de reforzar la sostenibilidad del negocio y proteger el medioambiente, en 2017 Smoking® comenzó una colaboración con esta ONG con el fin de repoblar zonas del África Subsahariana y favorecer el crecimiento de la economía de la región a través de la sostenibilidad. Así es como Smoking® se suma al propósito de los Objetivos de Desarrollo Sostenible (ODS) establecidos en 2015 por la Organización de las Naciones Unidas (ONU) para conseguir, entre todos, transformar el planeta en un mundo mejor y más sostenible. Concretamente, Smoking® participa de manera activa en el desarrollo del Objetivo 15 al actuar de manera activa contra la deforestación y la gestión sostenible de los bosques.

Además, de manera paralela y para lograr una repercusión mayor, se puso en marcha en redes sociales una campaña con la que hacer crecer el mensaje y conseguir un mayor número de árboles plantados mediante la participación de los usuarios. Así, bajo el hashtag #RollWithGreen, todos los usuarios pudieron formar parte de esta acción medioambiental que la marca Smoking® llevó a cabo.

De hecho, ser parte activa de la protección del medioambiente nunca fue tan fácil ya que tan solo por utilizar el hashtag #RollWithGreen en redes sociales, Smoking® plantó un árbol en nombre de cada participante.

De esta manera, la marca española ha fomentado la participación y colaboración ciudadana con el objetivo de poder plantar un mayor número de árboles y conseguir repoblar la zona con un frondoso muro verde. La campaña se lanzó en Instagram, Facebook y Twitter, siendo un auténtico éxito de interacciones en las tres redes sociales desde su lanzamiento hasta el momento.

Líder en transparencia y acción medioambientalSmoking® es una de las 10 marcas de España (y una de las 131 de Europa) incluidas por la ONG Carbon Disclosure Project -CDP- en su Lista A de marcas que lideran sus sectores en términos de transparencia y acción medioambiental.

Smoking® es propiedad de Miquel y Costas & Miquel SA, compañía reconocida internacionalmente tanto por la calidad de sus productos como por su compromiso medioambiental. Todos sus productos con pasta de celulosa cuentan con el certificado Forest Stewardship Council FSC®, que garantiza un suministro de cultivos controlados que evitan la deforestación y fomentan una gestión forestal sostenible. Además, la compañía cuenta con papeles de liar con sello Tree Free, que certifican que ningún árbol ha sido talado para producirlos y que han sido elaborados íntegramente con pasta obtenida de fibras vegetales de materia textil.

[Ver mas...](https://lavozdesuramerica.com/)
“Aislamiento, sedentarismo y trabajo en casa afectaron el estado físico”: Felipe Gómez, médico ortopedista
Published: 2022-01-14 20:58:39

A poco más de dos años de comenzar la pandemia por covid-19, el trabajo en casa o “home office”, se incrementó al igual que el sedentarismo. Esta situación ha disparado el número de padecimientos de lumbalgia, una de las principales causas de ausentismo laboral.
Felipe Gómez García, Ortopedista y Traumatólogo, dijo que desde el inicio de la pandemia aumentaron los casos de lumbalgia. Muchas personas no contaban con un lugar óptimo para trabajar e improvisaron áreas de trabajo sin mobiliario ergonómico para que llevaran su jornada laboral sin dolor.

Para la mayoría de los trabajadores, las consecuencias por pasar varias horas frente a las computadoras son problemas en la espalda y cuello. Según la opinión de Gómez García el sedentarismo y el trabajo en casa afectaron el estado físico de las personas.

Además, durante el pico de la pandemia, hubo un cierre de gimnasios y otras actividades de ocio, incrementando el uso de juegos de mesa, videojuegos o ver películas en casa, imponiendo pasar aún más horas sentados de manera incorrecta frente a una pantalla. Esto generó un aumento preocupante de lumbalgia.

De acuerdo con el Dr. Gómez García, la lumbalgia es un dolor en la parte baja de la espalda que afecta las vértebras, músculos e incluso estructuras nerviosas que se encuentran alrededor o cruzan por las vértebras. Esta aparece cuando se mantiene una mala postura por más de ocho horas.

La mala postura provoca otras afecciones como contracturas en el cuello y dolores en la espalda. El doctor Gómez estimó que aproximadamente un 80% de las personas presentará lumbalgia al menos una vez en la vida. Hasta un 80% de la población llega a padecer lumbalgia por defectos posturales y movimientos bruscos, siendo su máxima prevalencia entre los 40 y 60 años. El índice de que puedas vivir sin dolor ocasionado por lumbalgia es de 54 a 90% por año, bajo control médico y rehabilitación.

Para evitar que la vida sedentaria continúe afectando la condición de la columna, varios fisioterapeutas y especialistas de la columna vertebral recomiendan relajarse con actividades físicas como el yoga o la realización de estiramientos simples. Otras recomendaciones para complementar estas actividades son el uso de herramientas ortopédicas sencillas como pelotas o rollos, o algunas herramientas más profesionales tipo Cordus o Sacrus, así como la aplicación de automasajes para ayudar a relajar los músculos al final de la jornada de trabajo.

[Ver mas...](https://lavozdesuramerica.com/)
Abstraction
Tags: java, oop
Published: 2022-01-14 20:39:20

 Abstraction (soyutlama) OOP’nin temel kavramlarından biridir. Alt sınıfların ortak özelliklerini ve işlevlerini taşıyan ancak henüz bir nesnesi olmayan bir üst sınıf oluşturmak istenirse bir soyut (abstract) üst sınıf oluşturulur. Soyut sınıfın yöntemleri alt sınıfları tarafından üzerine yazılmak üzere şablon olarak tanımlanabilir veya soyut metot olarak oluşturulabilir. Soyut metoda sahip bir sınıf otomatik olarak kendisi de soyut hale gelir. Soyut sınıflardan nesne oluşturulamaz. Bunun yerine extends edilerek yeni sınıflara o özelliği kullanılarak soyut metodlar üretilir.


```
public abstract class Sekil{
    public int cevre(){
        return 0;
    }
}
```

```
public class Dikdörtgen extends Sekil {
    public int cevre(int boy,int en){
        return (2*(boy+en));
    }
}
```