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ú

Mensajes - fermino

#41
Off Topic / Re:¿Quieres ganar un VPS? Participa!
Febrero 21, 2015, 03:00:06 AM
Felicidades DeBobiPro!
Pasame por MP qué sistema operativo quieres :D
#42
Android / Re:[PHP] Crashear WhatsApp usando WhatsAPI
Febrero 21, 2015, 12:42:47 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy bueno bro!
Te dejo +1
Seguro que si lo ve fermino, se pondrá a jugar con esto xD

Saludos!
ANTRAX

Gracias. La idea es esa, jugar jaja. Saludos

xDD
Es que esta API está genial :P

Tal vez un módulo para No tienes permitido ver los links. Registrarse o Entrar a mi cuenta?
#43
Presentaciones y cumpleaños / Re:Me presento...
Febrero 20, 2015, 09:46:48 PM
Bienvenido a la comunidad!
Esperamos verte seguido por aquí, y como ya te dijo Gaby, si gustas, pásate por el IRC :D

Saludos!
-fermino-
#44
Wargames y retos / Re:RETO XSS [Facil]
Febrero 20, 2015, 12:54:11 PM
Muy bueno!

#45
Off Topic / Re:¿Quieres ganar un VPS? Participa!
Febrero 19, 2015, 11:13:11 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
dehombreadios 74



xDDD
Anotado
#46
Continuando con la primera entrada sobre el tema, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, en esta veremos la clase principal de la librería, sus métodos y sus propiedades...

Nota: En la entrada anterior olvidé aclarar que estas librerías sólo funcionarán con la versión de Arduino 1.x o posterior. Para utilizarla con versiones anteriores, hay que hacer un par de modificaciones que posiblemente comente luego.

Aquí tenemos que crear tres métodos, el constructor, Encender, y Apagar.
En lugar de crear una clase contenida por la palabra class, vamos a definir cada método por separado.

La estructura de cada método sería algo así.

Código: cpp
<Clase>::<Método>(<Parámetros>)
{
    <Código>
}


Por ejemplo:

Código: cpp
Led::Led(int P)

o
Código: cpp
Led::Encender() 



Ahora sí, el código completo:

Código: cpp
// Librería de control de Led para Arduino 1.x
    #include "Led.h"

    Led::Led(int P)
    {

    }

    void Led::Encender()
    {

    }

    void Led::Apagar()
    {

    }


La primera línea es tan solo un comentario. Especificamos la versión de la IDE para la cual la librería está hecha, y podemos también agregar nuestro nombre, sitio web, etc...
En la siguiente, incluimos la cabecera que contiene las definiciones de la clase (ver No tienes permitido ver los links. Registrarse o Entrar a mi cuenta).

Luego, definimos el constructor, con el parámetro entero P, el método Encender (del tipo void, sin retornar ningún dato), y Apagar.

Pero esperen, esos métodos no tienen ningún código dentro, ¡no hacen nada! D:

Código: cpp
// Librería de control de Led para Arduino 1.x
    #include "Led.h"

    Led::Led(int P)
    {
        Pin = P;
    }

    void Led::Encender()
    {
        digitalWrite(Pin, HIGH);
    }

    void Led::Apagar()
    {
        digitalWrite(Pin, LOW);
    }


Ahí agregamos el código. En el constructor, hacemos que la propiedad Pin (privada, de la clase), sea igual al parámetro P. Todo esto supongo que deberían saber hacerlo, ¿no? :P
En el método Encender, hacemos que la salida digital correspondiente a Pin (Si inicializamos la clase con el número 3, actuaremos sobre dicha salida) sea alta. En Apagar, haremos que la salida sea baja.

Eso es todo por hoy, la próxima vez veremos cómo generar palabras clave que la IDE pueda detectar y marcar con colores xD

Saludos!
-fermino-

Fuente (mi blog :P): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#47
Off Topic / Re:¿Quieres ganar un VPS? Participa!
Febrero 18, 2015, 03:30:31 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
DaRK UnLiMiTeD 20

Anotados! :D
#48
Off Topic / Re:¿Quieres ganar un VPS? Participa!
Febrero 17, 2015, 11:02:34 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
d1d4c 33

Todos anotados!

Nadie más se suma? :P
#49
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Fermi, tu narración es prístina, como el agua.

Ya me hiciste googlear :v
#50
¿Qué es una librería? No, no es ese lugar en donde se venden libros, nos referimos a otra cosa. Una librería o biblioteca, en cuanto a informática se refiere, es un conjunto de implementaciones (según wikipedia; a decir verdad, no termino de encontrar las palabras para explicarlo por mi mismo), que están hechas para ser usadas por otros. Las librerías están hechas para ser usadas por otros programas, no son autónomas.

Por ejemplo, yo puedo crear una librería para controlar determinado sensor (Si hablamos específicamente del Arduino), o una para, por ejemplo, consultar el clima, etc...
Eso sí, debe haber un programa, que interaccione con la librería y muestre los datos.

En este pequeño tutorial, aprenderemos a crearlas y utilizarlas...

Ahora bien, las bases de una librería orientada a objetos en Arduino (y en C++ inclusive), son tres.

  • Cabecera (header)
  • Código (la clase en sí)
  • Keywords (palabras clave)
(Si no tienes ni idea sobre qué es el paradigma de orientación a objetos, se podría resumir en ésto: Uno tiene objetos, que simulan el mundo real, por ejemplo. Los objetos tienen métodos y propiedades. Imagina un objeto Coche, un método (función), sería por ejemplo conducir, y una propiedad (variable), podría ser la patente. Además, un objeto puede heredar todo eso de otro. Puedo crear una variante específica del objeto Coche, para adaptarlo a lo necesario. Una Clase, es el modelo de un objeto, su definición. Una instancia, es el modelo ya funcional, con el que puedo interactuar. Si no te quedó claro, puedes googlearlo :P)

La cabecera, es el archivo que se encarga de definir la estructura de la clase. Le dice al compilador qué métodos y propiedades tiene, etc...
El código, la clase en sí misma, es eso, métodos, propiedades, etc...
Recuerda: la definición en la cabecera debe ser exactamente igual a la estructura de la clase, sino el compilador lanzará error.

Keywords, las palabras clave que le dicen a la IDE, qué resaltar con color (So cute, eh? ^^)

En esta entrada nos vamos a centrar en la cabecera.

Creamos una carpeta para nuestra librería, y añadimos un archivo con el mismo nombre, con extensión .h. Si nuestra librería se llama chat, tenemos que crear chat.h.

Comencemos entonces, ésta, es la estructura básica de una cabecera:

Código: cpp
#ifndef LED_H
#define LED_H
#include <Arduino.h>

class Led
{
private:
int Pin;
public:
Led(int P);

void Encender();
void Apagar();
};

#endif


Las dos primeras líneas son llamadas cláusula de inclusión, evitan que incluyamos la misma cabecera dos veces. En PHP sería require_once en lugar de simplemente require.
Dicen, si no está definida la cabecera LED_H, ejecutar todo el código hasta #endif.
La segunda línea, se encarga de definir la constante LED_H, la cual indica que la cabecera ya se ha incluido. 
La tercera, incluye todo eso que nosotros usamos normalmente, las funciones, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Sí, por si no lo notaste, todo eso también está contenido en una librería :P

En la quinta línea se define la clase Led.
En la séptima, definimos propiedades y métodos privados.
¿Qué significa esto? Si algo se define como privado, solo será accesible desde la misma clase, si es público, el programa podrá también acceder a ésta.
La propiedad Pin, es decir, el pin en donde está conectado el led, será privado, puesto que, ¿es necesario que el programa lo sepa, siendo el mismo programa quien lo define?...

:O ¿Cómo lo hace? Acá entran en juego los constructores...

Dentro de public, tenemos el método Led, con un parámetro llamado P, de tipo int (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta).
¿Notaron que aquel método tiene el mismo nombre que la clase? Ahap, eso es un constructor. Cuando nosotros instanciamos la clase, si hay un constructor presente, debemos pasarle los parámetros correspondientes, en este caso, el número de pin (el parámetro P). En el constructor, nosotros podemos tomar aquel número, y ponerlo en una propiedad de la clase, para usar esos datos luego, por ejemplo, en Pin.

Luego, tenemos el método Encender, que como pueden ver, no lleva parámetros. ¿Por qué? Si podríamos pasarle el número de pin... No, ese método actúa sobre el objeto Led, es decir, vamos a utilizar la propiedad Pin, para saber qué encender. Pero... ¿Qué es ese void ahí? Es el tipo de dato. Una función puede retornar (o no), algún dato. Una función que sume dos números, debe devolver un dato entero (int), por ejemplo. Si no queremos retornar ningún dato, será void.
El método Encender, no debería devolvernos nada, ¿no?.

Lo mismo para el método Apagar.

En las líneas siguientes se cierra la clase, y en la última, se cierra la cláusula de inclusión. ¿Recuerdan eso de "ejecutar todo el código hasta #endif."? Bueno, a eso se refiere.

Si LED_H no está definido, definirlo y crear la clase.

Eso es todo! Esa es la estructura básica de la header de una clase. En la próxima entrada veremos la clase como tal...

Saludos!
-fermino-

Fuente (mi blog :P): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#51
Aw, un post de ANTRAX del 2010 :v
#52
Off Topic / Re:¿Quieres ganar un VPS? Participa!
Febrero 14, 2015, 02:09:18 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
elrodrix 21

Todos anotados hasta acá!
#53
Off Topic / Re:¿Quieres ganar un VPS? Participa!
Febrero 13, 2015, 11:49:23 PM
Cita de: [Q3rV[0] link=topic=24428.msg84134#msg84134 date=1423879073]
[Q]3rV[0] 83

PD: blackdrake me cago el numero.

Si sale el 26 entonces ya sabés a quien matar :v
#54
Off Topic / Re:¿Quieres ganar un VPS? Participa!
Febrero 13, 2015, 09:52:53 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Me tome el atrevimiento de ir actualizando el post con los inscriptos.

Vamos chicos aprovechen e inscribansen :)

Saludos

xD Buenísimo, justo venía para hacerlo :P

Regards!
-fermino-
#55
Cuando estaba comenzando todo el mundo web (de programación hablando), por ahí leí que existían unas tales spiders, crawlers, que buscaban por todos lados intentando encontrar direcciones de email a las cuales spammear, leí que como protección, recomendaban no añadir la dirección a nuestra web con el clásico mailto, sino ponerlo en una imagen, etc...

Bastante tiempo después, leí por ahí un comentario sobre cómo Github hacía esto. No, no los ponía en plano, no era javascript, no amenazaba a las arañas con un bate ni nada por el estilo. Las direcciones, las ofuscaba...

Me puse a ver qué onda con esto, cómo era. En mi firefox cuando pasaba el mouse por ahí arriba la dirección se veía común y corriente, "mailto:fermino...", Inspeccionar elemento?
Nada, se veía exactamente igual:

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

No creí que todo eso fuera dinámico, y efectivamente, con un View source, bastaba.
CTRL + F, "mailto", y...

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

"Comienza con 'x', tiene dos dígitos después, por ahí hay una 'd', una 'e', una 'f'... Seh, tiene que ser hexadecimal, ¿no?".
Como, tengo que admitir, nunca había usado esa forma de insertar caracteres (en hexa, con &#x--;), me puse a googlear sobre el tema. Una buena tabla No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, y listo.

Bien, mas o menos entiendo como es ésto, ahora; ¿qué escribo?.
Ahí aprendí la utilidad de las funciones No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, de PHP.
Ord, devuelve el número ASCII del caracter dado; chr, el caracter correspondiente al número ASCII.

"Oka, puedo usar chr sobre cada caracter de la string para obtener el número... Pero, ¿cómo saco el hexa?"
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, le tiramos un número entero (sistema decimal), y nos devuelve la cadena correspondiente, en hexa (base 16). Sí, luego descubriría que se puede hacer "&#<numero entero, no hexa>;", y es lo mismo; pero bah, ¿no queríamos copiar a Github?

Ahora sí, "Paso sobre cada caracter chr, eso lo paso por dechex, y listo, lo añado a una cadena con el código final, ¡buenísimo! :D"...

Y algo así resultó:

Código: php
<?php
    function ObfuscateEmail($Email)
    {
        $Code = 'mailto:';

        $Length = strlen($Email);

        for($i = 0; $i < $Length; $i++)
        {
            $Char = dechex(ord($Email[$i]));
            $Code .= "&#x{$Char};";
        }

        return $Code;
    }

    echo ObfuscateEmail('[email protected]');


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

Tal vez alguno de estos días lo agarre y le añada alguna que otra cosa, la posibilidad de usar o no hexa, un script que busque en la página direcciones y las ofusque (Tal vez usando ob_ para agarrar todo antes de ser mostrado, parsearlo y hacer lo que sea necesario. Y sí, nótese que pongo todo esto acá para que no se me olvide después :P), pero bueno; espero que si llegaste acá por google, te haya servido! Y sino, también :v

Regards!
-fermino-

Fuente (mi blog :P): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#56
Off Topic / ¿Quieres ganar un VPS? Participa!
Febrero 12, 2015, 10:44:53 PM

Hola a toda la comunidad!
Como agradecimiento a todos los usuarios por apoyar a Underc0de, haremos este sorteo en el cual TODOS pueden participar!

El premio será un VPS pago por un mes.
Características:
- Almacenamiento: 25GB.
- Transferencia: 1TB.
- RAM: 1GB.
- OS: Arch/CentOS/Debian/Fedora/Gentoo/Ubuntu.

Cada usuario deberá anotarse, respondiendo en este post con su nick y un número del 00 al 99.

Tienen tiempo de anotarse hasta el día Viernes 20 de Febrero a las 20hs GMT-3. El número ganador será quien aparezca en la Quiniela Nacional Argentina (nocturna) ese mismo día.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Si hay empate (Si varios usuarios eligen el mismo número o están con la misma proximidad), el VPS se sorteará entre ellos al día siguiente.

Suerte para todos!

Participantes anotados:

DeBobiPro 77
Rr_bUg32 32
StOrMd[4]rk  68
Jimeno 37
Blackdrake 26
Gn0m3 36
KAPO 41
King of the Trojan  49
NyxKazuya 73
facufangio 15
Snifer 69
[Q]3rV[0] 83
arthusu 14
RisingMage 65
elrodrix 21
kity54 34
alexander1712 17
Blendd 26
ANTRAX 42
d1d4c 33
windux 60
Passmaker 17
gabrielcz6 55
DaRK UnLiMiTeD 20
dehombreadios 74

Muchas gracias por colaborar con Underc0de y  ayudar a que la comunidad siga creciendo!

En caso de que el ganador no reclame el premio en un periodo de 3 dias, el VPS se volvera a sortear.
Recuerda que sólo es válida una inscripción por persona.
#57
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
ok gracias entonces mas o menos seria como usar la ip publica de un pc infectado para poder usar la dns con esa ip publica verdad?

Exacto :D
#58
Un bouncer es un servidor intermedio, que actúa como proxy.

La conexión, en lugar de ser:
Servidor <=> PC infectada

Es:
Servidor <=> Bouncer <=> PC infectada.

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

No estoy mucho en el tema, así que no conozco alguno prefabricado. De última podes hacerlo vos mismo...
#59
Back-end / Re:[PHP] DH Labs 0.1
Enero 13, 2015, 11:42:57 AM
Interesante... Voy a mirarlo en estos días :D
#60
Dudas y pedidos generales / Re:Contraseña del Disco Duro.
Diciembre 26, 2014, 11:56:53 AM
Si no funciona, podrías llegar a desarmarla, poner el disco en otra pc, copiar todo (en el caso de que puedas leerlo), formatear, restaurar los datos, y listo :D