Monday, December 30, 2019

4 tools useful to everyday in js


01 NVM: 
NVM is the acronym for Node Version Manager, which is a command-line tool that lets you install and use many Node.js versions and NPM on your computer. It is a dev tool, so I don't recommend using it in production environments. NVM works fine in Linux and Mac. You can also check the documentation here: https://github.com/nvm-sh/nvm.

When is it useful to use NVM? 
*   In teams where we have different operating systems.
*   When we have to test new things, for example, the testing version for Node.js.
*  When we have many projects with different versions, and you cannot update Node.js and you have to maintain two or more node js versions in many projects, so is a way to tidy up the dev environment, switching between Node.js versions.

NVM: Installation
Mac:
You can use homebrew. If you don’t know how to install it, you could check here it (https://brew.sh/) and that’s all.
brew install nvm
source $(brew --prefix nvm)/nvm.sh
echo 'source $(brew --prefix nvm)/nvm.sh' >> ~/.profile

Linux:

The line before will have an output such as this:

=> Downloading nvm from git to '/home/jennifer/.nvm'
=> Cloning into '/home/jennifer/.nvm'...
remote: Enumerating objects: 278, done.
remote: Counting objects: 100% (278/278), done.
remote: Compressing objects: 100% (249/249), done.
remote: Total 278 (delta 33), reused 88 (delta 16), pack-reused 0
Receiving objects: 100% (278/278), 142.36 KiB | 0 bytes/s, done.
Resolving deltas: 100% (33/33), done.
Checking connectivity... done.
=> Compressing and cleaning up git repository
=> Appending nvm source string to /home/jennifer/.bashrc
=> Appending bash_completion source string to /home/jennifer/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Make sure that these lines below are in your ~/.bashrc or ~/.zshrc:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

My personal desktop runs over Arch Linux,  so I used an aur package, for example https://aur.archlinux.org/packages/nvm/. I downloaded the snapshot file and uncompressed the tar.gz file.  Also, you could use the same installation explained before or these lines for installing nvm:
$ cd nvm
$ makepkg  -s #this will generate an Arch Linux package (nvm.tar.xz).
$ ls -l nvm.tar.xz
$ pacman -U nvm.tar.xz

NVM Usage:
nvm list : List all versions installed on your machine
➜  ~ nvm list
->       system
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)

NVM install: Install a local version on your machine from the remote list. The remote list could be filtered by another command like: nvm ls-remote   for example “nvm ls-remote v11” lists all versions that have v11 as prefix.

➜  ~ nvm install v10.15.3
Downloading and installing node v10.15.3...
Downloading https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz...
######################################################################## 100,0%
Computing checksum with sha256sum
Checksums matched!
Now using node v10.15.3 (npm v6.4.1)
Creating default alias: default -> v10.15.3

nvm use: set in the current terminal the environments variables so all command executed related to Node.js will use the version defined by NVM.
➜  ~ nvm use v10.15.3
Now using node v10.15.3 (npm v6.4.1)

nvm which: show the path to the Node.js bin file.
➜  ~ nvm which v10.15.3
/home/jennifer/.nvm/versions/node/v10.15.3/bin/node

02 Docker container with node js/ angular-cli:
Hub docker contains a thousand images that you could use in your daily tasks at work, in a simple search you could see (https://hub.docker.com/search?q=angular-cli&type=image)
About 1 - 25 of 492 results for angular-cli. 
Here is my recommendation to use it in a local environment for a development process: https://hub.docker.com/r/trion/ng-cli/

docker pull trion/ng-cli

When node_modules directory already was generated.

docker run -u $(id -u) --rm -p 4200:4200 -v "$PWD":/app trion/ng-cli  ng serve --host 0.0.0.0 --disableHostCheck

In this way, you need node_modules directory inside the directory defined in $PWD variable.

When a node_modules directory is not generated. And that’s all.

first
docker run -u $(id -u) --rm -p 4200:4200 -v "$PWD":/app trion/ng-cli npm install

later:
docker run -u $(id -u) --rm -p 4200:4200 -v "$PWD":/app trion/ng-cli  ng serve --host 0.0.0.0 --disableHostCheck

03 Dotenv using a .env file with and avoid versioning
Dotenv is useful to keep tidy up the code, avoid magic number, avoid push any secret key to the repo and it is a relief for many environments. With this, you can run your app anywhere by modifying the environment variables without changing your code and without rebuilding it!
npm install dotenv

Later, create the .env file in the root of your app and add your variables and values to it. Don’t forget to add this file to .gitignore to avoid committing it.

.env
PORT=55555


Server.js
const dotenv = require('dotenv');
dotenv.config();
console.log(`Your port is ${process.env.PORT}`);
4 Cloud solutions:
For each project, you could use one of these, sometimes I have to share code with a friend or when I have a doubt, and I need to ask something with a context code, it’s the best way to show when you are remote, for example for an angular-cli project there is no doubt that the best is  https://stackblitz.com/ has a better integration with angular and let you download the project in a zip file, also is recommended by @angular documentation. 
Also for Js, HTML, and CSS, and tiny projects you could use https://jsfiddle.net/, https://codepen.io/.  In the last one, there are many web artists and you could make you own portfolio to share it.  And From Red Hat, we have https://codenvy.com/ has a free subscription with limitations, but it’s ok for prototyping things

Sunday, August 25, 2019

pendrives y misceláneos


Este es un post que comencé hace muchos muchos años y cada cierto tiempo agrego cosas para no olvidarme, y me causó gracia al leerlo, ya que hubo una época había un marketing de un pendrive con U3, que venía a ser una especie de partición con aplicaciones ejecutables portables que sólo funcionaban en windows, y luego mutó en algo llamado start key.

más info: https://en.wikipedia.org/wiki/U3_(software)

Por suerte ya no existe más jaja, pero el uso de un pendrive aún se sigue manteniendo para ciertas cosas como instalar un SO, o tener apps portables, tanto como linux como windows en el día a día de alguien de soporte siempre se genera un pendrive que sea booteable para instalar X sistema operativo. 

Acá algunas formas de hacer este pendrive booteable para instalar el SO.

Grabar una imagen ISO en un pendrive (desde esa época no ha cambiado nada si y sólo si el pendrive es para bootear un linux y windows de los viejitos).

dd if=sabayon-x86.iso of=/dev/sdX

donde X es la unidad física, pendrive. no debe estar particionado.

dd if=sabayon-x86.iso of=/dev/sdb

Grabar una imagen ISO en un pendrive con U3.
necesito descargar la imagen ISO. solo funciona en windows.
y una aplicación que se llama: Universal U3 Customizer. link:

http://www.mediafire.com/?ozm5y2utare

  1. La imagen ISO a instalar la tengo que renonbrarU3CUSTOM.ISO y dejarla enel directorio BIN del software U3C.
  2. luego ejecutamos U3C.
  3. y listo reboot 
  4. Por suerte ya no se usa más y no te venden pendrives más costosos por este tipo de filosofía
Que ha pasado en estos años... (UEFI... cof cof) hace tiempo que no instalaba en una notebook windows, el último que instalé fue win7 o el anterior, pero han cambiado un poco las cosas, tuve líos al intentar instalar windows10 (haciendo soporte técnico familiar) con un pendrive generado desde linux, excepto por esta herramienta:

Grabar un ISO windows10 con woeusb

Tiene una interfaz gráfica pero puedes no usarla, realmente es bastante simple la herramienta y funcionó a la primera lo probé en ubuntu 18.10 y en archlinux con un paquete de aur (https://aur.archlinux.org/packages/woeusb/)


En el README pueden encontrar otros repositorios para otras distribuciones

básicamente la línea de la terminal es:


woeusb -v --device /home/j3nnn1/en_windows_7_ultimate_x86_dvd_x15-65921.iso /dev/sdb


-v => modo verbose
--device => el modo de hacer el pendrive si usa todo el almacenamiento o si usa una partición en su lugar se coloca --partition
imagen_de_origen.iso
y la ruta destino es decir en la ruta /dev del dispositivo.

gracias woeusb hizo mi fin de semana.

y Bueno ahora para quien está desde windows puede usar algo llamado rufus, como es windows es click, click, siguiente, siguiente y para más información pueden visitar:


PD: la fotito es mi querida ona, hace unos años ♥ como cambian... como crecen...

Monday, June 10, 2019

SMB archlinux/ubuntu (SAMBA PA TI)



0 - paquetes instalados.
extra/samba 4.10.10-2 [installed]
extra/smbclient 4.10.10-2 [installed]

1 -comprobar que el servidor samba este arriba (smb.service y nmb.service)

systemctl status smb.service

puede salir algo así eso nos dice que está detenido el servidor:

* smb.service - Samba SMB Daemon
     Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
     Active: inactive (dead)
       Docs: man:smbd(8)
             man:samba(7)
             man:smb.conf(5)


systemctl status nmb.service

puede no iniciar si no localiza el archivo /etc/samba/smb.conf, para esto cree un directorio en /media/misperoles/nas_winterfell

si sale OK, UP, o running ya esta instalado. Revisar la configuración con un cliente de samba:

smbclient -L localhost

consulta por nombre de la red.

nmblookup WINTERFELL

1- Agregar el usuario al grupo de sambashare, en el caso de ubuntu mint al instalarlo ya lo agregaba al grupo, en caso de duda verificar en el archivo:

# cat /etc/group | grep sambashare

sino agregarlo asi
 
# gpasswd sambashare -a your_username
 
 
2- en el caso de arch, samba requiere que se agregue el usuario creado
 y que pertenece al grupo samba share. se agrega asi:

# smbpasswd -a samba_user
 
 
en el caso de ubuntu ya lo hace is magic! 
 
3- por ultimo agregar los permisos del directorio compartido
 
en:
 
/etc/samba/smb.conf
 
algo asi al final del archivo:
 
/etc/samba/smb.conf
[media]
  comment = Media share accessible by greg and pcusers
  path = /media/nas
  public = yes
  writable = yes
  browseable = yes
  create mask = 0664
  directory mask = 2775
  force create mode = 0664
  force directory mode = 2775
 
esto es publico compartido sin contrasenia.

Para configuración con contraseña y usuario:

[archivos]
path = /media/misperoles/nas_winterfell
comment = take a look and save your files here!
public = yes
browseable = yes
guest ok = yes
writable = yes
available = yes
valid users = j3nnn1
create mask = 0664
directory mask = 2775
force create mode = 0664
force directory mode = 2775

 
los permisos en el directorio compartido es importante, en la nueva instalación que hice
deje chmod 744 sino devuelve error de restriccion por el administrador.


Los paquetes en ubuntu son similares los nombres.

PD: teclado en ingles me comi algunos acentos. 
PD: siempre que pienso en samba, me recuerdo a esta cancion
https://www.youtube.com/watch?v=j5AUm_xaE9A (Samba pa ti / santana)
 
chau 
 

Friday, May 3, 2019

FliSol 2019


Este año se realizó el flisol en el centro cultural San Martín en la ciudad de Buenos Aires, estuvo muy bueno lleno de actividades, y lo más importante de muchas instalaciones, de mi parte solo pude hacer dos instalaciones, hace un tiempo que no uso Windows y me olvidé de las mañas con las que venía, tarde un montón pero me divertí. 

Estuvieron los chicxs de Pvm y code live como una guerra de djs, jajaja mentira esto último no fue así.  En dos espacios de tiempo cada grupo se destacó  con música alternativa. (no le pregunten a papo) 

En una de las instalaciones alguien me planteó la pregunta porque ayudaba en las instalaciones, y al final quede pensativa, de verdad que buena pregunta, lo cierto es que hace un tiempo siempre sacaba un poquito de espacio para participar y ayudar en esto porque veo importante  tener alguien a quien preguntar sobre Linux indistinto de la distribución, escuchar charlas o talleres de alguna tecnología, o diversos tópicos, reunirse con amigos. 

Me gusta hacer esto porque es un evento que ofrece una alternativa.

Nos vemos el próximo flisol. 

🤗 Abrazo! 


Fotos sacadas de twitter, :D así que deben ser públicas.



DDD

Saturday, April 27, 2019

octoprint y raspberry pi

Recientemente compré una raspberry con el objetivo de instalarle octoprint, en este post quedan mis apuntes de como configurarlo y utilizar en cosas básicas.

Cuando busqué que raspberry buscar lo primero fue leer que viniese con wifi y bluetooth integrado, ya que por cada uno de estos servicios procesos consume un puerto usb.
Así que la compra terminó decantando en la versión 3B plus
y fue amor ♥
solo queda agregar disipadores unir con el case y listo para usar. La imagen la descargue en específico de:
Luego de revisar la integridad de la imagen con el comando md5sum la pasé a la memoria sd mediante el comando dd y sync, fue bastante rápido ya que la imagen no pesa tanto. Una vez hecho esto inicié la imagen de octoprint e ingresé por login, esta imagen no tiene interfaz gráfica por lo que vas a encontrar que es una terminal con login, por defecto esta imagen viene con un login preestablecido que puede ser cambiado con el comando passwd

Datos por defecto.
default username is "pi",
default password is "raspberry"
Una vez haces login editas el archivo octopi-wpa-supplicant.txt que se encuentra en /boot (de la raspberry) Es importante cambiar la contraseña ya que está habilitado ssh! así si lo conectas a una impresora está expuesto.

>> ssh pi@192.168.0.23

o mediante su acceso web

>> http://octopi.local


Cuando ingresas por primera vez al acceso web, octopi te solicita llenar la configuración para limitar el acceso e incluso cambiar las contraseñas.




También por comodidad se puede asignar en el router que siempre le asigne la misma IP de esta forma siempre será accesible y la dirección memorizada.





Cuando ya todo está instalado, te muestra unas recomendaciones

Algo importante es no apagarla desconectando la fuente de poder porque podría tener problemas en un futuro, y requeriría instalar de nuevo la imagen. siempre apagar en el botoncito y esperar a que el led de booteo se muestre en rojito o apagado.
Otro punto importante, tener este comando en mente para cambiar alguna configuración.
>> sudo raspi-config
    Octo print te permite utilizar la raspberry como slicer el tema es que si tienes configuraciones muy especificas que hiciste en el slicer de máquina con algun software particula, conviene sólo usar octoprint enviando el gcode, es muy sencillo te permite organizar todo en carpetas.


así que eso es todo por hoy.
chau




UPDATE: agregando reglas udev para que reconozca que impresora se conectó a cual puerto.

Algo común al reiniciar la raspberry, apagar una impresosora, o dependiendo de la secuencia en la que detecta a la impresora, si tienes más de una impresora conectada cambia el puerto de conexión por la impresora que encendió primero o la que detectó primero.

Para evitar eso es necesario crear un regla udev, que no te dejará de asignar el puerto random tty, pero al menos puedes crear un duplicado apuntando al mismo dispositivo en este caso la impresora.

En el directorio:


/etc/udev/rules.d/

van a conseguir todas las reglas por defecto que realiza el sistema o distribución. en nuestro caso vamos agregar una más con la siguiente nomeclatura

99-usb-serial1.rules
99-usb-serial.rules

donde el contenido de la regla es el siguiente:


SUBSYSTEM=='tty', ATTRS{idVendor}=="0403", ATTRS{idProducto}=="6001", ATTRS{serial}=="A96H17RV", SYMLINK+="TTYUSBTORNADO"

Y eso es todo! 

esto sirve para la impresora tornado, estos numeros de idVendor y idProducto lo obtienes mediante varios comandos como:



udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)
 
dmesg | grep tty
 
lsusb

lsusb -v | grep -iE '(^bus|idvendor|idproduct)'  
 
udevadm info -a -n  /dev/ttyUSB0 | grep '{serial}' | head -n 1
 



y comparando, desconectando y conectando leyendo lsusb y dmesg lo identificas mas rapido.

Monday, February 18, 2019

Sobre registro consular y pasaporte


página de la embajada/consulado de Venezuela en Argentina según los propios empleados fue hackeada, y estiman que para estos días puedan recuperar el sistema con el que gestionan  pasaportes y prórrogas, entonces hay una planilla que en este momento solo tiene el kioskero de la esquina de la embajada, que muy amablemente nos facilitó.
La publico acá por si no pudiste bajarla antes que la página no estuviese disponible. Y si tienes que hacer cualquier tramite en el consulado, DEBES hacer el registro consular. Desde hace unos años.
Planilla del registro consular:
https://drive.google.com/file/d/1QfHxrmR1UpyGI1BDVShl7wrQ2OhWL7DU/view?usp=drivesdk
PD. Candelaria ya no está. Celulares no está permitido, y tienes que dejar tu bolso en planta baja solo subes con las carpetas.