domingo, 28 de abril de 2013

Las leyes (no escritas) de la programación


  • No importa que pienses que tu código esta bien hecho, siempre va ocurrir algún error.
  • La documentación siempre es importante, siempre y cuando no te toque leerla, es siempre mejor tener tu propio gurú que te ayude y resuelva tus dudas (jeje).
  • El usuario no siempre tiene la culpa, depende del punto de vista.
  • El trabajo es divertido, programar es divertido.
"Si no te apasiona lo que haces es mejor buscar otras opciones"

A veces es bueno probar cosas nuevas, podemos cambiar de parecer. Seguir con el mismo lenguaje de programación sin darnos la oportunidad de elegir otra opción

Algunos lenguajes pueden parecernos aburridos, tan solo ver unas cuantas líneas de código nos provoca un desagrado. Sin embargo, muchas veces nos guste o no debemos actualizarnos y aprender cosas nuevas.

No todo es Java
Existen muchos lenguajes de programación que facilitan nuestras tareas.  Un ejemplo puede ser cuando tenemos la necesidad de ejecutar algún proceso/programa externo.

En Ruby:
ejecutaScript.rb
puts "Ejecutando proceso..."
system("sh procesoShell")

En Perl:
ejecutaScript.pl
print "Ejecutando proceso...";
system("sh procesoShell");

En Python:
ejecutaProceso.py
import os
print "Ejecutando proceso..."
os.system("sh procesoShell")

En Groovy:
ejecutaProceso.groovy
println "Ejecutando proceso..." 
println "sh procesoShell".execute().text

En Scala:
ejecutaProceso.scala
import scala.sys.process._
object Scalar extends App{
 println("Ejecutando proceso...")
  "sh procesoShell"!
}
Evidentemente escribimos menos código que en un programa en Java.

Pruebas y más pruebas
No basta hacer unas cuantas pruebas, también es importante hacer anotaciones, documentar todo lo que se pueda. Algún día alguien nos lo agradecerá.

=COMMENT
  "Aguas con esta parte, puede provocar dolores de cabeza o hasta divorcios"
=CUT 

Comunicación
La parte más importante. No basta tener el email o teléfono de tus compañeros o de tus jefes, lo importante es hablar directamente con ellos.

Serviría de mucho tener una bitácora de lo que se debe o NO debe hacerse. Cuando alguien nuevo se integra a tu equipo de trabajo es importante que sepa como se trabaja.









sábado, 20 de abril de 2013

Programando en Perl no. 3

1. Horoscopo chino en Perl

my %horoscopoChino(0,"mono",1,"gallo",2,"perro",3,"cerdo",4,"rata",5,"buey",6,"tigre",7,"conejo",8,"dragon",9,"serpiente",10,"caballo",11,"cabra");
$resto=0;
print "Anyo de nacimiento: ";
$anyo= <STDIN>;
print "Anyo de nacimiento: ",$anyo;
$anyo=chomp($anyo);
$resto=int($anyo)%12;
print "Te corresponde el signo del:  ". $horoscopoChino{$resto}." \n";

Ejemplo. si el año en el que naciste es 1981, te corresponderá el signo del gallo.

2.  Calcular días trabajados de un empleado.

my $dia_inicio=0;
my $dia_fin=0;
my $mes_inicio="";
my $mes_fin="";
my $anyo_inicio=0;
my $anyo_fin=0;

my %mesesAnyo=("enero",0,"febrero",1,"marzo",2,"abril",3,"mayo",4,"junio",5,"julio",6,"agosto",7,"septiembre",8,"octubre",9,"noviembre",10,"diciembre",11);

print "Introduce fecha de inicio: \n";
print "Dia: ";
$dia_inicio=<STDIN>;
print "Mes: ";
$mes_inicio=<STDIN>;
chomp($mes_inicio);
print "Anyo: ";
$anyo_inicio=<STDIN>;
print "\nIntroduce fecha de inicio: \n";
print "Dia: ";
$dia_fin=<STDIN>;
print "Mes: ";
$mes_fin=<STDIN>;
chomp($mes_fin);
print "Anyo: ";
$anyo_fin=<STDIN>;

$mesInicio=$mesesAnyo{$mes_inicio};
$mesFin=$mesesAnyo{$mes_fin};


#para los días, se le presta 30
if($dia_inicio > $dia_fin){
  $dia_fin=$dia_fin+30;
}

#para los meses, se le presta 12
if($mesInicio > $mesFin){
  $mesFin=$mesFin+12;
}

$restaDia=$dia_fin - $dia_inicio;
$restaMes=$mesFin - $mesInicio;
$restaAnyo=($anyo_fin-1) - $anyo_inicio;

print "Resultado: ";
print $restaAnyo," anyos ";
print $restaMes," meses ";
print $restaDia," dias";

Ejemplo. Fecha de inicio 2 de agosto de 2003 , fecha final 10 de enero de 2005 nos daría 1 año 5 meses 8 días