Mostrando las entradas con la etiqueta software. Mostrar todas las entradas
Mostrando las entradas con la etiqueta software. Mostrar todas las entradas

viernes, 11 de septiembre de 2020

Publicado viernes, 11 de septiembre de 2020 por con 0 comentarios

Mantener sesión abierta en Google Colab

Recientemente estaba trabajando en entrenar un modelo con la red neuronal YOLO V3, por lo que decidí trabajar en Google Colab para utilizar el procesamiento por GPU que esta plataforma ofrece, sin embargo el entrenamiento llevaba mas de 9 horas, por lo que al estar sin actividad la pestaña en la que corría Colab se perdía la sesión abierta. Esta ocasión comparto como mantener la sesión abierta aunque no exista actividad en la pestaña donde corra Colab.

Esta solución solo la he probado en Google Chrome y me ha funcionado correctamente.

1. Ingresar a la consola del navegador a través de las herramientas para desabolladores de Google Chrome (Ctrl + shift + i)

2. Una vez en la consola pegar el siguiente código

function ClickConnect(){
    console.log("Working"); 
    document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
}
setInterval(ClickConnect,60000)
3. Ejecutar el código anterior dando enter en la consola después de pegar el código.
Leer Más
      edit

miércoles, 4 de enero de 2017

Publicado miércoles, 4 de enero de 2017 por con 0 comentarios

Solucionar cierre inesperado Google Earth Debian

Luego de instalar Google Earth en Debian, al usar la función de búsqueda de un sitio la aplicación se cierra inesperadamente, esto ocurre por un problema con la librería openssl de Debian. Para corregirlo debemos:
1. Abrir una terminal
2. Ejecutar el siguiente comando
sudo nano /opt/google/earth/free/googleearth
3. En la ultima linea encontraremos LD_LIBRARY_PATH, antes de esta linea colocaremos la siguiente:
LD_PRELOAD=libssl.so.1.0.0 \
4. Revisar que las dos ultimas filas queden de la siguiente manera:
LD_PRELOAD=libssl.so.1.0.0 \
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./googleearth-bin "$@"
5. Guardar el archivo a través de nano, usando CTRL + O y luego presionando ENTER, para salir usamos CTRL + X.

Si no se tiene instalado la librería openssl la instalamos con:
sudo apt-get install libssl1.0.0
Leer Más
      edit

martes, 7 de junio de 2016

Publicado martes, 7 de junio de 2016 por con 0 comentarios

Responsive Login Form con Materialize CSS

En esta ocasión les traigo un template que pueden usar como formulario de acceso a algún sistema web que estén usando o desarrollando, es responsive ya que hace uso de Materialize, un framework CSS.

Para usar materialize primero vamos a configurar la pagina para llamar los scripts y estilos necesarios para el correcto funcionamiento de materialize. Para esto hacemos uso del siguiente código html:

<!DOCTYPE html>
<html>
  <head>
  <!--Importamos Google Icon Font-->
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <!--Importamos materialize.css-->
  <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css" media="screen,projection"/>
  <!--Siempre se debe importar jQuery antes de materialize.js-->
  <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/js/materialize.min.js"></script>
  <!--Let browser know website is optimized for mobile-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  </head>
  <body>
  </body>
</html>

Dentro de las etiquetas body colocamos los componentes materialize que queramos usar, a continuación dejo el código funcional en codepen.io, desde ahí pueden probarlo y copiarlo para usarlo en sus proyectos. Espero les sirva.



Leer Más
      edit

sábado, 4 de junio de 2016

Publicado sábado, 4 de junio de 2016 por con 0 comentarios

Generar rangos de IPv4 en PHP



Esta vez traigo una pequeña librería que hice para Codeigniter sin embargo se puede usar en PHP sin ningún problema.

IPGenerator es una librería que se puede usar en Codeigniter para generar rangos de IPv4, para usarla es necesario colocar IPGenerator.php en la carpeta application/libraries de Codeigniter. Luego para llamar la librería en algún controlador se la carga como otra librería normal, ejemplo:

$this->load->library("IPGenerator");

Para generar rangos se hace de la siguiente manera:

$rango = $this->ipgenerator->ipRange("1.1.1.1","1.1.1.10");


Lo que devolverá un arreglo con las ips dentro del rango dado.

Array ( [0] => 1.1.1.1 
        [1] => 1.1.1.2 
        [2] => 1.1.1.3 
        [3] => 1.1.1.4 
        [4] => 1.1.1.5 
        [5] => 1.1.1.6 
        [6] => 1.1.1.7 
        [7] => 1.1.1.8 
        [8] => 1.1.1.9 
        [9] => 1.1.1.10 )

La librería la pueden descargar del repositorio en Github

IP GENERATOR

Leer Más
      edit

jueves, 21 de enero de 2016

Publicado jueves, 21 de enero de 2016 por con 0 comentarios

Modelo Entidad Relación PostgreSQL

En esta ocasión les traigo una herramienta para realizar el modelado de una base de datos en PostgreSQL de manera visual.

Estuve buscando por internet algunas herramientas para trabajar con modelos graficos en PostgreSQL, aunque hay algunas herramientas la que me pareció mejor de todas es:

DbWrench

Ya que es multiplataforma, soportando: Windows, Linux, Mac Os.
Soporta las siguientes bases de datos:

MS SQL Server
MySQL
Oracle
PostgreSQL

Aqui un video mostrando las capacidades de este software.


Leer Más
      edit

viernes, 9 de octubre de 2015

Publicado viernes, 9 de octubre de 2015 por con 0 comentarios

Reproductor de sonido en Matlab

En esta ocasión comparto el código de un reproductor de sonido simple en matlab, se utilizan las funciones audioread y audioplayer para la reproducción.

Descargar ZIP
Leer Más
      edit

lunes, 5 de octubre de 2015

Publicado lunes, 5 de octubre de 2015 por con 0 comentarios

Cambiar labels axes matlab

En esta entrada les comparto como cambiar las etiquetas tanto del eje x como del eje y en un axis del GUI de matlab.

Lo primero que hacemos es crear un axes en el GUI de Matlab:

Hacemos un plot para ver como se grafican los ejex

Ponemos estas linea de código en la funcion OpeningFcn

noteid=(1:12)';
notename = {'C';'C#';'D';'D#';'E';'F';'F#';'G';'G#';'A';'A#';'B'};
axes(handles.axes2);
set(handles.axes2,'ytick',noteid,'ytickLabel',notename);
set(handles.axes2,'xtick',noteid,'xtickLabel',notename);

En este caso se piensa graficar una escala musical por lo que las variables se llaman noteid y notename y si vemos el plot se cambia los ejes.



Leer Más
      edit

miércoles, 5 de agosto de 2015

Publicado miércoles, 5 de agosto de 2015 por con 0 comentarios

Detectando Rostros con OpenCV 3.0 en Java

En esta ocasión les comparto un ejemplo de como usar OpenCV para detectar rostros en Java, para lo cual es necesario tener un instalación funcional de OpenCV. Si no sabes como hacerlo, recomiendo leer el tutorial oficial para trabajar con Eclipse y OpenCV disponible en: http://docs.opencv.org/doc/tutorials/introduction/java_eclipse/java_eclipse.html

Una vez echo esto pasamos a codificar el ejemplo en este caso el ejemplo se realizara con la siguiente imagen:


Realmente no se necesita tener conocimiento avanzado en Java para realizar el reconocimiento facial con OpenCV ya que la libreria realiza este proceso con pocas lineas de codigo.



import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;

public class Test {
public void run(){

CascadeClassifier faceDetector = new CascadeClassifier("C:\\Users\\Juan\\Workspace\\eclipseworkspace\\opencvtest\\src\\varios\\haarcascade_frontalface_default.xml");
Mat image = Imgcodecs.imread("C:\\Users\\Juan\\Workspace\\eclipseworkspace\\opencvtest\\src\\varios\\rostro-angelina-jolie-2371.jpg");
// Detecta rostros en la imagen.
// MatOfRect es un contenedor especial para la clase Rect.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

// Dibuja una rectangulo en el rostro detectado
for (Rect rect : faceDetections.toArray()) {

Imgproc.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));

}
// Graba la imagen con el rostro detectado.

String filename = "faceDetection.png";

System.out.println(String.format("Writing %s", filename));

Imgcodecs.imwrite(filename, image);

}
public static void main(String[] args) {

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

Test t = new Test();
t.run();

}

}

En la parte donde se crea el CascadeClassifier es necesario cambiar la dirección del archivo xml a la dirección donde se encuentre este en su equipo, de igual manera al leer la imagen.

Después de ejecutar estas pocas lineas de código obtendremos la siguiente imagen:


Leer Más
      edit

martes, 28 de julio de 2015

Publicado martes, 28 de julio de 2015 por con 4 comentarios

Metodo Punto Fijo Matlab

El método de punto fijo consiste en una forma iterativa de resolver una ecuación de la forma f(x)=x . El método consiste en elegir una aproximación inicial X0 y realizar la iteración:

Xk+1 = f(Xk)


function puntofijo
global fun
fprintf('Método del punto fijo:\n');
fx = input('Ingrese la función original:\n','s');
fun=input('Ingrese la función despejada:\n','s');
x0=input('Ingrese el punto inicial:\n');
n=input('Ingrese el numero de iteraciones:\n');
it=0;
fprintf('  it       x0              x1          x0-x1');
while(it<n)
    it = it+1;
    x=x0;
    x1=eval(fun);
    fprintf('\n%3.0f%15.10f%15.10f%15.10f\n',it,x0,x1,abs(x1-x0));
    x0=x1;
end
fprintf('\n el punto fijo aproximado es=%10.6f\n',x1);
clf
hold on
fplot(fx,[-2-x1,x1+2]);
%ezplot('x');
%ezplot fun
%legend('y=x','fun')
plot(x1,0,'-*g')
grid on;
text(x1+0.2,0,'raiz')
hold off

Descargar archivo m
Leer Más
      edit

martes, 24 de marzo de 2015

Publicado martes, 24 de marzo de 2015 por con 0 comentarios

Descargar Imagenes de Twitter

Existen algunas maneras de descargar las imágenes de un usuario de twitter, entre ellas esta la forma manual, pero ésta es demasiado tediosa para descargar una gran cantidad de imagenes, por esta razon, ahora comparto un herramienta que cumple esta función de manera optima. Esta herramienta es:

Sone Image Donwloader

Sone Image Downloader permite descargar todas las imagenes un usuario de Twitter.
Solo ingresa el Twitter username, click download y Sone Image Downloader hará el resto!

Adicionalmente Sone Image Downloader navegará en todos los tweets del usuario y buscará imágenes posteadas en Instagram y las descargará.


Descargar Sone Image Dowloader


Leer Más
      edit

sábado, 10 de enero de 2015

Publicado sábado, 10 de enero de 2015 por con 1 comentario

Rootear LG L7 II P714

LG L7 II P714


Este Smartphone android posee un magnífico estilo que llama la atención y procesador de doble núcleo de 1Ghz, 1 GB de memoria RAM y 4 GB de memoria interna.

Ademas: 
  • Pantalla true ips de 4.3”
  • Batería sio+ de larga duración de 2,460mah y uso eficiente de energía
  • Diseño renovado de la serie l con botón led inteligente
  • Cámara trasera de 8 mp
Para mas detalles puedes visitar:
http://www.lg.com/pa/telefonos-celulares/lg-P714-optimus-l7-ii/technical-specifications

Rootear LG L7 II P714

1. Lo primero que necesitamos es ir a Configuraciones > Seguridad > y activar la opción "orígenes desconocidos" y descargar la siguiente aplicación llamada FramaRoot:
Leer Más
      edit

viernes, 20 de junio de 2014

Publicado viernes, 20 de junio de 2014 por con 18 comentarios

Método Coste Mínimo Java

En esta ocasiona comparto el método del coste mínimo en un problema de transporte.

Modelos de Asignación y transporte.
El modelo de transporte es un tipo particular o especial de los modelos de programación lineal, busca determinar un plan de transporte de una mercancía de varias fuentes a varios destinos. Los componentes del modelo son:
1.- Nivel o cantidad de oferta en cada fuente.
2.- Nivel o cantidad de demanda en cada destino.
3.- El costo de transporte unitario de la mercancía desde las fuentes cada destino.

Al haber sólo una mercancía, un destino puede recibir su demanda de una o más fuentes. El objetivo del modelo es el de determinar la cantidad que se enviará de cada fuente a cada destino, tal que se minimice el costo del transporte total.
El modelo parte de la siguiente suposición básica:

“El costo del transporte en una ruta o dirección es directamente proporcional al número de unidades transportadas”. El tipo de unidad de transporte variará dependiendo del tipo de mercancía que se transporte.

Un modelo de transporte se puede representar como una red o grafo, con m fuentes y n destinos. Cada fuente y cada destino están representados por un nodo, estos nodos se unen por un arco que representa la ruta por la cual se transporta la mercancía.

Si tenemos:
ai= Cantidad de oferta en la fuente i.
bj = Cantidad de demanda en el destino j.
Cij= Costo de transporte unitario entre la fuente i y el destino j.
Xij = Cantidad transportada desde la fuente i al destino j,

Entonces, el modelo general de Programación Lineal que representa el modelo de transporte es:

Leer Más
      edit

sábado, 3 de agosto de 2013

Publicado sábado, 3 de agosto de 2013 por con 0 comentarios

Ping con Java, Graphical Ping

Trabajando con el networking de java o el api de redes de java, que se encuentra en el paquete java.net, me surgio una inquietud de como realizar un ping para ver si esta disponible una pagina asi como obtener su ip, es asi que realize este pequeño programa que nos muestra la ip de una pagina web asi como tambien si esta disponible.
Para el desarrollo de esta pequeña aplicación se ha ocupado las clases URL, HttpURLConnection, InetAdress de java.net.



Adjunto el ejecutable para que puedan probarlo.

GraphicalPing
Leer Más
      edit

martes, 18 de junio de 2013

Publicado martes, 18 de junio de 2013 por con 0 comentarios

IDE para lenguaje ensamblador


flat assembler (FASM) es un ensamblador libre, multi-paso, con el estilo de la sintaxis de Intel que soporta las arquitecturas IA-32 y x86-64.

El proyecto fue iniciado en 1999 por Tomasz Grysztar, que en aquella época era un estudiante no graduado de matemáticas en Polonia. El FASM está escrito en lenguaje ensamblador, viene con el código fuente completo, y fue capaz de ensamblarse a sí mismo (bootstrapping) desde la versión 0.90 del 4 de mayo de 1999. El primer lanzamiento público fue anunciado la 15 de marzo de 2000.

Es notable por su velocidad rápida, optimizaciones de tamaño, portabilidad, poderosas capacidades de macro, y la comunidad del foro en línea. Sin embargo, casi no usa opciones en la línea de comandos. Hay disponibles archivos binarios y de código fuente para Linux, Windows(incluyendo un IDE de desarrollo), DOS, OpenBSD, MenuetOS, OctaOS, y DexOS. FASM contiene vínculos (bindings) para la GUI de Windows yOpenGL.

Todas las versiones de FASM pueden generar los siguientes archivos objeto: binarios planos (flat binary), ELF o COFF (clásico o de MS), como también executables en formato MZ, ELF o PE. Existe un traslado del ensamblador a la arquitectura ARM, llamado FASMARM.

La última versión estable es la 1.70.03, lanzada el 29 de junio 2012

Leer Más
      edit