lunes, 9 de octubre de 2017

Error: EACCES: permission denied - Electron (solucionado)

Electron es un framework que permite desarrollar aplicaciones de escritorio independiente del sistema operativo, estas aplicaciones  se pueden programar en HTML ,  Javascript y CSS.

Lo anterior a modo de introducción. Comenzar es sencillo en teoría. Pero es posible que te encuentres con el error que me ha acontecido a mi al seguir los pasos indicados por el sitio oficial de Electron. Al instalar las dependencias y ejecutar el Hola mundo en mi mac, me da un error de permiso denegado (que copio integro mas abajo). Para ejecutar sigo las siguientes instrucciones (solo agrego sudo).

# Clone the Quick Start repository
$ sudo git clone https://github.com/electron/electron-quick-start

# Go into the repository
$ cd electron-quick-start

# Install the dependencies and run
$ sudo npm install && npm start


MacBook-Pro-de-Marcos:electron-quick-start marcosdonoso$ sudo npm install

> electron@1.7.8 postinstall /Users/marcosdonoso/Documents/TradingCl/electron-quick-start/node_modules/electron
> node install.js

/Users/marcosdonoso/Documents/TradingCl/electron-quick-start/node_modules/electron/install.js:48
  throw err
  ^

Error: EACCES: permission denied, mkdir '/Users/marcosdonoso/Documents/TradingCl/electron-quick-start/node_modules/electron/electron-tmp-download-9241-1507598637836'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! electron@1.7.8 postinstall: `node install.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the electron@1.7.8 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/marcosdonoso/.npm/_logs/2017-10-10T01_23_59_616Z-debug.log

MacBook-Pro-de-Marcos:electron-quick-start marcosdonoso$

¿Cual es la solución al error?
sudo npm install -g electron --unsafe-perm=true --allow-root








lunes, 26 de junio de 2017

Como empezar con Angular 2

Angular es un framework para aplicaciones web, mantenido por Google. Su principal característica es que hace uso del concepto de single-page application (SPA).

Lo que explicare en este post es como empezar a trabajar con este framework.

Para empezar con Angular, hay tres formas de hacerlo:
  • Desde cero, agregando archivo a archivo
  • Descargando el proyecto angular / quickstart  desde Github
  • Utilizando Angular Cli
Las dos primeras opciones en mi opinión tienen mas contras que pros. Ya que agregando archivo a archivo vas a encontrar problemas con las dependencias. Descargando el proyecto de ejemplo desde Github, proporcionado por la misma gente de Angular. Tiene el siguiente contra, dicho por ellos mismos que no es código diseñado para producción.
La ultima opción me parece mas óptima.

Angular Cli es una herramienta de linea de comandos para crear aplicaciones Angular en poco tiempo.

Los requerimientos para instalar esta herramienta son:
  • NodeJs 6.9.0++
  • NPM 3++
Para instalar Angular cli se debe ejecutar lo siguiente:
  • npm install -g @angular/cli

Para instalación en MAC debe anteceder sudo. Otra cosa, es que puede tardar un buen rato la instalación.
Por último, para crear tu primera aplicación Angular nada mas bastan estos comandos:
  • ng new my-project
  • cd my-project
  • ng serve

Fuente
https://cli.angular.io

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.