Ir al contenido principal

Entradas

Inicializar un std::vector en C++

Lo primero que tenemos que hacer es crear la plantilla que se va a utilizar para inicializar los vectores: template < typename T > class init_vector { public : init_vector < T >& operator<< ( const T & value ) {     internal_vector.push_back( value );     return * this ; } operator std:: vector < T >() const {     return internal_vector; } private : std:: vector < T > internal_vector; }; A la hora de inicializar un vector podemos utilizar esta plantilla de manera muy sencilla y elegante: std:: vector < int > v = init_vector < int >() << 0 << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9; std:: vector < string > empresas = init_vector < string >() << "Google" << "Microsoft" << "Apple" << "Nokia" ;

Bucles for basados en rango, Inferencia de tipo y Referencia

#include <vector> int main() {     std::vector < string > meses;     meses.push_back( "Enero" );     meses.push_back( "Febrero" );     meses.push_back( "Marzo" );     meses.push_back( "Abril" );     meses.push_back( "Mayo" );     meses.push_back( "Junio" );     meses.push_back( "Julio" );     meses.push_back( "Agosto" );     meses.push_back( "Septiembre" );     meses.push_back( "Octubre" );     meses.push_back( "Noviembre" );     meses.push_back( "Diciembre" );     // Mostrar en consola los meses utilizando un bucle for basado en rango.         for ( string m: meses) {        cout << m << endl;         //m = "cadena_no...

Arquitectura de aplicaciones en Capas y/o Niveles

Existen diversos estilos de arquitectura de software, tantos como personas dedicadas a imaginar nuevas formas de mejorar la creación de soluciones informáticas. Esto es bueno y es malo, pero bueno, eso es otro tema. Lo que quiero plasmar aquí es la diferencia principal entre la arquitectura por capas (N-Layer) y la arquitectura por niveles (N-Tier). Ambas comparten su principal característica que es la separación de la funcionalidad del sistema en segmentos, componentes o módulos (llámalo como quieras), encontrándonos así con capas o niveles de: Presentación, Datos, Lógica empresarial Servicios etc La principal diferencia es que el estilo de arquitectura por niveles (N-Tier), ha sido diseñado para separar físicamente dichos niveles o segmentos. De manera que podemos tener el componente de la lógica en un servidor, el componente de datos en otro servidor, el componente de presentación en otro y el componente de servicios en otro servidor que podría ser público. La ma...

Conectar LCD 16x2 a un Microcontrolador utilizando 3 pines

Supongo que los que llegáis a este post estaréis buscando la manera de conectarle a un PIC (u otro microcontrolador) una pantalla LCD (Liquid Crystal Display) de 16 caracteres por 2 líneas. Habéis llegado al lugar correcto, ahora bien, en este post voy a tratar la conexión en serie utilizando tan solo 3 pines del PIC, lo que nos permite mantener disponibles el resto de puertos de E/S del micro-controlador para otras funciones. La otra opción es conectarlo de forma paralela pero ésta consume muchos pines (aunque tiene sus ventajas también, ej. mayor velocidad). Para un proyecto en el que he estado trabajando, era necesario utilizar un PIC "básico", pero al mismo tiempo poder contar con el mayor número posible de puertos de E/S libres. No obstante, se puede utilizar cualquier micro-controlador que tenga al menos 3 pines disponibles, aunque no sean los PIC de Microchip, el esquema será prácticamente el mismo.   En este caso el PIC utilizado tenía que ser el famoso PIC...

Driver L293D de Texas Instruments

El L293D de Texas Instruments es sin lugar a dudas un circuito integrado de un gran valor cuando necesitamos controlar motores de corriente continua o bipolares de pasos (Bipolar stepping motors) Es cierto que se trata de un puente en H (o medios puentes), en este caso cuádruple, que sin bien podríamos crearlo con transistores, el echo de que se encuentre integrado en un único chip es de agradecer. Capáz de conducir corrientes bidireccionales de hasta 1 amperio en el modelo L293 y hasta 600 mA en el modelo L293D y con tensiones que van desde los 4.5V hasta los 36V en ambos modelos. Por supuesto podemos utilizarlo en otras aplicaciones o para controlar otros componentes: motores de corriente continua, relés, motores de paso bipolares, solenoides en general y cualquier carga que requiera una alta corriente y tensión. Las entradas son de tipo TTL y se activan por parejas, es decir, desde la pata Enable 1,2EN, activamoslas entradas 1 y 2 y desde la pata Enable 3,4EN activamos la 3...

CiberGuerra, CiberEspionaje, CiberTerrorismo, CiberArmas, ...

La gente que está metida en temas de Seguridad Informática, ya sabe -sobradamente- de que va esto. No obstante, considero que es importante que el resto de usuarios y no usuarios de internet también tengan alguna noción al respecto. Por esta razón quiero compartir con vosotros este reportaje emitido por RTVE, que sin duda es muy interesante: En portada - Amenaza Cyber Ver vídeo En portada - Amenaza Cyber

El Rastro Digital (emitido por Informe Semanal)

En esta ocasión tan solo quiero compartir un pequeño documental emitido en Informe Semanal. Como siempre digo ¡CUIDADO CON INTERNET!. Probablemente, cuando el usuario 'básico' de las tecnologías sea consciente de sus peligros y posibles consecuencias, será demasiado tarde. Informe Semanal - El rastro digital Ver vídeo Informe Semanal - El rastro digital