sábado, 3 de junio de 2017

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.


 

viernes, 8 de enero de 2016

Evento change de un campo oculto en JQuery

Hay cosas que uno da por echas, que luego de ponerlas en practica emerge la realidad distinta por cierto a lo que pensabamos. Una de esas cosas, es gatillar el evento change de un campo oculto. Cualquiera (como yo), pensaria que es igual a como se hace con JQuery para un campo no oculto.

Pero no, se debe agregar a la instruccion que cambia el valor en el campo oculto, la sentencia para gatillar el evento:

$("#id_campo_oculto").val("valor").trigger('change');

Todo lo demas es igual.

viernes, 1 de enero de 2016

Como mostrar QMainWindow a pantalla completa


Estoy retomando un desarrollo en C++ usando Qt Creator. Y la ventana principal de la aplicación no aparece a pantalla completa. Lo que funciono. Y dejo para que no se me olvide y le sirva a alguien mas, es agregar la instrucción: QMainWindow::showFullScreen(); 

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "lstproyectos.h"
#include "lstobjetos.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QMainWindow::showFullScreen();
}