Tuesday, October 16, 2018

Notas sobre pulse audio





Cada tanto se rompe pulse audio en mi pc, so tengo que estar revisando que pudo haber sido la causa, y esto es un resumen de las cosas que ejecuto para revisar quien fue el que se detuvo y no volvió más.

como gestor de sonido uso pavucontrol y reviso en alsamixer a ver que se puede modificar o si mi gato sin intención presionó mute  (le gusta dormir mucho sobre mi pc).

A veces sólo con reiniciar pulseaudio funciona de nuevo. :P


$ pulseaudio -k
$ pulseaudio --start



# systemctl --system daemon-reload


Finally, restart pulseaudio to apply the new settings:
  $ pulseaudio -k ; pulseaudio -D


Referencia: 

https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting

experiencia rails girls parte II

Como toda buena peli tiene sus continuaciones y sagas, acá sigue el siguiente episodio:

primero comprobar que en mi distribución aún tenga ruby instalado:

j3nnn1:~/ $ pacman -Ss ruby | grep installed                                                                                                                                                             [0:09:14]

extra/ruby 2.5.1-2 [installed]

extra/ruby-docs 2.5.1-2 [installed]

extra/rubygems 2.7.7-1 [installed]

community/ruby-bundler 1.16.3-1 [installed]

community/ruby-mail 2.7.0-3 [installed]

community/ruby-mini_mime 1.0.0-1 [installed]

community/ruby-mini_portile2 2.3.0-3 [installed]

community/ruby-rack 2.0.5-1 [installed]

community/ruby-rdoc 6.0.4-1 [installed]

community/ruby-thor 0.20.0-2 [installed]


Algo muy util con las versiones de ruby es rvm
j3nnn1:~/ $ rvm --version                                                                                                                                                                                [0:11:45]

rvm 1.25.24 (stable) by Wayne E. Seguin , Michal Papis  [https://rvm.io/]

Revisando que versión de rails tengo instalada:
j3nnn1:~/ $ rails --version                                                                                                                                                                              [0:13:35]
Rails 5.1.5
Actualizando a la última versión :P
j3nnn1:~/ $ gem update                                                                                                                                                                                   [0:14:14]
Updating installed gems
Updating actioncable
Fetching: activesupport-5.2.1.gem (100%)
WARNING:  You don't have /home/j3nnn1/.gem/ruby/2.5.0/bin in your PATH,
   gem executables will not run.
Successfully installed activesupport-5.2.1
Fetching: actionview-5.2.1.gem (100%)
Successfully installed actionview-5.2.1
.....
y así continuo..
Comprobando cliente de heroku con aplicación instalada? heroku --version nothing :(
curl https://cli-assets.heroku.com/install.sh | sh
j3nnn1:/tmp/ $ curl https://cli-assets.heroku.com/install.sh | sh                                                                                                                                        [0:30:37]
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1676  100  1676    0     0   1937      0 --:--:-- --:--:-- --:--:--  1935
This script requires superuser access.
You will be prompted for your password by sudo.
[sudo] password for j3nnn1: 
Sorry, try again.
[sudo] password for j3nnn1: 
Installing CLI from https://cli-assets.heroku.com/heroku-linux-x64.tar.xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15.0M  100 15.0M    0     0  1399k      0  0:00:11  0:00:11 --:--:-- 1947k
heroku installed to /usr/local/bin/heroku
heroku/7.7.10 linux-x64 node-v10.7.0


Y llegó el día y nunca actualicé este artículo entre muchas cosas...

Pero puedo agregar las imágenes del día del D.

Muchas gracias por permitirme participar una vez más.






PD: para próximos rails girls, estar atento a https://www.instagram.com/railsgirlsar

Wednesday, July 18, 2018

instalando grafana

Deje este dataset household power consumption:

https://archive.ics.uci.edu/ml/machine-learning-databases/00235/


Grafana tiene multiples sources:
mysql, elastichsearch, influxdb, cloudwatch, graphite, opentsdb, postgresql, prometheus.

Por facilidad use mysql, de igual forma más adelante agregaré otros sources y otros datos.

mysql> create database household_power_consumption;

subiendo los datos:
create table consumption (
id int PRIMARY KEY NOT NULL AUTO_INCREMENT,
    date_consumption date NOT NULL ,
    datetime_consumption datetime NOT NULL,
    global_active_power float NOT NULL,
    global_reactive_power float NOT NULL,
    voltage float NOT NULL,
    global_intensity float NOT NULL,
    sub_metering_1 float NOT NULL,
    sub_metering_2 float NOT NULL,
    sub_metering_3 float NOT NULL
);
----

load data infile 'final.csv'
into table consumption
fields terminated by ','
OPTIONALLY ENCLOSED BY '"'
lines terminated by  '\n'
IGNORE 1 LINES
-- (`date_consumption`, `datetime_consumption`, `global_active_power`, `global_reactive_power`, `voltage`, `global_intensity`, `sub_metering_1`, `sub_metering_2`, `sub_metering_3`);
(@consumptiondate, @consumptiondatetime, `global_active_power`, `global_reactive_power`, `voltage`, `global_intensity`, `sub_metering_1`, `sub_metering_2`, `sub_metering_3`)
set date_consumption = STR_TO_DATE(@consumptiondate, '%d/%m/%Y'),
datetime_consumption = STR_TO_DATE(@consumptiondatetime, '%d/%m/%Y %H:%i:%s');


Inicializando grafana.

$ systemctl enable grafana

o sólo para levantarlo temporalmente

$ systemctl start grafana

luego se habilita la url:

http://127.0.0.1:3000/datasources/new?gettingstarted


Algo interesante es que grafana no hace validacion de las querys que le manda a mysql en caso de enviar una query que contenga DROP, DELETE y si el usuario que especificamos tiene los permisos de ejecucion lo va a hacer! asi que fuertemente recomienda al usuario   a CREAR un usuario con los permisos solo de lectura en la  base de datos.

este sería un vistazo de la interface y como configurarlo con la base de dato mysql.




Muy bueno es que tiene una comunidad muy activa con muchos tipos de dashboards creados:

https://grafana.com/dashboards?utm_source=grafana_search


Se puede agregar data sources acá se ve el listado de los que se ha definido:
http://127.0.0.1:3000/datasources

en settings > variables > Add variable

o agregar manualmente el grafico al dashboard:

El tema con agregar variables por query desde el datasource es que para mas de un millon de registros, el template de series de tiempo hace crash, sólo permite menos de 1millon de registros, por lo que lo recomendable es ajustar el rango de fechas teniendo en cuenta este límite del fetch permitido por la query. Otra cosa buena son los ejemplos que trae en cuanto a ese formato de macros que tiene siendo intuitivo, también se puede configurar alertas! para los picos y bueno es una alternativa más al mar de opciones.



Y eso es todo por hoy.
para más info:
http://docs.grafana.org/features/datasources/mysql/
:D

Tuesday, July 10, 2018

Instalando el cliente de arduido y ademas marlin para editar config de prusa


Instalando el ide de arduino  y Marlin.
primero descargar de la url https://arduino.cc/en/main/software el IDE:


Luego de haber bajado esto, descomprimir tar -xvf archivo.tar.xz


y ejecutar el script sh que dice install.sh realmente lo que hace es crear un link simbólico a este directorio, de esta forma queda solo permitido a este usuario, por esto no requiere permisos de root

y  la ruta del link simbolico o archivo.desktop direcciona a ./arduino.

¿Cómo comprobar que se instaló ok?

si cuando se conecta la impresora detecta el puerto y el tipo de board (mega 2560)
en la pestaña tools>> ports >> ttyusb0 se debe desbloquear y debes poder seleccionar esa opción ademas en el listado de boards hay que seleccionar mega 2560 para que carque el listado de ejemplos disponibles a probar.

Algo importante si se compilo el Marlin con una versión de IDE de arduino diferente, es tedioso y genera muchos errores como:

/home/j3nnn1/pkgs/arduino/arduino-1.8.5/Marlin/Marlin.ino:44:101: fatal error: U8glib.h: No such file or directory
     #include // library for graphics LCD by Oli Kraus (https://code.google.com/p/u8glib/)

fatal error: :utility/u8g.h: No such file or directory

y luego resultaba en un error de token en parte del código de Marlin, por lo que me di por vencida y es mejor o comenzar de 0 configurando Marlin o instalar las versiones exactas de quien compilo el Marlin.

En mi caso descargue la versión del IDE de arduino 1.6.1 y al copiar la carpeta Marlin  y hacer click en verificar funcionó. no recuerdo si copió la librería U8glib a las libraries de Arduino.  pero se van a dar cuenta si lo necesitan hacer porque muestra uno de los errores de arriba.

con esto estaría para verificar que compile bien!

Copiar el directorio Marlin dentro de la carpeta arduino e instalar los plugins o librerias faltantes o de dependencia de marlin.

Quedaría como directorio:
Arduino-1.6.1/
---------Marlin/
-----------------U8glib/
-----------------Marlin.ino (Este archivo es el que abrimos con el IDE de arduino)

o en el IDE de arduino más actualizado quedaría sólo el Marlin y la librerio U8glib se instala en el home del usuario.

Arduino-1.8.1/
---------Marlin/
-----------------Marlin.ino

~/Arduino/libraries/U8glib

Algo que me ayudó a configurar Marlin fue este enlace: http://zennmaster.com/random-things/reprap-101-activating-marlins-eeprom-functions-and-what-that-does-for-you
y este en palabras más técnicas:Marlin Config

ya que quería activar esta configuración pero no conocía como se llamaba, esto lo explica en palabras fáciles.
en mi caso sólo descomentar:

#define EEPROM_SETTINGS
#define EEPROM_CHITCHAT

Al subir el firmware y reiniciar se verían nuevas opciones(Store Memory and Load Memory) en el lcd de la placa.

Luego click en el boton Verificar.

Para subir el software a la placa:

* hay que ser root o agregarlo al grupo que tenga acceso al puerto usb donde se conecta la placa.
* instalé estos paquetes:
         # pacman -S avrdude
         # pacman -Syu community/arduino-avr-core community/avr-gcc
* click en el boton upload del IDE de arduino.
* generó otro error que medio lo solucioné con un link simbolico al binario instalado en mi distribución, para esto hay que instalar los paquetes:

Error: libncurses.so.5: cannot open shared object file: No such file or directory

lo solucioné haciendo:
j3nnn1:arduino-1.6.1/ $ rm ./hardware/tools/avr/bin/avrdude 
j3nnn1:arduino-1.6.1/ $ ln -s /usr/bin/avrdude ./hardware/tools/avr/bin/avrdude

(tomado de inspiración de http://fkcsmart.blogspot.com/2016/02/arduino-avrdude-q-avrdude-error-while.html) 



Y luego de esto subió el software a la placa. Algo a tomar en cuenta es:

Sólo usar un programa a la vez que se conecte al puerto /dev/tty0USB0
por ejemplo error que tenía usé el programa: pronterface y al mismo tiempo tenía el IDE de arduino.
(uno de los dos fallaba la conexión con la placa) el error mostraba
time out to connect with programmer

Otra vez me paso con iniciar el software slicer con cura y tener levantado el IDE de arduino.

:P

Happy slicing

Sunday, April 29, 2018

Feliz flisol 2018


El 21 y el 28 de abril se realizó el festival de instalación de software libre, con mucho animo, y muchos colaboradores,  este año gracias a cafelug y todos los organizadores por permitirme participar como instaladora, solo instalé dos maquinas el poco tiempo que estuve  y fue una linda experiencia volver a participar en este evento.

Un pesar que se haya cancelado a medio dia por amenaza de bomba en la utn, sin embargo ya estan viendo de mover el evento al 12 de mayo esten atentos a la cuenta Twitter @flisolcaba




Saturday, March 31, 2018

Compilando kernel linux en arch

Era un día tranquilo y feliz con las actualizaciones habituales, en mi pc tenía la instalación de docker y varias imágenes que utilizaba en mi tiempo libre, hasta que llego febrero y el kernel 4.15 CHAN!

Adios instalación de docker 😮

Para revisar si docker puede o tiene las condiciones de ejecutarse bien:

$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh >> check-config.sh 

todo! como usuario normal de linux

$ bash check-config.sh

ó

$ ./check-config.sh (si usas bash por defecto)

En mi instalación estaba deshabilitado la opción VSYSCALL_EMULATE por razones de seguridad, entonces hay 3 formas de editar parámetros:

A) COMPILAR EL KERNEL CON LA NUEVA CONFIG
B) PASAR EN TIEMPO DE EJECUCIÓN EN EL BOOT EL FLAG vsyscall=emulate
C) AGREGAR EL PARAMETRO AU VIVO con sysctl, de esta forma no encontré como editarlo, yo lo pasaba así
$ sysctl vsyscall=emulate
Y como no es la forma correcta, o el archivo vsyscal no existía en /proc sino en /sys no funcionaba, más adelante revisaré.

FORMA A: compilando el kernel con la herramienta asp, (hay que instalarla con pacman -S asp)

$ mkdir ~/kernelbuild
$ cd ~/kernelbuild
$ asp export linux
$ makepkg -s (genera el paquete de arch)
# pacman -U paquetedeArchConKernelNuevo.tar.xz

Ahora con estos pasos toma la misma config que tiene el sistema, en caso de compilar un kernel con una configuración diferente se puede hacer de varias formas por cli o editando el archivo .config:

Paso a paso explicado:
1 - editar una por una por un menu cli (mucho tiempo de analizar si necesitas cada opcion) para esto hay que descomentar el archivo ~/kernelbuild/linux/PKGBUILD y descomentar la opcion que se quiere usar.

  # load configuration
  # Configure the kernel. Replace the line below with one of your choice.
  #make menuconfig # CLI menu for configuration
  #make nconfig # new CLI menu for configuration
  #make xconfig # X-based configuration
  #make oldconfig # using old config from previous kernel version
  # ... or manually edit .config

2 -  editar el archivo ~/kernelbuild/linux/config que tiene todas las opciones estandars en el kernel de archlinux y agregar o eliminar la que molesta con docker.
3 - hacer makepkg -g >> PKGBUILD , esto toma los string de verificación de integridad y los actualiza, sino lo hacemos nos va a dar un error al editar el archivo .config cambiamos el archivos y tiene que generar un nuevo string

En mi caso yo usé esto:
0 - editar archivo config
-CONFIG_X86_VSYSCALL_EMULATION=y
+# CONFIG_X86_VSYSCALL_EMULATION is not set
-CONFIG_LEGACY_VSYSCALL_EMULATE=y
-# CONFIG_LEGACY_VSYSCALL_NONE is not set
+# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
+CONFIG_LEGACY_VSYSCALL_NONE=y
1 - $ makepkg -g >> PKBUILD  (actualizar los hash de verificacion de archivos)
2 - $ makepkg -s
3 - # pacman -U kernel-nuevo-con-cosas-específicas.tar,xz

en caso que no tengamos una llave gpg almacenada hacer:
gpg --recev hashIDllaveGPG

# pacman -U linux-4.15.7-1-x86_64.pkg.tar.xz

y probar ejecutar:

- run "docker run --rm -it mongo:3.0"

FORMA B: Editar los parámetros pasados al kernel al inicio del sistema operativo.

/etc/default/grub
# GRUB boot loader configuration
  
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch suck"

GRUB_CMDLINE_LINUX_DEFAULT="quiet vsyscall=emulate"

Luego de editar la configuración del grub hay que sobreescribir el archivo /boot/grub/grub.cfg con
$ grub-mkconfig -o /boot/grub/grub.cfg

y revisamos que la línea se haya agregado al iniciar sesión:
j3nnn1:~/ $ cat /proc/cmdline                                                                                                    
BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=dc9d4c3e-c8d2-4e88-b66d-f2fd3cdff1bc rw quiet vsyscall=emulate

Luego ejecutar docker normalmente!

- run "docker run --rm -it mongo:3.0"

La forma B es la más rápida!

😁

Friday, March 30, 2018

Para la nostalgia... nintendo power

Nintendo Power is a discontinued news and strategy magazine which was initially published in-house monthly by Nintendo of America, and later run independently. In December 2007, Nintendo contracted publishing duties to Future US, the U.S. subsidiary of British 

https://archive.org/details/nintendopower?sort=-date

No está disponible la publicación de nintendopower pero hay varias que recuerdo de niña (nintendo action), ir a buscar al kiosko o librería a leer un poquito:

https://archive.org/details/gamemagazines

aawwww...



Monday, March 19, 2018

Listar repositorios por velocidad de descarga

Se requiere tener el paquete:

# pacman -S pacman-contrib

Luego si hacer los siguientes pasos:

Curioso que el mirror de archlinux con mejor  conexión a Argentina sea uno que se encuentra en Italia xD

# cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

# sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.backup

# rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist

Italia, le sigue michigan, China, Alemania, ... y de último Chile tiene un mirrror!

Server = http://archlinux.beccacervello.it/archlinux/$repo/os/$arch
Server = http://lug.mtu.edu/archlinux/$repo/os/$arch
Server = http://arch-mirror.wtako.net/$repo/os/$arch
Server = http://mirror.nexcess.net/archlinux/$repo/os/$arch
Server = http://k42.ch/mirror/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.cl/$repo/os/$arch

Luego en 2018 the winners are:

Server = http://mirror.nexcess.net/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.cl/$repo/os/$arch
Server = http://archlinux.beccacervello.it/archlinux/$repo/os/$arch
Server = http://k42.ch/mirror/archlinux/$repo/os/$arch
Server = http://lug.mtu.edu/archlinux/$repo/os/$arch
Server = http://arch-mirror.wtako.net/$repo/os/$arch

no se si empeoró o mejoró la conexión pero el de chile subió varias posiciones :O

Referencia tomada de:
https://wiki.archlinux.org/index.php/mirrors

para el 2019 ya había olvidado como hice esto y lo hice de otra manera con un paquete llamado reflector que consiste en scripts de python que realizan la consulta a la url que tiene el estado de los mirrors y los ordena por velocidad de descarga.

como siempre toda esta información es tomada de la wiki de archlinux

https://wiki.archlinux.org/index.php/Reflector_(Espa%C3%B1ol)

haciendo el respaldo del archivo anterior:

# cp -vf /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

El siguiente comando filtrará los primeros cinco mirrors, los ordenará en base a su velocidad, y sobrescribirá el archivo /etc/pacman.d/mirrorlist:
# reflector --verbose -l 5 --sort rate --save /etc/pacman.d/mirrorlist

Este comando evaluará de manera verbosa los 200 servidores HTTP sincronizados más recientemente, los ordenará por su tasa de descarga, y sobrescribirá el archivo /etc/pacman.d/mirrorlist:
# reflector --verbose -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist

Y eso es todo amigos!

Wednesday, March 14, 2018

Experiencia railsgirl :)


Leyendo la documentación de railsgirls acá: http://guides.railsgirls.com sólo está disponibles scripts de instalación para distribuciones como Ubuntu o Fedora, desde siempre he usado Archlinux así que por ahora hasta que no cambie de notebook no creo que instale de nuevo otra distribución. Hace un tiempo atrás utilice ruby and rails para proyectos personales, los subi a heroku, dotcloud cuando existía y era gratuito, recuerdo haber usado bundle, por lo que veo actualmente se está utilizando para la instalación, seguro que hay otras cosas más nuevas y divertidas en el mundo de ruby.

Proceso de instalación de ruby and rails en linux:

Esto está escrito como una experiencia, a medida que iba probando cosas estaba registrando cada print screen o salida de texto de la terminal, por suerte no fue muy largo pero está todo el proceso. Cuando busqué en google como instalar ruby and rails en arch lo primero devuelve google es la Fantastica wiki de archlinux, pero mi resistencia a que no haya un paquete que instale todo en un sólo comando de pacman me hizo probar un paquete de AUR, que es bien sabido que se puede subir cualquier cosa y hay muchas cosas desactualizadas por lo que NO es recomendable y de acuerdo a la filosofía de arch no lo recomienda.
En archlinux instalé el paquete de aur luego de varios Yes , y revisar el PKGBUILD PKGBUILD-ruby-and_rails
intento crear la primera app
 $rails new railsgirls

Y como output obtengo:
 
/usr/lib/ruby/2.5.0/rubygems/dependency.rb:310:in `to_specs': 
Could not find 'thread_safe' (~> 0.1) among 50 total gem(s)
(Gem::MissingSpecError) Checked in 
'GEM_PATH=/home/j3nnn1/.gem/ruby/2.5.0:/usr/lib/ruby/gems/2.5.0', 
execute `gem env` for more information
De acuerdo a ese error hay una dependencia para que funcione ruby and rails que no se declaró en el paquete de aur, por ahora la voy a instalar independientemente lo ideal es editar el PKGBUILD y agregarla como dependencia.
$ yaourt -S ruby-thread_safe 
/usr/lib/ruby/2.5.0/rubygems/dependency.rb:310:in `to_specs':
Could not find 'minitest' (~> 5.1) among 51 total gem(s)
(Gem::MissingSpecError) Checked in 
'GEM_PATH=/home/j3nnn1/.gem/ruby/2.5.0:/usr/lib/ruby/gems/2.5.0',
execute `gem env` for more information
Fail!, otra dependencia no declarada en el PKGBUILD
$yaourt -S ruby-minitest
Fail!, luego sigue sin funcionar y con el mismo error, así que rollback a todo lo instalado por aur, y vamos por la guía de archlinux, La sabia wiki de archlinux! (https://wiki.archlinux.org/index.php/Ruby_on_Rails)
se puede hacer la instalación de dos formas:
a) Una en la que el usuario actual solo puede ejecutar o utilizar las gemas, y se guardan en el directorio: ~/.gem/ruby/
$gem install rails
$rails new railsgirls

En caso de instalar como usuario sin sudo, cancelar la instalación y hacerla desde bundle, de esta forma no edita las librerías del sistema base, en mi caso siempre es mejor instalar en el $HOME porque sino puede interferir con las librerias del sistema que utilicen ruby, ejemplo conky! está escrito en ruby. Como NO quiero instalar nada en mi sistema base, cancelo y dentro del directorio railsgirls ejecuto bundle install.

cd railsgirls/
$bundle install --path vendor/bundle
b) O Ejecutar gem install como root y setear este flag --no-user-install (por defecto tiene este valor --user-install)
 
# gem install rails --no-user-install

$ rails server 
Próximamente cuando mi hermano llegue agregamos la instalación de windows...

Proceso de instalación de ruby and rails en windows:

- Descargar el ejecutable en http://railsinstaller.org/en - Instalar nodejs descargar de:  https://nodejs.org/en/
- Crear la applicación: rails new railsgirls
- Actualizar rails con: gem update rails (dentro del directorio railsgirls)
- cd railsgirls
- rails s

Muchas gracias!