MongoError: cursor killed or timed out

Esta mañana, recorriendo documentos de la base de datos con Node y MongoDB he tropezado con este problema. Por poneros un poco en contexto: Tengo una colección de unos pocos millones de resultados de partidas de Dota 2 guardadas en MongoDB. El caso es que si quiero ver por ejemplo los equipos (que no son […]

0 Comments
noviembre 9, 2014

Introducción a MEAN.JS

Como sabréis la M es de MongoDB, la E de Express, la A de Angular y la N de Node. Sin embargo MEAN es algo más que juntarlo todo, si os bajáis el proyecto de meanjs.org veréis que viene de paso con un pequeño ejemplo. Es una buena forma de iniciarse, ayudándose de la documentación oficial que se apoya precisamente en ese ejemplo. Sin embargo en seguida se os quedará corto, es demasiado simple como para servir de ejemplo de lo que sería un proyecto normalito.

Así que voy a intentar explicar las dudas que me han ido surgiendo, especialmente de Angular ya que Express y MongoDB dan poca guerra.
El proyecto consiste en un panel de control de espacios publicitarios web. Es decir, “huecos” de publicidad, anuncios que poner en esos huecos y “campañas” publicitarias. Ya tenemos por tanto los modelos: Places, Ads y Campaigns. Y el típico Users que no puede faltar.

0 Comments
julio 19, 2014

Certificado SSL en Node.js y Express

Ayer instalé mi primer certificado oficial. Se trata de un Positive SSL de Comodo, de unos 4 euros al año. Comprado en DonDominio para más detalles: Comodo Positive SSL

Llevaba unos cuantos días usando un certificado casero o “self-signed certificate” (Creating a Self-Signed SSL Certificate) porque aun no tenía comprado el dominio. Pero ayer ya me decidí así que voy a explicar cuáles fueron los pasos, ya que en realidad es mucho más sencillo de lo que pudiera parecer, claro que la primera vez es más complicado. Además para Node.js no es que haya muchos tutoriales, así que creo que merece la pena.

4 Comments
Etiquetas: , ,
febrero 13, 2014

Activar y configurar autenticación en MongoDB

Por defecto MongoDB no tiene activada la autenticación. Esto significa que cualquiera puede entrar a MongoDB, incluso remotamente si el firewall no tiene el puerto 27017 bloqueado.

Bien, esto es muy cómodo durante el desarrollo, no hay que preocuparse de usuarios y contraseñas, y podemos usar Robomongo para administrar MongoDB remotamente y de forma visual. Pero a la hora de salir a la luz es cuando menos un suicidio en toda regla. Vamos a activar la autenticación y a configurar un par de usuarios.

Doy por supuesto que MongoDB está instalado, sea manualmente o vía gestor de paquetes tipo apt-get. Si aun no tienes MongoDB instalado, en la web oficial tienen varios tutoriales, como por ejemplo éste para Ubuntu: Instalar MongoDB en Ubuntu

Bien, vamos a empezar por crear un usuario administrador, algo así como el usuario root pero para mongo. Este usuario podrá a su vez crear y modificar otros usuarios, sus permisos, etc.

1 Comments
Etiquetas:
febrero 9, 2014

Node.js web scraping example

Today DigitalOcean.com will be reaching a million droplets created. The users who spins the millionth droplet and sends a tweet will receive 10.000$ in hosting credit! But I don’t want to waste time, refreshing the page, nor come back and see the million has been reached. So I made a small script with node.js to […]

0 Comments
Etiquetas: ,
enero 17, 2014

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc3 in position 2: ordinal not in range(128)

Sí, lo sé, el título es feo, pero es que el error es feo de verdad! Estaba revisando el panel de control de TopMetin.net, una web que hice en Django cuando de pronto, al ir a revisar los comentarios ZASCA error 500. Insisto, y el mensaje hace otro tanto. Hmmm, qué raro, es como si […]

2 Comments
diciembre 28, 2013

Ventana bordes redondeados en Java

Vamos a crear una ventana que podamos decorar a nuestro gusto. Ideal para pequeños diálogos o como splash screen de nuestro programa. Hasta no hace mucho si se quería hacer algo así en Java había que hacer una captura de pantalla y usar eso como fondo, dando la sensación de que “se ve lo que hay detrás de la ventana” y por tanto imitando una ventana transparente.
Pero claro, cuando el fondo cambia, o es un vídeo, la técnica de la captura de pantalla peta. O hay que hacer capturas cada poco tiempo, ocultando nuestra ventana y volviendo a mostrarla. Esto es una ñapa.

Así que os traigo una solución más avanzada, y más sencilla, que he encontrado aquí. He cambiado un poco la idea, ya que lo que yo quería era hacer una ventana de bordes redondeados.

La clave está en crear un panel con su propio método paint() y meterlo en una ventana transparente

0 Comments
Etiquetas:
diciembre 2, 2013

Minitutorial Node.js y MongoDB

No voy a explicar cómo usar MongoDB con Node.js, esto solo es un pequeño tutorial previo a programar nada: instalar MongoDB, iniciarlo, dejarlo corriendo, instalar Node y npm, crear una app Express y ponerlo a funcionar. 1. Instalar MongoDB manualmente: (si prefieres el modo automático: Install MongoDB y salta al paso 5 de este tuto) […]

0 Comments
noviembre 28, 2013

Arduino: configurar un módulo bluetooth

De entre todos los módulos que hay para Arduino, el bluetooth es en mi opinión el más interesante. Es muy barato, muy sencillo (no tiene más que 2 pines quitando alimentación y tierra), funciona como un puerto serie, es compatible con cualquier cacharro moderno como móviles y portátiles… y puede dar mucho juego. Yo compré […]

3 Comments
Etiquetas:
noviembre 28, 2013

Arduino: dos ejemplos para displays de segmentos

Recientemente he tenido que aprender a usar pantallitas de 4 dígitos con 7 segmentos en Arduino. Es decir, algo como ésto: Como pasa con todo la primera vez siempre cuesta. Y más si hay distintos tipos de displays y por tanto varias formas de hacer las cosas según el modelo que te haya caído a […]

0 Comments
Etiquetas:
noviembre 27, 2013