Archivo de la categoría: programming

Script para cambiar extensiones de muchos archivos

Escribiendo el post acerca del viaje a Redmond tuve que subir unas fotos, pero el explorador de imágenes de gnome no reconocia las imagenes porque su extensión estaba en mayúsculas, para solucionarlo basta una sola línea en la consola, la cual reemplazara todas las extansiones de todos los archivos de .JPG a .jpg

for file in *.JPG ; do mv $file `echo $file | sed ‘s/\(.*\.\)JPG/\1jpg/’` ; done

Luego @lhchavez me enseñó una solución aun más corta:

for file in *.JPG ; do mv $file ${file%.JPG}.jpg ; done

Y por si las dudas respalden sus archivos antes de ponerse a jugars con sus nombres.

 

Edit: Aclaración esto es para una terminal *nix (unix/linux)

Anuncios

Computer Programming Quotes

Una lista divertida que encontré llena de verdades:

“Premature optimization is the root of all evil in programming.“– C.A.R. Hoare

“Fools ignore complexity; pragmatists suffer it; experts avoid it; geniuses remove it.” — Alan Perlis

If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it.” — Richard Pattis

The more original a discovery, the more obvious it seems afterwards.” — Arthur Koestler

The string is a stark data structure and everywhere it is passed there is duplication. It is a perfect vehicle for hiding information.” — Alan J Perlis

C has all the expressive power of two dixie cups and a string.” — Jamie Zawinski

I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.” — Alan Kay

Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp. “– Philip Greenspun

Perl is like vise grips. You can do anything with it but it is the wrong tool for every job.” — Bruce Eckel

Beware of bugs in the above code; I have only proved it correct, not tried it.” — Donald Knuth

There are two major products that came out of Berkeley: LSD and BSD. We don’t believe this to be a coincidence.” — Jeremy S. Anderson

Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. “– Donald Knuth

You’re bound to be unhappy if you optimize everything.” — Donald Knuth

To iterate is human, to recurse divine.” — L. Peter Deutsch

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.” — Jamie Zawinski

It is practically impossible to teach good programming style to students that have had prior exposure to Basic; as potential programmers they are mentally mutilated beyond hope of regeneration.” — Edsger Dijkstra

The object-oriented model makes it easy to build up programs by accretion. What this often means, in practice, is that it provides a structured way to write spaghetti code.” — Paul Graham

There are only two things wrong with C++: The initial concept and the implementation.” — Bertrand Meyer

Whenever the C++ language designers had two competing ideas as to how they should solve some problem, they said, “OK, we’ll do them both”. So the language is too baroque for my taste.” — Donald Knuth

c++; /* this makes c bigger but returns the old value */ “– Unknown

Computer Science is no more about computers than astronomy is about telescopes.” — Edsger Dijkstra

Everyone needs computer programming. It will be the way we speak to the servants.” — John McCarthy

The question of whether Machines Can Think [we now know to be] about as relevant as the question of whether Submarines Can Swim. “– Edsger Dijkstra

The architecture of almost every computer today is designed to optimize the performance of Fortran programs and its operating-system-level sister, C.” — Richard Gabriel

You cannot teach beginners top-down programming, because they don’t know which end is up.” — C. A. R. Hoare

Simplicity and elegance are unpopular because they require hard work and discipline to achieve and education to be appreciated.” — Edsger Dijkstra

It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical? “– Alan Perlis

The last good thing written in C was Franz Schubert’s Symphony Number 9.” — Erwin Dieterich

You can have quality software, or you can have pointer arithmetic; but you cannot have both at the same time.” — Bertrand Meyer

The great thing about standards is there are so many to choose from. “– Andrew Tannenbaum

In C++, there are 50 ways to do anything, 49 of which are disastrously wrong.” — John Cowan

Many people tend to look at programming styles and languages like religions: if you belong to one, you cannot belong to others. But this analogy is another fallacy.” — Niklaus Wirth

This is sooooo cool! Everytime I use Modula-3, I wonder why the world is stuck on C/C++…” — Dave Hanson

Tomdo de: http://mbishop.esoteriq.org/quotes.html

La gran decepción

Hoy fue el concurso regional de programación ACM – ICPC, es decir donde se define quienes van a las word finals. Yo sabía que este año aun me faltaba bastante nivel como para llegar a las finales mundiales, sin embargo pensaba que podía hacer un buen papel, y ya que el año anterior quede dentro de los primeros diez junto con mi equipo, pues este año esperaba un resultado similar. El día empezó bien, me levanté a tiempo y llegue media hora antes para las fotos con los amigos, el caoach y eso. Por primera vez en 2 años de concursos este empezó a tiempo. Nada de tiempos muertos donde solo estas queriendo empezar. En un principio detectamos cuáles serían los problemas sencillos que resolveríamos primero. Eran 7 problemas en total, rápidamente logramos codificar y enviar dos a los jeuces, sin embargo uno decía tener un error, intentando corregirlo, otro compañero del ekipo logró enviar otro problema.. y ya teníamos 2 aceptados y 2 más que parecían fáciles, sin emabrgo despues de literalmetne horas de envios y Wrong Answers (en realidad Run time Errors), nos idmos cuenta que algo debía etsar mla ya que en el marcador se veía que la gente lo enviaba y a nadie se los habían aceptados, resulta que había un “problema con el jueceo”,  entonces iban a volver a evaluar todos esos que nos decían que estaban mal, pero solo lo hicieron de un problema, el otro se terminó el concurso y no lo rejuecearon. Y ahí empezó la gran decepción, como ya se había terminado el concurso, pues parecía que ya no había ganas de revisar los problemas que hubo, y mejor dejar los resultados como estaban, pero por si las dudas mejor nos decian hasta el jueves, al parecer no pueden hacer un pinche script que mezcle 5 tablas.. entonces mejor seguro hacerlo a mano… y todo esto nos lleva a un problema más profundo, de organización del evento. Otros detalles fueron que todos los problemas tenían uno u otro pequeño error que se tuvo que corregir sobre la marcha, malos inputs, outputs, redacción etc…  Entonces así cómo carajos puedes ganar un concurso  y medirte con los demás, ya que estos errores pues hacen que tratres de corregirlos y no poner atención a otros problemas.. cuando un buen jueceo equilibra bien el campo de juego..  Otro problema fueron los problemas.. 4 fáciles 1 medio y 2 difíciles… para un regional eso apesta!!!  4 fáciles?? de los cuales 2 mal evaluados!! se supone que es un concurso para aplicar algoritmos… la velocidad es importante pero para mi que fue más un concurso de mecanografía… el warmup que hicimos días antes estuvo más retador. Y para los que no esten familiarizados con los concursos es como cuando estudias un chingo para un examen (en este caso casi un año entero), para que al final te pregunten tu nombre y unas sumas.. entonces el que termina primero saca mejor calificación….. Esto está mal además por lo ya mencionado, por que quien hace los problemas no se preocupa por que las cosas salgan bien y de manera adecuada y lo pero es que una vez terminado el concurso ya no hay nada que peudas hacer, ni siquiera con kien quejarte, y eso me recuerda a que por gente asi no se pueden tener cosas bonitas en el país, y que con gente así no será fácil lograrlo en un futuro immediato.

Al final lo más importante fue lo que dijo el coach, no importa lo que pasó en el concurso, pqero todo lo que practicamos y hemos aprendido es lo que cuenta, así que ya para que más corajes, con eso no resolveré nada y mejor me concentrare en las cosas que si puedo hacer.

How to Shoot Yourself In the Foot Using Any Programming Language

The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you’re currently using. This guide is offered as a public service to help programmers who find themselves in such dilemmas.

370 JCL
You send your foot down to MIS with a 4000-page document explaining how you want it to be shot. Three years later, your foot comes back deep-fried.

Ada
After correctly packaging your foot, you attempt to concurrently load the gun, pull the trigger, scream, and shoot yourself in the foot. When you try, however, you discover that your foot is of the wrong type.

APL
You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.

ASP.NET
Find a gun, it falls apart. Put it back together, it falls apart again. You try using the .GUN Framework, it falls apart. You stab yourself in the foot instead.

Assembly
You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot. After that’s done, you pull the trigger, the gun beeps several times, then crashes.

brainfuck
Just looking at the gun gives you a migrane, so forget about actually shooting it.

BASIC
Shoot yourself in the foot with a water pistol. On big systems, continue until entire lower body is waterlogged.

C
You try to shoot yourself in the foot, but find out the the gun is actually a howitzer cannon.

C++
You accidentally create a dozen clones of yourself and shoot them all in the foot. Emergency medical assistance is impossible since you can’t tell which are bitwise copies and which are just pointing at others and saying, “That’s me, over there.”

COBOL
Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER. on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be retied.

Concurrent Euclid
You shoot yourself in somebody else’s foot.

CSS
You shoot your right foot with one hand, then switch hands to shoot your left foot but you realize that the gun has turned into a banana.

DOS Batch
You aim the gun at your foot and pull the trigger, but only a weak gust of warm air hits your foot.

Forth
Foot in yourself shoot.

FORTRAN
You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue anyway because you have no exception-handling ability.

HyperTalk
Put the first bullet of the gun into the foot of the left leg of you.
Answer the result.

Java
After importing java.awt.right.foot.* and java.awt.gun.right.hand.*, and writing the classes and methods of those classes needed, you’ve forgotten what the hell you’re doing.

JavaScript
You’ve perfected a robust, rich user experience for shooting yourself in the foot. You then find that bullets are disabled on your gun.

LISP
You shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds…

Machine Language
Before you can shoot yourself in the foot you must disassemble the gun at the atomic level and then reassemble it. After you do this, you find that the bullets require a special operator so the gun doesn’t work.

Modula-2
After realizing that you can’t actually accomplish anything in this language, you shoot yourself in the head.

Motif
You spend days writing a UIL description of your foot, the trajectory, the bullet, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.

Paradox
Not only can you shoot yourself in the foot, your users can too.

Pascal
The compiler won’t let you shoot yourself in the foot.

Perl
You shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you.

PHP
You shoot yourself in the foot with a gun made with pieces from 300 other guns.

PL/I
You discover 6,752 different guns for shooting yourself in the foot. Before you can decide which one to use, you starve to death.

Prolog
You tell your program you want to be shot in the foot. The program figures out how to do it, but the syntax doesn’t allow it to explain.

Python
You try to shoot yourself in the foot but you just keep hitting the whitespace between your toes.

Revelation
You’ll be able to shoot yourself in the foot just as soon as you figure out what all these bullets are for.

RPG
First you define your gun, bullet, and firing pin. Then, you define your foot, toes, and toenails. Then, you open chamber and load the gun. Then, you cock it. Now you’re finally ready to shoot yourself in the foot.

Ruby
Your foot is ready to be shot in roughly five minutes, but you just can’t find anywhere to shoot it.

SNOBOL
If you succeed, shoot yourself in the left foot.
If you fail, shoot yourself in the right foot.

SQL
SELECT @ammo:=bullet FROM gun WHERE trigger = ‘PULLED’;
INSERT INTO leg (foot) VALUES (@ammo);

UNIX
% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls
%

Visual BASIC
You’ll shoot yourself in the foot, but you’ll have so much fun doing it that you won’t care.

Visual BASIC.NET
You spend a fortune on a high-powered, self-cleaning, self-aiming, automatic handgun with unlimited ammo, only to realize it takes a year to pull the trigger.

Visual FoxPro
You mock other sharpshooters for not being able to shoot both feet at once, but when you try to do it yourself you realize that you can’t properly handle the Microsoft.gun ActiveX.

Tomado de: http://www.thealmightyguru.com/Humor/Docs/ShootYourselfInTheFoot.html

El concurso regional ICPC 2007

Hace casi un mes que no escribo en mi blog.. y no es tanto a comparación de como lo tenía antes.. pero ya ahsta a mi me aburrió ver lo mismo.

Ahora les cuento del concurso regional de programación, donde regional quiere decir México y Centroamérica y es básicamente las eliminatorias para la final mundial..

El año pasado entré junto con Magus y Philippe y no nos fue tan mla ya qu quedamos en 38 lugar de unos 100 equipos participantes. Este año fue diferente, empezando por el equipo que ahora es Magus, ZDO y yo. Desde entonces nos propusimos a mejorar y algun día poder irnos a la final, pero sabemos que esto es a larga plazo por ahora nuestro objetivo era lograr un mejor lugar dentro del regional. Cierto es que entrenamos bastante con Peter el semestre pasado, luego más con Paco (Akercito) en verano y luego este semestre junto con el amigo lhchavez y en la clase de Retos de Programación. Mejoramos bastante pero también teníamos que cuidar la escuela y otras cosas entonces no entrenamos taanto, pero definitivamente subimos nuestro nivel.

El concurso fue el domingo pasado y nos fue bastante bien ya que terminamos dentro del Top 10, más específicamente en 8vo lugar de unos 160 equipos!! =D Aunque después de un año me doy cuenta que es elugar no quiere decir que estemos cerca del mundial ya que el nivel que necesitamos es muuuuuuuuuuuy alto y aun tenemos mucho que trabajar.

Algo no tan chido es que este año premiaron por sede.. en México hay 5 sedes y la nuestra fue la central, el año pasado premiaron a los 3 primeros lugares de cada sede, y como este año nosotros quedamos en 3ero de la sede.. pero ni las gracias nos dieron.. y no es queja pero es como mala suerte del ekipo porke ya nos han pasado cosas parecidas.. en fin ese tampoco era el objetivo del concurso (pero pudo ser una feliz consecuencia) 😛

Y bueno después de la putiza que he tenido ests días pr examen de Mate III, el regional, trabajo de ética y Fisica III al fin tengo tiempo.

Aqui les dejo el comment de magus sobre el concurso y el link a las FOTOS.