Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - ANTRAX

#41
Hola a todos!
Escribo este post debido a que varios alumnos de EGG estan teniendo problemas para instalar Workbench en Windows 7.
El problema está en que la última versión (8.x) son para computadoras más recientes, es decir, para procesadores de 64 bits.
La solución es simple, solo debemos descargar una versión compatible con nuestro procesador de 32 bits.

Para descargarlo, vamos a la siguiente web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Seleccionamos la versión 5.2.47 y descargamos la primer opción (MSI Installer)

Una vez descargado, procedemos con la instalación:







Al finalizar, ya podremos buscarlo en el menú de inicio y ejecutarlo


Eso es todo! Espero que les sirva!

Creditos: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#42

Hola Underc0ders! Para continuar con la seguidilla de posts sobre criptomonedas, hoy día les voy a enseñar a instalar y configurar HiveOS para que puedan armar sus propios rigs.

Para este experimento conté con la ayuda algunos miembros de Underc0de como de Lucas (me prestó componentes de una PC que no usaba), Ricardo (me regaló una mother con un i3), Jioxep (me ayudó con la instalación del rig), Rodo o "El Cresta" (siempre tirando tips de como optimizar absolutamente todo y salvando las papas cuando más se necesita), Juampi (el doble 5, que nos trajo tostados mientras instalabamos todo) y Roman de Compugarage a quien le compré la fuente de 750w para alimentar la placa.

Como les mostré en otra guía que hice sobre como minar ETH, yo tengo una GPU NVIDIA 3070, y esa fue la placa que usé para colocarla en este rig.


¿Qué es un Rig?

Es un sistema basado principalmente en tarjetas gráficas que trabajan para obtener el hash de un bloque y obtener así una recompensa. Un rig de minería se basa en los mismos componentes que un ordenador convencional, con la salvedad que en vez de una tarjeta gráfica, tenemos varias. La cantidad de tarjetas gráficas se ven limitadas por el diseño de la placa base y del chasis donde montemos las tarjetas gráfica

Obviamente para esta PoC solo usé una sola tarjeta gráfica, pero la idea es que tenga varias. En caso de querer ampliarla, voy a tener que cambiar varios componentes, como por ejemplo,

Componentes mínimos necesarios:

– Motherboard (que tenga PCI Express)
– Microprocesador (yo usé un i3)
– Ram (con 4gb debería bastar)
– Fuente (capaz de soportar la placa que vayamos a ponerle) > Revisar esta web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
– GPU (en mi caso una 3070)
– Teclado
– Mouse
– Monitor
– Botón para el encendido (no es necesario, solo lo pusimos para que fuese más cómodo encenderla y apagarla)
– Pendrive con HiveOS (es live, no es necesario tener un HDD)

¿Qué es HiveOS?

HiveOS es una distro utilizada pura y exclusivamente para la minería. Posee un panel web y para poder monitorear en todo momento el comportamiento del rig. Además podemos cambiar parámetros desde esa misma UI.

También posee una app para el movil que es posible descargarla desde Play Store (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Configuración e instalación de HiveOS

Lo primero que debemos hacer, es ir a la web oficial de HiveOS y registrarnos. Con esta cuenta podremos configurar y poder ver el rendimiento de nuestro rig.


Colocamos un mail, user y password. Verificamos la cuenta con el código que nos llegará al correo y podremos entrar a nuestra cuenta.


A penas ingresamos a la cuenta, nos va a aparecer un recuerdro que se llama como el usuario que hayamos puesto, en mi caso Underc0de farm (granja). Y el resto todo en cero, debido a que lo debemos configurar.

Clickeamos en esa granja y seleccionamos "Rig" (también es posible configurar ASICs en caso de que tengamos)


A continuación completamos con un nombre y password (los tags y la descripción no son requeridos) y clickeamos en ADD para agregarlo.


Una vez hecho esto, veremos la siguiente pantalla, y atención porque es muy importante!


En esta pantalla, debemos descargar el archivo rig.conf clickeando en el botón "Download". Este archivo es el que conectará nuestro Rig a nuestra cuenta de HiveOS.

Una vez descargado, debemos ir a la web de descarga, para bajar el sistema operativo. Para ello pueden clickear el link azul que dice "Download" mostrado en la imagen anterior o ir directamente al siguiente link: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Descargamos la versión GPU (ya que vamos a minar utilizando la GPU)


En mi caso la bajé por torrent, pero pueden hacerlo por ZIP. Es lo mismo.

Lo otro que necesitan descargar (de esa misma página) es el programa llamado "Etcher" que sirve para hacer booteable el pendrive con HiveOS. Pueden usar Rufus también.


Para resumir, necesitamos descargar 3 archivos:

– HiveOS (La ISO y descomprimirla)
– El archivo de configuración del rig
– Etcher (e instalarlo)

Una vez que tenemos las tres cosas, abrimos Etcher, seleccionamos la imagen de HiveOS, la unidad USB en donde lo instalaremos y por último clickeamos en el botón FLASH!


Una vez que termine, abrimos la unidad USB en donde quemamos la ISO y le copiamos el archivo de configuración (rig.conf)


Con esto, ya tendremos lista nuestra unidad USB lista para bootear.

Una vez hecho esto, entramos nuevamente a la web de HiveOS con nuestra cuenta, clickeamos en nuestra granja y vamos a ver lo siguiente:


Cuando aparece el simbolito del WIFI con un signo de exclamación, es porque aún no esta conectado. Le damos unos minutos a que arranque el sistema operativo. Mientras tanto, vamos a configurar una Wallet. Para ello vamos al tab llamado "Wallets"


En mi caso voy a minar ETH, es por ello que pondré mi dirección de ETH y clickeamos en el botón "CREATE"

Si revisamos el monitor de nuestro rig, podremos ver algo como lo siguiente una vez que encienda. (se abre una terminal, carga nuestra configuración y queda a la espera para empezar a minar)


Ahora volvemos al sitio de HiveOS, al tab de Workers y deberíamos ver algo como esto:


Ahora lo que debemos hacer, es crear una nueva Flight Sheet. Para ello, vamos al tab de Flight Sheets y veremos lo siguiente


Clickeamos en el botón agregar y la creamos. Acá es en donde configuramos que tipo de Moneda vamos a minar, seleccionamos la Wallet que creamos en el paso anterior, que pool vamos a usar (yo siempre uso flexpool porque tiene un servidor en Brasil y el ping es menor), y por último seleccionamos que minero vamos a usar. Como yo siempre uso PhoenixMiner, selecciono ese. Por último, clickeamos en el botón "Create Flight Sheet"


Ahora para aplicar estos cambios, debemos volver a Workers y entrar a ese worker en particular. Para ello clickeamos en el nombre del rig.


Seguido a esto, clickeamos el tab "Flight Sheet" que aparece con un símbolo de advertencia y clickeamos el Cohete que aparece en esa pantalla.


Una vez hecho esto, nos aparecerá una advertencia y clickeamos en Aplicar.


Lo que hará esto, es instalar el minero en el rig, en este caso PhoenixMiner y comenzará de forma automática a minar el la pool que le indicamos en los pasos anteriores.


Si volvemos al overview de ese minero, podremos ver que ya empezó a minar a 51.73mhs. Es decir, con esto, ya dejamos listo nuestro rig andando.


Lo último que nos queda ahora, es overclockear la placa para que rinda al máximo. Para ello clickeamos en el ícono de la derecha (el que tiene forma de velocímetro) o podemos ir al tab de Overclocking. Cualquiera de los dos es lo mismo. Y colocamos los valores para esa placa.


Aplicamos los cambios, y después de unos segundos, podremos ver el impacto en nuestro Overview


sto es todo por ahora! Espero que les haya gustado y les sirva!

Nos leemos en otro post!
ANTRAX
#43
QA (Quality Assurance) / Testeo de APIs con Swagger
Septiembre 06, 2021, 12:53:42 PM

Antes de adentrarnos en el mundo de Swagger, vamos a repasar brevemente lo que es una API y para que sirven.

¿Qué es una API?

El término API es una abreviatura de Application Programming Interfaces, que en español significa interfaz de programación de aplicaciones. De forma resumida podemos decir que se utiliza para permitir la comunicación entre dos aplicaciones a través de un conjunto de reglas.

Es esta comunicación podemos establecer como un módulo de un software interactúa con otro, para cumplir una o muchas funciones dependiendo de los permisos que les dé el propietario de la API a los desarrolladores de terceros.

De cara al usuario final, lo único que se ve de una API, son los resultados. Un ejemplo de esto, es cuando entramos a una aplicación móvil o web y nos permite loguear utilizando nuestra cuenta de Facebook o Google. En este caso, esa aplicación se esta conectando a la API de estas empresas para obtener tus datos de sesión.

Las API pueden ser privadas para el uso de una empresa, abiertas sólo para partners, o públicas para que cualquier desarrollador pueda interactuar con ellas. También es muy común ver APIs locales para que aplicaciones se comuniquen dentro de un mismo ambiente.

¿Para qué sirve una API?

Una de las principales funciones de una API es la de poder facilitarle el trabajo a los desarrolladores y ahorrar tiempo y dinero. Para explicar esto con un ejemplo y que quede claro, vamos a suponer que nos piden desarrollar una tienda virtual que tenga una web y una aplicación móvil. Esta tienda tendría una estructura como la siguiente:

    Versión web de la tienda (para acceder desde la PC o desde el movil de forma responsive)
    Versión mobile (para instalar en el móvil)
    Base de datos para almacenar los productos
    Módulo de pago

Cuando un usuario entra a la página web de la tienda y de 10 teléfonos compra 2, el sistema debería descontarlos del stock y nos quedarían 8 teléfonos. Si entramos desde la aplicación móvil y revisamos ese producto luego de la compra, deberíamos ver 8 productos y no 10.

Toda esta conexión se puede lograr a través de APIs, ahorrandole al desarrollador tener que escribir un código para la web y uno para la versión móvil, debido a que ambas plataformas consumen el mismo backend. (Esto es un ejemplo de una API local)

Por otro lado, en el listado de funcionalidades mencionamos al módulo de pago. En este caso para ahorrarnos tiempos de desarrollo, podemos usar APIs existentes para la pasarela de pago y así permitirle al usuario poder pagar a través deMercadoPago, Paypal o cualquier otra plataforma similar sin tener que desarrollar algo de cero. (Esto es un ejemplo de una API externa, debido a que estamos interactuando con una API no creada por nosotros)

¿Qué son los EndPoint y los métodos?

De forma resumida podemos decir que los EndPoint son las URLs de una API y cada EndPoint puede tener varios métodos. Los métodos son todas las formas que tenemos de poder interactura con ese EndPoint.

Entre los métodos más comunes encontramos a los siguientes:

    POST: crear un recurso nuevo.
    PUT: modificar un recurso existente.
    GET: consultar información de un recurso.
    DELETE: eliminar un recurso determinado.
    PATCH: modificar solamente un atributo de un recurso.

Para explicarlo con el ejemplo de la tienda podemos decir que con el método POST, podemos crear un nuevo producto. Con el método PUT podemos modificar un producto de la tienda, con el GET podemos traer todos los productos o un producto en específico, con el DELETE podemos eliminar el producto y con el PATCH podemos modificar un atributo de un producto.

¿Qué es Swagger?

Actualmente no existe una sola forma estandarizada de escribir una API, es decir, cada programador puede programarla a gusto suyo, debido a que no existe una sola forma de desarrollarlas. Pero que pasa si viene otro programador que quiere utilizarla o un QA que quiera testearla...?

Acá es en donde entra en juego Swagger. Esta potente herramienta nace como intención de solucionar este problema. Su objetivo es estandarizar el vocabulario que usan las APIs. Es una especie de diccionario.

Cuando mencionamos a Swagger, nos referimos a una serie de reglas, especificaciones y herramientas que nos ayudan a documentar nuestras APIs, documentación que todo el mundo pueda entender.

Existen varias plataformas que hacen esto mismo, pero la más conocida es Swagger, tiene una buena interfaz de usuario que se llama Swagger UI, que permite no solo ver los endpoint y métodos, sino que también permite probarlos.
Basta de teoría, ¡empecemos a testear!

Para este tutorial/taller, les traje una URL que suelo usar en mis capacitaciones

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Se trata de un ejemplo de un Petstore con varios endpoints y métodos que se pueden usar para practicar.


En la parte superior de Swagger UI vamos a encontrar la URL Base, que es muy importante saberla por si después queremos usar estos mismos métodos en Postman (que lo explicaré en otra guía). Lo otro importante a ver, es el botón de Authorize. En esta web de Petstore no hace falta autenticación, pero en muchos casos, si.

En caso de que sean QA, y necesiten autenticarse, lo recomendable es hablar con el desarrollador para que nos indique de que forma hay que hacerlo, ya que como dije antes, no hay una sola forma correcta de hacer una API, y la autenticación puede ser a traves de un usuario y contraseña, un token, etc.


Lo siguiente que vamos a ver, van a ser todos los endpoint que tiene el sistema y los métodos de cada uno de ellos. Es decir, que cosa podemos hacer con cada uno de esos endpoints.


Por último, vamos a ver los modelos. Estos nos indican que tipo de estructura y que tipo de datos debe tener cada json.

Para este taller, vamos a ver un ejemplo de cada método. Antes de arrancar, quiero hacer una aclaración. Para poder utilizar los métodos desde Swagger UI, debemos clickear el botón Try it out, de lo contrario, los campos aparecerán bloqueados.


POST (Crear nueva mascota)

Para enviar un POST, si o si debemos ver como esta hecho el modelo, debido a que necesitamos respetar la misma estructura.
Recuerden también que debemos respetar el tipo de dato, es decir, si es un string, un integer, boolean, etc.
Una vez que tenemos completo el json, clickeamos en el botón azul "Execute"


Lo que estamos haciendo acá, es enviar un "REQUEST", con la información que deseamos enviar o solicitar. Y recibimos un "RESPONSE" con una respuesta por parte del servidor.


En este caso, devuelve un 200, que es un response de cuando la consulta fue efectuada correctamente. Y acá creó a una nueva mascota llamada "Titan"

GET (Traer todas las mascotas y traer una en específica por ID)

Como podemos ver en la imagen, podemos traer TODAS las mascotas filtrandolas por un estado, o traer una sola en específico por ID.


Vamos a probar primero traer a todas las mascotas. Seleccionamos un estado y damos click en "Execute"


En este caso trajo a TODOS los animales con ese estado (si el listado es largo, puede demorar un poco en traer los resultados).
Ahora vamos a intentar traer a una sola mascota, para ello vamos al GET que filtra por petID y colocamos el ID de alguna mascota.


Como vemos en la imagen, solo trae esa mascota en específico.

PUT (Modificar una mascota existente)

Para poder modificar una mascota, entramos al método PUT y enviamos el nuevo Json con los datos MODIFICADOS y clickeamos en el botón "Execute". Algo que debemos tener en cuenta, es que necesitamos enviar el ID de la mascota que intentamos modificar para que le aplique los cambios a esa mascota en específico.


DELETE (Eliminar una mascota por ID)

Para el caso del DELETE, solo debemos especificar el petID de la mascota que deseamos eliminar y clickeamos en el botón "Execute" para efectuar la acción


El caso del PATCH no lo voy a poder mostrar debido a que este ejemplo no lo trae, pero el mecanismo es exactamente el mismo.

Algo a tener en cuenta, es que no siempre va a ser así tal cual mostré en el ejemplo, dado a que como mencioné en un principio, no hay una sola forma de crear APIs, pueden variar campos, modelos, métodos y demás. Pero la mecánica para testearlas, siempre va a ser la misma.

Espero que les haya gustado y les sirva. Nos vemos en el próximo post!

ANTRAX
#44

Ultimamente varios me han preguntado sobre como minar, que se necesita y demás. Es por ello que decidí hacerles un post paso a paso y lo mejor explicado posible para que sepan como se mina y que puedan empezar a hacerlo.

Hace un tiempo, en Underc0de tuvimos una charla sobre criptomonedas dictada por la No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y por No tienes permitido ver los links. Registrarse o Entrar a mi cuenta sobre todo el universo del trading y la minería. Esta charla fue un detonante importante para que yo empezara a investigar e indagar cada vez más sobre como obtener criptomonedas. Tenía unos ahorros y con la ayuda de los chicos de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (sponsors de Underc0de) pude armar una computadora y comenzar a minar ETH.

Los resultados fueron bastante buenos. Estoy minando con la PC con la que trabajo a diario, la misma no se traba en lo absoluto y puedo minar y trabajar al mismo tiempo. Si se duplicó el gasto de electricidad comparado con meses anteriores, pero no fue mucho.

¿Qué necesito para minar?

Quiero aclarar que solo cuento con 1 placa NVIDIA RTX 3070, no poseo un Rig ni mucho menos, pero actualmente me esta dejando casi 200usd al mes solo por tener la pc encendida.

Algo que tienen que tener muy en cuenta a la hora de minar, es que deben ser capaces de recuperar la inversión en un lapso de 10 meses aproximadamente. Esto quiere decir, que si compramos una GPU, debemos usarla para minar una criptomoneda que nos de una ganancia capaz de amortizar el gasto de la placa que hayamos comprado.

Una placa recomendada en cuanto a precio, calidad, temperatura, es la RTX 3070.

Otras cosas a tener en cuenta, es que debemos contar con una buena refrigeración y una buena fuente para alimentar la placa que compremos. Existe una web que sirve para calcular que fuente necesitamos ponerle a nuestra pc de acuerdo a nuestros componentes: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Otra web muy útil, es la de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, que sirve para poder saber que criptomoneda es rentable minar con nuestra GPU o con la que queramos comprar.


En mi caso he seleccionado la placa 3070 que es la que yo tengo y la web arroja un listado ordenado de que criptomonedas es recomendable minar con dicha placa.


En mi caso, me recomienda minar ETH y también aparece RVN en tercer lugar y estas son las dos criptos que les voy a enseñar a minar en este post.

Minando ETH

En todas las criptomonedas, necesitamos basicamente 3 cosas. El software para minar, configurarlo y optimizar nuestra GPU.
Para este primer ejemplo, voy a utilizar un software llamado No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que lo pueden descargar de su sitio oficial.

Descomprimimos el *.zip y editamos el archivo llamado start_miner.bat

Debemos asegurarnos de tener algo como esto:

Código: text
REM
REM Example bat file for starting PhoenixMiner.exe to mine ETH
REM

setx GPU_FORCE_64BIT_PTR 0
setx GPU_MAX_HEAP_SIZE 100
setx GPU_USE_SYNC_OBJECTS 1
setx GPU_MAX_ALLOC_PERCENT 100
setx GPU_SINGLE_ALLOC_PERCENT 100

REM IMPORTANT: Replace the ETH address with your own ETH wallet address in the -wal option (Rig001 is the name of the rig)
PhoenixMiner.exe -pool ssl://eth-br.flexpool.io:5555 -pool2 ssl://eth-us-east.flexpool.io:5555 -wal TU_WALLET.Rig001 -gpus 2
pause


Lo único que debemos modificar, es la linea de la pool. En este caso hay 2 pools configuradas, una de Brasil y la otra de USA. Para ver cual es la mejor (dependiendo del país en donde te encuentres) debes entrar a la siguiente web:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Yo utilizo FlexPool como pool de minería, debido a que estoy en Argentina y tienen un nodo en Brasil y la velocidad del ping es mucho mejor que si estuviese en otro sitio.


En segundo lugar, tengo configurado el de USA, que es el segundo más rápido.
Lo otro a especificar es nuestra wallet. Yo en mi caso uso TrustWallet como billetera y desde ahí mismo podemos obtener nuestra dirección de ETH que será en donde se depositará nuestro dinero minado. Seguido a la Wallet, aparece un "Punto Rig001" Esto es el nombre que le daremos a nuestro equipo para identificarlo en la pool, y por último, tengo un parámetro que quizas no lo utilicen, pero lo dejé puesto porque cuesta encontrarlo. En mi caso tengo 2 GPUs, uno en donde conecto los monitores y la RTC 3070 para minar. Entonces colocando el -gpus puedo especificar con cual placa minar. En este caso es la 2, ya que es la secundaria.

En Negrita resalto las líneas que deben modificar:

PhoenixMiner.exe -pool ssl://No tienes permitido ver los links. Registrarse o Entrar a mi cuenta:5555 -pool2 ssl://No tienes permitido ver los links. Registrarse o Entrar a mi cuenta:5555 -wal TU_WALLET.Rig001 -gpus 2

Teniendo esto configurado, ya podemos comenzar a minar. Simplemente debemos ejecutar el archivo start_miner.bat y automaticamente se conectará a la pool y comenzará con el proceso de minado.


Tras unos segundos de que conecta, empieza el proceso de minado.
Algo a tener muy en cuenta, es la velocidad de minado y este ya es nuestro punto numero 3 que mencioné anteriormente, y es el de optimizar la GPU.

Para lograr esto, usaremos un software llamado No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Lo instalamos y ejecutamos.


Lo que debemos modificar en este software es lo siguiente:

– Core Clock: -200
– Memory Clock: +1600
– Power Limit: 55
– Temp Limit: 78
– Fan Speed: 75


Esta es la configuración ideal para la 3070 y con ella logramos una velocidad de minado de 64.500MH/s aproximadamente.

Por último, para ver cuanto ETH llevamos minado, debemos entrar a la web de flexpool y colocar nuestra Wallet en el buscador, o reemplazarlo en esta URL

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Eso es todo, con esto ya estaremos ganando dinero minando ETH.

Minando RVN

Ya vimos como minar ETH, ahora veremos como minar RVN utilizando otro minero y la web de 2miners, pero el concepto es básicamente el mismo.

Descargamos el minero, yo en este caso voy a usar No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Lo descomprimimos y editamos el archivo RVN-2miners.bat

Código: text
t-rex.exe -a kawpow -o stratum+tcp://us-rvn.2miners.com:6060 -u TU_WALLET.PC-3070 -p x -d 0
pause


Al igual que el caso anterior, debemos modificar el servidor y nuestra wallet. Además, agregué el "-d 0" que es para especificar la GPU que usaremos.

Ahora entraremos a la web de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y seleccionaremos RVN que será la cripto que vamos a minar.


Ahora clickeamos en el botón Quick Start


Acá veremos el listado de servidores. Para saber cual es el más rápido, podemos hacerles ping y ver cual responde más rápido.


Respecto a la Wallet, entramos nuevamente a TrustWallet, obtenemos la dirección de nuestra billetera RVN y la colocamos en la configuración.

Una vez hecho esto, ejecutamos el archivo y comenzará a minar.


Por último, para ver los resultados de la minería, entramos a la web de 2miners y colocamos la dirección de nuestra billetera

No tienes permitido ver los links. Registrarse o Entrar a mi cuentaTU_WALLET_RVN


Y esto es todo por ahora!

Espero que les guste el post y les sirva para comenzar en este mundo de la minería!

ANTRAX
#45

Al fin llegamos a la parte "interesante" de ser QA. ¿Por qué resalto la palabra interesante? Por que la verdad es que yo creo que es muy aburrida, pero de esto dependerá la calidad de nuestro trabajo.

Vamos por parte diría Jack el destripador... Para entender bien que es cada cosa, las voy a definir rapidamente en una oración.

Test Case: Son todos los casos a los cuales vamos a someter el sistema a probar
Test Suite: Conjunto de test cases
Test Plan: Es el conjunto de suites o test cases que se ejecutarán, dependiendo de lo que se quiera probar


Quizas suena un poco engorroso, pero ahora lo voy a explicar con un ejemplo para que se entienda mejor.

Repasando un poco lo que vimos en mi post anterior sobre No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, tomaremos el mismo desarrollo como ejemplo y explicaré en que parte entra el QA en el proceso de desarrollo, uniendolo con los conceptos nuevos que vamos a aprender hoy.

Test Cases

Cuando empieza un sprint, los desarrolladores comienzas sus tareas de programación, pero... ¿Qué hacen los QAs mientras esperan algo para testear? Es una pregunta que me han hecho varias personas que se inician en este mundo. Pero la respuesta es sencilla, mientras los Programadores desarrollan, los QA nos ponemos a escribir los test cases.

Si en el Sprint 1 se va a desarrollar el Login y el módulo de Productos, se comienzan a escribir cada cosa que se pueda probar en esos dos módulos.

Existen herramientas para gestionar test cases, como lo es TestLink, es una excelente herramienta y muy completa que permite elaborar suites de test cases y planes de prueba también.


Si bien es una herramienta muy completa, que permite tener un versionado de test cases, asigna automáticamente un ID, se puede describir las precondiciones, los pasos con sus respectivos resultados esperados, etc. Suele ser muy tedioso o poco práctico.

Hoy en día cada vez son más los QAs que me comentan que estan utilizando la escritura de test cases en modo de checklist.


Como se puede ver, en 1 linea, tengo 1 test cases. Este checklist esta hecho en un spreadsheet de Google Drive y lo puedo compartir con el resto de mis compañero QA para repartirnos las tareas y que cada uno escriba o ejecute ciertos test cases.

Comparandolo con TestLink, podemos decir que este método de checklist es más sencillo de hacer, mantener y ejecutar. Pero TestLink permite cosas mucho más complejas, como llevar un control de quien hizo cada test case, cuando se ejecutó y demás.

Para continuar con la explicación de los test cases, tomaremos de referencia el checklist que les compartí. Cada uno es libre de colocar las columnas que vea necesario, yo creo que las fundamentales son las que creé en esa tabla.

Para este caso, esos son los test cases para testear el Login.

ID: Un numero de identificación único para cada test case
Título: De que se trata la prueba que realizaremos (¿Qué se va a probar?)
Pasos: Los pasos a ejecutar para probar dicha funcionalidad (¿Cómo se prueba?)
Resultado Esperado: Lo que esperamos que pase cuando se ejecuten dichos pasos (Lo que debería hacer la app)
Pass/Fail: Si pasó o no el test. Yo incluí también el N/A que quiere decir que NO APLICA
Comentarios QA: Acá dejamos algún comentario si es necesario

¿Como creamos los test cases?

Esta es otra de las preguntas frecuentes que suelen hacerme... Si aún no hay pantallas, ¿cómo sabré que campos o como debe ser la aplicación?

La respuesta es fácil, cuando nosotros nos juntamos con el cliente o el PO, es nuestra misión tomar nota de todos los detalles de la aplicación. Ejemplo: Que campos debe tener el login, si se loguearán con un ID de cliente o con el mail, si habrá link de recuperación de password, si quiere mostrar el logo en el login, etc...
En base a toda esta información recaudada, imaginamos como sería la pantalla y escribimos los test cases pensando en cada cosa que podría probarse en ella.

En el caso del login, podemos probar loguearnos con usuario y contraseña corerctas, usuario correcto y contraseña incorrecta, intentar colocar un SQLi en el login, intentar acceder a la URL del dashboard sin estar logueados, etc.
Y en cada caso agregamos el resultado esperado.
Si ingresamos un usuario y contraseña correcta, ¿Qué debería hacer la aplicación? Redireccionar al dashboard...
Si ingresamos datos incorrectos... ¿Qué debería pasar? La aplicación debe mostrar un mensaje de error
Y así con todo lo que se nos cruce por la cabeza probar.
Además, agregar casos negativos, como por ejemplo el de probar con credenciales inválidas, o insertar letras en un campo en el que solo deberían ir números, etc.

Mientras más test cases escribamos, más escenarios cubriremos.

Quiero aclarar una cosa. Es imposible cubrir el 100% de todos los casos existentes. Quizás creando test cases, podemos cubrir un 80% de los posibles escenarios, es por ello que existen varias estratégias de testing para complementar esto y asegurar una mayor cobertura. (Más adelante, en otro post, veremos más estratégias de testing)

Test Suite

Como bien resumí al principio del post, una test suite no es más que un conjunto de test cases. En la imagen que mostré anteriormente, tenemos la Suite de Test Cases relacionadas al Login.

Seguramente tengamos luego otra Suite con los test cases del formulario de registro, otra para el dashboard, y así con cada módulo que tenga la aplicación.

En caso de que existan test cases que se repitan, yo los suelo poner en una Suite a parte llamada "Genérica" y ahí incluyo los test cases relacionados al header o al footer, que son componentes que se reflejan en todas las páginas del sistema.

Test Plan

Llegamos casi al final del post, acá voy a explicar que es un test plan basado en test cases. Básicamente el test plan es la planificación de como probar la aplicación. Puede incluir distintas estratégias de testing, pero como en este post hemos hablado sobre test cases, lo explicaré en base a ello.
El test plan también sirve como forma de probar integraciones o el conjunto de varios módulos relacionados.

Supongamos que ya se encuentra desarrollado el login, el registro, el módulo de productos y acaban de entregarnos para testear el módulo de VENTAS.

Si bien ejecutamos los test cases relacionados a este módulo, con casos positivos y negativos, también debemos probar la integración con el resto de los módulos. Y acá es acá en donde entra en juego el test plan.

Armamos una planilla por separado, en donde incluiremos los test cases que ejecutaremos para probar esta funcionalidad. Para que quede completo y bien hecho, podemos probar el siguiente flujo:

Registrar un usuario
Loguearse en la aplicación con el usuario creado
Dar de alta un producto
Ir al módulo de ventas y vender ese producto a ese usuario.
Verificar en el módulo de productos que se haya descontado del stock la misma cantidad que vendimos

No es necesario agregar TODOS los test cases de cada cosa. Es decir, TODOS los test cases de registrar un usuario, TODOS los del login, etc... Sino los necesarios para completar el flujo completo, desde que se registra un usuario, hasta que se le vende el producto.

Esto es todo por ahora, espero que en los comentarios cuenten un poco sobre que metodología o forma usan a la hora de crear test cases!
#46
Underc0de / Underc0de en Netflix!
Junio 12, 2021, 04:43:35 PM
Hola a todos!
Ayer uno de nuestros usuarios encontró una serie en Netflix en la cual aparece nuestra comunidad!

Serie: El sabor de las margaritas
Temporada: 2
Episodio: 3
Minuto: 1:06:29




Saludos,
ANTRAX
#47
Hola Underc0ders!

Luego de un gran debate por Meet, hemos decidido nuevamente abrir el VIP de Underc0de!

Que cosas hay en el VIP?

- Cuentas premium (Disney+, Netflix, Spotify, Mega, etc)
- Aplicaciones premium para moviles
- Herramientas privadas
- Cursos de pago
- Libros premium
- Plantillas
- Plugins
- Y mucho más!

¿Cómo ingreso al VIP?

Para ingresar al VIP de Underc0de, solamente hay que estar activo en el foro. Las elecciones se harán al finalizar cada mes (Último día hábil del mes) e ingresaran los 10 usuarios que estuvieron más activos en ese último mes.

Pueden ir viendo el TOP 10 de miembros activos en tiempo real en la barra superior del foro:


¿De qué forma puedo ser activo?

- Publicando aportes
- Publicando dudas
- Respondiendo posts

NOTA IMPORTANTE: Serán eliminados todos los mensajes de farming cuya finalidad sea el de aumentar el contador de mensajes. Solo serán tenidos en cuenta mensajes que aporten a la comunidad.

Foro VIP: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Esperamos que les guste esta nueva iniciativa!
Underc0de Team
#48
La fundación de desarrolladores informáticos Underc0de tendrá su sede en el departamento de Godoy Cruz. Este viernes 16 de abril será el anuncio.


La Fundación Underc0de es una comunidad de desarrolladores informáticos de la provincia de Mendoza que brinda soluciones y proyectos sobre informática, tecnología, robótica, desarrollo de aplicaciones, de videojuegos, capacitaciones y alfabetización digital.

"Desde que abrió la Fundación Underc0de -en noviembre del 2020- está creciendo mucho en la provincia. La finalidad es capacitar a personas en forma gratuita y luego conseguirles trabajo, para ello tenemos acuerdos con algunas empresas", explicó el presidente de Underc0de, Danilo Vezzoni.


"Lo que hacemos nosotros es tener el semillero de gente ya capacitada y preparada y cuando viene una empresa interesada en algún perfil en especial, nosotros hacemos el contacto. En muy poco tiempo hemos conseguido muchísimo trabajo para los postulantes", agregó el analista y programador en sistemas.

Este viernes 16 de abril será un día muy importante para la Fundación, ya que finalmente tendrán su propia sede y estará ubicada en el departamento de Godoy Cruz. A través de un convenio con la Municipalidad, Underc0de instalará sus oficinas en el edificio de la ex­-Comisaría Séptima (en la esquina de Lavalle y Colón), frente a la Plaza Departamental.


"La idea es montar un cowork con una capacidad aproximada de 60 personas, con salas de reuniones, aulas, y laboratorios de electrónica", expresó Vezzoni.

La firma del acuerdo con el Municipio de Godoy Cruz será a las 11.30 en el Mendoza TIC Parque Tecnológico. Utilizarán la plataforma Meet, debido a las restricciones que rigen actualmente en la provincia por la segunda ola del coronavirus.

Hasta el momento, Underc0de firmó un convenio con la Municipalidad de Las Heras, en donde el Municipio les brindó un cowork para que cualquier miembro de la fundación puede trabajar desde allí. A su vez, brindarán capacitaciones, talleres, tutoriales, guías de aprendizaje y distintas herramientas y actualizaciones tecnológicas e informáticas a los vecinos, pymes, comercios y todos aquellos que trabajan en la informatización o en avances tecnológicos.
#49
Hola comunidad!
Les dejo el en vivo de este mes sobre criptomonedas y minería


Links útiles de la charla:

- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos!
#50

Los discos duros son el nuevo oro. Eso es lo que parecen demostrar las notables subidas de precio de unidades convencionales y también de SSDs en Asia, donde los precios se han disparado en los últimos días.

¿A qué se deben esas subidas? A la aparición y creciente popularidad de Chia, una criptodivisa que se puede minar pero no con GPUs, sino con discos duros: cuanto más espacio dediques a almacenar sus transacciones, más ganarás con ese singular proceso de minado.

Conseguir discos duros y SSD a buenos precios puede ponerse complicado

Detrás de la creación de Chia está Bram Cohen, que antes se encargó de revolucionar la filosofía P2P con la creación del protocolo BitTorrent.

Este desarrollo presume de ser mucho más eficiente y respetuoso con el medio ambiente. El mecanismo de consenso para añadir transacciones a su cadena de bloques se basa en el espacio de almacenamiento de los discos duros (cuanto más tengamos, más minaremos), y no en complejos cálculos que requieren muchísima energía.

Eso es lo que sucede con bitcoin u otras criptodivisas que se pueden minar con máquinas especializadas o con GPUs. Chia ya atrajo el interés de grandes grupos inversores como Andreessen Horowitz en 2018, aunque es ahora cuando realmente comienza a hacerse popular.

Se espera que Chia comience a entrar en el mercado de compraventa de criptodivisas el próximo 3 de mayo, y eso ha provocado que surjan especuladores que estén comprando montones de discos duros para anticiparse a la demanda y después tratar de sacar un jugoso beneficio.

En sitios chinos como Taobao o No tienes permitido ver los links. Registrarse o Entrar a mi cuenta se han agotado varias unidades de disco duro empresariales de gran capacidad, con precios que se han disparado de forma notable.


Los precios han llegado a subir hasta el 66% en algunas unidades, y aunque las de menor capacidad no están tan expuestas, la fiebre por este tipo de componentes podría hacer que también dichos discos duros y SSD incrementen su precio de forma importante.

Con las unidades empresariales agotadas o a precios desorbitados, algunos especuladores y futuros "mineros" a gran escala están ahora yendo a por las unidades de disco duro orientadas a entornos de videovigilancia. Aunque no son tan fiables cuando se realizan masivas operaciones de lectura y escritura, siguen siendo al parecer una buena opción para esos inversores.

De momento esas subidas de precio no se han trasladado a otros mercados, pero habrá que estar atentos para que esa potencial nueva fiebre del oro no se acabe afectando a muchos más usuarios y mercados.

De hecho la amenaza es aún mayor que en el caso de las GPUs: muchos usuarios pueden prescindir de estas gráfias si no juegan de forma frecuente, pero los discos duros y las unidades SSD son un componente esencial de cualquier PC o portátil, y esas subidas podrían incidir en los precios de venta de estos equipos a medio (e incluso a corto) plazo.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Como minar CHIA


Recursos:

Rendimiento SSD: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Básico de Plottear: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Calculadora: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
CHIA FAQ: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
CHIA Explorer: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Minar en Windows/Linux (Repo): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Espero que les sirva!
ANTRAX
#51
Underc0de / Underc0de desembarca en México!!
Abril 12, 2021, 09:05:13 AM
Hola a todos!

Como ya saben, nuestro mayor tráfico proviene de México, por lo que hemos decidido registrar la marca en ese país para proximamente empezar a hacer actividades y eventos con nuestros usuarios mexicanos.

Ya se iniciaron los trámites legales.



Muy pronto estaremos anunciando en este mismo post cuando el trámite quede 100% terminado, pero el registro ya es un hecho y esta en marcha, solo que demora unos días en ser publicado.

Actualmente ya existe un grupo de WhatsApp de dicho país: (Unirse solamente gente de ese país)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Nuestra embajadora en Mexico es No tienes permitido ver los links. Registrarse o Entrar a mi cuenta cualquier duda, pueden comunicarse con ella.

Seguimos en crecimiento y nos seguiremos expandiendo a más paises muy pronto!

Saludos a todos!
Underc0de Team
#52

El municipio lasherino y Underc0de trabajarán en conjunto en informática y tecnología, capacitando y asesorando a los vecinos, comerciantes, Pymes y todos aquellos que se desarrollen en este rubro

Las Heras firmó un convenio con una fundación de desarrolladores informáticos para brindar capacitaciones, talleres, tutoriales, guías de aprendizaje y distintas herramientas y actualizaciones tecnológicas e informáticas a los vecinos, Pymes, comercios y todos aquellos que trabajan en la informatización o en avances tecnológicos.

Este acuerdo de colaboración mutua es entre la Municipalidad de Las Heras y la Fundación Underc0de con el objetivo de fomentar la economía del conocimiento 4.0 y las TIC (Tecnologías de la información y la comunicación), brindando su recurso humano en pos de soluciones y proyectos vinculados a la informática en beneficio del vecino, las Pymes, industrias, comercios y profesionales del departamento e incluso del mismo municipio.

El intendente Daniel Orozco y Danilo Vezzoni, presidente de la fundación, fueron quienes refrendaron este acuerdo con el que se buscará acercar herramientas a los vecinos, empresarios y comerciantes de Las Heras, entre otros, que desarrollan sus proyectos en el ámbito de la tecnología y la informática.

La Fundación Underc0de es una comunidad de desarrolladores informáticos y está para brindar soluciones y proyectos sobre informática, tecnología, robótica, desarrollo de aplicaciones, desarrollo de videojuegos, capacitaciones y alfabetización digital al municipio y al vecino de Las Heras. También a las Pymes, a quienes la fundación les brindará posibles soluciones, además de ser el semillero de Coworking de Desarrollo Estratégico.

Esto se traducirá en talleres, tutoriales, guías de aprendizaje, herramientas y actualizaciones informáticas, todo con la mirada puesta en la mejora constante de la comunidad por medio de la tecnología. Los interesados en participar de proyectos informáticos y tecnológicos pueden solicitar información al mail No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Sebastián Castro, subdirector de la Dirección de Desarrollo Estratégico, expresó que "desde el municipio estamos encarando desde hace un tiempo el llamado conocimiento 4.0 y Las Heras TIC, con polos tecnológicos. Y para nosotros es muy importante este convenio con la Fundación Underc0de porque nos van a trabajar en ese aspecto".

"Todo ese trabajo de tecnología está apuntado a darle soluciones al vecino, como por ejemplo la agricultura, que lo estamos haciendo con el proyecto de hidroponia de El Borbollón, donde Underc0de nos está desarrollando un software con el cual nosotros podemos trabajar de manera gratuita todas las variables del invernadero a través de una aplicación, lo que hace más efectivo el trabajo", agregó Castro.

A nivel tecnológico, es inimaginable lo que se puede llegar a hacer, siempre pensando en lograr una Ciudad Inteligente que mejore la calidad de vida de los vecinos. Y eso es a lo que se apunta desde el área de Desarrollo Estratégico de la Municipalidad de Las Heras, fundamentalmente educando y acompañando a los emprendedores informáticos que hay en el departamento.

La Fundación Underc0de está conformada por gente que tiene estrecha relación con la informática, robótica, inteligencia artificial y afines y se dedica al desarrollo y a la seguridad del área informática, con el desafío de alcanzar la libre divulgación del conocimiento, compartir saberes, intercambiar aportes e interactuar para potenciar las capacidades y habilidades de cada uno de sus integrantes en un ambiente cordial.

Los asociados a la fundación son analistas de sistemas, programadores, desarrolladores web y audiovisuales digitales, todo relacionado a la informática y de los cuales buscará nutrirse el área de Desarrollo Estratégico de Las Heras en beneficio de todo el departamento.

El objetivo general del Convenio-Macro firmado entre la Municipalidad de Las Heras y Uncerc0de es el de realizar acciones tendientes al crecimiento de la industria del software y Tecnologías de la Información y la Comunicación, tendiente a articular acciones de colaboración entre estas Instituciones en los aspectos académicos.

Además, los asociados de la fundación podrán tener una práctica profesional en las instalaciones que el municipio disponga, en una retribución mutua entre las dos partes.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#53

Hola comunidad!
Oficialmente quiero comentarles a todos que Underc0de pasó de ser de un simple foro a una fundación de informáticos.

¿Qué cambios trae esto a la comunidad?

En principio estamos empezando desde muy abajo. Le hemos dado un marco legal a todo lo que es underc0de para convertirlo en una fundación sin fines de lucro, con la finalidad de ayudar a informáticos a aprender sobre las últimas tecnologías del mercado y para ayudar a nuestros miembros a conseguir trabajo rapidamente en empresas de software. Actualmente hemos hecho pruebas piloto y ya hay más de 50 personas que han conseguido trabajo gracias a Underc0de.

La fundación tendrá su SEDE principal en Mendoza - Argentina, en donde contaremos con un lugar físico en donde se dictarán talleres y funcionará las 24hs como un Cowork para que nuestros miembros tengan este lugar como punto de encuentro o para trabajar.

Se educarán:

Niños: En programación en bloque y robótica
Jóvenes: En las ultimas tecnologías del mercado
Adultos/Ancianos: Redes sociales, tramites online, office, internet, etc.

Actualmente contamos con 1000 miembros en la fundación, se realizan juntadas mensuales para compartir un buen rato entre amigos y muy pronto contaremos con el lugar físico anteriormente mencionado.

A futuro se busca extender los cursos y capacitaciones a toda la comunidad de manera online.

Más allá de tener un lugar físico, el lugar oficial de encuentro de Underc0de seguirá siendo siempre el foro. Ya que aquí es en donde nucleamos a todos nuestros usuarios.

Los seguiremos manteniendo al tanto de cualquier novedad y avance que vayamos teniendo!

Web oficial de la fundación: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos,
Underc0de Team
#54
Underc0de / Cambios en el foro (Secciones)
Abril 11, 2021, 10:22:57 PM
Hola a todos,

Se hicieron algunas modificaciones y cambios en las secciones del foro.

- La sección de "Presentaciones", también será utilizada para saludar por los cumpleaños.
- Sección de "Debates" y la de "Reviews" se han unificado
- Unificación de la sección "Papelera" y "Zona de Análisis"
- Se creó una sección nueva de Marketing: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
- Se creó una sección nueva para la fundación Underc0de: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
- Se unificaron secciones del Area 51.
- Se unificó la sección de Hardware y reparaciones
- Hacking Tools, subforo de la sección de Hacking.

Posiblemente unifiquemos algunas secciones más de desarrollo.

Saludos,
ANTRAX
#55

Librería en Python que permite utilizar opciones de la Mi Band 4 desde la consola de Linux. Algunas de ellas necesitan un AuthKey (Basado en el emparejamiento) Es decir, que si o si necesitamos tener acceso a al app para vincularlo.

Como obtener el Authkey

Como prerequisito, necesitamos tener el teléfono rooteado, ya que necesitamos acceder a la base de datos de la aplicación MiFit.

Pasos:

1- Instalar MiFit (desde el playstore)
2- Crear una cuenta
3- Emparejar la app con el reloj
4- Ejecutar el siguiente comando desde la terminal root del teléfono:

Código: bash
sqlite3 /data/data/com.xiaomi.hm.health/databases/origin_db_[YOURDBNAMEHERE] "select AUTHKEY from DEVICE"


De todas formas, la opción del Authkey es solo para alguna de las funcionalidades que detallaré a continuación.

Sin Authkey:
- Ver llamadas
- Ver alertas
- Ver notificaciones de llamadas perdidas
- Información del reloj
- Ver el titulo de la canción que esta sonando y opciones para controlar la música como el Stop, Play, Subir volumen y bajarlo

Con Authkey:
- Ver control del ritmo cardíaco en tiempo real
- Restaurar el Firmware o actualizarlo
- Contador de pasos
- Contador de calorías quemadas
- Configurar la fecha y hora
Entre otras funciones.

Instalación:

1- Clonar el repo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
2- Instalar las siguientes dependencias:

Código: bash
sudo apt-get install libglib2.0-dev
pip3 install -r requirements.txt


3- (Opcional) Si tenemos el AuthKey, debemos ponerlo en el archivo auth_key.txt que viene junto a este script
4- Apagar el bluetooth en el teléfono en el que tengamos vinculado al reloj
5- Buscar el reloj utilizando la dirección MAC usando hcitool

Código: bash
sudo hcitool lescan
sudo hciconfig hci0 reset


6- Correr el miband4_console

Código: bash
python3 miband4_console.py -m MAC_ADDRESS 



URL del Repositorio oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Espero que les sirva!
ANTRAX
#56

Hola a todos, como ya saben, se filtraron varios teléfonos de usuarios de Facebook.

Noticia completa: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Descarga:

Afghanistan - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Albania - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Algeria - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Angola - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Argentina - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Australia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Azerbaijan - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Bahrain - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Bangladesh - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Belgium - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Bolivia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Botswana - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Brazil - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Brunei - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Bulgaria - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Burkina Faso - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Burundi - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Cambodia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Cameroon - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Canada - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Chile - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
China - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Colombia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Costa Rica - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Croatia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Cyprus - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Czech Republic - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Denmark - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Dibouti - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Ecuador - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Egypt - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
El Salvador - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Estonia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Ethopia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Fiji - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Finland - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
France - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Georgia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Germany - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Ghana - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Greece - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Guatemala - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Haiti - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Honduras - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hungary - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Iceland - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
India - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Indonesia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Iran - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Iraq - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Ireland - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Israel - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Italy - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Jamaica - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Jordan - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Kazakhstan - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Kuwait - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Lebanon - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Libya - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Lithunia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Luxemburg - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Macao - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Malaysia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Maldives - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Malta - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Mauritus - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Mexico - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Moldova - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Morocco - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Namibia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Netherland - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Nigeria - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Norway - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Oman - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Palestine - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Panama - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Peru - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Philiphines - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Poland - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Portugal - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Puerto Rico - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Qatar - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Russia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Saudi Arabia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Serbia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Singapore - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Slovenia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
South Africa - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
South Korea - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Spain - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Sudan - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Sweden - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Switzerland - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Syria - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Taiwan - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Tunisia - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Turkey - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Turkmenistan - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
UAE - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
UK - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Uruguay - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
USA - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Yemen - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos,
ANTRAX
#57

Hola a todos!

Abro este post para que debatamos sobre cual de estos dos lenguajes es mejor como backend para plataformas web y porque creen que es así.

En caso de que consideren que hay otro mejor o más potente, también pueden mencionarlo!

Saludos.
#58

Hola lectores! El día de hoy vamos a tocar un tema del cual se esta hablando mucho hoy en día, y son los Ransomwares.

Hace unos días, un colega de Underc0de acudió a mi porque un Ransomware entró en una de las terminales de su empresa e infectó al resto de las computadoras conectadas a la red.

Antes de meternos de lleno en el tema de hoy....

¿Qué es un Ransomware?

Es un malware que infecta nuestra computadora y encripta nuestros archivos con el fin de pedir un rescate por ellos. Es decir, para poder volver a la normalidad a dichos archivos, deberemos pagarle una suma de dinero al creador del malware para que nos de una KEY que revierta el daño que hizo. Obviamente esa suma de dinero suele ser muy alta, como en este caso un millón y medio de dolares... Una locura no?

¿Qué hacemos si un Ransomware nos infecta?

Lo primero que debemos hacer, es examinar que tipo de Ransomware es o como se llama. Hay movimientos anti-malwares que crearon una especie de biblia con información sobre cada uno de ellos y sobre como desenfectarse o desencriptar los archivos sin tener que pagar.

Antes de pasarles el archivo, quiero aclarar que no estan las vacunas de TODOS los ransomwares. Tengan en cuenta que hay muchos de ellos y cada día aparecen nuevos. Pero en caso de ser infetados por alguno viejo, acá encontrarán la solución.


Documento completo:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Recomendaciones

A continuación les voy a dar una serie de recomendaciones que según yo, son fundamentales para afrontar este tipo de problemas.

Punto 1: <<BACKUPS!!!>> se que todos pensarán: ¿En serio? si, es en serio... se que es tedioso, que se pierde tiempo, pero creanmé que es sumamente importante.
Punto 2: Desactivar el servicio SMBv1
Punto 3: Instala los últimos parches de seguridad de Microsoft, en especial el siguiente: MS17-010 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
Punto 4: Asegurate de tener un buen AntiVirus. Si bien sabemos que no nos salvaran del 100% de los malwares, pero si de la gran mayoría.
Punto 5: Revisa bien lo que ejecutas en tu PC. Es decir, no aceptes archivos de gente que no conoces, o que te envíen por las redes sociales, mail, etc. (Se que es un punto obvio... Pero la ingeniería social esta a flor de piel)

NOTA: El punto 2 y 3 ayudan a que el ransomware no se propague por nuestra red e infecte a todas las computadoras conectadas

Espero que les guste el articulo y que comenten contando sus experiencias con este tipo de malware!
#59
Underc0de / Feliz 2021 Comunidad!
Diciembre 31, 2020, 04:54:15 PM

Estimada comunidad de Underc0de:

No quiero dejar pasar el momento para invitarlos a reflexionar y a recordar todo lo vivido en este año... Las pérdidas y los triunfos que tuvimos. Fue un año distinto, un año raro, un año de encierro... Pero no es facil encerrar a los leones y a eso lo saben, nuestra comunidad se caracteriza por su fiereza y entrega, y se que cuando esto pase, saldremos a rugir otra vez.

Este 2020 sirvió para pensar, para prepararnos y conocernos a nosotros mismos. Aprendimos a valorar lo que tenemos y sobre todo, aprendimos lo importante que es el vivir el día a día. Además, la pandemia nos ayudó a buscar alternativas, nuevos caminos y a redescubrirnos. Para este nuevo año, dejemos los miedos de lado y salgamos a hacer todo lo que no pudimos hacer en este 2020.

Se vienen nuevos desafíos, nuevas metas que conquistar, y como comunidad, estamos preparados para afrontarlas.
En estos días iré comentando todos los avances que hemos tenido en esta cuarentena y todo lo que vamos logrando gracias al apoyo de cada uno de ustedes.

Esta noche, cuando el reloj marque las 00hs, levanten sus copas y brinden por aquellos que estan, y por los que no pudieron llegar, pero que esten donde esten, van a apoyarnos para que este nuevo año sea mucho mejor.

Quiero agradecerle al increible staff de Underc0de, que siempre estan al pie del cañón dispuestos a lo que sea para el bien de la comunidad. Espero poder tenerlos a mi lado por muchisimos años más.

Saludos a todos y espero que empiecen muy bien este 2021!
ANTRAX
#60
Underc0de / Sorteo de fin de año!!
Diciembre 01, 2020, 10:17:05 PM
Hola a toda la comunidad!
Queremos cerrar este gran año de Underc0de con un super sorteo para celebrar la apertura de la fundación!


Se trata de un vuelo en Parapente totalmente gratis!

¿Cómo participar?

- Seguir el Instagram: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
- Comentar este post con tu nombre o nick
- Etiquetar a un amigo mencionandolo en el foro: @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

El sorteo se realizará el 10 de Diciembre del 2020 por Meet (online) entre las personas anotadas en este post y se corroborará que este siguiendo el instagram.

Aclaraciones:

- Solo participa la gente de Mendoza
- El premio incluye el vuelo y el traslado (No incluye las fotos, se pagan por separado)
- El premio es transferible a un amigo o familiar en caso de no animarse!

Esperamos que participen!
Underc0de Team

PARTICIPANTES

Dinno
Geniol
HydeFS
RookieTaylor
Chojun
Vazquesoft
Lucas
Jioxep
Marina carrizo
#Ric@rdo#
JuliKM
XxMetalMasterXX
ZarathuxXxtrA
Pocho
Delatorremario
Sandi
cristianizan24
p_p
oromi
LKI
Fernando.e
Paulapari
TENIENTEDAN666
TinchoMc
Joseru2005
NicoQuattrini
GabrielBermudez
#61
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Por tu gran compromiso con la comunidad, hemos decidido darte el rango de moderador global.
Muchas gracias por todo lo que haces por Underc0de y por sentirlo siempre como tu casa!

Esperamos tenerte aquí por muchos años más!

Saludos y Felicitaciones!!
STAFF
#62
Underc0de / Vota el mejor diseño de lata!
Septiembre 20, 2020, 11:10:29 PM
EQUIPOS:

EGGNIANOS   
#   Integrantes
1   Juan Cruz
2   Anabel Caliri
3   Cesar Antunes
4   Anto Guarnieri
5   Sole Lopez
6   Eimi Quinteros





OVERC0DE   
#   Integrantes
1   Giane Vezzoni
2   Anddre Par
3   Mariano Montenegro
4   Joel Vitelli (Dante)
5   Fabri Balbontin
6   Facu Torres





TEAM ASADO
#   Integrantes
1   Sandy Achuras
2   Chojun Costillas
3   Lucas Arañita
4   Ricardo Entraña
5   Maca Marucha
6   Jioxep Matambre





SUDOAPT   
#   Integrantes
1   Fede Calderón
2   Gabriel Segreti
3   Nicolás Ramírez
4   Leonardo Muñoz
5   Valentín Vidal
6   Cristian Palmero

NO PRESENTÓ DISEÑO




TEAM ALCHOLIZA2   
#   Integrantes
1   Elvio
2   Inmortal
3   Sebastian Arbona
4   Fer Elaskar
5   Bruno Mirinda (Lungo)
6   Paloma





UnderGanad0res   
#   Integrantes
1   Anita Alvarez
2   Leo Lepez
3   Tincho Macola
4   Uriel Funes
5   Alfre Vazquez
6   Tete

NO PRESENTÓ DISEÑO




Samurai C0ders   
#   Integrantes
1   Marcio Dominguez
2   Miguel Medina
3   Flor Salcedo
4   Regina
5   Antu
6   Hugo Gomez (Feno)





Code X
#   Integrantes
1   Julia García
2   Noelia Copa
3   Rebeca Ibarra
4   Elías coca
5   Germán giorgis
6   Nicolás Martini





SUPRAC0DE   
#   Integrantes
1   Sol
2   Pablo Rodriguez
3   Pablo Pelaia
4   Vega Enrique
5   Roberto
6   AndresKo





INFECTI0N   
#   Integrantes
1   Nico
2   David
3   Alejandra
4   Matías
5   Dsalme
6   Cinthia





BATHROOM   
#   Integrantes
1   Jose Rúffolo
2   Cristian Chiera
3   Floo
4   Cristian
5   Jah
6   Luis Javier

NO PRESENTÓ DISEÑO

Mucha suerte a todos los equipos!
#63
Underc0de / El juego de las latas
Septiembre 10, 2020, 02:58:25 PM

Este mes de Septiembre haremos un evento en la fundación de Underc0de (Mendoza - Argentina).

DESAFÍO
El desafío consiste en armar equipos de 6 personas y diseñar una etiqueta para una lata de cerveza.
Los equipos ganadores, ganaran 1 six pack por equipo (1 lata por persona) con el diseño que hicieron.

Habrán 2 equipos ganadores y tendrán 1 semana para realizar y presentar el diseño por privado (Fecha límite para presentar el diseño: 18/09/2020)
Los ganadores serán elegidos por votación.

Ganador 1: Likes en Instagram.
Ganador 2: Votos en el Foro.

El día Sábado se dará inicio a la votación por ambos lados y tendrá una duración de 1 semana. Los ganadores se sabrán el día Viernes 25 de Septiembre a las 16hs (Horario Argentino)

REGLAS:
- El diseño debe tener las siguientes medidas: 190mm x 132mm
- Debe tener el logo de Depatricias (elegir el que más les guste): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
- Debe tener el logo de Underc0de: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
- Fecha límite para presentar el diseño: 18/09/2020
- Ponerle un nombre a la cerveza
- El diseño tiene que tener estilo informático

Si bien el desafío es para la gente de Mendoza, TODA la comunidad podrá participar votando el diseño que más le guste!

EQUIPOS:

EGGNIANOS   
#   Integrantes
1   Juan Cruz
2   Anabel Caliri
3   Cesar Antunes
4   Anto Guarnieri
5   Sole Lopez
6   Eimi Quinteros

OVERC0DE   
#   Integrantes
1   Giane Vezzoni
2   Anddre Par
3   Mariano Montenegro
4   Joel Vitelli (Dante)
5   Fabri Balbontin
6   Facu Torres

TEAM ASADO   
#   Integrantes
1   Sandy Achuras
2   Chojun Costillas
3   Lucas Arañita
4   Ricardo Entraña
5   Maca Marucha
6   Jioxep Matambre

SUDOAPT   
#   Integrantes
1   Fede Calderón
2   Gabriel Segreti
3   Nicolás Ramírez
4   Leonardo Muñoz
5   Valentín Vidal
6   Cristian Palmero

TEAM ALCHOLIZA2   
#   Integrantes
1   Elvio
2   Inmortal
3   Sebastian Arbona
4   Fer Elaskar
5   Bruno Mirinda (Lungo)
6   Paloma

UnderGanad0res   
#   Integrantes
1   Anita Alvarez
2   Leo Lepez
3   Tincho Macola
4   Uriel Funes
5   Alfre Vazquez
6   Tete

Samurai C0ders   
#   Integrantes
1   Marcio Dominguez
2   Miguel Medina
3   Flor Salcedo
4   Regina
5   Antu
6   Hugo Gomez (Feno)

Code X
#   Integrantes
1   Julia García
2   Noelia Copa
3   Rebeca Ibarra
4   Elías coca
5   Germán giorgis
6   Nicolás Martini

SUPRAC0DE   
#   Integrantes
1   Sol
2   Pablo Rodriguez
3   Pablo Pelaia
4   Vega Enrique
5   Roberto
6   AndresKo

INFECTI0N   
#   Integrantes
1   Nico
2   David
3   Alejandra
4   Matías
5   Dsalme
6   Cinthia

BATHROOM   
#   Integrantes
1   Jose Rúffolo
2   Cristian Chiera
3   Floo
4   Cristian
5   Jah
6   Luis Javier

SPONSORS DEL EVENTO:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (Fabrica de cervezas)
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (Diseños web)
#64
Underc0de / Botones para compartir!
Septiembre 08, 2020, 10:12:46 AM
Hola a todos,

Quería comentarles que hemos puesto nuevamente los botones para compartir en las redes sociales. A los mismos podrán verlos a pie de cada post.


Agradecimientos especiales para: @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que me ayudó a colocarlos.

Saludos,
Underc0de Team
#65

Hola lectores! Hace un tiempo compré una Raspberry Pi 4 de 4GB. Sinceramente es un lujo, es muy rápida, pero todo lo bueno tiene su parte mala. Es increible la temperatura que levanta en pleno funcionamiento.

Mientras la usaba, la temperatura llegó a 62º, leyendo por internet, vi que varios usuarios se quejaban de lo mismo. De hecho uno dijo que su raspberry llegó a 80º.


En mi país, la Raspberry Pi 4 es muy costosa, por lo que me vi obligado a comprar solo la placa, sin los accesorios (carcasa con cooler y demás)

Mi mayor miedo era que se dañara por la alta temperatura, por lo que decidí ponerle disipadores.

A la temperatura podemos verla en tiempo real por medio del siguiente comando:

watch -n 1 "vcgencmd measure_temp"


Como se puede ver, la temperatura esta en 62º, toqué los disipadores y la verdad es que estaban muy calientes.

Googleando un poco me topé con algo que me llamó mucho la atención, y es que la temperatura alta se origina cuando la Raspberry alimenta los puertos USB 3.0, es decir, gasta mucha energía en alimentar esos puertos.

Como solución a esto, salió una actualización del firmware que reduce este consumo y disminuye la temperatura, pero hace que los puertos funcionen más lento.

Fuente oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Los pasos son los siguientes:

Descargamos del siguiente Drive el firmware: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Y lo descomprimimos e instalamos de esta forma:

Código: text
$ unzip vl805_update_0137a8.zip
$ chmod a+x vl805
$ sudo ./vl805 -w vl805_fw_0137a8.bin
$ sudo reboot


Para poder revertir los cambios:

Código: text
$ sudo ./vl805 -w vl805_fw_013701.bin
$ sudo reboo


Con esto reduciremos unos 10º la temperatura, pero perdemos velocidad en los puertos 3.0. En mi caso, no fue la solución, solo se las dejo por si a ustedes les sirve. Yo particularmente tengo una HDD de 2TB conectado, ya que la uso para guardar backups, y necesito que los puertos sean veloces.

Seguí investigando un poco y se me ocurrió fabricar una carcasa a la cual le pueda poner un buen cooler. En thingverse encontré este que me pareció ideal:


Este case cuenta con dos partes, la base y la parte superior en forma de corneta que es la más importante, ya que tendrá el cooler. En este caso entra un cooler de 4 pulgadas (12cm aproximadamente) y quedaría algo así:


Ahora simplemente hay que llevarlo a la práctica...

Dejo el link de Thinkverse por si alguien más quiere imprimir este case: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Me puse manos a la obra y empecé a imprimir la carcasa


Y les dejo unas fotos de como quedó el proyecto ensamblado




Resultado FINAL de la temperatura


Como se puede ver en la imagen, la raspberry py trabaja ahora a 22º!!! Bajó 40º solo por el case y el cooler.

Otra cosa que me faltó aclarar, al cooler le coloqué un transformador de 12v 1000mA. No esta conectado a la placa porque pienso que eso haría que funcione más lenta la transferencia de datos del disco.

He visto que existen miles de cases para la raspberry, pero hay varios que son para coolers pequeños. Sinceramente no se que tan eficiente sea, si algún lector lo tiene, me gustaría mucho leer su experiencia.

Espero que les guste este post y sobre todo que les sirva!

ANTRAX
#66

Hola lectores! El día de hoy les voy a enseñar a crear un servidor de torrent con una Raspberry Pi, con la finalidad de que puedan compartir sus archivos con sus amigos. Además, al hacerlo con una Raspberry Pi, contamos con la ventaja de poderla dejar funcionando 24/7 y no consumirá nada de energía.

Lo primero que deben hacer, es tener una Raspberry Pi con Raspbian, que pueden descargarla desde su web oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Una vez instalada, vamos a actualizar el sistema operativo con los siguientes comandos:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get update


Nota: como se puede ver, ejecuto dos veces el update, al principio y al final. A esto lo hago por si el upgrade descargó algun repositorio nuevo, de esta forma, además de descargarlo, lo dejamos actualizado.

Ahora pasaremos a la parte de la instalación de Transmission. Para quienes no sepan lo que es, es un cliente de torrents. De esta forma podremos descargar y cargar archivos a nuestra red P2P.


sudo apt-get install transmission

Una vez descargado, lo podremos ver en nuestro menú en la parte de "Internet"


Ahora vamos a Archivo >> Nuevo


Acá debemos seleccionar en que carpeta querremos guardar el .torrent (Archivo que contiene información del torrent) y el archivo fuente, que es el archivo que queremos compartir.

Una vez hecho esto, clickeamos en "Nuevo" y se añadirá a nuestra lista.

Ahora simplemente debemos enviarle ese .torrent a un amigo nuestro o podemos generar un "link" de descarga dando click derecho y seleccionamos la opción "Copiar enlace Magnet al portapapeles". Este link tiene un hash con la información del torrent. Al igual que el archivo .torrent, podemos enviarle este link a nuestros amigos para que descarguen nuestro archivo. (Funciona con cualquiera de las dos formas)

Como mencioné al principio del post, esto sirve para tener la Raspberry Pi todo el día funcionando sin tener que preocuparse por el consumo energético. En mi caso, estoy utilizando una Raspberry Pi 4 (La versión de 4GB) y tiene un defecto, el cual es que levanta mucha temperatura. Pero en mi próximo post explicaré como bajarle la temperatura de 60º a 30º... Pero no quiero desviarme ahora.




BitTorrent o Torrent es un sistema de compartición de archivos de tipo P2P (Peer to Peer o entre pares).
Siempre que navegamos por internet, jugamos en linea, etc. Se utiliza una estructura Cliente-Servidor


En el caso de los Torrent, esta estructura desaparece (evitando la capa de control de archivos) y la transferencia es directa con el resto de los pares.


Los torrents tienen 2 características:

1- Garantía de descarga de archivos a través de la red (de forma rápida y segura)
2- Posee un algoritmo que evita que los usuarios solo descarguen archivos sin contribuir al sistema.

Para poder utilizar torrent y compartir/descargar archivos, es necesario un cliente de torrent (En este post vimos Transmission) pero hay varios clientes como QB, uTorrent, Vuze, entre otros.

La palabra BitTorrent significa BIT = unidad de medida más elemental de los datos y TORRENT = que significa que seremos parte del torrente del flujo de información. Al instalar un cliente de los anteriormente mencionados, aceptamos los acuerdos de descargar y compartir archivos. Es decir, pasamos a formar parte de este sistema de compartición de a pares y los demás usuarios podrán descargar de mi computadora los archivos que yo he descargado por medio de esta red.

Funcionamiento:

Suponiendo que tenemos un archivo que pesa 900MB, el cliente de torrent lo parte en 900 archivos de 1MB cada uno y los agrupa en bloques. Finalmente se crea el archivo .torrent que contiene información o las instrucciones de como debe ser descargado, como esta dividido, de donde se puede descargar, etc.


La computadora que pone este archivo para compartir, se lo conoce como Seed o Seeder (Semilla o Semillero) que inicia la compartición. El Seed envía este archivo .torrent o el link a las computadoras que quieren el archivo y al abrirlo, comienza la descarga de esos bloques según la disponibilidad del Seed. A estas computadoras se las conoce como Leech (Sanguijuela), es decir, que se esta alimentando de los datos entregados por el seed.

Suponiendo que hay 10 computadoras descargando un mismo archivo, y una de ellas tiene una buena conexión a internet y termina, esta inmediatamente se convierte en un Seed y el resto de los Leech pueden descargar el archivo o los bloques de este nuevo proveedor. Al tener multiples semillas, la descarga se les completará más rápido al resto de los Leech y luego también pasaran a ser Seeds de ese archivo.

Ahora... ¿Qué pasa si una computadora, después de descargar el archivo desconecta su conexión o quita el archivo y no aporta a la red?
Acá entra en juego la segunda característica de los torrents, que es el algoritmo "Choke" (Estrangulación)

Algoritmo Choke

Cuando una computadora recibe muchas peticiones de descarga, esta decide quienes pueden descargar sus archivos, y para ello se basa en la cantidad de datos que ha compartido en Torrent. Es decir, si un usuario ha descargado mucho más de lo que ha compartido, este usuario no será seleccionado. En otras palabras, la persona que no comparte, queda con muy baja prioridad para ser seleccionado para descargar, o simplemente no queda en la lista para descargar el archivo.

Esto es todo por ahora, y si les gustó, espero que dejen su comentario!
#67
QA (Quality Assurance) / LIPPIA – Puesta en marcha
Julio 29, 2020, 08:43:03 PM

¿Qué es Lippia?

Lippia es un Framework que permite automatizar pruebas en aplicaciones Web, Mobile, Desktop y APIs.
El nombre Lippia proviene del nombre de una flor argentina y sus pétalos representan los distintos componentes del Framework.


Lippia es un Framework que utiliza BDD (Cucumber), puede integrarse a Jenkins, funciona con Selenium para automatizar web, Appium para aplicaciones mobile, y también sirve para automatizar aplicaciones de escritorio escritas en Java y APIs REST. Por otro lado, emite reportes y puede portarse dentro de un contenedor Docker o Kubernetes.

En la web de Lippia (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) van a poder encontrar códigos de ejemplo para automatizar web, mobile, apis o aplicaciones de escritorio.


En esta pequeña guía, voy a explicar como poner en marcha el ejemplo WEB. Para ello, clickeamos en "Lippia Web Sample Project" y nos llevará a su repositorio en GitHub.

Una vez en GitHub podemos clonar el repositorio o bajarlo como zip. Yo en este caso lo voy a descargar


Una vez descargado, lo descomprimimos y abrimos nuestro IDE. Yo utilizo IntelliJ porque me resulta muy cómodo, pero pueden usar el que más les gusta.
Vamos a FILE >> OPEN y buscamos la carpeta descomprimida. Una vez abierta, ya tendremos el framewok listo para empezarlo a trabajar.

Estructura del Framework:


Lippia tiene varias partes, pero 3 son las fundamentales a la hora de trabajar automatizando. Ellas son:

    Features (Secuencia de pasos escritos en lenguaje coloquial)
    Steps (Traducción de lenguaje coloquial a lenguaje de programación)
    Page Object (Métodos y mapeos)


El Feature es en donde tendremos el escenario escrito en lenguaje coloquial (Cucumber)

Cucumber es una herramienta utilizada para implementar metodologías como BDD (Behaviour Driven Development) las cuales permiten ejecutar descripciones funcionales escritas en texto plano como pruebas de software automatizadas.

Estas descripciones funcionales, se escriben en un lenguaje específico y legible llamado "Gherkin", el cual sirve como documentación al desarrollo y para las pruebas automatizadas.

Estos ficheros deben tener extensión ".feature". Cada feature está compuesto por un Background (opcional si se requieren pasos previos antes de ejecutar los escenarios) y por 1 a N escenarios.

Cucumber tiene palabras reservadas como GIVEN, WHEN, THEN, AND, entre otros que no son tan usuales, como por ejemplo BUT

En este ejemplo, veremos como hacer una búsqueda en Google, por lo que nuestro feature sería así:

Feature: Como usuario de underc0de, quiero buscar la web en Google

Código: text
@Smoke
Scenario: El usuario busca por "Underc0de" en Google
Given El usuario esta en la web de Google
When El usuario busca la palabra underc0de
Then El usuario ve los resultados de la busqueda


Given: Dado
When: Cuando
Then: Entonces


La otra parte son los STEPS. El archivo de steps contiene cada línea de nuestro feature convertida a lenguaje de programación y acá es en donde le decimos que acciones debe ejecutar nuestro script.

Código: java
@When("El usuario busca la palabra (.*)")
public void search(String criteria){
homePage.enterSearchCriteria(criteria);
homePage.clickSearchButton();
}


En esta porción de código estamos indicando las acciones que debería hacer el paso de "Buscar la palabra underc0de en Google"

Por último, tenemos los Page Object, en esta parte, se encuentran los mapeos y los métodos. Para explicarlo mejor (porque suele ser confuso al principio), podemos decir que el MAPEO, es en donde guardamos dentro de una variable, como se llama el elemento de la web. Es decir, si estamos en el buscador de Google, en una variable que se llame "Buscador" pondremos el nombre de la barra de buscar.

Pero... ¿De qué forma hacemos esto?

Existen varias formas de mapear un elemento. Puede hacerse por medio del ID, CLASS, NAME, XPATH, entre otros... Aunque esos 4 son los más comunes.

Y... ¿En dónde encontramos esos atributos?

En su código fuente. Para ello, vamos al buscador de Google e inspeccionamos el elemento (Click derecho en la barra de búsqueda >> Inspeccionar elemento)


Al dar click en "Inspeccionar elemento" se nos abrirá el inspector, y resaltado en azul, estará el pedazo de código correspondiente a lo que estamos analizando. En este caso se resalta un INPUT que es la barra de búsqueda.

Dentro de esta etiqueta, podemos ver varios atributos, como por ejemplo su CLASS, el NAME, entre otros... Pero como dijimos antes, los más comunes son los 4 mencionados anteriormente.

Para poder saber cual es su XPATH, simplemente damos click derecho en el código resaltado en azul y ponemos COPIAR >> XPATH


El XPATH representa la ubicación de ese elemento en el DOM del sitio. En este caso, el XPATH del INPUT es:

/html/body/div/div[2]/form/div[2]/div[1]/div[1]/div/div[2]/input

Se ve un poco confuso, pero es básicamente el árbol en donde se encuentra localizado ese INPUT, es decir, todo código HTML empieza con la etiqueta HTML, luego tiene un BODY y dentro del body hay DIVs que son contenedores de elementos. Ese XPATH representa toda esa estructura hasta llegar al INPUT.

NO ES RECOMENDABLE USAR XPATH PARA AUTOMATIZAR. Lo remarco en mayúsculas porque si agregan un nuevo contenedor (div) o mueven de lugar ese input, el XPATH cambiará y nuestro código quedará obsoleto y deberemos refactorizarlo.

En cambio, si utilizamos otro tipo de locator, es difícil de que se rompa nuestro código salvo de que agreguen otro con el mismo nombre.

Por lo general, los IDs suelen ser únicos por elemento, por página. Por lo que, si agregan un segundo INPUT, no debería llamarse igual al primero y nuestro código seguiría siendo funcional.

Sabiendo todo esto, podemos volver al principio y decir que un Page Object contiene ese mapeo de elementos (guardados en variables) y los métodos. El método es en la parte en donde le decimos que debe hacer nuestra solución con ese elemento. Es decir, si debe clickearlo, ingresar algún valor, verificarlo, etc.

Sabiendo estos 3 pilares del framework (Que de hecho casi todos los frameworks poseen la misma estructura), podemos seguir avanzando y ver cómo funciona.

FEATURE


En nuestro feature, indicamos en lenguaje coloquial y utilizando las palabras reservadas GIVEN, WHEN, THEN, que es lo que debería hacer nuestro script.

En otras palabras, esto quiere decir:

DADO que un usuario esta en Google, CUANDO busca la palabra underc0de, ENTONCES se muestran los resultados correctamente.

Hay 2 cosas más que es necesario aclarar acá. Por un lado hay un @Smoke en amarillo en la línea 3. Esto quiere decir que pertenece a la suite de test cases del Smoke. Podemos ponerle cualquier nombre, es simplemente un TAG, y sirve para indicarle al framework que test cases debe ejecutar. Si tenemos 10 test cases con el tag @Smoke, entonces correrá esos 10 test cases uno detrás del otro.

Y lo otro que hay que aclarar, es que la palabra underc0de aparece en azul. Y esto es porque lo estamos tratando como variable. Esto sirve para reutilizar código más adelante. Es decir, si queremos buscar Underc0de, y luego queremos buscar "Hacking, Programación, etc" podemos utilizar siempre el mismo STEP que es lo que veremos a continuación.

STEPS


Como dijimos antes, en el step se encuentra la traducción del Gherkins a lenguaje de programación.

Cada step, comienza con la etiqueta correspondiente (la misma que el Gherkins) @Given, @When, @Then y dentro la serie de pasos que debe realizar ese paso en particular.

Cada step, puede realizar 1 o N pasos (en lo posible no muchos, para poder identificar en que falla en caso de que tire alguno un error)

Estos Steps, al mismo tiempo, llaman a un método del Page Object (Que son los que tienen las acciones que deben realizar)

PAGE OBJECT


La teoría de Page Object dice que CADA PAGINA, DEBE TENER SU PROPIO PAGE OBJECT. Es decir, el login tendrá el suyo, el registro tendrá el suyo y así con cada página que tenga la aplicación.

Como ya expliqué antes, esta contiene el mapeo de los elementos (Lineas 8 y 9 de la imagen) y también los métodos (acciones que se realizarán en cada uno de esos elementos mapeados).

En los métodos, debemos indicar por medio de que atributo lo estamos localizando, en este caso se puede ver que al INPUT lo estoy localizando por el XPATH y al botón buscar por el NAME.


POM.XML

Este archivo contiene algunas propiedades, como por ejemplo, el TAG de ejecución


Como se puede ver en la línea resaltada (Línea 18) el framework correrá todos los tests que tengan el tag @Smoke


TESTNG.XML

Por último, para correr los test, debemos darle click derecho al archivo TESTNG.XML >> RUN


Y esto correrá el test de buscar underc0de en Google


Una vez ejecutado, podemos ver los resultados de la ejecución en la consola o en el reporte que genera el framewok. El reporte esta ubicado en:

TARGET >> CUCUMBER-REPORT >> EXAMPLE.HTML


Lo abrimos con nuestro browser de preferencia y podremos ver el reporte de la ejecución:


En caso de fallar, indica el error y adjunta una captura de pantalla, como a continuación:


Lo que hice fue cambiar el valor en un elemento del page object (en el mapeo) para que no encontrara y tirara este error de que no encontró el elemento.


.PROPERTIES

Por último, tenemos las "properties", acá se indican algunos parámetros como por ejemplo en que browser se correrán las pruebas, en que tamaño abrirá el browser, tiempos de timeout para encontrar un elemento, etc.


Esto es todo por ahora! Espero que les guste, y cualquier duda que tengan, pueden dejarla en los comentarios!

Saludos
ANTRAX
#68
Phreak / Rastrear telefonos moviles
Julio 04, 2020, 06:43:54 PM

Hola lectores del blog!! Hago este post a raiz de algo que pasó en la SEDE de Mendoza de Underc0de. Resulta que uno de nuestros integrantes se perdió y su familia y amigos estaban muy preocupados por el. Por suerte apareció y esta bien. (Casualmente le dicen Wally y por eso la imagen principal de este post).

Seguramente más de una vez alguien se pierde, o no saben su paradero y demás, es por ello que decidí hacer este post para ubicarlos rastreando su teléfono móvil.

También sirve para cuando nos roban el móvil, con esta aplicación podremos bloquearlo o borrarle nuestros datos a la distancia.

El proceso es muy sencillo. La gran mayoría de teléfonos tienen Android, y estos funcionan con una cuenta de Google. Mientras la cuenta de Google este vinculada al teléfono, esta constantemente manda datos de nuestra ubicación a Google devices Manager, que es un servicio de Google para rastrear móviles.

Para aquellos que no lo conozcan, Google lanzó este servicio, con el fin de rastrear dispositivos móviles robados con android, que tengan asociado una cuenta de Google (Gmail) y que por supuesto tengan el Administrador de dispositivos Android activado (que por defecto viene activado)

Para saber como funciona este servicio, lo activaremos en nuestro dispositivo de la siguiente forma:

Configuraciones >> Ubicación

Una vez dentro, veremos algo como lo siguiente:


Una vez activado, entramos a la página del servicio de Google: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Nos pedirá loguearnos con nuestra cuenta de Google, y podremos ver nuestro dispositivo en Google Maps, a demás veremos la siguiente información


Como se puede observar, la aplicación a demás de proveernos información sobre la ubicación, nos deja:

Hacer sonar el movil: Sonará durante 5 minutos con el maximo volumen aunque el telefono esté en silencio o en vibrador
Bloquear el telefono: Le coloca una clave nueva
Borrar: Borra permanentemente todos los datos del teléfono

En caso de que robaran nuestro móvil, con este servicio, podríamos mantener a salvo nuestros datos. Pero también, sirve como arma de doble filo y les enseñaré por que... Si alguien supiera nuestra contraseña o lograra entrar a nuestra cuenta de Gmail, podría apoderarse de todos los dispositivos que tengamos vinculados. Por lo tanto podría borrar nuestros datos, bloquear nuestro dispositivo o también saber nuestra ubicación..

Para saber la ubicación de un dispositivo móvil, Google utiliza estas tres cosas:

1.- Wifi
2.- GPS
3.- Red de datos


Si el dispositivo se encuentra apagado, el Administrador de dispositivo no funcionaria, por lo que no podrían usar ninguna de las funcionalidades que nombramos anteriormente. Quizás si rastrearlo ya que guarda la ultima ubicación en la que el teléfono estuvo encendido, pero no podrán ni bloquearlo, ni borrar los datos y mucho menos hacerlo sonar remotamente.

Finalmente, he descubierto que entrando a los Settings de Google Play: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta se puede ocultar la visibilidad del dispositivo y de esta forma no apareceríamos en el administrador de dispositivos


Pero está claro que si alguien tuvo la contraseña para acceder a nuestra cuenta de Gmail, también podría volver a habilitar la visibilidad..

A demás de esta versión web, el administrador de dispositivos cuenta con una versión móvil, la cual pueden descargar de Google Play:


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos,
ANTRAX
#69
Hacking / Fallas de seguridad en el codigo fuente
Julio 04, 2020, 05:28:07 PM

Hola lectores! El día de hoy quiero mostrarles algo curioso que encontré al hacer una auditoría a una plataforma web, se trata de una falla de seguridad en el código fuente, y de paso enseñarles una nueva herramienta que encontré que me pareció muy útil a la hora de recolectar información de un dominio.

Una de las primeras cosas que hice, fue utilizar Acunetix para listar todos los directorios de la web. Acunetix cuenta con un Crawler muy potente que recolecta toda la estructura de la web y así poder ver archivos o directorios ocultos. Como no vi nada raro, pasé a enumerar el dominio, viendo si ese dominio tenía o no subdominios. Para esto se pueden usar varias herramientas, pero encontré una que no había usado nunca y se las quiero presentar.

Se trata de una web que presta servicio de enumeración de dominios, dns, entre otras cosas: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Al escanear la web, me topé con un subdominio que llevaba a un backoffice


Al ingresar a este subdominio me topé con un formulario de login simple, en donde solo pedía usuario y contraseña


No había mucho que hacer acá, hasta que se me dió por revisar el código fuente y fue cuando encontré algo muy curioso.


La web tenía código comentado, como por ejemplo, un link para resetear la password y otro para crear nuevas cuentas. Lo que hice, fue borrar el código comentado con el inspector de elementos del browser para hacer aparecer esos elementos, aunque también servía copiar y pegar la url en una nueva pestaña.


El resultado fue el siguiente:


Como se puede ver en la imagen, apareció un link para reestablecer la contraseña, para crear nuevas cuentas y para recordar la sesion.

Al querer crear una nueva cuenta, me topé con lo siguiente:


Errores del servidor por todos lados y tiró muchos datos de directorios, configuraciones, usuarios, etc. Y por otro lado teniamos el link de reestablecer contraseña:


Y desde acá, podemos resetearle las contraseña a todos los usuarios.

Con esto podemos concluir 2 cosas:
1- Jamás dejen de revisar el código fuente de las aplicaciones
2- Nunca contraten programadores que dejan código comentado en producción!!

Espero que les haya gustado! Nos leemos en otro post!
ANTRAX
#70
Batch - Bash / Antivirus en Bash para servidores
Junio 11, 2020, 10:40:44 AM

Código: bash
#!/bin/bash

case $1 in
        -p)     echo "####################################################################################";
                echo "ATENCION: NO CORRER ESTO EN LA RAIZ DEL CLIENTE, SOLO DENTRO DE HTDOCS O RUTA PUBLICA";
                echo "####################################################################################";
                echo "Aplicando permisos 755 a directorios...";
                        find . -type d -exec chmod 755 {} \;
                echo "Aplicando permisos 644 a ficheros...";
                        find . -type f -exec chmod 644 {} \;
        exit;
        ;;
esac

echo -e "************************";
echo -e "Buscando symlinks....";
echo -e "************************";


#find . -type l -exec ls -lad {} \;
echo -e "\nBuscando nuevos ofuscamientos ....";
egrep . -iRle "\\\\057|\\\\157|\\\\151|\\\\141|\\\\145|\\\\144|\\\\164|\\\\160|\\\\156|\\\\150|\\\\163|\\\\060|\\\\055"
#grep . -iRle "\\057" -e "\\157" -e "\\151" -e "\\141" -e "\\145" -e "\\144" -e "\\164" -e "\\160" -e "\\156" -e "\\150" -e "\\163" -e "\\060" -e "\\055"

echo -e "\nArchivos probabilidad > 80% (los js puede que no sean virus, revisar a mano):";

grep . -iRle "function.*strlen.*base64_decode" -e "gzinflate(base64_decode" -e "s21=strtolower" -e "s20=strtoupper" -e "gzuncompress(base64_decode" -e "strtoupper.*eval" -e "@eval($_POST" -e "_REQUEST.*chr" -e "\?php.*.chr(" -e "\$GLOBALS.*eval.*echo" -e "file_get_contents.*fwrite.*fclose" -e "gzinflate.*str_rot13"| egrep -v "phpmailer|.js";

#echo -e "\nArchivos probabilidad > 80% tipo nombre##.php común en virus";
#find . -iname [a-z][a-z]*[0-9][0-9].php;
#echo -e "";

echo -e "\n****************************************************";
echo -e "Deseas correr busquedas con Probabilidad < 50% ?";
echo -e "(yes = y / no = n): ";
echo -e "****************************************************";
read permisos
if [ "$permisos" = "y" ]; then
        echo "Archivos probabilidad < 50% OJO: Puede incluir falsos positivos:";
        grep . -R -l -e "return base64" -e "base64_decode" -e "md5(\$_REQUEST"  | grep -v "phpmailer";
        #grep . -iR -l -e "file_get_contents" -e "shell_exec";
        echo -e "";
else
        echo "Siguiente \n"
fi


echo -e "\n****************************************************";
echo -e "Deseas correr busquedas de ofuscamiento hexadecimal ";
echo -e "Probabilidad < 50%";
echo -e "(yes = y / no = n): ";
echo -e "****************************************************";
read permisos
if [ "$permisos" = "y" ]; then
        echo -e "Buscando PHP ofuscado en hexadecimal...";
        grep '\\x[0-9]\{1\}[0-9a-f]\{1\}\\x[0-9]\{1\}[0-9a-f]\{1\}*\\x[0-9]\{1\}[0-9a-f]\{1\}*\\x[0-9]\{1\}[0-9a-f]\{1\}*' . -ilr | grep -v jquery;
        echo -e "";
else
        echo "Siguiente\n";
fi


echo -e "\n***********************************************";
echo -e "Deseas correr otras busquedas no tan efectivas? ";
echo -e "(yes = y / no = n): ";
echo -e "***********************************************";
read permisos
if [ "$permisos" = "y" ]; then
        echo "Buscando Xploit Pattern\n";
        sploitpattern='r0nin|m0rtix|upl0ad|r57shell|cFaTaLisTiCz_Fx|Tukulesto|99shell|shellbot|phpshell|void\.ru|phpremoteview|directmail|bash_history|\.ru/|brute *force|multiviews|cwings|vandal|bitchx|eggdrop|guardservices|psybnc|dalnet|undernet|vulnscan|spymeta|raslan58|Webshell'
        find ./ \( -regex '.*\.php$' -o -regex '.*\.cgi$' -o -regex '.*\.inc$' \) -print0 | xargs -0 egrep -il "$sploitpattern" | sort
else
        echo "Siguiente \n.";
fi
#echo -e "";
#echo -e "Buscando posible SPAM...";
#echo -e "************************"

#grep . -R -l -e "$GLOBALS\[";


echo -e "\n************************";
echo -e "Deseas aplicar permisos ";
echo -e "seguros a archivos y directorios? ";
echo -e "(yes = y / no = n): ";
echo -e "**************************";
read permisos
if [ "$permisos" = "y" ]; then
        #echo -e "Aplicando permisos 755 a directorios...";
                echo "Ejecuta manualmente no en la ra▒z sino ruta publica: find . -type d -exec chmod 755 {} \;";
        #echo -e "Aplicando permisos 644 a ficheros...";
                echo "Ejecuta manualmente no en la raíz sino ruta publica:  find . -type f -exec chmod 644 {} \;";
else
        echo "Terminamos.";
fi


Dedicado a mi amigo @Gn0m3

Saludos,
ANTRAX
#71
Hacking ShowOff / [SQLi] Crom.co.uk
Abril 22, 2020, 09:57:05 AM

URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vulnerabilidad: SQLi
Vector: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Reportado: NO
#72
Hola a todos,

Estoy intentando montar una "red" de cursos por torrent para ustedes.
He estado googleando y buscando información al respecto, pero no he visto nada útil aún. Quería saber si alguno de ustedes había montado uno de esto antes y como (en un raspberry pi)

La idea es poner el servidor de torrents conectado a un hdd de 2tb lleno de cursos para que puedan descargar.

Espero que puedan ayudarme!
Saludos,
ANTRAX
#73

Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos un modelo de Visera Protectora que se está distribuyendo en Mendoza, Argentina por el equipo de Underc0de Mendoza

Protegiendo la cara de salpicaduras, además las láminas de acetato pueden ser recambiadas ya sea otra lámina o incluso por placas de radiografías desteñidas con lavandina, ya que el diseño de la visera lo permite, es útil también para los servidores públicos que se ven expuestos al contacto cara a cara con aglomeración de personas.

Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.

Aspectos Generales:
Este modelo se presentó ante el Comité de Infectología en Mendoza, conformado entre otros por el Doctor Pablo Melonari - Jefe de infectología del Hospital Notti y la Doctora Carolina Membrives, Jefa del Servicio de Anestesiología y parte del comité de Crísis. Ha sido validado, por lo que estamos en condiciones de empezar a producir.

Materiales de Producción:
En cuanto al filamento para impresión 3D, por ahora hemos validado su funcionamiento con PET-G y con PLA.
Para la máscara se esta usando acetato de 24x24cm. En caso de no contar con acetato, se estan utilizando las tapas transparetes de las carpetas para CV (Curriculum Vitae u Hoja de vida) o placas de radiografía desteñidas con lavandina.

Instrucciones de impresión

DESCARGA Archivo de Impresión (archivo .stl):
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Recomendaciones de Impresión

> PLA o PETG para que sea lo suficientemente flexible para el ensamble y uso final.
> Con pico de 0.4mm usar 3 perímetros, con pico 0.8mm usar 2 perímetros.
> No usar soportes.
> No requiere adherencia tipo "balsa" o similar, pero hay que cuidar que no se despeguen las puntas. Se recomienda fijador abundante, al menos en la zona de las puntas y temperatura de cama alta.
> No es necesario reducir la velocidad de los perímetros exteriores ya que la terminación a velocidad máxima es adecuada para el uso que se le dará. (Nota: por defecto los slicers reducen a la mitad la velocidad de la pared exterior, se puede modificar).
> Relleno 0% (o muy bajo), ya que la mayor parte del cuerpo, y lo que termina dando resistencia, son perímetros. En caso de que sea 0% se puede agregar un perímetro más para las zonas donde debería haber.
> En caso de que se despeguen los extremos, no es necesario descartar la impresión. Se puede lijar/gastar/cortar la rugosidad que se genera (que está en contacto con la cara del usuario) y el producto sigue siendo funcional.

Ejemplo de impresión con PETG en una impresora Ender CR10

> Nozzle de 0.8mm
> Temperatura de nozzle: 240ºC
> Temperatura de cama: 85ºC
> 2 perímetros (queda 100% rellena con eso)
> 0.32mm altura de capa (máxima recomendada)
> 50mm/s (se podría experimentar con más)
> Ajustes en retracción para reducir "hilos"

Ejemplo de impresión con PLA en una impresora Ender 3

> Nozzle de 0.4mm
> Temperatura de nozzle: 210ºC
> Temperatura de cama: 70ºC
> 3 perímetros
> 0.2mm altura de capa
> 50mm/s (relleno, perímetros interiores y exteriores, piso y techo)

Ejemplo de posicionamiento en cama de 300 x 300

Ejemplo de posicionamiento cama de 200 x 200
Coordenadas (-25, -25) y (25, 25), girando 180º el de abajo.

Como agujerear el acetato o máscara transparente
Casi todos estamos agujereando el acetato con un cautin (soldador de estaño). Pero recientemente un colaborador mencionó que le sirvió haciendolo con una perforadora de papel. Dejo los detalles a continuación.


Consideraciones importantes para su fabricación
● Actuar como si estuvieras infectado por el virus COVID-19. Use barbijo, máscara-escudo y un par de guantes nuevos cuando recolecte cada lote de piezas impresas. Almacene las piezas inmediatamente en una bolsa con cierre hermético.
● Hable con quien sea que esté haciendo las máscaras-escudo, hágales saber sobre su entorno de fabricación
● Todavía se debate sobre cuánto tiempo sobrevive el virus en el plástico, pero la mayoría de las fuentes mencionan 2-3 días. Eso significa que al dejar reposar los protectores faciales durante 2-3 días antes de distribuirlos, reducirá en gran medida el riesgo de transmisión
● No almacene todo el stock en un solo lugar, minimice el riesgo de contaminación cruzada

Esterilización
Después de hablar con varios profesionales de la salud, nos comentaron que ellos lo desinfectan con alcohol al 70% antes de utilizalos. Pero de igual forma se recomienda tenerlos 90 horas aislado en una bolsa o en algo sellado.

Ya está en uso en hospitales de Mendoza - Argentina

Fuente Oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#74
Impresiones 3D / Respirador artificial funcional
Marzo 20, 2020, 10:47:05 PM
#75

Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos una Válvula de Venturi para los respiradores.
Equipamiento médico elemental y vital para asistir mecánicamente en la respiración a los pacientes con más complicaciones y fallas agudas respiratorias.
Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.


Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#76
Impresiones 3D / Mascara Facial reutilizable
Marzo 20, 2020, 08:51:22 PM

Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos un modelo Mascara Facial Reutilizable
**Utilizar solo en caso de extrema urgencia
Solo como último recurso, cuando no se disponga de máscaras protectoras adecuadas. La toalla de papel se utiliza sólo para fines de demostración y no es aconsejable como material para las mascarillas.
Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.

Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#77
Impresiones 3D / Mascara COVID-19 (Requiere filtro)
Marzo 20, 2020, 08:47:47 PM


Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos un modelo Mascara COVID-19 (sin soporte Requiere filtro)
**Utilizar solo en caso de extrema urgencia
Solo consta de 3 piezas, pero no incluye el filtro necesario para bloquear eficazmente la propagación del virus.
Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.



Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#78
Impresiones 3D / Mascarilla Facial con filtros
Marzo 20, 2020, 08:40:21 PM



Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos un modelo de Mascarilla Facial con filtros
Para uso común, en lugar de las mascarillas desechables, es una mascarilla reutilizable, permite cambiar el filtro después de usarla y desinfectar para volver a utilizar.
*Hay que tener en cuenta que esta mascarilla no es para uso médico

Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.


Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#79

Piezas:

Colocar Cinta en el picaporte



Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#80
Impresiones 3D / Visera Fija Curva v0.4 - sin logo
Marzo 20, 2020, 08:17:52 PM

Quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.

Modelo realizado en España.

Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta