martes, 21 de noviembre de 2017

Caracteres raros en la consola

Posiblemente, los problemas derivados de un mal uso o mala comprensión del encoding, sea uno de los principales dolores de cabeza para muchos desarrolladores. Es fácil determinar que cuando en una web estamos viendo «sensación» en vez de «sensación», es que pasa algo con el encoding.

¿Cómo solventar este problema en la consola de windows?

Pues simplemente dos pasos:

  1. Establecer como tipo de letra en las propiedades del intérprete de comandos (el conocido "Símbolo de sistema de Windows") "Consolas" o "Lucida Console"
  2. Cambiar la "página de códigos" utilizada empleando el comando chcp. En concreto, para utilizar la codificación de caracteres CP-1252 hay que teclear: chcp 1252. O si tu proyecto utiliza UTF-8, ejecutar chcp 65001

jueves, 7 de septiembre de 2017

¿Qué Web soporta desde tu dispositivo?

¿Puedo confiar en las funciones de la Plataforma Web para crear mi aplicación? Una visión general de las APIs HTML5 de integración de dispositivos Enlace web:

lunes, 7 de agosto de 2017

Uso de temas de Bootswatch para Jhipster

Requiere una versión mayor a la 4 de JHipster y cuya definición sea AngularJS

Para tener temas Bootswatch en lugar del tema por defecto sólo tiene que sustituir el css bootstrap con el css del tema bootswatch. Sin embargo, si desea un conmutador de tema fresco para cambiar entre los temas de Bootswatch dinámicamente, a continuación, siga esta sugerencia.




Nota: reemplace ‘pscApp’ con el nombre generado de su aplicación.

Agrege los siguientes ficheros:

Controlador


Agrega el siguiente controlador como bootswatch.controller.js bajo la ruta webapp/app/components/bootswatch
(function() {
 'use strict';
 
    angular
        .module('pscApp')
        .controller('BootswatchController', BootswatchController);

    BootswatchController.$inject = ['$scope', 'BootSwatchService'];

 function BootswatchController ($scope, BootSwatchService) {

   /*Get the list of availabel bootswatch themes*/
   BootSwatchService.get().then(function(themes) {
    $scope.themes = themes.themes;
    $scope.themes.unshift({name:'Default',css:''});
    //$scope.themes.push({name:'Default',css:''});
   });
   
 }

})();

Servicio


Agrega el siguiente servicio como bootswatch.service.js bajo la ruta webapp/app/components/bootswatch
(function() {
 'use strict';
 
    angular
        .module('pscApp')
        .factory('BootSwatchService', BootSwatchService);

    BootSwatchService.$inject = ['$http'];

 function BootSwatchService ($http) {
  return {
   get: function() {
    
    return $.getJSON("https://bootswatch.com/api/3.json", function (data) {
      return data.themes;
    } );

   }
  };
 }
 
})();

Directiva


Agrega la siguiente directiva como bootswatch.directive.js bajo la ruta webapp/app/components/bootswatch
(function() {
 'use strict';
 
    angular
        .module('pscApp')
        .directive('jhSwitchTheme', jhSwitchTheme);

    function jhSwitchTheme () {
  /*Directive binds to anchor to update the bootswatch theme selected*/
  return {
   restrict: 'A',
   scope: {
    theme : '=jhSwitchTheme'
   },
   link: function (scope, element, attrs) {
    var currentTheme = $("#bootswatch-css").attr('title');
    if(scope.theme.name === currentTheme){
     element.parent().addClass("active");
    }

    element.on('click',function(){
     $("#bootswatch-css").attr("href", scope.theme.css);
     $(".theme-link").removeClass("active");
     element.parent().addClass("active");
    });
   }
  };
 }

})();

En el index.html:


Agregue lo siguiente al archivo index.html después de la tarea de construcción CSS vendor.css para que éstas no se minifiquen y compacten por tarea de compilación.

Añada en el header
    
    
 ...
    
    
 
 
    
    
    
    

Añada lo siguiente en el pie de página
        


Agrege los siguientes script tags en el fichero index.html manualmente. Si ‘gulp inject’ falla, recibirá errores de angular
    
 
 
 

jueves, 12 de enero de 2017

Agregar "Abrir con Notepad++" para el menú contextual del Explorador de Windows

Abrimos el cmd ( "Windows + R" y escribimos "cmd" ) con permiso de administrador  y copamos el siguiente código. Pulsamos intro y, "Listo".

Nota: Revisa el directorio (notepadPath) donde tienes instalado el programa notepad++. En mi caso particular, notepad se encuentra en la siguiente ruta C:\Program Files (x86)\npp.7.2\ 
 
@echo off
SET notepadPath=C:\Program Files (x86)\npp.7.2\notepad++.exe
 
rem add it for all file types
@reg add "HKEY_CLASSES_ROOT\*\shell\Open with notepad++"         /t REG_SZ /v "" /d "Open with notepad++"   /f
@reg add "HKEY_CLASSES_ROOT\*\shell\Open with notepad++"         /t REG_EXPAND_SZ /v "Icon" /d "%notepadPath%,0" /f
@reg add "HKEY_CLASSES_ROOT\*\shell\Open with notepad++\command" /t REG_SZ /v "" /d "%notepadPath% %1" /f 

rem add it for folders
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with notepad++" /t REG_SZ /v "" /d "Open with notepad++" /f
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with notepad++" /t REG_EXPAND_SZ /v "Icon" /d "%notepadPath%,0" /f
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with notepad++\command" /t REG_SZ /v "" /d "%notepadPath% %1" /f
pause

A modo de ejemplo vamos a hacerlo lo mismo para Brackets, para ver que es aplicable para todos los programas.

@echo off
SET st2Path=C:\Program Files (x86)\Brackets\Brackets.exe
 
rem add it for all file types
@reg add "HKEY_CLASSES_ROOT\*\shell\Open with Brackets"         /t REG_SZ /v "" /d "Open with Brackets"   /f
@reg add "HKEY_CLASSES_ROOT\*\shell\Open with Brackets"         /t REG_EXPAND_SZ /v "Icon" /d "%st2Path%,0" /f
@reg add "HKEY_CLASSES_ROOT\*\shell\Open Brackets\command" /t REG_SZ /v "" /d "%st2Path% \"%1\"" /f 

rem add it for folders
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with Brackets" /t REG_SZ /v "" /d "Open with Brackets" /f
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with Brackets" /t REG_EXPAND_SZ /v "Icon" /d "%st2Path%,0" /f
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with Brackets\command" /t REG_SZ /v "" /d "%st2Path% \"%1\"" /f
pause

jueves, 21 de julio de 2016

Aumentar la velocidad de la instrucción DELETE para Oracle

El uso de hints puede ayudarte a aumentar la velocidad de una instrucción. El hint PARALLEL no fuerza la ejecución en paralelo, pero puede modificar el grado de parallelismo de una tabla para que ORACLE use este coste aproximado.


  • Si el tiempo de tardanza se produce durante la búsqueda de candidatos a borrar, entonces puedes usar los siguientes hints para ayudar a agilizar:

Para Full Table Scan

delete /*+ parallel(a,4) full(a) */
from cam_tab_meta a
where db_name like 'cam01'

Para Index Fast Full Scan

delete /*+ parallel_index(a,4) index_ffs(a) */
from cam_tab_meta a
where db_name like 'cam01'


  • Si el tiempo de tardanza pasa en la etapa de eliminar filas, entonces se puede utilizar DML paralelo que se encuentra desactivado por defecto, por lo que se debe primero activar dml:

Enable Parallel dml

alter session enable parallel dml;

delete /*+ parallel(a,4) full(a) */
  from cam_tab_meta a
 where db_name like 'cam01'

martes, 17 de noviembre de 2015

Eliminar varias lineas del log o de un fichero de texto para mejorar la lectura

Si tienes un fichero Log y deseas eliminar varias lineas para leer mejor el fichero, te enseñare un truco para trabajarlo con Notepad++

  1. Ir al Menú: Buscar / Buscar, pestaña Mark.
    • Activar el checkbox Marcar Línea. Si lo necesitamos, usamos expresiones regulares o pedimos que diferencia las mayúsculas de las minúsculas.
  2. Pulsar el botón Buscar todo
Notepad Mark


Una vez marcadas las lineas podemos eliminar las marcas:
  1. Menú: Buscar / Marcador / Borrar lineas marcas
O podemos invertir la selección y borrar las marcadas. Todo a gusto del consumidor!
  1. Menú: Buscar Marcador Invertir marcadores
  2. Menú: Buscar Marcador Borrar lineas marcas


viernes, 23 de octubre de 2015

Estimaciones de Software

El error más común de los analistas y programadores de software es estimar de menos. Sabemos que esto ocurre en otras ingenierías (quién no ha oído algún amigo al que le costó el doble de lo previsto la construcción de una casa inicialmente, quién no ha leído de proyectos de autopistas, puentes, grandes represas, que han terminado costando varias veces más de lo presupuestado…), pero parece ser que el caso del software es más sencillo.

¿Sabes conducir un coche o una moto? Alguna vez te has planteado: ¿Cuánto tiempo te lleva ir de Madrid a Moscú (ida y vuelta)? ¿Cuánto gastarás en combustible? Si tu jefe te dice que estés esta tarde en Moscú para una reunión: ¿Llegarás a tiempo? Estoy completamente seguro que te preguntarás lo mismo que nos preguntamos todos: Tipo de Transporte, Medios de Transporte, Costes, Guías, Mapas… Y qué sucede si además tu jefe te dice que solamente dispones de una moto para ahorrar costes! y adicionalmente sin GPS, sin mapas... Y a la final recibes una moto de bajo cilindraje (una vespa).

Estoy seguro que proyectos de informática en los que trabajaras, y que se plantean este tipo de situaciones, encontrarán la misma respuesta en el momento de estimar la construcción y puesta en marcha de un software. AL AZAR Y QUE DIOS NOS PILLE CONFESADOS!