domingo, 25 de junio de 2017

Actualizar Nodejs via NPM



Voy a hacer unas de pruebas con Electron, que es un framework para construir aplicaciones multi plataforma usando html y Javascript entre otros. Para trabajar con Electron necesito tener instalado NodeJs, al ver que versión tengo, noto que esta un poco des actualizada (versión 6.10.3). Por lo que la actualizare y dejaré registrado como se hace.


Para actualizar NodeJs desde npm se deben ingresar  las siguientes instrucciones:

  • sudo npm cache clean -f
  • sudo npm install -g n
  • sudo n stable

Fuente:
https://davidwalsh.name/upgrade-nodejs

sábado, 3 de junio de 2017

Como mostrar varias lineas de texto en un MessageBox C#

Normalmente se usa MessageBox.Show para mostrar un texto informativo al usuario. El método show de la clase MessageBox tiene mas sobrecarga, puede mostrar botones, iconos, etc.

Pero para este tip, voy a mostrar como mostrar varias lineas en un mensaje. Así como aparece en la imagen:

Tan fácil como esto:

MessageBox.Show("Linea1" + "\r\n" + "Linea2" + "\r\n" + "Linea3");

Como saber el path de un ejecutable en C#

Saber la ruta desde donde se ejecuta un programa, normalmente es utilisimo. Como para tener la referencia para leer un archivo de configuración, dar la información al usuario, etc.

En C# se puede obtener desde varias formas:






Modo 1
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
Modo 2
System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]);

Modo 3
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)

miércoles, 24 de mayo de 2017

Comenzando con Python

Hay hartos lenguajes que me gustaría aprender. Pero el factor tiempo, hace que deje para después muchos intereses. Pero comenzar con Python es una de esas cosas que ya no pueden esperar. No porque tenga que hacer un trabajo remunerado con Python, sino porque en varios tópicos, entre ellos: matemáticas, machine learning, este lenguaje se aparece.

Empecé a revisar la documentación de Tensor Flow por ejemplo. ¿y que esta detrás? Python.

Voy a trabajar en un MacBook, y lo primero que haré es ver si esta instalado.
Escribo en una consola:

python -V

Me encuentro que ya tengo la versión 2.7.10.
¿Cuál es la ultima versión a la fecha?
En el sitio oficial dice que ya liberaron la versión 3.6.1, de modo que actualizare a esta versión (Considerando que mi objetivo es de aprendizaje).

Descargué el instalador para Mac desde el sitio web de python y seguí el proceso de instalación, después de lo cual me aparecieron estos dos iconos:



El icono que dice IDLE, lanza una shell de Python. Python Launcher lo voy a investigar.
Eso por ahora, creo que me lanzare en lo próximo directo a hacer algo con TensorFlow.

print("Es todo por ahora")

domingo, 4 de diciembre de 2016

SQL: ORA-01502


 Estoy tratando de insertar 40800 registros en una tabla Oracle a partir de un archivo con sentencias INSERT, y el resultado que obtengo es el error ORA-01502.

¿Porque se produce este error?
De acuerdo al sitio dba-oracle.com, este error se produce porque se esta tratando de insertar 2 o mas veces el mismo registro.

La solución es borrar el índice  indicado en el mensaje del error
ALTER INDEX PRUEBAS.PK_FAKETABLE REBUILD;

Pero también, se debe borrar los registros repetidos del script de carga. Esto lo hice usando GVIM (las instrucciones aquí)

Error SQL: ORA-01502: index 'PRUEBAS.PK_FAKETABLE' or partition of such index is in unusable state
01502. 00000 -  "index '%s.%s' or partition of such index is in unusable state"
*Cause:    An attempt has been made to access an index or index partition
           that has been marked unusable by a direct load or by a DDL
           operation
*Action:   DROP the specified index, or REBUILD the specified index, or
           REBUILD the unusable index partition

Despues de seguir las instrucciones finalmente puedo insertar 23000 registros ya que elimine los repetidos.

domingo, 24 de abril de 2016

Cargar Archivos en R


En R Studio se puede establecer el area de trabajo, para trabajar mas cómodamente y no tener que indicar la ruta completa a un archivo.

Lo que hare en este post es cargar un archivo que contiene valores de una acción de la bolsa.


Para cargar un archivo hay varias formas, pero ya que necesito cargar un csv, voy a utilizar read.csv:

Donde:
acciones : es una variable donde guardo el contenido del archivo
file : indica el nombre del archivo a cargar.
head : TRUE o FALSE indica si carga o no los encabezados.
sep : el separador del archivo cvs.

Al cargar el archivo me da el siguiente error.

Not all characters in /Users/carp/Dropbox/Bolsa/Intradia/AGUAS-A 23042016.csv could be decoded using ASCII. To try a different encoding, choose "File | Reopen with Encoding..." from the main menu.





La solución es usar un parámetro mas FileEncoding='UTF-16'

Entonces cuando usemos View(nombre de la variable), mostrará el contenido que hemos cargado.  








viernes, 11 de marzo de 2016

La cadena de entrada no tiene el formato correcto.

Obtengo unos datos de la base de datos (DB2) los cuales vienen como decimales. Pero los necesito como Integer, entonces al pasarlos a integer con Int32.Parse me da el error en cuestión:

La cadena de entrada no tiene el formato correcto


 Había pensado en tratar los valores como string y quitarles el punto los decimales. Pero se ve mejor pasarlos de Double a Integer.