alx741
Usuario (Ecuador)
Hola nuevamente Taringa! Hace tiempo (mucho) mientras aprendía a programar php/html hice un ridículo script web que consiste en una <red social musical> que permite compartir música, y escuchar/descargar la música que los demás usuarios publican, teniendo la posibilidad de comentar y valorar dichos aportes con un mecanismo de "estrellas", cuenta ademas con el "muro de la fama" y la posibilidad de comunicar entre usuarios haciendo uso del chat y la "pizarra"... en fin.. El punto es que he decidido publicarlo en SourceForge por que pensé que talvez a alguien (por remoto que fuese) le serviría.. :shurg: , y lo publiqué en mi blog aquí: http://silly-bytes.blogspot.com/ a donde pueden ir si desean la info completa.. que para este post resulta irrelevante. Advertencia: como dije.. hice esto cuando aprendía acerca del tema y el código es ridículamente estúpido, y para colmo posiciona los objetos usando -tablas invisibles- en lugar de css..y de la seguridad ni cuento... Algunas capturas: Aquí el proyecto en SourceForge: https://sourceforge.net/projects/sapomusic/ Si hay alguien aprendiendo estas cosas, puede ser que le caiga bien echar mano de este script y jugar un poco... Saludos!
Saludos Taringa! Una vez más vengo a compartir una entrada en mi blog con vosotros. Aquí la entrada original: Aclaro que aunque sirve para pentesting sirve por supuesto como cualquier memoria USB. ################################################# Hoy producto de el aburrimiento (entiéndase por aburrimiento al echo de tener mucha tarea por hacer y muy pocas ganas de hacerla) y mientras observaba con detenimiento el cuerpo descubierto de una memoria usb (pendrive) cuyo recubrimiento plástico había sido profanado por culpa de mi hermana un calamitoso incidente con un camión o.O , he tenido una idea. Pensé que si encontrase la forma de llevar la memoria USB de forma tal que simplemente no pudiese olvidarla me ahorraría varios inconvenientes y además tendría siempre conmigo una liveusb con algo como backtrack por ejemplo, así que mientras sorteaba posibilidades y tras descartar un par de ideas bastante descabelladas (las cuales aun estoy reconsiderando pero que dejaremos para otra entrada) supuse que la mejor y más sencilla forma de hacerlo seria fusionando mi zapato con dicha memoria USB, para lo cual los pondremos juntos en un tazón y le echaremos radiación por supuesto, vamos a ello: Primero necesitaremos: * Un par de zapatos cuya plataforma o zuela sea de un espesor conveniente (no muy delgada) y preferiblemente si el material de esta nos facilita el trabajo (si lo intentas con cuero te vas a llevar la vida o un dedo en ello) *Un memoria usb (pendrive) [de la capacidad que prefieras] *Un cable USB de tipo B *Un conector USB hembra de tipo B (que lo puedes reciclar de una vieja impresora o scanner, o comprarlo en una tienda de electrónica) {En realidad puedes usar otro tipo de conector USB como el "mini A" o "mini B", pero para ello necesitarás también su respectivo cable para conectarlo al PC, en este caso yo he usado el tipo B por ser más "robusto", su tamaño nos facilita la conexión al zapato y si nos movemos no se desconectará y permanecerá firme; también por que el cable es el más común y siempre tendremos almenos 1} Con esto procederemos a desensamblar nuestra memoria usb (que en mi caso el trabajo ya estaba echo) Y con ayuda de un cautín, maya para desoldar y mucha paciencia desoldaremos el conector usb, retirando con delicadeza el estaño de los 4 pines y de los extremos que lo mantienen unido a la placa Una vez tengamos la placa sin el conector usb, soldaremos 4 cables sobre sus 4 pines, más uno extra en uno de los extremos (los que mantenían unido el conector a la placa) Numeraremos los cables empezando desde arriba, siendo el cable de más arriba (en la imagen) el 1, luego el 2, 3 y 4; el ultimo [5to] (el que esta soldado donde antes se enganchaba el puerto usb) lo llamaremos GND. Con esto y este esquema de pines del conector hembra sabremos donde soldar los cables (el que hemos llamado "1" al pin "1" del conector, etc) conectando al final el cable "GND" al chasis del conector (la parte metálica exterior) Luego es conveniente asegurar los puntos de soldadura y los cables usando silicon (goma caliente) tanto en la placa como entre los pines del conector hembra usb como se puede apreciar en las imágenes. Ahora dejaremos de lado un momento a la memoria y tomaremos el zapato (el que prefieras, yo he usado el derecho) y con mucha paciencia empezaremos a cortar y separar la zuela por la mitad (dejando material por arriba y por abajo), a la vez que cavamos el espacio donde irá el conector y donde cabrá la memoria. Para ello usaremos la herramienta que más no resulte como un cutter, cuchilla, bisturí, etc. El espacio para el conector lo cavamos progresivamente para que este se ajuste con firmeza. Una vez tenemos el espacio adecuado para alojar la memoria y el conector lo colocamos y pegamos con goma caliente el conector a la parte superior posicionandolo en su ubicación definitiva. Luego conectamos a la PC usando el cable mencionado para comprobar su correcto funcionamiento antes de proceder a sellar nuevamente el zapato. (debe funcionar como la memoria usb de costumbre) Una vez nos hayamos cerciorado de su funcionamiento sellaremos el zapato usando "semento de contacto" o "goma de zapatero" Aplicando goma en ambas caras a unir y dejando secar por un momento (manteniendo ambas partes separadas) Luego de un par de minutos de secado, podemos unir finalmente ambas partes de la zuela y hacer presión un momento hasta que queden definitivamente unidas. Listo! ahora podremos conectar nuestro zapato a la PC (no importa si lo traemos puesto) para usarlo como dispositivo de almacenamiento o para instalar en el una distribución live de GNU/Linux (para esto prefiero backtrack puesto que trae todas las herramientas que pudiese necesitar y me ahorro el trabajo de instalar y compilar). A poco no quedó tierno :3 PD: Recuerdan que mencioné la paciencia al momento de desoldar el conector usb de la memoria? Pues haré enfasis en ello mostrandoles lo que me ocurrio a mi que mientras desoldaba tiraba con fuerza del conector lo que produjo que se arrancaran parte de las pistas sobre la placa de la memoria. Desastre que logre solucionar al más puro estilo macgayver soldando directamente sobre el integrado controlador y sobre un resistor por la parte de abajo, pero puede que ustedes no tengan la misma suerte así que sean cuidadosos!
Saludos TARINGA! Comparto con uds nuevamente un post de http://silly-bytes.blogspot.com Como aficionado a la electrónica es muy a menudo necesario solidificar algún proyecto en una placa de circuito, incluso si esta es una simple placa pre perforada. Otra veces es necesario reemplazar o modificar componentes de placas de circuito existentes o simplemente recuperar componentes útiles de placas en desuso, en cualquier caso contar un con cautín es indispensable para cualquier laboratorio si vamos a jugar con electrónica. Si hablamos de una afición muy probablemente usaremos un cautín de relativo bajo precio, o al menos no uno de esos costosos de estación con temperatura regulable, con modo de stand by cuando el cautín se deposita en su base y con materiales que jamas se torna negro y mucho menos carbonizan con el uso normal. Mi ultima experiencia con un cautín de marca "Proskit" (40W) fue que tras encenderlo podía utilizarlo a la perfección durante unos 15 o 20 minutos como máximo antes de que su punta a pesar de estar muy bien estañada y ser constantemente limpiada en pasta para soldar y esponja humedecida, esta se tornaba negra, opaca y difícilmente lograba fundir adecuadamente el estaño. Experimentando descubrí que la solución era simple: desconectarlo, dejarlo enfriar, conectarlo nuevamente y limpiar su punta como de costumbre al calentarse, aunque esto resolvía el problema es bastante incomodo hacerlo cada 10 o 15 minutos. Con algo de investigación encontré que el problema por supuesto se debía al exceso de calor en la punta del cautín, además de que una potencia ideal de cautín para trabajos de electrónica es de como máximo 20W, así que solucione mi problema y deje atrás mis dolores de cabeza de la siguiente manera: La solución consiste en nada más que un diodo, armado junto con un interruptor para proporcionarnos un control sobre la potencia del cautín. El circuito a montar es este: Si... así de simple es... El diodo produce un corte por la mitad de la onda sinusoidal de AC a la cual conectamos el cautín: Con lo cual haremos caer la potencia que recibe el cautín a la mitad y el cautín de 40W pasará a ser de 20W , y el problema de exceso de temperatura queda solucionado y no volveremos a tener dolores de cabeza con una punta negra que no funde el estaño. Sin embargo a veces podríamos necesitar nuestro cautín a su máxima potencia, para calentarlo más rápido al encenderlo o para soldar componentes grandes que requieren una transferencia térmica mayor, para esto he agregado en el circuito un interruptor que conecta directamente los 2 puntos del diodo, permitiendo nuevamente el paso completo de AC. En la construcción he usado para este interruptor un pulsante de timbre para hacer un pedal similar al de Pedal para tecaldo usando una caja de cassette, y el resultado ha sido este: Como se aprecia he usado 2 diodos en lugar de 1, pues tenia en casa diodos algo pequeños y he colocado 2 para asegurarme de que no se sobrecalienten, además en esta caja tengo 2 toma corrientes, así que son 2 pares de diodos (uno para cada toma corriente de salida). De esta manera mi cautín nunca volvió a darme problemas de punta negra y carbonizada y ademas tengo en el piso el pedal que me permite obtener máxima potencia para cuando lo necesito. Espero pueda llegar a ser tan útil para alguien como lo es para mi, Saludos. PD: Por problemas en TARINGA! , solo unas pocas imágenes se pudieron cargar, para ver la información completa por favor ir a la dirección de la fuente.
Hola Taringa! El otro día salio un post con plantillas de Cube Craft y mientras las revisaba pensaba: ...seria genial una de tux.... OH mejor aún una de Richard Stallman .... así que empesé a buscar una plantilla de cube craft de Richard Stallman..... pero obviamente sin resultado alguno (sabia que era una búsqueda infructuosa, pero lo hice por si acaso), entonces lo que hice fue tomar una plantilla de dicho post para hacer con ella una de nuestro idolo! ...pero... por que Cube Craft en lugar de un Paper Craft más realista? 1) Por que es más sencillo hacerlo... 2) Por que queda más cómico y caricaturesco Tomé de muestra una plantilla de Cube Craft de zoidberg por que pensé que podría reemplazar los tentáculos (o lo que sean) de su barbilla por las barbas de Stallman aquí la plantilla original: y aquí pueden ver (certificado) mi trabajo sobre dicha plantilla: Y aquí el Cube Craft listo para armar Lo sé.. no quedo perfecta pero es que no soy muy bueno en este campo... pero hice lo que pude y quedó simpático PD: mi impresora esta dañada y no lo puedo armar aun * Imprimanlo, armenlo y comenten con una foto * Avísenme si hay algo que corregir (como digo sin impresora yo no lo pude comprobar) * Subiré otras versiones conforme lo vaya: mejorando, puliendo, etc...
Saludos Taringa! una vez más comparto una entrada de www.silly-bytes.blogspot.com Este es un ejemplo bastante completo de una interfaz basada en Ncurses que implementa un juego. El juego consiste en desplazar un robot a través de una cuadricula evadiendo los obstáculos para llegar a una salida y lograr hacerlo antes de que el robot se quede sin energía. A esto si se le puede llamar un juego... ...Es bastante malo como tal, no es nada divertido ni disfrutable, no será una aventura mágica ni te tendrá horas jugandolo, incluso sus reglas elementales hacen de él una actividad que no representa ningún reto ni entretenimiento, pero! es un muy buen ejemplo del uso de la librería Ncurses con el lenguaje C y un no tan bueno, pero simple ejemplo de el control de hardware. Veámoslo en acción: link: https://www.youtube.com/watch?v=3UK9bW3lVbk&feature=youtu.be No me detendré a explicar nada sobre el uso de Ncurses pues pretende ser un ejemplo más no una guía, para ello está el excelente HOWTO , pero si que me detendré a explicar algo sobre el hardware: Para la parte mecánica he utilizado los mecanismos de 2 impresoras viejas montadas sobre una caja de madera echa a la medida para este propósito, de forma que un mecanismo (eje Y) adherido a la base de la caja y otro mecanismo (eje X) adherido al carro del primer mecanismo, además el eje X tiene un imán para desplazar el robot, el cual es una figura de papel sobre otro imán. Se consideró también que el motor del mecanismo del eje Y fuera el más potente pues necesita mover con facilidad el peso del segundo mecanismo. Así pues el motor del eje Y se alimenta con 24V y el del eje X con 12V. Para la parte de control se utilizó el conversor USB-UART publicado aquí. Este se encarga de comunicar los comandos enviados por la PC a un microntrolador PIC18F4550 que a su vez activa 2 puentes H que mueven los motores en la dirección deseada. En lugar de utilizar varios transistores para implementar el puente H se usó un L293D que tiene un su interior 2 puentes H, suficientes para controlar los 2 motores excepto por un detalle: cada L293D puede utilizar un solo nivel de tensión de salida y nosotros necesitamos 2 (12V y 24V), simplemente usamos 2 L293D y se termina el problema. Los comandos que recibe el uC de la PC para mover los motores es como: <eje>:<direccion>:xxxx <x,y>:<f,b>:xxxx (donde xxxx es un numero de 4 dígitos que indica que tiempo en mili segundos (no es muy preciso) se debe activar el motor) Ejemplos: <x>:<f>:0100 (mover en el eje X hacia adelante (forward) durante 100 mili segundos) <y>:<b>:0280 (mover en el eje Y hacia atrás (backward) durante 280 mili segundos) El circuito a montar es este: El firmware del microcontrolador (escrito para el compilador libre SDCC y para el uC PIC18F4550) se encuentra en el directorio hdwr/firmware del código, se lo compila ubicándose en dicho directorio y ejecutando: $ make lo que generará una salida code.hex que es el programa a grabar en el uC, para este menester se puede utilizar esto. El código tiene documentación y explica algunos detalles más. Está escrito en ingles, así cualquiera que no sea de habla hispana puede leerlo también. El código está en github: https://github.com/alx741/ncurses_robot ...Y una certificada para T!

Hola Taringa!! Hoy quiero compartirles esto con lo que he estado jugando y que en realidad tiene la intención de hacer con ello algo más interesante, pero mientras tanto.. copiare aquí lo que he publicado en mi blog, pretendiendo que sea lo más directo posible, pero siempre que lo crean necesario pueden acercarse por más información: Sabemos que para hacer girar un motor PAP Bipolar tenemos que dar pulsos secuenciales en sus 4 cables (Que llamaremos A, B, C y D), pero alternando la polaridad, por lo que la ciruito necesario se complica un poco, mientras que para los Unipolares este problema desaparece, así que empezaremos por jugar con los motores PAP Unipolares. Unipolares: Esquema de conexión en el puerto paralelo: Me parece que queda bastante claro, pero vale aclarar que los "pines" del esquema son los correspondientes del puerto paralelo, y que estamos usando el nibble bajo del byte del puerto; además se puede ver como los 2 cables "comunes" del motor unipolar se conectan al positivo de la fuente de alimentación, la cual corresponde con la tensión que requiere nuestro motor (en mi caso 9V), y los cables A,B,C y D serán conectados al negativo de la fuente al saturarse los transistores con la señal del puerto. Gracias a Fernando @Aces_High_87 por la ayuda con el lío que tenia con los transistores. Aquí se puede apreciar de color Rojo los 8 pines de datos del puerto, de los cuales hemos usado 4 (del pin 2 al 5) es decir 4 bits. Aquí se pude observar el circuito que yo he montado, y he usado un cable de puerto paralelo de una vieja impresora, lo cual resulta muy practico. Código: Con el circuito montado lo que necesitamos ahora es el código que saque las señales correctas en el orden correcto por el puerto paralelo para mover nuestro motor, y tomando en cuenta también los distintos modos a los que puede trabajar el motor(Simple Step, Double Step, Half Step). Las secuencias son: Simple Step: A-B-C-D Double Step(mayor torque): AB-BC-CD-DA Half Step(doble precisión al dar medio paso por ves): A-AB-B-BC-C-CD-D-DA El código no pretende ser un ejemplo de elegancia ni mucho menos, pero funciona... Es solamente una clase la cual usaremos con otro código para controlar el motor /* * ===================================================================================== * * Filename: unipolar.cpp * * Description: Clase para mover un motor PAP Unipolar por puerto paralelo * * Version: 1.0 * Created: 09/28/12 11:44:21 * Revision: none * Compiler: g++ * License: GPLv3 * * Author: Daniel Campoverde CarriÃn * Organization: Silly Bytes * * ===================================================================================== */ #include <iostream> #include <sys/io.h> #include <unistd.h> #define puerto (0x378) //Puede ser (0x278) //datos sacados por el nibble bajo del puerto paralelo //A,B,C,D son los cables del motor PAP #define A 1 #define B 2 #define C 4 #define D 8 #define AB 3 #define BC 6 #define CD 12 #define DA 9 using namespace std; class motor_unipolar{ public: //steps=Numero de pasos del motor,type_step[0=simple,1=double.2=half] motor_unipolar( int steps, int type_step=1); int step( int steps = 1, int direction = 0, int rate_step = 25000); ///pasos a dar,direccion[0=horario,1=antihorario],tiempo entre paso y paso(microsegundos) int rotate( int angle = 1, int direction = 0, int rate_step = 25000);///angulo a rotar (degrees),direccion[0=horario,1=antihorario],tiempo entre paso y paso(microsegundos) void stop(){ outb(puerto,0);} //poner a 0 el puerto private: int motor_steps; int step_type; float angle_by_step; int sequence[8]; int *current_step; void single_step( int direction); int forward_sequence(); void backward_sequence(); }; motor_unipolar::motor_unipolar( int steps, int type_step) : motor_steps(steps), step_type(type_step), angle_by_step(360/steps){ if(ioperm(puerto,1,1)){ //Abrir puerto y configurar permisos cout << "Error de permisos" << endl << flush; } switch(step_type){ case 0: sequence[0] = A; //Secuencia simple_step sequence[1] = B; sequence[2] = C; sequence[3] = D; sequence[4] = 0; sequence[5] = 0; sequence[6] = 0; sequence[7] = 0; break; case 1: sequence[0] = AB; //Secuencia double_step sequence[1] = BC; sequence[2] = CD; sequence[3] = DA; sequence[4] = 0; sequence[5] = 0; sequence[6] = 0; sequence[7] = 0; break; case 2: sequence[0] = A; //Secuencia half_step sequence[1] = AB; sequence[2] = B; sequence[3] = BC; sequence[4] = C; sequence[5] = CD; sequence[6] = D; sequence[7] = DA; break; } current_step = sequence;//colocamos el paso actual al principio de ka secuencia } int motor_unipolar::step( int steps, int direction, int rate_step){ while(steps > 0){ single_step(direction); usleep(rate_step); steps--; cout << *current_step << endl << flush; } return 0; } int motor_unipolar::rotate( int angle, int direction, int rate_step){ int steps = int(angle/angle_by_step); while(steps > 0){ single_step(direction); usleep(rate_step); steps--; } return 0; } int motor_unipolar::forward_sequence(){ if(current_step==&sequence[7] || *current_step == 0){ current_step = sequence; return 0;} //reiniciamos la secuencia current_step++; //avanzamos en la secuencia if(*current_step == 0){ current_step = sequence; return 0;} return 0; } void motor_unipolar::backward_sequence(){ if(current_step==&sequence[0]) current_step = &sequence[7]; //reiniciamos la secuencia current_step--; //avanzamos en la secuencia if(*current_step==0) backward_sequence(); } void motor_unipolar::single_step( int direction){ outb(*current_step,puerto); if(direction==0){ forward_sequence();} else{backward_sequence();} } Bipolares: **Como trabajaremos solo con unipolares, no lo pondré aqui, pero de todos modos pueden encontrarlo en Haciendo girar el motor: Ahora que tenemos las clases necesarias para mover el motor cuyo circuito ya tenemos montado en el puerto paralelo, usaremos un código que a su vez aproveche dichas clases para jugar con el motor. Así que ha manera de ejemplo yo he agregado la función main() para el fuente de unipolar.cpp, quedando así (es de lo más simple y tonto): /* * ===================================================================================== * * Filename: unipolar.cpp * * Description: Clase para mover un motor PAP Unipolar por puerto paralelo * * Version: 1.0 * Created: 09/28/12 11:44:21 * Revision: none * Compiler: g++ * License: GPLv3 * * Author: Daniel Campoverde CarriÃn * Organization: Silly Bytes * * ===================================================================================== */ #include <iostream> #include <sys/io.h> #include <unistd.h> #define puerto (0x378) //Puede ser (0x278) //datos sacados por el nibble bajo del puerto paralelo //A,B,C,D son los cables del motor PAP #define A 1 #define B 2 #define C 4 #define D 8 #define AB 3 #define BC 6 #define CD 12 #define DA 9 using namespace std; class motor_unipolar{ public: //steps=Numero de pasos del motor,type_step[0=simple,1=double.2=half] motor_unipolar( int steps, int type_step=1); int step( int steps = 1, int direction = 0, int rate_step = 25000); ///pasos a dar,direccion[0=horario,1=antihorario],tiempo entre paso y paso(microsegundos) int rotate( int angle = 1, int direction = 0, int rate_step = 25000);///angulo a rotar (degrees),direccion[0=horario,1=antihorario],tiempo entre paso y paso(microsegundos) void stop(){ outb(puerto,0);} //poner a 0 el puerto private: int motor_steps; int step_type; float angle_by_step; int sequence[8]; int *current_step; void single_step( int direction); int forward_sequence(); void backward_sequence(); }; motor_unipolar::motor_unipolar( int steps, int type_step) : motor_steps(steps), step_type(type_step), angle_by_step(360/steps){ if(ioperm(puerto,1,1)){ //Abrir puerto y configurar permisos cout << "Error de permisos" << endl << flush; } switch(step_type){ case 0: sequence[0] = A; //Secuencia simple_step sequence[1] = B; sequence[2] = C; sequence[3] = D; sequence[4] = 0; sequence[5] = 0; sequence[6] = 0; sequence[7] = 0; break; case 1: sequence[0] = AB; //Secuencia double_step sequence[1] = BC; sequence[2] = CD; sequence[3] = DA; sequence[4] = 0; sequence[5] = 0; sequence[6] = 0; sequence[7] = 0; break; case 2: sequence[0] = A; //Secuencia half_step sequence[1] = AB; sequence[2] = B; sequence[3] = BC; sequence[4] = C; sequence[5] = CD; sequence[6] = D; sequence[7] = DA; break; } current_step = sequence;//colocamos el paso actual al principio de ka secuencia } int motor_unipolar::step( int steps, int direction, int rate_step){ while(steps > 0){ single_step(direction); usleep(rate_step); steps--; cout << *current_step << endl << flush; } return 0; } int motor_unipolar::rotate( int angle, int direction, int rate_step){ int steps = int(angle/angle_by_step); while(steps > 0){ single_step(direction); usleep(rate_step); steps--; } return 0; } int motor_unipolar::forward_sequence(){ if(current_step==&sequence[7] || *current_step == 0){ current_step = sequence; return 0;} //reiniciamos la secuencia current_step++; //avanzamos en la secuencia if(*current_step == 0){ current_step = sequence; return 0;} return 0; } void motor_unipolar::backward_sequence(){ if(current_step==&sequence[0]) current_step = &sequence[7]; //reiniciamos la secuencia current_step--; //avanzamos en la secuencia if(*current_step==0) backward_sequence(); } void motor_unipolar::single_step( int direction){ outb(*current_step,puerto); if(direction==0){ forward_sequence();} else{backward_sequence();} } int main(){ int opcion; motor_unipolar motor(200); int direccion; int valor; for(;{ cout << "nnnAngulo, Pasos, Salir[0,1,2]n >> "; cin >> opcion; cout << "Valor (angulo o pasos)n >> "; cin >> valor; cout << "Direccion[0,1]n >> "; cin >> direccion; if(opcion==0){ cout << "Rotando..." << endl; motor.rotate(valor,direccion); }else if(opcion==1){ motor.step(valor,direccion); cout << "Rotando..." << endl; }else{ motor.stop(); return 0;} } } Una vez compilado con g++ unipolar.cpp -o rotate lo ejecutamos obteniendo este resultado: A poco no es tierno :3 Que podemos hacer con todo esto¿? ...Pues... Hay que ser muy falto de imaginación para pensar que esto es inútil... pero en realidad publico esto con la intención de publicar más adelante algo mucho más interesante y para lo cual usaremos todo esto... Saludos!

hola taringeros! hoy en este mini post me gustaria mostrarles lo que es una red libre ya que estoy intentando hacer una en mi ciudad Cuenca-Ecuador , pueden verlo aqui: http://www.silly-bytes.blogspot.com Bueno para empezar una red libre es más bien una comunidad de personas que forman una red computacional echa por la comunidad y para la comunidad , hablando por comunidad me refiero a ciudad, o pueblo! Se basa principalmente en tecnología wireless asi pues, comienza con un pequeño grupo de personas con ganas de hacer algo!, y con un par de pc's viejitos que con un adaptador wireless y un potente linux pueden empezar a trabajar como AP's wireless , y si a su vez conectamos estos AP's entre si , ya tendremos una red.... perooo libre? pues pensemos en que cualquiera puede contribuir y aceptar ser un nodo AP/router , y cualquiera dentro de la comunidad podra unirse a la red , la cual podría contar con varios servicios, hasta salida a Internet si el dueño de un determinado AP asi lo quisiera!, los alcances son infinitos, pero podran verlo mejor aqui: dijo:www.redlibre.net Mi primer post! jeje algo pequeño y bastante reducido , pero mi objetivo es solamente presentar esto tan fascinante. posdata: si algún Cuencano, o cualquier interesado en el tema lee esto, quizás publique algo más serio aquí: http://www.silly-bytes.blogspot.com , quizás si me resulta el tema en ese sitio, pueda estar listo para publicar en taringa! algo con mucho jugo y mucho mas especifico sobre el tema

Hey Taringeros! Adivinen lo que me encontré .... la solución para todos aquellos que quieren abandonar el windows para usar GNU/Linux ....para aquellos que ya lo usan pero están en busca de una distro que les agrade más .....y para aquellos que están hartos de responder preguntas del tipo: "Que distro debo elegir?" Pues es una pagina que toma un test en el cual te hará preguntaras acerca de tus conocimientos e intereses con GNU/Linux (básicas) y en base a eso te dará las opciones de distros más afines a lo que (necesitas/sabes/te interesa) esta es: Comenten que distro es para ustedes Saludos.

Hola nuevamente Taringa! Hoy me gustaría mostrarles algo que me encanta hacer con los HDD's (pedirles que me digan si están viejitos y muriendo, o si aun están en su mocedad) COMO?? pues para ello existe S.M.A.R.T. es el acrónimo de "Self Monitoring Analysis and Reporting Technology" (Tecnología de Análisis y Reporte Auto Monitorizado). Esta tecnología la implementan los discos duros actuales para PC (aunque no es una tecnología tan vieja tampoco). Con este sistema es posible evitar desastres de perdidas de datos por fallos del disco duro por que nos dará mucha información de este, ademas de que nos dirá si el mismo se considera que ya está viejito Pues bien para revisar la S.M.A.R.T. del HDD lo podemos hacer con ayuda de nuestra amiga la BIOS (hay algunas que no pueden) , pero nosotros lo vamos a hacer desde nuestro SO favorito: GNU! con su secuaz Linux Para esto echaremos mano de las "smart monitoring tools" (herramientas de monitorización smart) smartmontools Las instalamos de los repositorios de nuestra distribución: Arch dijo:# pacman -S smartmontools Debian / Ubuntu dijo:# apt-get install smartmontools Fedora dijo:# yum install smartmontools Una vez instaladas obtendremos un informe de nuestro HDD ejecutando: dijo:smartctl -H -c -A -i /dev/*** donde *** será nuestro HDD (sda) por ejemplo con esto obtendremos algo así (mi HDD): Al final podrán ver lo más interesante... en cada unos de estos atributos pueden tener valores (value) entre 253 - 1 donde 1 es el peor estado, los mejores valores (HDD optimo) son entre 253 - 100 Además en (type) nos dice como se considera ( según el (value) )... Si nos dice "pre-fail" nuestro HDD en dicho aspecto (type) podria fallar en cualquier momento, o un "old_age" el HDD nos dice que esta viejito Como pueden ver mi HDD estará dando sus vueltitas por algún tiempo más, pero conviene tener otro a la mano PD: Si el HDD tiene el S.M.A.R.T. desactivado el software smartctl nos lo dirá cuando intentemos usarlo, así que para activarlo hacemos: dijo:smartctl -s on -i /dev/sda y con esto ya podemos hacer lo de arriba Espero este mini/micro aporte le sea útil a alguien Saludos! y gracias por comentar.
Capítulo 2 : Crea tus propios ritmos con Hydrogen En el presente capítulo aprenderás a usar Hydrogen, una caja de ritmos virtual. Podrás crear patrones rítmicos y con ellos crear una canción entera. Además te mostraremos como usar tus propios sonidos de percusión y a exportar tus canciones en un fichero WAV. 1. Instálate Hydrogen Hydrogen es un programa free-software que emula el funcionamiento de una caja de ritmos tradicional y además ofrece muchas mas funcionalidades. Su interfaz gráfica de usuario, basada en Qt, resulta muy agradable y extremadamente intuitiva de usar. Nada más iniciar Hydrogen tendrás una canción de demostración lista para sonar. Inicialmente era una aplicación solo Linux, pero desde hace poco, en la web de Hydrogen, http://www.hydrogen-music.com, también encontrarás los instalables para Windows i MacOSX. El paquete de Hydrogen forma parte de las distribuciones Linux más comunes, así que no debes tener problemas para instalarlo desde tu gestor de paquetes favorito (synaptic, apt-get, etc.) Pero debido a su rápido ritmo de desarrollo, es fácil que los paquetes oficiales de las distribuciones se quedan un poco atrás respecto la última version. En el presente capítulo usamos Hydrogen 0.9.2, si tu distribución dispone de una versión más antigua, te recomendamos que te actualices a la última version. Como? Muy fácil, a la sección download de la web de Hydrogen te puedes bajar un instalador del binario (para máquinas x86) listo para ejecutar. Si eres más atrevido puedes compilar las fuentes de la última versión estable. Y si te gusta vivir al límite, compila directamente las fuentes del CVS. 2. Primer vistazo a Hydrogen A primera vista, Hydrogen guarda cierto parecido con Fruity Loops para Windows, que posteriormente ha evolucionado como FL Studio. Como cualquier otro programa secuenciador cuenta con un panel de transporte que reune los siguientes controles: botones para controlar la reproducción, la velocidad o tempo en BPM (beats por minuto), un visualizador del tiempo de canción transcurrida y un selector de modo patrón o modo canción. 3. Crea tu primer patrón El primer paso en la creación de ritmos con Hydrogen es crear un patrón. En la ventana Pattern Editor verás como elemento principal, una rejilla cuyo eje horizontal representa la línea de tiempo musical (compás, blanca, negra, corchea) y su eje vertical muestra los instrumentos disponibles para tocar. Encima de la rejilla hallarás un selector de número de patrón y su nombre a la derecha, por defecto nombrado como Pattern 1. Más a la derecha un selector de tamaño y resolución del patrón. Con estos desplegables podrás definir la subdivisión y longitud musical de tu patrón. Hydrogen utiliza como base para la longitud, la medida de corcheas (1/8), en vez de la clásica subdivisión de semicorcheas (1/16). Por lo tanto para hacer un patrón de 1 compás, define el size a 8 y para dos compases a 16 y así sucesivamente. Selecciona el modo patrón Pattern mode, en la barra de transporte del programa. Dale al play y el programa empezará a reproducir. Como hemos comentado antes, cuando activamos la reproducción en una caja de ritmos, hacemos que un cursor o cabezal de reproducción avance en la rejilla de tiempo. Es decir, cuando reproducimos un patrón, el cursor se mueve desde el primer al último tiempo y vuelve a empezar. Para organizar visualmente los instrumentos puedes cambiarlos de posición en la rejilla, seleccionándolos y haciendo clic en las flechas que aparecen justo encima de sus nombres. Con el kit de batería cargado por defecto en el Pattern Editor haz clic en los nombres de los instrumentos para oír su sonido. Para añadir un sonido en el patrón solo tienes que hacer clic en la rejilla ahí donde quieras que suene y aparecerá un pequeño rombo negro como referencia. Debajo de cada evento de percusión (rombo negro), aparecerá una linea vertical de una altura determinada. Modificando está altura variarás la dinámica del golpe percutivo. Es decir la percepción de su volumen y fuerza. Empieza con alguno de los platillos, por ejemplo el charles (Open HH,Pedal HH, Closed HH) para introducir una pulsación a corcheas, añadele a continuación más sonidos: bombo en los tiempos fuertes del compás (1 y 3) y caja en los tiempos débiles (2 y 4). Con esto tendrás programado un clásico ritmo de rock. Añadele más sonidos de timbales o otros tipos de platillos para enriquecer el patrón. 4. Combina patrones y crea una secuencia Para crear una secuencia de patrones necesitarás al menos dos patrones distintos para combinarlos. Puedes crear patrones desde cero en el Pattern Editor, pero si lo que quieres es copiar uno ya creado para añadirle instrumentos o modificarlos, ve al Song Editor. Haz clic con el botón derecho del ratón sobre el nombre del patrón que quieras copiar, aparecerá un cuadro de diálogo para que escribas un nombre para el nuevo patrón, házlo y Acepta. Tendrás un patrón con otro nombre pero con el mismo contenido que el anterior. Ahora ve al Pattern Editor y modifica este nuevo patrón. Repite la operación para obtener un abanico más amplio de variaciones rítmicas con las que jugar. Ahora vuelve al Song Editor Las herramientas básicas que encontramos en el menú del Song Editor son: El botón Clear que borra toda tu secuencia (una operación que no tiene Deshacer!). Las flechas que al igual que en el Pattern Editor permiten mover tus patrones en su disposición vertical. El botón con el signo más que sirve para crear nuevos patrones en blanco. Los dos botones más a la derecha, el primero para hacer selecciones en la rejilla, y el segundo el de Draw Mode. Utiliza la herramienta Draw Mode para activar las casillas correspondientes al patrón que quieras reproducir en el orden deseado. Cambia la posición a Song Mode en la barra de transporte y dale al Play. Oíras tu primera secuencia. Activando el loop, al llegar al último patrón, volverá a empezar. 5. Aprende a usar el mezclador El mezclador aporta a Hydrogen una nota de calidad, a un programa que en teoría es solo una caja de ritmos. La mayoría de cajas de ritmo ya sean hardware o software, disponen de un control de volumen para cada instrumento, pero Hydrogen va un paso más allá y nos brinda un mezclador que se acerca al de un secuenciador Audio/MIDI convencional. Abre la pantalla del mezclador y verás el despliegue de canales de instrumento, cada uno consta de un fader (deslizador) de volumen, un control de panorama, 4 potenciómetros de envíos a efectos, botones de mute, solo y preescucha de sonido. Haz clic en el botón de preescucha, para disparar un golpe del instrumento que tengas en ese canal, mutea un canal si no quieres oírlo momentáneamente, o bien pulsa S para oír "solo" ese canal. Ya tienes tu patrón creado y sonando en el Pattern Editor, o quizás ya has hecho una secuencia en el Song Editor, ahora es el momento de ajustar los volúmenes de cada instrumento, su posicionamiento estéreo (panorama) y los posibles efectos que quieras aplicarle. Otra característica interesante del mezclador son los controles de humanización de ritmo que se aplican en el canal master. Un control de swing, de timing y de velocity (dinámica) con los que puedes graduar el nivel de aleatoriedad de estos efectos que darán feeling a los patrones excesivamente rígidos de un ritmo programado. 5.1. Añadiendo efectos Los cuatro buses de efectos disponibles en el mezclador te permitirán dar matices interesantes y a menudo necesarios para una base rítmica. Por ejemplo aplicar reverb a los platos, compresión al bombo y a la caja o incluso efectos de cariz más expresivo o artístico como los flangers, phasers y filtros. Puedes combinar hasta un total de cuatro efectos simultáneos y graduar el nivel de efecto por canal con los potenciómetros correspondientes en cada canal del mezclador. Hydrogen no trae efectos propios incorporados en el programa sino que utiliza plug-ins LADSPA, que hay que tener instalados previamente. Si no dispones de ninguno de estos plug-in, busca paquetes con la descripción "ladspa" en tu gestor de paquetes e instala los paquetes de plugins. En Hydrogen accede al panel FX del Mezclador y carga los efectos a partir del botón Edit - Select FX, activa los efectos, sube la ganancia en los potenciómetros del canal que quieras efectar y modifica los parámetros de cada efecto hasta obtener los resultados deseados. 6. El Editor de instrumentos En cada patrón pueden aparecer hasta 32 instrumentos. Y cada instrumento puede ser un único sonido basado en una muestra de audio o bién una combinación de hasta 16 capas de muestras. Los instrumentos con múltiples capas permiten crear sonidos más ricos y sobretodo más realistas. Tienes más información sobre este efecto en una caja amarilla. La siguiente figura muestra una caja (snare) con 5 capas de muestras. 6.1. Transformando una caja en un bombo Hydrogen, como buen instrumento basado en muestras (o directamente "sampler" que es, permite ajustar parámetros de la reproducción de las muestras, para diseñar el sonido a tu gusto: Estas opciones se encuentran en la ventana Instrument editor Vamos a ver un ejemplo práctico del uso de estos controles. El objetivo de este ejemplo es crear un sonido de bombo a partir de una muestra de caja. Para empezar, asegúrate que Hydrogen está en pattern mode, sino ponlo en este modo usando el botón mode de la barra de transporte. Pon una pista de caja (snare) en modo solo. Tienes dos formas de hacer esto: Desde el Pattern editor haciendo clic con el botón derecho sobre la pista de caja, o bien, desde el Mixer activando el botón s del canal correspondiente. Rellena unos cuantos golpes de caja en el patrón actual para oír constantemente el sonido que vamos a manipular. Si no lo está, selecciona el instrumento de caja en el Pattern editor Ahora ya estamos listos para ajustar parámetros de la ventana Instrument. Primero de todo, vamos a bajar el tono o afinación del instrumento. Para ello gira al máximo a la izquierda el botón pitch que se encuentra en la pestaña Layers. Si se tratara de un instrumento multi capa, debes repetir la operación para todas las capas. El sonido es más grave pero aún es demasiado largo y ruidoso. Sitúate en la pestaña Instrument y modifica el envolvente ADSR (attack, decay, sustain, release) de la siguiente forma: Gira el sustain el máximo a la izquierda, situa el decay alrededor de un 25% y asegúrate que el tiempo de ataque, botón attack está al mínimo. Con esto conseguimos que solamente suene un ataque corto de la caja. Por último, atenúa los agudos fijando un cutoff bastante bajo, y sube la resonance para realzar el efecto de filtro, tal como mostramos en la captura de pantalla. 7. Reciclando un loop de batería Recuerdas el loop que trozeamos en el primer capítulo mediante Rezound? http://freesound.iua.upf.edu/samplesViewSingle.php?id=1173 Aprovecha los archivos resultantes de dicha operación y cárgalos como muestras independientes en el Instrument Editor. Selecciona un canal vacío en el Pattern Editor, abre el Instrument Editor, ve a la pestaña Layer y carga el archivo WAV correspondiente mediante el botón Load. Repite la operación con el resto de sonidos que quieras cargar. Utiliza tus conocimientos musicales y experimenta con los sonidos que cortaste, seguro que saldrá algo original. Debes tener en cuenta que dependiendo de si los sonidos que utilizes contienen más de un golpe de percusión, estos irán al tempo original del loop y por lo tanto tendrás que ajustar el tempo de Hydrogen con el del loop original. Finalmente, usa la opción File-Export para exportar toda tu canción en un archivo WAV. 8. Crea tus propios drumkits El Drumkit Manager es, como su propio nombre indica en inglés, el gestor de los drumkits que usamos en Hydrogen. Permite exportar los kits de percusión que hayas creado con el editor de instrumentos, o importar conjuntos de instrumentos creados por otros usuarios. Para exportar los drumkits que estes utilizando en el programa, primero debes guardarlos en la lista de drumkits. Cuando tengas tu kit listo para guardar, abre el Drumkit Manager por el panel de Save y escribe un nombre para tu kit, añade si quieres el nombre del autor (tu mismo!) y una breve descripción y guárdalo. Vuelve al panel Load y aparecerá listado junto a los kits por defecto de Hydrogen. Ahora ya puedes exportar cualquiera de los kits que aparezcan en esta lista. Selecciona el kit a exportar, dale un nombre y haz clic en el botón Export. El archivo resultante tendrá la extensión *.h2drumkit y contendrá los ajustes de todas tus muestras así como los propios sonidos que has utilizado. Para importar sonidos que hayas descargado de internet o que tengas archivados pero no cargados en el programa, deberás importarlos primero mediante el panel Import. Localiza el archivo a importar y haz clic en Open. Ahora el archivo estará disponible en tu lista de kits para ser cargado en Hydrogen desde el panel Load.