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:
Comentarios (Atom)





