El fin de una etapa… el comienzo de otra: Kaira Free!

¡Liberar a Kaira!

Con este título queremos daros una de las mejores noticias que desde este blog os podemos dar.

Kaira, 100% gratis, para siempre, sin límites y open source.

Los motivos
Empezamos Kaira con gran ilusión, casi no éramos nadie y en nada de tiempo premios, menciones, entrevistas, reconocimientos y trabajo, mucho trabajo… hicimos lo que nos gustaba con una sonrisa en la boca y en unas cuantas ocasiones con mucho stress! (todo sea dicho).

Kaira creció y creció y se hizo una plataforma más grande, en la actualidad cuenta con servidores en tres países, los principales en Barcelona. Y cuanto más crecía más trabajo nos daba.

A finales del 2012 empezamos a crear una nueva plataforma de inteligencia artificial que presentaremos en unos pocos meses. La crecida de trabajo de Kaira y la creación de la nueva plataforma hizo que nuestro trabajo se desbordara: había que hacer algo.

Estudiamos varias vías, la principal era la venta de Kaira, tras 6 meses tuvimos dos ofertas serias, la primera querían usar nuestros clientes para fines poco éticos (por lo que la descartamos) y la segunda obligaba a que los trabajadores siguieran trabajando en Kaira (por lo que no podíamos seguir con el nuevo proyecto).

Por todo esto hemos decidido que la mejor opción es hacer Kaira Open Source y darla gratis a la comunidad para que vaya creciendo.
¿Y que pasa para los que son clientes?
Durante este mes nos pondremos en contacto con ellos para ayudarles a cambiar su cuenta con sus datos a su servidor privado de manera totalmente gratuita.

¿Cómo puedo conseguir Kaira Gratis?
Una vez todos los usuarios tengan Kaira de manera gratuita publicaremos un fichero para que todo el mundo se lo pueda descargar e instalar.

Y por último… los agradecimientos
Personalmente (siendo yo el creador de Kaira), me gustaría agradecer a varias personas que en el pasado han formado parte del Team Kaira o nos han ayudado y que en la actualidad ya no se encuentran en nuestro equipo:

Adela Ferrer
Una de las personas que más nos ayudó a la formación de la empresa y la contratación inicial de la primera plantilla.

Roberto Cerdá
Una de las personas que aunque no formó parte del equipo siempre ha estado ayudando en un segundo plano en Kaira, gracias.

Mario Arana
Uno de los mejores diseñadores y Community Manager que hemos tenido.

 

Recordar que dentro de poco podréis descargar ¡Kaira Gratis!

La necesidad de tener un buen plan de contingencias

Muchos medios avisan de la importancia que tienen las TIC en las empresas. Son utilizadas tanto por autónomos, como PYMES y multinacionales. Las TIC se utilizan tanto para su difusión en las redes sociales, como para administrar y gestionar la propia empresa hasta para establecer buenos planes de marketing. Es una realidad, TIC ocupan un lugar fundamental en la empresa.

Pero hay que cambiar de pensamiento: Ya no son una opción a elegir, se convierten en una necesidad real de las empresas, ya sean grandes o pequeñas. En este acelerado mundo, ya no sirve adaptarse, hay que anticiparse y estar preparado para lo que venga.

Utilizar programas o aplicaciones basadas en el “cloud computing“, es un buen ejemplo. Esta novedosa tecnología permite ahorrar mucho tiempo y costes, además de las múltiples ventajas que suponen: Poder acceder desde el navegador, más seguridad en la protección de datos, compartir más fácilmente información…

Pero no hay que fiarse ciegamente en las empresas que se promocionan a base de dicha tecnología tan de moda. Hay que mirar bien y asegurarse de que tengan un buen plan de contingencias. O por mucha tecnología “cloud” que tenga, si no tiene un buen sistema de seguridad y falla, las pérdidas pueden ser muy graves.

Cómo podreis observar en el artículo, cuándo un sistema basado en cloud computing falla, las pérdidas pueden ocasionar muchísimos problemas. Y sin un buen plan de contingencias, se hace casi imposible poder volver a recuperar lo s datos perdidos.

http://www.computing.es/infraestructuras/noticias/1034197001801/cloud-computing-causa-perdidas.1.html

Es por ello que Kaira ha desarrollado un excelente plan de contingencias. Con tal de proteger los datos de nuestros clientes y ofrecer un servicio de calidad real, hemos desarrollado un plan de contingencias tan eficaz, que si por cualquier motivo (Bomba, terremoto, incendio…) nuestro servidor “explota” o deja de funcionar, automáticamente en unos segundos Kaira volvería a restablecerse. Logrando que la plataforma de Kaira este siempre disponible (pase lo que pase) y al servicio de nuestros clientes.

¿Pero qué es un “plan de contingencias“?

Un Plan de contingencias es un instrumento de gestión para el buen gobierno de las TIC en el dominio del soporte y el desempeño.

Dicho plan contiene las medidas técnicas, humanas y organizativas necesarias para garantizar la continuidad del negocio y las operaciones de una compañía. Un plan de contingencias es un caso particular de plan de continuidad del negocio aplicado al departamento de informática o tecnologías. Existen otros planes de continuidad que persiguen el mismo objetivo, diferenciándose por cada departamento. No obstante, dada la importancia de las tecnologías en las organizaciones modernas, y los riesgos que supone no tener un buen plan de contingencias en el departamento informático y/o tecnológico, se hace indispensable tener un buen sistema de seguridad en la protección de datos y un buen plan de continuidad del negocio.

El plan de contingencias sigue el conocido ciclo de vida iterativo PDCA:
(plan-do-check-act, es decir, planificar-hacer-comprobar-actuar). Nace de un análisis de riesgo donde, entre otras amenazas, se identifican aquellas que afectan a la continuidad del negocio. Sobre dicha base se seleccionan las contramedidas más adecuadas entre diferentes alternativas, siendo plasmadas en el plan de contingencias junto con los recursos necesarios para ponerlo en marcha.

El plan de contingencias comprende tres subplanes. Cada plan determina las contramedidas necesarias en cada momento del tiempo respecto a la materialización de cualquier amenaza:

  • El plan de respaldo. Contempla las contramedidas preventivas antes de que se materialice una amenaza. Su finalidad es evitar dicha materialización.
  • El plan de emergencia. Contempla las contramedidas necesarias durante la materialización de una amenaza, o inmediatamente después. Su finalidad es paliar los efectos adversos de la amenaza.
  • El plan de recuperación. Contempla las medidas necesarias después de materializada y controlada la amenaza. Su finalidad es restaurar el estado de las cosas tal y como se encontraban antes de la materialización de la amenaza.

Por otra parte, el plan de contingencias no debe limitarse a estas medidas organizativas. También debe expresar claramente:

  • Qué recursos materiales son necesarios.
  • Qué personas están implicadas en el cumplimiento del plan.
  • Cuáles son las responsabilidades concretas de esas personas y su rol dentro del plan.
  • Qué protocolos de actuación deben seguir y cómo son.

Fuentes:
http://www.computing.es/infraestructuras/noticias/1034197001801/cloud-computing-causa-perdidas.1.html
http://es.wikipedia.org/wiki/Plan_de_Contingencias

¿Y tú qué piensas al respeto? ¿Estás preparado realmente ante cualquier suceso?
¿Tu empresa tiene un buen plan de contingencias como el de Kaira?  ¡Comenta!
O siguenos en twitter: @KairaCloud @Ailuxion

Migrar Joomla, WordPress, PrestaShop sin problemas…

Uno de los mayores problemas al migrar o al instalar una aplicación tipo Joomla, WordPress, etc… es el famoso ‘pantallazo blanco’, que se ve todo blanco y no sabes por que.

Esto sucede en la mayoría de los casos por que la migración o la instalación se ha realizado después de descomprimir un fichero ZIP, puesto que al descomprimirlo se pierden todos los permisos de escritura que todos estos programas necesitan.

Así que nuestro equipo ha desarrollado un pequeño Script en PHP que al ejecutarlo da permisos a todos los archivos y subcarpetas que seleccionemos. Esto es mejor realizarlo desde PHP puesto que desde el FTP cambiar los permisos uno a uno demora mucho tiempo (unas cuantas horas).

Aquí os dejamos el código:

<?php
function cambiar_permisos($ruta,$permisos){
if (is_dir($ruta)) {
if ($dh = opendir($ruta)) {
while (($file = readdir($dh)) !== false) {
if(filetype($ruta . $file)==”file”){ chmod($ruta.$file, $permisos); echo($ruta.$file.'<br>’); };
if(is_dir($ruta . $file) && $file!=”.” && $file!=”..”){
chmod($ruta.$file, $permisos);
echo($ruta.$file.'<br>’);
cambiar_permisos($ruta . $file . “/”);
};
}; //While
closedir($dh);
}; //if
}else{
echo “<br>No es ruta valida”;
};
};
cambiar_permisos(“./”,0777);
?>

Usando el calendario JS (EpochPrime)

En Kaira necesitábamos un calendario que fuera bonito, de código libre y lo más importante ¡Que no usara jQuery!

Así que después de buscar muchos encontramos el definitivo ¡EpochPrime! así que vamos paso por paso a mostrar como se configura.

1º Descargarmos desde la web de Autor
Podemos descargarlo desde aquí.

2º La estructura
Consta de un .css y de un .js el resto es un .html para que veas como se utiliza.
Es muy fácil de añadir a tu proyecto, pero como siempre, necesitábamos algo un poquito mejor y modificado, así que ¡Manos a la obra!.

3º La modificación: Lo visual
El primer problema con el que nos topamos es que estaba todo en Inglés por lo que entramos en el .js y modificamos todo al castellano. Las líneas que hay que modificar son las primeras, la que están dentro de la función setLang().

Bien, ahora ya tenemos nuestro calendario en Castellano, pero… ¡Falla algo! Los Americanos tienen la costumbre de usar el foramto mm/dd/yyyy mientras los europeos dd/mm/yyyy ¡Así que toca modificar! Además que la semana en America empieza el Domingo y en España el Lunes. Así que en la función calConfig() buscamos las líneas:
self.startDay=0;
self.defDateFormat = ‘m/d/Y’;
y la cambiamos por
self.startDay=1;
self.defDateFormat = ‘d/m/Y’;
Y ya que estamos en esa función nosotros hemos cambiado los límites de las fechas puesto que el JS ya tiene unos cuantos años.

4º La modificación: El código y el rendimiento
Cuando os miráis el código por primera vez (el .html) veis que hay bastantes líneas de javascript que no están dentro del .js, esto pasa también con el CSS.
Así que para que nuestra aplicación sea más rápida meteremos el css dentro del .css y vemos que el javascript no se puede meter así como así puesto que tiene la siguiente línea:
dp_cal  = new EpochPrime(document.getElementById(‘texto1’),dp_xml);
Esta línea lo que hace es que hace aparecer el calendario al pulsar en el input con id texto1, pero como es muy lógico que en ocasiones tengamos 2 lugares donde queramos hacer aparecer el calendario pues pensamos en lo de duplicar la línea y añadir el otro ID, total el .js solo se cargaría una vez y se mantendría en cache, pero al final pensamos que no es una buena idea puesto que cuando no existiera dicho ID, acabaría arrojando errores y retrasando ‘un poquito la página’. Así que lo que hicimos no fue más que añadir un if en el .js que mirase si existía el id (texto2) y si existe que añada la segunda línea.

También podéis hacer que se cargue solo si el form tiene el ID que queréis, eso ya es cosa vuestra.

Y así tendremos nuestro calendario, en español, con el formato europeo y más funcional :-)

Crear PDF desde un HTML (mPDF)

La creación de PDF desde HTML gracias a PHP ha sido un problema para muchos programadores, puesto que existen pocos códigos que realicen esto y de todos esos códigos el 90% no servirán por una razón u otra (no coloca bien los DIV, no tiene soporte CSS…)

Así que después de estar buscando y buscando en Kaira y después de probar unos 10 programas de esta índole, nos hemos decantado por mPDF, que es por mucho el mejor de todos.

¿Cómo conseguirlo?:
Pues en la web del autor, es código libre así que no tendréis problemas para descargarlo. Esto ya es opcional pero si vais a realizar un uso comercial de este producto lo mínimo es hacer una pequeña donación para que así sigan programándolo y actualizándolo.

¿Por qué este es mejor que el resto?
Principalmente porque hemos probado la mayoría que existen en el mercado y este tiene muchos factores que hace que sea mucho mejor:
– Por que tiene actualizaciones.
– Por que funciona perfectamente DIV y CSS.
– Es el único que soporta CSS3 y funciona perfectamente atributos como border-radius, box-shadow…

¿Cómo genero el PDF?
Si vuestro proyecto va a ser muy grande, quizás necesitéis configurar como nosotros el archivo de configuración. Si es para ir probando no tendréis problemas tal y como viene configurado. El código para generar el PDF que usamos nosotros es el siguiente:

include(“../MPDF/mpdf.php”);
$mpdf=new mPDF(”);

// La variable $html es vuestro código que queréis pasar a PDF
$html = utf8_encode($html);

//==============================================================
if ($_REQUEST[‘html’]) { echo $html; exit; }

$mpdf->WriteHTML($html);

// SALIDA
$mpdf->Output(‘nombre.pdf’,’D’); exit;

 

Tenemos que recordar que mPDF solamente funciona con UTF8 por lo que si existe algo que no sea UTF8 nos saltará error (a no ser que lo configuremos para que siga adelante), por eso nosotros formateamos el texto con el utf8_encode().

Como veréis el Output() tiene dos opciones, la segunda opción, aunque es opcional recomendamos que añadáis la D. Puesto que así mandará la cabecera (Force-Download) para que el archivo salga para descargar.