sábado, 25 de mayo de 2013

La leyes (no escritas) de la programación no. 2


  • NADIE VA AYUDARTE, repitelo varias veces hasta que lo entiendas. 
  • No importa que tan bueno seas no siempre van a salir las cosas tal y como las planeaste.
  • El café no es lo único que te mantendrá despierto para seguir escribiendo código es necesario realizar otras actividades.
Cuando tenemos un problema muy serio no siempre tendremos ayuda alguna. Es mejor pensar así, nadie va a venir a solucionarnos el problema. Pedir ayuda es válido, pero no esperemos que mágicamente aparezca alguien a salvarnos.

También cometemos el error de NO PEDIR AYUDA cuando realmente la necesitamos, creemos que podemos darle solución sin "molestar a los demás".

Superar la frustración
Es muy difícil hacerlo, esperamos que las cosas siempre salgan como pensamos. Escribir unas cuantas líneas de código y esperar a que mágicamente funcionen. 

Horas y horas de no dormir a la basura.  Eso va llevarnos un buen tiempo lograrlo.

Relajarnos
¿Por qué no?, ir de vez en cuando con los amigos a jugar futbol, ir  al cine, o a tomar una "bebida refrescante" (jeje).


lunes, 13 de mayo de 2013

Programando en Ceylon no.1

1. ¿Cómo compilar?
ceylon compile source\programa.ceylon

2. ¿Cómo ejecutar?
ceylon run default



3. ¿Cómo introducir datos?
doc "Introducir datos"
by "autor"
void run(){
  print("Introduce tu nombre");
  String nombre=process.readLine();
   print("Hola ``nombre``");
}

3. Si se quiere convertir de Integer? y Float? a Integer y Float se puede hacer los siguiente:
void run(){
print("Edad:");
String edadStr=process.readLine();
print("Peso:");
String pesoStr=process.readLine();

Integer? _edad=parseInteger(edadStr);
Float? _peso=parseFloat(pesoStr);

if(exists _edad){
  Integer edad=_edad;
  if(existe _peso){
   Float peso=_peso;
   print("edad:  ``edad``  peso: ``peso``");
  }
}

}
4. ¿Cómo recorrer un vector?
void run(){
String[] nombres=["Juan","Miguel","Antonio","Maria"];

for(n in nombres){
  print("Hola ``n``");
}


for(v in 0..12){
  print("hola no. ``v``");
  }


}

5. Obtener IMC

void run(){
  Persona persona=Persona("Mario",35,66.0,1.75);
  persona.ver();
}

shared class Persona(String nombre,Integer edad,Float peso,Float talla){
   shared Float imc(){
     return peso/(talla*talla);
  }

   shared void ver(){
    print("Hola ``nombre`` tienes ``edad`` , pesas ``peso`` y mides ``talla``");
    print("Tu IMC es de: ``imc()`` tu clasificacion: ``clasificacion()``");
  }

  shared String clasificacion(){
  variable String cad="";
  if(imc()<16.00){
  cad="Infrapeso: Delgadez Severa";
  }else if(imc()<=16.00 || imc()<=16.99){
  cad="Infrapeso: Delgadez moderada";
  }else if(imc()<=17.00 ||imc()<=18.49){
     cad="Infrapeso: Delgadez aceptable";
  }else if(imc()<=18.50 || imc()<=24.99){
    cad="Peso Normal";
  }else if(imc()<=25.00 || imc()<=29.99){
    cad="Sobrepeso";
  }else if(imc()<=30.00 || imc()<=34.99){
    cad="Obeso: Tipo I";
  }else if(imc()<=35.00 || imc()<=40.00){
    cad="Obeso: Tipo II";
  }else if(imc()>=40.00){
    cad="Obeso: Tipo III";
  }else{
      cad="no existe clasificacion";
  }
   return cad;
}
}

"Imposible,significa que no has hallado la solución"
Henry Ford

viernes, 10 de mayo de 2013

Un vistazo a ... Ruby

¿Cómo guardo un programa en Ruby?
nombrePrograma.rb

¿Cómo ejecuto un programa (desde terminal)?
ruby nombrePrograma.rb

Si usas Windows puedes descargar e instalar http://rubyinstaller.org/


1. Introducir datos desde teclado

introduceDatos.rb
puts "Teclea un nombre: "
STDOUT.flush
nombre=gets.chomp
puts "Hola #{nombre}"

2. Tabla de multiplicar del 1 al 10

tabla.rb
for n in 1..9
   puts "tabla de multiplicar del no. #{n}\n"
   for n2 in 1..10
        puts "#{n} x #{n2} = #{n*n2}\n"
   end
end

3.  Crear una clase
Persona.rb

class Persona
  
  def initialize(nombre,edad)
    @nombre=nombre
    @edad=edad
  end

  def verDatos()
    puts "Hola #{@nombre} tienes #{@edad} años"
  end

end

persona=Persona.new("Horacio",35)
persona.verDatos()


4. Ejecutar un bat o un sh
ejecuta.rb
=begin
comentariops 
multilínea en 
Ruby
=end
#si es Linux
system("sh archivo.sh")
#si es Windows
system("archivo.bat")


comprehensiones.rb
arreglo=[1,4,5,3,2,9,54,33,90,210,0,21]
puts arreglo.map {|x| x!= 0 ? x * 3 : nil}.compact



REPL Ruby
 http://tryruby.org/levels/3/challenges/2 este sitio  es para probar e iniciar en Ruby.



sábado, 4 de mayo de 2013

Estados de un programador Java


 
Inicias un nuevo proyecto. Todo parece perfecto, nada puede ocurrir mal.
Comienza la revisión de requerimientos. Descubres cosas que no habías pensado. Creo debiste preguntar más. Cero documentación, cero ayuda.
Las cosas no van según lo planeado. Todavía no empiezas a codificar y ya surgieron nuevos problemas. 
Lograste terminar casi justo a tiempo. Los problemas se resolvieron, tal vez no de la mejor manera, pero al menos ya no te preocupa tanto. Ir con los amigos a relajarte y tomar una "bebida refrescante".
Periodo de mucha felicidad, las cosas pueden mejorar. Tanta preocupación para nada.
Comienzan los problemas. 

Tu código requiere revisión, tantas horas de angustia y preocupación a la basura. Debes de comenzar de nuevo, quieres matar al usuario.