jueves, 8 de noviembre de 2012

Failed to load users/passwords/role files

Me salia este mensaje en el JBOSS y despues de probar varias alternativas finalmente di con la solucion.

El java donde estaba definido el webservice tenia este import

"import javax.ejb.Remote;"

Aunque compilaba bien, era innecesario (The import is never used) y motivo del conflicto.

Me olvidaba tambien cambie la clase SecurityDomain como lo que sigue:

//import org.jboss.annotation.security.SecurityDomain;
import org.jboss.ejb3.annotation.SecurityDomain;

Compile de nuevo y ya no salio la traza siguiente:

---------------- TRAZA DEL ERROR ----------------
ERROR [org.jboss.security.auth.spi.UsersRolesLoginModule] (http- ) Failed to load users/passwords/role files
java.io.IOException: No properties file: users.properties or defaults: defaultUsers.properties found
at org.jboss.security.auth.spi.Util.loadProperties(Util.java:201)
at org.jboss.security.auth.spi.UsersRolesLoginModule.loadUsers(UsersRolesLoginModule.java:186)
at org.jboss.security.auth.spi.UsersRolesLoginModule.createUsers(UsersRolesLoginModule.java:200)
at org.jboss.security.auth.spi.UsersRolesLoginModule.initialize(UsersRolesLoginModule.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
at org.jboss.security.plugins.auth.JaasSecurityManagerBase.defaultLogin(JaasSecurityManagerBase.java:553)
at org.jboss.security.plugins.auth.JaasSecurityManagerBase.authenticate(JaasSecurityManagerBase.java:487)
at org.jboss.security.plugins.auth.JaasSecurityManagerBase.isValid(JaasSecurityManagerBase.java:365)
at org.jboss.security.plugins.JaasSecurityManager.isValid(JaasSecurityManager.java:160)
at org.jboss.web.tomcat.security.JBossWebRealm.authenticate(JBossWebRealm.java:399)
at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:181)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
... (etc)
Compartir:

domingo, 28 de octubre de 2012

sábado, 27 de octubre de 2012

Abode air para móviles en el devfest lima 2012

Flash en móviles con Adobe Air 3.5
Usar el SDK para desarrollar
Extensiones nativas para nuevas funciones que flash no tiene como vibrar cuando colisionan dos objetos en pantalla
Hay una lista de dispositivos que están certificados
Mejor es hacer juegos nativos (6 meses)si el tiempo es escaso se usa adobe Air (2 semanas)
El entorno de desarrollo es flash builder o flash develop (free) o Power flash FDT.
En flash el acceso es restringido
Una aplicación nativa accede a todo los recursos
Mas info en gaming.adobe.com
Compartir:

Crear juegos en android en el devfest lima 2011

No cree juegos muy gráficos la memoria es escasa
El dispositivo limita
Usar andengine libgdx como framework
Las apps se ven diferentes en los dispositivo android
La versión mas usada es android 2.3
Considerar las resoluciones y el manejo de recursos
Usar REST para organizar las resoluciones
Un buen ejemplo es Replica Islandia que usa open gear para escalar las imágenes
No es recomendable dejar franjas negras
Factores: velocidad ,RAM, memoria interna , acelerometro invertido, bluetooth (usar http sockets)
Hacer es un juego es entretenido
El juego demo esta en
goo.gl/MN7ot
Compartir:

Nicolás bortolotti en el devfest Lima 2012

Avanzar al siguiente nivel
Cambio de paradigma ahora se usa el cloud computing
Cruzar los limites pasar del pergamino al libro
Nuevas tendencias. 2013 2014:
Social feelings
Análisis de grandes bases de datos
Geolocalizacion
Web ui
MobileMe ui
Cloud services
Dart el nuevo lenguaje para mejorar la web
Compartir:

Recomendaciones para participar del DevFestLima 2012

Ten en cuenta las siguientes consideraciones:

EL EVENTO

El registro realizado por la página web tando de registrados como de la lista de espera del devfestlima.gdglima.pe será válido para poder ingresar el sábado 27 y domingo 28 de Octubre para participar del DevFestLima y Google for Entrepreneurs Day.
El acceso por las puertas del local estarán disponibles desde las 7:30 am. Para ello, es importante identificarse con DNI y el ticket impreso. Sugerimos llegar temprano para evitar inconvenientes.
La capacidad del local es limitada (900 asistentes) y la hora de recepción es hasta las 9:30 am. Pasado ésta hora los participantes inscritos y de lista de espera podrán ingresar al evento únicamente si éste no superó el límite de los 900 asistentes.
Los que están en lista de espera deben identificarse con sus documentos y mencionar que están en lista de espera. Les recomendamos llegar lo más temprano para poder ingresar al evento dado que si la capacidad límite ha sido superada, no podrán ingresar.
Se distribuirán los tickets para el refrigerio de ambos días en la hora de recepción de asistentes (hasta las 9:30 am).
No se dispondrá de estacionamiento vehicular, por lo que sugerimos tomar las precauciones necesarias.
Te recomendamos asistir al evento vestido de la forma más cómoda posible. En la comunidad GDG Lima promovemos la cultura de la comodidad más allá de la formalidad, tal como se hace en Google.
Para aprovechar al máximo las sesiones, te sugerimos tener en cuenta los requerimientos técnicos para las sesiones presentadas.
En caso de que no puedas asistir al evento, te agradecemos cancelar tu inscripción para darle la oportunidad a otros de poder participar. Ten en cuenta que hay personas quienes se encuentran en lista de espera.
Si no puedes asistir al evento y no llegas a cancelar tu inscripción en el eventbrite, tu participación en siguientes eventos podría ser restringida.

LOS CERTIFICADOS

La Universidad San Martín de Porres se ha comprometido en hacer entrega de un certificado digital, el cual será enviado únicamente para las personas que asistan tanto el 27 como el 28 de Octubre . Para ello, habrá un proceso de registro de asistentes.
El registro de asistentes para obtener el certificado se realizará al momento de ingresar al evento ambos días desde las 7:30 hasta las 10:00 am. Las personas que lleguen pasado este horario, no podrán acceder a dicho beneficio. Esta norma ha sido establecida por la institución.
Cabe resaltar que los certificados son un adicional que tampoco tiene costo y ha sido obtenido gracias al apoyo de la Universidad San Martín de Porres, por lo tanto, sugerimos tener en cuenta las consideraciones y normas establecidas por la institución para evitar inconvenientes.

HAGAMOS HISTORIA

Es importante resaltar que apuntamos a ser el mejor DevFest del mundo de este año. Esto sólo lo lograremos transmitiendo y difundiendo el evento a través de las redes sociales. Para ello, les agradeceremos tener en cuenta las siguientes sugerencias:

En Google+, acceder al evento y activar el Modo Fiesta para compartir fotos, comentarios y todo lo que ocurra en el evento.

Compartir en Google+ y twitter fotos y comentarios del evento usando el hashtag #devfestlima

Finalmente, a nombre de la comunidad GDG Lima, queremos agradecerles su participación y apoyo. Estamos seguros que será una experiencia inolvidable.

GDG LIma
Compartir:

martes, 7 de agosto de 2012

Lista de Variables DATA: para usar en Blogger

Las etiquetas de uso general tienen el siguiente formato:


Lista:

data:blog.title es el título del blog según lo hayamos definido en la configuración
data:blog.pageTitle es el título de la página actual que, generalmente, es el título del blog más algún otro dato adicional
data:blog.pageName es el título de la página que generalmente coincide con el título del post
data:blog.pageType es el tipo de página donde estamos (item archive index)
data:blog.homepageUrl la dirección URL de la página de inicio del blog
data:blog.url es la dirección URL de la página donde estamos
data:blog.feedLinks es lo que permite descubrir la dirección de los feeds
data:blog.encoding es el tipo de codificación (UTF-8, etc.)
data:blog.languageDirection indica la forma de escritura del lenguaje del blog

Las otras etiquetas sólo son accesibles dentro de ciertos sectores definidos con las etiquetas:

.......

Ese valor indicado en el atributo ID es el que define que tipo de datos son accesibles.

Hay un dato que es común a todos los elementos:

data:title es el texto del título que le dimos al elemento

En el HEADER sólo hay uno más:

data:description es el texto con la descripción del blog definida en la configuración

En el elemento PROFILE (perfil) hay muchos y se corresponden con los datos de nuestra cuenta:

data:userUrl es la dirección URL de nuestro perfil en Blogger
data:displayname es el nombre a ser mostrado
data:location es la ubicación geográfica del administrador
data:aboutme es el texto por defecto "About Me"
data:team indica si es es un blog individual (false) o colectivo (true)

La imagen de nuestro perfil se encuentra en data:photo.subtipo:

data:photo.url es la dirección URL donde está alojada la imagen
data:photo.width es el ancho de la imagen (en pixeles)
data:photo.height es el alto de la imagen (en pixeles)
data:photo.alt es el texto del atributo ALT

En el caso de blogs colectivos, data.authors.subtipo contiene la lista de autores:

data:authors.displayname cada uno e los autores
data:authors.userURL las direcciones de los perfiles

En los elementos TEXT y HTML sólo hay un dato:

data:content que es contenido (un texto plano)

En el elemento PICTURE (imagen):

data:sourceUrl es la dirección URL de la imagen
data:width es el ancho de la imagen (en pixeles)
data:height es el alto de la imagen (en pixeles)
data:caption es el texto adicional optativo

En los elementos LABELS (etiquetas) data:labels.subtipo contiene la lista de etiquetas:

data:label.name el nombre de la etiqueta
data:label.count la cantidad de posts con esa etiqueta
data:label.url la dirección URL a la página de etiquetas

En el elemento LIST (listas) sólo hay un dato:

data:items contiene la lista de items

En el elemento LINKLIST (vínculos) la lista se encuentra en data:links.subtipo:

data:links.name el texto de los enlaces
data:links.target la dirección de cada enlace

En el elemento LOGO (el botón de Blogger):

data:fullButton es la dirección URL de la imagen elegida

En el elemento ADSENSE:

data:adStart marca el inicio del elemento
data:adCode es el contenido
data:adEnd marca el final del elemento

En el elemento ARCHIVES (archivos):

data:style indica el estilo (MENU FLAT HIERARCHY)
data:toggleopen es un dato interno usado por Blogger

Y data:data.subtipo contiene la lista de archivos:

data:data.name el título de cada entrada
data:data.url la direcciòn URL de cada entrada
data:data.post-count la cantidad de posts por fecha

Además, se usa data:interval.subtipo para los bucles internos definidos:

data:interval.expclass
data:interval.toggleId
data:intervalData.expclass
data:intervalData.url
data:intervalData.name
data:intervalData.post-count
data:intervalData.data
data:intervalData.posts

Los datos de los feeds son válidos para el elemento FEEDS, para la pagina principal, para la de items y para los comentarios:

data:feedUrl es la dirección del feed

La lista de feeds se encuentra en data:feedLinks.subtipo:

data:feedLink.url la dirección del feed
data:feedLink.name es el título y por defecto es "Posts Comments"
data:feedLink.feedType el tipo (Atom o RSS)
data:feedLink.mimeType el tipo MIME

Los items individuales en data:feedData.subtipo:

data:feedData.title el título
data:feedData.published la fecha de publicación
data:feedData.str_published el texto para indicar la fecha de publicación
data:feedData.updated la fecha de actualización
data:feedData.str_updated el texto para indicar la fecha de actualización
data:feedData.author el nombre del autor
data:feedData.summary es el contenido (snippet)

Hay información adicional se guarda en data:feedData.alternate.subtipo (sí, puede haber tantos subtipos como se le ocurra a Blogger):

data:feedData.alternate.href es la dirección del enlace (permalink)
data:feedData.alternate.type es el tipo de contenido

El área más compleja es la de los posts, el elemento POSTS, allí, hay varias secciones diferentes y cada una tiene sus propios datos.

El área de navegación que se muestra en la parte inferior el área de posts:

data:olderPageUrl es la URL al post anterior
data:olderPageTitle es el texto del enlace "Entradas antigüas"
data:newerPageUrl es la URL al post siguiente
data:newerPageTitle es el texto del enlace "Entradas recientes"

Datos que se usan en los pie de página, son textos que establecemos nosotros o que se definen por defecto:

data:commentLabel es el texto que seleccionemos "comment"
data:commentLabelPlural es el texto que seleccionemos "comments"
data:postCommentMsg es el texto "Publicar un comentario en la entrada"
data:authorLabel es el texto que muestra al autor "posted by"
data:timestampLabel es el texto que indica la fecha "posted at"
data:postLabelsLabel es el texto que señala las etiquetas "labels for this post"
data:backlinksLabel es el texto que señala los backlinks "links to this post"

data:navMessage es el mensaje que aparece al navegar por etiquetas:

data:widget.actionUrl es un dato interno de Blogger
data:widget.instanceId es un dato interno de Blogger

Hay una serie de datos agrupados en data.post.subtipo que se refieren a los artículos publicados:

data:post.dateHeader es la fecha del encabezado
data:post.id es un identificador único
data:post.title es el texto del título
data:post.body es el contenido de la entrada
data:post.url el enlace permanente (permalink)

data:post.showAuthor indica si se muestra (true) o no se muestra (false) al autor
data:post.author el nombre del autor
data:post.authorLabel el texto que precede al nombre del autor "posted by"

data:post.showTimestamp indica si se muestra (true) o no se muestra (false) la fecha
data:post.timestamp la fecha/hora de publicación
data:post.timestampLabel el texto que precede la fecha/hora de publicación

data:post.commentLabel es el texto que seleccionemos "comment"
data:post.commentLabelPlural es el texto que seleccionemos "comments"
data:post.allowComments indica si se permiten comentarios (true) o no (false)
data:post.numComments la cantidad de comentarios
data:post.addCommentUrl la dirección URL al formulario "add a comment"
data:post.addCommentOnclick dirección URL para agregar comentario

data:post.showBacklinks indica si se muestran los backlinks (true) o no (false)
data:post.numBacklinks la cantidad de backlinks
data:post.createLinkLabel es el texto para crear un backlink a la entrada "links to this post"
data:post.createLinkUrl la dirección URL para enlazar un post
data:post.backlinksLabel es el texto que precede a la lista de backlinks

data:post.editUrl la dirección URL al formulario de edición del post
data:post.emailPostUrl la dirección URL para enviar el post via mail "email this post"
data:post.emailPostMsg es el texto alternativo para enviar el post via mail
data:post.includeAd indica si hay un elemento Adsense (true) o no (false)
data:post.adminClass es un dato interno de Blogger

A partir de la posibilidad de tener los comentarios en varias páginas cuando superan cierta cantidad se han agregado algunos datos que lo controlan:

data:post.commentPagingRequired indica si es necesario (true) o no (false)
data:post.commentRangeText el texto de la paginación
data:post.oldLinkClass es la clase CSS para "retroceder" en la paginación
data:post.olderLinkUrl la dirección URL de la página anterior
data:post.olderLinkText el texto para ir a la página anterior
data:post.oldestLinkUrl la dirección URL de la primera página
data:post.oldestLinkText el texto para ir a la primera página
data:post.newLinkClass es la clase CSS para "avanzar" en la paginación
data:post.newerLinkUrl la dirección URL de la página siguiente
data:post.newerLinkText el texto para ir a la página siguiente
data:post.newestLinkUrl la dirección URL de la última página
data:post.newestLinkText el texto para ir a la última página

La lista de feeds del post está en data:post.feedLinks.subtipo:

data:post.feedLinks.url la URL de los feeds
data:post.feedLinks.name el lugar donde están (Posts o Comments)
data:post.feedLinks.feedType el tipo (Atom o RSS).
data:post.feedLinks.url la URL de los feeds
data:post.feedLinks.name el lugar donde están (Posts o Comments)
data:post.feedLinks.feedType el tipo (Atom o RSS).

La lista de etiquetas se encuentra en data:post.label.subtipo:

data:label.name el nombre de cada etiqueta
data:label.url la dirección URL de la página de etiquetas
data:label.isLast indica si es la última etiqueta de la lista (true) o hay más (false)

En las páginas individuales (items) la lista de datos de los comentarios se encuentra en data:comment.subtipo:

data:comment.id es el identificador único de cada comentario
data:comment.body es el contenido
data:comment.timestamp la fecha de publicación
data:comment.author el nombre del autor o "Anonymous"
data:comment.authorUrl la dirección URL del autor
data:comment.deleteUrl la dirección URL al formulario para eliminarlo
data:comment.isDeleted indica si fue eliminado (true)
data:comment.adminClass es un dato interno de Blogger

En las páginas individuales también hay una lista de backlinks en data:post.backlink.subtipo:

data:backlink.title el título del enlace
data:backlink.url la dirección URL del enlace
data:backlink.snippet es el contenido
data:backlink.author el nombre del autor
data:backlink.timestamp la fecha
data:backlink.deleteUrl la dirección URL al formulario para eliminarlo
data:backlink.adminClass es un dato interno de Blogger

Hay toda una serie de datos que se ven en algunas plantillas que parecen contener muchos de los mismos datos de anteriores data:top.subtipo:

data:top.showAuthor como data:post.showAuthor
data:top.authorLabel como data:post.authorLabel
data:top.timestampLabel como data:post.timestampLabel
data:top.showTimestamp como data:post.timestamp
data:top.commentLabel como data:post.commentLabel
data:top.commentLabelPlural como data:post.commentLabelPlural
data:top.showTimestamp como data:post.showTimestamp
data:top.backlinkLabel como data:post.backlinksLabel
data:top.showBacklink como data:post.showBacklinks
data:top.emailPostMsg como data:post.emailPostMsg

Si los datos son una lista, se recorren en un array para leerlos:







  • Compartir:

    jueves, 12 de julio de 2012

    Email Marketing Consejo 20/20: Haga sus emails escaneables

    Los Emails no son leídos por las personas, son sencillamente escaneados. Por eso es relevante saber cómo diseñar sus mensajes para que pasen de ser escaneados a ser leídos, abiertos y hagan click en algo.

    Trabaje el remitente y el asunto del mensaje para que conozcan (remitente) y confíen (asunto) en quien envía los emails.

    Ponga atención al cuerpo del mensaje, aconsejamos Buen Anclaje que significa fácil escaneado, lo ideal para esto es que sea bien estructurado, fácil de visualizar y para eso se aconseja orden.

    Cuidado con las imágenes y los textos. Cuidado con los bloqueadores de imágenes. Siempre genere un equilibrio de Texto versus Imágenes. Se estima que una relación 70% - 30% es buena para que el texto cumpla la función de señalar qué hacer.
    Compartir:

    Email Marketing Consejo 19/20: Trabaje el nivel de ciclo de vida

    El Ciclo de Vida se define como una serie de etapas evolutivas en el que la relación entre el cliente y su empresa cambian, ya que el nivel de madurez, conocimiento y confianza por parte de los clientes cambia.

    Las campañas de email marketing basadas en el ciclo de vida de los clientes, es la mejor y más rápida estrategia para lograr un gran impacto en la contribución de los ingresos dado sus esfuerzos de marketing.

    Cada cliente reacciona de forma diferente ante los mensajes que recibe, de acuerdo a la etapa en donde se encuentre.

    No es lo mismo enviar una oferta a un prospecto (sospechoso) que enviarla a un cliente activo.
    Compartir:

    Email Marketing Consejo 18/20: Considere ofertas con Valor

    Cuando las personas se suscriben a sus emails, lo que están haciendo, es compartir información personal con la expectativa de recibir VALOR a cambio.

    Por eso mantener sus emails con contenido relevante ayuda a mantener la atención y la suscripción activa. Por eso es importante ir generando ofertas para activar ese interés. Las ofertas pueden ser duras y blandas. Lo importante es que exista un equilibrio entre ambas.

    Además debe haber un llamado a la acción fuerte que le dé a esa oferta un propósito y que gatille una necesidad a su audiencia para cumplir el objetivo.
    Compartir:

    Email Marketing Consejo 17/20: Revise antes de enviar

    Errar es humano. Pero hay cosas que se pueden evitar, por eso es bueno saber en qué fijarse antes de enviar, ya que una vez enviado el mensaje, ya no se puede corregir. Para evitar pedir perdón o bien pasar una vergüenza, y los malos resultados que esto generaría, tome nota de algunas cosas a revisar antes de enviar sus emails.

    1) Vínculos errados o quebrados: Siempre antes de enviar sus emails, revise bien si sus vínculos (links) están funcionando. Si van donde deben ir. Si está claro que las personas deben realizar un clic.
    2) Errores ortográficos: El daño va por el lado de la reputación de su marca. Por otro lado puede hacer cambiar la intención de lo que la frase desea transmitir.
    3) Imágenes distorsionadas: ¿Cómo lucen sus imágenes?, Existen diferentes tipos de lectores de email (Gmail, Outlook), que pueden distorsionar sus imágenes.
    Compartir:

    Email Marketing Consejo 16/20: Socialice sus mensajes

    El agresivo crecimiento de los medios sociales en los últimos años ha generado una gran cantidad de nuevas y excitantes herramientas para comunicarse con prospectos y clientes. La experiencia ha demostrado que el uso de los medios sociales, más que dejar al email marketing obsoleto, lo ha transformado en un canal más poderoso aún.


    Por lo general una persona que consume medios sociales está más abierto a consumir email marketing, por eso es importante poder capturar su email.

    Entonces una de las primeras metas a fijar es convertir aquellos fans o seguidores (followers) a suscriptores de su Newsletter o algún otro medio por email.

    Por otro lado, los suscriptores del email pueden ser verdaderos embajadores de su marca, ayudando a tener más fans y seguidores en sus medios sociales.
    Compartir:

    Email Marketing Consejo 15/20: No ignore a su audiencia móvil

    La necesidad de optimizar los emails en los móviles es más importante como nunca antes lo había sido.

    Más personas leerán sus emails en dispositivos móviles que en un PC de escritorio a fines de este año.

    Asegurarse de que sus emails se vean bien tanto en un PC de escritorio como en los dispositivos móviles es un delicado acto de equilibrio.

    Algunos consejos que le ayudarán:
    - Asunto: Asegúrese de que el mensaje principal de su asunto esté dentro de los primeros 15 caracteres
    - Diseño: Utilice un diseño simple, evite los de varias columnas y formatos.
    - Ancho: Mantenga el ancho a 600 pixeles o menos.
    Compartir:

    Email Marketing Consejo 14/20: Genere pruebas

    Una de las grandes ventajas del mundo Online es que todo se puede medir. ¿Pero de qué sirve medir si no podemos saber
    qué funciona y qué no? Dada la inmediatez de los datos que uno obtiene en sus campañas de email marketing, generar pruebas para saber
    qué funciona y qué no debe ser uno de los esfuerzos primordiales del marketing.

    Los tipos de pruebas más comunes para el mundo del email marketing son las pruebas A/B y multivariables. Si recién está empezando a generar pruebas o al menos tiene la intención de partir, le aconsejamos las pruebas A/B
    Compartir:

    Email Marketing Consejo 13/20: Trabaje las alianzas para construir su lista

    Una excelente forma de hacer crecer su lista de contactos de forma orgánica (y no salir a arrendar y comprar listas que dañan su reputación Online) es a través de alianzas.

    El objetivo es aliarse con otra empresa y a través de ellos llegar a la audiencia de esta empresa invitando a participar de algún beneficio directamente con ustedes.

    Para esto es importante elegir empresas que tengan algún grado de sinergía.
    Compartir:

    Email Marketing Consejo 12/20: Mantenga sus email legales

    Hay ciertos aspectos legales que se deben tomar en cuenta al momento de evitar el Spam y respetar los derechos de los destinatarios. Considérelos antes de enviar su campaña:

    -El emisor está correctamente identificado
    -El asunto es directo y no engaña
    -El mensaje debe venir en una casilla de correos existente y que funcione
    -Desuscripción: Usted puede dar de baja de manera sencilla
    -Se debe identificar quién lo envía (nombre empresa y dirección física) y a través de quién lo envía.
    Compartir:

    Email Marketing Consejo 11/20: Conozca sus métricas y aplíquelas

    Una de las grandes ventajas del email marketing es que es medible. Uno puede obtener una gran cantidad de datos, como por ejemplo quiénes y cuántos abrieron su email, quiénes, cuántos y dónde hicieron clic, en períodos de tiempo determinados.

    Pero lo importante es saber qué mirar específicamente y a qué tipo de audiencia entregarle un tipo de datos relevantes. Por ejemplo, si a su jefe le interesará saber si la campaña de email resolvió el problema que debía resolver. Si es venta, datos de venta, si es visitas al sitio, visitas, etc.

    Pero el consejo más apropiado en este sentido es que más que ver un número específico de una campaña determinada, lo importante es ver una tendencia y cómo se comporta en el tiempo.

    Si hoy fue 3% la tasa de clic, cuánto fue el mes pasado y cuánto esperamos que sea el próximo mes.
    Compartir:

    Email Marketing Consejo 10/20: Mejore el contenido con segmentación

    El 53% de las personas se desuscriben de los emails que reciben de empresas por que el contenido del mensaje dejó de ser interesante para ellos (Jupiter Research).

    Si bien llegar a 0% de desuscripción es imposible, se puede sin dudar minimizar el número de personas que deje de recibir mensajes de su empresa con el simple hecho de segmentar su base.

    Mientras mayor les la segmentación, mayor es la relevancia del mensaje, ya que le estamos diciendo cosas específicas a un grupo definido.

    Si usted sabe que alguien vive en X lugar y le gusta comer Y. Su oferta va a ser más dirigida, por ende más relevante.
    Compartir:

    Email Marketing Consejo 9/20: No sólo rediseñe, optimice

    Existe un alto porcentaje de personas que diseña sus plantillas de email y las lanza al mercado de forma inmediata. Mucho hay de centrarse también en lo estético más que en lo funcional y lo que dicen los números (analítica).

    Uno puede definir colores, tamaños e incluso ubicaciones, pero al final lo que realmente importante es si se realizan los clics.

    Asegúrese de probar sus emails para saber qué diseño es más efectivo, cuál obtiene más y mejores clics.
    Compartir:

    Email Marketing Consejo 8/20: Obtenga el permiso

    Buenos y legítimos emails son aquellos que se basan en el permiso. Básicamente el permiso se define como: "Es privilegio (no el derecho) de entregar anticipadamente comunicación relevante y personalizada a clientes que quieren recibir dicha comunicación".

    Por eso el permiso no es eterno. Entonces para no estar preguntando constantemente si esta OK o no enviar un mensaje determinado, es importante mantenerse en lo legítimo, cumpliendo las expectativas de los suscriptores.

    Expectativas = Relevancia

    La única forma de enviar mensajes relevantes es conociendo a su audiencia, sus gustos y necesidades y eso lo podremos lograr preguntándoles directamente esa información
    Compartir:

    Email Marketing Consejo 7/20: Le rogamos que no sea masivo

    Un solo mensajes igual para todos ya es parte del pasado. Hoy el concepto está en ser relevante, personalizado y segmentado.

    Hoy las redes sociales y el email tienen un impacto importante en los consumidores, y esperan de éstos canales un grado más relevante y de valor en sus mensajes. ¡Más Personales! Para eso aumente la personalización con campañas dirigidas, entregue valor a través del mensaje adecuado en el tiempo adecuado y sobre todo escuche a sus clientes.
    Compartir:

    Email Marketing Consejo 6/20: Ponga atención a la relación

    Las personas reaccionan a los emails de diferentes formas. Algunos abren más emails y les hacen clic de forma constante y otros sólo los abren cuando reciben una promoción. Independiente de lo que hagan lo importante es que usted sepa qué están haciendo con sus emails.

    Es importante saber quiénes hacen qué, cuántos interactuan con ellos y cuántos no hacen absolutamente nada con sus emails.

    Con esa información se toman decisiones de qué hacer y qué dejar de hacer.
    Compartir:

    Email Marketing Consejo 5/20: Recuerde a sus suscriptores de su valor

    No asuma que sólo por el hecho de haberse suscrito a su lista de contactos dando su permiso para enviarle emails hace más de 1 año va a recordar el por qué se suscribió realmente. Usted necesita entregar su propuesta única de valor (PUV) en casi todos los mensajes que envía.

    Esto no significa decirles cuándo y por qué se suscribieron, pero sí decirles que lo hicieron y qué beneficios tienen a cambio.
    Compartir:

    Email Marketing Consejo 4/20: Mantenga su lista limpia

    Nadie quiere y menos desea una lista sucia. Y quién menos que los ISP (Gmail, Hotmail & Yahoo), dado que aumentan el nivel de bloqueos y posibles quejas Spam, lo que también afecta su reputación Online.

    Usted también debe odiarlos ya que le baja el número de emails abiertos, leídos y clics. Mientras menos ruido posean sus cifras mejor es la visibilidad de los resultados Elimine direcciones incorrectas, actualice su lista a través de encuestas y envíos, ofrezca un centro de preferencia para que las mismas personas puedan actualizar sus datos. Este es un proceso que debe permanecer en el tiempo. 30% de su lista queda desactualizada e inactiva cada año.
    Compartir:

    Email Marketing Consejo 3/20: Pruebe sus asuntos

    El remitente (quién lo envía) y el asunto influyen en casi un 80% de la decisión si abren o no un email en una casilla de correos inundada de correos que llegan y llegan. El remitente debe ser alguien conocido, el nombre que la gente conozca más, que por lo general es el nombre de su empresa.

    Pero el asunto es más complejo para saber qué funciona mejor. Por eso invitamos a probar, probar y probar sus asuntos como un proceso constante en el tiempo. La única forma de saber cuál tiene mejor efectividad es probando cuál tiene mayor tasa de aperturas. Esto se le realiza a diferentes grupos de audiencias homogéneas.
    Compartir:

    Email Marketing Consejo 2/20: Ser relevante sigue siendo relevante

    El email marketing es eficaz por una sencilla razón: a los clientes les gusta recibir mensajes dirigidos de las empresas que les interesan.

    A ellos les gusta cuando les envían emails de cosas que ya han demostrado haber tenido un interés previo. Ahí es donde se desarrolla el verdadero e-mail. Se trata de construir relaciones más sólidas con los clientes que ya conoce, ya que son ellos los que deciden si quieren seguir oyendo de usted o no.

    Un email es relevante cuando:

    -Personalizan contenidos a audiencias segmentadas.
    -Se generan mensajes gatillados a tiempo.
    -Estimula la interactividad para medir intereses y respuestas
    Compartir:

    Email Marketing Consejo 1/20: Resuelva un problema

    Recuerde que en toda campaña, no se trata de usted, se trata de ellos, sus consumidores. No hable de lo bueno que es usted y su empresa, sino de cómo puede ayudar a sus clientes o prospectos a resolver un problema. Es importante antes de empezar un programa de email marketing, tener claro y poder definir qué tipo de problemas debe resolver.

    ¿Sus ofertas y el contenido de sus mensajes están resolviendo el problema mayor? Si no sabe cuál es el problema mayor, utilice métodos de investigación que permitan entender qué desean sus clientes y cómo usted los puede ayudar.
    Compartir:

    martes, 26 de junio de 2012

    Como Crear certificados SSL para Apache

    Paso 1: Generar el par de llaves
    La utilidad “openssl” se utiliza para generar la llave privada y el CSR. Esta utilidad viene con el paquete OpenSSL y se suele instalar en /usr/local/ssl/bin. Si usted los ha instalado en otros lugares tendrá que ajustar estas instrucciones adecuadamente.
    A continuación ejecute el siguiente comando:

    openssl genrsa -des3 -out www.mydomain.com.key 2048

    Por ejemplo:



    • Este comando genera una llave privada RSA de 2048 bits y la almacena en el archivo www.mydomain.com.key
    • Nota: Para todos los certificados SSL, la longitud de la llave CSR debe ser de 2048 bits.
    • Cuando se le solicite una frase secreta (pass phrase), por favor ingrese una frase segura y fácil de recordar, ya que esta frase de paso es la que protege la llave privada. La llave privada y el certificado son requeridos para habilitar SSL.
    • NOTA: Para omitir el requisito de frase de paso, omita la opción des3 al generar la llave privada. Si no desea proteger su llave privada con una frase de paso (sólo si es absolutamente la confianza que la máquina servidor, y está seguro de que los permisos son cuidadosamente establecidos), puede dejar de lado la opción anterior -des3. También omita la opción -des3 si está ejecutando Apache en Windows, ya que no funciona en Windows.

    Paso2: Generar un CSR

    2.1 Escriba el siguiente comando en el sistema:

    openssl req –new –key www.mydomain.com.key –out www.mydomain.com.csr

    Por ejemplo:


    Nota: Si usted está utilizando OpenSSL en Windows, puede que tenga que especificar la ruta de openssl.cnf como las siguiente: openssl req –new –key .key -config “c:\Apache Software Foundation\Apache2.2\conf\openssl.cnf” –out .csr

    2.2 Este comando le solicitará que ingrese los siguientes atributos para el certificado:


    Nombre del campoExplicaciónEjemplo
    Country Name (C)Es el nombre del país. Use el código de dos letras sin puntuacion para el país.PE
    State or Province (S)Es el estado o Provincia, no abrevie el nombre del estado o provinciaLima
    Locality or City (L)Es el campo de localidad o ciudad.Lima
    Company (O)Aquí debe de escribir el nombre se su empresa, este nombre debe de coincidir con el nombre que figura en la Constitucion de la Empresa. Si su empresa o departamento tiene un &, @, o cualquier otro símbolo con la tecla de mayúsculas en su nombre, debe omitirlo para poder inscribirse.Mi Company CA
    Organization Unit (OU)Este campo es la unidad organizativa, se utiliza para ayudar a identificar los certificados de registro a una organización. La unidad organizativa, es el nombre de la unidad o departamento que realiza la solicitud. Para saltar este campo, pulse Intro en el teclado.Sistemas
    Common name (CN)El common name o nombre común se compone de HOST + DOMINIO. Aquí escriba el nombre de dominio o subdominio completo del sitio que se está asegurando.www.company.como
    mail.company.com

    Asegúrese de que esta información es la correcta para la Organización ya que es la que se reflejará en su certificado.
    A continuación se muestra un ejemplo del llenado de los atributos en el servidor:


    Los certificados Verisign y/o Thawte sólo pueden ser utilizados en los servidores con el common name que se especifica en el CSR. Por ejemplo un certificado para “dominio.com” recibirá una alerta si accede a un sitio www.dominio.com o seguro.dominio.com, porque www.dominio.com y seguro.dominio.com son diferentes de “dominio.com”.
    No ingrese direcciones de email, la frase secreta o nombres opcionales de la compañía cuando genere el CSR.
    En este momento usted ha creado un par de llaves publica/privada.
    • La llave privada (www.mydomain.com.key) esta guardada en el servidor de máquina local y es utilizada para descifrar.guarde este archivo en un lugar seguro y no lo divulgue por ningún motivo. Ni Verisign Inc y Ni Thawte Inc solicitarán el envío de la llave privada.
    • La llave publica, CSR (certrequest.csr) se utilizará para solicititar el certificado.Este es el archivo necesario enviar al Proveedor  de Certificados para la inscripción del certificado.
    2.3 Para copiar y pegar la información del CSR en el enrolamiento, usted debe abrir el archivo con un editor de texto (Notepad, Vi) y guardarlo como un archivo *.txt. No utilice Microsoft Word ya que puede adicionar caracteres ocultos que pueden alterar el contenido del CSR.
    Nota: La generación de la llave privada (Private key) con la frase de paso (pass phrase), significa que la misma frase de paso (pass phrase) tendrá que ser introducida después de reiniciar el servidor.
    Paso 3: Respalde la llave privada
    Se recomienda que la llave privada sea respaldada junto con la frase secreta. Una buena opción es crear una copia de este archivo en un diskette, cd, Pendrive o algún dispositivo de almacenamiento removible. Esta clave privada puede ser útil tenerla en caso de falla del servidor.

    Durante el proceso de verificación es posible que la Entidad Certificadora (VeriSign y/o Thawte) tenga que ponerse en contacto con su organización. Asegúrese de entregar una dirección de correo electrónico, número de teléfono y número de fax correctos, estos datos se verificarán y no son parte del certificado.
    Ayudas
    A continuación le mostramos otro ejemplo de cómo deben de ser llenados los campos atributos:

    A continuación se muestra una captura de pantalla del CSR.


    Se recomienda utilizar las últimas versiones de Apache, mod_ssl y OpenSSL. La distribución de archivos comprimidos se puede encontrar en los siguientes lugares:

    http://www.apache.org/dist/
    http://www.modssl.org/source/
    http://www.openssl.org/source/

    Asimismo, las instrucciones detalladas para la instalación se pueden encontrar en los archivos de instalación en los tres paquetes.

    La utilidad (OpenSSL) que se utiliza para generar la clave privada RSA (private key) y la solicitud de firma de certificado (CSR) viene con OpenSSL y generalmente se instala en el directorio SSL_BASE/bin where SSL_BASE es la ruta especificada para la construcción de Apache + mod_ssl ya sea con la opción -openssl o la variable SSL_BASE.

    Compartir:

    domingo, 29 de abril de 2012

    Ejercicios sobre Ciclos WHILE FOR en Java (01.05.07)

    Ejercicio 1
    Mostrar la conversión de 1 hasta 10 dólares en pesos, dólar tras dólar, suponiendo que el tipo de cambio es 3.50 pesos/dolar.

    C:\java>notepad Cambio.java

    public class Cambio {

    public static void main(String[] args) {
    int dolar = 1;
    while (dolar<=10) {
    System.out.println(dolar +" dolares = " + dolar*3.5 +" pesos");
    dolar++;
    }
    }
    }


    Ejercicio 2
    Una persona desea invertir $1000.00 en un banco, el cual le otorga un 2% de interés mensual. Cual será la cantidad de dinero que esta persona tendrá al cabo de un año si todo el dinero lo reinvierte?.

    public class Interes {
    public static void main(String[] args) {
    double dinero = 1000;
    int mes = 1;

    while (mes<=12) {
    dinero = dinero * 1.02;
    mes++;
    }
    System.out.println(dinero);
    }
    }

    Ejercicio 3
    Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un día desde las 00:00:00 horas hasta las 23:59:59 horas

    public class Reloj {
    public static void main(String[] args) {
    for (int h=0; h <= 23; h++)
    for (int m=0; m <= 59; m++)
    for (int s=0; s <= 59; s++)
    System.out.println(h +"h "+ m +"m "+ s+"s");
    }
    }

    Ejercicio 4
    Una persona desea invertir $1000.00 en un banco, el cual le otorga un 2% de interés mensual. En cuantos meses tendrá mas de $1500, si reinvierte cada mes todo su dinero?.

    public class Dinero {
    public static void main(String[] args) {
    double dinero = 1000;
    int mes = 1;
    for (;;) {
    dinero = dinero * 1.02;
    if (dinero >= 1500) break;
    mes++;
    }
    System.out.println(mes);
    System.out.println(dinero);
    }
    }
    Compartir: