Pues eso... ¡Feliz Navidad y Próspero 2013!
Mi cuaderno de programación
Etiquetas
Acceso BD
Access
Algoritmo
Anonimato Online
Array
Array bidimensional
ArrayList
Base de datos
BookWorm
Bucle "do - while"
Bucle "for"
Bucle "while"
Búsqueda
Canvas
Clases
Clases abstractas
Cola
Colección de datos
Consola
Conversión de tipos
Curiosidades
Diseño Web
Eclipse
Exception
Extends
FCT
Flujo de datos
Formularios
Función
Gratis
Herencia
HTML
I/O
If - else
Implements
Interface
Iterator
J2EE
Java
javadoc
JavaScript
Layout
LinkedList
Manual
Matrices
Máximo Común Divisor
Microdatos
Mínimo Común Múltiplo
Nassi-Shneiderman
Ordenación
Pila
Programación
Puente JDBC-ODBC
Rich Snippets
Secuencia
Select... Case
Serialización
SQL Server
Swing
Switch
SyntaxHighlighter
Tor
Utilidades
VB.NET
Web
lunes, 24 de diciembre de 2012
viernes, 15 de junio de 2012
BookWorm
Ya me queda poco para tener finalizado mi proyecto de la asignatura Integración. En breve espero tener suficiente tiempo libre para ir publicando las partes más significativas del código aquí (aunque también subiré el proyecto entero a Bitbucket).
Mientras tanto, puedes verlo en el siguiente enlace: http://bookworm.phpfogapp.com/
¡Espero que te guste!
sábado, 12 de mayo de 2012
Manuales gratis para diseñadores web
¡Buenas! ¡Cuánto tiempo! La verdad es que ando sin un minuto libre últimamente, entre las prácticas (FCT) y el proyecto de fin de curso, no tengo tiempo ni de respirar últimamente... Y mucho menos de tener el blog al día, lo que me fastidia bastante, pero bueno, poco a poco espero ir terminando con las entradas sobre Visual Basic .NET para empezar a mostraros algo sobre mi proyecto. Al final lo estoy haciendo con PHP, utilizando diferentes plugins jQuery y demás, ya cuando empiece con las entradas del proyecto iré contando con más detalle. Además, tendré también que publicar algo sobre programación web con Java, que quedó pendiente... ¡Sigue aumentando mi lista de tareas!
Hoy os dejo un enlace muy interesante:
http://www.instantshift.com/2012/04/10/40-useful-free-online-books-for-web-designers/
Puedes encontrar en él varios manuales gratuitos para diseñadores web, hay de todo (HTML 5, tipografía, CSS, JavaScript...) y tienen muy buena pinta, así que no dudes en investigar un poco, que seguro que encuentras alguno útil.
¡Feliz fin de semana! Yo estaré pensando en la playa y trabajando en el proyecto... ¡Qué injusta es la vida! ;)
sábado, 21 de abril de 2012
Rich Snippets. Introducción y ejemplo
Los "rich snippets" (fragmentos enriquecidos) son líneas de texto que aparecen debajo de cada resultado de búsqueda. La forma más clara de verlo, es con un ejemplo. Buscamos, por ejemplo, una receta (arroz con leche) y algunos de los resultados que aparecen son estos:
Uno de los resultados, el que está rodeado, vemos que tiene una línea en la que aparece la valoración de la receta, el número de opiniones y la duración de la misma. Esto es un fragmento enriquecido.
Para obtener un fragmento enriquecido debemos seguir estos pasos:
- Elegir un formato de marcado:
- Microdatos
- Microformatos.
- RDFa.
- Marcar el contenido. Google ofrece fragmentos enriquecidos para estos tipos. Pero en schema.org, puedes encontrar muchos más y también son comprendidos por Google, entre otros buscadores.
- Probar el marcado. Google ofrece una herramienta para probar tus fragmentos enriquecidos. De esta manera te puedes asegurar de que Google puede leer los datos marcados.
(recomendado por Google). A mí me ha parecido el más sencillo, ya que sólo tienes que añadir algunos atributos a las etiquetas html (normalmente,
<span>
o <div>
).
Si después de haber marcado tu sitio web y haber esperado algunas semanas, los fragmentos enriquecidos siguen sin aparecer en el buscador, puedes visitar este enlace.
PRUEBA - Persona (contacto)
Voy a hacer una prueba para el tipo de dato "persona" que ofrece Google, que puede tener las siguientes propiedades:
- name (nombre).
- LISA MARIE SIMPSON
- nickname (apodo).
- LISA
- photo (foto).
- title (cargo de la persona).
- ESTUDIANTE
- role (función de la persona).
- url (enlace a una página web).
- affiliation (nombre de una organización a la que está afiliada la persona).
- ESCUELA PRIMARIA DE SPRINGFIELD
- friend (identifica una relación social entre la persona descrita y otra).
- MILHOUSE
- contact (identifica una relación social entre la persona descrita y otra).
- acquaintance (identifica una relación social entre la persona descrita y otra).
- address (dirección de la persona).
- street-address
- EVERGREEN TERRACE, 742
- locality
- SPRINGFIELD
- region
- postal-code
- country-name
- USA
<div itemscope itemtype="http://data-vocabulary.org/Person"> <img src="http://mickydenys.galeon.com/images/dibu4.gif" itemprop="photo" /> Soy <span itemprop="name">Lisa Marie Simpson</span>, pero todos me llaman <span itemprop="nickname">Lisa</span>. Esta es la web de mi familia: <a href="http://www.thesimpsons.com/" itemprop="url">LOS SIMPSON</a>. Vivo en la calle <span itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address"> <span itemprop="street-address">Evergreen Terrace, 742</span> en <span itemprop="locality">Springfield</span>, <span itemprop="country-name">USA</span> </span> y soy <span itemprop="title">estudiante</span> en la <span itemprop="affiliation">Escuela Primaria de Springfield</span> Mi amigo es: <a href="http://www.milhouse.com" rel="friend">Milhouse</a> </div>
En la primera línea encontramos los atributos "itemscope" e "itemtype", incluidos en el
Si nos fijamos en la descripción de la dirección, propiedad "address", vemos que se trata de otro elemento. Es decir, un elemento puede, a su vez, estar formado por otros elementos.
<div>
. "itemscope" indica que el contenido del <div>
describe un elemento y con "itemtype" definimos de qué tipo de elemento se trata, en este caso, una persona. En ese <div>
se describen las propiedades de la persona, para ello, a los elementos que contengan alguna de esas propiedades se les añade la etiqueta "itemprop", indicando la propiedad correspondiente, por ejemplo: <span itemprop="title">
.Si nos fijamos en la descripción de la dirección, propiedad "address", vemos que se trata de otro elemento. Es decir, un elemento puede, a su vez, estar formado por otros elementos.
RESULTADO DE LA PRUEBA DEL MARCADO
Podemos ver que en la tercera línea salen algunos de los datos que habíamos indicado y así es como se mostraría el resultado en un buscador. También cabe destacar que no se muestran todos los datos que hemos etiquetado, como por ejemplo la foto. Supongo que el buscador determina, en función del tipo que hayamos elegido y de las propiedades que le hayamos indicado, los datos que muestra.
viernes, 23 de marzo de 2012
Curiosidades - Canvas (HTML)
Hola,
2.- Elige el patrón o imagen que prefieras:
3.- Aparece a la izquierda la imagen elegida y a la derecha el código, que puedes modificar a tu gusto:
4.- Una vez realizadas las modificaciones deseadas, puedes exportar la imagen resultante:
Web del autor: http://elucidatedbinary.com/
hoy os dejo una entrada diferente. Un enlace a una página en la que puedes interactuar con un código y ver los efectos inmediatamente en una serie de imágenes que puedes elegir. Para ello se ha utilizado el elemento HTML Canvas, que permite la generación de gráficos dinámicamente.
1.- Accede a la web:
2.- Elige el patrón o imagen que prefieras:
3.- Aparece a la izquierda la imagen elegida y a la derecha el código, que puedes modificar a tu gusto:
4.- Una vez realizadas las modificaciones deseadas, puedes exportar la imagen resultante:
Web del autor: http://elucidatedbinary.com/
domingo, 11 de marzo de 2012
Ejercicios MCD y MCM
EJERCICIO 1 - Máximo Común Divisor
Realizar una aplicación que calcule el máximo común divisor de dos números introducidos por teclado.
EJERCICIO 2 - Mínimo Común Múltiplo
Realizar una aplicación que calcule el mínimo común múltiplo de dos números introducidos por teclado.
Realizar una aplicación que calcule el máximo común divisor de dos números introducidos por teclado.
Module Module1 Sub Main() Dim numero1, numero2, a As Integer Dim n1, n2 As Integer Console.Write("Número 1: ") numero1 = Console.ReadLine Console.Write("Número 2: ") numero2 = Console.ReadLine n1 = numero1 n2 = numero2 If (numero1 < numero2) Then a = numero2 numero2 = numero1 numero1 = a End If ' Algoritmo de Euclides While (numero1 Mod numero2 <> 0) a = numero1 numero1 = numero2 numero2 = a Mod numero2 End While Console.WriteLine("El MCD de " & n1 & " y " & n2 & " es: " & numero2) Console.ReadKey() End Sub End Module
EJERCICIO 2 - Mínimo Común Múltiplo
Realizar una aplicación que calcule el mínimo común múltiplo de dos números introducidos por teclado.
Module Module1 Sub Main() Dim numero1, numero2, mcm As Integer Console.Write("Número 1: ") numero1 = Console.ReadLine Console.Write("Número 2: ") numero2 = Console.ReadLine mcm = (numero1 / MCD(numero1, numero2)) * numero2 Console.WriteLine("El mcm de " & numero1 & " y " & numero2 & " es: " & mcm) Console.ReadKey() End Sub Function MCD(ByVal num1 As Integer, ByVal num2 As Integer) As Integer Dim a As Integer If (num1 < num2) Then a = num2 num2 = num1 num1 = a End If ' Algoritmo de Euclides While (num1 Mod num2 <> 0) a = num1 num1 = num2 num2 = a Mod num2 End While Return num2 End Function End Module
Ejercicios de búsqueda en tablas
EJERCICIO 1
Realizar una aplicación que contenga la función "Buscar", a la que se le pasará un array de números enteros y el elemento a buscar. Debe devolver un Boolean indicando si lo ha encontrado (true) o no (false).
Module Module1 Sub Main() Dim numeros() As Integer = {32, 5, 3, 2, 66, 2, 7, 45, 90} Dim num As Integer = 91 Dim encontrado As Boolean = Buscar(numeros, num) Console.WriteLine(encontrado) Console.ReadKey() End Sub Function Buscar(ByVal numeros() As Integer, ByVal num As Integer) As Boolean Dim encontrado As Boolean = False For Each n As Integer In numeros If (n = num) Then encontrado = True End If 'Si lo encuentra, sale del "for" If encontrado Then Exit For Next Return encontrado End Function End Module
EJERCICIO 2
Modificar la función anterior para que implemente el algoritmo de búsqueda dicotómica. En este caso se le pasará un array ordenado de menor a mayor.
Module Module1 Sub Main() Dim numeros() As Integer = {2, 2, 3, 5, 7, 32, 45, 66, 90} Dim num As Integer = 4 Dim encontrado As Boolean = Buscar(numeros, num) Console.WriteLine(encontrado) Console.ReadKey() End Sub Function Buscar(ByVal numeros() As Integer, ByVal num As Integer) As Boolean Dim izquierda As Integer = 0 Dim derecha As Integer = numeros.Length - 1 Dim centro As Integer While (izquierda <= derecha) centro = (izquierda + derecha) / 2 If (numeros(centro) = num) Then Return True End If If (numeros(centro) > num) Then derecha = centro - 1 ElseIf (numeros(centro) < num) Then izquierda = centro + 1 End If End While Return False End Function End Module
EJERCICIO 3
Modificar de nuevo la función para que en lugar de un Boolean indicando si ha encontrado o no el elemento buscado, devuelva un entero indicando la posición donde se encuentra dicho elemento. Si el array no contiene ese elemento, devolverá -1.
Module Module1 Sub Main() Dim numeros() As Integer = {2, 2, 3, 5, 7, 32, 45, 66, 90} Dim num As Integer = 90 Dim posicion As Integer = Buscar(numeros, num) If (posicion = -1) Then Console.WriteLine("No encontrado") Else Console.WriteLine("Encontrado en la posicion: " & posicion) End If Console.ReadKey() End Sub Function Buscar(ByVal numeros() As Integer, ByVal num As Integer) As Integer Dim izquierda As Integer = 0 Dim derecha As Integer = numeros.Length - 1 Dim centro As Integer While (izquierda <= derecha) centro = (izquierda + derecha) / 2 If (numeros(centro) = num) Then Return centro End If If (numeros(centro) > num) Then derecha = centro - 1 ElseIf (numeros(centro) < num) Then izquierda = centro + 1 End If End While Return -1 End Function End Module
Suscribirse a:
Entradas (Atom)