Entradas

Mostrando entradas de abril, 2010

Copiar un archivo: C++

Acabo de terminar un programa de ejemplo en c++ que copia dos archivos, espero que te sea de utilidad. #include <iostream> #include <fstream> using namespace std; int main (int argn, char * argv[]) { if(argn < 3) return 1; ifstream in(argv[1], ios::binary); if(!in.is_open()) return 2; ofstream out(argv[2], ios::binary); if(!out.is_open()) return 3; in.seekg(0,ios::end); long size = in.tellg(); in.seekg(0,ios::beg); size -= long(in.tellg()); cout << "FileSize: " << size << "bytes" << endl; char * buffer; long buffsize = size; do buffer = new char [buffsize]; while (!buffer && bool(buffsize/=2)); cout << "BuffSize: " << buffsize << "bytes" << endl; while(size > buffsize) { in.read(buffer,buffsize); out.write(buffer,buffsize); //if(!out.good()) return

Saber si un año es bisiesto

Si alguna vez, haciendo un programa, as trabajado con fechas seguramente te hallas encontrado con el problema de que el mes de febrero no siempre tiene 28 días. Los años que en vez de tener 365 días tienen 366 (febrero tiene un día mas, 29) se les llama años bisiestos. Un año es bisiesto si es divisible por 4, excluyendo los que sean divisibles por 100, pero no los que lo sean por 400. bool is_leap_year(int year) { if(year % 400 == 0) return true; else if(year % 100 == 0) return false; else if(year % 4 == 0) return true; else return false; } De otra manera: bool es_bisiesto(int year) { return (year%4==0 && (year%100!=0 || year%400==0)); }

Menú con efecto blur solo con css

Imagen
Os presento un menú fácil de hacer, que tiene un efecto bonito y que podéis usar en vuestras paginas web, lo único que tienes que tener en cuenta es que no le di soporte para Internet Explorer (quizás en un futuro lo haga para que no lo tengáis que hacer vosotros), pero si lo necesitas, en el post anterior dice lo necesario para que se vea bien en IE. Demo / Descargar Source Code Se trata de un menú cuyos elementos se encuentran borrosos, y al poner el ratón encima se quita el efecto blur viéndose el texto mas claro. Para los navegadores mas modernos le puse una animación para que al poner o quitar el ratón de encima valla gradualmente poniéndose o quitándose el blur, para firefox 3.6 e inferiores e IE, hay que usar algún javascript para darle ese toque de animación.

Cross-Browser blurred text

Imagen
Bueno, no se si "Texto borroso" se escribe "blurred text", pero lo importante ahora no es el título, sino la posibilidad de crear el efecto blur solo con css. Demo / Descargar Source code Con el siguiente código css podrás hacer que cualquier texto se vea borroso como en la imagen de arriba y funcionando en la mayoría de los navegadores. .blur { text-shadow: #F00 0 0 4px; color: rgba(0, 0, 0, 0); color: #F00\9; /* Color for IE */ width: 100%; /* IE 5.5, 6, 7 Fix */ filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='2.5'); -ms-filter: "progid:DXImageTransform.Microsoft.Blur(PixelRadius='2.5')"; } El color del texto se cambia en la propiedad text-shadow y en la tercera linea, que he necesitado usar este css hack para IE. El tamaño o nivel de desenfoque también se cambia en la propiedad text-shadow , concretamente el ultimo valor y para Internet Explorer, para que quede lo mas parecido al resto de navegadores

Calculando números primos (C++)

Este programa calcula todos los números primos hasta el 4294967295, o 2 32 , que es el numero de 32 bits mas grande. También mide el tiempo que tarda en calcularlos, que suelen ser unas cuantas horas, aunque depende de tu computadora. Los tiempos en un ordenador a 3.4 GHz serán mas o menos: Numeros total hh:mm:ss Numeros primos 100000 00:00:00 9593 1000000 00:00:00,3 78499 10000000 00:00:03,7 664580 100000000 0:01:20 5761456 1000000000 0:32:18 50847535 4294967295 sobre 5 horas? Todavia no lo calculé #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> #define MAX_INT 4294967295 int main() { unsigned int *primos = new int [220000000]; primos[0] = 2; primos[1] = 3; unsigned int n = 2; // Nºde primos guardados en la matriz unsigned int i = 3; // Para recorrer desde 3 a MAX_INT

Evitar inyección SQL en consultas MySQL con php

Con la inyección SQL es fácil que puedan acceder a muchos datos de tu base de datos e incluso modificarlos, por lo que es muy importante evitar esta vulnerabilidad. Viene muy bien explicado en la Wikipedia que es y en que consiste. Para evitar la inyección SQL tan solo tendremos que modificar un poco el código php, donde antes teniamos: $query = 'SELECT * FROM users WHERE name = "' . $username. '"'; cambiamos $username por mysql_real_escape_string($username) : SELECT * FROM users WHERE name = "'.mysql_real_escape_string($username).'" quedando nuestra base de datos protegida de la mayoría de los ataques. También he visto por ahí que si nuestra consulta trabaja con instrucciones como LIKE , GRANT ó REVOKE es mas seguro: addcslashes(mysql_real_escape_string($username),'%_') 23/04/20010: Otra manera, no se si es mejor que la anterior, pero parece protegernos de lo básico. También sirve para prevenir que se pongan scripts, m

Login simple con php

Imagen
El titulo lo dice todo, iniciar sesión con php. Con el header WWW-Authenticate , que hará que salga una ventanita en nuestro navegador pidiendo un usuario y contraseña. Muy útil para proyectos web que necesiten de un sistema básico de autentificación para acceder a áreas privadas, como un panel de control, etc ... El ejemplo muestra como se hace para autentificar un único usuario, pero podría hacerse para todos los que se quiera, eso si, yo usaría una base de datos para almacenar los nombres de usuario y contraseñas. <?php function showLogin() { header('WWW-Authenticate: Basic realm="Company name"'); header('HTTP/1.0 401 Unauthorized'); echo('Lá página está protegida, usted necesita permisos.<br />'); echo('Este texto se muestra si el usuario pulsa el boton "cancelar".'); exit; } $user = (isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:""); $pass = (isset($_SERVER['PHP_AUT

Conjunto de instrucciones x86

Imagen
Navegando por la web me encontré esta pagina web puede ser muy interesante para aquellas personas interesadas en ASM o ensamblador , se trata de una lista con todas, o muchas de las instrucciones x86 de intel, con la definicion o descripcion, latencia, pseudocodigo similar al c con la operacion o lo que hace cada instrucción, y muchas cosas mas. <a href="http://siyobik.info/main/reference>http://siyobik.info/</a> <br /> <br /> Ya sabes, si estas aprendiendo ensamblador como yo, seguramente te sera de gran ayuda.

Letra Capital con CSS

Imagen
Si quieres hacer que un texto de tu blog o pagina web comience con una letra capital , que por si no lo sabes, es una letra al inicio de un texto o párrafo que es más grande que el resto, quedando asi: DEMO! ¿Como puedo hacer esto?, pues muy fácil, tan solo añadiendo unas lineas de código css y en el documento html "mete" dentro de un span la primera letra del texto al que le queremos dar estilo. CSS: .dropcap { float: left; padding-right: 5px; display: block; font-size: 70px; line-height: 60px; } HTML: <span class="dropcap">P</span>