OFICITI OS: Entorno de aplicaciones empresariales en la nube.

20 Noviembre, 2009 por openti

Oficiti OS: Entorno de aplicaciones empresariales en la nube.

El objetivo de este entorno es crear un escritorio totalmente online de aplicaciomes útiles para las empresas. Este paradigma es conocido como cloud computing, con muchas ventajas:

  • Disponibilidad del servicio y/o aplicación web 24h/7dias/365dias.
  • Abstracción de problemas de mantenimiento, soporte y instalación.
  • Accesibilidad mediante diferentes tecnologías compatibles, tales como: pdas, móviles, portátiles, blackberrys, netbooks, etc.
  • No saturación del uso del disco duro en el ordenador o aplicación que se usa, debido a que solo se necesita un navegador web, e internet.

En los últimos tiempos están proliferando mucho este tipo de aplicaciones, para lo cual ha habido que superar un reto importante que es el de llevar lla experiencia RIA (Rich Internet Applications) a los usuarios. La historia de los últimos años nos ha traído diversas tecnologías, basadas en Flash (Adobe), Java (Sun), Silverlight (MS). Todas muy interesantes, pero con la desventaja de necesitar algún tipo de extensión en los navegadores que podría no estar presente. Ha sido esta limitación lo que le ha dado la victoria  a Javascript y la  tecnología  AJAX.

ExtJS encaja dentro de este esquema como un motor que permite crear aplicaciones RIA, con las siguientes ventajas:

  • Alto Rendimiento, Interfaces de Usuarios muy configurables.
  • Un modelo de Componentes muy bien diseñado y extensible.
  • Una API muy fácil de usar.
  • Licencias Open Source.
  • Compatibilidad de Browsers.

Oficiti intenta reunir el conjunto de aplicaciones útiles para la empresa de hoy (Herramientas de colaboración, ERP, Facturación, Gestión Documenta, recursos humanos, etc). Las aplicaciones  se encuentran centralizadas en un escritorio web basado en qwikioffice.

Arquitectura: Ext + Java/PHP + Oracle/MySQL

Gestión del sistema

qwikioffice: Escritorio

extplorer: Explorador de ficheros

AeroSql: Web database console
Administración de usuarios, perfiles y aplicaciones
Backups centralizados.
Auditorias de acceso.

Herramientas Empresariales:

Opengoo/Tine20: Mail, calendarios, Tareas (Ext + PHP)

SDSimple: Facturación y contabilidad (Ext y Java)

nan21: ERP/CRM (Ext y Java)

Docasu: Gestor documental (Ext con Alfreco)

IceHRM: Gestión de recursos humanos (Ext +Java)

Cubusmail: Web Mail (Ext +Java)

El proyecto ha sido  presentado a la segunda edición del  BBVA Open Talent.


Nuevo emprendimiento

6 Septiembre, 2009 por openti

Estas últimas semanas me encuentro, montando un nuevo negocio, se trata de una agencia de eventos  especializada en despedidas de solteras y solteros. Trabajaremos principalmente en Sevilla aunque nos descartemos otros lugares en un futuro. Su nombre Eventun y su web www.eventun.com se encuentra de momento en construcción.  Os seguiré contando los próximos días más detalles.

Mi sitio web hackeado

27 Abril, 2009 por openti

Debido a una vulnerabilidad de la versión 1.0.13 de JOOMLA la página www.openti.net ha sido hackeada introduciendo en varias de sus páginas elementos HTML del tipo iframe que apuntaban a sitios maliciosos.

Pronto Google empezó a advertir  del problema de seguridad al intentar acceder a la página:

 

image

Accediendo a las herramientas de webmaster de Google te explicaban mejor el problema.

Investigando un poco, encontré como resolver el problema de seguridad de esa versión de JOOMLA, el problema está en usar el usuario administrador por defecto, entonces, cree otro usuario administrador, y al anterior le quité los permisos de administrador. además restablecí  el sitio web con una copia de seguridad, En caso de no poseer copia de seguridad, habría que eliminar de todas las páginas de índices el elemento iframe.

Aquí una captura del whois de la página que contiene el código malicioso.

image

Me he planteado si presentar un denuncia al Grupo de delitos telemático de la guardia civil.

 https://www.gdt.guardiacivil.es/denuncias.php

Pero de momento no procederé.

AJAX y SEO, recomendación de Google

30 Marzo, 2009 por openti

Tras haber adaptado la web a AJAX, Google había dejado de indexar parte de las páginas de la misma.

Google nos dice cómo debemos usar AJAX para que su buscador pueda acceder también a esos contenidos.

http://googlewebmastercentral.blogspot.com/2007/11/spiders-view-of-web-20.html

los enlace en la página deben de quedar de la siguiente forma:

 

<a href="paginadestino.php" onClick="funcionAjax(parametros);return false">enlace</a>

 

Con lo cual en nuestra función que modifica los enlaces en vez de modificar el atributo “href” añadiremos el atributo “onclick”, la forma de añadir este atributo depende del navegador que usemos.

 

function ajaxLinks () {
	for (var i=0;i < document.links.length;i++) {
		var extension = document.links[i].href.substr(document.links[i].href.length-3,3);
		if(extension!="pdf")
		{
			if(document.links[i].href.substr(0,<?php echo strlen($mosConfig_live_site)?>)=="<?php echo $mosConfig_live_site ?>"||document.links[i].href.substr(0,9)=="index.php:"){
				var url = "javascript:ajaxload('index2.php"+document.links[i].href.substring(<?php echo strlen($mosConfig_live_site)+10?>)+"')";
				if(url.indexOf('?')<0)
				{
					url = "javascript:ajaxload('index2.php?"+document.links[i].href.substring(<?php echo strlen($mosConfig_live_site)+10?>)+"')";
					if(document.links[i].attachEvent)
					{
					//Do IE Specific
					document.links[i].attachEvent("onclick", new Function("ajaxload('index2.php?"+document.links[i].href.substring(<?php echo strlen($mosConfig_live_site)+10?>)+"');return false;"));
					} else {
					document.links[i].setAttribute("onclick","ajaxload('index2.php?"+document.links[i].href.substring(<?php echo strlen($mosConfig_live_site)+10?>)+"');return false;");
					}


				}
				else
				{
					if(document.links[i].attachEvent)
					{
					//Do IE Specific
					document.links[i].attachEvent("onclick", new Function("ajaxload('index2.php"+document.links[i].href.substring(<?php echo strlen($mosConfig_live_site)+10?>)+"');return false;"));
					} else {
					document.links[i].setAttribute("onclick","ajaxload('index2.php"+document.links[i].href.substring(<?php echo strlen($mosConfig_live_site)+10?>)+"');return false;");
					}

				}



				//document.links[i].href = url;
			}
		}
	}
}

 

Esperemos que para la próxima indexación de Google, vuelva a indexar todas las páginas.

 

Un Saludo.

La crisis

23 Marzo, 2009 por openti

"No pretendamos que las cosas cambien, si siempre hacemos lo mismo. La crisis es la mejor bendición que puede sucederle a personas y países, porque la crisis trae progresos. La creatividad nace de la angustia, como el día nace de la noche oscura. Es en la crisis que nace la inventiva, los descubrimientos y las grandes estrategias. Quien supera la crisis, se supera a sí mismo sin quedar ’superado’.
Quien atribuye a la crisis sus fracasos y penurias, violenta su propio talento y respeta más a los problemas que a las soluciones. La verdadera crisis, es la crisis de la incompetencia. El inconveniente de las personas y los países es la pereza para encontrar las salidas y soluciones. Sin crisis no hay desafíos, sin desafíos la vida es una rutina, una lenta agonía. Sin crisis no hay méritos. Es en la crisis donde aflora lo mejor de cada uno, porque sin crisis todo viento es caricia. Hablar de crisis es promoverla, y callar en la crisis es exaltar el conformismo. En vez de esto, trabajemos duro. Acabemos de una vez con la única crisis amenazadora, que es la tragedia de no querer luchar por superarla."
Albert Einstein.
1879-1955.

3 Métodos sencillos para decidirse por una tecnología o aplicación

21 Marzo, 2009 por openti

 

Internet nos da muchas posibilidades, y una de ellas es poder analizar y estudiar las tendencias tecnológicas actuales, cuando tenemos que elegir entre una tecnología para el desarrollo de una aplicación o elegir entre un conjunto de aplicaciones para implantar en nuestra empresa, nos encontramos con un gran abanico de posibilidades.

Pues aquí muestro tres formas que suelo usar yo a la hora de decantarme por una de ellas.

Usar Google Trends, el cual nos da una comparativa de la evolución en el tiempo del volumen de búsqueda que han tenido, pudiendo ver esta evolución en diferentes zonas geográficas

image

La segunda es comparar el número de ofertas profesionales en páginas como www.infojobs.net

image

image 

La tercera forma es comparar buscando en redes de profesionales como www.xing.com el número de profesionales que usan esa tecnología o aplicación. También se puede filtrar por distintas zonas geográficas.

image

image

Con estos tres métodos podemos tener ya una idea bastante clara para tomar una decisión acertada, a la hora de elegir entre tecnologías o aplicaciones parecidas.

 

Un Saludo.

Poniendo Ajax a tu Joomla CMS II

13 Marzo, 2009 por openti

En esta segunda parte del post anterior,  veremos como cargar de forma asíncrona el menú izquierdo, dependiendo de la página mostrada. Además incorporaremos un fading al mostrar los contenidos cargados asíncronamente, de esta manera la experiencia de usuario es mucho más atractiva. Podéis ver como queda en www.openti.net .

Para poder cargar el menú izquierdo de forma asíncrona, crearemos una página php que nos devuelva el contenido de estos menús, y llamaremos con el AJAX de mootools a este php, para recoger el contenido y colocarlo en el div que crearemos en dicha posición.

Primero creamos en la raiz del sitio la página php, mod_left.php,  que será una copia de index2.php pero con el final del fichero cambiado, para que no cargue el contenido de un artículo, sino que cargue el menú izquierdo, llamando a:

<?php mosLoadmodules(“left”,-2)?>

	<body>
			<?php if(mosCountmodules("left")){ ?>
				<?php mosLoadmodules("left",-2)?>
			<?php } ?>

		</body>
	</html>
	<?php
	}
} else {
	mosLoadmodules("left",-2);
}

 

Una vez creada esta página tenemos  que llamarla desde nuestro fichero ajax.js

function ajaxloadLeftColumn(url){
	$('ajaxleft').innerHTML=$('loading2').innerHTML;
	//call showload function to show preloader		
	try
	{
		url = url.replace('index2.php','mod_left.php');
		new Ajax(url, {
			//loaded content would be updated inside this division
			update: 'ajaxleft',
			//this should be true if you want to execute JS inside the loaded content
			evalScripts: true,
			onComplete:function(r)
			{
				//It sets the type property of the script tag, 
				//then puts the script body inside of the element (between the opening and closing script tags),
				//then injects into the head of the page
				var script = new Element('script')
				script.setProperty('type','text/javascript');
				try
				{
					script.setHTML(r);

				}
				catch(e)
				{

				}
			},
			onSuccess:function(){
				try
				{
					//The ajaxlinks function is being called here,I defined this function in footer					
					ajaxLinks();

					iniciaObjeto($('ajaxleft'));
					efecto($('ajaxleft'));

				}
				catch(e)
				{

				}
			}
		}).request();
	}
	catch(e)
	{

	}
}

En la primera línea mostramos la imagen de carga en el div del menú:

	$('ajaxleft').innerHTML=$('loading2').innerHTML;

Esta petición asíncrona se ejecutará siempre que se haga una petición de página, mandándole los mismos parámetros que a la petición de la página, de esta manera la función de mosLoadmodules nos devolverá el menú que corresponde a la página que se está pidiendo, con esto para construir nuestra url de petición solo tendremos que hace lo siguiente:

url = url.replace('index2.php','mod_left.php');
 

A esta url haremos la petición AJAX recogeremos el contenido y lo mostraremos en el div ajaxleft que creamos en la posición de nuestro menú izquierdo en el index.php de nuestra plantilla.

Posteriormente  llamamos a las funciones de iniciaOjecto y efecto para obtener el fading, al mostrar el contenido:

 


function iniciaObjeto(obj)
{	obj.style.opacity = 0;
    obj.style.MozOpacity = 0;
    obj.style.KhtmlOpacity = 0;
    obj.style.filter = 'alpha(opacity=' + 0 + ')';
    obj.style.zoom=1;//necesario para Explorer
}


function setOp(obj, value) {
    obj.style.opacity = value/100;
    obj.style.MozOpacity = value/100;
    obj.style.KhtmlOpacity = value/100;
    obj.style.filter = 'alpha(opacity=' + value+ ')';
    obj.style.zoom=1;//necesario para Explorer
}
function efecto(o){
    for (var c=0 ; c < 100; c++)
        (function(c){
             setTimeout(function(){setOp(o,c);} , 10*c);
        })(c);
}  

Es todo es todo, si tenéis  alguna duda, o necesitáis los fuentes completos, pedírmelo.

 

Un Saludo.

Usando las redes sociales

9 Marzo, 2009 por openti

Más de la mitad de los internautas españoles usan  las redes sociales, esto hace que estas comiencen a despertar interés como canal de marketing idóneo.

Facebook, MySpace, Tuenti, Xing, Linkedin, Twiter … Son nombres que nos resultan familiares pero llevan muy poco tiempo entre nosotros y han llegado para quedarse. Es un reto para las empresas tener un espacio en estas redes sociales, ya que a través de estas llegarán a un gran numero de clientes, y  lo más importante, servirá para que los clientes contentos, te recomienden a sus amigos, ya que en la sociedad actual interconectada y globalizada la opinión de los amigos cuenta más que nunca.

Algunas de estas redes sociales no solo sirven para encontrar clientes sino también buscar socios, empleados, etc.

Pasos para crear una campaña en una red social:

  1. Define cual es tu público objetivo. A partir de esto elige la red que más se adapte a ese público. Por ejemplo si lo que buscas como público es un perfil joven, la red ideal sería Tuenti o si buscas un público más empresarial  la red ideal sería Xing.
  2. Ofrece un valor añadido, para poder traer el interés, ofrece descuentos, eventos, etc. No tiene sentido estar en una red social y no ofrecer nada.
  3. Comunícate de tú a tú, evita la publicidad, es algo básico en las redes sociales.
  4. No seas intrusivo, no avasalles  con publicidad.

 

El objetivo de OpenTI es darse de alta en estas rede sociales y ofrecer un valor añadido a través de ellas.

Ya tenemos sitio en Facebook y Tuenti, con el primer objetivo de que nos conozcan la gente más cercana.

http://es-es.facebook.com/pages/OpenTI/46266623597

http://www.tuenti.com/#m=profile&uid=63542314

En breve abriremos los espacios tanto en Xing como Linkedin.

 

Un Saludo.

Tarjeta de visita

5 Marzo, 2009 por openti

Con algo de Photoshop, basándome en el diseño de la web, y rompiendo un poco con las tarjetas de visita tradicionales. Aquí teneis el diseño de mi tarjeta para OpenTI.

Copia de tarjeta1

Realicé un pedido de 250 tarjetas a través de Vistaprint, con una calidad de papel de 265g/m².

El precio fue el siguiente:

Cantidad total del pedido – IVA excluido: 30,46 EUR
Gastos de envío y tramitación – IVA excluido: 5,69 EUR
Cantidad en concepto de impuestos IVA (16,00%): 5,79 EUR
Cantidad total: 41,94 EUR

Una vez que me llegó a casa, el resultado es que la calidad del papel es bastante buena, pero los textos podrían haber quedado con mayor resolución ya que, si hay poca luz, no se distingue demasiado bien.

Para la próxima tanda habrá que buscar una solución para esto.

Que os parece, ¿mejoraríais algo?.

Un Saludo.

Los 10 principios de Google

5 Marzo, 2009 por openti

Vía http://www.laflecha.net

Encuentro este artículo, que es una joya y que todo debríamos tenerlo siempre a la vista,. Ahí va:

El logro de un equilibrio armónico de estos diez principios es un desafío constante. Así, un producto que cumple con todos esos objetivos es "Googley", eso significa que será útil y gustará a muchas personas de todo el mundo. Estos son los 10 principios que son para Google, los más importantes:

  • Foco en las personas

    Su vida, su trabajo, sus sueños. La tecnología más puntera no sirve de nada si no cubre las necesidades de los usuarios.

  • Cada milisegundo cuenta

    Nada es más valioso que el tiempo de la gente. La velocidad es una bendición para los usuarios. También es una ventaja competitiva que Google no sacrifica sin una buena razón.

  • La simplicidad es poderosa

    Facilidad de uso, velocidad, atractivo visual y accesibilidad. Incluir sólo las funciones que la gente necesita para lograr sus objetivos.

  • Enganchar a los principiantes y atraer a los expertos.

    Los mejores productos de Google, parecen simples, pero incluyen poderosas características.

  • Atrévete a innovar.

    Google alienta proyectos innovadores que asumen riesgos, siempre y cuando respondan a las necesidades de los usuarios.

  • Diseñar para el mundo

    La World Wide Web ha abierto todos los recursos de Internet para personas de todo el mundo. El objetivo es crear un producto universalmente accesible.

  • Hacer planes para hoy, pero tambien para el futuro.

    Google nunca trata de aumentar los ingresos de un producto, si eso significa reducir el número de usuarios de Google en el futuro.

  • Alegrar los ojos sin distraer la mente

    El diseño es muy importante, porqué genera la primera impresión. Pero no hay que olvidar los objetivos. La audiencia y el contecto cultural es lo que importa. El mejor proyecto es aquel cuyo diseño agrada a los usuarios y les es de utilidad.

  • Ser dignos de la confianza de la gente

    Ser transparente sobre cómo se utiliza la información y nunca compartir datos sin el consentimiento explícito del usuario.

  • Añadir un toque humano

    Los diseños de Google tienen personalidad y solicitan feedback, y intentar mejorar como respuesta a ese feedback de los usuarios.