viernes, 11 de mayo de 2012

Resumen Java Tema GUI (Graphical User Interface)

Contenedores (agrupan controles)
    Layouts (establecen el orden de los componentes)
        Componentes (elementos gráficos)

       
Se producirán eventos (ratón, teclado), que serán recibidos por los Listeners que lanzarán el Handler (manejador) con el código a ejecutar:
        EVENTO(ActionEvent), OYENTE(ActionListener), MÉTODO(actionPerformed), COMPONENTES(JButton)

       
       
CONTENEDORES:
-JWindow: Ventana sin título ni borde
-JFrame: Marco con borde y título. Puede tener una barra de menú.
-JDialog: Ventana completa propia que no puede existir sin un JFrame como padre.
-JApplet: Permite crear un applet swing (aplicaciones web java que se ejecutan en el navegador).
-JPanel: Contenedor intermedio genérico de Componentes.

    .getContentPane() permite acceder al padre y add(boton) le añade componentes.

   
   
LAYOUTS:
-BorderLayout: colocamos los elementos en North, South, East, West, y Center. Es el Default de JFrame y JDialog.
-GridLayout: se colocan en una rejilla de dimensiones x*y
-FlowLayout: los elementos van seguidos en fila uno tras otro.
-NullLayout: tenemos que especificar a mano las coordenadas de cada componente.


   
COMPONENTES: javax.swing.JComponent es la clase base de Swing
    JLabel: setText(), setFont()
    JButton: produce ActionEvent, addActionListener(actionPerformed que implemente la interfaz ActionListener)
    JTextArea, JTextField, JPasswordField: campos para escribir líneas, textos o contraseñas. getText() y setText()
    JComboBox: desplegables con elementos para seleccionar. setEditable(bool). Igual que JButton= ActionListener, addActionListener(), actionPerformed()
    JList: Listas de items para seleccionar uno o varios. Produce ListSelectionEvent->addListSelectionListener()->valueChanged()
    JScrollPane: desplazador para moverse por mas contenidos.
    JCheckBox: Cuadrados marcables, producen  ItemEvent->ItemListener->itemStateChanged(), addItemListener()
    JRadioButton: Selectores de opciones únicas, se agrupan en ButtonGroup.add(), funcionan igual que botones.
   
        .setToolTipText("texto info") para añadir una nota emergente con información.
       
    Menus:
        JMenuBar: la barra en la que se colocan los menus
        JMenu: componente menu que al ser pulsado desplegará opciones. addSeparator()
        JMenuItem: Cada elemento que contendrá el menu. Igual que los botones
   
   
   
   
    JToolBar: Barras de Herramientas movibles y acoplables, con JButton con texto o iconos. addSeparator()
   
    JTabbedPane: tendrá pestañas que contendrán JPanel con contenido. addTab(), setSelectedIndex()
   
    -JFileChooser: nos permite la selección para apertura o guardado de un fichero. Es modal, con showOpenDialog y showSaveDialog().
    -JFormattedTextField: permite forzar formatos básicos en texto mediante máscaras (fechas, monedas) en conjunto con InputVerifier.
    -JSpinner: rota entre unos valores con un orden mostrando únicamente uno. SpinnerListModel(array), SpinnerNumberModel para números y SpinnerDateModel para fechas.
    -JTable: Tablas para mostrar datos en una rejilla de columnas y filas. Se construyen con arrays y permiten edición.
    -AbstractBorder: implementa interfaz Border y permite marcar bordes.
   
    JOptionPane: para mostrar diálogos de opciones, se captura el resultado y se analiza.
        .showConfirmDialog( Si, No, Cancelar)
        .showInputDialog( recoge un texto en un textbox y lo devuelve)
        .showMessageDialog( para errores, avisos, información)
        .showOptionDialog( combinación de los 3 anteriores)
       
       
       
*Podemos determinar el aspecto de la aplicación (metal, motif, windows) con:
    UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel";

Resumen Java Tema Excepciones

Excepción: error que detiene la ejecución. Lanza un objeto que podemos capturar con try{...}catch(Exception ex){...} y asi fortalecer, estabilizar y preparar la aplicación para recuperarse en casos de error.
Si se produce en un método y no es capturada escalará hasta el método que lo llamó recursivamente, y si no es capturada nunca, detendrá la ejecución.


try { Envuelve el código que podrá lanzar excepciones, las captura y se las pasa al manejador catch adecuado. }
catch { Puede haber varios, del mas específico al mas general, y es lo que se ejecutará en caso de error }
finally { Esta porción de código se ejecutará SIEMPRE, haya error o no, es útil para cerrar conexiones y flujos }

throw new Exception(): permite lanzar manualmente una excepción (tiene que heredar de Throwable)

public void método throws xException: indica que el metodo puede producir x excepciones y no las controla.

Throwable (padre)
    -Error (hija) errores fatales no recuperables.
    -Exception (hija) errores de los que se puede recuperar. getMessage(), printStackTrace()
        Se pueden crear hijas de Exception para hacer excepciones personalizadas.
        Tipos comunes:     ArithmeticException, NullPointerException, ClassCastException, NegativeArraySizeException, ArrayIndexOutOfBoundsException, NoClassDefFoundException

domingo, 8 de abril de 2012

Critica REC3: Genesis

Sí, Quiero.

El martes hice una escapada nocturna con mi compadre de fechorías y por primera vez en este 2012 fuimos al cine.
El motivo: REC 3, GENESIS, la tercera entrega de la que en mi opinión es la mejor saga que ha parido el cine español, aunque solo se me viene a la cabeza Torrente en contrapunto.
El caso es que tras encantarme la primera parte, y maravillarme la segunda, esta tercera y penúltima en la saga me ha fascinado.

REC 3 Génesis Trailer 1

La temática de la boda, con la que conectas de inmediato, te mete de lleno en la situación. Todos hemos estado en una, todos hemos vivido esas situaciones. Y el hecho de presentar la cinta como las grabaciones profesional y amateur del evento, añade al juego un toque aun más divertido.


 Y como yo siempre digo, si al final (o en este caso al principio) se casan, me encanta. Pese a ser una cinta de zombis/terror, el romance es la parte más importante de la historia. Es el hilo conductor, el motor de los personajes, y es tan bonito, intenso y en ocasiones incluso cursi, que no pude evitar echar más de una lagrimilla. Y es que para mí, donde haya una buena historia de amor (y no, los triángulos no son amor, son vicio) como en El cuervo o en Matrix, apoyando personajes, motivos o arcos, la historia gana enteros. En esta ocasión la historia de amor es sencilla y efectiva y está en su punto álgido, dos personas que se quieren con locura, en el día de su maravillosa boda.


Y al fin y al cabo las películas dependen de sus personajes, y normalmente la mitad o más me suelen caer mal, o restan puntos hasta tal punto que acaban todos con la cuenta en negativo. Sin embargo en REC3 Génesis, me sucedió al contrario. Todos los personajes, empezando por los novios, pasando por los amigos, familiares, cámaras, extras (John, Canon y el cura) con geniales. En lugar de cometer una estupidez tras otra (que puede haberlas al estar dirigidos por su corazón), en casi todas las ocasiones hacen lo que yo haría. Armarte con lo que puedas, plantar cara cuando no te queda otra, y huir como cobardes.

Pese a ser una cinta de terror tiene algunas secuencias de acción memorables (+20 puntos para Leticia Dolera por ello), que aunque pocas, se convierten instantáneamente en secuencias a recordar e imitar.

Y no solo de sustos y amor vive el friki, la REC3: Génesis dispone de unos pocos, localizados y más que efectivos puntos cómicos que me encantaron. Relajan un poco la tensión (que pronto vuelve) y al estar colocados en los momentos adecuados no destrozan el drama ni descolocan, hacen reír y algunos tienen auténticos dobles sentidos (¡¡Puto Canon!!).

Lo que no puede faltar en una peli de Zombis, aunque sea de la sub rama de los infectados/poseídos, son mis queridos zombis. En esta ocasión podemos disfrutar de un curioso tipo de zombi, el zombi de gala, ataviado con chaqués, vestidos, tacones y tocados. Creo que es la primera que veo en la que se utilizan, y son ciertamente refrescantes. Tienen las habilidades de los de las anteriores entregas, mas espacio abierto y libertad de movimientos y cumplen con eficacia su función. Incluso nos permiten descubrirles un punto débil, algo que supongo será útil en la próxima y última (?) entrega.


Mención especial a la banda sonora, plagada de temas románticos y casaderos, es pegadiza, está bien situada, y hoy no me puedo sacar de la cabeza el Eloise del gran Tony Casal. Un total acierto.

La fotografía del film me dio la sensación de estar cuidada, no detecté fallos de racord, y algunos encuadres eran espectaculares, jugando muy bien con los recursos de lluvia, nocturnidad e interiores. El tránsito por primera vez de cámara en mano a cámaras fijas profesionales está muy bien realizado, es gracioso, tiene sentido, y da pie a un nuevo tipo de narración en la saga.

El director Paco Plaza sabe lo que quiere hacer, cuenta una historia ágil y divertida dentro de su RECverso, nos aporta algo (poco) mas de información, y nos entretiene con un espectáculo salpicado de referencias a las anteriores entregas, al género en general, con un buen ritmo que no decae en ningún momento.

Una gran película de zombis, una buena historia romántica, y una estupenda película española.

Así no me importa pagar por ir al cine. Le otorgo un merecido 9 sobre 10.



¡Hoy es mi díaaa!


lunes, 13 de febrero de 2012

Para mí el año 2011 ha sido...



Intenso, duro y muy difícil.
No me puedo quejar ni me quejo porque tengo salud, tengo trabajo y estoy estudiando, pero ha sido un año en el que no he tenido vacaciones, en el que mis jornadas han ido creciendo por momentos hasta rozar lo absurdo, y en el que mi tiempo de ocio ha ido desapareciendo hasta convertirse en algo anecdótico o en un mero recuerdo. Los fines de semana se llenaron primero de trabajos freelance, después de la traducción que estoy haciendo al español de la ROM de Final Fantasy VI de SNES, y posteriormente de estudio, prácticas y trabajos.

Una gran compañera y muchisimos recuerdos me dieron mis 18 meses de Apolo Media.
No tuve vacaciones en verano porque deje mi trabajo en Apolo un viernes y comencé en Decoexsa el lunes siguiente, y la verdad es que me paso factura. La tensión y la presión de cambiar de trabajo, el esfuerzo extra por intentar aprenderlo todo y unos resultados vergonzosos me hundieron bastante el ánimo. Si no llega a ser por mis maravillosos compañeros, primero el Señor Veiga y después el Señor Galeano, no creo que lo hubiera aguantado.

Y cuando no podía dar más de si mi agenda me apunte a la Universidad.
En concreto estoy cursando un Grado en Sistemas de Información en la Universidad de Alcalá, y es una mezcla de informática y Administración y dirección de empresas que me convenció por que a diferencia de las ingenierías no tenia física y tan solo una asignatura de matemáticas, y no cinco.
Por este motivo tuve que sacrificar lo poco que quedaba de mi ocio y vida social que transcurría los sábados en mi casa con mis frikolegas, y le dedique por completo el fin de semana al estudio. Tuve también que comenzar a dormir menos, porque 7 horas al día es un lujo, y no estaba para lujos la situación. Con 4 o 5 horas tendría que apañarme.

Y es que para celebrar mi año de la buena suerte comencé mi primer cuatrimestre con Matemáticas y Fundamentos de Tecnología de computadores (de ahora en adelante circuitos).
Si, yo que la última vez que aprobé matemáticas fue en 7º de E.G.B., y que me metí en un Bachiller de Humanidades (letras puras) por que no tenía ni idea, y yo que prácticamente no se sumar mas allá de cantidades que quepan en los dedos de las manos.

Fue mortal, estresante, depresivo y agotador, porque para colmo tienes que tener la base de los bachilleratos de ciencias, pero estaba decidido a ver hasta dónde podía llegar, y sacrificando cualquier buen rato, momento feliz o de descanso durante 4 meses, y con la inestimable ayuda de los señores Christian y Daniel y de la paciencia, tiempo, esperanza y lecciones del Gran Jon, con demasiadas horas de tutorías y mas videos de youtube de los que he visto en toda mi vida, y sin la mas mínima esperanza de aprobar en el primer año, hice todo lo que pude, al menos con el tiempo que mi trabajo a jornada más que completa me permitía.
Trabajo nuevo, Oficina nueva, corte de pelo nuevo.

Y por fin, aunque sucediese en 2012, tras perderme varias vacaciones y la navidad, y con el TOC por las nubes, conseguí, no sin ayuda de los profesores, ¡¡¡¡un 5.0 en matemáticas y un 9.0 en circuitos!!!!

Aun no lo he asimilado y no he podido disfrutarlo, pero el caso es que (creo) que ha sucedido. Lo he logrado y casi no le puedo pedir más a esta vida (aunque ya lo esté haciendo claro....).

En 2011 también perdí a mi última abuela y madrina Isidora Gómez. Siempre es triste una pérdida así pero cuando las personas alcanzan una cierta edad (90+) y tienen una serie de problemas de salud uno está preparado para que la naturaleza siga su curso. Y sirvió para reunir a toda la rama de la familia donde conocí a tíos y primos que no había visto nunca, y a familiares que hacia más de 15 años que no veía.


Pero también ha sido un año en el que he (re)conocido a buenos compañeros de trabajo (MC, Veiga y Roberto, sois la repera!!), y he tenido la suerte de coincidir con unos colegas de clase estupendos (Jon, te debo muchísimo) y unos comprensivos amigos que no me recriminaron el abandonarlos y desaparecer durante los cuatro meses de clase. Por ello a todos les agradezco enormemente el apoyo, la compañía, el tiempo y la paciencia. ¡ARIGATO!


En resumen ha sido un año sin descanso, sin casi buenos momentos y sobrecargado de trabajo, responsabilidades y más trabajo, la mayoría no remunerado. Pero lo he conseguido terminar con vida, he tenido un éxito moderado en la universidad, y vuelvo a tener un contrato indefinido, que le da a uno cierta tranquilidad. Y pese a que no se cuanto tiempo podre aguantar a este ritmo, lo cierto es que cuando conviertes el límite en rutina, no se hace más agradable pero si más llevadero. Cuesta más levantarse un día a las 5 de la mañana que todos los días, y cuesta más doblar turno un día que hacerlo por norma todos los días.

Estudiar estudiar, en la universidar!
Y así con las esperanzas puestas en que en este 2012 pueda vivir algo mas, pueda ver a mis amigos y a la gente que quiero, conozca a los nuevos bebés presentes o en camino, ejecute reencuentros pendientes desde varios años o lustros, consiga terminar y publicar mi parche de traducción del Final Fantasy VI, y mantener mi trabajo y mi carrera en niveles aceptables me despido de este 2011 duro y agotador pero en algunos aspectos reconfortante y enriquecedor.


Valoración del año 2011: 6 sobre 10 ;P

lunes, 7 de noviembre de 2011

Receta de Bizcocho de Naranja casero

Hace poco mi madre, que se esta especializando en postres y bollería caseros, hizo un bizcocho de naranja que estaba para desmayarse.

Como le hemos comprado un Samsung Galaxy Mini y la estamos enseñando a utilizar el correo electrónico, conseguí que escribiera la receta y me hice con una copia.

Si consigo que le haga fotos a los ingredientes y al resultado, iré publicando aquí sus recetas, lo cual es una inesperada pero deliciosa novedad para el korcho.


Ingredientes:

    Una naranja de zumo de piel fina
    70ml de Aceite
    250gr de Azúcar
    3 Huevos
    170gr de Harina
    1 sobre de Levadura


Preparación:

Triturar todo con una batidora menos la harina y la levadura, triturar la naranja con piel incluida, poner en un bol e incorporarle la harina y la levadura.

Ponerlo todo en un molde engrasado y desmoldable.
Al horno 180 grados, con calor en la parte inferior, durante 40 minutos aproximadamente.


¡¡Itadakimasu!!

viernes, 4 de noviembre de 2011

Lo que bien empieza...


Acabo de recibir la nota de mi primer examen en la universidad y he conseguido hacerlo bien, la puntuación máxima eran 2 puntos y los he conseguido.
Para empezar me da ánimos, y fuerzas para seguir sacrificando las noches y los fines de semana, pero por otro lado, el tema era los sistemas de numeración, cosa que ya aprobé con un 10 en el ASI hace 8 años. Y lo peor de todo es que el siguiente examen es de matemáticas, y por más que estudio, no consigo controlar ningún tema, y ya llevamos 3 temas. He aprendido muchísimo, eso sí, pero me faltan años y años de cálculo y de memorizar tablas absurdas que no voy a usar en nunca más en mi vida.

Sé que en este examen de mates lo máximo que puedo aspirar es a sacar un 2 sobre 10, si lo consigo ya será un logro, pero me da rabia invertir tanto esfuerzo y tiempo que no tengo en una asignatura para no superarla. Y todo el tiempo que le dedique es tiempo que le quito a circuitos. Pero voy a seguir exprimiéndome al máximo y lo que sea será. Nunca conté con aprobar matemáticas, así que no me hundiré si no la saco. O eso pretendo.


Y de paso le doy las gracias a todos mis compañeros que me han ayudado, los que me han explicado cosas y los que han pasado horas explicándome factorizaciones, funciones, limites, derivadas e integrales. Jon, Daniel y Cristian, ¡MUCHAS GRACIAS!