//MANEJO GENERAL
git pull //Actualizar repositorio local con remoto.
git push //Actualizar repositorio remoto con local.
git add . //Actualiza repo local para ser committeado.
git commit -m "mensaje" // commit al repo local.
git update-index --assume-unchanged pathArchivo // Ignora cambios en el archivo.
git update-index --no-assume-unchanged pathArchivo // Des-ignora cambios en el archivo.
git checkout master // Sitúa en el branch master.
gitk nombre_archivo // Muestra el history de un archivo.
git checkout hash_del_branch -- nombre_archivo // Sobreescribe un archivo con el que corresponde al branch indicado.
git log -p nombreArchivo // Muestra las diferencias en los commits del archivo.
git diff //Muestra los cambios desde el último commit.
git fetch origin // Actualiza mi master con el del servidor(origin).
git rebase origin/master // Mueve mi proyecto, actualiza con el master y luego persiste los cambios de mi proyecto en la actualización realizada.
git commit --amend // Edita el comentario del último commit.
git reset --hard origin/master //Sobreescribe el código del repositorio local con el remoto(Master).
git reset --hard 063f3a9b1b443825b308141946369bb615482877 //Volver a un commit anterior, borrando lo hecho desde entonces. c14809fa es el id del commit en cuestión.
//TAGGEO
git tag -a v1.4 -m 'my version 1.4' // Etiqueta una versión.
git tag // Muestra una lista de versiones.
git push origin --tags // Pushea todas las tags.
git push origin v1.5 // Pushea una tag en especial.
//BRANCHEO
git branch // Lista los branches locales.
git checkout -b nombre_branch // Creación del nuevo branch.
git branch -d nombre_branch // Borrado del branch.
git checkout nombre_branch // Posicionado sobre el branch.
git merge nombre_branch // Se hace desde master para mergear un branch.
git push --all // Pushea todos los branches.
Este blog nace con la idea de ir alojando soluciones a algunos de los errores con que me voy encontrando en mi vida como programador... No aseguro que estén todos resueltos de la manera más óptima, pero funcionan... Compartir conocimientos, esa es la idea!!!
domingo, 25 de diciembre de 2016
jueves, 15 de diciembre de 2016
PowerShell - Filtrar registros de archivo de texto que contengan una o más cadenas
Primero declaramos un array con las cadenas a filtrar:
$cadenas = @("Let","It","Be")Luego filtramos el archivo con Get-Content:
Get-Content '.\PATH_ARCHIVO_A_FILTRAR.txt' |Estas dos sentencias se pueden ejecutar directamente en la consola de PowerShell sin necesidad de generar un Script. Simplemente se ejecutan uno a uno con la tecla Enter.
Select-String -Pattern $p -SimpleMatch |
Set-Content ARCHIVO_FILTRADO.txt
miércoles, 14 de diciembre de 2016
Enviar los valores de un label al hacer un submit de un form
Declaro el label y, en paralelo, un input de tipo hidden que se corresponderá con el mismo
Luego, por ejemplo, seteo sus valores con jQuery.
No se si es la manera más prolija, pero funciona :)
<label name="importe_label" id="importe_label" />
<input type="hidden" id="importe" name="importe" value=""/>
Luego, por ejemplo, seteo sus valores con jQuery.
$("#importe_gravado").val(99.99);Entonces, cuando hago el submit del form, ya puedo contar en back-end con el valor del label, que será el mismo del input (En este caso, llegará en el parámetro "importe").
$("#importe_gravado_label").text(99.99);
No se si es la manera más prolija, pero funciona :)
sábado, 3 de diciembre de 2016
MySQL - Quitar caducidad a la password de un usuario
Para verificar algunas propiedades del host y password del usuario:
SELECT user, host, password_last_changed, password_lifetime, password_expired FROM mysql.user WHERE user = 'root';
Para agregar un intervalo de caducidad del password:
ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
Para eliminar la caducidad del password:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
viernes, 18 de noviembre de 2016
JavasCript- Recargar formulario SIEMPRE por get
Se me presentó una ocasión en la cual, primero realizaba un submit de un form por post, y luego, al hacer un reload de la página, volvía a enviar el submir por post... Intenté muchas cosas, y nada.. Debuggeando un poco el código, llegué a la siguiente solución, que no es lo más prolijo, pero funciona:
/*Código anterior:*/
//parent.location.reload(true);
/*Código nuevo:*/
var urlReload = window.location.pathname + window.location.search;
parent.location.href=urlReload;
miércoles, 16 de noviembre de 2016
jQuery Datatables - Uncaught TypeError: Cannot read property 'mData' of undefined(…)
Este error se produce cuando no se respeta la estructura correcta, que debe incluir los tags thead y tbody.
Ejemplo de una tabla bien conformada:
Ejemplo de una tabla bien conformada:
<table id="sample-table"> <thead> <tr> <th>Titulo columna 1</th> <th>Titulo columna 2</th> </tr> </thead> <tbody> <tr> <td>Valor columna 1</td> <td>Valor columna 2</td> </tr> </tbody> </table>
jueves, 10 de noviembre de 2016
Ubuntu - Chequear los valores de memoria de Tomcat (Heap y PermGen)
A veces, al querer modificar las configuraciones de consumo de memoria de Tomcat en Ubuntu, nos cuesta conocer cuales son los valores actuales.
Una forma práctica de conocerlos, es ejecutando lo siguiente en la terminal:
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
Para información más detallada, recomiendo este post:
https://www.mkyong.com/java/find-out-your-java-heap-memory-size/
Una forma práctica de conocerlos, es ejecutando lo siguiente en la terminal:
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
Para información más detallada, recomiendo este post:
https://www.mkyong.com/java/find-out-your-java-heap-memory-size/
martes, 1 de noviembre de 2016
La tabla debe contar con una estructura como la siguiente:
<table id="tablaDinamica" width="100%">
<tbody></tbody>
</table>
Para agregar filas:
$('#tablaDinamica > tbody:last-child').append('<tr><td>Valor Columna 1</td><td align="right">Valor Columna 2</td></tr>');
Para borrar todas las filas de la tabla:
$("#tablaDinamica > tbody tr").remove();
<table id="tablaDinamica" width="100%">
<tbody></tbody>
</table>
$('#tablaDinamica > tbody:last-child').append('<tr><td>Valor Columna 1</td><td align="right">Valor Columna 2</td></tr>');
Para borrar todas las filas de la tabla:
$("#tablaDinamica > tbody tr").remove();
martes, 25 de octubre de 2016
npm install - Error: connect ETIMEDOUT 192.168.20.1:3128
De un momento a otro, por alguna razón, cada vez que quería instalar o actualizar una dependencia con npm, me surgía le siguiente error:
Error: connect ETIMEDOUT 192.168.x.x:xxxx
Para solucionarlo intenté borrar npm y nodejs, pero luego de volver a instalarlos(Previo reinicio del equipo), el problema persistía. Luego de varios intentos fallidos, di con la solución que, al menos a mí me funcionó :)
Error: connect ETIMEDOUT 192.168.x.x:xxxx
Para solucionarlo intenté borrar npm y nodejs, pero luego de volver a instalarlos(Previo reinicio del equipo), el problema persistía. Luego de varios intentos fallidos, di con la solución que, al menos a mí me funcionó :)
npm config delete proxyGracias StackOverflow por existir!!!
jueves, 13 de octubre de 2016
Perfiles y recursos en maven
Muchas veces necesitamos que un proyecto tome ciertos archivos según el perfil que se selecciona. Esto se hace con los tags directory(Desde dónde obtendremos los los archivos), targetPath(Hacia dónde los copiaremos) e include(archivo o tipos de archivo a incluir) dentro del archivo pom.xml.
Para información más detallada, consultar en http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html
Dejo aquí un ejemplo de uso:
<profiles>
<profile>
<id>devElmerDeVe</id>
<build>
<resources>
<resource>
<directory>src/main/resources/dev/elmerDeVe/properties</directory>
<targetPath>Intranet</targetPath>
</resource>
<resource>
<directory>src/main/resources/dev/elmerDeVe/css</directory>
<targetPath>../../WebContent/css</targetPath>
<includes>
<include>**/*.css</include>
</includes>
</resource>
</resources>
</build>
</profile>
</profiles>
Para seleccionar un perfil desde eclipse:
martes, 11 de octubre de 2016
MySQL - Generar DUMP
Simple línea de comando para generar un dump(Script con las tablas y datos) de una base de datos:
mysqldump -u USUARIO -pPASSWORD NOMBRE_DB > NOMBRE_ARCHIVO.sql
Donde:
USUARIO y PASSWORD deben ser reemplazados por los datos de autenticación en la base de datos.
NOMBRE_DB: Es el nombre de la base de datos de la cual generaremos la exportación.
NOMBRE_ARCHIVO: Es el nombre del archivo de tipo script que se generará.
mysqldump -u USUARIO -pPASSWORD NOMBRE_DB > NOMBRE_ARCHIVO.sql
Donde:
USUARIO y PASSWORD deben ser reemplazados por los datos de autenticación en la base de datos.
NOMBRE_DB: Es el nombre de la base de datos de la cual generaremos la exportación.
NOMBRE_ARCHIVO: Es el nombre del archivo de tipo script que se generará.
Angular y Eclipse
Estos pasos son los que me han servido para poder importar un proyecto AngularJS en Eclipse.
1- Buscar en MarketPlace el siguiente plugin: AngularJS Eclipse e instalar.
2- Mientras se instala el plugin, en eclipse ir a File -> New Project.
3- Crear el proyecto en la misma ruta donde se encuentra el proyecto a importar. Ej: /home/elmerdeve/desarrollo/miProyectoAngular
4- Una vez instalado el plugin, reiniciar el eclipse y luego hacer click derecho sobre el proyecto en cuestión(miProyectoAngular) -> Configure -> Convert to Angular Project.
Así pude disponer de mi proyecto para ser codificado en Eclipse.
Nota: Mi entorno marca muchos warnings y errores que no son tales en los html y js, sino que no logra identificar completa y correctamente la sintaxis de Angular. Al día de hoy no he podido pulir esto aún.
1- Buscar en MarketPlace el siguiente plugin: AngularJS Eclipse e instalar.
2- Mientras se instala el plugin, en eclipse ir a File -> New Project.
3- Crear el proyecto en la misma ruta donde se encuentra el proyecto a importar. Ej: /home/elmerdeve/desarrollo/miProyectoAngular
4- Una vez instalado el plugin, reiniciar el eclipse y luego hacer click derecho sobre el proyecto en cuestión(miProyectoAngular) -> Configure -> Convert to Angular Project.
Así pude disponer de mi proyecto para ser codificado en Eclipse.
Nota: Mi entorno marca muchos warnings y errores que no son tales en los html y js, sino que no logra identificar completa y correctamente la sintaxis de Angular. Al día de hoy no he podido pulir esto aún.
sábado, 19 de marzo de 2016
Ionic Framework- Failed to load resource: net::ERR_CACHE_MISS
Otro de los problemas con que me encontré al migrar mi proyecto Angular a Ionic fue el siguiente error de Cache:
"Failed to load resource: net::ERR_CACHE_MISS"
Luego de navegar un largo rato por la web, en uno de los rincones más recónditos de la misma encontré una solución, que al menos a mi me sirvió: Remover y agregar la plataforma que produce inconvenientes.
¿Cómo se hace esto?
Símplemente ejecutando desde el path del proyecto los siguientes comandos:
ionic platform rm android
ionic platform add androidDonde android es la plataforma en cuestión, pudiendo ser reemplazada por
browsero
ios. Esa una solución bastante simple y obvia, pero bastante recurrente, por lo que he estado leyendo.
jueves, 25 de febrero de 2016
Ionic Framework- Habilitar uso de ngCookies
Tengo un sitio creado en AngularJS, el cual tuve que "encapsular" en Ionic para poder interactuar con dispositivos Android.
Uno de los problemas que encontré, fue que luego de la migración, no me funcionaban las cookies.
Luego de mucho investigar, encontré la solución incluyendo a mi proyecto esta línea:
CookieManager.setAcceptFileSchemeCookies(true);
Pasos para incluirla:
1- Dirigirse a la ruta:
PATH_PROYECTO\platforms\android\src\com\ionicframework\NOMBRE_PROYECTOnnnnnn
2- Dentro de la ruta, editar el archivo de nombre MainActivity.java
3- Incluir la línea anteriormente mencionada luego de la siguiente:
super.onCreate(savedInstanceState);
El código de mi clase MainActivity.java ha quedado así:
Eso es todo, así las cookies han vuelto a la vida en mi Ionic project :)
Uno de los problemas que encontré, fue que luego de la migración, no me funcionaban las cookies.
Luego de mucho investigar, encontré la solución incluyendo a mi proyecto esta línea:
CookieManager.setAcceptFileSchemeCookies(true);
Pasos para incluirla:
1- Dirigirse a la ruta:
PATH_PROYECTO\platforms\android\src\com\ionicframework\NOMBRE_PROYECTOnnnnnn
2- Dentro de la ruta, editar el archivo de nombre MainActivity.java
3- Incluir la línea anteriormente mencionada luego de la siguiente:
super.onCreate(savedInstanceState);
El código de mi clase MainActivity.java ha quedado así:
package com.ionicframework.NOMBRE_PROYECTOnnnnnn;
import android.os.Bundle;
import android.webkit.CookieManager;
import org.apache.cordova.*;
public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Set by <content src="index.html" /> in config.xml
CookieManager.setAcceptFileSchemeCookies(true);
loadUrl(launchUrl);
}
}
Eso es todo, así las cookies han vuelto a la vida en mi Ionic project :)
Suscribirse a:
Entradas (Atom)
Ubuntu - Setear Variables de Entorno por consola
Ejemplo para NodeJS, Android Studio y Gradle, donde se editan los archivos .profile y .bashrc, se agregan las variables al final del archivo...
-
Tener en cuenta el lifecycle: compile --> test --> package --> install Comandos: mvn clean (Limpia el proyecto). mvn install (...
-
Para verificar algunas propiedades del host y password del usuario: SELECT user, host, password_last_changed, password_lifetime, ...
-
Primero declaramos un array con las cadenas a filtrar: $cadenas = @("Let","It","Be") Luego filtramos el arc...