From 4761faa745a657cc1c41ac75b042e33eec477b52 Mon Sep 17 00:00:00 2001 From: Ariascosb Date: Sat, 25 May 2024 21:16:05 -0500 Subject: [PATCH] cambio a github pages modificaciones finales docs --- config.yml | 3 + content/posts/1_Actualizar_ubuntu.md | 2 +- content/posts/2_directorio_inicio_WSL.md | 2 +- .../index.html | 17 + .../index.html | 33 ++ docs/2023/10/mis-apuntes-de-r/index.html | 331 ++++++++++++++++++ docs/404.html | 6 + docs/about.txt | 6 + docs/android-chrome-192x192.png | Bin 0 -> 6310 bytes docs/android-chrome-512x512.png | Bin 0 -> 18478 bytes docs/apple-touch-icon.png | Bin 0 -> 5830 bytes docs/archivo/index.html | 9 + ...3bf7cceccab7ad0b86d5cb99c33fcbd1ae8932.css | 7 + ...341710991997025f4bdabcb7601e62f58b870b3.js | 19 + docs/categories/index.html | 6 + docs/categories/index.xml | 38 ++ docs/categories/programacion/index.html | 6 + docs/categories/programacion/index.xml | 24 ++ .../categories/programacion/page/1/index.html | 2 + .../programaci\303\263n/index.html" | 8 + .../categories/programaci\303\263n/index.xml" | 33 ++ .../programaci\303\263n/page/1/index.html" | 2 + docs/categories/r/index.html | 6 + docs/categories/r/index.xml | 24 ++ docs/categories/r/page/1/index.html | 2 + docs/favicon-16x16.png | Bin 0 -> 399 bytes docs/favicon-32x32.png | Bin 0 -> 791 bytes docs/favicon.ico | Bin 0 -> 15406 bytes docs/favicon_io.zip:Zone.Identifier | 3 + docs/index.html | 8 + docs/index.json | 1 + docs/index.xml | 40 +++ docs/page/1/index.html | 2 + docs/posts/images/Untitled 3.png | Bin 0 -> 11046 bytes docs/posts/images/Untitled 4.png | Bin 0 -> 24823 bytes docs/posts/images/Untitled.png | Bin 0 -> 22868 bytes docs/posts/index.html | 8 + docs/posts/index.xml | 40 +++ docs/posts/page/1/index.html | 2 + docs/robots.txt | 3 + docs/search/index.html | 6 + docs/site.webmanifest | 1 + docs/sitemap.xml | 66 ++++ docs/tags/bash/index.html | 7 + docs/tags/bash/index.xml | 25 ++ docs/tags/bash/page/1/index.html | 2 + docs/tags/ciencia-de-datos/index.html | 6 + docs/tags/ciencia-de-datos/index.xml | 24 ++ docs/tags/ciencia-de-datos/page/1/index.html | 2 + docs/tags/data-science/index.html | 6 + docs/tags/data-science/index.xml | 24 ++ docs/tags/data-science/page/1/index.html | 2 + docs/tags/index.html | 6 + docs/tags/index.xml | 80 +++++ docs/tags/linux/index.html | 8 + docs/tags/linux/index.xml | 33 ++ docs/tags/linux/page/1/index.html | 2 + docs/tags/r/index.html | 6 + docs/tags/r/index.xml | 24 ++ docs/tags/r/page/1/index.html | 2 + docs/tags/terminal-do-windows/index.html | 7 + docs/tags/terminal-do-windows/index.xml | 25 ++ .../terminal-do-windows/page/1/index.html | 2 + docs/tags/ubuntu/index.html | 8 + docs/tags/ubuntu/index.xml | 33 ++ docs/tags/ubuntu/page/1/index.html | 2 + docs/tags/windows-terminal/index.html | 7 + docs/tags/windows-terminal/index.xml | 25 ++ docs/tags/windows-terminal/page/1/index.html | 2 + docs/tags/wsl/index.html | 8 + docs/tags/wsl/index.xml | 33 ++ docs/tags/wsl/page/1/index.html | 2 + netlify.toml | 30 -- .../index.html" | 33 -- 74 files changed, 1177 insertions(+), 65 deletions(-) create mode 100644 docs/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/index.html create mode 100644 docs/2023/05/mi-script-bash-para-actualizar-ubuntu/index.html create mode 100644 docs/2023/10/mis-apuntes-de-r/index.html create mode 100644 docs/404.html create mode 100644 docs/about.txt create mode 100644 docs/android-chrome-192x192.png create mode 100644 docs/android-chrome-512x512.png create mode 100644 docs/apple-touch-icon.png create mode 100644 docs/archivo/index.html create mode 100644 docs/assets/css/stylesheet.17286818278491604452094a103bf7cceccab7ad0b86d5cb99c33fcbd1ae8932.css create mode 100644 docs/assets/js/search.b976f5e01dab1e220fd3231c9341710991997025f4bdabcb7601e62f58b870b3.js create mode 100644 docs/categories/index.html create mode 100644 docs/categories/index.xml create mode 100644 docs/categories/programacion/index.html create mode 100644 docs/categories/programacion/index.xml create mode 100644 docs/categories/programacion/page/1/index.html create mode 100644 "docs/categories/programaci\303\263n/index.html" create mode 100644 "docs/categories/programaci\303\263n/index.xml" create mode 100644 "docs/categories/programaci\303\263n/page/1/index.html" create mode 100644 docs/categories/r/index.html create mode 100644 docs/categories/r/index.xml create mode 100644 docs/categories/r/page/1/index.html create mode 100644 docs/favicon-16x16.png create mode 100644 docs/favicon-32x32.png create mode 100644 docs/favicon.ico create mode 100644 docs/favicon_io.zip:Zone.Identifier create mode 100644 docs/index.html create mode 100644 docs/index.json create mode 100644 docs/index.xml create mode 100644 docs/page/1/index.html create mode 100644 docs/posts/images/Untitled 3.png create mode 100644 docs/posts/images/Untitled 4.png create mode 100644 docs/posts/images/Untitled.png create mode 100644 docs/posts/index.html create mode 100644 docs/posts/index.xml create mode 100644 docs/posts/page/1/index.html create mode 100644 docs/robots.txt create mode 100644 docs/search/index.html create mode 100644 docs/site.webmanifest create mode 100644 docs/sitemap.xml create mode 100644 docs/tags/bash/index.html create mode 100644 docs/tags/bash/index.xml create mode 100644 docs/tags/bash/page/1/index.html create mode 100644 docs/tags/ciencia-de-datos/index.html create mode 100644 docs/tags/ciencia-de-datos/index.xml create mode 100644 docs/tags/ciencia-de-datos/page/1/index.html create mode 100644 docs/tags/data-science/index.html create mode 100644 docs/tags/data-science/index.xml create mode 100644 docs/tags/data-science/page/1/index.html create mode 100644 docs/tags/index.html create mode 100644 docs/tags/index.xml create mode 100644 docs/tags/linux/index.html create mode 100644 docs/tags/linux/index.xml create mode 100644 docs/tags/linux/page/1/index.html create mode 100644 docs/tags/r/index.html create mode 100644 docs/tags/r/index.xml create mode 100644 docs/tags/r/page/1/index.html create mode 100644 docs/tags/terminal-do-windows/index.html create mode 100644 docs/tags/terminal-do-windows/index.xml create mode 100644 docs/tags/terminal-do-windows/page/1/index.html create mode 100644 docs/tags/ubuntu/index.html create mode 100644 docs/tags/ubuntu/index.xml create mode 100644 docs/tags/ubuntu/page/1/index.html create mode 100644 docs/tags/windows-terminal/index.html create mode 100644 docs/tags/windows-terminal/index.xml create mode 100644 docs/tags/windows-terminal/page/1/index.html create mode 100644 docs/tags/wsl/index.html create mode 100644 docs/tags/wsl/index.xml create mode 100644 docs/tags/wsl/page/1/index.html delete mode 100644 netlify.toml delete mode 100644 "public/2021/05/mi-c\303\263digo-bash-para-actualizar-ubuntu/index.html" diff --git a/config.yml b/config.yml index 0d93f05..498280b 100644 --- a/config.yml +++ b/config.yml @@ -6,6 +6,9 @@ title: ariascosb #Titulo de la pestaña del navegador web theme: PaperMod_My #description: "Un blog sobre Programación, Ingeniería y Matemáticas aplicadas" +#cambio añadido para github pages +publishDir: "docs" + #De aqui hacia abajo copia del tema paginate: 5 diff --git a/content/posts/1_Actualizar_ubuntu.md b/content/posts/1_Actualizar_ubuntu.md index fcd6a80..40dfafc 100644 --- a/content/posts/1_Actualizar_ubuntu.md +++ b/content/posts/1_Actualizar_ubuntu.md @@ -1,6 +1,6 @@ --- title: "Mi script bash para actualizar Ubuntu" -date: 2021-05-22T10:43:26-05:00 +date: 2023-05-22T10:43:26-05:00 draft: false tags: ["WSL", "Linux","Ubuntu","Bash"] categories: ["Programación"] diff --git a/content/posts/2_directorio_inicio_WSL.md b/content/posts/2_directorio_inicio_WSL.md index db57aab..9228e1f 100644 --- a/content/posts/2_directorio_inicio_WSL.md +++ b/content/posts/2_directorio_inicio_WSL.md @@ -1,6 +1,6 @@ --- title: "Como configurar el directorio de inicio para WSL en la windows terminal" -date: 2021-05-29T15:30:03-05:00 +date: 2023-05-29T15:30:03-05:00 draft: false tags: ["WSL", "Linux","Ubuntu","Windows terminal","terminal do windows"] categories: ["Programación"] diff --git a/docs/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/index.html b/docs/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/index.html new file mode 100644 index 0000000..ccf18cb --- /dev/null +++ b/docs/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/index.html @@ -0,0 +1,17 @@ +Como configurar el directorio de inicio para WSL en la windows terminal | ariascosb +

Como configurar el directorio de inicio para WSL en la windows terminal

Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos.

  1. Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + ,
  2. Dentro de este archivo configuramos la sección startingDirectory. Después del código //wsl$/Ubuntu-20.04 se añade la ubicación que deseamos. En mi caso quiero iniciar dentro de la carpeta /home/ariascosb/Projects por tanto debe quedar asi:
{
+"guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
+"hidden": false,
+"name": "Ubuntu-20.04",
+"source": "Windows.Terminal.Wsl",
+"startingDirectory" : "//wsl$/Ubuntu-20.04/home/ariascosb/Projects"
+},
+

NOTA: Solo se debe agregar la linea startingDirectory, por favor no modifiques nada adicional. Si estas usando otra version de linux cambias el Ubuntu-20.04 por la tuya

+ \ No newline at end of file diff --git a/docs/2023/05/mi-script-bash-para-actualizar-ubuntu/index.html b/docs/2023/05/mi-script-bash-para-actualizar-ubuntu/index.html new file mode 100644 index 0000000..69c631d --- /dev/null +++ b/docs/2023/05/mi-script-bash-para-actualizar-ubuntu/index.html @@ -0,0 +1,33 @@ +Mi script bash para actualizar Ubuntu | ariascosb +

Mi script bash para actualizar Ubuntu

WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea.

  1. Creamos un script .sh, en mi caso lo llamo ubuntu.sh
nano ubuntu.sh
+
  1. Ingresamos el siguiente código dentro del script. Este permite actualizar los repositorios, luego los paquetes y finalmente limpiar la cache. Al final siempre se imprime un mensaje de éxito o alerta para avisarnos el estado final del proceso.
#!/bin/bash
+
+update() {
+
+apt-get update;
+
+apt-get upgrade;
+    
+if [ $? -ne 0 ]; then
+    echo "UBUNTU NO SE ACTUALIZO CORRECTAMENTE "
+else 
+    apt-get autoclean;
+    apt-get clean;
+    apt-get autoremove
+    echo "UBUNTU SE ACTUALIZO CORRECTAMENTE "        
+fi
+}
+
+update
+
  1. Añadimos permisos de ejecución.
chmod +x ubuntu.sh
+
  1. Creamos un alias. Esto nos permitirá ejecutar el script con un nombre personalizado. Iniciamos abriendo el archivo .bashrc
nano ~/.bashrc
+
  1. Bajamos hasta el final del archivo .bashrc y copiamos la siguiente linea de código. Debes tener cuidado con colocar la ubicación correcta de tu archivo .sh
alias ubuntu="sudo /home/ariascosb/ubuntu.sh"
+

En mi caso el nombre personalizado que les estoy dando es ubuntu, pero tu lo puedes cambiar al editar la palabra que esta después de alias y antes del signo igual (=).

  1. Esta todo listo, ahora para ejecutar el script solo bastara con escribir en la terminal el alias (en mi caso: ubuntu), digitamos nuestra contraseña y automáticamente se actualizara nuestra distribución en WSL.
ubuntu
+
+ \ No newline at end of file diff --git a/docs/2023/10/mis-apuntes-de-r/index.html b/docs/2023/10/mis-apuntes-de-r/index.html new file mode 100644 index 0000000..d1946e4 --- /dev/null +++ b/docs/2023/10/mis-apuntes-de-r/index.html @@ -0,0 +1,331 @@ +Mis apuntes de R | ariascosb +

Mis apuntes de R

Introducción

  • En R todos las variables son objetos.
  • Las asignaciones en R se hacen con <-
  • Los comentarios se hacen con #
x<-2 #Esto es un comentario
+
+Ctrl+Shift+C #comentarios de mas de una linea
+
  • Directorio de trabajo actual: getwd()
  • Cambiar directorio: setwd(“C:\otro_directorio”)
# Ver archivos
+list.files()
+
+# Ver directorios
+list.dirs()
+
  • Revisar archivos guardados en memoria ls()
  • Instalar paquetes y librerías
install.packages("readr") #Instalacion (Solo se hace una vez)
+library(readr) # Cargue de la libreria (Siempre que se vaya a usar)
+update.packages() #Actualizar paquetes R
+#3.6.1 
+
  • Factores: Agrupación especial de datos. Ejemplo: podemos tener dos tipos de valores en la variable sexo: 1 y 2. A las cuales le podemos asignar unas etiquetas o niveles. Hombres (1) y Mujeres (2). Esto es muy útil para el tratamiento de datos. OJO: los factores siempre quedan guardados como numeros con etiquetas en texto
  • En R, usamos NA para representar datos perdidos, mientras que NULL representa la ausencia de datos. La diferencia entre las dos es que un dato NULL aparece sólo cuando R intenta recuperar un dato y no encuentra nada, mientras que NA es usado para representar explícitamente datos perdidos, omitidos o que por alguna razón son faltantes. NA además puede aparecer como resultado de una operación realizada, pero no tuvo éxito en su ejecución.
  • A diferencia de la mayoría de los lenguajes de programación, los índices en R empiezan en 1, no en 0.
  • Funciones basicas
#Limpiar datos
+rm(list=ls())
+
+#Promedio
+mean()
+#Desviacion estandar
+sd()
+#Coeficiente de correlacion
+cor()
+#Resumen estadistico
+summary()
+#Mirar los primeros 10 datos
+head()
+#Leer datos CSV paquete base
+bcancer <- read.csv("breast-cancer-wis.csv")
+bcancer <- read.table(file = "breast-cancer-wis.csv", header = TRUE, sep = ",",
+                      col.names = nombres)
+#Exportar datos paquete base
+write.csv(x = iris, file = "iris.csv", row.names = FALSE)
+
+#OJO NOTA: Se recomiendas usar data table para leer y escribir dado que es mas 
+#rapido que el paquete base
+
+#Uso formato .Rds
+saveRDS(object = mi_lista, file = "mi_lista.rds")
+mi_lista_importado <- readRDS(file = "mi_lista.rds")
+
+#Usar un script R desde otro archivo
+source("MyScript.R")
+

Directorios de trabajo

getwd() #Directorio actual de trabajo
+setwd("C:\otro_directorio") #Cambiar el directorio
+

Organizar codigo. Rstudio automaticamente organiza nuestro codigo para que sea mas legible

Contorl +I 
+Control+shift (Mayus) +A
+

Verificar si las librerias estan y instalarlas

#Verificar librerias
+list.of.packages <- c("shiny","shinydashboard","ggplot2","data.table","lubridate")
+new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
+if(length(new.packages)) install.packages(new.packages)
+

Acomodar ceros a la derecha y a la izquierda

Simula la funcion right de excel
+right = function(text, num_char) {
+  substr(text, nchar(text) - (num_char-1), nchar(text))
+}
+
+cron[,cantidad.requerida.mix:=round((sum.mix/fc.m.kg)*1000,4),]
+#Numeros a la derecha
+cron[,cantidad.requerida.mix:=sprintf("%f",cantidad.requerida.mix),]
+#Numeros a la izquierda
+cron[,cantidad.requerida.mix:=paste0("000000000",cantidad.requerida.mix)]
+cron[,cantidad.requerida.mix:=right(cantidad.requerida.mix,16)]
+

Tipos de datos

  • Conversión (Coercion). Cuando estas funciones tienen éxito en la coerción, nos devuelven datos del tipo pedido. Si fallan, obtenemos NA como resultado.
as.integer()	#Conversion a Entero
+as.numeric()	#Conversion a decimal
+as.character()	#Conversion a Cadena de texto
+as.factor()	#Conversion a Factor 
+as.logical()	#Conversion a Lógico
+as.null()	#Conversion a NULL
+
+#La conversion se da en el siguiente sentido y nunca en el sentido contrario
+lógico -> entero -> numérico -> cadena de texto 
+(logical -> integer -> numeric -> character)
+
  • Verficar el tipo de dato
str(a) #Me indica que tipo de dato es
+class(a) #Me indica que tipo de dato es
+
+is.integer()	#Verificar si es Entero
+is.numeric()	#Verificar si es decimal
+is.character()	#Verificar si es Cadena de texto
+is.factor()	#Verificar si es Factor 
+is.logical()	#Verificar si es Lógico
+is.null()	#Verificar si es NULL
+

Operadores

Relacionales

OperadorComparación
<menor que
<=menor que
>mayor que
>=mayor que
==igual que
!=No es igual que

Lógicos

OperadorComparación
x | yx O y es verdadero
x & yx Y y es verdadero
!xx no es verdadero (negación)

Si se comparan dos cadenas de texto con < o > se usa como criterio el orden alfabético

Estructuras de datos

Vectores

Un vector es una colección de uno o más datos del mismo tipo.

vector=c(1,2,3) #La c indica concatenar
+vector + 2  ===> 3,4,5
+vector * 2  ===> 2,4,6
+vector[1] #Seleccionar el elemento 1 del vector
+vector[c(1,3)] #Seleccionar el elemento 1 y 3 del vector
+vector[1:2] #Seleccionar los elementos del 1 al 2
+

Matrices y arrays

Son vectores multidimensionales. Al igual que un vector, únicamente pueden contener datos de un sólo tipo, pero además de largo, tienen más dimensiones. Cuentan con dos dimensiones, un “largo”" y un “alto”. Las matrices son, por lo tanto, una estructura con forma rectangular, con renglones y columnas.

matrix(1:12, nrow = 3, ncol = 4) #Crear matrices con 3 filas y 4 columnas
+#Se van organizando de arriba hacia abajo por columnas
+      [,1] [,2] [,3] [,4]
+[1,]    1    4    7   10
+[2,]    2    5    8   11
+[3,]    3    6    9   12
+
+cbind() #para unir vectores, usando cada uno como una columna.
+rbind() #para unir vectores, usando cada uno como un renglón.
+dim() # para la dimension de una matriz
+t(matriz) # Trasponer una matriz
+
+Se puede sumar, multiplicar y elevar por un escalar una matriz.
+Esto afecta todos los valores que existen en ella
+
+matriz[filas, columnas] #Seleccion de datos 
+

Las matrices siempre serán rectangulares. Cuando intentamos acomodar un número diferente de elementos y celdas, ocurren dos cosas diferentes. Si el número de elementos es mayor al número de celdas, se acomodarán todos los datos que sean posibles y los demás se omitirán. Si, por el contrario, el número de celdas es mayor que el número de elementos, estos se repetirán.

Dataframes

Los data frames son estructuras de datos que pueden contener datos de diferentes tipos. los renglones en un data frame representan casos, individuos u observaciones, mientras que las columnas representan atributos, rasgos o variables. Un data frame está compuesto por vectores.

mi_df <- data.frame(
+  "entero" = 1:4, 
+  "factor" = c("a", "b", "c", "d"), 
+  "numero" = c(1.2, 3.4, 4.5, 5.6),
+  "cadena" = as.character(c("a", "b", "c", "d"))
+)
+
+dim(mi_df) #Conocer dimensiones dataframe
+names(mi_df) #Conocer el nombre de las columnas dataFrame
+as.data.frame() #Convertir a data frame
+data.frame[indice_filas, indice_columnas] #Seleccion de datos 
+data.frame["name_column"] #Seleccion de datos
+data.frame$name_column #Seleccion de datos
+mi_df$c("nombre", "edad") #Seleccionar datos. 
+iris[iris$Sepal.Length > 7.5, ] #Seleccion con validacion
+#Otra forma de seleccion
+#Data, condicion, seleccion de columnas
+subset(x = iris, subset = Sepal.Length > 7.5, select = c("Sepal.Length", "Species"))
+

Listas

Las listas, al igual que los vectores, son estructuras de datos unidimensionales, sólo tienen largo, pero a diferencia de los vectores cada uno de sus elementos puede ser de diferente tipo o incluso de diferente clase. Al igual que con un data frame, tenemos la opción de poner nombre a cada elemento de una lista.

mi_matriz <- matrix(1:4, nrow = 2)
+mi_df     <- data.frame("num" = 1:3, "let" = c("a", "b", "c"))
+
+mi_lista <- list("un_vector" = mi_vector, "una_matriz" = mi_matriz, "un_df" = mi_df)
+
+mi_lista
+

Coerción

FunciónCoerciona aCoersionar exitosamente a
as.vector()vectormatrices
as.matrix()matricesvectores, data frames
as.data.frame()data framevectores, matrices
as.list()listavectores, matrices, data frames

Funciones

#Definicion
+nombre <- function(argumento1,argumento2,etc) {
+  operaciones
+}
+#Ejemplo
+area_cuad <- function(lado1, lado2) {
+  lado1 * lado2
+}
+#Forma de llamado 1 
+area_cuad(lado1 = 4, lado2 = 6)
+#Forma de llamado 2 
+area_cuad(4,6)
+

Estructuras de control

If-Else

if(condición) {
+  operaciones_si_la_condición_es_TRUE
+} else {
+  operaciones_si_la_condición_es_FALSE
+}
+
+#Ejemplo
+if(media >= 6) {
+    print(paste0(texto, "aprobado"))
+  } else {
+    print(paste0(texto, "reprobado"))
+  }
+
+#Otra forma
+ifelse(vector, valor_si_TRUE, valor_si_FALSE)
+
+#Ejemplo
+ifelse(num %% 2 == 0 & num %% 3, "Divisible", "No divisible")
+

For

Este ciclo no es el mas recomendado, existe otras alternativas en R mas potenciales para ejecutar estas tareas.

for(elemento in objeto) {
+  operacion_con_elemento
+}
+
+#Ejemplo
+dado <- 1:6
+for(cara in dado) {
+  dado ^ 2 
+}
+

For para añadir filas a una data table

v<-colores$cod.ext.2
+n<-1
+list<-as.list(NULL)
+
+for (i in v){
+  a<-conector
+  a$ext.2<-paste0(i)
+  list[[n]]<-a
+  conector1<-rbindlist(list)
+  n<-n+1
+}
+

Para imprimir imagenes de un ggplot

data_g<-data[maquina==i,]
+
+p<-ggplot(data=data_g, aes(x=mes, y=metros, fill=metodo)) +
+  geom_bar(stat="identity", position=position_dodge())+
+  geom_text(aes(label=metros), vjust=1.6, color="white",
+            position = position_dodge(0.9), size=2.8)+
+  scale_fill_brewer(palette="Paired")+
+  theme_minimal()+ labs(title=paste0(i))+theme(plot.title = element_text(hjust = 0.5))
+ggsave(paste0(i,".png"))
+print(p)
+

While

while(condicion) {
+  operaciones
+}
+
+#Ejemplo
+while(i < 10) {
+  print("Presiona ESC para detener")
+}
+

Next y Break

#Next (Salta parte de un cilo)
+for(i in 1:4) {
+  if(i == 3) {
+    next
+  }
+  print(i)
+}
+
+#Break (Rompe un ciclo)
+for(i in 1:10) {
+  if(i == 3) {
+    break
+  }
+  print(i)
+}
+

Repeat

repeat {
+  operaciones
+  
+  un_break_para_detener
+}
+#Ejemplo
+repeat{
+  valor <- valor + 1
+  if(valor == 5) {
+    break
+  }
+}
+

Si no incluimos un break, el bucle se repetirá indefinidamente y sólo lo podremos detener pulsando la tecla ESC, así que hay que tener cuidado al usar esta estructura de control

Data table

Librería mas veloz y flexible para el manejo de tablas en R.

Siempre que tengas datos para analizar en computador, trata de tenerlos en formato largo, es mucho más fácil de trabajar con ellos. Para convertir una tabla ancha en una larga, usa data.table::melt.

Siempre que tengas que generar datos para interpretación por humanos, considera ponerlos en formato ancho, son más fáciles de entender. Podes lograrlo con data.table::dcast.

#Actualizar todos los paquetes
+update.packages(ask = FALSE)
+
+#Instalar paquete
+install.packages("data.table")
+install.packages("tidyverse", dependencies = TRUE)
+
+#Cargar libreria
+library(data.table)
+
+#Crear data table
+mi_df <- data.table(
+  "entero" = 1:4, 
+  "factor" = c("a", "b", "c", "d"), 
+  "numero" = c(1.2, 3.4, 4.5, 5.6),
+  "cadena" = as.character(c("a", "b", "c", "d"))
+)
+
+#leer datos
+data <- fread("data/item_julio.csv")
+#Se recomienda usa r col class para idnicar que tipo de datos son y ahorrar tiempo de carga
+tipo<-c("character","character","character")#Permite cargar mas rapido y evitar errores
+conector <- fread("data/conector_ref.csv", colClasses = tipo)
+
+#Escribir datos
+fwrite(x =conector, file = "exit/testing.csv", sep = ",", dec = ".")
+
+#eliminar duplicados
+unique(Item)
+
+#Estructura
+data table[i,j,by=k]
+
+#i sirve para filtrar
+irisDT[Species == "setosa", ]
+irisDT[Petal.Width > 2, ]
+irisDT[Petal.Width <= 0.3 & Sepal.Length > 5,]
+irisDT[c(1, 4),]
+irisDT[c("color","altura"),]
+
+#La j sirve para operar (¿que queremos hacer con los datos?)
+irisDT[Species == "versicolor", mean(Sepal.Length)]
+irisDT[Species == "versicolor", .(promedio = mean(Sepal.Length), mediana = median(Sepal.Length))]   #varias operaciones al mismo tiempo
+irisDT[Species == "versicolor", hist(Sepal.Length)]
+
+#La k sirve para agrupar
+irisDT[ , mean(Sepal.Length), by = Species]
+irisDT[Sepal.Width >= 3, mean(Sepal.Length), by = Species]
+irisDT[, mean(Sepal.Length), by = .(Species, petaloPequeno = Petal.Width < .3)]
+
+#Contar el número de registros.
+.N 
+
+#Cambiar nombres a las variables
+names (DatosTdoPeso) = c("Tratamiento", "Variedad", "Parcela", "Peso46a60")
+
+#Cambiar NA por otros valores
+my_data[is.na(my_data)] <- 0
+
+#Cambiar solo un nombre de una columna
+names (DatosTdoPeso)[3] = "Parcela"
+
+#Cambiar el orden de las columnas, se recomienda hacerlo por nombres
+DatosTdoPeso1 = DatosTdoPeso [ , c(3,2,1,7,6,5,4)]
+DatosTdoPeso1 = DatosTdoPeso [ , c("name","fecha","key")]
+
+#cambiar el orden del eje x en ggplot2
+equiposDeslizadores1$month <- factor(equiposDeslizadores1$month,levels = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13),labels = c("YTD18", "1","2","3","4","5","6","7","8","9","10","11","12","YTD19"))
+
+#Funciones especiales
+
+#Entre
+irisDT[Sepal.Length %between% c(5.1, 5.2)]
+#Como 
+irisDT[Species %like% "v.*",]
+
+#Tabla ancha a larga
+dfLarga_2 <- melt(dfAncha, id.vars = "item",  #id=datos que no vamos a cambiar
+                  variable.name = "region",  #var.name= nombre encabezados a poner largos
+                  value.name = "valor",  #value= valores de los var.name
+                  variable.factor = FALSE)
+
+#Tabla larga a ancha
+dfAncha_2 <- dcast(dfLarga, 
+                   item ~ region, # x ~ y (filas ~ columnas)
+                   value.var = "valor")
+
+#Contar el numero de elementos por filas. Se uso en lista de materiales
+col.base<-col.base[ , index := 1:.N , by = c("cod.ext.2.col") ]
+
+#Convierte , en .
+epoxica$produccion.und<-gsub(",", ".", epoxica$produccion.und)
+
+#Nueva forma buscarv
+nominalesEnsamble <- fread("files/nominales/nominales_ensamble.csv")
+setkeyv(ensamble, c("maquina", "proceso"))
+setkeyv(nominalesEnsamble, c("maquina", "proceso"))
+ensamble[nominalesEnsamble, nominal := nominal]
+

Excel

library("writexl")
+library("readxl")
+
+data<- read_excel("data/data.xlsx")
+data<-as.data.table(data)
+
+write_xlsx(comision, "exits/comisiones.xlsx")
+
+ \ No newline at end of file diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..8ca2bf1 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,6 @@ +404 Page not found | ariascosb +
404
+ \ No newline at end of file diff --git a/docs/about.txt b/docs/about.txt new file mode 100644 index 0000000..e5e1443 --- /dev/null +++ b/docs/about.txt @@ -0,0 +1,6 @@ +This favicon was generated using the following font: + +- Font Title: AR One Sans +- Font Author: Copyright 2018 The AR One Project Authors (https://github.com/niteeshy/ar-one-sans) +- Font Source: http://fonts.gstatic.com/s/aronesans/v2/TUZezwhrmbFp0Srr_tH6fv6RcUejHO_u7GF5aXfv-U2QzBLF6gslWn_9DW03no5mBF4.ttf +- Font License: SIL Open Font License, 1.1 (http://scripts.sil.org/OFL)) diff --git a/docs/android-chrome-192x192.png b/docs/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9930c8423eabd6d735b5a262f652f92fca1be5 GIT binary patch literal 6310 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 literal 0 HcmV?d00001 diff --git a/docs/android-chrome-512x512.png b/docs/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..236d5086e39e122811015d540de6239178071c18 GIT binary patch literal 18478 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 H?En7(hJtDj literal 0 HcmV?d00001 diff --git a/docs/apple-touch-icon.png b/docs/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dba0541460d6b6a2f65e29958df4ab8ab893569a GIT binary patch literal 5830 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 literal 0 HcmV?d00001 diff --git a/docs/archivo/index.html b/docs/archivo/index.html new file mode 100644 index 0000000..5eafd15 --- /dev/null +++ b/docs/archivo/index.html @@ -0,0 +1,9 @@ +Archivo | ariascosb +

2023 + 3

octubre + 1

Mis apuntes de R

octubre 7, 2023 · 9 min · Andres Riascos B.

mayo + 2

Como configurar el directorio de inicio para WSL en la windows terminal

mayo 29, 2023 · 1 min · Andres Riascos B.

Mi script bash para actualizar Ubuntu

mayo 22, 2023 · 2 min · Andres Riascos B.
+ \ No newline at end of file diff --git a/docs/assets/css/stylesheet.17286818278491604452094a103bf7cceccab7ad0b86d5cb99c33fcbd1ae8932.css b/docs/assets/css/stylesheet.17286818278491604452094a103bf7cceccab7ad0b86d5cb99c33fcbd1ae8932.css new file mode 100644 index 0000000..93d86ce --- /dev/null +++ b/docs/assets/css/stylesheet.17286818278491604452094a103bf7cceccab7ad0b86d5cb99c33fcbd1ae8932.css @@ -0,0 +1,7 @@ +/* + PaperMod v7 + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2024 adityatelange +*/ +:root{--gap:24px;--content-gap:20px;--nav-width:1024px;--main-width:720px;--header-height:60px;--footer-height:60px;--radius:8px;--theme:rgb(255, 255, 255);--entry:rgb(255, 255, 255);--primary:rgb(30, 30, 30);--secondary:rgb(108, 108, 108);--tertiary:rgb(214, 214, 214);--content:rgb(31, 31, 31);--code-block-bg:rgb(28, 29, 33);--code-bg:rgb(245, 245, 245);--border:rgb(238, 238, 238)}.dark{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51)}.list{background:var(--code-bg)}.dark.list{background:var(--theme)}*,::after,::before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overflow-y:scroll;-webkit-text-size-adjust:100%;text-size-adjust:100%}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:18px;line-height:1.6;word-break:break-word;background:var(--theme)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section,table{display:block}h1,h2,h3,h4,h5,h6{line-height:1.2}h1,h2,h3,h4,h5,h6,p{margin-top:0;margin-bottom:0}ul{padding:0}a{text-decoration:none}body,figure,ul{margin:0}table{width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;word-break:keep-all}button,input,textarea{padding:0;font:inherit;background:0 0;border:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 50px var(--theme)inset}img{display:block;max-width:100%}.not-found{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;height:80%;font-size:160px;font-weight:700}.archive-posts{width:100%;font-size:16px}.archive-year{margin-top:40px}.archive-year:not(:last-of-type){border-bottom:2px solid var(--border)}.archive-month{display:flex;align-items:flex-start;padding:10px 0}.archive-month-header{margin:25px 0;width:200px}.archive-month:not(:last-of-type){border-bottom:1px solid var(--border)}.archive-entry{position:relative;padding:5px;margin:10px 0}.archive-entry-title{margin:5px 0;font-weight:400}.archive-count,.archive-meta{color:var(--secondary);font-size:14px}.footer,.top-link{font-size:12px;color:var(--secondary)}.footer{max-width:calc(var(--main-width) + var(--gap) * 2);margin:auto;padding:calc((var(--footer-height) - var(--gap))/2)var(--gap);text-align:center;line-height:24px}.footer span{margin-inline-start:1px;margin-inline-end:1px}.footer span:last-child{white-space:nowrap}.footer a{color:inherit;border-bottom:1px solid var(--secondary)}.footer a:hover{border-bottom:1px solid var(--primary)}.top-link{visibility:hidden;position:fixed;bottom:60px;right:30px;z-index:99;background:var(--tertiary);width:42px;height:42px;padding:12px;border-radius:64px;transition:visibility .5s,opacity .8s linear}.top-link,.top-link svg{filter:drop-shadow(0 0 0 var(--theme))}.footer a:hover,.top-link:hover{color:var(--primary)}.top-link:focus,#theme-toggle:focus{outline:0}.nav{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:calc(var(--nav-width) + var(--gap) * 2);margin-inline-start:auto;margin-inline-end:auto;line-height:var(--header-height)}.nav a{display:block}.logo,#menu{display:flex;margin:auto var(--gap)}.logo{flex-wrap:inherit}.logo a{font-size:24px;font-weight:700}.logo a img,.logo a svg{display:inline;vertical-align:middle;pointer-events:none;transform:translate(0,-10%);border-radius:6px;margin-inline-end:8px}button#theme-toggle{font-size:26px;margin:auto 4px}body.dark #moon{vertical-align:middle;display:none}body:not(.dark) #sun{display:none}#menu{list-style:none;word-break:keep-all;overflow-x:auto;white-space:nowrap}#menu li+li{margin-inline-start:var(--gap)}#menu a{font-size:16px}#menu .active{font-weight:500;border-bottom:2px solid}.lang-switch li,.lang-switch ul,.logo-switches{display:inline-flex;margin:auto 4px}.lang-switch{display:flex;flex-wrap:inherit}.lang-switch a{margin:auto 3px;font-size:16px;font-weight:500}.logo-switches{flex-wrap:inherit}.main{position:relative;min-height:calc(100vh - var(--header-height) - var(--footer-height));max-width:calc(var(--main-width) + var(--gap) * 2);margin:auto;padding:var(--gap)}.page-header h1{font-size:40px}.pagination{display:flex}.pagination a{color:var(--theme);font-size:13px;line-height:36px;background:var(--primary);border-radius:calc(36px/2);padding:0 16px}.pagination .next{margin-inline-start:auto}.social-icons a{display:inline-flex;padding:10px}.social-icons a svg{height:26px;width:26px}code{direction:ltr}div.highlight,pre{position:relative}.copy-code{display:none;position:absolute;top:4px;right:4px;color:rgba(255,255,255,.8);background:rgba(78,78,78,.8);border-radius:var(--radius);padding:0 5px;font-size:14px;user-select:none}div.highlight:hover .copy-code,pre:hover .copy-code{display:block}.first-entry{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:320px;margin:var(--gap)0 calc(var(--gap) * 2)}.first-entry .entry-header{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.first-entry .entry-header h1{font-size:34px;line-height:1.3}.first-entry .entry-content{margin:14px 0;font-size:16px;-webkit-line-clamp:3}.first-entry .entry-footer{font-size:14px}.home-info .entry-content{-webkit-line-clamp:unset}.post-entry{position:relative;margin-bottom:var(--gap);padding:var(--gap);background:var(--entry);border-radius:var(--radius);transition:transform .1s;border:1px solid var(--border)}.post-entry:active{transform:scale(.96)}.tag-entry .entry-cover{display:none}.entry-header h2{font-size:24px;line-height:1.3}.entry-content{margin:8px 0;color:var(--secondary);font-size:14px;line-height:1.6;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.entry-footer{color:var(--secondary);font-size:13px}.entry-link{position:absolute;left:0;right:0;top:0;bottom:0}.entry-hint{color:var(--secondary)}.entry-hint-parent{display:flex;justify-content:space-between}.entry-cover{font-size:14px;margin-bottom:var(--gap);text-align:center}.entry-cover img{border-radius:var(--radius);pointer-events:none;width:100%;height:auto}.entry-cover a{color:var(--secondary);box-shadow:0 1px 0 var(--primary)}.page-header,.post-header{margin:24px auto var(--content-gap)}.post-title{margin-bottom:2px;font-size:40px}.post-description{margin-top:10px;margin-bottom:5px}.post-meta,.breadcrumbs{color:var(--secondary);font-size:14px;display:flex;flex-wrap:wrap}.post-meta .i18n_list li{display:inline-flex;list-style:none;margin:auto 3px;box-shadow:0 1px 0 var(--secondary)}.breadcrumbs a{font-size:16px}.post-content{color:var(--content)}.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin:24px 0 16px}.post-content h1{margin:40px auto 32px;font-size:40px}.post-content h2{margin:32px auto 24px;font-size:32px}.post-content h3{font-size:24px}.post-content h4{font-size:16px}.post-content h5{font-size:14px}.post-content h6{font-size:12px}.post-content a,.toc a:hover{box-shadow:0 1px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.post-content a code{margin:auto 0;border-radius:0;box-shadow:0 -1px 0 var(--primary)inset}.post-content del{text-decoration:line-through}.post-content dl,.post-content ol,.post-content p,.post-content figure,.post-content ul{margin-bottom:var(--content-gap)}.post-content ol,.post-content ul{padding-inline-start:20px}.post-content li{margin-top:5px}.post-content li p{margin-bottom:0}.post-content dl{display:flex;flex-wrap:wrap;margin:0}.post-content dt{width:25%;font-weight:700}.post-content dd{width:75%;margin-inline-start:0;padding-inline-start:10px}.post-content dd~dd,.post-content dt~dt{margin-top:10px}.post-content table{margin-bottom:var(--content-gap)}.post-content table th,.post-content table:not(.highlighttable,.highlight table,.gist .highlight) td{min-width:80px;padding:8px 5px;line-height:1.5;border-bottom:1px solid var(--border)}.post-content table th{text-align:start}.post-content table:not(.highlighttable) td code:only-child{margin:auto 0}.post-content .highlight table{border-radius:var(--radius)}.post-content .highlight:not(table){margin:10px auto;background:var(--code-block-bg)!important;border-radius:var(--radius);direction:ltr}.post-content li>.highlight{margin-inline-end:0}.post-content ul pre{margin-inline-start:calc(var(--gap) * -2)}.post-content .highlight pre{margin:0}.post-content .highlighttable{table-layout:fixed}.post-content .highlighttable td:first-child{width:40px}.post-content .highlighttable td .linenodiv{padding-inline-end:0!important}.post-content .highlighttable td .highlight,.post-content .highlighttable td .linenodiv pre{margin-bottom:0}.post-content code{margin:auto 4px;padding:4px 6px;font-size:.78em;line-height:1.5;background:var(--code-bg);border-radius:2px}.post-content pre code{display:grid;margin:auto 0;padding:10px;color:#d5d5d6;background:var(--code-block-bg)!important;border-radius:var(--radius);overflow-x:auto;word-break:break-all}.post-content blockquote{margin:20px 0;padding:0 14px;border-inline-start:3px solid var(--primary)}.post-content hr{margin:30px 0;height:2px;background:var(--tertiary);border:0}.post-content iframe{max-width:100%}.post-content img{border-radius:4px;margin:1rem 0}.post-content img[src*="#center"]{margin:1rem auto}.post-content figure.align-center{text-align:center}.post-content figure>figcaption{color:var(--primary);font-size:16px;font-weight:700;margin:8px 0 16px}.post-content figure>figcaption>p{color:var(--secondary);font-size:14px;font-weight:400}.toc{margin:0 2px 40px;border:1px solid var(--border);background:var(--code-bg);border-radius:var(--radius);padding:.4em}.dark .toc{background:var(--entry)}.toc details summary{cursor:zoom-in;margin-inline-start:20px}.toc details[open] summary{cursor:zoom-out}.toc .details{display:inline;font-weight:500}.toc .inner{margin:0 20px;padding:10px 20px}.toc li ul{margin-inline-start:var(--gap)}.toc summary:focus{outline:0}.post-footer{margin-top:56px}.post-footer>*{margin-bottom:10px}.post-tags{display:flex;flex-wrap:wrap;gap:10px}.post-tags li{display:inline-block}.post-tags a,.share-buttons,.paginav{border-radius:var(--radius);background:var(--code-bg);border:1px solid var(--border)}.post-tags a{display:block;padding:0 14px;color:var(--secondary);font-size:14px;line-height:34px;background:var(--code-bg)}.post-tags a:hover,.paginav a:hover{background:var(--border)}.share-buttons{padding:10px;display:flex;justify-content:center;overflow-x:auto;gap:10px}.share-buttons li,.share-buttons a{display:inline-flex}.share-buttons a:not(:last-of-type){margin-inline-end:12px}h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,h5:hover .anchor,h6:hover .anchor{display:inline-flex;color:var(--secondary);margin-inline-start:8px;font-weight:500;user-select:none}.paginav{display:flex;line-height:30px}.paginav a{padding-inline-start:14px;padding-inline-end:14px;border-radius:var(--radius)}.paginav .title{letter-spacing:1px;text-transform:uppercase;font-size:small;color:var(--secondary)}.paginav .prev,.paginav .next{width:50%}.paginav span:hover:not(.title){box-shadow:0 1px}.paginav .next{margin-inline-start:auto;text-align:right}[dir=rtl] .paginav .next{text-align:left}h1>a>svg{display:inline}img.in-text{display:inline;margin:auto}.post-content p{text-align:justify}.post-content li{text-align:justify}.highlight pre{background-color:#1b2631!important;font-weight:500}.buttons,.main .profile{display:flex;justify-content:center}.main .profile{align-items:center;min-height:calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));text-align:center}.profile .profile_inner{display:flex;flex-direction:column;align-items:center;gap:10px}.profile img{border-radius:50%}.buttons{flex-wrap:wrap;max-width:400px}.button{background:var(--tertiary);border-radius:var(--radius);margin:8px;padding:6px;transition:transform .1s}.button-inner{padding:0 8px}.button:active{transform:scale(.96)}#searchbox input{padding:4px 10px;width:100%;color:var(--primary);font-weight:700;border:2px solid var(--tertiary);border-radius:var(--radius)}#searchbox input:focus{border-color:var(--secondary)}#searchResults li{list-style:none;border-radius:var(--radius);padding:10px;margin:10px 0;position:relative;font-weight:500}#searchResults{margin:10px 0;width:100%}#searchResults li:active{transition:transform .1s;transform:scale(.98)}#searchResults a{position:absolute;width:100%;height:100%;top:0;left:0;outline:none}#searchResults .focus{transform:scale(.98);border:2px solid var(--tertiary)}.terms-tags li{display:inline-block;margin:10px;font-weight:500}.terms-tags a{display:block;padding:3px 10px;background:var(--tertiary);border-radius:6px;transition:transform .1s}.terms-tags a:active{background:var(--tertiary);transform:scale(.96)}.bg{color:#cad3f5;background-color:#24273a}.chroma{color:#cad3f5;background-color:#24273a}.chroma .x{}.chroma .err{color:#ed8796}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#474733}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .line{display:flex}.chroma .k{color:#c6a0f6}.chroma .kc{color:#f5a97f}.chroma .kd{color:#ed8796}.chroma .kn{color:#8bd5ca}.chroma .kp{color:#c6a0f6}.chroma .kr{color:#c6a0f6}.chroma .kt{color:#ed8796}.chroma .n{}.chroma .na{color:#8aadf4}.chroma .nb{color:#91d7e3}.chroma .bp{color:#91d7e3}.chroma .nc{color:#eed49f}.chroma .no{color:#eed49f}.chroma .nd{color:#8aadf4;font-weight:700}.chroma .ni{color:#8bd5ca}.chroma .ne{color:#f5a97f}.chroma .nf{color:#8aadf4}.chroma .fm{color:#8aadf4}.chroma .nl{color:#91d7e3}.chroma .nn{color:#f5a97f}.chroma .nx{}.chroma .py{color:#f5a97f}.chroma .nt{color:#c6a0f6}.chroma .nv{color:#f4dbd6}.chroma .vc{color:#f4dbd6}.chroma .vg{color:#f4dbd6}.chroma .vi{color:#f4dbd6}.chroma .vm{color:#f4dbd6}.chroma .l{}.chroma .ld{}.chroma .s{color:#a6da95}.chroma .sa{color:#ed8796}.chroma .sb{color:#a6da95}.chroma .sc{color:#a6da95}.chroma .dl{color:#8aadf4}.chroma .sd{color:#6e738d}.chroma .s2{color:#a6da95}.chroma .se{color:#8aadf4}.chroma .sh{color:#6e738d}.chroma .si{color:#a6da95}.chroma .sx{color:#a6da95}.chroma .sr{color:#8bd5ca}.chroma .s1{color:#a6da95}.chroma .ss{color:#a6da95}.chroma .m{color:#f5a97f}.chroma .mb{color:#f5a97f}.chroma .mf{color:#f5a97f}.chroma .mh{color:#f5a97f}.chroma .mi{color:#f5a97f}.chroma .il{color:#f5a97f}.chroma .mo{color:#f5a97f}.chroma .o{color:#91d7e3;font-weight:700}.chroma .ow{color:#91d7e3;font-weight:700}.chroma .p{}.chroma .c{color:#6e738d;font-style:italic}.chroma .ch{color:#6e738d;font-style:italic}.chroma .cm{color:#6e738d;font-style:italic}.chroma .c1{color:#6e738d;font-style:italic}.chroma .cs{color:#6e738d;font-style:italic}.chroma .cp{color:#6e738d;font-style:italic}.chroma .cpf{color:#6e738d;font-weight:700;font-style:italic}.chroma .g{}.chroma .gd{color:#ed8796;background-color:#363a4f}.chroma .ge{font-style:italic}.chroma .gr{color:#ed8796}.chroma .gh{color:#f5a97f;font-weight:700}.chroma .gi{color:#a6da95;background-color:#363a4f}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{color:#f5a97f;font-weight:700}.chroma .gt{color:#ed8796}.chroma .gl{text-decoration:underline}.chroma .w{}.chroma{background-color:unset!important}.chroma .hl{display:flex}.chroma .lnt{padding:0 0 0 12px}.highlight pre.chroma code{padding:8px 0}.highlight pre.chroma .line .cl,.chroma .ln{padding:0 10px}.chroma .lntd:last-of-type{width:100%}::-webkit-scrollbar-track{background:0 0}.list:not(.dark)::-webkit-scrollbar-track{background:var(--code-bg)}::-webkit-scrollbar-thumb{background:var(--tertiary);border:5px solid var(--theme);border-radius:var(--radius)}.list:not(.dark)::-webkit-scrollbar-thumb{border:5px solid var(--code-bg)}::-webkit-scrollbar-thumb:hover{background:var(--secondary)}::-webkit-scrollbar:not(.highlighttable,.highlight table,.gist .highlight){background:var(--theme)}.post-content .highlighttable td .highlight pre code::-webkit-scrollbar{display:none}.post-content :not(table) ::-webkit-scrollbar-thumb{border:2px solid var(--code-block-bg);background:#717175}.post-content :not(table) ::-webkit-scrollbar-thumb:hover{background:#a3a3a5}.gist table::-webkit-scrollbar-thumb{border:2px solid #fff;background:#adadad}.gist table::-webkit-scrollbar-thumb:hover{background:#707070}.post-content table::-webkit-scrollbar-thumb{border-width:2px}@media screen and (min-width:768px){::-webkit-scrollbar{width:19px;height:11px}}@media screen and (max-width:768px){:root{--gap:14px}.profile img{transform:scale(.85)}.first-entry{min-height:260px}.archive-month{flex-direction:column}.archive-year{margin-top:20px}.footer{padding:calc((var(--footer-height) - var(--gap) - 10px)/2)var(--gap)}}@media screen and (max-width:900px){.list .top-link{transform:translateY(-5rem)}}@media screen and (max-width:340px){.share-buttons{justify-content:unset}}@media(prefers-reduced-motion){.terms-tags a:active,.button:active,.post-entry:active,.top-link,#searchResults .focus,#searchResults li:active{transform:none}} \ No newline at end of file diff --git a/docs/assets/js/search.b976f5e01dab1e220fd3231c9341710991997025f4bdabcb7601e62f58b870b3.js b/docs/assets/js/search.b976f5e01dab1e220fd3231c9341710991997025f4bdabcb7601e62f58b870b3.js new file mode 100644 index 0000000..5ba1a0d --- /dev/null +++ b/docs/assets/js/search.b976f5e01dab1e220fd3231c9341710991997025f4bdabcb7601e62f58b870b3.js @@ -0,0 +1,19 @@ +/** + * Fuse.js v7.0.0 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2023 Kiro Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?O.getFn:n,o=t.fieldNormWeight,a=void 0===o?O.fieldNormWeight:o;r(this,e),this.norm=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(j).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),a=parseFloat(Math.round(o*r)/r);return n.set(i,a),a},clear:function(){n.clear()}}}(a,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,f(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();f(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?O.getFn:r,o=n.fieldNormWeight,a=void 0===o?O.fieldNormWeight:o,c=new A({getFn:i,fieldNormWeight:a});return c.setKeys(e.map(x)),c.setSources(t),c.create(),c}function I(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,a=t.expectedLocation,c=void 0===a?0:a,s=t.distance,h=void 0===s?O.distance:s,u=t.ignoreLocation,l=void 0===u?O.ignoreLocation:u,d=r/e.length;if(l)return d;var f=Math.abs(c-o);return h?d+f/h:f?1:d}var F=32;function C(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?O.location:i,a=r.distance,c=void 0===a?O.distance:a,s=r.threshold,h=void 0===s?O.threshold:s,u=r.findAllMatches,l=void 0===u?O.findAllMatches:u,d=r.minMatchCharLength,f=void 0===d?O.minMatchCharLength:d,v=r.includeMatches,g=void 0===v?O.includeMatches:v,y=r.ignoreLocation,p=void 0===y?O.ignoreLocation:y;if(t.length>F)throw new Error("Pattern length exceeds max of ".concat(F,"."));for(var m,b=t.length,k=e.length,M=Math.max(0,Math.min(o,k)),w=h,x=M,L=f>1||g,S=L?Array(k):[];(m=e.indexOf(t,x))>-1;){var _=I(t,{currentLocation:m,expectedLocation:M,distance:c,ignoreLocation:p});if(w=Math.min(_,w),x=m+b,L)for(var j=0;j=$;z-=1){var J=z-1,R=n[e.charAt(J)];if(L&&(S[J]=+!!R),K[z]=(K[z+1]<<1|1)&R,P&&(K[z]|=(A[z+1]|A[z])<<1|1|A[z+1]),K[z]&N&&(E=I(t,{errors:P,currentLocation:J,expectedLocation:M,distance:c,ignoreLocation:p}))<=w){if(w=E,(x=J)<=M)break;$=Math.max(1,2*M-x)}}if(I(t,{errors:P+1,currentLocation:M,expectedLocation:M,distance:c,ignoreLocation:p})>w)break;A=K}var U={isMatch:x>=0,score:Math.max(.001,E)};if(L){var B=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.minMatchCharLength,n=[],r=-1,i=-1,o=0,a=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}(S,f);B.length?g&&(U.indices=B):U.isMatch=!1}return U}function N(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,a=void 0===o?O.location:o,c=i.threshold,s=void 0===c?O.threshold:c,h=i.distance,u=void 0===h?O.distance:h,l=i.includeMatches,d=void 0===l?O.includeMatches:l,f=i.findAllMatches,v=void 0===f?O.findAllMatches:f,g=i.minMatchCharLength,y=void 0===g?O.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?O.isCaseSensitive:p,b=i.ignoreLocation,k=void 0===b?O.ignoreLocation:b;if(r(this,e),this.options={location:a,threshold:s,distance:u,includeMatches:d,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:k},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var M=function(e,t){n.chunks.push({pattern:e,alphabet:N(e),startIndex:t})},w=this.pattern.length;if(w>F){for(var x=0,L=w%F,S=w-L;x-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function D(e,t){t.score=e.score}var K=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;if(r(this,e),this.options=t(t({},O),i),this.options.useExtendedSearch)throw new Error("Extended search is not available");this._keyStore=new w(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof A))throw new Error("Incorrect 'index' type");this._myIndex=t||E(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){y(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{}).limit,n=void 0===t?-1:t,r=this.options,i=r.includeMatches,o=r.includeScore,a=r.shouldSort,c=r.sortFn,s=r.ignoreFieldNorm,h=f(e)?f(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return function(e,t){var n=t.ignoreFieldNorm,r=void 0===n?O.ignoreFieldNorm:n;e.forEach((function(e){var t=1;e.matches.forEach((function(e){var n=e.key,i=e.norm,o=e.score,a=n?n.weight:null;t*=Math.pow(0===o&&a?Number.EPSILON:o,(a||1)*(r?1:i))})),e.score=t}))}(h,{ignoreFieldNorm:s}),a&&h.sort(c),v(n)&&n>-1&&(h=h.slice(0,n)),function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?O.includeMatches:r,o=n.includeScore,a=void 0===o?O.includeScore:o,c=[];return i&&c.push($),a&&c.push(D),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return c.length&&c.forEach((function(t){t(e,r)})),r}))}(h,this._docs,{includeMatches:i,includeScore:o})}},{key:"_searchStringList",value:function(e){var t=T(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(y(n)){var a=t.searchIn(n),c=a.isMatch,s=a.score,h=a.indices;c&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:h}]})}})),r}},{key:"_searchLogical",value:function(e){throw new Error("Logical search is not available")}},{key:"_searchObjectList",value:function(e){var t=this,n=T(e,this.options),r=this._myIndex,i=r.keys,o=r.records,a=[];return o.forEach((function(e){var r=e.$,o=e.i;if(y(r)){var s=[];i.forEach((function(e,i){s.push.apply(s,c(t._findMatches({key:e,value:r[i],searcher:n})))})),s.length&&a.push({idx:o,item:r,matches:s})}})),a}},{key:"_findMatches",value:function(e){var t=e.key,n=e.value,r=e.searcher;if(!y(n))return[];var i=[];if(u(n))n.forEach((function(e){var n=e.v,o=e.i,a=e.n;if(y(n)){var c=r.searchIn(n),s=c.isMatch,h=c.score,u=c.indices;s&&i.push({score:h,key:t,value:n,idx:o,norm:a,indices:u})}}));else{var o=n.v,a=n.n,c=r.searchIn(o),s=c.isMatch,h=c.score,l=c.indices;s&&i.push({score:h,key:t,value:o,norm:a,indices:l})}return i}}]),e}();return K.version="7.0.0",K.createIndex=E,K.parseIndex=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?O.getFn:n,i=t.fieldNormWeight,o=void 0===i?O.fieldNormWeight:i,a=e.keys,c=e.records,s=new A({getFn:r,fieldNormWeight:o});return s.setKeys(a),s.setIndexRecords(c),s},K.config=O,K},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t(); +; +/* + PaperMod v7 + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2024 adityatelange +*/ + +; +(()=>{var s,r,c,e={distance:1e3,iscasesensitive:!1,keys:["title","permalink","summary","content"],location:0,minmatchcharlength:0,shouldsort:!0,threshold:.4},n=document.getElementById("searchResults"),t=document.getElementById("searchInput"),a=null,o=!1;window.onload=function(){let t=new XMLHttpRequest;t.onreadystatechange=function(){if(t.readyState===4)if(t.status===200){{let n=JSON.parse(t.responseText);if(n){let t={distance:100,threshold:.4,ignoreLocation:!0,keys:["title","permalink","summary","content"]};e&&(t={isCaseSensitive:e.iscasesensitive??!1,includeScore:e.includescore??!1,includeMatches:e.includematches??!1,minMatchCharLength:e.minmatchcharlength??1,shouldSort:e.shouldsort??!0,findAllMatches:e.findallmatches??!1,keys:e.keys??["title","permalink","summary","content"],location:e.location??0,threshold:e.threshold??.4,distance:e.distance??100,ignoreLocation:e.ignorelocation??!0}),s=new Fuse(n,t)}}}else console.log(t.responseText)},t.open("GET","../index.json"),t.send()};function i(e){document.querySelectorAll(".focus").forEach(function(e){e.classList.remove("focus")}),e?(e.focus(),document.activeElement=a=e,e.parentElement.classList.add("focus")):document.activeElement.parentElement.classList.add("focus")}function l(){o=!1,n.innerHTML=t.value="",t.focus()}t.onkeyup=function(){if(s){let t;if(e?t=s.search(this.value.trim(),{limit:e.limit}):t=s.search(this.value.trim()),t.length!==0){let e="";for(let n in t)e+=`
  • ${t[n].item.title} \xBB
  • `;n.innerHTML=e,o=!0,r=n.firstChild,c=n.lastChild}else o=!1,n.innerHTML=""}},t.addEventListener("search",function(){this.value||l()}),document.onkeydown=function(e){let d=e.key,s=document.activeElement,u=document.getElementById("searchbox").contains(s);if(s===t){let e=document.getElementsByClassName("focus");for(;e.length>0;)e[0].classList.remove("focus")}else a&&(s=a);if(d==="Escape")l();else if(!o||!u)return;else d==="ArrowDown"?(e.preventDefault(),s==t?i(n.firstChild.lastChild):s.parentElement!=c&&i(s.parentElement.nextSibling.lastChild)):d==="ArrowUp"?(e.preventDefault(),s.parentElement==r?i(t):s!=t&&i(s.parentElement.previousSibling.lastChild)):d==="ArrowRight"&&s.click()}})() \ No newline at end of file diff --git a/docs/categories/index.html b/docs/categories/index.html new file mode 100644 index 0000000..d0658cf --- /dev/null +++ b/docs/categories/index.html @@ -0,0 +1,6 @@ +Categories | ariascosb +
    + \ No newline at end of file diff --git a/docs/categories/index.xml b/docs/categories/index.xml new file mode 100644 index 0000000..c3e4159 --- /dev/null +++ b/docs/categories/index.xml @@ -0,0 +1,38 @@ + + + + Categories on ariascosb + http://localhost:1313/categories/ + Recent content in Categories on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Programacion + http://localhost:1313/categories/programacion/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/categories/programacion/ + + + + R + http://localhost:1313/categories/r/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/categories/r/ + + + + Programación + http://localhost:1313/categories/programaci%C3%B3n/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/categories/programaci%C3%B3n/ + + + + diff --git a/docs/categories/programacion/index.html b/docs/categories/programacion/index.html new file mode 100644 index 0000000..a83ff56 --- /dev/null +++ b/docs/categories/programacion/index.html @@ -0,0 +1,6 @@ +Programacion | ariascosb +

    Mis apuntes de R

    Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con <- Los comentarios se hacen con # x<-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(“C:\otro_directorio”) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages("readr") #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update....

    octubre 7, 2023 · 9 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/categories/programacion/index.xml b/docs/categories/programacion/index.xml new file mode 100644 index 0000000..9d20036 --- /dev/null +++ b/docs/categories/programacion/index.xml @@ -0,0 +1,24 @@ + + + + Programacion on ariascosb + http://localhost:1313/categories/programacion/ + Recent content in Programacion on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Mis apuntes de R + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Sat, 07 Oct 2023 11:07:37 -0500 + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con &lt;- Los comentarios se hacen con # x&lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(&ldquo;C:\otro_directorio&rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(&#34;readr&#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update. + + + diff --git a/docs/categories/programacion/page/1/index.html b/docs/categories/programacion/page/1/index.html new file mode 100644 index 0000000..f9f7c3d --- /dev/null +++ b/docs/categories/programacion/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/categories/programacion/ + \ No newline at end of file diff --git "a/docs/categories/programaci\303\263n/index.html" "b/docs/categories/programaci\303\263n/index.html" new file mode 100644 index 0000000..aea5bbc --- /dev/null +++ "b/docs/categories/programaci\303\263n/index.html" @@ -0,0 +1,8 @@ +Programación | ariascosb +

    Como configurar el directorio de inicio para WSL en la windows terminal

    Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory....

    mayo 29, 2023 · 1 min · Andres Riascos B.

    Mi script bash para actualizar Ubuntu

    WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu....

    mayo 22, 2023 · 2 min · Andres Riascos B.
    + \ No newline at end of file diff --git "a/docs/categories/programaci\303\263n/index.xml" "b/docs/categories/programaci\303\263n/index.xml" new file mode 100644 index 0000000..0d47ba5 --- /dev/null +++ "b/docs/categories/programaci\303\263n/index.xml" @@ -0,0 +1,33 @@ + + + + Programación on ariascosb + http://localhost:1313/categories/programaci%C3%B3n/ + Recent content in Programación on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Mon, 29 May 2023 15:30:03 -0500 + + + Como configurar el directorio de inicio para WSL en la windows terminal + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Mon, 29 May 2023 15:30:03 -0500 + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. + + + Mi script bash para actualizar Ubuntu + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + Mon, 22 May 2023 10:43:26 -0500 + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu. + + + diff --git "a/docs/categories/programaci\303\263n/page/1/index.html" "b/docs/categories/programaci\303\263n/page/1/index.html" new file mode 100644 index 0000000..d241d03 --- /dev/null +++ "b/docs/categories/programaci\303\263n/page/1/index.html" @@ -0,0 +1,2 @@ +http://localhost:1313/categories/programaci%C3%B3n/ + \ No newline at end of file diff --git a/docs/categories/r/index.html b/docs/categories/r/index.html new file mode 100644 index 0000000..70de5e3 --- /dev/null +++ b/docs/categories/r/index.html @@ -0,0 +1,6 @@ +R | ariascosb +

    Mis apuntes de R

    Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con <- Los comentarios se hacen con # x<-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(“C:\otro_directorio”) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages("readr") #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update....

    octubre 7, 2023 · 9 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/categories/r/index.xml b/docs/categories/r/index.xml new file mode 100644 index 0000000..3542b2c --- /dev/null +++ b/docs/categories/r/index.xml @@ -0,0 +1,24 @@ + + + + R on ariascosb + http://localhost:1313/categories/r/ + Recent content in R on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Mis apuntes de R + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Sat, 07 Oct 2023 11:07:37 -0500 + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con &lt;- Los comentarios se hacen con # x&lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(&ldquo;C:\otro_directorio&rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(&#34;readr&#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update. + + + diff --git a/docs/categories/r/page/1/index.html b/docs/categories/r/page/1/index.html new file mode 100644 index 0000000..806168d --- /dev/null +++ b/docs/categories/r/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/categories/r/ + \ No newline at end of file diff --git a/docs/favicon-16x16.png b/docs/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..b385b5db3eb0caec37c453ac2e2e2a71d315da74 GIT binary patch literal 399 zcmV;A0dW3_P)Px$Nl8ROR5(w~ldr47P!z{Mo3IT8u^44(A_!)K7MoQ;mKJ6ehChlvcvuF4VD}HO zTMP!lKf+{LSQ%mv5#fot$1c1uUQ&y4PrfC?4!To+`x7%^M-9#_37KX#20F1|D zs?{o`Qi&i4NG6jkmrFXG4(s)ra=A>u-;V=SRb?<3kVqsLjYd=|6(U93?Uq)n#cVdC z*Xs#Dp-{ke-8i7xY*MS$P!xsve9q-^p@h002ovPDHLkV1k2=tnUB- literal 0 HcmV?d00001 diff --git a/docs/favicon-32x32.png b/docs/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..db6b6f0f62e3d2215d657b801c02889f177dc70e GIT binary patch literal 791 zcmV+y1L*vTP)Px%(Md!>R9HvtmrW?FVHC%IbA6@AN@gUI@3OP;Eeo=;qFAu8GB+fY#$3g%I~wfV zoAMPUgoTo1gM^hLlB6sYij9v23b%7=-aGCv?&dO!d3NVL=XuZX`JeMVbxgn)zy??W z3m>!2fM3856JQ6ve@tGFEZ+n`Xw07ka3%oHpOjqF`T_h3_!aPN1qurbxx2e#b93{> zQ<0gONkT$`etUX)VsCGc-Q8UyCO$r%?CfmAzPY(!b#;}it1FKu=S>AdLqplw+0g`P zX=yw^|9P*vy1FPTDq?MIji8_)N=izYpP#3pp+OUfJvKJR%*>41k&%()rH^l%1X-1%Q2hHw6(Rdyu57e>*(kpEG&$srY0l7@$s=H5ol4ar>BREj0|Is*ulZU z)YsSl8^F@i68-)C3LuhKS69CYAPxbjt*vEoaq(4vzP>(gZ*OUBZG9ggHa3>6tu10= zV)Ud(M@PiP#c_Rot(!#w0qgASBrq_Lva&K-T3Sd-NV^=J3Ks`nwlC_bYNh>JAlb#;_&d0fPerVA0IVXYIkySLT+xZ0pRKZtJO+XRh9Z& z@vrqjR#q0Xv$I4;M|%gz&(CLQXo%$GWTW##LPGSk@)Ln`Z$bfHSXj^|bvm7f0)IE5 zKuu0gYB{{#f{~FCJ*`VVSFlKTadCmoX2aodXm8Zj)v4QJv9P_pO+i6{mO-welx=)` zT>TPTT3SkPZ!g{5-QEEzDk@lCUsnkCCACgXO=WIwj=a1)Z9ey_DJQ(Yzh`4(gT%x{ zg>kKihX-xy{r&wH{}jWwpJET(|M0=DfL{T>0-rsao%_Ua>Kf0#e&CRL4*Zny{5J<) VE8k`ohmQaN002ovPDHLkV1h=;b4LIG literal 0 HcmV?d00001 diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..484256ca3df846dc6a405b78a1fa974372d8b430 GIT binary patch literal 15406 zcmeI2cW4z)5XUdYUXrM>mna&8HH!XFL5U(Fb_ILHV1X#=ABrLxVlUWBVmFEf1sj5( zSpEu%-eO0es zT|J|0+qSJVZQ4}TD^{$i>aAL}lE}zNul!nnwZp=phdtJdm)k zFsm;<(EIoAB|bi0wJln-Ncm#$((m-?(=uny9IHRNxOVNDRi__qU~o=*ig}h z3m0V4q)8Sp^5499BR6i`kix=3_5ND-jEDRuPo4<#4uKJUOrAX18pE4h-PX8qV|n}b zt)TasHEYVpj~^}nk3PuXzJ0qiXwX3Lp=ZsSrRKLu5|Y*BRN$Ps0GZQ8W)TRvlbIL)32C4rp zdmr~cXuh_`+_-vo_5PRHz@PjF$}@GrKj5EQBldq_umlT-esBK2|JN7iB<2yVkz!IQ z=OktiBg&*?lX6WeFezB`6{sArff1}==Az6rsmP>2$NN+L!3t)r_fW#Fbp~eUA=@O~ z7HTEf3qu%xC}R&bTXFG*?mBnp&Ye5g23#9(ZQy@m1DxqEUAolDiSXv*)vjGz{WV`{CAf)8===!p18@*ZP>|HFq5GH~EPk9PR5$5W?H zskw2=FRf0zhp~%_isZ_bD=N-ItVh$WTesx%=g*eyFrGL369y4Z)${pIhd$)@D z3>`YuD+XWqSzoM!K;j$r_aJXbzdw0U*fB&LgE-Xc)vG;hS>tCtvi7m-@87>madEMV z+p$lPD`l6V=a{(Cu3ftnVeiDHUc7jrVm-v$>^yWReYsgyLKuEja)Hoi2a1P9ph*o@bkXJ5Q#}b>|go$`N~!qgK>5LKucnM*vbC= z`-T0HSRJ}yT{*|n_}PE#>z9741Lll9fxSWVf}gocPEHo~Rj6*=xB@!~~=r+)qV7OyY+=N+&=;#^urSxVye z#K}`qQdErZ=FOWb#_Al)7k=iBc=h@7=RM-BzVNf=z>oboWd%~_n?l^0waoX4_#}4a z97E&BhRJnc|KmHsK1Q6Dm^ShJa^=cdyfbFZQ1-*Rz#rke&HQxk+*$A=SO=|Jx3>B_ zW%^TRy``q6s_zIk{HwiC`w#3ltU>$$h&>oTgSa>EWS6;M!2)aj!UOTmWIgkJ!FHYB zJUhR?_pHBFt5(UfWy{oe(HkGW7Czs$ZQCru4+Ep!XS4GX$F=w8p1Hzr@i(``KAw9Y zvS+~_cJ0oiJCCjnxHjP0fNKM;4fwQyzd2u^v~N1tb3%B2iC+_g55+hzm~|dUMu@!w d*uiYiLD9JofAe|(o3nH#K literal 0 HcmV?d00001 diff --git a/docs/favicon_io.zip:Zone.Identifier b/docs/favicon_io.zip:Zone.Identifier new file mode 100644 index 0000000..acf9ea1 --- /dev/null +++ b/docs/favicon_io.zip:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +HostUrl=https://favicon.io/ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..8a9402f --- /dev/null +++ b/docs/index.html @@ -0,0 +1,8 @@ +ariascosb +

    Bienvenid@ 👋

    Un blog sobre ingeniería, matemáticas aplicadas y programación

    Mis apuntes de R

    Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con <- Los comentarios se hacen con # x<-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(“C:\otro_directorio”) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages("readr") #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update....

    octubre 7, 2023 · 9 min · Andres Riascos B.

    Como configurar el directorio de inicio para WSL en la windows terminal

    Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory....

    mayo 29, 2023 · 1 min · Andres Riascos B.

    Mi script bash para actualizar Ubuntu

    WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu....

    mayo 22, 2023 · 2 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/index.json b/docs/index.json new file mode 100644 index 0000000..f087e53 --- /dev/null +++ b/docs/index.json @@ -0,0 +1 @@ +[{"content":"Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con \u0026lt;- Los comentarios se hacen con # x\u0026lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(\u0026ldquo;C:\\otro_directorio\u0026rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(\u0026#34;readr\u0026#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update.packages() #Actualizar paquetes R #3.6.1 Factores: Agrupación especial de datos. Ejemplo: podemos tener dos tipos de valores en la variable sexo: 1 y 2. A las cuales le podemos asignar unas etiquetas o niveles. Hombres (1) y Mujeres (2). Esto es muy útil para el tratamiento de datos. OJO: los factores siempre quedan guardados como numeros con etiquetas en texto En R, usamos NA para representar datos perdidos, mientras que NULL representa la ausencia de datos. La diferencia entre las dos es que un dato NULL aparece sólo cuando R intenta recuperar un dato y no encuentra nada, mientras que NA es usado para representar explícitamente datos perdidos, omitidos o que por alguna razón son faltantes. NA además puede aparecer como resultado de una operación realizada, pero no tuvo éxito en su ejecución. A diferencia de la mayoría de los lenguajes de programación, los índices en R empiezan en 1, no en 0. Funciones basicas #Limpiar datos rm(list=ls()) #Promedio mean() #Desviacion estandar sd() #Coeficiente de correlacion cor() #Resumen estadistico summary() #Mirar los primeros 10 datos head() #Leer datos CSV paquete base bcancer \u0026lt;- read.csv(\u0026#34;breast-cancer-wis.csv\u0026#34;) bcancer \u0026lt;- read.table(file = \u0026#34;breast-cancer-wis.csv\u0026#34;, header = TRUE, sep = \u0026#34;,\u0026#34;, col.names = nombres) #Exportar datos paquete base write.csv(x = iris, file = \u0026#34;iris.csv\u0026#34;, row.names = FALSE) #OJO NOTA: Se recomiendas usar data table para leer y escribir dado que es mas #rapido que el paquete base #Uso formato .Rds saveRDS(object = mi_lista, file = \u0026#34;mi_lista.rds\u0026#34;) mi_lista_importado \u0026lt;- readRDS(file = \u0026#34;mi_lista.rds\u0026#34;) #Usar un script R desde otro archivo source(\u0026#34;MyScript.R\u0026#34;) Directorios de trabajo\ngetwd() #Directorio actual de trabajo setwd(\u0026#34;C:\\otro_directorio\u0026#34;) #Cambiar el directorio Organizar codigo. Rstudio automaticamente organiza nuestro codigo para que sea mas legible\nContorl +I Control+shift (Mayus) +A Verificar si las librerias estan y instalarlas\n#Verificar librerias list.of.packages \u0026lt;- c(\u0026#34;shiny\u0026#34;,\u0026#34;shinydashboard\u0026#34;,\u0026#34;ggplot2\u0026#34;,\u0026#34;data.table\u0026#34;,\u0026#34;lubridate\u0026#34;) new.packages \u0026lt;- list.of.packages[!(list.of.packages %in% installed.packages()[,\u0026#34;Package\u0026#34;])] if(length(new.packages)) install.packages(new.packages) Acomodar ceros a la derecha y a la izquierda\nSimula la funcion right de excel right = function(text, num_char) { substr(text, nchar(text) - (num_char-1), nchar(text)) } cron[,cantidad.requerida.mix:=round((sum.mix/fc.m.kg)*1000,4),] #Numeros a la derecha cron[,cantidad.requerida.mix:=sprintf(\u0026#34;%f\u0026#34;,cantidad.requerida.mix),] #Numeros a la izquierda cron[,cantidad.requerida.mix:=paste0(\u0026#34;000000000\u0026#34;,cantidad.requerida.mix)] cron[,cantidad.requerida.mix:=right(cantidad.requerida.mix,16)] Tipos de datos Conversión (Coercion). Cuando estas funciones tienen éxito en la coerción, nos devuelven datos del tipo pedido. Si fallan, obtenemos NA como resultado. as.integer()\t#Conversion a Entero as.numeric()\t#Conversion a decimal as.character()\t#Conversion a Cadena de texto as.factor()\t#Conversion a Factor as.logical()\t#Conversion a Lógico as.null()\t#Conversion a NULL #La conversion se da en el siguiente sentido y nunca en el sentido contrario lógico -\u0026gt; entero -\u0026gt; numérico -\u0026gt; cadena de texto (logical -\u0026gt; integer -\u0026gt; numeric -\u0026gt; character) Verficar el tipo de dato str(a) #Me indica que tipo de dato es class(a) #Me indica que tipo de dato es is.integer()\t#Verificar si es Entero is.numeric()\t#Verificar si es decimal is.character()\t#Verificar si es Cadena de texto is.factor()\t#Verificar si es Factor is.logical()\t#Verificar si es Lógico is.null()\t#Verificar si es NULL Operadores Relacionales Operador Comparación \u0026lt; menor que \u0026lt;= menor que \u0026gt; mayor que \u0026gt;= mayor que == igual que != No es igual que Lógicos Operador Comparación x | y x O y es verdadero x \u0026amp; y x Y y es verdadero !x x no es verdadero (negación) Si se comparan dos cadenas de texto con \u0026lt; o \u0026gt; se usa como criterio el orden alfabético\nEstructuras de datos Vectores Un vector es una colección de uno o más datos del mismo tipo.\nvector=c(1,2,3) #La c indica concatenar vector + 2 ===\u0026gt; 3,4,5 vector * 2 ===\u0026gt; 2,4,6 vector[1] #Seleccionar el elemento 1 del vector vector[c(1,3)] #Seleccionar el elemento 1 y 3 del vector vector[1:2] #Seleccionar los elementos del 1 al 2 Matrices y arrays Son vectores multidimensionales. Al igual que un vector, únicamente pueden contener datos de un sólo tipo, pero además de largo, tienen más dimensiones. Cuentan con dos dimensiones, un “largo”\u0026quot; y un “alto”. Las matrices son, por lo tanto, una estructura con forma rectangular, con renglones y columnas.\nmatrix(1:12, nrow = 3, ncol = 4) #Crear matrices con 3 filas y 4 columnas #Se van organizando de arriba hacia abajo por columnas [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 cbind() #para unir vectores, usando cada uno como una columna. rbind() #para unir vectores, usando cada uno como un renglón. dim() # para la dimension de una matriz t(matriz) # Trasponer una matriz Se puede sumar, multiplicar y elevar por un escalar una matriz. Esto afecta todos los valores que existen en ella matriz[filas, columnas] #Seleccion de datos Las matrices siempre serán rectangulares. Cuando intentamos acomodar un número diferente de elementos y celdas, ocurren dos cosas diferentes. Si el número de elementos es mayor al número de celdas, se acomodarán todos los datos que sean posibles y los demás se omitirán. Si, por el contrario, el número de celdas es mayor que el número de elementos, estos se repetirán.\nDataframes Los data frames son estructuras de datos que pueden contener datos de diferentes tipos. los renglones en un data frame representan casos, individuos u observaciones, mientras que las columnas representan atributos, rasgos o variables. Un data frame está compuesto por vectores.\nmi_df \u0026lt;- data.frame( \u0026#34;entero\u0026#34; = 1:4, \u0026#34;factor\u0026#34; = c(\u0026#34;a\u0026#34;, \u0026#34;b\u0026#34;, \u0026#34;c\u0026#34;, \u0026#34;d\u0026#34;), \u0026#34;numero\u0026#34; = c(1.2, 3.4, 4.5, 5.6), \u0026#34;cadena\u0026#34; = as.character(c(\u0026#34;a\u0026#34;, \u0026#34;b\u0026#34;, \u0026#34;c\u0026#34;, \u0026#34;d\u0026#34;)) ) dim(mi_df) #Conocer dimensiones dataframe names(mi_df) #Conocer el nombre de las columnas dataFrame as.data.frame() #Convertir a data frame data.frame[indice_filas, indice_columnas] #Seleccion de datos data.frame[\u0026#34;name_column\u0026#34;] #Seleccion de datos data.frame$name_column #Seleccion de datos mi_df$c(\u0026#34;nombre\u0026#34;, \u0026#34;edad\u0026#34;) #Seleccionar datos. iris[iris$Sepal.Length \u0026gt; 7.5, ] #Seleccion con validacion #Otra forma de seleccion #Data, condicion, seleccion de columnas subset(x = iris, subset = Sepal.Length \u0026gt; 7.5, select = c(\u0026#34;Sepal.Length\u0026#34;, \u0026#34;Species\u0026#34;)) Listas Las listas, al igual que los vectores, son estructuras de datos unidimensionales, sólo tienen largo, pero a diferencia de los vectores cada uno de sus elementos puede ser de diferente tipo o incluso de diferente clase. Al igual que con un data frame, tenemos la opción de poner nombre a cada elemento de una lista.\nmi_matriz \u0026lt;- matrix(1:4, nrow = 2) mi_df \u0026lt;- data.frame(\u0026#34;num\u0026#34; = 1:3, \u0026#34;let\u0026#34; = c(\u0026#34;a\u0026#34;, \u0026#34;b\u0026#34;, \u0026#34;c\u0026#34;)) mi_lista \u0026lt;- list(\u0026#34;un_vector\u0026#34; = mi_vector, \u0026#34;una_matriz\u0026#34; = mi_matriz, \u0026#34;un_df\u0026#34; = mi_df) mi_lista Coerción Función Coerciona a Coersionar exitosamente a as.vector() vector matrices as.matrix() matrices vectores, data frames as.data.frame() data frame vectores, matrices as.list() lista vectores, matrices, data frames Funciones #Definicion nombre \u0026lt;- function(argumento1,argumento2,etc) { operaciones } #Ejemplo area_cuad \u0026lt;- function(lado1, lado2) { lado1 * lado2 } #Forma de llamado 1 area_cuad(lado1 = 4, lado2 = 6) #Forma de llamado 2 area_cuad(4,6) Estructuras de control If-Else if(condición) { operaciones_si_la_condición_es_TRUE } else { operaciones_si_la_condición_es_FALSE } #Ejemplo if(media \u0026gt;= 6) { print(paste0(texto, \u0026#34;aprobado\u0026#34;)) } else { print(paste0(texto, \u0026#34;reprobado\u0026#34;)) } #Otra forma ifelse(vector, valor_si_TRUE, valor_si_FALSE) #Ejemplo ifelse(num %% 2 == 0 \u0026amp; num %% 3, \u0026#34;Divisible\u0026#34;, \u0026#34;No divisible\u0026#34;) For Este ciclo no es el mas recomendado, existe otras alternativas en R mas potenciales para ejecutar estas tareas.\nfor(elemento in objeto) { operacion_con_elemento } #Ejemplo dado \u0026lt;- 1:6 for(cara in dado) { dado ^ 2 } For para añadir filas a una data table\nv\u0026lt;-colores$cod.ext.2 n\u0026lt;-1 list\u0026lt;-as.list(NULL) for (i in v){ a\u0026lt;-conector a$ext.2\u0026lt;-paste0(i) list[[n]]\u0026lt;-a conector1\u0026lt;-rbindlist(list) n\u0026lt;-n+1 } Para imprimir imagenes de un ggplot\ndata_g\u0026lt;-data[maquina==i,] p\u0026lt;-ggplot(data=data_g, aes(x=mes, y=metros, fill=metodo)) + geom_bar(stat=\u0026#34;identity\u0026#34;, position=position_dodge())+ geom_text(aes(label=metros), vjust=1.6, color=\u0026#34;white\u0026#34;, position = position_dodge(0.9), size=2.8)+ scale_fill_brewer(palette=\u0026#34;Paired\u0026#34;)+ theme_minimal()+ labs(title=paste0(i))+theme(plot.title = element_text(hjust = 0.5)) ggsave(paste0(i,\u0026#34;.png\u0026#34;)) print(p) While while(condicion) { operaciones } #Ejemplo while(i \u0026lt; 10) { print(\u0026#34;Presiona ESC para detener\u0026#34;) } Next y Break #Next (Salta parte de un cilo) for(i in 1:4) { if(i == 3) { next } print(i) } #Break (Rompe un ciclo) for(i in 1:10) { if(i == 3) { break } print(i) } Repeat repeat { operaciones un_break_para_detener } #Ejemplo repeat{ valor \u0026lt;- valor + 1 if(valor == 5) { break } } Si no incluimos un break, el bucle se repetirá indefinidamente y sólo lo podremos detener pulsando la tecla ESC, así que hay que tener cuidado al usar esta estructura de control\nData table Librería mas veloz y flexible para el manejo de tablas en R.\nSiempre que tengas datos para analizar en computador, trata de tenerlos en formato largo, es mucho más fácil de trabajar con ellos. Para convertir una tabla ancha en una larga, usa data.table::melt.\nSiempre que tengas que generar datos para interpretación por humanos, considera ponerlos en formato ancho, son más fáciles de entender. Podes lograrlo con data.table::dcast.\n#Actualizar todos los paquetes update.packages(ask = FALSE) #Instalar paquete install.packages(\u0026#34;data.table\u0026#34;) install.packages(\u0026#34;tidyverse\u0026#34;, dependencies = TRUE) #Cargar libreria library(data.table) #Crear data table mi_df \u0026lt;- data.table( \u0026#34;entero\u0026#34; = 1:4, \u0026#34;factor\u0026#34; = c(\u0026#34;a\u0026#34;, \u0026#34;b\u0026#34;, \u0026#34;c\u0026#34;, \u0026#34;d\u0026#34;), \u0026#34;numero\u0026#34; = c(1.2, 3.4, 4.5, 5.6), \u0026#34;cadena\u0026#34; = as.character(c(\u0026#34;a\u0026#34;, \u0026#34;b\u0026#34;, \u0026#34;c\u0026#34;, \u0026#34;d\u0026#34;)) ) #leer datos data \u0026lt;- fread(\u0026#34;data/item_julio.csv\u0026#34;) #Se recomienda usa r col class para idnicar que tipo de datos son y ahorrar tiempo de carga tipo\u0026lt;-c(\u0026#34;character\u0026#34;,\u0026#34;character\u0026#34;,\u0026#34;character\u0026#34;)#Permite cargar mas rapido y evitar errores conector \u0026lt;- fread(\u0026#34;data/conector_ref.csv\u0026#34;, colClasses = tipo) #Escribir datos fwrite(x =conector, file = \u0026#34;exit/testing.csv\u0026#34;, sep = \u0026#34;,\u0026#34;, dec = \u0026#34;.\u0026#34;) #eliminar duplicados unique(Item) #Estructura data table[i,j,by=k] #i sirve para filtrar irisDT[Species == \u0026#34;setosa\u0026#34;, ] irisDT[Petal.Width \u0026gt; 2, ] irisDT[Petal.Width \u0026lt;= 0.3 \u0026amp; Sepal.Length \u0026gt; 5,] irisDT[c(1, 4),] irisDT[c(\u0026#34;color\u0026#34;,\u0026#34;altura\u0026#34;),] #La j sirve para operar (¿que queremos hacer con los datos?) irisDT[Species == \u0026#34;versicolor\u0026#34;, mean(Sepal.Length)] irisDT[Species == \u0026#34;versicolor\u0026#34;, .(promedio = mean(Sepal.Length), mediana = median(Sepal.Length))] #varias operaciones al mismo tiempo irisDT[Species == \u0026#34;versicolor\u0026#34;, hist(Sepal.Length)] #La k sirve para agrupar irisDT[ , mean(Sepal.Length), by = Species] irisDT[Sepal.Width \u0026gt;= 3, mean(Sepal.Length), by = Species] irisDT[, mean(Sepal.Length), by = .(Species, petaloPequeno = Petal.Width \u0026lt; .3)] #Contar el número de registros. .N #Cambiar nombres a las variables names (DatosTdoPeso) = c(\u0026#34;Tratamiento\u0026#34;, \u0026#34;Variedad\u0026#34;, \u0026#34;Parcela\u0026#34;, \u0026#34;Peso46a60\u0026#34;) #Cambiar NA por otros valores my_data[is.na(my_data)] \u0026lt;- 0 #Cambiar solo un nombre de una columna names (DatosTdoPeso)[3] = \u0026#34;Parcela\u0026#34; #Cambiar el orden de las columnas, se recomienda hacerlo por nombres DatosTdoPeso1 = DatosTdoPeso [ , c(3,2,1,7,6,5,4)] DatosTdoPeso1 = DatosTdoPeso [ , c(\u0026#34;name\u0026#34;,\u0026#34;fecha\u0026#34;,\u0026#34;key\u0026#34;)] #cambiar el orden del eje x en ggplot2 equiposDeslizadores1$month \u0026lt;- factor(equiposDeslizadores1$month,levels = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13),labels = c(\u0026#34;YTD18\u0026#34;, \u0026#34;1\u0026#34;,\u0026#34;2\u0026#34;,\u0026#34;3\u0026#34;,\u0026#34;4\u0026#34;,\u0026#34;5\u0026#34;,\u0026#34;6\u0026#34;,\u0026#34;7\u0026#34;,\u0026#34;8\u0026#34;,\u0026#34;9\u0026#34;,\u0026#34;10\u0026#34;,\u0026#34;11\u0026#34;,\u0026#34;12\u0026#34;,\u0026#34;YTD19\u0026#34;)) #Funciones especiales #Entre irisDT[Sepal.Length %between% c(5.1, 5.2)] #Como irisDT[Species %like% \u0026#34;v.*\u0026#34;,] #Tabla ancha a larga dfLarga_2 \u0026lt;- melt(dfAncha, id.vars = \u0026#34;item\u0026#34;, #id=datos que no vamos a cambiar variable.name = \u0026#34;region\u0026#34;, #var.name= nombre encabezados a poner largos value.name = \u0026#34;valor\u0026#34;, #value= valores de los var.name variable.factor = FALSE) #Tabla larga a ancha dfAncha_2 \u0026lt;- dcast(dfLarga, item ~ region, # x ~ y (filas ~ columnas) value.var = \u0026#34;valor\u0026#34;) #Contar el numero de elementos por filas. Se uso en lista de materiales col.base\u0026lt;-col.base[ , index := 1:.N , by = c(\u0026#34;cod.ext.2.col\u0026#34;) ] #Convierte , en . epoxica$produccion.und\u0026lt;-gsub(\u0026#34;,\u0026#34;, \u0026#34;.\u0026#34;, epoxica$produccion.und) #Nueva forma buscarv nominalesEnsamble \u0026lt;- fread(\u0026#34;files/nominales/nominales_ensamble.csv\u0026#34;) setkeyv(ensamble, c(\u0026#34;maquina\u0026#34;, \u0026#34;proceso\u0026#34;)) setkeyv(nominalesEnsamble, c(\u0026#34;maquina\u0026#34;, \u0026#34;proceso\u0026#34;)) ensamble[nominalesEnsamble, nominal := nominal] Excel library(\u0026#34;writexl\u0026#34;) library(\u0026#34;readxl\u0026#34;) data\u0026lt;- read_excel(\u0026#34;data/data.xlsx\u0026#34;) data\u0026lt;-as.data.table(data) write_xlsx(comision, \u0026#34;exits/comisiones.xlsx\u0026#34;) ","permalink":"http://localhost:1313/2023/10/mis-apuntes-de-r/","summary":"Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con \u0026lt;- Los comentarios se hacen con # x\u0026lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(\u0026ldquo;C:\\otro_directorio\u0026rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(\u0026#34;readr\u0026#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update.","title":"Mis apuntes de R"},{"content":"Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos.\nEntramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. Después del código //wsl$/Ubuntu-20.04 se añade la ubicación que deseamos. En mi caso quiero iniciar dentro de la carpeta /home/ariascosb/Projects por tanto debe quedar asi: { \u0026#34;guid\u0026#34;: \u0026#34;{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}\u0026#34;, \u0026#34;hidden\u0026#34;: false, \u0026#34;name\u0026#34;: \u0026#34;Ubuntu-20.04\u0026#34;, \u0026#34;source\u0026#34;: \u0026#34;Windows.Terminal.Wsl\u0026#34;, \u0026#34;startingDirectory\u0026#34; : \u0026#34;//wsl$/Ubuntu-20.04/home/ariascosb/Projects\u0026#34; }, NOTA: Solo se debe agregar la linea startingDirectory, por favor no modifiques nada adicional. Si estas usando otra version de linux cambias el Ubuntu-20.04 por la tuya\n","permalink":"http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/","summary":"Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos.\nEntramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory.","title":"Como configurar el directorio de inicio para WSL en la windows terminal"},{"content":"WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea.\nCreamos un script .sh, en mi caso lo llamo ubuntu.sh nano ubuntu.sh Ingresamos el siguiente código dentro del script. Este permite actualizar los repositorios, luego los paquetes y finalmente limpiar la cache. Al final siempre se imprime un mensaje de éxito o alerta para avisarnos el estado final del proceso. #!/bin/bash update() { apt-get update; apt-get upgrade; if [ $? -ne 0 ]; then echo \u0026#34;UBUNTU NO SE ACTUALIZO CORRECTAMENTE \u0026#34; else apt-get autoclean; apt-get clean; apt-get autoremove echo \u0026#34;UBUNTU SE ACTUALIZO CORRECTAMENTE \u0026#34; fi } update Añadimos permisos de ejecución. chmod +x ubuntu.sh Creamos un alias. Esto nos permitirá ejecutar el script con un nombre personalizado. Iniciamos abriendo el archivo .bashrc nano ~/.bashrc Bajamos hasta el final del archivo .bashrc y copiamos la siguiente linea de código. Debes tener cuidado con colocar la ubicación correcta de tu archivo .sh alias ubuntu=\u0026#34;sudo /home/ariascosb/ubuntu.sh\u0026#34; En mi caso el nombre personalizado que les estoy dando es ubuntu, pero tu lo puedes cambiar al editar la palabra que esta después de alias y antes del signo igual (=).\nEsta todo listo, ahora para ejecutar el script solo bastara con escribir en la terminal el alias (en mi caso: ubuntu), digitamos nuestra contraseña y automáticamente se actualizara nuestra distribución en WSL. ubuntu ","permalink":"http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/","summary":"WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea.\nCreamos un script .sh, en mi caso lo llamo ubuntu.","title":"Mi script bash para actualizar Ubuntu"}] \ No newline at end of file diff --git a/docs/index.xml b/docs/index.xml new file mode 100644 index 0000000..9c3a287 --- /dev/null +++ b/docs/index.xml @@ -0,0 +1,40 @@ + + + + ariascosb + http://localhost:1313/ + Recent content on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Mis apuntes de R + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Sat, 07 Oct 2023 11:07:37 -0500 + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con &lt;- Los comentarios se hacen con # x&lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(&ldquo;C:\otro_directorio&rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(&#34;readr&#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update. + + + Como configurar el directorio de inicio para WSL en la windows terminal + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Mon, 29 May 2023 15:30:03 -0500 + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. + + + Mi script bash para actualizar Ubuntu + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + Mon, 22 May 2023 10:43:26 -0500 + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu. + + + diff --git a/docs/page/1/index.html b/docs/page/1/index.html new file mode 100644 index 0000000..62c9212 --- /dev/null +++ b/docs/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/ + \ No newline at end of file diff --git a/docs/posts/images/Untitled 3.png b/docs/posts/images/Untitled 3.png new file mode 100644 index 0000000000000000000000000000000000000000..ddfac4149693faa457c6337a430fca5124ed0266 GIT binary patch literal 11046 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 PuNX4V6`vJ8F?#o3#hGzG literal 0 HcmV?d00001 diff --git a/docs/posts/images/Untitled 4.png b/docs/posts/images/Untitled 4.png new file mode 100644 index 0000000000000000000000000000000000000000..f58e990bdae364047e1deefaae859002dc379014 GIT binary patch literal 24823 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 Kp;#_&5&l2_*wbkM literal 0 HcmV?d00001 diff --git a/docs/posts/index.html b/docs/posts/index.html new file mode 100644 index 0000000..845f63e --- /dev/null +++ b/docs/posts/index.html @@ -0,0 +1,8 @@ +Posts | ariascosb +

    Mis apuntes de R

    Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con <- Los comentarios se hacen con # x<-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(“C:\otro_directorio”) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages("readr") #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update....

    octubre 7, 2023 · 9 min · Andres Riascos B.

    Como configurar el directorio de inicio para WSL en la windows terminal

    Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory....

    mayo 29, 2023 · 1 min · Andres Riascos B.

    Mi script bash para actualizar Ubuntu

    WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu....

    mayo 22, 2023 · 2 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/posts/index.xml b/docs/posts/index.xml new file mode 100644 index 0000000..9b1f9b9 --- /dev/null +++ b/docs/posts/index.xml @@ -0,0 +1,40 @@ + + + + Posts on ariascosb + http://localhost:1313/posts/ + Recent content in Posts on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Mis apuntes de R + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Sat, 07 Oct 2023 11:07:37 -0500 + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con &lt;- Los comentarios se hacen con # x&lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(&ldquo;C:\otro_directorio&rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(&#34;readr&#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update. + + + Como configurar el directorio de inicio para WSL en la windows terminal + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Mon, 29 May 2023 15:30:03 -0500 + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. + + + Mi script bash para actualizar Ubuntu + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + Mon, 22 May 2023 10:43:26 -0500 + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu. + + + diff --git a/docs/posts/page/1/index.html b/docs/posts/page/1/index.html new file mode 100644 index 0000000..5d60f8a --- /dev/null +++ b/docs/posts/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/posts/ + \ No newline at end of file diff --git a/docs/robots.txt b/docs/robots.txt new file mode 100644 index 0000000..bf017d4 --- /dev/null +++ b/docs/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Disallow: +Sitemap: http://localhost:1313/sitemap.xml diff --git a/docs/search/index.html b/docs/search/index.html new file mode 100644 index 0000000..928cd7c --- /dev/null +++ b/docs/search/index.html @@ -0,0 +1,6 @@ +Search | ariascosb +
    + \ No newline at end of file diff --git a/docs/site.webmanifest b/docs/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/docs/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml new file mode 100644 index 0000000..1778984 --- /dev/null +++ b/docs/sitemap.xml @@ -0,0 +1,66 @@ + + + + http://localhost:1313/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/categories/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/tags/ciencia-de-datos/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/tags/data-science/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/2023/10/mis-apuntes-de-r/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/posts/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/categories/programacion/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/tags/r/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/categories/r/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/tags/ + 2023-10-07T11:07:37-05:00 + + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + 2023-05-29T15:30:03-05:00 + + http://localhost:1313/tags/linux/ + 2023-05-29T15:30:03-05:00 + + http://localhost:1313/categories/programaci%C3%B3n/ + 2023-05-29T15:30:03-05:00 + + http://localhost:1313/tags/terminal-do-windows/ + 2023-05-29T15:30:03-05:00 + + http://localhost:1313/tags/ubuntu/ + 2023-05-29T15:30:03-05:00 + + http://localhost:1313/tags/windows-terminal/ + 2023-05-29T15:30:03-05:00 + + http://localhost:1313/tags/wsl/ + 2023-05-29T15:30:03-05:00 + + http://localhost:1313/tags/bash/ + 2023-05-22T10:43:26-05:00 + + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + 2023-05-22T10:43:26-05:00 + + http://localhost:1313/archivo/ + + http://localhost:1313/search/ + + diff --git a/docs/tags/bash/index.html b/docs/tags/bash/index.html new file mode 100644 index 0000000..e8138a9 --- /dev/null +++ b/docs/tags/bash/index.html @@ -0,0 +1,7 @@ +Bash | ariascosb +

    Mi script bash para actualizar Ubuntu

    WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu....

    mayo 22, 2023 · 2 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/bash/index.xml b/docs/tags/bash/index.xml new file mode 100644 index 0000000..d1e96e6 --- /dev/null +++ b/docs/tags/bash/index.xml @@ -0,0 +1,25 @@ + + + + Bash on ariascosb + http://localhost:1313/tags/bash/ + Recent content in Bash on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Mon, 22 May 2023 10:43:26 -0500 + + + Mi script bash para actualizar Ubuntu + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + Mon, 22 May 2023 10:43:26 -0500 + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu. + + + diff --git a/docs/tags/bash/page/1/index.html b/docs/tags/bash/page/1/index.html new file mode 100644 index 0000000..17f882f --- /dev/null +++ b/docs/tags/bash/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/bash/ + \ No newline at end of file diff --git a/docs/tags/ciencia-de-datos/index.html b/docs/tags/ciencia-de-datos/index.html new file mode 100644 index 0000000..8642064 --- /dev/null +++ b/docs/tags/ciencia-de-datos/index.html @@ -0,0 +1,6 @@ +Ciencia De Datos | ariascosb +

    Mis apuntes de R

    Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con <- Los comentarios se hacen con # x<-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(“C:\otro_directorio”) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages("readr") #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update....

    octubre 7, 2023 · 9 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/ciencia-de-datos/index.xml b/docs/tags/ciencia-de-datos/index.xml new file mode 100644 index 0000000..a4d34fa --- /dev/null +++ b/docs/tags/ciencia-de-datos/index.xml @@ -0,0 +1,24 @@ + + + + Ciencia De Datos on ariascosb + http://localhost:1313/tags/ciencia-de-datos/ + Recent content in Ciencia De Datos on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Mis apuntes de R + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Sat, 07 Oct 2023 11:07:37 -0500 + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con &lt;- Los comentarios se hacen con # x&lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(&ldquo;C:\otro_directorio&rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(&#34;readr&#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update. + + + diff --git a/docs/tags/ciencia-de-datos/page/1/index.html b/docs/tags/ciencia-de-datos/page/1/index.html new file mode 100644 index 0000000..a7b44e5 --- /dev/null +++ b/docs/tags/ciencia-de-datos/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/ciencia-de-datos/ + \ No newline at end of file diff --git a/docs/tags/data-science/index.html b/docs/tags/data-science/index.html new file mode 100644 index 0000000..50dd373 --- /dev/null +++ b/docs/tags/data-science/index.html @@ -0,0 +1,6 @@ +Data Science | ariascosb +

    Mis apuntes de R

    Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con <- Los comentarios se hacen con # x<-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(“C:\otro_directorio”) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages("readr") #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update....

    octubre 7, 2023 · 9 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/data-science/index.xml b/docs/tags/data-science/index.xml new file mode 100644 index 0000000..83b964c --- /dev/null +++ b/docs/tags/data-science/index.xml @@ -0,0 +1,24 @@ + + + + Data Science on ariascosb + http://localhost:1313/tags/data-science/ + Recent content in Data Science on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Mis apuntes de R + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Sat, 07 Oct 2023 11:07:37 -0500 + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con &lt;- Los comentarios se hacen con # x&lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(&ldquo;C:\otro_directorio&rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(&#34;readr&#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update. + + + diff --git a/docs/tags/data-science/page/1/index.html b/docs/tags/data-science/page/1/index.html new file mode 100644 index 0000000..ccdaca2 --- /dev/null +++ b/docs/tags/data-science/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/data-science/ + \ No newline at end of file diff --git a/docs/tags/index.html b/docs/tags/index.html new file mode 100644 index 0000000..36a4834 --- /dev/null +++ b/docs/tags/index.html @@ -0,0 +1,6 @@ +Tags | ariascosb +
    + \ No newline at end of file diff --git a/docs/tags/index.xml b/docs/tags/index.xml new file mode 100644 index 0000000..a772ea9 --- /dev/null +++ b/docs/tags/index.xml @@ -0,0 +1,80 @@ + + + + Tags on ariascosb + http://localhost:1313/tags/ + Recent content in Tags on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Ciencia De Datos + http://localhost:1313/tags/ciencia-de-datos/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/ciencia-de-datos/ + + + + Data Science + http://localhost:1313/tags/data-science/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/data-science/ + + + + R + http://localhost:1313/tags/r/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/r/ + + + + Linux + http://localhost:1313/tags/linux/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/linux/ + + + + Terminal Do Windows + http://localhost:1313/tags/terminal-do-windows/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/terminal-do-windows/ + + + + Ubuntu + http://localhost:1313/tags/ubuntu/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/ubuntu/ + + + + Windows Terminal + http://localhost:1313/tags/windows-terminal/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/windows-terminal/ + + + + WSL + http://localhost:1313/tags/wsl/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/wsl/ + + + + Bash + http://localhost:1313/tags/bash/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tags/bash/ + + + + diff --git a/docs/tags/linux/index.html b/docs/tags/linux/index.html new file mode 100644 index 0000000..d51a4f5 --- /dev/null +++ b/docs/tags/linux/index.html @@ -0,0 +1,8 @@ +Linux | ariascosb +

    Como configurar el directorio de inicio para WSL en la windows terminal

    Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory....

    mayo 29, 2023 · 1 min · Andres Riascos B.

    Mi script bash para actualizar Ubuntu

    WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu....

    mayo 22, 2023 · 2 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/linux/index.xml b/docs/tags/linux/index.xml new file mode 100644 index 0000000..ab9ddd9 --- /dev/null +++ b/docs/tags/linux/index.xml @@ -0,0 +1,33 @@ + + + + Linux on ariascosb + http://localhost:1313/tags/linux/ + Recent content in Linux on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Mon, 29 May 2023 15:30:03 -0500 + + + Como configurar el directorio de inicio para WSL en la windows terminal + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Mon, 29 May 2023 15:30:03 -0500 + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. + + + Mi script bash para actualizar Ubuntu + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + Mon, 22 May 2023 10:43:26 -0500 + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu. + + + diff --git a/docs/tags/linux/page/1/index.html b/docs/tags/linux/page/1/index.html new file mode 100644 index 0000000..d14cb8c --- /dev/null +++ b/docs/tags/linux/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/linux/ + \ No newline at end of file diff --git a/docs/tags/r/index.html b/docs/tags/r/index.html new file mode 100644 index 0000000..0a823d9 --- /dev/null +++ b/docs/tags/r/index.html @@ -0,0 +1,6 @@ +R | ariascosb +

    Mis apuntes de R

    Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con <- Los comentarios se hacen con # x<-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(“C:\otro_directorio”) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages("readr") #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update....

    octubre 7, 2023 · 9 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/r/index.xml b/docs/tags/r/index.xml new file mode 100644 index 0000000..86fe035 --- /dev/null +++ b/docs/tags/r/index.xml @@ -0,0 +1,24 @@ + + + + R on ariascosb + http://localhost:1313/tags/r/ + Recent content in R on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Sat, 07 Oct 2023 11:07:37 -0500 + + + Mis apuntes de R + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Sat, 07 Oct 2023 11:07:37 -0500 + http://localhost:1313/2023/10/mis-apuntes-de-r/ + Introducción En R todos las variables son objetos. Las asignaciones en R se hacen con &lt;- Los comentarios se hacen con # x&lt;-2 #Esto es un comentario Ctrl+Shift+C #comentarios de mas de una linea Directorio de trabajo actual: getwd() Cambiar directorio: setwd(&ldquo;C:\otro_directorio&rdquo;) # Ver archivos list.files() # Ver directorios list.dirs() Revisar archivos guardados en memoria ls() Instalar paquetes y librerías install.packages(&#34;readr&#34;) #Instalacion (Solo se hace una vez) library(readr) # Cargue de la libreria (Siempre que se vaya a usar) update. + + + diff --git a/docs/tags/r/page/1/index.html b/docs/tags/r/page/1/index.html new file mode 100644 index 0000000..977d548 --- /dev/null +++ b/docs/tags/r/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/r/ + \ No newline at end of file diff --git a/docs/tags/terminal-do-windows/index.html b/docs/tags/terminal-do-windows/index.html new file mode 100644 index 0000000..3127589 --- /dev/null +++ b/docs/tags/terminal-do-windows/index.html @@ -0,0 +1,7 @@ +Terminal Do Windows | ariascosb +

    Como configurar el directorio de inicio para WSL en la windows terminal

    Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory....

    mayo 29, 2023 · 1 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/terminal-do-windows/index.xml b/docs/tags/terminal-do-windows/index.xml new file mode 100644 index 0000000..61e4bd5 --- /dev/null +++ b/docs/tags/terminal-do-windows/index.xml @@ -0,0 +1,25 @@ + + + + Terminal Do Windows on ariascosb + http://localhost:1313/tags/terminal-do-windows/ + Recent content in Terminal Do Windows on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Mon, 29 May 2023 15:30:03 -0500 + + + Como configurar el directorio de inicio para WSL en la windows terminal + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Mon, 29 May 2023 15:30:03 -0500 + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. + + + diff --git a/docs/tags/terminal-do-windows/page/1/index.html b/docs/tags/terminal-do-windows/page/1/index.html new file mode 100644 index 0000000..a7fa624 --- /dev/null +++ b/docs/tags/terminal-do-windows/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/terminal-do-windows/ + \ No newline at end of file diff --git a/docs/tags/ubuntu/index.html b/docs/tags/ubuntu/index.html new file mode 100644 index 0000000..de7640d --- /dev/null +++ b/docs/tags/ubuntu/index.html @@ -0,0 +1,8 @@ +Ubuntu | ariascosb +

    Como configurar el directorio de inicio para WSL en la windows terminal

    Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory....

    mayo 29, 2023 · 1 min · Andres Riascos B.

    Mi script bash para actualizar Ubuntu

    WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu....

    mayo 22, 2023 · 2 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/ubuntu/index.xml b/docs/tags/ubuntu/index.xml new file mode 100644 index 0000000..0c4d5ae --- /dev/null +++ b/docs/tags/ubuntu/index.xml @@ -0,0 +1,33 @@ + + + + Ubuntu on ariascosb + http://localhost:1313/tags/ubuntu/ + Recent content in Ubuntu on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Mon, 29 May 2023 15:30:03 -0500 + + + Como configurar el directorio de inicio para WSL en la windows terminal + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Mon, 29 May 2023 15:30:03 -0500 + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. + + + Mi script bash para actualizar Ubuntu + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + Mon, 22 May 2023 10:43:26 -0500 + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu. + + + diff --git a/docs/tags/ubuntu/page/1/index.html b/docs/tags/ubuntu/page/1/index.html new file mode 100644 index 0000000..57e78c1 --- /dev/null +++ b/docs/tags/ubuntu/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/ubuntu/ + \ No newline at end of file diff --git a/docs/tags/windows-terminal/index.html b/docs/tags/windows-terminal/index.html new file mode 100644 index 0000000..c73d51e --- /dev/null +++ b/docs/tags/windows-terminal/index.html @@ -0,0 +1,7 @@ +Windows Terminal | ariascosb +

    Como configurar el directorio de inicio para WSL en la windows terminal

    Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory....

    mayo 29, 2023 · 1 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/windows-terminal/index.xml b/docs/tags/windows-terminal/index.xml new file mode 100644 index 0000000..d9b40d4 --- /dev/null +++ b/docs/tags/windows-terminal/index.xml @@ -0,0 +1,25 @@ + + + + Windows Terminal on ariascosb + http://localhost:1313/tags/windows-terminal/ + Recent content in Windows Terminal on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Mon, 29 May 2023 15:30:03 -0500 + + + Como configurar el directorio de inicio para WSL en la windows terminal + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Mon, 29 May 2023 15:30:03 -0500 + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. + + + diff --git a/docs/tags/windows-terminal/page/1/index.html b/docs/tags/windows-terminal/page/1/index.html new file mode 100644 index 0000000..7d84426 --- /dev/null +++ b/docs/tags/windows-terminal/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/windows-terminal/ + \ No newline at end of file diff --git a/docs/tags/wsl/index.html b/docs/tags/wsl/index.html new file mode 100644 index 0000000..4294b40 --- /dev/null +++ b/docs/tags/wsl/index.html @@ -0,0 +1,8 @@ +WSL | ariascosb +

    Como configurar el directorio de inicio para WSL en la windows terminal

    Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory....

    mayo 29, 2023 · 1 min · Andres Riascos B.

    Mi script bash para actualizar Ubuntu

    WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu....

    mayo 22, 2023 · 2 min · Andres Riascos B.
    + \ No newline at end of file diff --git a/docs/tags/wsl/index.xml b/docs/tags/wsl/index.xml new file mode 100644 index 0000000..ca1e806 --- /dev/null +++ b/docs/tags/wsl/index.xml @@ -0,0 +1,33 @@ + + + + WSL on ariascosb + http://localhost:1313/tags/wsl/ + Recent content in WSL on ariascosb + + ariascosb + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.125.0 + es + Mon, 29 May 2023 15:30:03 -0500 + + + Como configurar el directorio de inicio para WSL en la windows terminal + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Mon, 29 May 2023 15:30:03 -0500 + http://localhost:1313/2023/05/como-configurar-el-directorio-de-inicio-para-wsl-en-la-windows-terminal/ + Trabajando con WSL encontré la nueva windows terminal y se me hizo muy comodo trabajar en ella. Sin embargo, el principal problema que tenia era que cada vez que iniciaba el directorio predeterminado era uno tipo /mnt/c/Users/. Esto era molesto dado que constantemente tenia que trasladarme a un directorio dentro de mi home. Para solucionar este problema tenemos que seguir los siguientes pasos. +Entramos al archivo de configuración settings.json presionando las siguientes teclas ctrl + shift + , Dentro de este archivo configuramos la sección startingDirectory. + + + Mi script bash para actualizar Ubuntu + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + Mon, 22 May 2023 10:43:26 -0500 + http://localhost:1313/2023/05/mi-script-bash-para-actualizar-ubuntu/ + WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente comparandola con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea. +Creamos un script .sh, en mi caso lo llamo ubuntu. + + + diff --git a/docs/tags/wsl/page/1/index.html b/docs/tags/wsl/page/1/index.html new file mode 100644 index 0000000..a86ac05 --- /dev/null +++ b/docs/tags/wsl/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/wsl/ + \ No newline at end of file diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index 582aa2d..0000000 --- a/netlify.toml +++ /dev/null @@ -1,30 +0,0 @@ -[build] -publish = "public" -command = "hugo --gc --minify" - -[context.production.environment] -HUGO_VERSION = "0.100.0" -HUGO_ENV = "production" -HUGO_ENABLEGITINFO = "true" - -[context.split1] -command = "hugo --gc --minify --enableGitInfo" - -[context.split1.environment] -HUGO_VERSION = "0.100.0" -HUGO_ENV = "production" - -[context.deploy-preview] -command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" - -[context.deploy-preview.environment] -HUGO_VERSION = "0.100.0" - -[context.branch-deploy] -command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" - -[context.branch-deploy.environment] -HUGO_VERSION = "0.100.0" - -[context.next.environment] -HUGO_ENABLEGITINFO = "true" \ No newline at end of file diff --git "a/public/2021/05/mi-c\303\263digo-bash-para-actualizar-ubuntu/index.html" "b/public/2021/05/mi-c\303\263digo-bash-para-actualizar-ubuntu/index.html" deleted file mode 100644 index d6fd7a4..0000000 --- "a/public/2021/05/mi-c\303\263digo-bash-para-actualizar-ubuntu/index.html" +++ /dev/null @@ -1,33 +0,0 @@ -Mi código bash para actualizar Ubuntu | ariascos

    Mi código bash para actualizar Ubuntu

    WSL nos permite tener una distribución linux en windows 10. La nueva version WSL2 mejora el rendimiento notablemente con la version anterior y la he adoptado como entorno de desarrollo en mi dia a dia. Una labor rutinaria y frecuente que se realiza es mantener actualizado el sistema, por eso te quiero mostrar el código bash que utilizo para realizar esta tarea.

    1. Creamos un script .sh, en mi caso lo llamo ubuntu.sh
    nano ubuntu.sh
    -
    1. Ingresamos el siguiente código dentro del script. Este permite actualizar los repositorios, luego los paquetes y finalmente limpiar la cache. Al final siempre se imprime un mensaje de éxito o alerta para avisarnos el estado final del proceso.
    #!/bin/bash
    -
    -update() {
    -
    -apt-get update;
    -
    -apt-get upgrade;
    -    
    -if [ $? -ne 0 ]; then
    -    echo "UBUNTU NO SE ACTUALIZO CORRECTAMENTE "
    -else 
    -    apt-get autoclean;
    -    apt-get clean;
    -    apt-get autoremove
    -    echo "UBUNTU SE ACTUALIZO CORRECTAMENTE "        
    -fi
    -}
    -
    -update
    -
    1. Añadimos permisos de ejecución.
    chmod +x ubuntu.sh
    -
    1. Creamos un alias. Esto nos permitirá ejecutar el script con un nombre personalizado. Iniciamos abriendo el archivo .bashrc
    nano ~/.bashrc
    -
    1. Bajamos hasta el final del archivo .bashrc y copiamos la siguiente linea de código. Debes tener cuidado con colocar la ubicación correcta de tu archivo .sh
    alias ubuntu="sudo /home/ariascosb/ubuntu.sh"
    -

    En mi caso el nombre personalizado que les estoy dando es ubuntu, pero tu lo puedes cambiar al editar la palabra que esta después de alias y antes del signo igual (=).

    1. Esta todo listo, ahora para ejecutar el script solo bastara con escribir en la terminal el alias (en mi caso: ubuntu) y automáticamente se actualizara nuestra distribución en WSL.
    ubuntu
    -
    - \ No newline at end of file