martes, 30 de diciembre de 2014

Análisis rápido en Excel 2013

Una de las nuevas funcionalidades nuevas de excel 2013 es el análisis rápido. Esta funcionalidad se activa cuando seleccionamos un recuadro de datos. Una vez seleccionados nos  aparecerá un pequeño icono de análisis rápido. Al hacer click, podremos visualizar una pequeña ventana en donde podremos dar formato a las celdas, crear gráficos, realizar operaciones matemáticas, crear tablas dinámicas y minigráficos..



Entres las opciones posibles de análisis de datos se encuentran las siguientes:
  • Formato de Celdas: Con esta opción podremos dar color a las celdas seleccionadas según criterio que Excel asigna por un algoritmo propio. Entre las opciones tenemos:
    • Barra de Datos: Introduce una barra azul en las celdas que tengan valores, cuando más alto el valor más pintada estará la celda.
    • Escala de Colores: Aplica tonos de color desde el rojo al verde a los valores según el criterio identificado por el Excel.
    • Conjunto de Iconos: Agrega una flecha hacia abajo, derecha o arriba dependiendo el valor que esté analizando.
    • Mayores que: Cuando se hace click, permite pintar celdas en base a si el valor es mayor a un número ingresado en una ventana.
    • 10% de valores superiores: Una herramienta de estadística que se aplica a los valores seleccionados.
    • Borrar Formato: Le quita el formato a los valores seleccionados.


  • Gráficos: permite crear distintos tipos de gráficos según los datos seleccionados. Excel es capaz de entender el tipo de datos seleccionando y nos ofrece los que mejor representarían el análisis. Después puedes ir al botón “Mas Gráficos” para buscar otros en caso de que los recomendados no sean de tu agrado.


  • Operaciones Matemáticas: Con los datos seleccionados, podremos elegir entre Suma, Promedio, Recuento, Porcentaje del Total y Total Acumulado. Tenemos dos tipos de presentación, hacia abajo o hacia la derecha, si elegimos hacia abajo tomará todos los datos de forma vertical, si elegimos hacia la derecha, tomara todos los datos de izquierda a derecha fila por fila.
  • Tablas: Permite crear una tabla a partir de los datos seleccionados, puede ser una tabla común con un índice superior en cada columna, o bien una tabla dinámica, en donde podemos elegir varias formas de presentarlo.
  • Minigráficos: Permite incrustar monográficos hacia la derecha, podemos elegir entre Líneas, Columna o Ganancia o Pérdida.



viernes, 26 de diciembre de 2014

Programación en Android (IV)

Volvemos a retomar la programación en Android. En las entregas anteriores nos quedamos configurando el entorno de desarrollo. En esta entrega seguiremos viendo características del entorno de desarrollo.

Cuando nos descarguemos Eclipse para Android este ya vendrá con el plugin ADT incorporado. En caso de que te descargues el plugin por separado podrás instalarlo en la forma en la que se instalan los plugins en Eclipse


Para instalar el plugin ADT (Android Development Tools) en Eclipse, es necesario acceder al menú “Help -> Install New Software…” y añadir el site:

https://dl‐ssl.google.com/android/eclipse/site.xml





No obstante es más recomendable que te bajes el entorno directamente configurado con el plugin ya instalado. Este plugin facilitará la creación de la estructura de los proyectos Android, permitirá probar directamente las aplicaciones en los dispositivos virtuales creados, validará el código desarrollado, etc.

Abajo verás los botones que añade el plugin a eclipse en el que se tendrá acceso a la configuración de emuladores (AVD) y al SDK manager que explicamos en el post anterior, aunque lo mas importante es que permite crear los proyectos Android y carga el propio framework:



 


jueves, 18 de diciembre de 2014

Extraer valores de un documento XML mediante Excel con la función XMLFILTRO

Imaginaros que tenéis un documento XML y queréis manejarlo en excel extrayéndo de vuestro XML piezas de información. Por ejemplo imaginad que tenemos el siguiente XML:

<?xml version='1.0' encoding="utf-8"?>
<libreria>
  <libro genero='Poesía' fechaPublicacion='1932'
           ISBN='1-861003-11-0'>
    <titulo>Poeta en Nueva York</titulo>
    <autor>
      <nombre>Federico</nombre>
      <apellidos>García Lorca</apellidos>
    </autor>
    <precio>8.99</precio>
  </libro>
  <libro genero='Novela' fechaPublicacion='1967'
           ISBN='0-201-63361-2'>
    <titulo>The Confidence Man</titulo>
    <autor>
      <nombre>Herman</nombre>
      <apellidos>Melville</apellidos>
    </autor>
    <precio>11.99</precio>
  </libro>
</libreria>

si queremos sacar los titulos y los precios de todos los libros podemos usar la función
XMLFILTRO(xml,xpath)
Deberíamos ir a dos casillas y emplear la función de la siguiente forma:

XMLFILTRO(A1; "//libro[1]/titulo")  
XMLFILTRO(A1; "//libro[2]/titulo")
XMLFILTRO(A1; "//libro[1]/precio")
XMLFILTRO(A1; "//libro[2]/precio")


Quedando como en la siguiente imagen:

lunes, 15 de diciembre de 2014

HangFire para .net o como rellenar el gap de la gestión de colas de procesos

El otro día nos propusieron para la evolución de una funcionalidad en uno de los proyectos que llevamos el uso de la tecnología HangFire. Nos resultó interesante dado que llena el vacío existente en .NET para la gestión de colas de procesos pendientes, así que haremos una prueba de esta tecnología para incorporarla a uno de nuestros proyectos. A continuación vamos a explicar un poco en que consiste.

Correr procesos .Net en background tiene sus riesgos (remito a la siguiente dirección en la que se analizan más detalladamente estos problemas peligros de los procesos background en .NET ). En resumen lo que dice el articulo es que:
  • Una excepción no tratada en un hilo no asociado a una petición hará caer el proceso en background.
  • Si ejecutas el sitio en una granja de servidores, se puede acabar con multiples instancias de tu aplicación, todas intentando ejecutar la misma tarea en el mismo tiempo
  • El AppDomain que ejecuta tu sitio se puede caer por múltiples razones y esto interrumpirá definitivamente la tarea en background con ello
Existe muchas formas de hacer las cosas en background y gran cantidad de librerías y otras opciones disponibles. El espectro de opciones son las siguientes:
  • Hangfire u otras librerías opensource: usado para escribir tareas en background en un website en ASP.NET
  • Cloud: Azure WebJobs: una característica de Azure usada para ejecutar tareas en background fuera del website
  • Advanced: Azure Worker Role en un Servicio en la nube: para escalar carga de procesos en background independientemente del Website
Aparte de Hangfire existen otras opciones como QUEUEBACKGROUNDWORKITEM añadido en .NET 4.5.2, FluentScheduler y Quartz.net.

Hangfire es un framework que está muy bien documentado. Esta soportado por SQL Server, SQL Azure, MSQM o RabbitMQ. Una de las mejores características es el dsahborad que incluye y que muestra todos los trabajos programados, en ejecución, que han terminado con éxito o que han producido algún error



En Hangfire es posible encolar trabajos fácilmente y se apoya en colas persistentes

BackgroundJob.Enqueue(() => Console.WriteLine("Fire-and-forget"));


Se pueden retrasar

BackgroundJob.Schedule(() => Console.WriteLine("Delayed"), TimeSpan.FromDays(1));
 
O ejecutarla de forma periódica
 
RecurringJob.AddOrUpdate(() => Console.Write("Recurring"), Cron.Daily);
 
Aquí les dejo un tutorial para profundizar más tutorial hangfire
 

lunes, 1 de diciembre de 2014

Hoy vamos a hablar de una página web para ganar dinero altamente recomendable. Se llama goowin, es una página web francesa en la que acumulando puntos podrás ganar premios.

La primera vez que entras te darán fichas para comenzar a jugar, con estas fichas podrás acumular unos 50-60 euros. Podrás jugar a varios juegos que son del tipo tragaperras, rasca y gana o la ruleta francesa.



Con ese dinero, cuando consigas un total de 300 euros, se te desbloqueará la sección de regalos. Aquí podrás ganar uno de los regalos que se proponen o bien su equivalente en efectivo a través de un medio de pago como paypal. Para llegar a ganar uno de estos regalos tendrás que jugar a un minijuego de azar.




Para ganar fichas para poder seguir jugando hay varias posibilidades:
1) Cada día que entres te suelen dar 45 fichas
2) Hay una bandeja en la cual te mandan anuncios, encuestas y anuncios a correo por los cuales te dan fichas
3) Más abajo existen 3 minijuegos que consisten en un bingo que se juega cada hora y que si ganas te permite rascar en una malla en la que se ocultan premios diversos en fichas, euros o cartas que al completarlas te dan derecho a otros regalos



También se puede ganar dinero mediante referidos y esta es la forma más efectiva realmente. Por cada referido un muñeco se mueve por una isal y abre un cofre que guarda un premio en metálico





miércoles, 26 de noviembre de 2014

Conceptos en Datawharehouse

Cuando nos disponemos a adentrarnos un poco más en el mundo de las bases de datos multidimensionales y después de saber como se estructura un cubo olap tenemos que aprender algunos nuevos conceptos. En primer lugar observar como se estructuran los cubos en bases de datos relacionales, para lo cual abajo podéis ver como hay que estructurar las tablas en lo que se denomina esquema en estrella que consta de 2 partes fundamentales:

  • Tabla de hechos, que es la tabla central en la que se calculan todas las medidas que queremos almacenar. En el esquema de abajo es la tabla central del dibujo y la medida que queremos guardar es CantSol
  • Tablas de dimensiones: son las tablas que rodean a la tabla de hechos y que como veis contienen los datos para ir clasificando la información agregada o medida que almacenamos en la tabla de hechos







Os voy a presentar 1 concepto que debemos que conocer:

Cuando a una dimensión no se le pueden asociar múltiples atributos, se dice que tenemos una dimensión degenerada, y solo aparecerá como una columna en la tabla de hechos. Por ejemplo, si tuviéramos en nuestro ejemplo una dimensión “Estado de la Venta”, con los posibles valores: “Confirmada”, “Pendiente”, “Cancelada”; en este caso la dimensión serviría solo para separar las ventas según su estado, y no se requieren atributos adicionales.

Es decir, Dimensión Degenerada hace referencia a un campo que será utilizado como criterio de análisis y que es almacenado en la tabla de hechos y que como posee el mismo nivel de granularidad que los datos de la tabla de hechos no se pueden realizar agrupaciones o sumarizaciones a través de este campo. 

lunes, 24 de noviembre de 2014

Como descubrir las tecnologías que emplean sitios web

Hola a todos!

Muchas veces los profesionales en tecnologías nos preguntamos, ¿Y con que tecnología estará hecho este site? Pues bien hay maneras de saberlo. Hay múltiples tools que lo hacen, que están online y que además nos proporciona otra información del site como plantillas, plugins, el servidor, etc que está utilizando.

Aquí os indico algunos de los que más me gustan:
1. W3Techs
Similar a Built With, ya que tiene aspectos comunes a las herramientas anteriores, se puede utilizar para comparar resultados, y obtener algún dato más que la herramienta anterior no ofrece.
2. WhatCms.org
WhatCms.org es una herramienta online que nos revela unicamente que CMS (gestor de contenidos) puede estar usando un sitio web. Unicamente nos indicará si el sitio web utiliza Joomla!, Drupal, WordPress, etc.
3. CMS Detector
Similar a la herramienta WhatCms.org en un principio solo te muestra el CMS que utiliza una web, pero se puede pulsar en "Click here to fully analyze ...” y entonces presentará un informe con una información general sobre el sitio web, el ranking, páginas que tiene indexadas, redes sociales, etc.

Aqui os dejo una captura de toda la información que se obtiene para una página como el diario informativo www.elmundo.es


jueves, 6 de noviembre de 2014

Ganar dinero con vende-cookies

El otro día comencé a examinar la aplicación vendecookies, otra aplicación para ganar dinero. En esta aplicación el usuario debe cocinar galletas virtuales y las galletas virtuales se venden a la página por dinero real. Esta aplicación reúne todos los requisitos para triunfar: divertida, gratuita, buen soporte al usuario, condiciones legales claras, puntual en los pagos, adictiva, buen sistema de referidos.

El objetivo es ir consiguiendo cada uno de los ingredientes para cocinar las galletas:



Los ingredientes se ganan jugando a minijuegos. Al final, cuando tienes dinero suficiente cocinas las galletas



Si tienes referidos ganarás más dinero. El modelo de negocio es la publicidad, reparten el 50% de los beneficios entre los usuarios.

El valor de las galletas varia cada 30 días.

Puedes darte de alta aquí:


Aquí tienes un video tutorial del funcionamiento

http://www.vendecookies.com/

martes, 4 de noviembre de 2014

El motor de vistas razor de .Net

Una aplicación ASP.NET MVC, soporta diferentes Motores de Vistas (View Engine), los cuales definen la manera en que se estructura la página HTML.



Uno de estos motores de vistas, es el clásico .aspx/.ascx/.master utilizado en los Web Forms de ASP.NET.

Razor es un motor de vista, que permite embeber código C# dentro de una página, sin utilizar los delimitadores <%=%>. Los archivos basados en este motor de vistas, poseen la extensión .cshtml.

Veamos algunos ejemplos:
Bloque de Sentencia Simple.
Cada bloque de código debe comenzar con el símbolo @, y posteriormente debe ir encerrado entre llaves { } el código C# correspondiente.

@{ var mensaje = "Hola Mundo"; }
El Mensaje de esta página es : @mensaje





En este bloque se asigno a una variable una cadena de texto "Hola Mundo", posteriormente, fuera del bloque, dicha variable es accesible globalmente por medio del caracter @.




Bloque de Múltiples Sentencias.

Cuando se trabaja con un grupo de sentencias, para generar un resultado, la forma de trabajar es exactamente igual que en el caso previo, pero teniendo en cuenta de finalizar cada línea con punto y coma.

@{
    var montoinicial = 100;
    var interes = 12;
    var montofinal = (montoinicial * interes) / 100;
}
Aplicando al monto inicial @montoinicial un interés del @interes % nos da como reresultado @montofinal

 


Condicionales.

Con el Motor de Vistas Razor, puede definirse un condicional dentro de bloque Razor o fuera del mismo, como puede observarse en el siguiente ejemplo.



@{
var esValido = true;
if(esValido)
{
    <p>Probando un Condicional dentro de bloque Razor, entrada positiva</p>
}
else
{
    <p>Probando un Condicional dentro de bloque Razor, entrada negativa</p>;
}
}
 


Bucles.

Puede incluirse dentro de una páginas ASP.NET MVC con Motor de Vistas RAZOR, los mismos bucles que se utilizan en la programación C#, es decir, for, while do while, foreach


@{ 

for(var cont=1, cont<=3, cont++) {
    <p>Contador es @cont</p>
}

string[] nombres = {"Juan","Jose","Maria"};
foreach(var nombre in nombres) {
    <p>El Nombre es @nombre</p>
}

var contador=1;
do {
  <p>Este es el paso @contador por el Bucle DO</p>
  contador++;
} while(contador<3);

}



Comentarios.

Existen 3 maneras de realizar comentarios en un bloque RAZOR, las dos primeras son las clásicas utilizadas por C#, es decir, anteponer a una línea los caracteres // o encerrar un bloque entre /* */.
Además de estas, RAZOR incluye la posibilidad de comentar un bloque de texto, encerrando el mismo entre los caracteres @* *@.

domingo, 2 de noviembre de 2014

Los índices bitmap en sql

Los índices son elementos fundamentales para acelerar las consultas en las aplicaciones que creemos. Generalmente los íncides normales son árboles B-tree que aceleran la velocidad de las queries que se lanzan en una Base de datos evitando que los recorridos en las tablas sean secuenciales. Internamente los índices lo que hacen es  almacenar una lista de rowids de las filas de la tabla con el valor clave.

Los índices bitmaps funcionan de forma diferente.  En un indice bitmap, en vez de una lista de rowids, se crea un mapa de bits para cada valor clave del indice. Cada bit del mapa corresponde a un rowid posible. Si el bit esta en 1, significa que el rowid contiene dicho valor clave. Los indices bitmap ofrecen la misma funcionalidad que los indices B-tree, pero con una representacion interna distinta.


IMPORTANTE: Si la cantidad de valores diferentes  que puede tomar el dominio el indice es pequeá, entonces el indice bitmap sera muy eficiente en cuanto al uso de espacio fisico.

Veamos un ejemplo:

Supongamos que tenemos la siguiente tabla de clientes:

CLIENTE      APELLIDO       ESTADO_CIVIL
1            ALONSO         CASADO
2            GARCIA         SOLTERO
3            LOPEZ          DIVORCIADO
4            SAN MARTIN     SOLTERO


La columna estado civil tiene baja cardinalidad, ya que los valores posibles son muy pocos (ESTADO, CASADO, SOLTERO). Hay solamente tres valores posibles por lo tanto un indice bitmap seria apropiado para esta columna. Sin embargo, no es recomendable un indice bitmap para la columna CLIENTE o APELLIDO, dada su alta cardinalidad.

La representación interna sería la siguiente:

CASADO SOLTERO DIVORCIADO
1                   0                    0
0                   1                    0
0                   0                    1
1                   0                    1

Un indice bitmap puede resolver esta sentencia con gran eficiencia contando la cantidad de unos existentes en el mapa de bits resultante como se muestra en la siguiente figura

select count(*) from CLIENTES
    where ESTADO_CIVIL in ('SOLTERO','DIVORCIADO');



viernes, 31 de octubre de 2014

Estructuras ORM en .Net Entity Frameworks

Entity Framework. EF (como conoceremos de ahora en adelante a Entity Framework) es un 
ORM para la tecnología .NET. Una de las facilidades que nos da este ORM es la resolución del denominado desajuste de impedancia (o impedance mismatch en inglés). El desajuste de impedancia hace mención a las diferencias existentes entre losmodelos relacionales (base de datos) y los modelos conceptuales implementados en lenguajes de programación orientados a objetos.

Por ejemplo, nosotros modelaremos la Base de datos de una forma distinta a como queramos modelar nuestras clases en el código. Imaginemos que tenemos una tabla con coches y dentro de coches tenemos una variable modelo que dependerá de otra entidad modelos que será otra tabla, pues bien, en el modelo de clases nosotros podemos solo querer una clase de coches y manejar los modelos dentro de la clase coches y no como una clase independiente. Esto es lo que se llama el desajuste de impedancia.


Componentes de EF

 

 

Proveedores de EF

El proveedor facilita la construcción de aplicaciones multi-base de datos. Es quien traduce las sentencias al lenguaje nativo del servidor de BD.

EDM
EDM (Entity Data Model) es la definición del mapeo que creamos entre la base de datos y nuestro modelo conceptual o de entidades.
Para construir y trabajar con nuestro EDM tenemos disponible en VS el diseñador  de modelos (Entity Data Model Designer).
Un modelo se guarda en un fichero con extensión edmx, que a través del lenguaje XML declara 3 secciones (que aunque puede estar en ficheros distintos, la norma es que estén en un solo fichero).
  • SSDL (Storage Schema Definition Language)
    • Describe la base de datos (tablas, vistas, columnas, relaciones, procedimientos almacenados, etc.)
  • CSDL (Conceptual Schema Definition Language)
    • Describe las entidades del modelo y la navegación entre las mismas.
  • MSL (Mapping Schema Language)
    • Define como se relaciona la sección SSDL con la sección CSDL.
    • Esta sección también es conocida como C-S.

Entity Client
Entity Client es un nuevo proveedor de ADO.NET (similar a SqlClient u OracleClient) pero que en vez de trabajar con la base de datos específica (como haría cualquier otro proveedor de ADO.NET, por ejemplo SqlClient con SQL Server, OracleClient con Oracle, etc.), trabaja sobre el modelo de entidades. De este modo, este proveedor se aprovecha del agnosticismo de EF y con una sola sintaxis podemos escribir consultas que no dependen del dialecto de la base de datos subyacente porque ataca directamente al modelo.
Cabe mencionar que serán después los distintos proveedores de EF quienes traduzcan nuestra consulta en Entity Client al dialecto de la base de datos específica.
Entity Client utiliza un lenguaje específico para consultar el modelo de entidades, que se llama Entity SQL o eSQL. eSQL pretende ser un dialecto parecido al T-SQL de toda la vida, pero mejorando ciertos aspectos relacionados con el modelo, como la navegabilidad, los tipos, etc.
La verdad es que no es muy utilizado.

Object Services
Ya sea utilizando eSQL o LINQ to Entities, está claro que el proveedor de EF de turno traducirá nuestra consulta al lenguaje específico de la base de datos y devolverá los resultados en formato tabular, el formato de toda la vida, esto es filas-columnas. Para pasar este formato a nuestros objetos el proceso se conoce como materialización. Es decir, la materialización es la transformación de los resultados obtenidos a través del proveedor de EF en objetos de las distintas clases que existen en nuestro modelo. Esta materialización es automática.

LINQ to Entities o L2E
Es el proveedor de LINQ para EF.
L2E está construido sobre Object Services, por lo que funcionará perfectamente la materialización.
Con todo lo expuesto aquí te puede servir para poner en orden ciertos conceptos básicos sobre EF y sobre todo, sentir la necesidad de integrar un ORM en tus proyectos.
Si quieres un ejemplo gráfico de como empezar esta tecnología puedes ir a
http://programacion.net/articulo/entity_framework_713

o a http://www.entityframeworktutorial.net/EntityFramework5/entity-framework5-introduction.aspx

miércoles, 29 de octubre de 2014

Diferencia entre los tipos char de SQL Server

Cuando creamos una columna en una tabla y queremos que sea de tipo carater, SQL server nos ofrece varios tipos entre los que elegir, char, nchar, varchar y nvarchar. Veamos sus diferencias:
 

Char y NChar

Cuando se configura un campo de tipo Char o NChar indicamos campos de tamaño fijo. Es Decir, si configuramos una tabla de la siguiente forma

Campo1 Char(10),
Campo2 NChar(10)
 
 
La diferencia entre Char y NChar es el soporte a carácteres Unicode o caracteres especiales (los carácteres Unicode ocupan más de 1 byte). Si vamos a usar caracteres propios de nuestro idioma hay que usar NChar (acentos, la ñ, etc..). La diferencia fundamentar será la cantidad de espacio ocupda, mientras que el Campo1 siempre ocupará 10 bytes el Campo2  será de 20 Bytes.

Varchar y Nvarchar

Los campos de tipo Varchar o NVarchar permiten almacenamiento variable. Es una cadena de caracteres de texto que puede ser tan grande como el tamaño de página para la tabla de la base de datos. Para ello usamos VarChar(MAX) (Ojo  pues el tamaño de una página de tabla es 8.196 bytes, y no hay una fila de una tabla puede ser tener de 8.060 caracteres. Esto a su vez limita el tamaño máximo de un VARCHAR a 8000 caracateres)



 


La "N" en NVARCHAR significa uNicode y funciona como en el apartado anterior.


CampoVariable1 Varchar(10),
CampoVariable2 NVarchar(10)

 La diferencia fundamental entre char y varchar es que el tipo de datos char es que si en una columna char NOT NULL se inserta un valor más corto que la longitud de la columna, el valor se rellena a la derecha con espacios en blanco hasta completar el tamaño de la columna, mientras que en varchar no se rellenan con blancos mejorando el almacenamiento en la BD.
 
Por ejemplo, si una columna se define como char(10) y el dato que se va a almacenar es "música", SQL Server almacena este dato como "música____" donde "_" indica un espacio en blanco.
 
Esto es lo general pero depende de ANSI_PADDING.
  • Si ANSI_PADDING es ON al crear una columna char NULL, se comporta como una columna char NOT NULL: los valores se rellenan a la derecha hasta completar el tamaño de la columna.
  • Si ANSI_PADDING es OFF cuando se crea la columna char NULL, se comporta igual que una columna varchar con ANSI_PADDING establecido en OFF: los espacios en blanco a la derecha se truncan



 


 

lunes, 27 de octubre de 2014

Enlazar Visual Studio 2012 con unproyecto existente en subversion

Visual Studio 2012 ya viene preparado para administrar el código en un repositorio de control de versiones como es subversion. Para ello lo único que tiene que tiene que hacer es usar la opción siguiente:


Después solo tienes que poner la dirección en la que resida el repositorio de subversión y la carpeta en la que esté alojado el proyecto y lo sigiente es pulsar continuar, continuar





domingo, 26 de octubre de 2014

Funcion Excel para sacar una subcadena de una cadena mayor de caracteres

La función substring en Excel se llama función EXTRAER. Si por ejemplo queremos sacar los primeros cinco caracteres de una cadena mayor, por ejemplo en la cadena "PERRERA" lo haríamos así:

Imaginemos que la cadena esta en la celda primera de la fila primera

=EXTRAER("A1", 5)   daría PERRE

Si no existe esta función las funciones substring en Excel son:

IZQUIERDA(A,B) sacar B posiciones de la cadena A empezando desde la izquierda de la cadena
DERECHA(A,B) sacar B posiciones de la cadena A empezando desde la derecha de la cadena
MID(A,B,C) sacar de la cadena A, la cadena comprendida entre las posiciones B a C

viernes, 24 de octubre de 2014

Como hacer una factura electrónica (IV)

En este post vamos a ver como podemos hacer una factura electrónica. Existe una página web que publicada por el ministerio que nos permite hacer online una factura web en formato facturae. Os dejo el enlace:

http://www.hazteunafacturae.com

Hay una apliacación de escritorio más avanzada ofrecida por el ministerio de indusatria que puede considerarse una pequeña plataforma de facturación electrónica y que puede servir a una pyme para tal efecto. os la podéis descargar del siguiente link:

http://www.facturae.gob.es/formato/Paginas/descarga-aplicacion-escritorio.aspx




En la primera dirección para hacer una factura electrónico tan solo tendrás que rellenar los datos requeridos:


Después de haber rellenado los campos pulsamos a generar factura y firmar. Hay que recordar que para firmar la factura deberemos poseer un certificado electrónico, ya bien sea sw (como por ejemplo uno expedido por la FNMT) o hw (alguna tarjeta, llave..). Estos últimos se llaman de dispositivo seguro:



Realizado esto ya podrás descargarte tu factura, crearte un pdf con ella..


miércoles, 22 de octubre de 2014

Convertir tipos de datos en sql. La funcion cast


Cuando queramos convertir un tipo de dato en otro al realizar una consulta en sql lo que debemos usar es la función cast. Esta función tiene la siguiente sintaxis:

CAST ( expression AS data_type [ ( length ) ] )
Algunos ejemplos los tenéis a continuación:

SELECT CAST(10.6496 AS int) FROM TABLE;  el resultado de la conversión sería 10

SELECT 'El precio es  ' + CAST(precio AS varchar(12)) AS Precio FROM Productos; el resultado sería el precio en formato caracter (varchar de 12)  por ejemplo  "el precio es 200'
SELECT CAST('<Name><FName>Carol</FName><LName>Rodriguez</LName></Name>'  AS XML) FROM.. transformaria la cadena a tipo XML
SELECT  CAST('2006-04-25T15:50:59.997' AS datetime) FROM.. convierte una cadena a fecha

martes, 21 de octubre de 2014

La nueva plataforma @clave de identificación de identidades de la Administración

El Consejo de Ministros ha aprobado un Acuerdo para la creación de Cl@ve, nueva plataforma común del sector público administrativo estatal para la identificación, autenticación y firma electrónica. Con ello se sustituye el actual sistema de acceso electrónico en la red basada en la obtención de un certificado de firma electrónica por un sistema de claves concertadas más ágil y eficiente de fácil obtención y utilización.
Esta medida se enmarca dentro de las propuestas del informe de la Comisión para la Reforma de las Administraciones Públicas (CORA) en el ámbito de los medios informáticos, destinadas a la racionalización de las actuales estructuras organizativas en el ámbito de las Tecnologías de la Información y de las Comunicaciones (TIC) del Sector Público Administrativo Estatal.
 
 
Este nuevo sistema vendrá a resolver las limitación de los sistemas actuales (@firma entre ellos), integrando todos los sistemas de claves concertadas  (incluido el famoso PINN24 de la AEAT) que ya existen en la administración pudiendo abrir estos sistemas al resto de administraciones públicas para una extensión a la mayoría de los ciudadanos. A nivel internacional también será el buque insignia en el proyecto Stork.
 
 
 
El órgano responsable del sistema Cl@ve será la Dirección de Tecnologías de la Información y de las Comunicaciones de la Administración General del Estado. Además, participarán también en la construcción e implantación del sistema, siendo garantes de su funcionamiento, la Secretaría de Estado de Administraciones Públicas, la Agencia Estatal de Administración Tributaria, la Gerencia de Informática de la Seguridad Social y demás entidades Gestoras y Servicios Comunes de la Seguridad Social, la Dirección General de la Policía y la Fábrica Nacional de Moneda y Timbre - Real Casa de la Moneda (FNMT‐RCM).
 
Tipos de identificación
 
Habrá dos tipos de identificación en esta plataforma común del sector público administrativo estatal:
a)Cl@ve ocasional: sistema de contraseña de validez muy limitada en el tiempo, orientado a usuarios que acceden esporádicamente a los servicios.
b)Cl@ve permanente: sistema de contraseña de validez duradera en el tiempo pero no ilimitada, orientado a usuarios habituales.
El Sector Público Administrativo Estatal deberá habilitar el sistema Cl@ve en todos los servicios y trámites electrónicos dirigidos a los ciudadanos antes del 1 de octubre de 2015.
 

lunes, 20 de octubre de 2014

Como hacer una factura electrónica (III)










Antes de pasar a ver como podemos hacer una factura electrónica tenemos que hacernos la siguiente pregunta, ¿Qué es la factura electrónica?

Pues una factura electrónica es simplemente un fichero XML que sigue una XMLSchema concreto y que martca su formato. Uno de los formatos más conocidos y el que se usa en las administraciones es Facturae que deriva de las especificaciones de UBL. Abajo tenéis un ejemplo de factura electrónica (un fragmento del XML) con su visualización en pdf











Las facturas electrónicas deben estar firmadas con un certificado reconocido, como ya hemos expuesto en posts anteriores, para que sea válida para las administraciones.

 
En el próximo capitulo explicaremos como hacer una facturae



sábado, 18 de octubre de 2014

Pestaña programador en Excel. Programar Macros

La pestaña "programador" en Excel no sale por defecto cuando realizas tu primer instalación de office 2010. Si quieres hacer macros sobre excel o bien programar alguna rutina en vbasic debes sacar esta pestaña para poder hacerlo.

Aquí abajo te muestro la pestaña de la que estoy hablando y las opciones que tiene



Para sacarla tienes que ir a la opción archivo y allí en la opción "opciones" en "personalizar cinta de opciones" tienes todas las pestañas y opciones que saldran en la Ribbon de excel



y allí seleccionas la opción programador y todas las opciones que consideres





jueves, 16 de octubre de 2014

Programación en Android (III)

Como vimos en el anterior post las siguientes herramientas del IDE son importantes para Android

SDK Manager provee un interfaz para descargar todas y cada una de las versiones de la SDK de Android que se han ido liberando, de forma que permite a los desarrolladores poder crear aplicaciones para cualquier versión de Android, con compatibilidad futura
Lo primero que tendremos que hacer es bajarnos algunas versiones oficiales de android para programar con ellas. Es aconsejable bajarse todas desde la 1.5 hasta la actual
nota: "el tamaño de las descargas de todas las APIS de Android supone más de 1GB por lo que el tiempo de descarga es elevado. Las descargas interrumpidas se pueden reanudar.





Abajo mostramos una captura del sdk manager
AVD Manager permitirá la creación de distintos emuladores Android, o dispositivos virtuales (Android Virtual Device) que podrán contener instalada cualquiera de las versiones del sistema operativo Android.
puedes acceder al AVD Manager desde el SDK Manager (menú “Tools Manage AVDs” ) para configurar diversos dispositivos virtuales:


Ahora crearemos nuestro primer dispositivo virtual que nos servirá para emular lo que vayamos programando, en el ejemplo crearemos un dispositivo virtual con Android 1.6 (Donut), con resolución de pantalla por defecto (WVGA800, que equivale a una pantalla de 480x800 píxeles):







Al pulsar Startaparecerán las opciones de arranque del AVD. finalmente, al pulsar Launch, el AVD arrancará. El arranque requiere, inicialmente, la instalación del sistema operativo Android sobre el AVD recién creado, por lo que puede llegar a tardar varios minutos.