Archivo

Archive for agosto 2015

Actualizado a Windows 10

24 de agosto de 2015 Deja un comentario

Tenía un equipo en Windows 7 y he dado el paso para actualizar a Windows 10.

En primer lugar, muchos problemas con una serie de aplicaciones de HP que he tenido que desintalar.

Tras conseguirlo, en una hora ha instalado Windows 10.

Con el reinicio he perdido el GRUB, pero ha instalado un gestor de arranque propio:

Con los primeros reinicios de la máquina no veo que vaya más rápido. Sí es cierto que el nuevo diseño no me desagrada, pero no veo mayor rapidez.

Como primera impresión, los menús de programas ahora están organizados de otra manera (habrá que organizarse).

He ido probando aplicaciones y todo funciona correctamente. No perdí datos ni configuraciones ni aplicaciones.

Pruebo Apache que lo tenía instalado en la máquina y no funciona.

Atención: Windows 10 instala IIS directamente en la máquina.

Hay que desinstalar IIS.

Esto ha sido un poco «coñazo». No lo tenemos accesible fácilmente con el nuevo panel de control. En una ventana de consola (CMD) he tenido que ejecutar: appwiz.cpl para abrirl Agregar o Quitar Programas (el clásico, el de los anteriores Windows), desde ahí he podido darle a lo de Activar o Desactivar Características de Windows y en esta ventana desactivar Internet Information Services.

Interesante: Lista de comandos rápidos de Windows

https://norfipc.com/inf/lista-comandos-rapidos-windows-7.html

Habilitar CORS con PHP

20 de agosto de 2015 Deja un comentario

Si no tenemos acceso a nuestro servidor Apache (o no nos da la gana cambiar la configuración), podemos en nuestro script PHP enviar la cabecera:

<?php
 header("Access-Control-Allow-Origin: *");

Recuerda que como es una cabecera debe ir justo antes de que enviemos cualquier carácter por la salida standard.

Bueno, todo esto por qué?

Podemos encontrarnos con peticiones HTTP entre distintos dominios y los nuevos navegadores lo tienen restringido (con IExplorer antiguo esto no es necesario).

Una cross-site HTTP request es una petición HTTP que se hace desde un recurso que está en un dominio distinto al dominio al que le hacemos la petición. Con los navegadores actuales no podemos ejecutar scripts u obtener recursos de otros dominios para utilizarlos en nuestra página. De esta manera lo podemos solucionar.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

Categorías: Desarrollo web Etiquetas: , , , , , ,

Poner el Datepicker de jQueryUI en castellano

19 de agosto de 2015 1 comentario

Desde el enlace https://github.com/jquery/jquery-ui/blob/master/ui/i18n/datepicker-es.js podemos descargarnos el fichero configurado en castellano (si queremos modificarle algo, como poner la primera letra del mes en castellano…)

Básicamente seguiremos estos pasos:

En el body insertamos el control:

<p>Fecha: <input type="text" id="datepicker" value="19/8/2015"></p>

Y en el head de nuestro fichero:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
//code.jquery.com/jquery-1.10.2.js
//code.jquery.com/ui/1.11.4/jquery-ui.js
http://./js/controles.js
<link rel="stylesheet" href="/resources/demos/style.css">

    $(function () {

    $.datepicker.setDefaults($.datepicker.regional["es"]);
$("#datepicker").datepicker();

Para obtener la fecha del Datepicker:

var currentDate = $( "#datepicker" ).datepicker( "getDate" );

Programaremos el evento onSelect para hacer «algo» cuando el usuario cambia la fecha seleccionada:

$("#datepicker").datepicker({

dateFormat: 'yy-mm-dd',
onSelect: function (date) {
alert(date)
},
});

La línea dateFormat: ‘yy-mm-dd’, la he puesto para que el datepicker me devuelva la fecha (date) con ese formato, que es el que acepta MySQL en las conexiones.

Categorías: Desarrollo web Etiquetas: , , , ,

Dashboards con Zoho.com

18 de agosto de 2015 Deja un comentario

AVISO: Esto es una iniciación, sin manual, todo intuitivo, para ver qué resultados se pueden conseguir.

Bueno, no solo Dashboards (paneles) sino Reports en general: Gráficos, Tablas, Tablas dinámicas, etc. Lo que no hace es mapificar, asunto muy interesante, pero la verdad es que Zoho.com está bastante bien para los fines que voy persiguiendo.

http://www.zoho.com/reports/

Material

Está en inglés la página, pero tenemos material en castellano.

En http://www.zoho.com/reports/Video-Demo.html se pueden encontrar unos cuantos videos tutoriales de unos minutos de duración para poder empezar.

Por ejemplo, para crear Dashboards:

Licencias y Precios

01 pricingHay muchos tipos de licencias. Yo voy a probar con la gratuita. Está muy limitada, únicamente puedes tratar con 10.000 registros y dos usuarios.

Crear Base de datos

02 crearDBTras registrarnos e identificarnos, lo primero que hay que hacer es crear una Base de Datos para trabajar sobre ella.

En este caso voy a hacerlo desde una hoja de Excel, así que selecciono la primera opción. Nos aparece un asistente:

03 asistenteBDPondremos el nombre a la base de datos, una descripción y seleccionaremos el fichero, que puede ser de distintos tipos:

04 asistenteBDMe muestra una previsualización de los datos en el siguiente paso del asistente. En mi caso, como es un fichero de Excel con una única hoja, sólo me aparece esta, si no, me preguntaría qué hoja quiero importar:

05 asistenteBDEn el siguiente paso indico el nombre de la tabla, puedo seleccionar qué campos quiero importar, cuáles son los nombres de los campos, tipos, etc.

06 asistenteBDCuando se termina el proceso de importación te muestra un resumen de los datos que ha conseguido importar, algo muy interesante en este tipo de asistentes y que pocas veces nos dan:

07 asistenteBD

Por último nos pide que si queremos generar de forma automática informes:

08 informesLe dije que sí y me generó unos cuantos:

09 informesLa idea es buena, pero el problema es que debería decirte sobre qué campos quieres realizar los resúmenes. Me explico, básicamente lo que hace es para los campos numéricos, realiza una serie de informes, realizando sumas. ¿Cuál es el problema? Pues que me ha cogido los campos ID y los campos de Coordenadas y los ha ido sumando.

Debería permitirme el seleccionar qué campos quiero que no sean tratados, para luego no tener que ir eliminando tantos análisis.

Reports

Ya sea sobre los informes que nos ha generado automáticamente o sobre uno que hemos creado nosotros, tendremos dos modos:

  • Vista
  • Diseño

Edición:

El aspecto al editar un gráfico es el siguiente:

10 editar informesDepende del tipo de gráfico nos aparecerán distintas pestañas, con informaciones relativas a los ejes. Podemos hacer drag and drop desde el panel de la izquierda sobre los controles de la derecha para personalizar nuestro gráfico y obtenemos una vista preliminar en la parte de abajo. El diseño es bastante sencillo.

Crear un informe

Desde la pestaña Explorer podemos crear tablas, informes, paneles o carpetas:

14 explorer

Al Crear un informe, nos aparece la siguiente ventana:

10 crear informesVemos que tenemos varios tipos de informes:

  • Gráficos
    • De muy diversos tipos. Cada tipo puede necesitar distintos parámetros para configurar
  • Tablas
    • Básicamente es mostrar campos y registros en una rejilla, a modo de Excel
  • Tablas dinámicas
    • Agrupamos por filas y columnas y mostramos resúmenes de los datos
  • Resúmenes
    • Es como las dinámicas pero más simples, ya que no se categoriza por columnas
  • Panel (un panel o dashboard es simplemente una combinación de los anteriores)

Cuando pulsamos sobre cualquiera de las opciones anteriores, nos va a preguntar cuál es la tabla de la que cogeremos los datos:

15 selecciona tabla

1. Gráficos

Al crear un gráfico nos sale al principio la siguiente ventana:

16 crea gráficoA la izquierda tenemos un panel del que haremos drag&drop de sus campos sobre el panel de diseño de la derecha arriba.

Vamos a hacer un gráfico con los turismos implicados por año:

Cogemos el campo de tipo fecha (fácilmente identificable por el icono de la izquierda) y los soltamos sobre el Eje X. En este momento aparece algo INTERESANTÍSIMO: Puedo estudiar la fecha por año, día, mes, trimestre, etc.

17 fecha graficoSobre el Eje Y suelto el campo de Turismos implicados. Me da la opción de calcular sumas, conteos, medias, etc:

17 suma graficoPuedo configurar muchas más cosas: Un campo con el nombre de las columnas, con el color de las columnas, tengo varios tipos de gráfico, puedo aplicar filtros, ordenar, editar la leyenda, etc.

18 tipos graficos19 leyenda

2. Tablas

Con una vista de tabla simplemente nos aparecerá un grid con nuestros datos y campos:

20 tablaPodemos ordenar según un campo, aplicar filtros, mostrar/ocultar columnas, cambiar el orden de las columnas, etc.

21 mostrar columnaEstas tablas no permiten modificar los datos, para hacerlo puedes irte directamente a la tabla originaria, a través de la pestaña Explorer, y hacerlo sobre ella. Recuerda que esto son Vistas.

Poder modificar los datos es muy interesante, ya que no tendremos que estar cargando los datos si ha habido un error en el origen.

3. Tablas dinámicas

Cuando creamos una tabla dinámica nos aparece la siguiente ventana para configurar:

22 edición dinámicaHaremos drag&drop con los campos y pulsaremos sobre Generar Dinámica para ver una vista preliminar de la tabla.

23 editado dinámicaPara los campos en blanco nos genera la columna NO VALUE. Al final aparece una suma de todas las columnas para esa fila:

24 editado dinámicaPuedo:

  • Editar los nombres de las columnas (bueno, excepto los campos y el -No Value-), ya que eso de Quarter&Year de fecha puede quedar un poco raro.
  • Cambiar los anchos de las columnas
  • Modificar el nombre de «Recuento Total» que nos aparece en la última fila
  • Así como ordenar y filtrar, como en el resto de informes

4. Tabla resumen

Cuando creamos o editamos una tabla resumen el aspecto es el siguiente:

11 edición tabla resumenComo vemos, le doy un nombre a la tabla resumen, le digo qué campos son los que quiero resumir (el orden es importante) y le digo qué quiero contar, sumar, etc.

El aspecto final sería:

12 vista tabla resumenVemos que los filtros se deben aplicar en modo diseño o el usuario también, pulsando sobre Datos subyacentes:

13 filtros tabla resumen5. Panel o dashboard

En un panel vamos a poder recopilar todos los elementos anteriores (tablas, gráficos, tablas dinámicas, resúmenes) así como Widgets (básicamente un widget contiene resultados de consultas, sobre todo se asocian a totales).

25 widgetEn la zona de arriba del panel puedo añadir Filtros de usuario:

26 filtrosVoy añadiendo campos (según el tipo aparecerán usando unos controles u otros)

26 panel filtrosy puedo ir configurándolos:

26 configura filtrosEl añadir gráficos o tablas es lo más sencillo. Simplemente un drag & drop desde el panel de la izquierda. En un principio se ajustan al ancho, pero se puede modificar para que ocupen la mitad o el tamaño que uno quiera. También podemos cambiarlos de sitio.

El aspecto en modo edición sería:

27 edicion panelY en modo de vista:

28 vista panelEn este modo vista, si pulso sobre un quesito del gráfico de sectores me aparecerá un menú contextual en el que me permite:

  • Ver los datos subyacentes (aparecerá una capa en la que tendré una rejilla con los datos filtrados para el año concreto, en este caso)
  • Explorar en profundidad (aparece un gráfico con los datos divididos por trimestres para el año seleccionado)

Informes de dos tablas distintas

¿Qué sucede si quiero hacer un informe que una dos tablas distintas que he cargado? Básicamente me tengo que crear una Tabla de Consulta.

Mediante SQL especifico la consulta. En cuanto ya tengo esta consulta almacenada, ya podré generar informes con este origen.

29 tabla de consultaExportar

Los paneles y gráficos puedo exportarlos como PDF o como HTML.

Las tablas o vistas puedo exportarlas como CSV, XLS, etc.

Puedo enviar por correo electrónico.

Resumen.

Zoho Reports es muy muy intuitivo, no necesitas de manuales para poder trabajar. Los conceptos están claros. los procesos de creación e importación son sencillos.

Únicamente me falla el hecho de la limitación porque no es una licencia gratuita y que no se pueden mapificar los datos.

Llamada a funciones al cargar una página [JS básico]

12 de agosto de 2015 Deja un comentario

Cuando en una página web queremos ejecutar algo al cargar la página lo normal es poner en el BODY el parámetro onload y llamar a la función correspondiente:

<BODY ONLOAD="carga()">

¿Qué sucede si tenemos más de una función a la que queremos llamar?

Podríamos hacer:

<BODY ONLOAD="carga1(); carga2()">

Si bien es cierto que esto no funciona en algunas ocasiones. Para asegurarnos un correcto funcionamiento:

<script>
window.onload=function(){
carga1();
carga2();
}
</script>
</head>
<body>

Además, esta segunda forma de hacerlo es menos intrusiva.

El problema de esta segunda solución es:

¿Qué sucede si quiero añadir desde distintos ficheros .js funciones al onload? ¿Cómo puedo hacerlo?

Si en un fichero llamado carga1.js tengo lo siguiente:

function carga1(){ 
     // Código de la primera función
}

if (document.addEventListener){
    window.addEventListener('load',carga1,false);
} else {
    window.attachEvent('onload',carga1);    
}

Y en otro segundo fichero llamado carga2.js tengo lo siguiente:

function carga2(){ 
     // Código de la segunda función
}

if (document.addEventListener){
    window.addEventListener('load',carga2,false);
} else {
    window.attachEvent('onload',carga2);    
}

En el HEAD de mi archivo HTML principal tendré:

<script src="carga1.js" type="text/javascript"></script>
<script src="carga2.js" type="text/javascript"></script>

Esta es la solución ideal.

Categorías: Desarrollo web Etiquetas: , , ,

Carga asíncrona de una página en un DIV en jQuery

11 de agosto de 2015 Deja un comentario

Bueno, en realidad no tiene por qué ser un div, sería la carga de una página en un elemento del DOM con jQuery.

Es algo muy sencillo, para ir empezando con jQuery.

En primer lugar en el HEAD incluimos jQuery:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

y también tendremos que cargar la página en el elemento que queramos:

<!-- Para cargar en el DIV "capa" la página correspondiente -->
<script>
$(document).ready(function(){
    $("#capa").load("pagina.php");
});
</script>

Por último, en el BODY, en el lugar que queramos, incluimos el DIV:

<div id="capa"></div>
Categorías: Desarrollo web Etiquetas: , , ,