Warning: Cannot modify header information - headers already sent by (output started at /home3/fvqjwuzk/public_html/blog/wp-content/plugins/devformatter/devformatter.php:1) in /home3/fvqjwuzk/public_html/blog/wp-includes/feed-rss2.php on line 8
The post OCP Java SE 8 Exam 1Z0-809: Diseño de Clases Java appeared first on Developando.com.
]]>Después de llevar unos cuantos años trabajando con Java he de reconocer que nunca me había planteado la posibilidad de obtener la certificación, sin embargo, las cosas han cambiado y he decidido emprender el camino de las certificaciones en aquellas herramientas con las que trabajo habitualmente. Por eso he decidido prepararme la certificación OCP JAVA SE 8 exam 1Z0-809. Mi actual empresa no será mi última empresa, para facilitar estas transiciones futuras he decidido obtener las certificaciones necesarias que allanen el paso de una a otra empresa certificando el conocimiento que he acumulado.
Periódicamente iremos actualizando con entradas relacionadas con temas incluidos en esta certificación que cubre los aspectos básicos del lenguaje.
En esta primera entrada hablamos de 3 principios básicos del lenguaje como son encapsulación, herencia y polimorfismo.
En contraposición a la programación estructura la programación orientada a objetos entiende que datos y comportamientos asociados como una única unidad, esto es a lo que comúnmente denominamos clase. Los atributos y métodos que compondrán la clase están íntimamente relacionados.
Los modificadores de acceso determinan el nivel de visibilidad de cada elemento Java: clase, método o atributo. Estos modificadores nos permiten ejercer de manera efectiva la encapsulación.
Java soporta 4 tipos de modificadores:
La herencia es un mecanismo de reusabilidad de la programación orientada a objetos. Con la herencia, las propiedades de varios objetos son empleadas para establecer relaciones entre los diferentes objetos. La abstracción y las propiedades comunes son proporcionadas por la superclase, la cual es especializada en la sublcase.
El polimorfismo, como su mismo nombre sugiere múltiples formas, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo interfaz. O sea, que, en la práctica, un mismo identificador puede tener distintas formas (distintos cuerpos de función, distintos comportamientos) dependiendo, en general, del contexto. Dos ejemplos claros de esta característica son la sobreescritura de métodos (overriding) y la sobrecarga de métodos (overloading).
The post OCP Java SE 8 Exam 1Z0-809: Diseño de Clases Java appeared first on Developando.com.
]]>The post XCloner, listado backups realizado appeared first on Developando.com.
]]>Una vez realizada la copia de seguridad, existe un listado donde poder consultar todas las copias que se han relaizado, y desde donde se permite descargar para que así se pueda instalar en otro servidor por ejemplo.
Para acceder al listado únicamente hay que ir a la opción del menú de la izquierda “XCloner“, y dentro del panel de configuración del plugin a la opción “Actions – View Backups” como se muestra en al siguiente imagen:
Desde este listado se puede escoger los backups de XCloner que se quieran descargar.
The post XCloner, listado backups realizado appeared first on Developando.com.
]]>The post Código Mailchimp para Theme Jupiter appeared first on Developando.com.
]]><div class="block text-center"> <!-- Begin MailChimp Signup Form --> <div id="mc_embed_signup"> <form action="//developando.us5.list-manage.com/subscribe/post?u=6b94988cb3057591894ee1671&id=f3a8227f05" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> <div id="mc_embed_signup_scroll"> <input size="75" type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" style=" height: 25px; border: 1px; margin: 0px !important; font-size: 20px; border-radius: 5px;" required> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--> <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_6b94988cb3057591894ee1671_f3a8227f05" tabindex="-1" value=""></div> <button id="mc-embedded-subscribe" class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-flat vc_btn3-icon-left vc_btn3-color-info"><i class="vc_btn3-icon fa fa-check"></i> Suscribirme</button> </div> </form> </div> </div> <!--End mc_embed_signup-->
The post Código Mailchimp para Theme Jupiter appeared first on Developando.com.
]]>The post Firefox, SSL error ssl_error_weak_server_ephemeral_dh_key appeared first on Developando.com.
]]>Secure Connection Failed
An error occurred during a connection to login.opns.be. SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange handshake message. (Error code: ssl_error_weak_server_ephemeral_dh_key)
The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
Please contact the website owners to inform them of this problem.
Ahora lo que se puede hacer es llamar al administrador del sitio web para que modifique la seguridad del sitio, esperar a una nueva actualización de Firefox para que se solucione este problema, o seguir estos sencillos pasos y dejarlo funcionando en 15 segundos.
Lo primero que se hará es acceder a la página de configuración de Firefox “about:config” y una vez allí haremos clic en el botón “Tendré cuidado”:
En la siguiente ventana filtramos por el texto “security.ssl3.dhe_rsa_aes” obteniendo dos resultados:
Finalmente hay que hacer doble clic sobre cada una de las entradas que aparecen hasta que el campo valor pase a valer “false”:
Con estos sencillos pasos evitaremos el error de SSL “ssl_error_weak_server_ephemeral_dh_key” en Firefox.
The post Firefox, SSL error ssl_error_weak_server_ephemeral_dh_key appeared first on Developando.com.
]]>The post Wordpess, redirigir error 404 a la página inicio appeared first on Developando.com.
]]>En Wordpres generalmente existe un fichero, en el raíz de la carpeta que contiene el tema que está configurado, llamado “404.php”. Este fichero contiene la plantilla del contenido que se mostrará a los visitantes cuando no esté accesible una página dentro de WordPress.
Ahora lo que vamos a hacer es que cuando se produzca este error 404 en WordPress se muestre la página inicial. Para ello, vamos a modificar el contenido de ese fichero “404.php” o a crearlo si no existiera. El contenido de este fichero únicamente será el siguiente:
- <?php
- header("Status: 301 Moved Permanently");
- header("Location:http://www.developando.com");
- ?>
Con este pequeño cambio ahora todas las veces que los visitantes intenten acceder a un recurso o página que no se encuentre en nuestro sitio web serán redirigidos a la página de inicio.
The post Wordpess, redirigir error 404 a la página inicio appeared first on Developando.com.
]]>The post Laravel con Xampp y Composer en Windows appeared first on Developando.com.
]]>Xampp es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor web Apache y los intérpretes para lenguajes de script: PHP y Perl. El nombre proviene del acrónimo de X (para cualquiera de los diferentes sistemas operativos), Apache, MySQL, PHP, Perl.
En resumidas cuentas nos proporciona un entorno de desarrollo rápido para poder probar nuestras aplicaciones PHP (entre otras cosas).
Para instalarlo en Windows simplemente vamos a la página de descargas y bajamos el instalador y lo ejecutamos. Seguir los pasos es muy sencillo.
Hace algún tiempo hablamos sobre Composer en esta entrada para arrancar un proyecto con CakePHP. Es un gestor de dependencias para php, te permite declarar las librerías de las cuales tu proyecto depende o necesita y las instala en el proyecto por ti. Para instalarlo basta con descargar el instalador y ejecutarlo.
Antes de instalar Composer debes tener instalado php en tu pc. Si has instalado xampp primero bastará con indicarle la instalación de php que está en el directorio de xampp.
Si todo ha ido bien debes ejecutar composer -v en una consola y debe aparecer algo similar a la imagen siguiente:
Ya estamos listos para arrancar nuestro proyecto con Laravel, para ello, vamos a la carpeta htdocs dentro de xampp desde la consola y ejecutamos el siguiente comando:
composer create-project laravel/laravel nombre_del_proyecto –prefer-dist
Como ves composer empezará a descargar e instalar todos los componentes necesarios para crear nuestro proyecto.
Para verificar que todo ha ido bien, basta con arrancar el apache de xampp y en el navegador ir a la url http://localhost/nombre_proyecto/public donde deberás ver una pantalla como la siguiente:
¡ Ya puedes continuar el desarrollo bajo Laravel !
The post Laravel con Xampp y Composer en Windows appeared first on Developando.com.
]]>The post Añadir Captcha en formulario de foro bbpress appeared first on Developando.com.
]]>Para trabajar con el plugin de bbpress vamos a utilizar un plugin que se llama “Math Captcha”.
Para instalar este plugin se debe acceder al área de plugins desde el escritorio de administración y buscar el plugin con el nombre “Math Captcha” y hacer clic en el botón “Instalar ahora”:
Tras esto únicamente hay que hacer clic en activar y ya estaría el plugin listo para comenzar a trabajar.
Al acceder a la ventana de configuración del plugin “Math Captcha” podremos escoger entre los formularios donde queremos que este nuevo campo sea añadido. En el caso de este tutorial únicamente lo vamos a configurar para “bbpress”, por lo que el resto de casillas las dejaremos sin marcar, únicamente seleccionaremos la de “bbpress”.
También indicaremos que para los usuarios que tenga la sesión abierta no se les muestre, ya que al estar registrados queda verificado que son personales reales y no spam.
El siguiente paso es indicar que tipo de operaciones se quieren utilizar, pudiendo seleccionar entre sumas, restas, multiplicaciones y/o divisiones.
Finalmente indicamos el texto de la etiqueta que acompañará a la operación matemática que se le muestre al visitante en el formulario correspondiente.
Tras realizar todos estos cambios hay que hacer clic en el botón “Guardar Cambios” para que se aplique la nueva configuración quedando los formularios de esta forma:
The post Añadir Captcha en formulario de foro bbpress appeared first on Developando.com.
]]>The post Java fuentes adicionales generación PDF con JasperReports appeared first on Developando.com.
]]>Para la generación de PDFs desde Java vamos a utilizar la librería “jasperreports-6.0.4.jar” que se puede incluir fácilmente en un proyecto maven añadiendo la siguiente dependencia:
- <dependency>
- <groupId>net.sf.jasperreports</groupId>
- <artifactId>jasperreports</artifactId>
- <version>6.0.4</version>
- </dependency>
Esto incluirá en nuestro proyecto una libraría con el nombre “jasperreports-6.0.4.jar”. También se puede añadir una librería adicional de jasperreports que contiene una extensión con diferentes fuentes utilizando la siguiente dependencia en maven:
- <dependency>
- <groupId>net.sf.jasperreports</groupId>
- <artifactId>jasperreports-fonts</artifactId>
- <version>6.0.0</version>
- </dependency>
Con estas dos librerías en nuestro proyecto podremos crear informes en PDF pero veremos que si utilizamos alguna fuentes por ejemplo en negrita, en el PDF que se genera no se verán estos caracteres en negrita, sino que serán impresos con la fuente por defecto de jasperReports.
En este tutorial vamos a añadir dos nuevas fuentes para “Arial” y “Arial bold”, que nos permitirá poder generar informes utilizando la fuente arial normal y negrita. Para ello lo que vamos a generar es una nueva librería en la que incluiremos los ficheros de las fuentes y un fichero XML con el “índice” de fuentes que se han incluido.
Creamos un proyecto Java nuevo en Eclipse y en la carpeta raíz del proyecto vamos a crear el fichero de propiedades que se necesita para configurar la nuevas fuentes de JasperReports. Este fichero se debe llamar “jasperreports_extension.properties“, y tendrá un contenido como el siguiente:
- net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
- net.sf.jasperreports.extension.simple.font.families.myfamily=fonts/listado-fuentes.xml
De las líneas anteriores hay que fijarse en el nombre del fichero donde se incluirán las diferentes familias de fuentes que se van a añadir, en nuestro ejemplo se llama “listado-fuentes.xml“.
El siguiente paso es incluir en el proyecto los ficheros “.ttf” de cada una de las fuentes que queramos añadir. Para ello creamos una nueva carpeta con el nombre “fonts” y añadimos en ella cada uno de estos ficheros, en nuestro ejemplo añadiremos los ficheros “arial.ttf” y “arialbd.ttf”.
En esta misma carpeta “fonts” debemos crear el fichero con el nombre “listado-fuentes.xml” con el listado de todas las familias de fuentes a incluir, en nuestro caso la familia sera “arial” pero añadimos tanto la fuente normal como en negrita:
- <?xml version="1.0" encoding="UTF-8"?>
- <fontFamilies>
- <fontFamily name="Arial">
- <normal><![CDATA[fonts/arial.ttf]]></normal>
- <bold><![CDATA[fonts/arialbd.ttf]]></bold>
- </fontFamily>
- </fontFamilies>
Una vez completados los pasos anteriores únicamente queda empaquetar el proyecto y generear un fichero “.jar” para añadir al proyecto java con el que se generarán los informes en PDF con la librería de JasperReports. Para esto vamos a crear un fichero “build.xml” de ant con el siguiente contenido, este fichero también lo creamos en el raíz del proyecto del Eclipse:
- <project name="MisFuentes" >
- <target name="crear-jar">
- <mkdir dir="build/jar"/>
- <jar destfile="build/jar/MisFuentes.jar">
- <fileset refid='files.for.jar'/>
- <manifest>
- <attribute name='Specification-Version' value='1.0'/>
- <attribute name='Specification-Title' value='Mis fuentes' />
- </manifest>
- </jar>
- </target>
- <fileset id="files.for.jar" dir=".">
- <include name="fonts/*"/>
- <include name="jasperreports_extension.properties"/>
- </fileset>
- </project>
Ejecutando la tarea ant que hemos llamado “crear-jar” obtendremos el fichero “MisFuentes.jar” que únicamente deberemos añadir a las librerías del proyecto Java desde el que se van a generar los informes en PDF mediante JasperReports.
Con esto ya tendemos las fuentes “Arial” disponibles en nuestros informes.
The post Java fuentes adicionales generación PDF con JasperReports appeared first on Developando.com.
]]>The post Llamadas gratuitas desde WhatsApp appeared first on Developando.com.
]]>Para poder disfrutar de llamadas gratuitas desde WhatsApp tenéis que recibir una “invitación”. Por invitación vamos a entender una llamada de otra persona que ya tenga las llamadas de WhatsApp habilitadas. Así que únicamente debes buscar entre tus contactos alguien que te pueda llamar para que “transfiera” esta funcionalidad.
Mantén tu WhatsApp actualizado a la última versión ya que sino no te podrán hacer la primera llamada.
Consigue alguien que te haga una llamada desde WhatsApp, descuelga la llamada como si de una llamada normal se tratase, y una vez que finalices la llamada verás que tu WhatsApp ha cambiado de aspecto. Ahora tendrás tres pestañas en la parte superior.
En la siguiente imagen se muestra este nuevo menú de WhatsApp:
Para llamar ahora tú a tus contactos de WhatsApp, únicamente accede a una de las conversaciones que tengas abiertas y verás que en la parte superior aparece un nuevo icono de llamada. Pulsa sobre este icono para iniciar una llamada WhatsApp:
Se iniciará una llamada mostrándose en pantalla los botones para:
Así de sencillo es comenzar a utilizar las llamadas gratuitas desde WhatsApp. Si aún no las tienes y estás interesado puedes contactar con nosotros.
The post Llamadas gratuitas desde WhatsApp appeared first on Developando.com.
]]>The post Apache POI, leer fichero Excel desde Java appeared first on Developando.com.
]]>Antes de comenzar a trabajar hay que saber si se va a leer un fichero excel con extensión “xls”, que se corresponde con ficheros excel 97 al 2007, o un fichero Excel con extensión “xlsx”, versiones mayores al 2007. En función del tipo de fichero Excel con el que vamos a trabajar deberemos utilizar unas clases u otras.
Para la lectura de este tipo de ficheros excel vamos a utilizar el API de POI-HSSF. Para descargar el fichero “poi-3.11.jar” hay que acceder a la página de descargas de apache.
Una vez tenemos el fichero “poi-3.11.jar” o el correspondiente con la versión más actual lo incluimos el proyecto java. El siguiente código muestra cómo leer todas las filas de una hoja excel:
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.Iterator;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.Row;
- public class LeerExcel {
- public static void main(String args[]) throws IOException{
- FileInputStream file = new FileInputStream(new File("C:\\prueb_excel.xls"));
- // Crear el objeto que tendra el libro de Excel
- HSSFWorkbook workbook = new HSSFWorkbook(file);
- /*
- * Obtenemos la primera pestaña a la que se quiera procesar indicando el indice.
- * Una vez obtenida la hoja excel con las filas que se quieren leer obtenemos el iterator
- * que nos permite recorrer cada una de las filas que contiene.
- */
- HSSFSheet sheet = workbook.getSheetAt(0);
- Iterator<Row> rowIterator = sheet.iterator();
- Row row;
- // Recorremos todas las filas para mostrar el contenido de cada celda
- while (rowIterator.hasNext()){
- row = rowIterator.next();
- // Obtenemos el iterator que permite recorres todas las celdas de una fila
- Iterator<Cell> cellIterator = row.cellIterator();
- Cell celda;
- while (cellIterator.hasNext()){
- celda = cellIterator.next();
- // Dependiendo del formato de la celda el valor se debe mostrar como String, Fecha, boolean, entero...
- switch(celda.getCellType()) {
- case Cell.CELL_TYPE_NUMERIC:
- if( HSSFDateUtil.isCellDateFormatted(celda) ){
- System.out.println(celda.getDateCellValue());
- }else{
- System.out.println(celda.getNumericCellValue());
- }
- System.out.println(celda.getNumericCellValue());
- break;
- case Cell.CELL_TYPE_STRING:
- System.out.println(celda.getStringCellValue());
- break;
- case Cell.CELL_TYPE_BOOLEAN:
- System.out.println(celda.getBooleanCellValue());
- break;
- }
- }
- }
- // cerramos el libro excel
- workbook.close();
- }
- }
Para poder trabajar con ficheros excel con extensión ‘.xlsx’ debemos añadir las siguientes librerías en nuestro proyecto java:
Tras incluir las librerías anteriores en nuestro proyecto Jata, y con el siguiente código recorreríamos todas las celdas contenidas en las primera hoja del libro excel.
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.Iterator;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.xssf.usermodel.XSSFSheet;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- public class LeerExcel {
- public static void main(String args[]) throws IOException{
- FileInputStream file = new FileInputStream(new File("C:\\prueb_excel.xls"));
- // Crear el objeto que tendra el libro de Excel
- XSSFWorkbook workbook = new XSSFWorkbook(file);
- /*
- * Obtenemos la primera pestaña a la que se quiera procesar indicando el indice.
- * Una vez obtenida la hoja excel con las filas que se quieren leer obtenemos el iterator
- * que nos permite recorrer cada una de las filas que contiene.
- */
- XSSFSheet sheet = workbook.getSheetAt(0);
- Iterator<Row> rowIterator = sheet.iterator();
- Row row;
- // Recorremos todas las filas para mostrar el contenido de cada celda
- while (rowIterator.hasNext()){
- row = rowIterator.next();
- // Obtenemos el iterator que permite recorres todas las celdas de una fila
- Iterator<Cell> cellIterator = row.cellIterator();
- Cell celda;
- while (cellIterator.hasNext()){
- celda = cellIterator.next();
- // Dependiendo del formato de la celda el valor se debe mostrar como String, Fecha, boolean, entero...
- switch(celda.getCellType()) {
- case Cell.CELL_TYPE_NUMERIC:
- if( DateUtil.isCellDateFormatted(celda) ){
- System.out.println(celda.getDateCellValue());
- }else{
- System.out.println(celda.getNumericCellValue());
- }
- break;
- case Cell.CELL_TYPE_STRING:
- System.out.println(celda.getStringCellValue());
- break;
- case Cell.CELL_TYPE_BOOLEAN:
- System.out.println(celda.getBooleanCellValue());
- break;
- }
- }
- }
- // cerramos el libro excel
- workbook.close();
- }
- }
The post Apache POI, leer fichero Excel desde Java appeared first on Developando.com.
]]>