node.js socket.io: crear session por socket autenticado

Bueno pues seguimos avanzando con node.js y socket.io, lo empezamos en este post:
http://hispabyte.net/2011/12/crear-un-chat-con-node-js-y-socket-io/

functions.js:

module.exports =
{
        in_array: function (needle, haystack, argStrict)
        {
                // Checks if the given value exists in the array
                //
                // version: 1109.2015
                // discuss at: http://phpjs.org/functions/in_array    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
                // +   improved by: vlado houba
                // +   input by: Billy
                // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
                // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);    // *     returns 1: true
                // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
                // *     returns 2: false
                // *     example 3: in_array(1, ['1', '2', '3']);
                // *     returns 3: true    // *     example 3: in_array(1, ['1', '2', '3'], false);
                // *     returns 3: true
                // *     example 4: in_array(1, ['1', '2', '3'], true);
                // *     returns 4: false
                var key = '',        strict = !! argStrict;

                if (strict)
                {
                        for (key in haystack)
                        {
                                if (haystack[key] === needle)
                                {
                                        return true;
                                }
                        }
                }
                else
                {
                        for (key in haystack)
                        {
                                if (haystack[key] == needle)
                                {
                                        return true;
                                }
                        }
                }
                return false;
        }
};

server.js:

var functions = require('./functions');

var users_available = ['zital', 'hqh'];
var clients = {};

var server = require("socket.io").listen(6969);

server.sockets.on("connection", function(message)
{
        message.on("login", function(user)
        {
                if(functions.in_array(user, users_available))
                {
                        clients[message.id] = message;
                        clients[message.id].emit("isLogged");
                }
        });

        message.on("newMessage", function(data)
        {
                for(i in clients)
                        clients[i].emit("sendMessage", data);
        });

        message.on("logout", function()
        {
                var tmp = {};
                for(i in clients)
                {
                        if(i!=message.id)
                                tmp[i] = clients[i];
                }
                clients = tmp;
        });
});

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Online chat</title>
<style>
body
{
    color: #fff;
    background: #333;
    font-family: "Helvetica", Arial;
    font-size: 14px;
    text-align: center;
}
.container
{
    background: #ccc;
    border-radius: 1em;
    box-shadow: 0px 5px 5px rgba(0,0,0,0.5);
    text-shadow: 5px 5px 5px rgba(0,0,0,0.5);
    margin: 1em auto;
    padding: 1em;
    width: 90%;
}

input
{
    display: block;
    font-size: 12px;
    margin: 1em auto;
    padding: 0.5em;
    width: 95%;
}

span
{
    display: block;
    font-size: 12px;
    margin: 1em auto;
    padding: 0.5em;
    width: 95%;
    text-align: left;
}
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="socket.io.js"></script>
<script type="text/javascript">
<!--
// PONED VUESTRA IP PUBLICA AQUÍ
var websocket = io.connect("http://10.211.252.10:6969");

$(document).on('ready', function()
{
    $('#f_user').css('display', 'none');
    $('#f_message').css('display', 'none');
    $('#login').trigger('focus');

    websocket.on("isLogged", function()
    {
        var login = $('#login');
        var user = login.val();

        $('#f_user > label').html('welcome: '+user);        

        $('#f_user').css('display', 'block');
        $('#f_message').css('display', 'block');
        $('#f_login').css('display', 'none');

        $('#message').trigger('focus');
    });

    websocket.on("sendMessage", function(data)
    {
        var chat = $('#zchat');
        var span = $('<span>'+data+'</span>');

        if (chat.children().length > 0 )
            chat.find(">:first-child").before(span);
        else
            chat.append(span);
    });

    $('#f_user').on('submit', function(e)
    {
        e.preventDefault();
        websocket.emit("logout", {});
        $('#f_user').css('display', 'none');
        $('#f_message').css('display', 'none');
        $('#f_login').css('display', 'block');
    });    

    $('#f_login').on('submit', function(e)
    {
        e.preventDefault();
        websocket.emit("login", $('#login').val());
    });       

    $('#f_message').on('submit', function(e)
    {
        e.preventDefault();
        websocket.emit("newMessage", $('#message').val());
        $('#message').val('');
        $('#message').trigger('focus');
    });
});
//-->
</script>
</head>
<body>
<div>
    <form id="f_user">
        <label></label>
        <input type="submit" value="logout" />
    </form>
    <form id="f_login">
        <label>login: </label>
        <input type="text" name="login" id="login" required />
        <input type="submit" />
    </form>
    <form id="f_message">
        <label>Message: </label>
        <input type="text" name="message" id="message" required />
        <input type="submit" />
    </form>
</div>
<div id="zchat">
</div>
</body>
</html>

socket.io.js:
http://pastebin.com/shJTm0JE

Para ponerlo en marcha:
los ficheros server.js y functions.js tienen que estar en el mismo path y index.html y socket.io.js también :)
Arrancamos:

node server.js

Desde el navegador abrimos el fichero: index.html es preferible tirando desde un servidor web, ya que de lo contrario puede que no funcione en algunos navegadores.

¿Dónde está el truco? En la variable clients vamos añadiendo los sockets que son permitidos, siempre en cuanto el usuario sera “zital” o “hqh” se podrá entrar de lo contrario no, para leer los mensajes también es obligatorio estar logueado. Luego con logout se quitan el socket correspondiente de la variable clients y ya no le llegarán los mensajes hasta que no se loguee.

Post to Twitter

Posted in Internet, Programacion | Tagged , , , , , , | Leave a comment

Publicado The Debian Administrator’s handbook

Se ha publicado  The Debian Administrator’s  handbook, libro de referencia para administradores Debian y de sistemas Linux en general.

Abarca la mayoria de los temas que un administrador debe conocer, instalación, actualización del sistema, uso de herramientas y otras tareas de caracter avanzado.

Se ha liberado bajo la licencia pública general de GNU.

Podeis obtenerlo aqui, en multitud de formatos (PDF, ePUB, Mobi…) : http://debian-handbook.info/

Post to Twitter

Posted in Gnu / Linux, Seguridad, Sistemas Operativos, Software, sysadmin, Tutoriales / Manuales | Tagged , , , , , , , , , , | Leave a comment

Holanda garantizará por ley la neutralidad de la red

Holanda adoptó una nueva legislación que proteje el carácter neutro de la Web con varias disposiciones de protección de los usuarios frente a posibles desconexiones y control del contenido del tráfico por parte de los proveedores de servicio.

La Ley permite, además, la gestión del tráfico en caso de congestión de la red o por motivos de seguridad, pero -y éste es un matiz muy importante- siempre y cuando se realice en interés del usuario.

La normativa también incluye disposiciones que limitan las escuchas telefónicas y las restricciones debido al uso, por ejemplo, de voz sobre IP (VoIP) por parte de los provedores de Internet, al restringir la inspección profunda de paquetes (DPI), que se podráp poner en práctica en escasas ocasiones o con consentimiento previo del cliente .

Por último, sólo se podrá deconectar a un cliente en caso de fraude o cuando no pague su factura de Internet, a diferencia de lo que sucede ahora, que casi todos los proveedores se reservan el derecho (en sus términos y condiciones) de deconectar a los usuarios por un reliativamente amplio abanico de razones.

Los posibles errores técnicos del texto de la Ley aún pueden ser corregidos en una votación el próximo 15 de mayo.

En España, hace dos años el Senado rechazó una moción presentada por el Partido Popular para pedir al Gobierno que se garantizara el principio de neutralidad de red en España. El PP, que gobierna ahora con mayoría absoluta, planea volver a impulsar alguna iniciativa en este sentido, pero aún no está concretada.

FUENTE : http://www.elmundo.es/elmundo/2012/05/09/navegante/1336572014.html

Post to Twitter

Posted in Internet, Redes | Tagged , , , , , , | Leave a comment

The Pirate Bay: será bloqueado en Reino Unido

La lucha contra The Pirate Bay, el buscador de enlaces en la red P2P BitTorrent, se intensifica en Europa. El último país en decidir judicialmente su bloqueo ha sido Reino Unido tras la denuncia de la industria discográfica, que acusa al portal de destruir empleos e impedir la progresión de artistas noveles en el país británico.

Hace una semana conocíamos la última decisión de un tribunal sobre The Pirate Bay. Era en Finlandia donde el juez abría la puerta a que los usuarios del buscador de enlaces fuesen identificados por los titulares de derechos de autor para proceder a demandarles. Un par de meses antes los tribunales holandeses habían decretado la obligación hacia los principales operadores de banda ancha del bloqueo de la web basándose en la acusación de la industria, que ve a la página como un foco de piratería.

Las malas noticias siguen sucediéndose en 2012 para el portal sueco, que ahora ve cómo será bloqueado en Reino Unido por decisión del Alto Tribunal británico. Según informa BBC, los operadores Sky, Everything Everywhere, TalkTalk, O2 y Virgin deberán impedir que sus usuarios accedan a The Pirate Bay, confirmando la acusación de “infracción del copyright a gran escala” perpetrada por el buscador. La industria discográfica británica se ha felicitado por la acción, ya que ha logrado por la vía judicial lograr algo a lo que en principio se opusieron los operadores.

El representante del sector no ha dudado en afirmar que “sitios como The Pirate Bay destrozan empleos y obstaculizan las carreras musicales de jóvenes talentos de Reino Unido”. “Los creadores de The Pirate Bay se lucran explotando comercialmente música y otras creaciones sin pagar un penique a la gente que las ha creado”, asegura su portavoz, quien considera que “músicos, técnicos de sonido y editores de vídeo merecen ser pagados por su trabajo como todo el mundo”.

Los operadores no tendrán más remedo que acatar la sentencia, pero Virgin ya ha avisado a la industria musical. “Como operador responsable que somos, cumpliremos con la orden judicial pero creemos firmemente que para evitar las infracciones del copyright también es necesario que se creen alternativas legales, como demuestra nuestro acuerdo con Spotify, que proporciona a los usuarios el acceso a contenidos a un precio asequible”, declaró el representante de la compañía.

Habrá que ver si The Pirate Bay se convierte en la primera web extranjera que también se bloquea en España por este motivo, una opción que figura dentro del margen de maniobra de la Ley Sinde-Wert. No sería de extrañar que la persecución internacional que sufre el portal aterrizase dentro de nuestras fronteras en cuestión de meses.

FUENTE  : http://www.adslzone.net/article8497-se-estrecha-el-cerco-sobre-the-pirate-bay-sera-bloqueado-en-reino-unido.html

Post to Twitter

Posted in Internet, Redes, Redes sociales, Webmaster | Tagged , , , , , , , , , | Leave a comment

Disponible Ubuntu 12.04 LTS (Precise Pangolin)

Esta disponible la nueva version de Ubuntu 12.04 LTS (Precise Pangolin). Ubuntu es una de las distribuciones de Linux mas extendida y en teoria busca ser fácil de manejar para los usuarios menos expertos.

Es una version estable y final. La principal novedad es quese incluye Unity 5.0.

Podeis obtenerla aqui : http://releases.ubuntu.com/12.04/

Post to Twitter

Posted in Gnu / Linux, Sistemas Operativos | Tagged , , , , , | Leave a comment

Google Drive ya es una realidad

Google ha creado Google Drive,  un sistema pionero para compartir datos en la nube. El espacio por ahora es de 5GB mas que suficiente para guardar nuestros datos personales.

Ideal para guardar datos y poder acceder a ellos desde donde quieras (Ejemplo : material de estudio , proyectos de programacion, etc…)

Podeis acceder en  https://drive.google.com/

Post to Twitter

Posted in Hardware, Internet, Redes, Redes sociales | Tagged , , , , , , , , , | Leave a comment

Linux, el triunfo silencioso

Cuando navega por Internet, utiliza Linux. Cuando busca en Google, chismorrea en Facebook o juguetea con su teléfono Android —850.000 se activan a diario—, también usa este sistema operativo. Y cuando ve una película en el avión, saca dinero del cajero, le da al mando a distancia de la tele… Linux está en el corazón de múltiples actividades cotidianas, aunque no sea consciente.

El sistema operativo abierto más implantado en el mundo y motor del movimiento del software libre no está, sin embargo, masivamente instalado en los ordenadores de sobremesa donde reina Windows (Microsoft) con un 92% de cuota de mercado. Al igual que en los noventa, cuando Linus Torvalds (Helsinki, 1969) desarrolló Linux. El viernes la Academia de Tecnología de Finlandia reconocía a su compatriota por crear un sistema de “gran impacto en el desarrollo de los programas abiertos, el trabajo en red y la apertura de la Web para hacerla accesible a millones de personas”.

Torvalds tenía 21 años y estudiaba ingeniería informática en la Universidad de Helsinki en 1991. En su habitación empezó “un pequeño proyecto, un divertimento para aprender. Pero resulta que hacía todo lo que un sistema operativo debe hacer”.

El joven subió la primera versión de Linux a la Red y el boca a boca digital hizo el resto con un sistema protegido bajo la Licencia Pública General (GPL), que permite su uso, copia, modificación y libre distribución. A diferencia de otros, Linux mejora de forma colaborativa. Cerca de 8.000 desarrolladores y 800 compañías han contribuido en sus 15 millones de líneas de código desde 2005. La Ilíada, de Homero, tiene 15.000. Y cada tres meses sale una nueva versión del núcleo bajo la supervisión de Torvalds.

“Con Linux se dieron por primera vez las condiciones para que cualquiera instalase y utilizase un sistema operativo modificable”, explica Miguel Jaque, director del Centro Nacional de las Tecnologías basadas en fuentes abiertas (Cenatic). “Podías saber cómo funcionaban sus líneas de código. Se acabó el secreto. Y empezó el auge del software libre”.

Veinte años después no ha conseguido colarse en los ordenadores domésticos (0,98% de cuota mundial según Netmarketshare), pero reina en móviles, empresas, centros de datos, entornos críticos y en la infraestructura de la Red. El 80% de las transacciones bursátiles se realizan en sus plataformas y 9 de cada 10 superordenadores llevan el símbolo del pingüino en su interior. Hasta televisiones y coches. El 25% de su coste ya es software y en cuatro años será el 75%. De ahí que gigantes como General Motors, BMW, Hyundai, PSA Peugeot Citroën y Renault-Nissan construyan una plataforma abierta para los sistemas de entretenimiento e información (consorcio Genivi).

En España, Administración y comunidad educativa han liderado su avance. El 83% de organismos públicos tiene instalado algún tipo de software abierto, sin olvidar que Extremadura se puso a la cabeza en ordenadores por alumno gracias a Linex en el lejano 2003. Lo sigue usando, aunque no lo predique tanto. Una marea que se trasladó a Andalucía y Cataluña (Lincat) entre otras siete autonomías. El Guadalinex andaluz atiende hoy a 1.800.000 alumnos de 5.882 colegios con una red de 640.000 PC y 4.200 servidores.

¿Ventajas? “Reduces costes, porque la licencia es gratuita; cambias de proveedor sin problemas y personalizas todos sus componentes”, dice Jaque. El Ayuntamiento de Múnich ha ahorrado un tercio de su presupuesto tecnológico (4 millones de euros) y ahora, en época de crisis, se podría ahorrar más si las Administraciones “compartieran y reutilizaran los recursos informáticos”. En 2011, según el Cenatic, el 46% de ellas crearon sus programas, pero solo el 18% los liberaron.

FUENTE : http://tecnologia.elpais.com/tecnologia/2012/04/22/actualidad/1335117737_156353.html

Post to Twitter

Posted in Gnu / Linux, Internet, Sistemas Operativos | Tagged , , , , , , | Leave a comment

Nuevos cursos gratuitos online en Udacity.com

Hoy 17 de abril estan disponibles los nuevos cursos de la plataforma de formación Udacity. Esta plataforma ofrece formación gratuita de la mano de grandes expertos (gente de la universidad de Stanford, gente que ha trabajado en Google, etc..). Su metodología es buenisima con materiales en PDF, foros y excelentes videotutoriales. Su sistema de corrección de ejercicios también, es la mejor plataforma online de enseñanza que he conocidos.

Tambien existe su pagina hermana, que es similar en contenidos y metodología http://coursera.org

La experiencia piloto contó con dos cursos (Uno de aprender Python programando un buscador y otro de programar el Coche autonomo de google). Yo realize ambos y la experiencia fue satisfactoria e incluso el primero que era para principiantes, me hizo empezar a pilotar de Python ;)

Estos dos primeros cursos continuan online, y se han añadido otros, entre los que destaca Diseño de programas, Diseño de webs (impartido por el creader de reddit.com) , Lenguajes de programación (como funcionan) y criptografia aplicada.

Recomiendo esta pagina encarecidamente. Si alguien se apunta a alguno comentarlo.

Post to Twitter

Posted in Internet, Programacion, Tutoriales / Manuales, Webmaster | Tagged , , , , , , , , , , , , , | 2 Comments

Como seria Google en la epocas de las BBS

En este enlace http://www.masswerk.at/googleBBS/ teneis un simulador de como habria sido Google en la epoca de las BBS de los 80s.

¡¡Lo mejor de todo es que funciona y podemos usarla!!

Frikada chulisima ;)

Post to Twitter

Posted in Internet, Webmaster | Tagged , , , , , | Leave a comment

Detectado un virus en Windows que reemplaza el MBR del disco duro

Varias firmas de seguridad internacionales han detectado algunas variantes de virus basados en Ransomware, que bloquean el acceso de todos los ordenadores que posean sistema operativo Windows, en concreto, las versiones afectadas son las de XP, Vista y Windows 7.

Las primeras variantes estaban basadas únicamente en difundir una estafa entre los usuarios, como aquella estafa en la que se hacían pasar por un programa de la Policía Nacional. En esta ocasión, el virus da un paso más allá, y tiene la función de sustituir el código contenido en el MBR del disco duro, por un código no válido, lo que hace imposible que el ordenador logre arrancar de forma correcta.

A pesar de verse modificado, sigue siendo una estafa, ya que se pide dinero para desbloquear el ordenador, cosa que en ningún caso debe realizarse.

En concreto, según han informado profesionales de TrendMicro, se tratan de dos nuevas variantes las que han sido detectadas, y tal y como indicábamos anteriormente, el virus ha avanzado un paso más, y ahora, realiza una modificación en el código del MBR del disco duro para evitar que el ordenador llegue a arrancar. En caso de infección, el virus solicita el pago de un importe para poder recuperar la funcionalidad del ordenador, por lo que la naturaleza del virus de la policía la sigue manteniendo, pero ahora con otro “gancho”.

¿Qué es el MBR?

En inglés, se trata del Master-Boot-Record, en español sería algo así como el Registro de Arranque Maestro. Se trata del comienzo del disco duro, es decir, el sector 0, el primero de todos, y es donde generalmente se almacena la información del particionado del disco duro y la información de arranque de los sistemas operativos. Por lo que ahora, muchos entenderéis porque el ordenador queda “inservible” si se altera de una forma inadecuada el contenido de esta partición.

¿Cuál es la solución a este problema?

Parece un problema “muy aparatoso”, pero si se dispone del DVD o CD de instalación de Windows, es tan sencillo como arrancar desde dicha unidad y reparar la instalación del sistema operativo. No se modificará nada del contenido que posee el ordenador, en lo referido a ficheros personales, y los archivos que han sido alterados, serán modificados por los originales para que vuelva a funcionar de forma correcta.

FUENTE : http://www.redeszone.net/2012/04/14/detectado-un-virus-en-windows-que-reemplaza-el-mbr-del-disco-duro/

Post to Twitter

Posted in Internet, Seguridad, Virus / Troyanos | Tagged , , , , | Leave a comment