|
|
| VHS hablando con Spectrum | 19 de Junio del 2008 Bueno, los que siguieran mi antiguo blog sabrán que nunca he sido de colocar videos en el blog, pero es que este lo acabo de ver y realmente vale la pena, es muy bueno trata de un spectrum hablando con un VHS sobre el DVD, es para partirse.
Visto en http://www.enelmostrador.es/Categorias:
Humor
Ver comentarios.
|
| Web On | 12 de Junio del 2008 Bueno, después de un mes y pico con la Web abajo por fin hoy está disponible, y no, no era culpa del proveedor de hosting, ni un ataque ni nada por el estilo, era que hay crisis y no había pagado la renovación del dominio jajaja, además lo he dejado con mi pareja y no tenía muchos ánimos para hacer nada, pero bueno ya está todo mas o menos calmado y aunque ahora no puedo enrollarme mucho mas a ver si ahora tengo tiempo para escribir de una forma mas continuada estos días.
Por cierto un 10 para el proveedor de hosting por su velocidad en volver a poner el dominio en marcha (apenas 10 minutos desde que informé del pago).
Muchos saludos
Categorias:
El blog
Ver comentarios.
|
| Malditos Spammers. Comentarios cerrados. | 1 de Abril del 2008 Brutal el ataque de SPAM que recibí esta noche, realmente brutal. Ayer por la noche tenia un mensaje de spam en cada uno de mis post, como fue algo puntual simplemente los borré y listo, esta mañana esto estaba plagado de publicidad por lo que me he visto obligado a cerrar los comentarios de una forma temporal. A lo largo de esta semana los abriré y colocaré un captcha o algo para evitar toda esta basura, disculpen las molestias.
Categorias:
El blog
Ver comentarios.
|
| Revisiones del sistema del blog | 29 de Febrero del 2008 Hola a todos... primero de todo no me hechéis la bronca por no haber publicado la tercera entrega del curso de C/C++... a ver si este finde o como mucho la semana próxima puedo hacerlo y publicarlo.
Este mensaje es solo para comentaros que he hecho algunas mejoras en el sistema del blog, ahora por fin se puede navegar en la lista de post (los clasicos enlaces de anterior y siguiente) para ver los posts desde la lista, además he optimizado la generación del RSS y he solucionado algunos problemas que provocaba en algunos navegadores, por último he mejorado la seguridad contra posibles ataques XSS en los comentarios.
Además de todo esto quería comentaros que la primera versión pública para su descarga y utilización será a mediados de agosto de este mismo año pese a que queda mucho por hacer y demasiado poco tiempo que dedicar.
Nada mas. Un abrazo.
Categorias:
El blog
Programación
Ver comentarios.
|
| Curso de C/C++: 002 Función printf y uso de las secuencias de escape | 23 de Febrero del 2008 ¡Por fin! Por fin está aquí la segunda entrega del curso de c/c++, muchas gracias por la espera y a todos los que han comentado algo sobre la primera entrega.
Bueno, realmente no es una segunda entrega, si no más bien una ampliación de la primera ya que únicamente se encargará en ampliar algo mas los conocimientos sobre la función printf que explicamos en la primera entrega. Entre el dómingo y el mártes que viene publicaré la segunda entrega que tratará con una pequeña introducción sobre variables (qué son, para que valen y cómo utilizarlas) y a realizar operaciones matemáticas con ellas. También haremos nuestro primer programa capaz de interactuar con el usuario.
Esta entrega aunque parezca que se centra en la función printf no lo hace realmente, si no que pretende que además de esa función se comprenda que son y cómo utilizar las secuencias de escape.
Todo será muy básico pero creo que es la mejor forma para introducirse en este mundo.
¡Allá vamos!
Conociendo mas afondo la función printf()
Cómo ya dijimos en la entrega anterior printf() ordena a la computadora que ejecute una acción, esta acción es concretamente imprimir algo en la pantalla, ya sea un carácter, una cadena de caracteres, un número, etc.
La función printf() puede imprimir la misma cosa de varias formas diferentes, es decir… el ejemplo que pusimos en la entrega anterior:
#include
main(){
printf("Hola mundo");
}
Imprimiría en la pantalla exactamente lo mismo que si hiciéramos lo siguiente:
#include
main(){
printf("Hola ");
printf("mundo");
}
Esto se debe a que printf continúa imprimiendo justo después de dónde se quedo el anterior printf. Por tanto en este caso el primer printf imprime la palabra Hola seguida de un espacio y el segundo imprime justo después la palabra mundo, dando como resultado lo mismo que el primer ejemplo. Por tanto si lo que queremos es imprimir en una nueva línea debemos indicárselo a printf utilizando un carácter de nueva línea \n de esta forma para que como resultado nos imprima en una línea la palabra Hola y en otra línea la palabra mundo deberemos colocar el carácter nueva línea entre ambas.
Ejemplo:
#include
main(){
printf("Hola\nmundo");
}
Cómo se puede ver en este ejemplo hemos sustituido el espacio que había anteriormente entre las palabras Hola y mundo por un carácter de nueva línea, de esta forma conseguiremos imprimir lo siguiente
Hola
Mundo
Además del carácter especial (desde ahora llamado secuencia de escape) de salto de línea existen algunos otros cómo el del tabulador \t o el de retorno carro \r que coloca el cursor al principio de la línea. Todos ellos tienen la particularidad de que empiezan con una barra invertida, esto indica que lo que le sigue será una secuencia de escape en lugar de un carácter para su impresión. Por tanto si queremos que se imprima una barra invertida deberemos colocar \\ en lugar de una simple barra por que si no el compilador pensará que lo que queremos imprimir es una secuencia de escape en lugar del carácter “\”. A continuación pongo las diferentes secuencias de escape al lado de su significado.
\n Imprime un salto de línea.
\r Retorno de carro: Coloca el cursor al principio de la línea actual.
\t Inserta un tabulador.
\a Hace sonar la campana del sistema (el speaker del equipo).
\\ Imprime una barra horizontal.
\” Imprime una doble comilla.
Quizás parezca algo extraña la última sentencia de escape pero tiene su sentido.
Si yo escribo:
printf("Hola mundo");
indico que printf() debe imprimir lo que está colocado entre las comillas, en caso de que yo quisiera imprimir Hola “ mundo, no podría colocar
printf("Hola " mundo");
ya que el compilador, al encontrar la segunda comilla pensaría que has cerrado las primeras comillas y que ya no quieres imprimir mas, por ello deberemos escribir
printf("Hola \" mundo");
y de esta forma el compilador interpretará correctamente lo que queremos que imprima.
La tercera entrega la tendréis entre el mañana y el martes seguramente. Los temas tratados serán:
Variables: Qué son, tipos, para que sirven y cómo utilizarlas
Operaciones matemáticas: Suma, resta, multiplicación y división y aplicación el las variables.
Ínteractuación con el usuario.
Categorias:
Programación
Ver comentarios.
|
| Agradecido | 18 de Febrero del 2008 Hola a todos, ¿qué tal? Espero que bien, yo estoy realmente emocionado.
Emocionado ¿por qué? Por que esta mañana antes de partir hacia el trabajo vi que dos personas mas me comentaron en uno de los post, únicamente para darme las gracias por su contenido, únicamente para agradecérmelo y eso... eso realmente me hace sentirme contento y orgulloso por todo esto, realmente os agradezco a todas las personas que comentáis en el blog, es algo que me hace sentirme feliz y olvidar aunque sea por un momento la mayoría de cosas que van mal en este mundo y en mi vida.
Gracias por ser así, gracias por esos gestos positivos, esos abrazos virtuales y esas ganas de continuar adelante con este proyecto, de todo corazón... muchas gracias.
No se si es por la época por la que estoy pasando ahora mismo, por estas circunstancias que se están dando pero estoy realmente emocionado y agradecido por todo esto, muchas gracias y de nuevo muchas gracias.
Ya que abro este post, me encantaría deciros que esta semana publicare la segunda parte del curso de programación, espero que os guste.
Hablando de publicar... algunos de vosotros sabréis que el sistema que usa este blog no es ni Wordpress, ni Drupal, ni nada por el estilo, está codeado desde 0 por mi y tengo la esperanza de poder publicar la primera versión para este verano, aún queda mucho por escribir y retocar, pero poco a poco se hace el camino.
Un enorme abrazo.
Miguel Díaz. Categorias:
El blog
Pensamientos
Ver comentarios.
|
| Terminal Server e Impresoras HP | 6 de Febrero del 2008 Llevo algunos días configurando unos servidores con Terminal Server en el trabajo y tuve un problemilla ya que algunas impresoras no se mapeaban correctamente en el servidor aunque este tenia los controladores perfectamente instalados, tras darle vueltas a este asunto nos dimos cuenta de que esto se debía a que el nombre del puerto que crea los controladores de HP tiene un nombre extraño y no comienza ni por USB, ni LPT ni COM. Esta simple tontería hace que los clientes no mapeen estas impresoras hacia el servidor y tiene un fácil solución.
Simplemente abrimos el regedit en las máquinas que tengan las impresoras instaladas, y vamos a:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\AddIns\RDPDR
después hacemos Edición>Nuevo>Valor DWORD
Le ponemos de nombre FilterQueueType y presionamos intro.
Ahora le hacemos doble clic para cambiarle la información del valor y escribimos FFFFFFFF
Es un poco engorroso hacer esto en todos los equipos pero es la única solución que encontré.
Aclaro que aunque en el titulo diga Impresoras HP existen otras marcas que también hacen esto pero el problema lo he tenido casi siempre con impresoras HP.
Enlace relacionado: http://support.microsoft.com/kb/30...
Categorias:
Windows
Servidores
Ver comentarios.
|
| Comentarios activos | 26 de Enero del 2008 Hola a todos!!! Esta tarde he sacado un hueco para toquitear un poquito mas del código de la Web y ya están los comentarios activos. Tengo que mirar como va el tema del spam, si llega mucho o no para generar un sistema antibots que funcione por captcha o algo similar, ya veré que tal.
La razón por la que dejé este apartado un poco mas de lado fué simple.. puesto que es el visitante quien puede introducir el código en la Web hay que tener especial precaución a temas de seguridad (prevenir XSS, etc). Creo que ya es suficiente con lo que he hecho pero no obstante seguro que existen multitud de fallos. Ruego que si alguien encuentra un bug me lo informe y trataré de corregirlo cuanto antes.
Gracias a todos y a comentar ;-)
Categorias:
El blog
Ver comentarios.
|
| Completo curso de programacion GTK en C | 25 de Enero del 2008 Hola a todos, reciente me estoy iniciando con la programación gráfica en sistemas *Nix y para ello estoy usando GTK ya que me parece un sistema muy generalizado, estable, completo e intuitivo a la hora de programar sobre el y el resto de alternativas (como Qt) no me han convencido nunca.
La cuestión es que aunque hay mucha documentación al respecto no toda está en castellano y es un engorro tirar de mano del diccionario cada dos por tres y mas cuando se hablan con tecnicismos. Ayer encontré un buen manual para programar en C usando las api's de GTK y la verdad es que me está viniendo de lujo por eso me gustaría compartirlo con vosotros.
La documentación podéis encontrarla en http://wiki.gnome.cl/ProgramacionGTKenC.
Sin mas que añadir... hasta la próxima ;-)
Categorias:
Programación
Linux
Ver comentarios.
|
| Curso de C/C++: 001 La Estructura Básica de un programa. | 20 de Enero del 2008 Hola, aunque bastante retrasado sigo con el curso de C++, esta vez me he retrasado por que no tengo mucho ánimo de seguir el proyecto ya que apenas nadie comenta, pero debido a que recientemente alguién puso un comentario me volví a animar, hoy nos adentraremos en cual es la estructura qué sigue un programa, sin meternos demasiado o nada en aspectos técnicos como funciones específicas, etc.
Cuando me refiero a la estructura básica de un programa en C/C++ me refiero a la forma en la que está organizado su código fuente, es decir el orden básico que debe seguir cualquier programa para que una vez escrito el programa este sea interpretado correctamente por el compilador para convertirlo al lenguaje máquina.
En cualquier programa podremos encontrar unas características comunes, entre las cuales cabe destacar:
Las lineas de precompilado (introducción de librerias)
La funcion main (función principal).
El cuerpo de sentencias.
Los comentarios.
Ahora pongamos un ejemplo práctico y pasemos a describir linea a linea que es y a que parte corresponde.
#include <stdio.h>
/* este programa muestra en la pantalla el texto "Hola mundo" */
main(){
printf("Hola mundo");
}
Veamos, la linea donde dice “#include ” no nos debe preocupar por ahora ya que la explicaremos mas adelante.
La linea “/*Este programa muestra en la pantalla el texto “Hola mundo” */” es un comentario. Los comentarios sirven para indicar al programador que hace ciertas partes del código, su uso es muy frecuente y muy recomendado sobretodo cuando se realiza un programa con muchas lineas de código para poder encontrar rápidamente partes del código sin necesidad de leerlo todo de arriba a bajo. Un comentario debe comenzarse escribiendo “/*” posteriormente el texto del comentario en una o varias lineas y terminar escribiendo “*/” esto se hace así para que el compilador pueda diferenciarlos del resto del código además de que así se consigue el el programador pueda visualmente verlos mucho antes que de cualquier otra forma.
La linea “main(){” indica cual será el comienzo de la función main. La función main es la función principal de un programa. En ella se encontrará todas las ordenes que debemos darle al código fuente para que el programa funcione. Al arrancar cualquier programa en su versión binaria el sistema buscará automáticamente esta función y empezará a ejecutar las acciones en ella contenidas.
La linea “printf(”Hola mundo”);” es una orden que hemos incluido en la función printf la cual se encargará de mostrar en la pantalla el texto “Hola mundo”. No te preocupes si no lo entiendes, ya nos meteremos mas a fondo y explicaremos con detenimiento estas funciones poco a poco mas adelante.
La linea “}” indica el fin del lugar donde pondremos las “ordenes” de la función main, su comienzo ya lo hemos indicado en la linea “main(){” con el simbolo “{”.
Ahora vamos a la linea “#include ”, imaginemos que el compilador es un absoluto ignorante, que es casi por completo un analfabeto de manera que apenas sepa cosas muy básicas, en este caso lo mas probable es que no sepa que quiere decir (al igual que tu hasta hoy) que quiere decir “printf(”Hola mundo”);” ya que aún nadie se lo a explicado. Ok, pues la linea “#include ” podríamos decir que vale para insertarle un diccionario llamado “stdio.h” dónde entre otras cosas se indica para que vale la orden “printf”, como debe ser utilizada y como debe hacer para trasformarla a binario. A parte de este “diccionario” (a partir de ahora llamado librería) existen muchas otras librerías que puedes utilizar, es mas incluso tu mismo puedes hacerlas, pero todo esto lo veremos mas adelante. Por ahora solo decirte que existen ciertas librerías que son estándar y que por tanto se incluyen en la mayoría de compiladores para que tu puedas introducirlas en tus programas sin necesidad de descargarlas.
Como veis ha sido un capitulo corto, pero hemos aprendido por fin las partes básicas y que tienen en común todos o la mayoría de los programas.
Si te queda cualquier duda, no entiendes algo por favor escribe un comentario y trataré de ayudarlo o de dejarlo mas claro actualizando el post.
En la próxima entrega crearemos un programa básico, explicaré varias “ordenes” (a partir de ahora llamadas funciones) así como el uso de variables y alguna cosilla mas.
Categorias:
Programación
Ver comentarios.
|
|
| |
|
|
|