Java y MySQL

package primeraconexion;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class PrimeraConexion {

public static void connect(){

String url = «jdbc:mysql://localhost:3306/nombre_base_de_datos»;
String user = «root»;
String pass = «»;

System.out.println(«Conectando…»);

try (Connection connection = DriverManager.getConnection(url, user,pass)) {

System.out.println(«Conectado!!»);
System.out.println(«Insertando …»);
Statement s = connection.createStatement();

// 3 Consultas básicas –

// insert into nombretabla (campo1,campo2,…) value (valor1,valor2,…)
// select nombrecampo front from nombretabla where … order by … limit
// UPDATE table_name SET column1 = value1, column2 = value2, … WHERE condition;

String consulta1 = «insert into tabla (campo) value (\»valor2\»)»;
s.executeUpdate(consulta1);

String nuevaconsulta = «select * from tabla»;
ResultSet rs = s.executeQuery(nuevaconsulta);

while (rs.next()) {

System.out.println(«campo= «+rs.getObject(«campo»));

}

rs.close();

} catch(SQLException e) {

System.out.println(e.getMessage());

}
}

public static void main(String[] args) throws SQLException {

PrimeraConexion conexion = new PrimeraConexion();
conexion.connect();

}

}

Herencia 1

import java.util.Scanner;
public class Herencia2 {
protected Scanner teclado;
protected int valor1;
protected int valor2;
protected int resultado;
public Herencia2() {
teclado=new Scanner(System.in);
}

public void cargar1() {
System.out.print(«Ingrese el primer valor:»);
valor1=teclado.nextInt();
}

public void cargar2() {
System.out.print(«Ingrese el segundo valor:»);
valor2=teclado.nextInt();
}

public void mostrarResultado() {
System.out.println(resultado);
}
}

public class Suma extends Herencia2{
void operar() {
resultado=valor1+valor2;
}
}

public class Resta extends Herencia2 {
public void operar(){
resultado=valor1-valor2;
}
}

public class Prueba {
public static void main(String[] ar) {
Suma suma1=new Suma();
suma1.cargar1();
suma1.cargar2();
suma1.operar();
System.out.print(«El resultado de la suma es:»);
suma1.mostrarResultado();
Resta resta1=new Resta();
resta1.cargar1();
resta1.cargar2();
resta1.operar();
System.out.print(«El resultado de la resta es:»);
resta1.mostrarResultado();
}
}

Ejercicios Java – Estructuras dinámicas

Escribe la función “InsertaArrayEnArrayPro” a la que le pasamos tres parámetros: un array de enteros, una posición en ese array y otro array de enteros. La función insertará en el primer array, a partir de la posición indicada, todo el contenido del segundo array, y nos devolverá otro array con el resultado. Para ello, usaremos una lista como paso intermedio: copiamos el array a la lista, realizamos la inserción en la lista y luego convertiremos la lista en un array y lo devolveremos.


Ejercicio resuelto

package ejercicio3;
import java.util.ArrayList;
import java.util.PriorityQueue;
import java.util.Queue;

public class Ejercicio3 {

public static void main(String[] args) {

ArrayList a = new ArrayList<>();
ArrayList b = new ArrayList<>();

a.add(1);
a.add(3);
a.add(5);
a.add(7);
a.add(19);

b.add(4);
b.add(5);
b.add(8);
b.add(10);
b.add(12);

OrdenaciónMezcla(a,b);
}

private static void OrdenaciónMezcla(ArrayList x, ArrayList y) {

Queue q1 = new PriorityQueue<>(x);
Queue q2 = new PriorityQueue<>(y);

ArrayList listafinal = new ArrayList<>();

/*
for (int i =0; i<=q1.size();i++) { for (int j =0; j<=q2.size();j++) { if (q1.peek()<=q2.peek()) { listafinal.add(q1.poll()); } else { listafinal.add(q2.poll()); } } } */ while (q1.isEmpty()==false || q2.isEmpty()==false) { if (q1.isEmpty()==false && q2.isEmpty()!=false) { listafinal.add(q1.poll()); } else if (q2.isEmpty()==false && q1.isEmpty()!=false) { listafinal.add(q2.poll()); } else { if (q2.peek()<=q1.peek()) { listafinal.add(q2.poll()); listafinal.add(q1.poll()); } else { listafinal.add(q1.poll()); listafinal.add(q2.poll()); } } } System.out.println(listafinal); } }

Formación «Licencias de apertura»

Objetivos del curso «Licencias de Apertura» impartido por PSM4:junta-andalu

  • Trámites para la licencia de apertura.
  • Actividades inocuas.
  • Actividades calificadas.
  • Reglamentación aplicable según tipo de actividad.
  • Reglamentos comunes.

Situado en C/ Dr. González de la Cotera, 19 El Puerto de santa María (Cádiz).

Hemos recibido una charla muy amena y práctica sobre las licencias de apertura de un local comercial, así como los trámites y organismos asociados a la idea de abrir o usar un local para un negocio.

Una empresa colaboradora aporta un conferenciante para que nos de una charla sobre las licencias de apertura de un local comercial, una parte fundamental a la hora de emprender en un negocio que necesita de un local físico, ya sea para atender al público, fabricar materiales, impartir clases…

Se nos aclaran conceptos tan importantes como el P.G.O.U., las ordenanzas, la declaración responsable; se nos aclara la idea de «uso comercial» en lo relativo al sector en el que trabajamos y su asociación con los epígrafes de Hacienda; el papel que juegan organizaciones como la Unión Europea y la Junta de Andalucía; diferencia entre obra mayor y menor; tasas necesarias; la importancia de gestores para los trámites…

Desde el punto de vista del emprendedor, se nos instruye en la planificación de emprender en nuestro negocio teniendo en cuenta factores de decisión a la hora de elegir un local, y de cómo la elección puede influir positiva o negativamente. Gracias a la participación de los compañeros, se habla de financiación (orientada a la búsqueda, adquisición o alquiler de un local adecuado).

Descarga la presentación aquí

Formación «Oportunidades de negocio para emprender» – CADE – El Puerto de Santa María

Andalucía Emprende en la provincia de Cádiz ofrece en sus 25 CADE’S un catálogo de formación gratuita en aspectos esenciales de la gestión empresarial y maduración de proyectos emprendedores. En concreto este curso que se anuncia tiene el siguiente objetivo:junta-andalu

  • Introducción: el perfil de emprendedor/a.
  • La idea de negocio.
  • Herramientas para la generación de ideas de negocio.
  • Creatividad. La técnica del pensamiento lateral.
  • De la idea de negocio a la oportunidad.
  • Oportunidades de negocio por sectores de actividad

Enlace para documento de presentación del curso

En el curso hemos tratado varios aspectos sobre el emprendimiento y las ideas de negocio, desde un punto de vista dinámico y participativo. Hemos visto conceptos básicos sobre la idea de emprender que deben quedar muy claros en lo que se refiere a las idea de negocio, orientadas a nuestros proyectos y viendo casos prácticos y ejemplos reales.

Desde la clara diferencia existente entre inversor y emprendedor (a veces no tan clara), hasta el análisis de las razones que nos pueden llevar a emprender en algún momento de nuestra vida, pasando por el análisis del perfil del emprendedor  (sus posibles puntos fuertes y débiles), el estudio de la propia idea de negocio (análisis DAFO), sin dejar de lado el pensamiento/marketing lateral y el estudio de las oportunidades del mercado.

Aportando una bibliografía de referencia que puede marcar las primeras pautas para la formación como emprendedores y/o el óptimo desarrollo de un proyecto en marcha.

Liberar espacio de Cpanel

Vamos a aprender cómo liberar espacio de nuestro servidor administrado con CPanel. En esta entrada obviaremos que los recursos de su hosting son suficientes para albergar su proyecto, con lo que aplicando los consejos se puede conseguir mejorar la administración del espacio, así como la rapidez de carga de las páginas del sitio.

cpanel

En primer lugar tenemos que determinar dónde está nuestro problema de espacio, qué archivos son más pesados y dónde se encuentran. Las distribuciones de CPanel incluyen una utilidad llamada «Uso del Disco» que informa a la perfección, mediante un árbol desplegable, del espacio que ocupa cada utilidad.




uso del disco

 

Hay varias causas que pueden ocasionar el problema del espacio en disco:

  • Hay demasiados mails, o alguna cuenta de email está albergando mails muy pesados, con archivos adjuntos.
  • Hay archivos temporales que borrar
  • Hay alguna copia de seguridad (backup) del sistema antigua (suelen ser pesadas)
  • Un archivo error-log (o algún otro registro de errores o actividad) está informando de muchos errores (puede que incluso no sean importantes) y no ha sido borrado desde hace mucho tiempo.
  • Alguna base de datos almacena datos de estadísticas de sitios que, se consulten o no, llenan tablas y tablas de datos
  • Las imágenes no están optimizadas

La herramienta «Uso del disco» será muy orientativa a la hora de encontrar las causas:

ejemplo

 

Es posible que alguna de las funcionalidades del hosting no estén completamente operativas y puede que para eliminar los archivos sobrantes tengamos que coinectarnos por FTP, o bien usar el Administrador de archivos de CPanel.

Preparándonos para Magento

images

  • Introduccción: nos han encargado la gestión de varias webs creadas con Magento. Hemos instalado Magento en nuestro servidor para aprender sobre esta plataforma de comercio electrónico. Sobre este punto tenemos pendiente la importación de productos masiva, con algún plugin que descarguemos o creemos.
  • Sobre la importación de productos masiva, CSV productos – Magmi, http://artifexsoft.com/carga-masiva-de-productos-y-categorias-magento/ – http://wiki.magmi.org/index.php?title=What_is_magmi
  • Sobre la instalación y el uso de Magmi: http://www.bestresponsemedia.co.uk/how-to-install-and-use-magmi-for-magento/
  • Siguiendo esta guía, instalamos Magmi sin problemas. Reconoce los datos de acceso la base de datos, y requiere su propia sesión para funcionar. Además, se instala subiendo os archivos a la raíz de Magento, con lo que tendremos wue tener en cuenta que esas carpetas no deben indexarse… cosa que imagino que los desarrolladores de Magmi han tenido en cuenta. Igualmente miraremos Google Analytics en un par de días para asegurarnos.
  • Sobre el uso de Magmi: tenemos preparado un par de CSV que adecuaremos para Magmi.
  • Traducción al español: existe mucha información sobre cómo traducir Magento al español, por ejemplo: https://www.youtube.com/watch?v=n9XIC5vScvw. Los procedimientos dependen de la versión, nosotros lo hemos hecho desde el sitio de Magento, donde nos registramos y nos daban una clave para conectarnos y descargar archivos desde el back

Configurar nueva pestaña de Firefox

Zona hostil para manazas
  1. En la barra de direcciones, escribe about:config y pulsa Intro.
    • El aviso de about:config «¡Zona hostil para manazas!» o «¡Esto puede cancelar su garantía!» puede aparecer. Haz clic en ¡Tendré cuidado, lo prometo! o ¡Seré cuidadoso, lo prometo!, para continuar.
  2. Escribe browser.newtab.url en la barra de búsqueda.
  3. Haz doble clic en el ajuste browser.newtab.url y cambia la URL de about:newtab a about:blank. Al mismo tiempo, también puedes cambiarlo y poner about:home
    para que Firefox Google sea tu página de inicio o escribir la dirección
    de la página web que quieres que sea tu página de inicio. Por ejemplo, likonet.es.
  4. Haz clic en Aceptar y cierra la pestaña de about:config tab.  

Scratch – programación sencilla

Interesante aplicación para aprender a programar de manera muy sencilla, basada en el lenguaje Actionscript. El aspecto y los colores de esta interfaz gráfica la hacen parecer una aplicación para niños, pero de forma sencilla se pueden hacer cosas bastante interesantes y complejas.

Después de unas breves notas sobre la interfaz, describiremos paso a paso cómo hacer un pequeño juego donde un tiburón se come aun asustadizo cangrejo

Descarga: http://info.scratch.mit.edu/es/Scratch_1.4_Download

Sobre la interfaz

Menú principal. Donde están los botones de guardar, Archivo, Editar…

– Columna. La interfaz de Scratch tiene 3 columnas principales:

En la columna izquierda encontraremos los «controles» en forma de «cajitas de colores» para programar los objetos.
– La columna central es la de edición de un objeto, donde las tres pestañas (disfraces, programas, sonidos) determinarán su comportamiento.
– La columna derecha es el escenario de nuestro programa. En su parte superior tenemos 4 controles para los objetos (duplicar, borrar, agrandar y achicar) así como la bandera verde y el botón para todo o botón rojo. En su parte inferior podemos importar y crear nuevos objetos y ver una lista de los objetos que tenemos.

– Escenario: la parte inferior derecha de la interfaz.

– Disfraz: son los sprites de los objetos. Un objeto puede tener más de un disfraz.

Controles: Esos «comandos» de colores de la columna izquierda, mencionaremos casi siempre su color entre paréntesis para facilitar su localización.

– Anclar: Es el movimiento que hacemos con los controles de la columna izquierda al dejarlos caer en la columna central sobre el «ancla» de otro control. Así asociamos, por ejemplo, el cambio de disfraz al tiempo que tarda en cambiar.

Rutina: conjunto de comandos de colores.

 

Interfaz gráfica de Scratch

1- Disfraces para un objeto: El tiburón muerde

En este paso añadiremos un objeto con 3 disfraces que se moverá por el escenario a nuestra voluntad, usando las teclas de dirección del teclado.

– En el Escenario, click derecho sobre el gatito > «borrar»
– Encima del Escenario , «pintar un objeto nuevo» > «importar»
– Escogemos el que se llama «shark1-a» (porque tiene varios disfraces) y aceptamos para importarlo
– Podemos reducir su tamaño usando el 4º botón de la fila de botones, «Achica objeto»,  que está encima de la vista previa
– Vamos a la etiqueta «Disfraces» (segunda columna), pulsamos «pintar». Escogeremos esta vez el segundo disfraz, llamado «shark1-b». Repetimos la operación para «shark1-c»
– Vamos a la pestaña «Programas»
– Desde «controles» (naranja) arrastramos a la columna de en medio «Al presionar bandera verde» y le anclamos «por siempre»
– Desde «Apariencia» (morado), metemos dentro de la cajita «siguiente disfraz».
– Y justo debajo de «siguiente disfraz», aún dentro de la cajita: «Control» > «esperar 0.06 segundos»

2- Movimiento del objeto


Con la siguiente captura de pantalla podéis ver cómo debe quedar la columna central de nuestro Scratch. Es esta imagen se incluye también todo lo del paso anterior, es decir, la mordedura del tiburón con sus tres disfraces.

En este paso añadimos 4 controles (naranja) «Al presionar tecla …», seleccionamos las flechas del teclado. En cada uno añadimos un movimiento azul «Apuntar en dirección …» donde seleccionaremos las cuatro direcciones de las flechas del teclado. Y añadiremos 4 un controles más, «mover 10 pasos» a cada uno.

Resumen de pasos 1 y 2

3- Otro comportamiento del objeto: El cangrejo rebota y huye

Este objeto se moverá solo por el escenario y rebotará contra los bordes.

– Importamos el objeto «crab1-a» desde el escenario, como hicimos con el tiburón.
– Cada vez que seleccionemos un objeto del escenario (haciendo doble click), la columna central cambiará a la edición del objeto que hayamos
– Desde Programas, Al presionar bandera verde > por siempre > esperar 0.06
– Nuestro cangrejo se mueve, pero no rebota. Tenemos que hacer uso de otros controles para que lo haga siempre que toque un borde.
– Añadimos un «al presionar bandeja verde», como siempre, pero esta vez la «cajita» no será «por siempre», sino «por siempre si».
– Ésta incluye una casilla vacía en la que colocamos un sensor (azul claro) «¿tocando.. ?» donde establecemos «¿tocando borde?».
– Vamos de nuevo a los controles (azul). Metemos dentro de la cajita «por siempre si» los siguientes: «apuntar en direción 90», «mover 10 pasos», «girar 15 grados». Dentro de «apuntar dirección 90» arrastramos un control operador (verde) de resta, que tiene 2 casillas vacías. En la primera arrastramos un control de movimiento (azul) «dirección» y en la segunda hacemos click y escribimos 180 .
– En este punto, si probamos el programa, veremos un comportamiento distinto del cangrejo: ya rebota contra los bordes, haciendo un giro cada vez.
– Nos gustaría que el cangrejo siempre permaneciese con las pinzas hacia arriba. Para ello, marcamos el botón «solo mirar izquierda-derecha» que está en la columna central, arriba (a veces cuesta encontrar esta opción. En la captura siguiente, se encuentra debajo de «Archivo» del menú principal).

Movimiento y rebote del cangrejo

– El cangrejo debería huir del tiburón cuando esté cerca de él. Para este comportamiento debemos incluir los siguientes controles:

al presionar bandeja verde
por siempre si (tocando (objeto 1))
apuntar en dirección (operador resta(dirección – 180))
mover 10 pasos

Se puede ver en la siguiente captura:

Huida del cangrejo

4- El cangrejo es comido

 
Sólo una pequeña nota para explicar estos controles: como el cangrejo va a desaparecer cada vez que el tiburón lo toque, necesitamos que vuelva a aparecer cada vez que presionamos la bandeja verde. Por eso usamos el control de apariencia (morado) «mostrar».
al presionar bandera verde
     mostrar
     por siempre si (tocando (objeto 1))
esperar 0.5 segundos
           esconder
El cangrejo es comido

5 – Un fondo marino animado

– Columna derecha > parte inferior > Click en Escenario > Columna central > pestaña fondos > botón importar > carpeta nature > underwater.
– Añadimos otro fondo marino, para tener dos fondos.
– Borramos el fondo blanco que nos necesitamos.
-Editamos uno de los fondos. En esta nueva ventana nos aparece un sencillo editor de imágenes. La idea es cambiar las burbujas del fondo marino, seleccionándolas y girándolas. También podemos borrar algunas burbujas, para conseguir un efecto similar.
– Ahora tenemos dos fondos casi iguales, sólo cambian las burbujas.

– Vamos a la pestaña «Programas» del Escenario y añadimos esta rutina para cambiar de escenario y conseguir el movimiento de las burbujas, gracias al control de apariencia (morado) «siguiente fondo»:

al presionar bandera verde
por siempre
siguiente fondo
esperar 1 segundo

Cambio de fondo

6 – El tiburón crece cuando come


Lo conseguimos con el control de apariencia (morado) «fijar tamaño a». Nótese el uso de fijar tamaño antes de «por siempre si», por el mismo motivo que en el punto 4, «El cangrejo es comido». El tiburón cambiará de color al comerse al cangrejo, vean el control de apariencia (morado) «cambiar efecto color por 25» que se usa para este fin Seleccionamos el tiburón y añadimos esta rutina:

al presionar bandera verde
fijar tamaño a 48%
por siempre si (tocando (objeto 2))
fijar tamaño a (operador suma (tamaño + 20%))
cambiar efecto color por 25

Tiburón crece y cambia de color

7 – Terminando el juego

En este punto debemos crear otros objetos para que sean pasto de la gula de nuestro tiburón. Basta con hacer clic derecho encima de nuestro cangrejo y elegir «duplicar». Crearemos 3 más. Opcionalmente podemos cambiarles el disfraz para tener más variedad en nuestro fondo marino. Los objetos duplicados tendrás los mismos programas que el original.

El tiburón se va a poner las botas…

Necesitamos añadir una rutina para cada uno, para que el tiburón se los pueda comer. Seleccionamos el tiburón y, en sus programas, modificamos la rutina del punto 6 para que quede como el la imagen. E juego acabará cuando el tiburón alcance cierto tamaño:

 

Clic derecho sobre la rutina > duplicar. En «¿tocando objeto 2?» ponemos «objeto 3». Duplicamos de nuevo… así hasta tener 4 rutinas.

Fuente: https://www.youtube.com/watch?v=0yPwpA7mRB0

Este post es un resumen del contenido del vídeo https://www.youtube.com/watch?v=0yPwpA7mRB0. Me he suscrito al canal del autor, ¡que siga haciendo vídeos, por favor!

Ejemplo de contenido para posicionar palabras clave

Quiero compartir con vosotros algunas notas sobre mi experiencia en el SEO enfocado a la creación de contenido. Estas notas pueden ayudarte a que un texto de calidad posicione mejor por las búsquedas objetivo. Ojo: esto no son leyes escritas en piedra. Os dejo un fragmento de texto, y os lo comento un poco más abajo:

(Ejemplo: Fragmento de post)

Título: Seguridad en la red

(…)

navegar sin problemas en internet

Toda la información que pasa por el enrutador (router para la mayoría de nosotros) puede ser almacenada para su posterior revisión. Desde un simple mensaje de WhatsApp hasta un documento que se imprima en una impresora con WIFI: el contenido puede ser consultado sin mayor problema por parte de cualquier usuario con acceso al router.

(…)

Es una opción muy útil para padres que quieren comprobar que sus hijos tienen una actividad saludable en Internet, o para monitorizar el uso del material informático por parte de los empleados de una empresa. Es importante conectarse a una red segura.

Es posible además guardar la información comprimida para ahorrar espacio, o configurar de qué manera se almacena para su fácil acceso.

(…)

NOTAS SEO:

  • En el ejemplo vemos un fragmento de un post sobre seguridad informática, así que el título del post empieza con la palabra «seguridad».
  • Uso de las palabras en negrita: por una parte se destacan visualmente palabras importantes para el significado del texto, (mejor comprensión lectora) y además alguna palabra relacionada indirectamente con el tema que nos interesa posicionar, o que incluso sea la palabra clave principal a posicionar (sí, aunque no sea el tema principal), o perteneciente a su campo semántico. Nótese que destacamos «impresora con WIFI», que no tiene que ver directamente con la seguridad. En el ejemplo se han puesto en negrita demasiadas palabras, en mi opinión, pero quería daros más indicaciones. En el texto final escogería menos palabras para resaltar en un fragmento tan corto.
  • Para completar lo del punto anterior, diría que un correcto uso de la cursiva, las comillas y los paréntesis es recomendable. La ortografía y la gramática son complicadas al principio, hasta que se practican. Recomiendo alguna lectura como ésta de vez en cuando.
  • Usamos párrafos en el ejemplo de arriba y una lista con puntos en las «notas SEO». Cada texto tiene su formato más apropiado. Podríamos haber titulado a estas «notas SEO» como «los ocho trucos para posicionar tu página», y sería una lista numerada. Podría mostrarse como una infografía con iconos… pero ya no sería un post escrito en un blog de desarrollo, sino quizá un pin de Pinterest.
  • Es buena idea usar palabras y marcas reconocibles, una manera de llamar la atención «con suavidad». En el ejemplo podríamos haber mencionado Instagram, pero hemos elegido WhatsApp. En este punto tendríamos en cuenta sobre otros factores el visitante objetivo. No el que no es subjetivo (permítanme la broma), sino nuestro objetivo, el perfil del visitante que nos interesa.
  • Todos estaréis de acuerdo en que faltaría al menos una imagen con el texto, acorde con el tema del texto, que tendría que tener etiquetas alt (texto alternativo) y title (título de la imagen) en su tag HTML. Estas etiquetas se usarán para lo que sirven y nada más: no es recomendable a medio y largo plazo poner una imagen de una impresora con las etiquetas así: alt=»impresora barata» y también title=»comprar impresora». El tema del post es seguridad, la imagen del monitor con el candado tiene por etiquetas: alt=»navegar sin problemas en internet», y title=»seguridad en la red».
  • Se añaden enlaces para enriquecer el contenido, o porque hay que citar algo, o porque es lo que conviene al texto. Es posible que estemos interesados en posicionar las palabras clave que incluyamos en un enlace, hacia una página de contenido relacionado con el anchor text del enlace. En este caso sólo completamos el contenido y damos una salida a nuestros visitantes. Si no hubiera hipervínculos, nada de esto tendría sentido.
  • Hay muy pocas normas inalterables en esto del SEO de contenidos, pero sí que hay algunas cosas muy básicas que siempre hay que tener en cuenta en cualquier proyecto. En mi humilde opinión, destaco UNA NORMA BÁSICA por encima de las demás: el respeto a los estándares.