DEBIAN PRO

DEBIAN PRO
DEBIAN

miércoles, 19 de diciembre de 2012

MongoDb Videos



This is the wiki for **10gen**'s _MongoDB for DBAs / Administrators_.

[Welcome to the MongoDB Community](https://education.10gen.com/courses/10gen/M102/2012_Fall/wiki/mongodb-community/)

**Week 7**

* Youtube playlist link for week 7: [Week 7 playlist link](https://www.youtube.com/playlist?list=PL0XWXVEFOLCO4QndOzbMNs-KoPvQv4Txu)


**Week 6**

* Youtube Playlist link for week 6: [Week 6 playlist link](https://www.youtube.com/playlist?list=PL0XWXVEFOLCMz4qbtHYK8gxIFmwDWLgp6)

* Video lengths for week 6 can be found in [this forum post](https://education.10gen.com/courses/10gen/M102/2012_Fall/discussion/forum/i4x-10gen-M102-course-2012_Fall/threads/50bd4d67f29297327f005c30). There are 10 lessons that range in length from 02:27 to 18:16. Enjoy.

[our_setup_script.js](https://gist.github.com/4216123)

**Week 5**

* Youtube Playlist [Link of youtube playlist for week 5](https://www.youtube.com/playlist?list=PL0XWXVEFOLCP5RjAcORR94oyL3OMhjCnM&feature=edit_ok)

* Video lengths can be found in [this forum post](https://education.10gen.com/courses/10gen/M102/2012_Fall/discussion/forum/i4x-10gen-M102-course-2012_Fall/threads/50b2841992dfeecf02005258). The lengths of the videos have been returned to managable time frames with the longest being just over 15 minutes in length.

* [List of youtube links](https://education.10gen.com/courses/10gen/M102/2012_Fall/wiki/list-youtube-links/)


**Week 4**

* Youtube Playlist link for week 4: [Week 4 playlist link](https://www.youtube.com/playlist?list=PLOqwUgCzNJctnwQAaV9Uboxrwabn4EKTJ)

* Video lengths can be found in [this forum post](https://education.10gen.com/courses/10gen/M102/2012_Fall/discussion/forum/i4x-10gen-M102-course-2012_Fall/threads/50a6905a92dfeecf02004604). The videos are longer than usual this week.
* [List of youtube links](https://education.10gen.com/courses/10gen/M102/2012_Fall/wiki/list-youtube-links-w04/)
* Correction: _One of the lecture videos says you can use --fork on Windows; however you cannot._ Just open a separate CMD.EXE instead or use START in the command prompt window.
** [Short Windows demo here](http://www.youtube.com/watch?v=h3GEqX6Ttf4)
* Homework 4.4 assumes you created your replica set members with `_id` values of `0`, `1` and `2`. There is a [forum post](https://education.10gen.com/courses/10gen/M102/2012_Fall/discussion/forum/i4x-10gen-M102-course-2012_Fall/threads/50a6cd7ff29297327f0043e9) that calls this out.

**Week 3**

* The mapReduce gist from this week’s lesson can be found here: [MongoDB map reduce example 2](https://gist.github.com/947786)

* Note from Monday Nov 5: Week 3 is in editing. Later today we will announce exact timing of availabity (it won't be today). Apologies power was out most of the previous week here...

* [List of youtube links](https://education.10gen.com/courses/10gen/M102/2012_Fall/wiki/M102/week-3-list-youtube-links/)

* Youtube Playlist link for week 3: [Week 3 playlist link](https://www.youtube.com/playlist?list=PLOqwUgCzNJcuMcoduiB0wfYFRWX86J8Lv)

**Week 2**

* Youtube Playlist link for week 2: [Week 2 playlist link](https://www.youtube.com/playlist?list=PLOqwUgCzNJcuQDNQgDe8BV5Iztsl7v_CX)

**Week 1**

* Youtube Playlist link for week 1: [Week 1 playlist link](https://www.youtube.com/playlist?list=PLOqwUgCzNJctRfJ5g3XX2Wn1pzkZjTXY0)

* Correction: I believe somewhere in the videos I may have referred to SQL as "procedural" -- I meant to say "non-procedural". dm

* [**[HowTo] **watch or download courseware from youtube directly](https://education.10gen.com/courses/10gen/M102/2012_Fall/wiki/M102/how-watch-or-download-week1-courceware-youtube-dir/)

* [Whitespace in JSON syntax](https://education.10gen.com/courses/10gen/M102/2012_Fall/wiki/M102/white-space-json-syntax/)

* Where to find products.json file : [https://education.10gen.com/static/content-10gen-dbas/handouts/products.3eb7cd1a9633.json](https://education.10gen.com/static/content-10gen-dbas/handouts/products.3eb7cd1a9633.json)

* Note: we are working on the issue with the homework submissions more to come...

martes, 18 de diciembre de 2012

Mongodb DBA Test finished.


Por fin, pude acabar los 11 puntos del exámen de MongoDb DBA, mañana espero revisarlos y para el jueves esperar el resultado.

Veremos que pasa, tengo dudas con dos.

Finally, I finished the 11-point test of MongoDB DBA, tomorrow I hope to review them and wait for the result on Thursday.

Hasta el 20 no hay resultados.



En los últimos ejercicios tuve que montar 4 instancias de Mongodb, Sharding, Config Srv... de todo.

viernes, 14 de diciembre de 2012

MongoDb DBA Exam


Ya tengo resuelto los primeros 5 puntos del exámen. Creo que en unos dias podré pedir mi certificado.


1.
Now, we want to see if any data that we attempted to insert isn't there. Go into the shell to any member of the set. Use rs.status() to check state. Be sure the member is "caught up" to the latest optime (if it's a secondary). Also on a secondary you might need to invoke rs.slaveOk() before doing a query.)

Now run:

> db.foo.find()

to see what data is there after the set recovered from the two outages. How many documents do you have?



2.
Question: which one of the following is the true statement about mongodb's operation in these scenarios?

a. Mongo preserves the order of writes in a collection in its consistency model. In this problem, 27003's oplog was effectively a "fork" and to preserve write ordering a rollback was necessary during 27003's recovery phase.

b. The MongoDB primary does not write to its datafiles until a majority acknowledgement comes back from the rest of the cluster.

c. When 27003 was primary, that was never received for writes 7,8,9.When 27003 came back up, it transmitted its write ops that the other members had not seen yet to those members so that they would have them also.


3.
Final: Final.3

In Final.2 the mongod on port 27003 does a rollback. Go to that mongod's data directory. Look for a rollback directory inside. Find the .bson file there. Run the bsondump utility on that file. What are its contents?
There is no such file.
The file exists but is 0 bytes long.

It contains 2 documents.
It contains 3 documents.
It contains 4 documents.
It contains 8 documents.



4.
Make that change to the set -- i.e. reconfig so that the third member can *never* be primary. Then run:

$ mongo --shell a.js --port 27003

And run

> part4()

And enter the result in the text box below (with no spaces or line feeds just the exact value returned).






5.
Final: Final.5

Suppose we have blog posts in a (not sharded*) postings collection, of the form:

{
_id : …,
author : 'joe',
title : 'Too big to fail',
text : …,
tags : [ 'business', 'finance' ],
when : ISODate("2008-11-03"),
views : 23002,
votes : 4,
voters : ['joe', 'jane', 'bob', 'somesh'],
comments : [
{ commenter : 'allan',
comment : 'Well, i don't think so…',
flagged:false, plus:2 },
...
]
}

Which of these statements is true? Note: to get a multiple answer question right in this final you must get all the components right, so even if some parts are simple, take your time.

*Certain restrictions apply to unique constraints on indexes when sharded, so I mentioned to be clear.






Gracias 10 GEN !!!!

TrixBox no more free


Lamentáblemente otra de las empresas que no pueden soportar mas el costo de "GRATIS" en los servicios, y solamente darán servicios pagos.

Trixbox, era una de las distros mas sencillas para montar un Asterisk (VOIP) en Linux, hoy recibí el correo de que dejará de dar soporte gratis.


Thanks for your previous participation in the trixbox CE community. Though we have discontinued the free, Community Edition of trixbox, we hope you'll explore the superior features, functionality, support and increased stability that trixbox Pro provides. And now, for a limited time, Fonality is offering a 30% discount* to trixbox CE community members who upgrade to trixbox Pro.

Fonality is also pleased to offer other special promotions to the trixbox CE community on hosted and on-premise business phone and communications solutions. For example, for a limited time, customers purchasing one-year of cloud-based business phone service from Fonality with Voicemail Transcription, Screen Share and Heads Up Display Mobile can get the second year free.*

Let us know how we can be of service. We look forward to hearing from you soon.

The Fonality Communications Team



Tendencias Búsq


Tendencias de lo que se busca por Google en el mundo, en este caso ESPAÑA.

SQL to Mongo


Gracias a Juan M. Palma que me envió este link, ya es posible que una página en internet te haga la conversión entre código SQL (ansi 92) y MongoDB.

Muy buena alternativa para ver como pasar código, aunque en algunos casos lo que indica la página no me gusta.



MongoDb TEST FINAL

Ya está disponible el TEST final para MongoDB DBA, son 11 puntos con un nivel elevado, y tendré que ponerme a hacer uno a uno los ejercicios con atención.

Casi todas las preguntas está relacionadas con replicación, servicios, caidas, etc. Algo que me parece lógica para un DBA.

En cuanto tenga hechos todos los puntos comentaré mas cosas, no mucho para que no se copien las respuestas.

MemSQLd


En la próxima semana estaré con MemSQLd, un servicio para aumentar la velocidad de MySQL utilizando RAM y una capa en medio, entre el servidor y el cliente.

En esta página se puede bajar una copia del APP para probar.



lunes, 10 de diciembre de 2012

MongoDB Week6


He pasado nuevamente en el límite la semana 6 del curso oficial de 10GEN de MongoDB.
En estas semanas vimos replicaciones y shardering, dos temas fundamentales y de uso diario en MongoDB.

Tengo que reconocer que aprendí bastante sobre los conocimientos que tenía luego de leer dos libros (antes del curso).

Estoy viendo como implementaremos MongoDB en nuestro nuevo proyecto, algo que sería realmente revolucionario.

jueves, 29 de noviembre de 2012

SQL Server Versiones




.Net Obfuscation



Estaremos probando este producto los próximos dias, para ver si lo implementamos en una solución.

El detalle de lo que hace.



Key features:

Name mangling
Changes the names of methods and fields to make it hard to understand their purpose.Control flow obfuscation
Converts the code inside methods to 'spaghetti code' to make it difficult to see how the application works.
References dynamic proxy
Creates a proxy for calls to methods outside of your assembly to make it hard to find external calls.

Strings encoding
Encodes the strings used in your software to hide such information as passwords and SQL queries.

Resources compression and encryption
Compresses and encrypts managed resources to make them hard to understand, and to reduce the size of the assembly.

Pruning
Removes non-useful metadata to make the code harder to reverse-engineer, reduce the size of the assembly, and improve loading time.

Dependencies merging
Takes all the DLLs and merges dependencies into the main assembly, so you don't have to load lots of DLL files, and so that they can also be obfuscated.

Dependencies compression and embedding
Compresses and embeds your dependencies into your main assembly, simplifying the deployment of your software and reducing the size of your program.

Method parent obfuscation
Moves methods in your code by changing the class they are in, making it harder to understand how methods and classes relate to each other.

Strong name signing with tamper protection
Signs your assembly and helps to protect it against modification (the additional tamper protection is not available in the Standard edition).

Declarative obfuscation
Excludes a member from obfuscation using custom attributes directly in your code.

Debugging

SmartAssembly decodes obfuscated stack traces and generates .pdb files containing debugging information. This enables you to debug your assembly into your IDE, and get the full stack trace when an exception occurs. To top it off, SmartAssembly even helps to ensure that you're automatically releasing unneeded memory.

Integration and Support

Obfuscation can be integrated into build processes using MS Build or command-line, and supports .NET 2.0 to 4.5, Compact Framework 2.0 to 3.5, Silverlight 2.0 to 5.0, XNA (xbox, PC applications), and Windows Phone 7, with some exceptions

Technologies supported

SmartAssembly can protect your Winforms, Silverlight, Windows Phone 7, ASP.NET applications and more. It can also be integrated into build processes using MS Build or the command-line.

martes, 27 de noviembre de 2012

MongoDB Procesos


Para ver los procesos que están corriendo en el servidor

Ahora solo hay una conexión y no hay procesos en ejecución
> db.currentOP()
{ "inprog" : [ ] }

use week5




Ahora con un proceso corriendo durante 33 segundos, muestra el código con
"sleep(500)"
que genera una demora, y un proceso de $where eterno, porque siempre obtiene FALSE del proceso
"$where" : "function(){sleep(500);return false;}"



> db.currentOP()
{
"inprog" : [
{
"opid" : 20,
"active" : true,
"lockType" : "write",
"waitingForLock" : false,
"secs_running" : 33,
"op" : "update",
"ns" : "week5.sensor_readings",
"query" : {
"$where" : "function(){sleep(500);return false;}"
},
"client" : "127.0.0.1:32834",
"desc" : "conn",
"threadId" : "0x7f05087fc700",
"connectionId" : 3,
"numYields" : 67

}
}



Para matar el proceso
> db.killOp( 20)
{ "info" : "attempting to kill op" }





MongoDB Install Ubuntu


Los pasos son:

logon como root.

Agregar Key
#sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Editar fichero
/etc/apt/sources.list.d/10gen.list

Agregar este texto
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Actualizar repositorios y paquetes.
sudo apt-get update

Instalar la última versión de MONGODB
sudo apt-get install mongodb-10gen
Tendrás el MONGOD y el MONGO, junto con herramientas de gestión y administración.

MongoDB Week 5


Pasé la semana 5, mas fácil aún que las anteriores.
Los temas de Procesos e índices los tenía muy claros.

lunes, 26 de noviembre de 2012

Medidor de consumo.



Contenido y forma


Muchos de los posts los escribo desde mi telefono htc desire z, asi que no siempre escribo correctamente, con acentos, con mayusculas, pongo todos los espacios y signos.

mis disculpas, pero creo mas en el contenido que en la forma.

Rrhh y empleos.


Supongo que sera por varios motivos, pero casi todas las semanas me llaman de alguna empresa para comentarme sobre una busqueda que estan realizando y les gusta mi perfil.

Tengo puesto mi historia educativa y laboral en linkedin, creo que hoy es el mejor sitio para ofrecerse y donde todas las consultoras estan inscriptas tambien para buscarte.

En el 2002 cuando comenzaba mi experiencia en España, infojobs y tecnoempleo eran los mejores sitios, hoy eso cambio y creo que linkedin es EL SITIO, te contactan de españa, irlanda, holanda, gibraltad, argentina y uk.

Las propuestas del exterior son muy bien pagas, o eso parece desde aqui, y las españolas no son tan buenas, quizas por una excesiva oferta de profesionales y menos empleos. Creo que aun asi hay puestos interesantes para los mas experimentados, parece haber bastantes ofertas para seniors y muy pocas para junior y con cientos de inscriptos (busq. De programadores .net con 900 inscriptos)

Parece que todas las consultoras tiene jrs mirando en internet y buscando profesionales, tambien parece que muchas consultoras tienen juniors poco experimentados haciendo ese trabajo y no lo hacen tan bien, suelo ver el perfil de esas personas en linkedin y con suerte tienen un a#o en el mismo sitio.

A veces me provocan un pequeño rechazo por como hacen su trabajo, te llaman y te comienzan a preguntar cosas como si no hubieran leido nada de tu perfil.
por favor sres., inviertan 5 minutos y lean los cvs antes de llamar..... algunas situaciones son realmente negativas para la imagen que quiere dar la consultora.

En algunos casos se ve que la empresa parece seria y en el 98% de las charlas con rrhh todo es un paraiso..... pero en las entrevistas con tecnicos y directores comienzan a aparecer las sombras y los marrones del puesto y los puntos feos de la oferta... parece normal pero es donde se empieza a ver sutilmente el futuro trabajo.

Se que no es facil pero dicen que google hace que todo el equipo donde irias a trabajar te conozca y te puntuen, de manera que todos los que estan dentro valoran si te querran trabajando con ellos... algo que me parece muy importante para ambas partes, ojala eso se hiciera mas seguido.

Todas las consultoras estan intrigadas por saber cuanto estamos ganando (los profesionales) algo que les deberia dar igual, y estoy tentado a veces en decirles "es privado. No te lo puedo decir" lo veo como si yo les preguntara lo mismo a ellos, creo que se deberian limitar a hacer una oferta que les parezca buena y ver quedecimos, en lugar de especular con el sueldo bruto anual actual para hacer una propuesta un poco mejor.

En fin, presten atencion, pregunten, conozcan todo lo que puedan de la consultora y del destino, consulten a otros profesionales sobre esa empresa, busquen en internet, estimen que les gustaria ganar en el sitio nuevo pensando en que por uno o dos años no tendran sumento de sueldo, pregunten sobre otros beneficios y durante unos dias es bueno madurar/pensar la oferta.

Un muy buen metodo es contarle a un amigo sobre la oferta que recibimos, siendo nosotros lo mas objetivos posibles.... muchas veces ocurre que al explicar la oferta y las condiciones a otro nos damos cuenta si es buena o no tanto.


MongoDB week4


Faltando unas horas para el cierre del tiempo oficial, acabé los ejercicios del Week 4 de MongoDB.
Tengo que reconocer que la parte de replicación la había visto y tenía bastantes conocimientos, que los videos que mostraban guiaban bastante para resolver el TEST.

Y que corriendo contrareloj en 30 minutos pude aprobar todos los puntos.


sábado, 24 de noviembre de 2012

Escalamiento en rdbms

Casi siempre, aunque hay excepciones, el escalamiento en productos rdbms es vertical. Para simplificar el concepto, eso quiere decir mas cpu, mas ram, mas velocidad en el almacenamiento, mas discos, mas placas de red para dividir las comunicaciones.....

Dije CASI siempre, por hay algunas alternativas un poco horizontales (diagonales ?) dividiendo las tareas de un motor en varios, eso trae otras complicaciones pero es posible, sea dividiendo las lecturas, con replicas, tablas estaticas.... hay varias opciones.

En estos dias estoy evaluando un sistema de particionado horizontal (varios servidores y bases) pero donde la segmentacion se da por el tipo de tabla y el area al que pertenece....

Ej: en una base metemos las tablas relacionadas con clientes, en otra base de datos las tablas de proveedores, en otra las tablas de usuarios, en otra las tablas de facturas y recibos, en otra las tablas de personal de la empresa......
todas bases distintas y servidores distintos.

En este modelo no habria casi FK, porque habria tablas sin relaciones en motores distintos, no habria transacciones internal rdbms porque son bases distintas, quedaria ver como implementar transacciones distribuidas desde el APP.

El sistema de backups no lo tengo claro, porque las bases se copiarian en momentos distintos...

Hoy me parece absurdo, casi como particionar las tablas en diferentes motores por sexo: LAS facturas en motor M y LOS recibos y los clientes en motor H, lAS traducciones en M, los usuarios en H.

Podria particionar las tablas por cantidad de columnas, de menos de 5, entre 6 y 10 en otro motor y para 11 o mas campos en otra base de datos.....

Tambien podria existir una segmentacion de tablas de pocos registros, tablas con miles en otro motor y tablas con MILLONES en otro motor....

O por colores?

O por la cantidad de silabas del objeto? Fac.tu.ras 3.  Tra.duc.cio.nes 4.  Pa.is 2...


Que les parece?
Mientras sigo pensando si tecnicamente tiene sentido particionar tablas por area de influencia de datos.
Puede que hagan falta replicas de algunas tablas que son necesarias en todas las bases de datos.....


Sigo pensando posibles problemas de un escalamiento horizontal "curioso".....

Les recuerdo que esto no tiene que ver con mongodb...

Que opinan?


Mongodb 4w

Cuarta semana de mongodb. Estamos con replicas y redundancia. Cada semana me sorprendo un poco mas. He recuperado esa capacidad de sorprenderme por productos informaticos.

Hacia tiempo que todo era repetido y aburrido.

Por otro lado estamos con varios proyectos distintos y no me alcanza el dia para leer y analisar informacion.

El otro tema que posteare en breve es sobre escalamiento de servidores.  Rdbms. IMPERDIBLE en todo sentido.

jueves, 22 de noviembre de 2012

Postgres básico


Luego de la instalación de PostgreSQL.

# sudo -u postgres psql
postgres# alter user postgres PASSWORD 'clave';

A partir de este punto nos podremos conectar mediante PGADMIN




Luego para ejecutar el servidor
sudo -u postgres /usr/local/pgsql/bin/postgres
-D /usr/local/pgsql/data >logfile 2>&1 &

Para conectarse como cliente
sudo -u postgres /usr/local/pgsql/bin/psql test

Se debe ver en pantalla

psql (9.2.1)
Type "help" for help.
TEST#



martes, 6 de noviembre de 2012

2w MongoDB 10gen


Pasamos la segunda semana del curso para DBA de MongoDB, con temas relacionados con CRUD.

Por ahora bien, he fallado en una pregunta que no llegué a entender y respondí mal, el resto bien, necesito algo de tiempo que no tengo para hacer ejercicios.


La gente de 10GEN ha logrado que funcione la pantalla de PROGRESO, mostrando los parciales y promedio total.

Sigo mirando el tercer ejercicio y no me explico como pude equivocarme.
-- db.products.find({brand:"ACME"})

Samsung Galaxy Si i9000


Como liberar un teléfono Samsung Galaxy S I o también llamado i9000.
Hasta ahora no lo había hecho nunca, el proceso es muy fácil con este método y el ODIN.

Dilbert nuevamente.


Otra tira enviada por Andrés desde Australia... Cuanta verdad en tan pocas letras.

Sostenible.


Links para leer sobre "Desarrollo Sostenible", el tema de la semana.

http://ccqc.pangea.org/cast/sosteni/soscast.htm#2

http://es.wikipedia.org/wiki/Desarrollo_sostenible

http://www.tecnun.es/asignaturas/Ecologia/Hipertexto/14PolEcSoc/140DesSost.htm

http://www.uned.es/biblioteca/energiarenovable3/sostenibilidad.htm

http://www.jcyl.es/web/jcyl/MedioAmbiente/es/Plantilla66y33_100/1246988896246/_/_/_

http://www.desarrollosostenible.com/


R otra herramienta.


Ayer bajé una actualización de R, un producto con base estadística y que permite graficar funciones de todo tipo.



Tiene su propio lenguaje y casualmente es muy parecido al de MongoDB, puras casualidades.

miércoles, 31 de octubre de 2012

Comparativa IPAD Mini y Asus Nexus 7.


Personalmente tengo que decir que Apple no me gusta, es algo "de piel", así que lo que pondré parecerá "parcial". Pero creo que vale la pena verlo, aunque seas fanático de Apple y quieras comprar todos los productos que sacan al mercado.

Nuevo producto de Asus Nexus 7, aunque hay un 10 y un 5,

Nuevo producto de Apple Mini,

Señores compradores:
por favor, comparen, lean, miren, vean resoluciones, memoria...




Creo que técnicamente hay un claro ganador,
existe la "experiencia Apple" de usuario, muy valorada (quizas demasiado valorada)
y existe una comparativa en precios ABRUMADORA !!!!

Por favor, pido que seamos razonables en las compras y que nos quitemos el fanatismo por una marca, no siempre es bueno ser fanático. (o casi nunca)

Hoy fotos.


En este sitio hay fotos con una excesiva calidad, hechas con cientos de otras fotos.

Se puede ampliar las fotos hasta ver las hormiguitas del campo, o si una de las personas está bebiendo cerveza.

Bichos.
Cervezas
3 gb de foto.

Y Finalmente el "COMO SE HACE?"

Hay diferencias pero en Androids, existe el Photaf Pro.


Docs sobre NoSQL.


Link a documentos para leer sobre NoSQL.

CouchBase info.


Una página muy buena sobre NoSQL, como usarlo, quien lo usa y porque?
Vale la pena leerlo.

http://www.couchbase.com/why-nosql/nosql-database

lunes, 22 de octubre de 2012

MongoDB Master / Slave


Configuración de Master / Slave, con cliente conectado contra Master y otro contra Slave.

SERVER MASTER
mongod --port 27020 --dbpath ./base --journal --master

SERVER SLAVE
mongod --port 27021 --dbpath ./base2 --slave --source 127.0.0.1:27020

CLIENTE CONTRA MASTER
mongo 127.0.0.1:27020

CLIENTE CONTRA SLAVE
mongo 127.0.0.1:27021



Crear una base de datos PCAT
use pcat

Importar los datos del fichero JSON
mongoimport -h 127.0.0.1:27020 -d pcat --file products.json -c products




REPLICA con DOS MASTERS (PRIMARY / SECONDARY)

A) es un server, arranca en un puerto, carpeta de datos BASE, dice que tendrá otro nodo, que atiende al nombre UBU64 y el puerto 27021
mongod --port 27020 --dbpath ./base --replSet dac64/ubu64:27021

B) es el segundo server que atiende en el puerto 27021, la carpeta de datos local sera BASE2 (QUE DEBE ESTAR VACIA) y que su otro nodo es UBU64, en el puerto 27020
mongod --port 27021 --dbpath ./base2 --replSet dac64/ubu64:27020


En el primero se definen
>config = { _id : 'cluster1', members: [
{_id: 0, host: 'dac64:27020'},
{_id: 1, host: 'ubu64:27021'}] }

>rs.initiate(config);


Luego de unos segundos ambos servidores atenderán peticiones.

EN EL PRIMARIO
MongoDB shell version: 2.2.1-rc0
connecting to: 127.0.0.1:27020/admin
cluster1:PRIMARY> show dbs

EN EL SECUNDARIO
MongoDB shell version: 2.2.1-rc0
connecting to: 127.0.0.1:27021/test
cluster1:SECONDARY>


MongoDB y el Curso.




Para preparar el curso que comienza hoy:

Instalar MongoDB en Ubuntu.

Como todo producto cliente-servidor, hay dos partes en juego:
mongod. El servidor que da el servicio.
mongo. un cliente javascript que sirve para conectarse al servidor.

Un fichero de parámetros, en Ubuntu está en /etc/mongodb.conf, donde se configuran opciones del servidor.



RESUMEN

-- agregar datos de un KEY
#sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

-- editar datos de 10gen como repositorio
#vi /etc/apt/sources.list.d/10gen.list
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen


-- actualizar repositorios
#sudo apt-get update

-- instalar el paquete
#sudo apt-get install mongodb20-10gen

-- restart del servicio, para verificar que todo esta OK
#sudo service mongodb restart

-- está corriendo?
#service mongodb status


Pruebas de funcionamiento y herramientas clientes.

-- Cual es la version ?
#mongo --version
MongoDB shell version: 2.0.7


-- conectarse y salir
# mongo
MongoDB shell version: 2.0.7
connecting to: test
> exit
bye

Desde un navegador, este link debe funcionar:
http://127.0.0.1:28017/
nos mostrará un detalle del servidor y objetos.


El fichero de configuración del servidor Mongo estará en
/etc/mongodb.conf





Comandos para lanzar en el servidor

show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries with time >= 1ms
show logs show the accessible logger names
show log [name] prints out the last segment of log in memory, 'global' is default
use set current database
db.foo.find() list objects in collection foo
db.foo.find( { a : 1 } ) list objects in foo where a == 1
it result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x set default number of items to display on shell
exit quit the mongo shell






Seguridad

Cambios en el fichero de configuración

-- indicarle en que IPs da servicio, Puerto
bind_ip = 127.0.0.1,10.8.0.10,192.168.4.24
port = 27017
-- se debe reiniciar el servidor.
-- dará servicio tambien via WEB a una consola informativa


nounixsocket = true

auth = false
-- podemos conectarnos en un modo "autenticado", para agregar cuentas que servirán para autenticarse en cada "base de datos", luego de la gestión de cuentas, podremos cambiar el parámetro a TRUE para mejorar la seguridad



> db.system.users.find()
-- este comando nos muestra las cuentas definidas para acceder a cada base de datos.


>db.addUser("theadmin", "adminpassword")
-- para agregar una cuenta con su password


>db.removeUser( "username" )
-- para eliminar un usuario





Si hemos definido el ip en el que el servidor Mongo escucha, podemos conectarnos a él desde fuera con:
> mongo.exe ip.del.servidor

C:\mongodbbin> mongo IP.DEL.SRV
MongoDB shell version: 2.2.0
connecting to: 10.28.2.3/test
>




Si el fichero de configuración dice
bind_ip = 127.0.0.1
port = 27017
-- No aceptará conexiones del exterior, solamente 127.0.0.1



Si no queremos que arranque la interfaz web del servidor, podemos usar esta línea
nohttpinterface = true






Link con información de seguridad, recomiendo leerlo.




#mongo
> use admin
> db.auth("cuenta_admin", clave_aqui)

> use test








Parámetros de configuración.

Activar la seguridad:
http://docs.mongodb.org/manual/administration/configuration/

Server troyanizado?


Curiosamente encuentro que hay servidores "troyanizados" ( o eso parecen ), que contienen repositorios de MP3s...

Uno de tantos es "http://4shared.cristovive.info/goear/" .... no es fácil acceder a los ficheros, porque sus nombres son generados secuencialmente, pero la música está ahi.

Y lo que me sorprendió es que justamente el sitio es "cristo vive"... en la música?

NoSQL info


Varios links con información sobre NoSQL.

Comparativa.

The right NoSQL.

Hoy comienzan los cursos de MongoDB, gratuitos y por 10gen.

Teorema de CAP.

Un resúmen muy buena de opiniones sobre productos NoSQL.

Riak, otro producto para evaluar.

QlikView.


Ayer estuvimos toda la mañana en la presentación 2012 de QlikView, con la presencia de Don Farmer, que es lo que viene y el mundo de la gestión de la información, eficiente, en todo lugar y en todo momento.

QlikView lo estamos usando desde hace mas de un año en un cliente, he aprendido cientos de cosas y me parece un excelente producto a nivel estético, de facilidad de uso, de calidad de la información generada. Totalmente recomendable.

lunes, 15 de octubre de 2012

Fonera 11N


El fin de semana aproveché para actualizar mi fonera 11n, al último release.

la versión 2.3.7.0 "release candidate 1", esperando que vaya tan bien como hasta ahora.

El change log es este CHANGELOG.

En los próximos dias veremos como va toda la red en casa, VOIP, Webs, VMs, etc.

Windows 8


En estas semanas estamos probando el nuevo Windows 8, para definir si lo usaremos como sistema operativo para nuestras máquinas de desarrollo.
En mi caso también lo probé en equipos mas viejitos, como "parecía" que consumía tan pocos recursos....

En un Compaq r4000 no va bien.
No reconoce los drivers de sonido y no reconoce la placa Wifi....
No es mas rápido que un XP, aún sin los drivers de comunicaciones.
Para el monitor de 15.4" que trae las letras y cajas parecen estar al 250%.... todo se ve demasiado grande, no me parece práctica la interfaz para un notebook normal que no tenga touch screen y con una pantalla tan grande.

Guste o no, creo que la interfaz que buscan con esta versión 8 es algo hibrido para netbooks con pantallas pequeñas, teléfonos/tablets con pantallas de menos de 10", una simplificación extrema en casi todo, un menor consumo de recursos...

Al menos en mi caso aunque el Sistema Operativo sea muy bueno, "NO ES COHERENTE" usarlo con el hardware que uso a diario, al menos por ahota....

Continuaré con mi W7ultimateN, con mi ubuntu 64, con mi XP.

jueves, 11 de octubre de 2012

SpyBot, RATs, varios.


Desde hace unos años tenemos plagas de RATs, productos para acceder remotamente en equipos y troyanizarlos.
Se evolucionó mucho, se cambiaron y adaptaron los mecanismos de comunicación entre el cliente troyanizado, que se comunica con su "master", apuntando a un servidor con un DNS Dinámico (no-ip, dyndns, etc), los troyanos se replican en USB y un largo etc. de cosas de tecnología de punta.

Los mas populares estan siendo SpyNet, DarkComet, ProSpy.... cada grupo de hacker recompila con un nombre y opciones distintas y hay cientos de variantes con las mismas funciones.

Un sitio con información interesante.

Salen también versiones en venta, donde garantizan que los antivirus no los detectan.
PRO-SPY otro similar pero pagando


Me parecen algo "normal", no me llama la atención y los miro de costado, cuidándome todos los dias, con actualizaciones del S.O. usando Linux, manteniendo los antivirus actualizados, cuidando la navegación pero sobretodo usando el "coco", nada de ejecutar cosas sin saber perfectamente de donde viene, nada de pruebas en equipos productivos, nada de cracks recomendado por un "chaboncito"...

¿Porqué tenemos tantos cuidados y rara vez nos infectamos?
Porque ya lo vivimos, estuvimos en los 90 y el 2000 cuando ya existían NetBus, BackOrifice, SubSeven y otros tantos RATs como los de ahora, pero para Windows 95/98, que eran los sistemas operativos de esa época... recuerdo el grupo "the cult of the deadcow" con su BO y su divertido ÍCONO.


martes, 9 de octubre de 2012

Windows Gadgets.


Por julio del 2012 Microsoft sacó un boletín relacionado con temas de seguridad, no es mi caso, pero mucha gente usa los gadgets en Windows, pequeñas aplicaciones que suelen estar a la derecha de la ventana como el Pronóstico del Clima, el medido de CPU, un puzzle, un slide de fotos, etc.

Existen 9 gadgets que vienen con el Windows 7, digamos que son "oficiales", Calendario, Clock, CPU, Currency, Feed Headlines, Picture Puzzle, Slide Show, Weather y Windows Media. En los que podemos confiar siempre y cuando sean los originales y no estén troyanizados.

Pero debido a que en la comunidad de internet se generaron cientos de otros gadgets "no verificados" por Microsoft y muchos fueron utilizados con troyanos/virus/etc, el informe de Microsoft sugiere desactivar esos gadgets y da dos EXEs para activar y desactivarlos.

Me parece como mínimo curioso que Microsoft diga "previniendo que hay muchos gadgets peligrosos en internet, sugerimos desactivar la funcionalidad"... Es como mínimo una manera "ineficiente" de proteger equipos. Tengo claro que la mayoría de los usuarios de Windows son "usuarios finales" que no tienen claro los puntos de seguridad, pero de ahi a recomendar "no usar una funcionalidad" me parece excesivo.

Adjunto el Link.

http://technet.microsoft.com/es-ES/security/advisory/2719662

miércoles, 3 de octubre de 2012

lunes, 1 de octubre de 2012

Moodle y subida de ficheros.


Para los que trabajamos con Moodle, y necesitamos subir ficheros de mas de 2 MB (límite de la versión original), hay que tocar el fichero PHP.INI, poniendo estos valores.


upload_max_filesize = 100M
post_max_size = 100M

(en este caso para llegar hasta los 100 megas)

Recordar luego reiniciar el Apache.




Un post mas detallado para UBUNTU es:


Editar php.ini ubicado en /etc/php5/apache2/

Type "sudo nano /etc/php5/apache2/php.ini"
Press Ctrl and W and type "post_max_size"
Change the value to the number of Mb you want your site to accept as uploads
Press Ctrl and W and type "upload_max_filesize"
Change the value to the number of Mb you want your site to accept as uploads
Press Ctrl and W and type "max_execution_time"
Change the value to 600
Press Ctrl and O
Press Ctrl and X
Type sudo /etc/init.d/apache2 restart

viernes, 28 de septiembre de 2012

Startup y sus curvas


Pego un link de un post muy bueno sobre startups, productos o nuevos lanzamientos de cosas.

http://www.codigogeek.com/2012/09/27/el-ciclo-de-hype-en-una-startup/


Trabajo en informática desde 1983, cuando copiaba jueguitos para TI 99 4/a, he pasado por varias burbujas muy grandes y tengo que reconocer que muchas cosas pasan del TRIGGER a la DESILUCIÓN en dos reuniones con posibles accionistas.
Y jamás alcanzan el Plateau...

jueves, 27 de septiembre de 2012

MAC OSx y EXT3.


Parece que aunque OSx es un sistema operativo "cercano" a un unix/linux, no puede acceder a particiones con EXT3.... me parece increible.

Les dejo un Link donde explican que programa instalar para poder usar esas particiones.


PS. You will be able to read the disks but not write to it. As of now write option is not reliable.

No tengo claro si EXT4 ya está soportado o no. Y los EXT2/EXT3 SOLO LECTURA.

lunes, 17 de septiembre de 2012

Devianart, otro concurso mas.

Devianart es un sitio gráfico donde además de compartir trabajos que hacen en todo el mundo, también organizan concursos con precios en metálico.

Ahora está abierto este nuevo concurso.

Falacias...


Falacias sobre "Cómputo Distribuido", vale la pena leerlo, hace tiempo se hablaba del poder del procesamiento distribuido, pero no todo es oro, algunas cosas son de bronce.

Couchdb instalación.


El link al duro proceso de instalar CouchDb en Linux, en Windows son 2 minutos... Pero en Linux parece que las cosas se deben hacer siempre un poco mas complicadas y cuessssssssssta mucho mas.


Quise hacer el proceso de instalar Apache, luego couchdb desde los Sources... taréa complicada como pocas. Finalmente lo logré usando paquetes precompilados, no me hace falta perder horas para instalar un producto.

Android 4.


Tenemos un Release Candidate para el Android 4 y Desire Z. Algunas cosas todavía no funcionan perfectas. (grabar video y tethering).

Cuando lo pruebe en mi teléfono pondré mas info.


jueves, 13 de septiembre de 2012

VMWare Ubuntu SSD USB.


En el nuevo portátil puse Ubuntu Desktop 12.04 lts 64 bits, tiene 8 cores, 8 gb ram, un disco interno de 120 gb SSD, 2 salidas USB 3.0 y con todo bien configurado "vuela".

Es un pedazo de equipo donde corro a diario 4 máquinas virtuales, un Win 2008 r2 para un cliente, un W7pro como Workstation, un servidor Linux con servicios ECommerce, correo y varios y finalmente un OSX 10.8 para divertirme con los usuarios de MACs.

EL PROBLEMA ES:
Cuando el VMWare accede a servidores virtuales, en un disco externo SSD, conectado por USB 3.0 y con formato NTFS, comienzan los problemas.
El servidor virtual se congela, revive, se pone lento, el servidor real demora mucho en responder todas las peticiones.
Con algunos discos descubrimos que no hay suficiente energía en el USB 3.0 para alimentarlo y se desconectan y luego se vuelven a conectar.
En otros discos externos, se ponen muy lentos.

Lo que vemos es que el proceso se pone al 100% usando una CPU.
el proceso es
MOUNT.NTFS
Por momentos baja al 80% y nos permite interactuar con el servidor virtual, pero unos segundos después está nuevamente al 100%

Encontramos dos páginas donde informan de problemas en el driver NTFS. Vale la pena leer todo el texto.

PAGINA1 Página de TUXERA.

PAGINA2 Página de VMware al respecto.


POSIBLE CAUSA
El uso de un disco externo NTFS.
Probamos utilizar el parámetro BIG_WRITE en el momento de montar la unidad, según indica la página
"using the mount option “big_writes” generally reduces the CPU usage, provided the software requesting the writes supports big blocks."

Ese parámetro hace que el driver utilizado para acceder al disco NTFS, sea el
MOUNT.NTFS-3G
y parecía que la velocidad del disco externo era mejor, pero seguían los microcortes, como si fueran interrupciones que congelaban el servidor real.


SOLUCIÓN APLICADA
Formatear un nuevo disco externo con EXT3, un sistema de fichero Linux muy probado, copiar el servidor virtual a ese disco.
Todo parece funcionar correctamente. En unas semanas veremos que pasa.
También hemos puesto un cable que alimenta al disco externo USB, de manera que parte de la energía que necesita viene de un alimentador adicional y NO USA únicamente el conector USB 3.0

Al menos en este equipo el USB 3.0 NO TIENE un gran amperaje. La mayoría de los discos funcionan perfectamente, pero la caja USB externa puede que necesite mas energía.

miércoles, 12 de septiembre de 2012

Consumos, mediciones.


Desde hace unas semanas, estamos probando un medidor de consumo. Cuesta unos 14 euros en el mercado. Es digital, simple y sencillo.

Indica, voltaje actual, Amperes actual, Amp Max, Watts Actual y MAX, también si hubo sobrecarga de consumo.
En una segunda línea digital, muestra el consumo mensual estimado en base a los watts de consumo actual y a un valor de watt que se guarda en el medidor.
En la tercera línea indica el tiempo de medición actual.

Me parece muy bueno el poder meter el costo de cada wattio para que nos indique el consumo en €uros, algo sencillo para la mayoría de nosotros.




Vodafone... ocupada...


Una de las cosas que mas me sorprenden, es la caida de servicios en empresas de "comunicaciones"... Donde uno de sus principales productos es el acceso a internet.


VMWare y la promiscuidad.


Como poner en modo promiscuo una interfaz de red en VMWare.

Depende de la versión (server, esxi, workstation), el método "normal" es

PARA UN GRUPO
chgrp newgroup /dev/vmnet0
chmod g+rw /dev/vmnet0

TODOS LOS USUARIOS
chmod a+rw /dev/vmnet0



Zone-H estadísticas.


Un sitio para ver sobre las estadísticas de "hacked sites" en internet.
Muchos grupos de hackers y crackers envían sus "hacks" o defacement para ser publicados y que cuenten en las estadísticas.

Sin opinar si está bien o mal lo que ocurre, es un sitio para entar (con registro previo) y ver que está pasando en internet.


NetCraft.


Desde hace muchos años consulto esta página en internet http://news.netcraft.com/, para ver estadísticas de uso de S.O., crecimiento de servidores, de dominios y mas estadísticas.

Tiene herramientas para instalar en navegadores y hacer un poco mas segura la navegación.


Hamachi. VPN


Hamachi para quien no lo sepa, era un producto prehistórico (www.hamachi.cc), que servía para montar VPN (redes privadas virtuales) sobre internet.

Lo usábamos los que nos gustaba jugar, para armar grupos cerrados de equipos que corrieran un determinado juego y no hacerlo en forma pública en internet. Una de las ventajas es que esa red funciona "sobre" internet de manera transparente, los paquetes viajan encriptados y siempre fué un producto que andaba muy bien.

Logmein compró ese producto y lo asoció a su suite de herramientas, llamándolo "Logmein Hamachi", dando una funcionalidad similar, con una interfaz mas bonita.

Para Linux existe una versión de hamachi "beta", que se puede bajar e instalar, de manera de unir equipos Windows y Linux en la misma red Virtual.

Luego de instalar el paquete en Linux y mediante comandose se asocie ese equipo a una VPN.

COMANDOS

#hamachi login
#hamachi join xxxxxxxxxx (nombre de la VPN)
pedirá password
#hamachi list (para ver los equipos en la misma VPN)


#hamachi (para ver los comandos)

BigTable.


Uno de los productos NoSQL es Bigtable, soportado por Google, encontré un sitio con info sobre el producto hecho de una manera muy sencilla y clara para entenderlo.Link al sitio de BigTable.

El link a White Paper de Google no funciona.


RESUMEN

PUT
http://bigtable.appspot.com/put//// Inserts the specified values with the current the current time. http://bigtable.appspot.com/putTs//
/// Inserts the specified values. GET http://bigtable.appspot.com/getVer/
/// Returns the count most recent cells. http://bigtable.appspot.com/getVerTs/
//// Returns the count most recent cells with timestamps less than that specified. DELETE http://bigtable.appspot.com/deleteAllRow//
/ Delete all matching cells. http://bigtable.appspot.com/deleteAllRowTs//
// Delete all matching cells.

JSON



Para los que estamos escuchando hace tiempo el término JSON "JavaScript Object Notation (JSON)", encontré un ejemplo muy bueno y simple para entenderlo.

Básicamente JSON es una forma de almacenamientio de datos "similar" a XML.

Ver un link JSON en modo puro. La información en formato JSON está almacenada en un sitio web.

Ver un link JSON en modo "salida final". Pedir los mismos datos, pero indicando que el contenido es IMAGE "?content-type=image/jpeg"

El formato JSON es usado en varios de los productos NOSQL, entre ellos CoachDB.

Recomiendo instalar CoachDb en Windows para entender que hace el servidor, y como se almacena la información internamente. Es bueno probar el FUTON, una herramienta gráfica para gestionar el servidor.

http://localhost:5984/_utils/

UNA GUIA GRATUITA para ver en internet. Simple pero efectiva.

lunes, 10 de septiembre de 2012

Fing... net scanner.

Check out Fing, the ultimate network tool by OverlookSoft. http://goo.gl/GiFVE

Un muy buen producto para iphone y android.

Videos sobre MSF.


Link a los videos de MSF, totalmente recomendable.

Error en páginas MS


El sábado estuve bajando info del programa para "Emprendedores" de Microsoft, ofrecen servicios gratuitos o muy baratos, pruebas de productos y varias cosas que toda empresa del tipo StartUp necesita.
(Siempre y cuando quiera usar productos MS)

En una de sus páginas te puedes registrar para obtener esos beneficios, pero.... en casa de herrero, fallan sus servidores.


lunes, 3 de septiembre de 2012

Pixel.


He comprado un lente para sacar fotos a muy corta distancia, entre 1 y 4 cms. Básicamente es como una lupa, medida 58 mms, para mi cámara Canon digital.

Pongo dos ejemplos donde se ven claramente los pixels del monitor, estoy haciendo varias pruebas porque al tener una distancia focal tan corta, es difícil sacar fotos en foco.

Haré mas pruebas con un trípode y un disparador remoto wireless, para evitar movimientos.