miércoles, 29 de febrero de 2012

Envía a Twitter tus entradas antiguas

Envía a Twitter tus entradas antiguas:

Seguramente, como a mi, te haya pasado que tienes fantásticas entradas que quedan en el olvido de tu blog salvo que alguien alguna vez las encuentre a través de los buscadores o enlaces relacionados de tu sitio.

Twitter puede ser una importante fuente de tráfico y, aunque no ayuda directamente mucho al posicionamiento en buscadores de tus entradas, al acortar todas las urls e ir sin “anchor text”, puede ser una fuente indirecta de SEO precisamente por el tráfico que te puede ofrecer.

Yo llevo ya 5 años en Twitter, pero no siempre he tenido iconos sociales para compartir en Twitter y resto de redes, así que algunas entradas antiguas no se beneficiaron de ese tráfico – y SEO – adicional, pero podemos revivirlas.



Lo mejor es que puedes automatizar esta tarea. Solo tienes que instalar el plugin Tweet Old Post y configurar el intervalo de tiempo para cada nuevo tweet desde la cuenta que elijas.


Una vez instalado y activo, desde la página de ajustes, aparte de tus credenciales de Twitter, tienes que configurar algunos parámetros:



  • Cada cuanto tiempo publicará un tweet

  • Edad mínima de las entradas para que sean merecedoras de un tweet

  • Categorías de entradas que no serán enviadas a Twitter, por si solo quieres “mover” ciertas categorías

  • Formato de los tweets, donde puedes definir como se verán, si llevarán el título, incluso algún #hashtag



Una vez guardes los cambios el cacharrito empieza a funcionar y ya lo hace todo el solito. Tu te sientas a esperar a que venga más tráfico a tu web.




WordPress para community managers: moderadores a voluntad

WordPress para community managers: moderadores a voluntad:

Hace tiempo me preguntaba un amigo si se podía en WordPress definir un tipo de usuario que, sin tener capacidad de publicar artículos, pudiese moderar comentarios. Su necesidad venía motivada porque tenía a varios community managers en cuyas tareas estaba moderar comentarios, pero no publicar en el blog del cliente.

Ya imaginas mi respuesta: “Si, claro, en WordPress se puede hacer de todo, y de varias maneras

Ea, pues aquí mi respuesta completa …

1. Crear moderadores con Members

Mi primera opción fue el uso de Members, ese plugin que, entre otras cosas, te permite crear perfiles personalizados de usuario. Y, en este caso, la cosa era sencilla, solo había que crear un nuevo tipo de usuario que tuviera 2 capacidades:

  • Read

  • Moderate comments

Le ponemos el nombre que queramos y luego le asignamos el nuevo perfil a los usuarios que queramos nombrar moderadores.

2. Crear moderadores con WP Comments Moderators

Este plugin solo hace una cosa, y es que, una vez instalado y activo, permite definir como moderador a cualquier usuario registrado en tu WordPress.

Como te decía: Si, se puede, y además muy sencillo.




martes, 28 de febrero de 2012

6 excelentes herramientas para profesores y su gestión de clases

6 excelentes herramientas para profesores y su gestión de clases:

Inspirado en Mashable y varios de los ítems allí mencionados, he podido armar la siguiente lista con algunas brillantes herramientas dispuestas para usarlas vía web o bien desde el PC. El tema, esa labor tan importante y a la vez un poco compleja de manejar eficientemente: la gestión de las clases.


New Teacher GPS


New Teacher GPS

Una aplicación para iOS, de la editorial McGraw-Hill, en la que se comparten decenas de trucos e información (además de videos) para afrontar la labor de maestros con un poco de ayuda guía. Perfecta para quienes apenas inician a dar clases como también para los experimentados que quieran probar algunos cambios. Incluye también herramientas de gestión del tiempo y de tareas.


Teacher Aide Lite


Teacher Aide Lite

¿Y qué tal una app para llevar la información de los alumnos, comprobar su asistencia, comunicarse directamente con los padres (vía email o SMS), administrar los porcentajes de calificaciones y seleccionar automáticamente el perfil de un estudiante al azar o armar grupos de la misma manera? Pues ya existe, su nombre es Teacher Aide y funciona en dispositivos Android. Pobre en interfaz pero rica en funcionalidad, tanto así que exporta e importa en formato CSV.


Edutopia




Fundada por George Lucas, la fundación Edutopia recoge decenas de recursos de enseñanza (divididos por grados) facilitados por su comunidad de docentes y padres de familia: ideas, estrategias, conferencias, videos, testimonios, grupos, información sobre el trabajo emocional y el social, integración de tecnologías en el modelo educativo, organización de cada clase, etc.


TeacherVision


teacher vision

Similar a la anterior aunque todo el conocimiento aplicado. TeacherVision es un portal de contenido para maestros de todas las áreas del conocimiento a quienes ofrece, por una cuota mensual, lecciones, documentos, dibujos, cartillas, actividades para imprimir, libros, programas para cada clase y miles de recursos más. Una alternativa similar pero totalmente gratuita es BusyTeacher.


Evernote para el mundo académico


evernote para escuelas

Hemos hablado muchas veces de Evernote, la extraordinaria aplicación de notas, pero en esta ocasión aprovecho para destacar sus usos en el sector educativo. Para ello, Juan Diego ha creado una guía (la del enlace superior) resumiendo los 11 prácticos usos recomendados en un webinar de la compañía: desde organizar los temas de cada clase hasta compartir vía web los documentos, apuntes y tareas.


Prezi




Prezi es una revolución en cuanto a creación de presentaciones al llevar a un nuevo nivel las clásicas exposiciones con PowerPoint, LibreOffice Impress, Google Docs, ZOHO y los demás. En general es un gigantesco lienzo en el que podremos ir escribiendo o cargando todo tipo de material multimedia en cualquier ubicación, con la increíble posibilidad de definir la transiciones entre un elemento y otro (gracias a su poderosa herramienta de zoom) no necesariamente en sentido horizontal:


Sigue las noticias por twitter.com/wwwhatsnew, Facebook.com/wwwhatsnew o Google Plus.




Excluir categorías del RSS feed de WordPress

Excluir categorías del RSS feed de WordPress:

imagen de libro rss feed


Digamos que, por ejemplo, tienes un sitio web sobre divulgación científica pero, eventualmente publicas tus primeras fotos de paisajes en la categoría “fotografía“.

Como puedes imaginar, seguramente tus visitantes lo sean por tus artículos científicos, no por tus avances fotográficos, así que si se suscriben a tu feed RSS seguramente no les interesen tus fotos (toma nota Matt).

Pues bien, si quieres excluir alguna categoría del feed RSS es muy fácil, solo tienes que añadir este código a tu plugin de funciones o tu archivo functions.php del tema activo:


// Excluir categorías del feed
function excluirdelFeed($query) {
if ($query->is_feed) {
$query->set('cat','-8');
}
return $query;
}
add_filter('pre_get_posts','excluirdelFeed');

Donde la categoría “-8″ es el ID de la categoría que quieres excluir. Guardas los cambios y ya lo tienes.




Usa .htaccess como Firewall

Usa .htaccess como Firewall:

El fichero .htaccess es la primera línea de entrada de cualquier sistema web montado sobre Apache, así que también puede convertirse en la primera línea de defensa frente a ataques de hackers, inyecciones de código o intrusiones.

Además, como su construcción es ya veterana está muy documentada y fácil de configurar. Si usas WordPress y has cambiado la estructura de enlaces permanentes, ya tendrás (por lo menos) un fichero .htaccess en la carpeta raíz de tu instalación.

Las cadenas que añade WordPress suelen ser estas:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Y uno de los mejores, y más simples métodos de proteger tu WordPress es añadir reglas que bloqueen automáticamente peticiones basadas en cadenas en la URL.

Por ejemplo, no hay razón alguna (al menos buena) para que una URL empiece con un corchete “[". Solo hay dos motivos "normales", uno que sea un error de tecleo, y el otro que esté buscando agujeros de seguridad. Así que una primera regla a aplicar para evitar esto sería añadir una regla que provoque una página de error "403 Forbidden" a todo aquel que llegue a tu sitio con la URL comenzando con un corchete.


Añades esto al principio del archivo .htaccess y guardas los cambios:

RedirectMatch 403 \[

¿Quieres más?, pues estamos de suerte porque en Perishable Press han creado algo que han llamado el 5G Firewall, que viene a ser una lista de reglas para .htaccess que bloquea una buena cantidad de posibles atacantes que, en su versión actual, nos ofrece esto:


# 5G FIREWALL from PerishablePress.com

# 5G:[QUERY STRINGS]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (environ|localhost|mosconfig|scanner) [NC,OR]
RewriteCond %{QUERY_STRING} (menu|mod|path|tag)\=\.?/? [NC,OR]
RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
RewriteCond %{QUERY_STRING} echo.*kae [NC,OR]
RewriteCond %{QUERY_STRING} etc/passwd [NC,OR]
RewriteCond %{QUERY_STRING} \=\\%27$ [NC,OR]
RewriteCond %{QUERY_STRING} \=\\\’$ [NC,OR]
RewriteCond %{QUERY_STRING} \.\./ [NC,OR]
RewriteCond %{QUERY_STRING} \: [NC,OR]
RewriteCond %{QUERY_STRING} \[ [NC,OR]
RewriteCond %{QUERY_STRING} \] [NC]
RewriteRule .* – [F]
</IfModule>

# 5G:[USER AGENTS]
<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (casper|cmsworldmap|diavol|dotbot) keep_out
SetEnvIfNoCase User-Agent (flicky|ia_archiver|jakarta|kmccrew) keep_out
SetEnvIfNoCase User-Agent (libwww|planetwork|pycurl|skygrid) keep_out
<Limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=keep_out
</Limit>
</IfModule>

# 5G:[REQUEST STRINGS]
<IfModule mod_alias.c>
RedirectMatch 403 (https?|ftp|php)\://
RedirectMatch 403 /(cgi|https?|ima|ucp)/
RedirectMatch 403 (\=\\\’|\=\\%27|/\\\’/?|\)\.css\()$
RedirectMatch 403 (\,|//|\)\+|/\,/|\{0\}|\(/\(|\.\.\.|\+\+\+|\|)
RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
RedirectMatch 403 /(contac|fpw|install|pingserver|register)\.php
RedirectMatch 403 (base64|crossdomain|localhost|wwwroot)
RedirectMatch 403 (eval\(|\_vti\_|\(null\)|echo.*kae)
RedirectMatch 403 \.well\-known/host\-meta
RedirectMatch 403 /function\.array\-rand
RedirectMatch 403 \)\;\$\(this\)\.html\(
RedirectMatch 403 proc/self/environ
RedirectMatch 403 msnbot\.htm\)\.\_
RedirectMatch 403 /ref\.outcontrol
RedirectMatch 403 com\_cropimage
RedirectMatch 403 indonesia\.htm
RedirectMatch 403 \{\$itemURL\}
RedirectMatch 403 function\(\)
RedirectMatch 403 labels\.rdf
</IfModule>

Estas reglas incluyen la protección contra URLs con corchetes y, como puedes ver, muchísimo más.




Los nuevos virus informáticos, más discretos y peligrosos

Los nuevos virus informáticos, más discretos y peligrosos:

CONSUMER.ES

  • Antes, los virus atacaban más los procesos del ordenador.
  • Hoy buscan tomar el control del ordenador para que forme parte de una red de miles de ordenadores infectados.
  • En el ámbito doméstico, buscan robar información confidencial, como contraseñas y datos bancarios.
  • Sus ámbitos de actuación son diversos: aparte de correo electrónico, páginas de descargas y redes P2P, cada vez usan más la viralidad que otorgan las redes sociales.

Virus informático

Los virus informáticos, y en general todo software malicioso, han evolucionado con el paso de los años. Hoy, su peligrosidad es mayor y pasan más desapercibidos que los primeros.

Cambian las formas de infección

Antes, era habitual que el ataque tomara el control del ordenador, manipulara el ratón, aparecieran ventanas emergentes y los procesos se ralentizaran hasta hacer imposible el uso. Esto hace que muchos usuarios aún piensen que una infección de su ordenador puede detectarse mediante la observación de algunos de estos parámetros. Hoy, como indican desde Consumer, se ejecutan de forma discreta en los ordenadores de los usuarios, para pasar desapercibidos y continuar con su tarea encomendada que, suele ser, tomar el control del ordenador para que forme parte de una red de miles de ordenadores infectados conocida como botnet.

Desde esta, se realizan por la fuerza bruta todo tipo de actos delictivos a través de Internet, como robo de datos personales, usurpación de identidad en las cuentas bancarias o en las redes sociales, etc. También se utilizan como parte de guerras informáticas para tomar el control de equipos industriales concretos, como el virus Stuxnet, que infectó a varias centrales nucleares de Irán en 2010. Es muy posible que muchos usuarios en todo el mundo estemos infectados con este virus o alguna de sus variantes, pero el mismo no activará sus funciones en nuestros ordenadores, ya que no somos el objetivo prioritario. Y lo mismo puede ocurrir con muchos otros virus.

En el ámbito doméstico y empresarial

En el ámbito doméstico y empresarial, los virus actuales buscan robar información confidencial, como contraseñas de acceso a redes sociales, datos bancarios o documentos almacenados en la nube. Una de las puertas de entrada de los virus informáticos en ordenadores domésticos y empresariales han sido siempre los dispositivos externos de almacenamiento, como discos duros, memorias USB o discos ópticos. De hecho, el primer virus entró en los ordenadores de IBM a través de un disco del tipo 'floppy'.

Redes sociales

Los virus han visto en el desarrollo de las redes sociales más populares (como Facebook y Twitter) una vía de infección. Para ello emplean enlaces a webs maliciosas, desde las cuales se realiza la entrada en el ordenador. Con solo visitar esta página, si el usuario utiliza un navegador web con alguna vulnerabilidad o que no esté actualizado, este queda infectado. Además, este tipo de ataques también toman control de la sesión de la red social donde esté el usuario para enviar un mensaje personalizado a todos sus contactos con enlace a la página maliciosa. De esta forma, el virus se expande entre los contactos de la víctima mediante ingeniería social.

Esto no quiere decir que sean la principal puerta de entrada, ya que de hecho los virus siguen actuando desde el correo electrónico, páginas de descargas y redes P2P.

OSI, una página para asesorarse

Para minimizar los riesgos y prevenir problemas de seguridad, en España existe un servicio público ofrecido por la Oficina de Seguridad del Internauta (OSI) para usuarios domésticos y empresas. En la web del OSI, los ciudadanos pueden estar al tanto de las últimas noticias respecto a nuevos virus, alertas ante problemas de seguridad y recomendaciones de uso de nuevas plataformas y servicios on line.

Un ejemplo: el gusano Ramnit

En 2011, el gusano Ramnit infectó más de 800.000 de ordenadores de empresas y corporaciones entre septiembre y diciembre de 2011, mediante archivos ejecutables en el sistema operativo Windows, documentos ofimáticos de Microsoft Office y archivos en formato HTML. Este virus accede a las cookies del navegador del usuario para tomar los datos y contraseñas del mismo, en las sesiones de las diversas plataformas y servicios que estén abiertas. De esta forma consigue robar contraseñas de plataformas y redes sociales y suplantar la identidad del usuario para engañar a sus contactos. Se calcula que Ramnit ha robado más de 45.000 contraseñas de Facebook. Entre otras acciones, Ramnit utiliza estas redes para enviar mensajes privados a otros usuarios, con enlace a páginas maliciosas donde colarle el gusano y continuar su expansión. Todos los datos robados de este modo son recopilados por mafias criminales, que los venden en mercados negros digitales, a grandes precios, a ciertas empresas de marketing y publicidad.



Trabaja diferente, Redes corporativas y comunidades profesionales: ebook en libre descarga

Trabaja diferente, Redes corporativas y comunidades profesionales: ebook en libre descarga:

A falta de un par de entradas que completan la serie sobre sesgos cognitivos que iniciábamos hace unos días me llevo una agradable sorpresa al conocer la traducción al castellano de un libro en el que participaba hace un tiempo: Trabaja diferente. Redes corporativas y comunidades profesionales.

En el capítulo 4 tenéis mi aportación sobre Dinamización de comunidades en la sociedad-red pero seguro que el libro completo vale la pena. Dejo enlaces a distintas versiones y queda en la barra lateral del blog:

Versión en PDF (4,6 MB). Febrero 2012

Versión en EPUB (2,1 MB)

trabajadiferente


Versió catalana: Treballa diferent


Discos en red para crear una nube privada

Discos en red para crear una nube privada:

Los discos duros en red o NAS, que hasta hace poco eran caros y para uso local, son ahora muy sencillos de utilizar, se acceden desde Internet y cuestan casi lo mismo que un disco duro normal de la misma capacidad. Basta con conectarlos directamente al router para generar una dirección IP en Internet y crear una copia de toda la información que se quiera. Estos archivos son accesibles desde cualquier ordenador, tableta o teléfono inteligente conectado a Internet; incluso se pueden compartir carpetas con terceros a los que se les haya dado el derecho de acceso y la contraseña.

Se trata de un sistema de almacenamiento en la nube, tipo Dropbox o similar, con la diferencia de que la información está almacenada en una unidad de disco propia, que se ha comprado y se tiene físicamente en casa o en la oficina. No hay que pagar cuotas mensuales por su uso y solo puede subir o bajar información, desde cualquier acceso a Internet, quien tenga autorización. Con el cierre de Megaupload y sus consecuencias, se prevé que aumente la demanda de estos dispositivos, porque ahora son mucho más asequibles y a prueba de todo tipo de intrusos. Se les llama de “nube privada” para distinguirlos de los sistemas de “nube pública” a un servidor situado no se sabe dónde.

Al conectar el disco de red al router, el programa suministrado genera una IP y una contraseña en el ordenador principal, desde el que se controla la copia de archivos al disco de red y a los usuarios y terminales que tengan acceso. Los archivos estarán disponibles a través de Internet desde cualquier terminal que haya recibido la autorización, con la IP y contraseña. En cada escritorio autorizado habrá un icono para acceder directamente al disco de red y también se puede tener una copia en el ordenador de toda o parte de la información, constantemente actualizada. Cuando varias personas trabajan en un mismo documento, este sistema es muy útil porque se tiene acceso directo o remoto a la última versión compartida. A las ventajas de contar con una copia de salvaguarda se añaden así la de tenerla en red.

Existen varios fabricantes de estos discos que se conectan al router, conocidos genéricamente como discos NAS (de Network Attached Storage). Los modelos más conocidos y disponibles en tiendas españolas son el MyBook Live de Western Digital y el Home Media Network de Iomega, ambos con un programa de creación de nube privada. Otros fabricantes con productos similares son Freecom, Plextor, D-Link o Netgear, entre otros. Típicamente tienen una capacidad de dos, tres o cuatro terabytes, a unos 100 euros por terabyte (un terabyte son 1.000 gigabytes). En el caso de que se necesite mayor capacidad, siempre se puede conectar un disco externo al puerto USB del disco en red.

Estos discos reproducen cualquier archivo multimedia, sean imágenes, películas o música, y además funcionan bajo el protocolo DLNA. De esta forma, por ejemplo, se puede ver una película almacenada en el disco desde el televisor del hogar conectado a Internet o bien desde cualquier sitio con un ordenador o tableta. Como las tabletas actuales tienen una capacidad reducida, normalmente de 32 gigabytes, con un disco en red se puede acceder remotamente a todo el archivo privado. Existen aplicaciones para bajarse los archivos tanto de un teléfono Android como de un iPhone. Los discos en red funcionan indistintamente con Windows, Mac o Linux.

Existen versiones de discos de red más profesionales, como los ix2, ix4, px4 y px6 en el caso de Iomega o el Sentinel de Western Digital. Alojan estos equipos dos, cuatro o seis discos físicos, con lo que se pueden programar para que hagan una copia duplicada de la información y evitar cualquier fallo o bien tener el doble de capacidad. La carcasa de estos equipos profesionales es más robusta y el programa admite más posibilidades, como copias remotas entre distintos discos en red, útiles para empresas con varias delegaciones.

Desde enero, los discos duros ya no pagan el canon, con lo que resultan más económicos. Sin embargo, en las últimas semanas ha habido alguna escasez de producto y aumento de precios como consecuencia de las inundaciones el pasado noviembre en Tailandia, donde existen muchas fábricas de discos que quedaron inservibles. La producción ya se ha restablecido y se espera que muy pronto los suministros estén totalmente normalizados.

Cómo subir archivos con Ajax en HTML5

Cómo subir archivos con Ajax en HTML5: Sí, leíste bien, no es "ajax" disfrazado de Flash o de iFrames, es Ajax. Para lograr esto tenemos que hacer uso de varios poderosos luchadores en forma de APIs que nos ofrece HTML5 (o al menos) los navegadores más actualizados.

Antes que nada me gustaría ofrecer una breve introducción a la tercia ganadora que hará que esto sea posible.

1.- El objeto FormData


Según la MDN el objeto FormData nos permite compilar un conjunto de datos de forma clave/valor para ser enviados vía XHR "Super Saiyajin" o XHR Nivel 2. Estos datos son enviados como cualquier otro, o también usando el método .$ajax({}) de jQuery.

2.- El objeto FileReader


Por medio de este objeto podremos mostrar la imagen subida. La referencia a FileReader también aquí

3.- XHR


Y bueno, sin esto prácticamente no tendría caso el tutorial. Es una de las mejoras en el objeto XHR. Aquí más info sobre él.

Basta de tantas introducciones y veamos cómo se desarrolla la lucha. Es poco código, y se mira feo pero representa bien lo que se quiere mostrar. Sólo necesitamos un archivo con el etiquetado, otro con el javascript y uno para recoger y guardar las imágenes en el servidor; y obvio la carpeta donde se guardarán las imágenes.

El HTML

Código :


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
</head>
<body>
<div class="content">
<input type="file" id="images" name="images[]" />
<button id="btnSubmit">Subir archivo</button>
<ul id="lista-imagenes">

</ul>
<div id="response"></div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="/js/upload.js"></script>
</body>
</html>


El javascript.

Código :


(function(){
var input = document.getElementById('images'),
formdata = false;

function mostrarImagenSubida(source){
var list = document.getElementById('lista-imagenes'),
li = document.createElement('li'),
img = document.createElement('img');

img.src = source;
li.appendChild(img);
list.appendChild(li);
}

//Revisamos si el navegador soporta el objeto FormData
if(window.FormData){
formdata = new FormData();
document.getElementById('btnSubmit').style.display = 'none';
}

//Aplicamos la subida de imágenes al evento change del input file
if(input.addEventListener){
input.addEventListener('change', function(evt){
var i = 0, len = this.files.length, img, reader, file;

document.getElementById('response').innerHTML = 'Subiendo...';

//Si hay varias imágenes, las obtenemos una a una
for( ; i < len; i++){
file = this.files[i];

//Una pequeña validación para subir imágenes
if(!!file.type.match(/image.*/)){
//Si el navegador soporta el objeto FileReader
if(window.FileReader){
reader = new FileReader();
//Llamamos a este evento cuando la lectura del archivo es completa
//Después agregamos la imagen en una lista
reader.onloadend = function(e){
mostrarImagenSubida(e.target.result);
};
//Comienza a leer el archivo
//Cuando termina el evento onloadend es llamado
reader.readAsDataURL(file);
}

//Si existe una instancia de FormData
if(formdata)
//Usamos el método append, cuyos parámetros son:
//name : El nombre del campo
//value: El valor del campo (puede ser de tipo Blob, File e incluso string)
formdata.append('images[]', file);
}
}

//Por último hacemos uso del método proporcionado por jQuery para hacer la petición ajax
//Como datos a enviar, el objeto FormData que contiene la información de las imágenes
if(formdata){
$.ajax({
url : 'php/upload.php',
type : 'POST',
data : formdata,
processData : false,
contentType : false,
success : function(res){
document.getElementById('response').innerHTML = res;
}
});
}
}, false);
}
}());


De pasadita el php para recoger y guardar la imagen

Código :


<?php
foreach($_FILES['images']['error'] as $key => $error){
if($error == UPLOAD_ERR_OK){
$name = $_FILES['images']['name'][$key];
move_uploaded_file($_FILES['images']['tmp_name'][$key], 'uploads/' . $name);
}
}

echo "<h2>Archivos correctamente subidos</h2>";
?>


Si quieren subir más de una imagen solo es necesario aplicar el atributo múltiple a la etiqueta input file.
Por último es cuestión de cada desarrollador agregar un "drag&dropeo", progressbar, validaciones o previas de las imágenes.

Recomendado


Me gustaría recomendar un plugin hecho en jQuery que hace todo lo del tutorial y más. Si lo tendría que comparar con un luchador, sería Mil Máscaras sin duda alguna, hace de todo y es muy personalizable además de tener una muy buena documentación, aderezado con el framework bootstrap de Twitter, una joyita.

Espero que les haya gustado mi primer tutorial y para aclarar algunas cosas que creo se han dado en el foro. El Semántico no es una persona, es un personaje y creo debe tomarse como tal, la cuestión es divertirse y tomar gracia de todo.

Gracias :)

Enviar comentario



Guardar en disco con HTML5 y Javascript: SessionStorage y LocalStorage

Guardar en disco con HTML5 y Javascript: SessionStorage y LocalStorage: Si hay algo que siempre se extrañó de HTML es en alguna forma de almacenar datos, que ayude al usuario a una mejor movilidad mientras navega nuestras páginas. Esto se puede lograr mediante el uso de las llamadas cookies, el problema es que tiene ciertas restricciones. Ya con HTML5 y Javascript esto se puede lograr mediante un atributo del DOM llamado sessionStorage que se utiliza como objeto global de Javascript, el cual dispone de métodos que nos ayudan a manipular los datos que queramos utilizar.

SessionStorage vs Cookies


Otra opción a las cookies sería el objeto SessionStorage, con el cual podríamos tener disponible los datos almacenados por todas las páginas web del mismo sitio, con el cual hacer algo parecido a las Sessiones de PHP.
En Internet Explorer 8, el espacio disponible de almacenamiento de SessionStorage es de 8MB a comparación de los 4KB de las cookies.

Ejemplo : Una forma de guardar datos con javascript.

Código :


//guardando una cadena
sessionStorage.miNombre = 'Franz Wilder';

//otra forma de guardar
sessionStorage['valor'] = 'Franz';

// devuelve 'Franz Wilder'
console.log( sessionStorage.miNombre );


¿Cuales son los métodos?


setItem


Este método se utiliza para almacenar datos en una clave especificada. Si el dato se guarda en una clave ya existente, entonces se sobrescribe el dato guardado.

Código :


//guardando datos
sessionStorage.setItem('miClave','Franz');
sessionStorage.setItem('miLLave','Escorpio');


getItem


Este método devuelve el valor del dato guardado en una clave dada, pero devuelve null si la clave no existe.

Código :


//guardando datos
sessionStorage.miClave = 'Franz';
//otra manera de guardar datos
sessionStorage.setItem('miLLave','Renzo');

// recuperando los datos
var dato1 = sessionStorage.getItem('miClave'); // dato1 = 'Franz'
var dato2 = sessionStorage.getItem('miLLave'); // dato2 = 'Renzo'


//el valor de variable es NULL porque 'miKey' no es una clave existente
var variable = sessionStorage.getItem('miKey');


length


Este método devuelve el número de datos guardados.

Código :


//guardando datos
sessionStorage.setItem('miLlave','Franz');
sessionStorage.setItem('miClave','Renzo');
sessionStorage.setItem('miKey','Paul');

var total = sessionStorage.length; //total = 3


removeItem


Este método elimina el dato de una clave específica.

Código :


sessionStorage.setItem('miClave','Franz');
sessionStorage.getItem('miClave'); // devuelve 'Franz'

sessionStorage.removeItem('miClave');
sessionStorage.getItem('miClave'); // devuelve NULL


clear


Este método elimina todo el espacio de almacenamiento. Todas las claves se eliminan.

Código :


sessionStorage.setItem('miClave','Franz');
sessionStorage.setItem('miLLave','Renzo');
sessionStorage.length; // devuelve 2

//borrando
sessionStorage.clear();
sessionStorage.length; // devuelve 0


¿y LocalStorage?


Es igual al objeto sessionStorage incluso con los mismos métodos, con la diferencia en que los datos se mantienen así hayamos cerrado la pestaña o el navegador.

¿Mi navegador es compatible?


Aunque parezca mentira sessionStorage funciona en todos los navegadores incluso en Internet Explorer ! (8.0 +)
Si quieres comprobar la compatibilidad con el navegador puedes usar este código.

Código :


if(typeof(Storage)!=="undefined"){
alert('Funciona');
}
else{
alert('MOG! usas IE 6 o 7?');
}


Tus visitantes usan IE6 o 7? entonces estos códigos es la solución.

¿Y qué pasa si se supera la capacidad de almacenamiento?
Para ese caso podemos enfrentar esta situación capturando el error.

Código :


try {
localStorage.setItem('valor', 'Franz');
}
catch (e) {
if (e == QUOTA_EXCEEDED_ERR) {
alert('Ha excedido el almacenamiento!');
}
}


¿Qué almacenan estos objetos globales?


Lamentable los datos almacenados son guardados como cadenas y al recuperarlo con el método getItem( ) se obtienen cadenas.

Código :


localStorage.setItem('franz1',[2,3,6]);
localStorage.setItem('franz2',2);
localStorage.setItem('franz3','cadena');
localStorage.setItem('franz4',{nombre:'franz'});

console.log(localStorage.getItem('franz1')); // "2,3,6"
console.log(typeof(localStorage.getItem('franz1'))); // string

console.log(localStorage.getItem('franz2')); // "2"
console.log(typeof(localStorage.getItem('franz2'))); // string

console.log(localStorage.getItem('franz3')); // "cadena"
console.log(typeof(localStorage.getItem('franz3'))); // string

console.log(localStorage.getItem('franz4')); //"[object Object]"
console.log(typeof(localStorage.getItem('franz4'))); // string


Como se puede ver en el ejemplo, todos los datos guardados se convierten en cadena, incluso los objetos se guardan como en forma de cadena "[object Object]". Para solucionar esto hacemos uso de los métodos JSON.stringify (convierte el valor a puro texto) y JSON.parse (analiza la cadena y devuelve el valor analizado).

Código :


//creando el objeto
var objeto = {nombre:'Franz', color:'Azul'};
//JSON.stringify(objeto) => "{nombre:'Franz', color:'Azul'}"
objeto = JSON.stringify(objeto);
//guardando como string
localStorage.setItem('miObjeto',objeto);
//recuperando como string
var resultado = localStorage.getItem('miObjeto');
//JSON.parse convierte a objeto
objeto = JSON.parse(resultado);
//devuelve "object"
console.log(typeof objeto);


Mira el ejemplo aquí
Gracias

Enviar comentario



Un despiste le hace perder a Telecinco el dominio www.mediaset.com

Un despiste le hace perder a Telecinco el dominio www.mediaset.com: Telecinco ha perdido el dominio www.mediaset.com en beneficio de una persona o empresa que responde al nombre Didier Madiba, al pasársele el periodo de renovación.

El grupo mediático ha reconocido la pérdida del dominio a lainformacion.com pero ha apuntado en una declaración oficial que lucharán por recuperarlo: "En Italia la compañía trabaja con Mediaset.it y en España tenemos registrado Mediaset.es, por lo que este asunto no afecta al desarrollo de la compañía en Internet. Pese a ello, confíamos en recuperar en los tribunales italianos el dominio .com".

El analista independiente, Jaime Cantero, le quita también hierro al asunto pero con cautela: "Es cierto que Mediaset va a perder tráfico internacional, porque cuando alguien escriba en Google Mediaset será redireccionado directamente a www.mediaset.com, pero en el momento que el internauta descubra que no es ahí a donde se quiere dirigir, buscará otras alternativas".

En la actualidad, al teclear www.mediaset.com, el usuario es redireccionado a una web en la que aparece una página en blanco y la leyenda coming soon, en castellano, "muy pronto".

Llueve sobre mojado

Las luchas por el dominio Mediaset.com, no son nuevas. En el año 2008, la compañía perdió el dominio y lo pudo recuperar a través de un procedimiento arbitral en el que se demostró que se había registrado por un tercero y se estaba usando con mala fe, con fines comerciales y creando un riesgo de confusión.

En esta ocasión, para intentar recuperar el dominio .com la empresa Mediaset alegó que el nombre del dominio es idéntico al de sus marcas, y que el dominio se había adquirido con mala fe.

Para ello, argumentó lo siguiente: “el nombre de dominio está inactivo, la identidad del propietario se oculta por un servicio de privacidad, y las marcas de Mediaset tienen una sólida reputación”.

La empresa ocupante (y demandada) afirmó que con la adquisición del dominio no trataba de competir con Mediaset, interrumpir su actividad, o aprovecharse de su marca y el organismo arbitral le ha dado la razón al declarar que el nombre del dominio Mediaset es genérico y que, por el momento, el nuevo propietario no lo está utilizando en contra de los intereses de la empresa Mediaset, generando confusión o desventaja.

Desde el despacho de abogados www.salirdeinternet.com señalan que tener registradas las marcas no es concluyente para impedir el registro de un dominio, pues debe probarse la confusión, la confrontación de intereses y la mala fe, pero que a efectos de previsión es importante el registro de marcas asociadas al dominio, así como contratar servicios de renovación automática de dominios.

¿Cuántas visitas recibirá Mediaset.com directamente o desde Google, por personas que busquen los contenidos de la empresa Mediaset?

Dropbox para Android ya sube automáticamente nuestras fotos a la nube

Dropbox para Android ya sube automáticamente nuestras fotos a la nube:

Semejante a lo que hace Google Plus con su Instant Upload para dispositivos android, el popular Dropbox anuncia esta función en su blog.

De momento para Android, y próximamente para iOS, las fotos y vídeos que realicemos desde el móvil podrán ser subidas automáticamente a nuestra cuenta de Dropbox, quedando guardadas inmediatamente en Internet, sin necesidad de ninguna acción por parte del usuario.

El material se guardará en un directorio llamado Camara uploads, respetando su tamaño y resolución original, siendo posible enviarlo tanto por WiFi como vía plan de datos.

También recuerdan que la nueva versión para Windows y Mac ya incluye lo que anunciamos hace unas semanas, siendo posible subir el contenido de nuestras cámaras, SDs y teléfonos nada más conectarlos a la puerta USB.

Para celebrar estas funciones, regalan 500 megas de espacio por cada 500 megas subidos de esta forma, hasta un máximo de 3 gigas de espacio por cuenta.



Sigue las noticias por twitter.com/wwwhatsnew, Facebook.com/wwwhatsnew o Google Plus.




jueves, 23 de febrero de 2012

Usabilla Discover – Para guardar los diseños HTML que más nos gusten de la web

Usabilla Discover – Para guardar los diseños HTML que más nos gusten de la web:

Si estamos navegando por un sitio que tiene una forma de mostrar listas especialmente interesante, o una bonita manera de publicar galerías, o de incluir marcos en sus imágenes… cualquier componente html que veamos y que nos llame la atención, podremos ahora guardarlo en nuestra cuenta de Usabilla Discover.

Solo tenemos que incluir el bookmarklet en nuestro navegador y pulsarlo cuando veamos algo de interés. En ese momento podremos seleccionar cualquiera de los elementos existentes en el sitio, permitiendo clasificarlo y guardarlo en nuestro perfil.

El resultado es un flujo de componentes HTML que recuerda a la forma que tiene Pinterest de mostrar imágenes, existiendo la posibilidad de navegar por los elementos más populares de dicha web.

Usabilla se encuentra en fase beta cerrada, siendo necesario pedir invitación en su página principal.

Os dejo con el vídeo de presentación:


Link: Discover Usabilla | Via TNW



Patrocina WWWhatsnew: Vuelos Baratos


Hospedado en RedCoruna