Como conectar Netbeans 6.9.1 a un servidor git desde windows

Algo complicado hacer la conexión casi fue a pie, esperemos que con el tiempo mejore este plugin para git, al parecer la version 7 de netbeans ya la incluirá como plugin oficial lo que nos da ciertas esperanzas.

Trabajé con Netbeans 6.9.1 en windows vista sobre virtual box instalado en un Ubuntu 9.10 y conectandome a un repositorio git sobre un Ubuntu 8.04.

En primera debemos bajar la version compatible nbm (net beans module) de nbgit de la siguiente página:
http://code.google.com/p/nbgit/downloads/list

Luego abrimos nuestro queridísimo netbeans y en el menú Tools/Plugins luego en la pestaña Downloades buscamos el archivo nbm que acabamos de bajar e instalamos y reiniciamos netbeans.

Ahora supongamos que ya tenemos un proyecto en el servidor que se llama MiProyecto.git y solo queremos clonarlo, para esto entramos al menu Team/Git/Clone Other ... y cuando se abra vamos pegar una ruta similar a esta:

ssh://gitServer/home/git/MiProyecto.git

¿se las rayó el server ? esto es porque nos falta configurar ciertas cosas: en primera ubiquemonos en nuestra carpeta C:/Users/MiUsuario ahi vamos a crear una carpeta .ssh, las carpetas que inician con punto al menos el windows vista no me permite crearlas asi que lo haremos entrando al command y con el comando mkdir si podemos (nosotros 1 - 0 windows)

en esa carpeta vamos a colocar varios archivitos, en primera un archivo config que contenga lo siguiente:

Host gitServer
User git
Hostname miserver.com -- o la ip
Port 22
IdentityFile "C:\Users\MiUsuario\Documentos\ssh_keys\id_rsa"

Ahora vamos a bajar un programita que se llama puttygen que nos sirve para generar claves rsa y similares, ya que estamos ahi bajamos tambien el pageant que nos va a servir tambien al rato:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Al abrir puttygen con las opciones por default damos click en "Generate" mientras movemos el ratón encima del area en blanco para que se haga una clave aleatoria,una vez que termina damos click en "save public key" la cual guardamos en nuestra carpeta C:\Users\MiUsuario\Documentos\ssh_keys\ como id_rsa.pub

Despues damos click en el menu Conversions/Export OpenSSH Key cuando nos pregunte si estamos seguros de guardar el archivo sin una phrasekey le decimos que si, entonces guardamos en C:\Users\MiUsuario\Documentos\ssh_keys\ como id_rsa

Ahora, el archivo id_rsa.pub es el que debes dar a tu sysadmin para que lo agregue al archivo /home/git/.ssh/authorized_keys2

Al otro archivo (id_rsa) le vamos a dar uso de la siguiente manera:
ejecutamos el programita pageant, el cual se abrira como un icono del sistema junto al reloj, le damos click derecho y luego click en View Keys, luego Add Key ... y buscamos nuestro archivito.

Si todo transcurrio sin problemas reiniciamos nuestro Netbeans y repetimos la clonación ... voilá!! Tenemos netbeans conectado a un servidor git.
The Dante's Inferno Test has banished you to the Sixth Level of Hell - The City of Dis!
Here is how you matched up against all the levels:
LevelScore
Purgatory (Repenting Believers)Very Low
Level 1 - Limbo (Virtuous Non-Believers)Low
Level 2 (Lustful)Very High
Level 3 (Gluttonous)High
Level 4 (Prodigal and Avaricious)Very Low
Level 5 (Wrathful and Gloomy)High
Level 6 - The City of Dis (Heretics)Extreme
Level 7 (Violent)Very High
Level 8- the Malebolge (Fraudulent, Malicious, Panderers)Moderate
Level 9 - Cocytus (Treacherous)High

De nuevo con postgres

Hace tanto que no usaba postgres que ya había olvidado ciertos detalles, los documentare aqui para futuras referencias, estamos usando un postgresql 8.4.5 sobre un ubuntu server 9.10, tambien tuve otras bronquillas interesantes con los accesos locales y remotos.

1. Despues de instalar nuestro postgres con apt-get nos disponemos a accesar con el ya tradicional:
$sudo su postgres

2. Una vez adentro accesamos directamente a pqsl
#psql

3. Digamos que quiero hacer una base de datos llamada pepito y que el usuario sea pepito_user con un password, primero crearemos el usuario, despues la db y al final nos salimos

CREATE USER pepito_user WITH PASSWORD 'n0m4nch35';
postgres=# CREATE DATABASE pepito WITH OWNER pepito_user;
postgres=# \q

4. Ahora accesamos como pepito_user
# psql -d pepito -U pepito_user --password

Aqui lo mas probable es psql te raye la mother, que no te permita accesar, esto es porque no está habilitado el acceso de este tipo para postgres, para hacer esto modificamos nuestro querido archivo pg_hba.conf, en cada maquina puede variar pero en la mia estaba en
/etc/postgresql/8.4/main/pg_hba.conf

Lo editamos como root, te encontrarás esta linea la cual vamos a borrar o comentar
local all all ident

y escribiremos la siguiente
local all all md5

Explicacion: el método de autenticación ident se refiere a que el usuario que se validará para el acceso sera el que esta en sesión y como mi usuario es postgres aunque escriba yo --password en psql le valdrá gorro, por lo cual preferimos md5 que nos permite mandar un user y password encriptado por seguridad en md5, esto también es útil para accesar remotamente ya que remotamente no siempre estas logueado como un usuario ident.

Una vez que guardemos los cambios debemos reiniciar el demonio de postgresql
# sudo /etc/init.d/postgresql stop
# sudo /etc/init.d/postgresql start
ó
# sudo /etc/init.d/postgresql restart

5. Ahora que ya estamos dentro ya podemos crear la estructura de nuestra db con CREATE table... cosa que no especificare aqui. Despues de eso nos vamos a otra maquina que tenga instalado un cliente psql e intentamos accesar remotamente:

# psql pepito -h pepito.com.mx -U pepito_user --password

pepito.com.mx puede ser la ip de tu server postgres también... sin embargo lo mas probable es que te rechace la petición... ¿que pasa? que nuestro archivo pg_hba.conf no esta configurado para recibir peticiones externas, por lo cual nos regresamos a nuestro server de postgresql y lo editamos de nuevo, ahora agregaremos la siguiente linea:

host all all 0.0.0.0 0.0.0.0 md5

Y reiniciamos postgres. Ahora ya podrán acceder remotamente y hacer las tablas que quieran a menos que suceda algo como lo del siguiente punto.

6. Mi server tiene 6 direcciones ip para una misma tarjeta por lo cual postgres no mostraba el abierto el puerto mas que en localhost y en la ip principal, para que postgres se escuche en todas las direcciones ip o incluso en las direcciones que tu elijas debemos modificar el archivo
sudo vi /etc/postgresql/8.4/main/postgresql.conf

Buscamos una linea que diga listen_addresses que esta comentada, ahi vienen las instrucciones para configurarla, yo lo único que hice fue escribir una nueva linea de la siguiente manera:

listen_addresses = '*'

reiniciando el servidor ya se podia ver el puerto 5432 de postgresql en todas las ip de forma remota... como supe esto? pues monitoreando los puertos con ayuda del comando "nmap" y con el comando "netstat -putan" con los cuales puedes escanear los puertos abiertos tanto de tu misma maquina como el de otras maquinas remotas, por ejemplo, al ejecutar nmap dentro de mi server podia ver el puerto 5432 abierto pero si ejecutaba nmap desde otra maquina hacia mi server no lo podia ver, por cierto, recomiendo ejecutar nmap de la siguiente manera, tarda un poco mas pero podemos ver mas puertos abiertos.

#nmap -p1-65535 pepito.com.mx

FIN

El estado fallido

De repente se puso de moda este término e igual que muchos pense que era solo un término político para deslegitimar al gobierno pero hace rato me encontré la definición de estado fallido en wikipedia veamos:

1. Pérdida de control físico del territorio, o del monopolio en el uso legítimo de la fuerza. Las policias no tienen obviamente ya desde hace rato ese monopolio ademas de que esta completamente inutilizadas, el ejercito intenta recuperar ese monopolio pero obviamente no lo tiene ...

2. Erosión de la autoridad legítima en la toma de desiciones. Bueno, al menos todavia tenemos alguien al mando aunque sus deciciones sean algo estúpidas ..

3. Incapacidad para suministrar servicios basicos. La verdad no hemos llegado a tanto pero si se ha visto afectado por ejemplo los tanques de almacenamiento de agua por el vandalismo al grado de dejar sin agua varias colonias ...

4. Incapacidad para interactuar con otros estados. Este problema no se presenta ...

Como vemos según estos puntos NO estamos en un estado fallido, sin embargo cuando lees los siguientes lineas:

"Por lo general, un Estado fallido se caracteriza por un fracaso social, político y económico, caracterizándose por tener un gobierno tan débil o ineficaz, que tiene poco control sobre vastas regiones de su territorio, no provee ni puede proveer servicios básicos, presenta altos niveles de corrupción y de criminalidad, refugiados y desplazados, así como una marcada degradación económica. Sin embargo, el grado de control gubernamental que se necesita, para que un Estado no se considere como fallido, presenta fuertes variaciones ...."

cumplimos con todo excepto con lo de los servicios básicos .... continuamos:

"En un sentido amplio, el término se usa para describir un Estado que se ha hecho ineficaz, teniendo sólo un control nominal sobre su territorio en el sentido de no tener grupos armados desafiando directamente la autoridad del Estado, no poder hacer cumplir sus leyes debido a las altas tasas de criminalidad, a la corrupción extrema, a un extenso mercado informal, burocracia impenetrable, ineficacia judicial, interferencia militar en la política."

una vez mas cumplimos por todo excepto por la interferencia militar en la política, nada más eso nos falta!! una dictadura militar, con eso de que la iglesia católica ya esta volviendo a las andadas es un paso perfecto para que el ejercito y todas las formas de autoritarismo pidan su derecho a entrarle a la jugada.

En resumen, no estamos en un estado fallido porque el estado sigue suministrando servicios básicos sin embargo no hace cumplir la ley porque ha perdido el monopolio en el uso de la fuerza, el dia que deje de llegarte agua a la casa o no puedas realizar algún tramite porque simplemente no hay quien lo haga, ese dia podremos hablar del estado fallido.