2-mayo-2016
admin

Modelo canvas

El Método Canvas busca con un modelo integral analizar la empresa como un todo y sirva como base para desarrollar diferentes modelos de negocios, se a convertido en una herramienta de Innovación Estratégica.

modelo canvas

Segmentos de clientes. El objetivo es de agrupar a los clientes con características homogéneas en segmentos definidos y describir sus necesidades, averiguar información geográfica y demográfica, gustos, etc. Después, uno se puede ocupar de ubicar a los clientes actuales en los diferentes segmentos para finalmente tener alguna estadística y crecimiento potencial de cada grupo.
Propuestas de valor. El objetivo es de definir el valor creado para cada Segmento de clientes describiendo los productos y servicios que se ofrecen a cada uno. Para cada propuesta de valor hay que añadir el producto o servicio más importante y el nivel de servicio. Estas primeras dos partes son el núcleo del modelo de negocio
Canales. Se resuelve la manera en que se establece contacto con los clientes. Se consideran variables como la información, evaluación, compra, entrega y postventa. Para cada producto o servicio que identificado en el paso anterior hay que definir el canal de su distribución adecuado, añadiendo como información el ratio de éxito del canal y la eficiencia de su costo.
Relación con el cliente. Aquí se identifican cuáles recursos de tiempo y monetarios se utiliza para mantenerse en contacto con los clientes. Por lo general, si un producto o servicio tiene un costo alto, entonces los clientes esperan tener una relación más cercana con nuestra empresa.
Fuentes de ingresos. Este paso tiene como objetivo identificar que aportación monetaria hace cada grupo y saber de donde vienen las entradas (ventas, comisiones, licencias, etc.). Así se podrá tener una visión global de cuáles grupos son más rentables y cuáles no.
Recursos clave. Después de haber trabajado con los clientes, hay que centrarse en la empresa. Para ello, hay que utilizar los datos obtenidos anteriormente, seleccionar la propuesta de valor más importante y la relacionarse con el segmento de clientes, los canales de distribución, las relaciones con los clientes, y los flujos de ingreso. Así, saber cuáles son los recursos clave que intervienen para que la empresa tenga la capacidad de entregar su oferta o propuesta de valor.
Actividades clave. En esta etapa es fundamental saber qué es lo más importante a realizar para que el modelo de negocios funcione. Utilizando la propuesta de valor más importante, los canales de distribución y las relaciones con los clientes, se definen las actividades necesarias para entregar la oferta.
Asociaciones claves. Fundamental es realizar alianzas estratégicas entre empresas, Joint Ventures, gobierno, proveedores, etc. En este apartado se describe a los proveedores, socios, y asociados con quienes se trabaja para que la empresa funcione. ¿Qué tan importantes son? ¿se pueden reemplazar? ¿pueden convertir en competidores?
Estructura de costos. Aquí se especifican los costos de la empresa empezando con el más alto (marketing, R&D, CRM, producción, etc.). Luego se relaciona cada costo con los bloques definidos anteriormente, evitando generar demasiada complejidad. Posiblemente, se intente seguir el rastro de cada costo en relación con cada segmento de cliente para analizar las ganancias.

Fuente

13-marzo-2016
admin

WordPress: “Briefly Unavailable for Scheduled Maintenance”

Este error puede aparecer en WordPress en el momento que falla alguna actualización, ya sea del propio wordpress o de un plugin.

Al realizar las actualizaciónes Wordpres crea un archivo en el llamado .maintenance (en la raiz del sitio). Este archivo es el encargado de mostrar el mensaje: “Briefly Unavailable for Scheduled Maintenance”. De tal forma que muestra ese mensaje en tu sitio en lugar de mostrar los errores de PHP mientras se produce la actualización de los archivos necesarios.

Una vez finalizada la actualización, el archivo se borra automáticamente. Si por lo que sea la actualización falla y ese archivo no llega a borrarse se debe borrar a mano. De otro modo sacará constantemente el mensaje de error. Una vez borrado es recomendable ejecutar las actualización que ha fallado para que la aplique correctamente.

25-febrero-2016
admin

Borrado de documentos en Alfresco

Por un lado hay que tener en cuenta que los documentos en alfresco no se borran realmente hasta que el usuario que los ha borrado o el administrador vacia la papelera de reciclaje. Ésta se vacia en la sección User Profile.

Por otro lado se debe tener en cuenta que lo que se hace es un borrado lógico. De tal forma que aunque no podamos verlos desde el interfaz de Alfresco, no se han borrado físicamente del disco. Se mantienen dentro del contentstore en estado huérfano ya que no quedan referencias a él en la base de datos.

Ahora bien, en Alfresco se ejecutan una serie de procesos automáticos de mantenimiento. Se definen en el fichero scheduled-jobs-context.xml que se apoya en el repository.properties para configurarse (localizables ambos en /Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/). Entre ellos nos encontramos con:

contentStoreCleanerTrigger: es el encargado de lanzar el bean contentStoreCleaner (definido en el content-services-context.xml) que se encarga de borrar los contenidos huérfanos del contentstore. Por defecto se ejecuta a las 4:00 AM cada día (0 0 4 * * ?). El parámetro system.content.orphanProtectDays establece el número mínimo de días que el contenido debe ser huérfano antes de poder eliminarlo, el valor predeterminado es de 14 días. Es decir, el documento permanecera 14 días en estado huérfano en el contentstore hasta que por fin la tarea Cleaner lo pase al contentstore.deleted.

Nota 1: Si la propiedad system.content.eagerOrphanCleanup está a true los documentos se moverán al directorio contentstore.deleted sin necesidad de la ejecución del contentStoreCleaner.

Nota 2: El contentstore.deleted es responsabilidad del administrador de borrarlo para liberar espacio.

Scheduled jobs
Content store configuration

10-febrero-2016
admin

Logging en python

Ejemplo de configuración de log para python. Se utiliza un fichero de configuracion llamado logging.conf, donde se definen dos manejadores uno a nivel de consola StreamHandler y otro a nivel de fichero FileHandler.
StreamHandler: Escribirá en la salida estandar del sistema las trazas con nivel INFO.
FileHandler: Escribirá en un fichero llamado Result_Operations.log las trazas con nivel DEBUG.
En ambos se formatean los mensajes para que sólo muestre el contenido del mensaje.

from logging import config
....
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('root')

logger.debug("mensaje para el FileHandler")
logger.info("mensaje para ambos")

logging.conf

[loggers]
keys=root

[handlers]
keys=FileHandler,consoleHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=FileHandler,consoleHandler

[handler_FileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=("Result_Operations.log",)

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stdout,)

[formatter_simpleFormatter]
format= %(message)s
datefmt=

Documentación oficial logging python
Documentación de los tipos de manejadores

5-febrero-2016
admin

SyntaxError: Non-ASCII character ‘\xe9’

En python para definir la codificación del archivo se puede colocar al inicio del archivo la siguiente línea de código.

# -*- coding: utf-8 -*-

De esta forma se solucionan los errores del tipo: Non-ASCII character ‘\xe9’

Más info PEP 0263 — Defining Python Source Code Encodings.

21-enero-2016
admin

Modificar el tamaño de una imagen y añadir una marca de agua en python

Pillow es una variante (o fork) de la popular librería PIL (Python Image Library) que permite procesar con facilidad imágenes con Python 2.x/3.x.

Permite consultar información básica de una imagen como su tamaño, el formato que tiene, el tipo de imagen (bits/pixel, BN/color, etc.), es posible cambiar su tamaño, recortar un área, girar, aplicar filtros y efectos, convertir el tipo de imagen y su formato, etc.

Para instalar la librería basta con ejecutar el comando.

 pip install Pillow

Un ejemplo de uso puede ser:

import PIL
from PIL import Image

img = Image.open("C:\\foto.jpg")
img = img.resize((500, 500), Image.ANTIALIAS)

imgAgua= Image.open("C:\\agua.jpg")
img.paste(imgAgua, (25, 25))

img.save("C:\\imagenFinal.jpg")

En el ejemplo se abre la imagen foto.jpg para redimensionarla a un ancho y alto de 500px.
Además, se le añade encima una imagen agua.jpg en las coordenadas 25,25 a modo de marca de agua o firma.

Documentación: Link1, Link2

15-enero-2016
admin

Máquinas virtuales de Bitmani para desarrollo web

Bitnami es una biblioteca de aplicaciones de servidor populares y entornos de desarrollo que se pueden instalar con un solo clic. Es tan sencillo como descargarse una máquina virtual ya preparada para VMware o Virtual Box con los servidores que deseemos. Además, luego le puedes ir añadiendo módulos que vayas necesitando.

A continuación se muestra una guía de comandos rápida de uso para montar un servidor Tomcat con java 1.7 y nodejs.

Arrancar y parar Tomcat
-----------------------
	Todos los servicios se arrancan y paran de la siguiente forma:
		sudo /opt/bitnami/ctlscript.sh status
		sudo /opt/bitnami/ctlscript.sh start tomcat
		sudo /opt/bitnami/ctlscript.sh stop tomcat
		sudo /opt/bitnami/ctlscript.sh restart tomcat

Cambiar el teclado inglés
-------------------------
	Por defecto la máquina virtual viene configurada con teclado en inglés. 
	Para cambiarlo sería:
		sudo dpkg-reconfigure keyboard-configuration

Activar SSH
-----------
	Por defecto el servicio ssh viene desactivado. Se puede activar así:
		sudo mv /etc/init/ssh.conf.back /etc/init/ssh.conf
		sudo start ssh

Configuración de red en VMware
------------------------------
	Tarjetas de red con el VMware Bridge Protocol desactivado.
	Tarjetas de red con ip y dns automático.
	Network Adapter de la máquina virtual en modo brighed.
	
Configurar la red manualmente.
------------------------------
    Hay que editar el archivo interfaces, por ejemplo así:

	1- Editamos la interface de la tarjeta de red. En este caso la eth0 
		vi /etc/network/interfaces 
		
		Dentro del archivo debes buscar:
		auto eth0
		iface eth0 inet dhcp
		
		y sustituirlo por lo que corresponda en cada caso:

		auto eth0
		iface eth0 inet static
		address 192.168.1.40
		netmask 255.255.255.0
		gateway 192.168.1.1
		network 192.168.1.0
		broadcast 192.168.1.255
	
    2- Ahora editamos los DNS:
		vi /etc/resolv.conf
		
		nameserver = 8.8.8.8
		nameserver = 8.8.4.4 
	
	3- Por ultimo reiniciamos el servicio de red:
		/etc/init.d/networking restart 
		
Cambiar la jdk
--------------
	Descargar la deseada, en este caso queremos pasar de la 1.8 que nos traia 
	la máquina a la 1.7 así que descargamos al 1.7 de aquí
		http://www.oracle.com/technetwork/es/java/javase/downloads/jre7-downloads-1880261.html
		
	Lo más rápido es reemplazar el directorio /opt/bitnami/java por el nuevo. 
	Se puede hacer por consola tal que así:
		sudo mv /opt/bitnami/java /opt/bitnami/java8
		sudo mv /tmp/java /opt/bitnami/java
		sudo chown -R root /opt/bitnami/java	  (cambiar el usuario)
		sudo chown -R :root /opt/bitnami/java	(Cambiar el grupo)
		sudo chmod -R 777 /opt/bitnami/java
	
Añadir un módulo nuevo (Ej: nodejs)
-----------------------------------
	Descargarse de la página el *.run 
		https://bitnami.com/stack/nodejs/installer#linux
	Se puede utilizar para ello el comando wget si se quiere.
		wget https://bitnami.com/..................../bitnami-nodejs-5.4.0-0-linux.run
	
	Darle permisos:
		chmod 755 bitnami-nodejs-5.4.0-0-linux.run
		
	Ejecutarlo y seguir los pasos de instalación
		sudo /bitnami-nodejs-5.4.0-0-linux.run

Apagar la máquina virtual
-------------------------
	sudo poweroff


DOC:
https://wiki.bitnami.com/Virtual_Appliances_Quick_Start_Guide


https://bitnami.com/stack/tomcat/virtual-machine

10-enero-2016
admin

Como utilizar el Osmdroid Tile Packager

Se puede utilizar el Tile Packager para descargar las tiles que luego se utilizarán en las aplicaciones android. De tal forma que una aplicación que utilice Osmdroid funcione offline (sin conexión a internet).

Modo de ejecución:

set classpath=osmdroid-android-3.0.3.jar;osmdroid-packager-3.0.3.jar;
              slf4j-android-1.5.8.jar;sqlitejdbc-v056.jar

java org.andnav2.osm.mtp.OSMMapTilePackager 
    -u http://tile.openstreetmap.org/%d/%d/%d.png -t Mapnik 
    -d haarlem.zip -zmax 18 -n 52.4244 -s 52.3388 -e 4.6746 -w 4.5949

-u http://tile.openstreetmap.org/%d/%d/%d.png Patrón para obtener los tiles.
-t Mapnik Directorio temporal para la descarga. Debe ser el nombre del renderer si pretende usar el zip directamente en osmdroid.
-d haarlem.zip Archivo zip creado al finalizar.
-zmax 18 Nivel de zoom máximo para la descarga de tiles.
-n 52.4244 Coordenada norte.
-s 52.3388 Coordenada sur.
-e 4.6746 Coordenada este.
-w 4.5949 Coordenada oeste.

Documentación Oficial

7-enero-2016
admin

Ver ficheros abiertos en Windows 7

Para ver que ficheros hay abiertos y que proceso es el que los tiene abiertos se puede utilizar la aplicación Process Explorer.

Muy interesante cuando estamos desarrollando para comprobar de una forma cómoda que se están cerrando bien todas las conexiones con los ficheros. Lo he probado con Windows 7.

Link

4-enero-2016
admin

Picasso: Librería para manejar imágenes en Android

Picasso es una de las muchas librerías disponibles para la carga de imágenes en tu aplicación android. Con una simple línea de codigo como por ejemplo:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

Te evita el trabajo que conlleva realizar la carga de la imagen de manera manual: memoria automática, almacenamiento en cache, transformaciones complejas usando el mínimo de memoria, …

//Ejemplo de transformación:
Picasso.with(context).load(url).resize(50, 50).centerCrop().into(imageView)
//Ejemplo añadiendo una imagen por defecto por si falla la descarga:
Picasso.with(this).load("http://www.host.com/imagen.jpg")
      .error(R.drawable.error)
      .fit().transform(new RoundedTransformation()).into(imageView);
//dependencia Maven
< dependency>
  < groupId>com.squareup.picasso< /groupId>
  < artifactId>picasso< /artifactId>
  < version>2.5.2< /version>
< /dependency>

Documentación Oficial

Páginas:«12345678910...25»

Categorias

Linkedin