miércoles, 17 de marzo de 2010

Wireframing, mockups, prototipos

En el proceso de desarrollo de una aplicación informática una parte muy importante es el diseño de la interfaz de usuario. Relacionado con este campo nos podemos encontar con conceptos como wireframing, mockups, prototipos, diagramas de contenido, etc.. Más o menos todos van a parar a lo mismo. Se trata de herramientas de comunicación usadas entre clientes y desarrolladores para establecer la interfaz de usuario.

Muchos ejemplos de mockups los podemos encontrar en Mockupstogo, todos ellos realizados con la aplicación comercial llamada Balsamiq Mockups. Hay muchas aplicaciones de este tipo pero casi todas ellas son de pago, como por ejemplo Axure. También existen herramientas on-line como MockFlow. Como otras alternativas menos específicas tenemos a Microsoft Visio, Power Point o una hoja de papel de toda la vida..


Buscando por la nube he logrado encontrar una alternativa gratuita que la verdad está bastante bien. Se trata de Evolus Pencil. Os muestro un pequeño prototipo de prueba que he hecho (no son tan graciosos como los producidos con Balsamiq, que simulan estar hechos a mano alzada, pero es gratis!)

lunes, 15 de marzo de 2010

Llamar a R desde VB.NET

Hoy vamos a ver como usar la potencia del paquete matemático R desde una aplicación .NET.
Lo primero es explicar qué es R. Se trata de un lenguaje y entorno de programación de análisis estadístico (series temporales, econometría, cálculo numérico, etc..) . Además, se trata de un proyecto libre, lo que lo hace aún más goloso.
Para usar R desde código de una aplicación .NET lo primero que tenemos que hacer es instalar R y un conector, para que se pueda comunicar con la aplicación externa. Lo podemos descargar desde aqui. Así, necesitaremos descargar e instalar:

Pasamos ahora a implementar un pequeño programa que genere un vector R aleatorio y lo represente usando la librería ZedGraph. Antes necesitaremos refenciar las siguientes tres DLLs que podemos obtener a través de estos enlaces:

Finalmente, este es el código que hace lo que antes hemos comentado:




Imports STATCONNECTORCLNTLib
Imports StatConnectorCommonLib
Imports STATCONNECTORSRVLib
Imports ZedGraph

Public Class Form1

Dim sc1 As StatConnector = New STATCONNECTORSRVLib.StatConnectorClass()

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sc1.Init("R")
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim o1 As Object
Dim n As Integer = 20

sc1.SetSymbol("n1", n)
sc1.Evaluate("x1<-rnorm(n1)")
o1 = sc1.GetSymbol("x1")

Dim serie_x, serie_y As Hashtable
Dim index As Integer
serie_x = New Hashtable
serie_y = New Hashtable
For index = 0 To UBound(o1)
serie_x(index) = index
serie_y(index) = CDbl(o1(index))
Next

crearGrafica(GRAFICA, "TEST R", "X", "Y")
addCurva(GRAFICA, "Serie", Color.Blue, 2, SymbolType.None, serie_x, serie_y)

End Sub



'Dibuja una grafica usando un control ZedGraph
Sub crearGrafica(ByVal nombreControl As ZedGraph.ZedGraphControl, _
ByVal titulo As String, _
ByVal nombre_eje_x As String, _
ByVal nombre_eje_y As String)
Dim area As RectangleF
area = nombreControl.GraphPane.Rect
nombreControl.GraphPane = New GraphPane(area, titulo, nombre_eje_x, nombre_eje_y)
nombreControl.AxisChange()
nombreControl.Refresh()
End Sub


'Añade una curva
Sub addCurva(ByVal nombreControl As ZedGraph.ZedGraphControl, _
ByVal nombre As String, _
ByVal color As Color, _
ByVal anchura As Integer, _
ByVal simbolo As SymbolType, _
ByVal serie_x As Hashtable, _
ByVal serie_y As Hashtable)

Dim i As Integer
Dim puntos = New PointPairList()
Dim puntos_tendencia = New PointPairList()

For i = 0 To serie_x.Count - 1
puntos.add(serie_x(i), serie_y(i))
Next

Dim curva As LineItem = nombreControl.GraphPane.AddCurve(nombre, puntos, color, simbolo)
curva.Line.Width = anchura
curva.Line.Style = Drawing2D.DashStyle.Solid
nombreControl.AxisChange()
nombreControl.Refresh()

End Sub


End Class

sábado, 13 de marzo de 2010

¿Qué busca la gente en Internet?

Buscar en internet hoy por hoy es igual a decir buscar con Google. Habremos notado que recientemente el megabuscador ha mejorado su herramienta de búsqueda predictiva. Ahora a medida que escribes lo que quieres buscar te va indicando que es lo que más se ajusta a lo que busca la gente. Nos encontramos así ante un nuevo modo de posicionamiento en internet (qué bien estaría que al introducir la C apareciera en la lista de sugerencias "cuadernodebits", no?)
Por contra ahora no indica cuantas entradas hay relacionadas con la búsquedas que sugiere. He probado a ver letra por letra que es lo que más busca la gente, suponiendo que las tres primeras sugerencias son las más buscadas. He aqui el resultado:


Conclusión: la gente se equivoca mucho al escribir Tuenti, ¿no?

jueves, 11 de marzo de 2010

Enviar correos con VB.NET

En la anotación de hoy vamos a ver como enviar un correo desde una aplicación VB.NET. Para ello necesitaremos una cuenta en Gmail ya que la aplicación accederá a ella para enviar el correo. El código de un sencillo programa sería el siguiente:




Imports System
Imports System.Collections
Imports System.Net
Imports System.Net.Mail
Imports System.Net.Mime

Public Class Module1
Public Shared Sub Main()

'--------------------------------------------------
'Configuración del mensaje
'--------------------------------------------------
Dim msg As New System.Net.Mail.MailMessage()
msg.From = New MailAddress("origen@gmail.com", "Remitente", System.Text.Encoding.UTF8)
msg.[To].Add("destino@gmail.com")
msg.Subject = "Prueba"
msg.SubjectEncoding = System.Text.Encoding.UTF8
msg.Body = "¡Hola mundo!"
msg.BodyEncoding = System.Text.Encoding.UTF8
msg.IsBodyHtml = False

'--------------------------------------------------
'Configuración del cliente SMTP
'--------------------------------------------------
Dim client As New SmtpClient()
client.Credentials = New System.Net.NetworkCredential("origen@gmail.com", "contraseña")
client.Port = 587
client.Host = "smtp.gmail.com"
client.EnableSsl = True

Try
client.Send(msg)
Catch ex As System.Net.Mail.SmtpException
Console.WriteLine(ex.Message)
Console.ReadLine()
End Try
End Sub
End Class

lunes, 8 de marzo de 2010

¡Esperen un minuto: aún no han oído nada!

Anoche fue la entrega de los Oscars, los premios más codiciados de la industria cinematográfica. Al hilo de esto me he preguntado, ¿cuál fue la primera película sonora de la historia? ¿Y la primera en color?
He estado investigando sobre el tema y he aqui las respuestas que he encontrado:
La primera película sonora de la historia fue una llamada "The Jazz Singer", estrenada el 6 de Octubre de 1927. No era totalmente sonora aunque en algunos fragmentos ya se dejaba escuchar algo, como canciones y algunas frases sueltas. La primera fue "¡Esperen un minuto: aún no han oído nada!".




La primera película en "color" fue proyectada algunos años antes. Fue en Londres en 1909 usándose una técnica llamada Kinemacolor inventada por George Albert Smith. Esta técnica consistía en intercalar entre cada fotograma un filtro rojo o verde. Algo así como: Fotograma 1 B/N con Filtro Verde, Fotograma 2 B/N con Filtro Rojo, Fotograma 3 B/N con Filtro Verde, y así sucesivamente. El efecto era como el que vemos en el siguiente video.




Y hasta aqui mis investigaciones por hoy. En próximas anotaciones seguiremos viendo más curiosidades de la historia del cine.
Fuentes:

domingo, 7 de marzo de 2010

Lectura de archivos PDF con VB.NET

Estos días he estado peleándome con el siguiente problema: leer y procesar información de un archivo PDF. Es decir, extraer de un PDF el texto y luego insertarlo en una base de datos. Para ello estuve buscando por la internet y encontré una magnífica librería llamada PDFBox. Esta incluye una gran cantidad de clases para trabajar con PDFs.

De entre todas las DLLs que la librería incluye necesitaremos referenciar los siguientes en nuestro proyecto .NET:
  • FontBox-0.1.0-dev.dll
  • IKVM.GNU.Classpath.dll
  • IKVM.Runtime.dll
  • PDFBox-0.7.3.dll

El código para pasar el contenido de un PDF a un string sería el siguiente:




Imports org.pdfbox.util
Imports org.pdfbox.pdmodel
Imports System.TypeInitializationException
...

Dim documento As PDDocument
Dim stripper As PDFTextStripper
Dim texto As String

Try
documento = PDDocument.load("C:\informe.pdf")
stripper = New PDFTextStripper()
texto = stripper.getText(documento)
Catch ex As TypeInitializationException
Finally
End Try

martes, 2 de marzo de 2010

Casas con joroba

En el sur de los Estados Unidos, como por ejemplo en Nueva Orleans, las casas típicas estan construidas siguiendo un peculiar estilo arquitectónico. Son las llamadas "camelback houses" o "casas con joroba".
Imagen: commons.wikimedia.org
A primera vista no parecen muy prácticas, pero sin embargo son muy habituales por esa zona. ¿A qué es debida esta "inutil" moda?
Resulta que fue una manera de evitar impuestos. A finales del siglo XIX existía un gravamen según la cantidad de plantas que tenía una casa en su fachada. Asi que nada... hacemos las casas con solo una planta... en la fachada. Si es que picaresca ha habido siempre y en todos sitios!
Fuentes:

lunes, 1 de marzo de 2010

El poder de la escasez

Imaginemos una isla llamada Catán con muchas parcelas listas para ser cultivadas de varios tipos según su calidad: buenas, regulares y malas.
Un día llegó un colono llamado Rodrigo. Pretendía cultivar en una de esas parcelas tanto trigo como puediera para así poder prosperar en su nuevo hogar. Todas las parcelas estaban libres por lo que obviamente se fijó en las de buena calidad.
Los propietarios de estas buenas tierras compitieron entre si para que el nuevo habitante ocupara la suya. Cada uno le pedía una simbólica cantidad de dinero hasta que finalmente Rodrigo optó por la más barata, lógicamente.
A los pocos días llegaron más colonos y poco a poco se fueron ocupando el resto de buenas tierras, todas por un módico precio de alquiler.
Al poco tiempo llegó otro nuevo colono llamado Ernesto. Ya estaban todas las buenas tierras ocupadas e irse a una de calidad regular no le interesaba... Para intentar optar a una de buena calidad le dijo a su propietario: "Te doy una importante suma de dinero si echas a tu inquilino y me la dejas gratis". Rodrigo se enteró de las malas intenciones de Ernesto y le ofreció a su propietario más dinero a cambio de que no le echara.

Ajá! Esto dará pie al propietario en cuestión a subirle el alquiler (su inquilino le acaba de decir que está dispuesto a pagarle más con la condición de que no le eche!). Entonces decide subirle, ¿pero cuanto?. Supongamos que las buenas tierras generan 5 costales de trigo por temporada y las de inferior calidad 3. Por lo tanto le subirá el valor de 2 costales. De esta manera los agricultores de las tierras buenas y regulares obtendrán los mismos beneficios y así ya no tiene que echar al pobre Rodrigo! (ni que decir tiene que el resto de propietarios actuarán de igual modo, sibiendo sus alquileres).

Siguen llegando más y más colonos y las tierras regulares se irán ocupando por unos alquileres muy bajos (como ocurría al prinipio con las buenas tierras). Cuando no queden y llegue un colono más ocurrirá lo mismo. Los propietarios de las buenas y regulares tierras tendrán que subir el alquiler y las de mala calidad pasarán a ser las tierras marginales.

En este pequeño relato vemos el poder que tiene la escasez: al principio, cuando hay muchas parcelas libres el que manda es el colono ya que decide cual ocupar; después, cuando hay muchos colonos el que manda es el propietario, teniendo el poder de subir el alquiler.

Fuentes:

domingo, 28 de febrero de 2010

Simulador de Sistema Solar

My Solar System es un simulador de interacciones gravitatorias entre cuerpos celestes desarrollado por la Universidad de Colorado. La aplicación tiene varios sistemas preconfigurados como "Sol y planeta", "Sol, planeta y luna", "Sol, planeta y cometa", etc...

Antes de iniciar la simulación el usuario puede cambiar la dirección e intensidad de los vectores que marcarán la trayectoria de cada cuerpo. Tened cuidado y no los estrelleis!


Nueva York como si fuera de juguete

Es la sensación que me da al ver el siguiente video (sobretodo las escenas de la obras con las escavadoras). Está grabada con la técnica llamada tilt-shift que ya vimos hace unos días.

viernes, 26 de febrero de 2010

Qué llega la ciclogénesis explosiva

Según las predicciones meteorológicas mañana sufriremos la sacudida de una ciclogénesis explosiva o dicho en lenguaje más llano, de una "borrasca que evoluciona muy rápido haciéndose cada vez más profunda". Vamos a ver en qué consiste este fenómeno.

Etimológicamente significa creación de un ciclón. Dentro del concepto genérico ciclón entrarían muchos fenómenos como los huracanes, los tifones, las borrascas, etc.. todos ellos sistemas de bajas presiones. El término explosivo indica que se crea muy rápidamente, lo que hace que sea una borrasca intensa y violenta. Es importante aclarar que por nuestra latitud se tratará de una borrasca, no de un tifón ni huracán. Se forma por la interacción de una borrasca de niveles bajos y otra más distante de niveles altos, bajo unas condiciones muy particulares.

Pese a que es un fenómeno raro para nuestra latitud no será la primera vez que ocurra. De hecho ya sufrimos una en el mes de Enero del pasado año 2009.

Viendo la previsión para mañana podemos ver lo rápido que se forma y se intensifica desde el archipiélago de las Canarias. Va subiendo hacia la península y cada vez se va haciendo más profunda, lo cual se traduce en mucho viento. Así que mañana mucho cuidado y precaución.




Fuentes:

jueves, 25 de febrero de 2010

Cómo simular miniaturas

Existe una técnica fotográfica llamada "Tilt-shift photography", consistente en cambiar la inclinación de la lente, mediante la cual se consigue un efecto muy curioso. Al aplicarlo sobre paisajes o espacios abiertos da la sensación de haber fotografíado una miniatura.

Aqui podemos ver una galería de fotografías aplicando esta técnica.


Afortunadamente para los que nos somos expertos fotógrafos existen tecnicas de diseño gráfico para simular este efecto. Pero si tampoco se nos da bien el Photoshop, podemos recurrir a http://tiltshiftmaker.com/ Basta con subir una fotografía y aplicarle el efecto. Aqui va una prueba:


Avances en realidad aumentada

Cuando miramos a través de un dispositivo de realidad aumentada, vemos los objetos del mundo real y además objetos virtuales. Los objetos virtuales que se superponen a los reales pueden proporcionar información sobre estos: de que objeto real se trata, indicación de hacia dónde hay que ir para encontrar un objeto real especificado, etc.. y así infinidad de cosas más. Es algo así como la visión que tenía Terminator..
Google (como no) ha desarrollado una aplicación para dispositivos con Android llamada Google Goggles. Permite obtener información de objetos reales. Basta con echar una foto y el sistema lo reconocerá y devolverá al usuario información asociada. Con el siguiente video se entiende muy bien el funcionamiento.





Otro ejemplo donde podemos experimentar realidad aumentada es con el juego de PSP llamado Invizimals. En él buscamos y capturamos pequeñas criaturas que pueden estar por los rincones más insospechados del mundo real. El juego requiere de una cámara acoplada a la videoconsola y de unas cartas que sirven de referencia para poder interactuar con los animalitos.
Lo último que he visto sobre este tema es otra aplicación para Android que además usa reconocimiento facial e internet. Con esta aplicación es posible obtener información de una persona (e-mail, teléfono, facebook, twitter, etc..) con solo echarle una foto. Claro, que la persona objetivo deber tener también la aplicación y haber vinculado a su cara la información que él quiera. En este caso el concepto, más que realidad aumentada sería identidad aumentada.


martes, 23 de febrero de 2010

¡Qué rápido se pasa el tiempo!

El título de esta anotación lo solemos repetir más a menudo según nos vamos haciendo mayores. Cada vez nos parece que los años pasan más rápido.. ¡parece que fue ayer cuando estabamos comiéndonos las uvas y ya estamos casi en Marzo!


Esto realmente tiene su explicación, y es que a medida que envejecemos la pila del reloj de nuestro cerebro se va agotando y esto hace que se ralentice. En el siguiente experimento se pudo comprobar este hecho. A tres personas, una de 20, otra de 50 y otra de 70 años se le dijo que midieran mentalmente 3 minutos. Para ello cuenta cada uno con un pulsador para parar su cronómetro. El de 20 años lo para justo a tiempo; el de 50 tarda 20 segundos más; y el de 70 casi cuando se cumplían casi 4 minutos.

Esto se debe a un neurotransmisor llamado dopamina. La cantidad de dopamina hace que se tenga una percepción del tiempo transcurrido diferente. Si se incrementa esta sustancia el reloj interno del cerebro irá más rápido; si se decrementa irá más lento. Esto significa que a medida que envejecemos el nivel de dopamina es menor y por lo tanto nos parece que el tiempo transcurre más rápido (la persona de 70 años creía que habían pasado 3 minutos y realmente habían pasado 4!)


¿Se podría entrenar el cerebro para cambiar la percepción del paso del tiempo? Es decir, conseguir que el rejol cerebral vaya más deprisa o más lento que el reloj real. Esto dice haberlo conseguido Mike Hall, un deportista que dice haber aprendido a acelerar su reloj cerebral. Es decir, a tener la percepción de que transcurre el tiempo más lentamente. Mike practica el squash y gracias a esta virtud dice haberse convertido en un mejor jugador: puede ver como rebota la pelota más lentamente y golpearla más facilmente.
Esto me recuerda a la escena de Matrix en que Neo esquiva la bala...




Fuente: 1, 2

lunes, 22 de febrero de 2010

Google comercializará energía

Vía libre a Google para ejercer de agente comprador y vendedor de energía en el mercado eléctrico estadounidense.
Todo viene a raíz de que Google es un gran consumidor debido a sus grandes servidores, hasta tal punto que hace poco instalaron una planta solar en sus oficinas para obtener la energía que necesitaban. Al parecer, ahora también la usarán para comerciar energía en el mercado, aunque en principio su objetivo será solo comprar la energía de más que necesiten.
Por otro lado y al hilo de este tema energético de Google, han desarrollado una herramienta llamada Power Meter para controlar la energía eléctrica que gasta el consumidor. Se trata de un sistema parecido a uno que vimos hace algunas anotaciones, pero en esta vez la información se envía a Google para su posterior visualización y gestión desde la web.
En fin.. hasta dónde llegará Google?

jueves, 18 de febrero de 2010

Curiosas formas de generar energía

Vía Microsiervos he leido sobre la existencia de un ratón inalámbrico que funciona a partir de la electricidad que genera por el movimiento natural de usarlo.

Esta curiosa forma de obtener energía, en este caso para consumo del propio generador, me ha recordado un proyecto que hubo en Japón en el que se generaba energía a partir de las pisadas de la gente al pasar por los tornos.





Otra curiosa y parecida forma de generación de energía es utilizando la pista de baile de una discoteca. En este caso también las pisadas y saltos de la gente al bailar pueden generar energía para por ejemplo alimentar la iluminación de la sala.

miércoles, 17 de febrero de 2010

Hola Android!

Hace unas anotaciones apunté una manera de obtener un emulador standalone de Android, el sistema operativo móvil de Google.

Hoy damos un paso más y vemos como instalar todo lo necesario para desarrollar aplicaciones. Lo primero que necesitamos es tener instalado Java en nuestro PC (las aplicaciones que desarrollaremos serán Java).


Seguidamente es necesario instalar la IDE Eclipse. Se puede descargar gratuitamente desde la siguiente dirección: http://www.eclipse.org/downloads/ Para este caso nos valdría la versión "Java Developers".


Una vez descargada y descomprimido el paquete lo ejecutamos.

El siguiente paso es instalar el pluggin de Android para Eclipse. Lo hacemos desde Help->Install new software usando la URL https://dl-ssl.google.com/android/eclipse/


Por otra parte descargamos el SDK de Android y le indicamos la ruta a Eclipse desde Windows->Preferences->Android. Otra opción es desde Windows->Android SDK and AVD Manager. Con esto bajaríamos e instalaríamos el SDK.


Ya estaría casi todo preparado. Tan solo faltaría configurar el emulador (Virtual Devices) también desde la opción Android SDK and AVD Manager.



Por último vemos el código de la típica aplicación Hola Mundo:



package com.HelloWorld.com;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
TextView tv = new TextView(this);
tv.setText("Hola Mundo");
setContentView(tv);
}
}

martes, 16 de febrero de 2010

En busca del placer

Los seres humanos nos pasamos la vida buscando el placer y huyendo del dolor. Sin dolor no nos importaría morir, y sin placer no nos importaría vivir. El placer hace que segreguemos unas hormonas llamadas endorfinas, también llamadas de la felicidad.



Cuando el cerebro las segrega hace que nos sintamos bien y que nos alejemos del dolor. Determinadas actividades placenteras, como por ejemplo leer, comer, escuchar música, hacer deporte, hacer el amor, etc.. hacen que aumente nuestro nivel de endorfinas. Por ejemplo ante una dolencia física una actividad de dicho tipo puede hacer que momentaneamente nos sintamos mejor, ya que la segregación de endorfinas anulará en parte la sensación de dolor.

Hay un ejemplo en "El Cerebro del Rey" que me ha llamado la atención. Como ya he comentado, la práctica del sexo es una de entre las muchas actividades placenteras que nos proporcionan endorfinas. Es más, popularmente placer se asocia única y exclusivamente a la práctica de esta actividad. Supongamos una pareja practicando sexo en el campo. Una vez finalizan, al relajarse bajará su nivel de endorfinas y empezarán a notar las incomodidades del campo: piedras, roces, hormigas, etc.. En definitiva la bajada de sus niveles de endorfinas hará que se acerquen al dolor.


lunes, 15 de febrero de 2010

Dos curiosidades sobre Darwin

Este fin de semana visité el Museo de Ciencias de Valladolid. Entre las muestras que había expuestas se encontraba una dedicada a la Teoría de la Evolución y a Darwin.

Me llamaron la etención dos curiosidades que desconocía: una tiene como protagonista a la etiqueta del Anisado Refinado de Vicente Bosch, conocido popularmente como Anís del Mono. Si nos fijamos vemos que la cara del mono tiene cierto parecido con Darwin. El lanzamiento al mercado del anís coincidió con la formulación de la Teoría de la Evolución de Darwin. No se tiene muy claro si los diseñadores pretendieron ridiculizar la idea de que el "hombre venía del mono" o por contra, aprovecharla para vender el anís como el mejor y más evolucionado. La etiqueta dice: "Es el mejor. La ciencia lo dijo y yo no miento"




Otra curiosidad que me llamó la atención fue el hecho de que la palabra Evolución no aparece en "El Origen de las Especies" hasta en la última página. Es más, se trata de la última palabra!

jueves, 11 de febrero de 2010

Emulador de Android sin SDK de Google

Buscando acerca de emuladores de Android con el objetivo de ir poco a poco aprendiendo a programar aplicaciones (ya os contaré!), me he topado con un emulador standalone para Windows que no requiere de la SDK de Google. Se puede descargar desde el siguiente enlace.

Para hacerlo funcionar es necesario descomprir el fichero .rar en el raiz (en D: por ejemplo) y renombrar la carpeta de "Android_Emulator_1.5_by_Xda2_Haseeb" a "Android-Emulator".
El siguiente paso será instalar una aplicación en el emulador...

Automatizando procesos con SetCronJob

Siguiendo el hilo de la anotación anterior, otra alternativa para la ejecución periódica de script PHP es utilizar la web SetCronJob. Una vez completado el registro gratuito podemos configurar tantas tareas programadas como queramos, añadiendo la URL correspondiente que queramos invocar y la periocidad asociada.

miércoles, 10 de febrero de 2010

Automatizando procesos con 000webhost.com

Para el que no lo conozca 000webhost.com es un hosting gratuito con soporte para PHP y MySQL, con una amplia cuenta para almacenar 1500 MB y soportar un tráfico de 100GB. Llevo ya un buen tiempo usándolo y nunca me ha dado problemas. Lo recomiendo.


http://www.000webhost.com/



Entre las numerosos servicios que que pone a disposición del usuario en el panel de control, existe el llamado Cron Jobs. Con él es posible lanzar scripts PHP de manera automática, configurando la periodicidad de su ejecución.

Por ejemplo, con el siguiente ejemplo ejecutaríamos un script llamado cron.php cada 5 minutos pasadas las 20 horas todos los días.


En este caso el script enviaría unicamente un email.



  
$para = "mi_email@gmail.com";
$asunto = "TEST CRON";
$cuerpo = "-";
mail($para, $asunto, $cuerpo)

Arritmias explicadas de forma sencilla

Una arritmia cardíaca es cualquier irregularidad en el ritmo cardíaco por diversos motivos: porque se acelere, se ralentice, se torne irregular, etc.. Esto se observa viendo los electrocardiogramas o representaciones gráficas de la onda eléctrica que genera el corazón. En el siguiente vemos el correspondiente a un ritmo normal.


Fuente: www.nottingham.ac.uk


Identificar los diversos tipos de arritmias es complejo, requiere mucha experiencia. El siguiente video nos explica de una manera muy gráfica, a modo de baile, algunas de las arritmias más comunes. Al final incluso, el profesor escenifica una ineficaz desfibrilación.



Las arritmias que explica el video son los siguientes:
  • Normal sinus rhythm
  • PAC's: Conducted and non-conducted
  • Isolated PVC's
  • First Degree AV Block
  • 4:3 wenckebach second degree av block
  • Right bundle branch block
  • Left bundle branch block
  • Left anterior hemiblock
  • Atrial flutter whit 3:1 conduction
  • Atrial fibrillation (totally uncontroladed)
  • PVC->Ventricular taquicardia->flutter->fibrillation->defibrillation
  • Unsucessful defibrilation
El lector puede buscar los electrocardiogramas en el siguiente enlace de ECG Learning Center y así comparar la escenificación del profesor con la onda correspondiente.

martes, 9 de febrero de 2010

Base de datos meteorológica

En la siguiente página que hoy os muestro se puede encontrar una amplia base de datos de valores meteorológicos: temperatura, viento, etc..




Por ejemplo, el histórico de Madrid lo podemos encontrar aqui. Otro aspecto interesante es la posibilidad de exportar la información en formato CSV. Para Madrid, la información en formato CSV para el día 30/06/2009 vendría en:

domingo, 7 de febrero de 2010

Entrelazamiento cuántico

Uno de los fenómenos más sorprendentes de la mecánica cuántica es el denominado entrelazamiento. En el mundo macroscópico este fenómeno, tal como lo entiendo yo, sería parecido a lo siguiente:
Como sabemos, cuando tiramos una modena esta puede caer de cara o de cruz. Es decir, puede tener uno de dos estados posibles. Supongamos ahora que tenemos un hucha y dentro dos monedas. En un mundo clásico cada moneda tendría un estado (de cara o de cruz), pero un mundo cuántico cada moneda tendría los dos estados a la vez. No elegiría su estado hasta que no fuera observada. En ese momento tomaría un estado (por ejemplo, CARA) y la otra, la no observada, se daría cuenta misteriosamente de que a su compañera la han visto y tomaría el estado contrario, CRUZ.
Pero esto no acaba aqui. Supongamos ahora que podemos sacar las monedas de la hucha sin mirarlas. Yo cojo una y mi compañero coge otra. Ahora nos vamos cada uno a dos puntos distantes. Yo me voy a París con mi moneda y mi compañero se va a Sidney con la suya. Ninguno de los dos las hemos visto aún, no sabemos en que estado estarán cuando las miremos. En esto que mi compañero abre la mano y ve que la suya está en CARA. Increiblemente y de manera instantánea mi moneda elegirá el estado CRUZ! Es como si se hubieran comunicado y además más rápido que la luz! Y lo mejor de todo es que esto también hubiera ocurrido si mi compañero se hubiera ido a la galaxia de Andrómeda..




Sin duda, este quizá sea uno de los fenómenos más extraños y misteriosos de la mecánica cuántica.
Por si quereis verlo más a fondo, dejo los siguientes enlaces:

viernes, 5 de febrero de 2010

Simulador de Control Eléctrico

Red Eléctrica Española es el operador del sistema eléctrico español, con lo que cuenta con un centro de control (CECOEL). Desde aqui controlan de forma permanente el estado de la red y sus parámetros eléctricos, para satisfacer la demanda, resolver los distintos problemas que puedan ir surgiendo, etc.. en definitiva, para garantizar el servicio de suministro eléctrico dentro de los márgenes de seguridad.


Fuente imagen: REE





La página web de REE cuenta con un juego educativo en el que el jugador simula estar al mando del CECOEL. Para ello tiene que ir ordenando que suba o bajen energía las plantas según la demanda (es decir, modificando el programa), solucionar incidencias (líneas que se caen, etc..). El jugador pierde en el momento en que se produce un apagón en la ciudad. Un juego muy divertido para el que le guste este mundillo de la electricidad.


Fuente: 1

jueves, 4 de febrero de 2010

Stephen Wiltshire: dibujando de memoria

Quiero dedicar esta entrada a Stephen Wiltshire, un Londinense con una habilidad sorprendente. Es capaz de dibujar una panorámica con tan solo haberla visto una vez. Y además, con todo lujo de detalles.

Se le diagnosticó autismo a la edad de tres años. A los cinco años empezó a interesarse por el dibujo y fue esta su vía de comunicación. También se le ha diagnosticado el síndrome del sabio. Dicha patología no está reconocida medicamente, pero se diagnostica a personas con autismo que poseen unas habilidades mentales específicas. En el caso de Stephen, la memoria.

El siguiente video muestra un experimento en el que Stephen dibuja con todo lujo de detalles una panorámica de Roma. Para ello tan solo la estuvo observando poco más de cuarenta y cinco minutos desde un helicóptero. El nivel de detalle del dibujo que posteriormente realizó es espectacular.


Creación de PDF desde VB.NET

La librería itextsharp nos proporciona un camino fácil y gratuito para generar documentos PDFs desde una aplicación .NET Además, cuenta con muchísimas opciones y configuraciones.
Vemos a continuación un pequeño ejemplo de uso en el que creamos una tabla y colocamos una imagen a modo de logotipo.



Dim documento As iTextSharp.text.Document
Dim escritor As iTextSharp.text.pdf.PdfWriter
Dim tabla As iTextSharp.text.Table
Dim texto As iTextSharp.text.Phrase
Dim celda As iTextSharp.text.Cell
Dim imagen As iTextSharp.text.Image
Dim f, c As Integer

documento = New iTextSharp.text.Document(iTextSharp.text.PageSize.A4.Rotate, 50, 50, 50, 50)
escritor = iTextSharp.text.pdf.PdfWriter.GetInstance(documento, New FileStream("test.pdf", FileMode.Create))
tabla = New iTextSharp.text.Table(14, 25)


imagen = iTextSharp.text.Image.GetInstance(System.AppDomain.CurrentDomain.BaseDirectory & "\logo.png")
imagen.SetAbsolutePosition(100, documento.PageSize.Height - 100)
imagen.ScalePercent(30)

For f = 0 To 24
For c = 0 To 13
texto = New iTextSharp.text.Phrase("(" & f & "," & c & ")")
celda = New iTextSharp.text.Cell(texto)
tabla.AddCell(celda, f, c)
Next
Next


documento.Open()
documento.Add(imagen)
documento.Add(tabla)
documento.Close()

martes, 2 de febrero de 2010

Paseando entre el Guernica de Picasso

Quizá la pintura que más me ha llamado la atención desde siempre haya sido el Guernica del genial Pablo Picasso. Enorme lienzo de más de 21 metros cuadrados que tiene como temática la guerra civil española.
Lena Gieseke, una artista de Nueva York experta en infografía nos propone una nueva visión de esta obra universal. Ha recreado la pintura en 3D, consiguiendo de esta manera apreciar todos los detalles del cuadro.
Una nueva y espectacular forma de ver la gran obra de Picasso, el Guernica.


lunes, 1 de febrero de 2010

Posición en tiempo real de los satélites artificiales

Como sabemos alrededor de la Tierra tenemos multitud de satélites orbitando, cada uno prestando un determinado servicio, y muchos otros ya difuntos... En definitiva, tenemos una nube de 13.000 satélites ahí arriba.


Gracias a la aplicación Google Earth y a este fichero KMZ ,que periódicamente lo van actualizando con la posición de los satélites, podemos hacernos una idea del enjambre de satélites que tenemos sobre nuestras cabezas.


Lo podemos ver en el siguiente video:






También, gracias a la siguiente infografía podemos ver en una sola imagen esta información.



Vía: ALT1040

sábado, 30 de enero de 2010

De dónde viene la electricidad

La energía que diariamente demandamos proviene de muy distintas fuentes, las cuales generan electricidad y la vuelcan a la red. Básicamente la energía eléctrica se genera a partir de calor, de la fuerza del agua, del viento y de la radiación solar. Así, existen varios tipos de plantas de generación:
  • Parques eólicos: Molinos que transforman la fuerza del viento en electricidad.
  • Termosolares: Transforman el calor del sol en electricidad.
  • Fotovoltaica: Transforman la luz solar en electricidad.
  • Cogeneración: Generan electricidad a partir del calor residual producido en un proceso industrial.
  • Térmica: Transforma el calor producido al quemar combustibles fósiles (gas, carbón y petroleo)
  • Nucleares: Transforman el calor producido en la fisión de los núcleos de uranio.
  • Hidroeléctricas: Transforman la fuerza del agua producida al verterla desde una altura.

En la siguiente infografía podemos ver una explicación muy amena y didactica de dónde viene la electricidad que consumimos.

jueves, 28 de enero de 2010

Alternativa a programas conocidos

En muchas ocasiones buscamos alternativas libres a programas comerciales conocidos. En la página que a continuación os muestro es posible encontrarlas.

La página cuenta con un buscador y una serie de pestañas para filtrar la búsqueda por sistema operativo. Una vez localizado el programa, muestra un listado con similares alternativos. Para cada uno, la gente deja su opinión. Por ejemplo, como alternativas a Internet Explorer sugiere: Firefox (con 637 personas a las que les gusta), Google Chrome (con 326), Opera (con 201), Safari (con 100), Flock (con 23), etc...

Buena página que en algún momento nos servirá de ayuda.

Vía: PuntoGeek

Montando un servicio web con NuSOAP

En la entrada de hoy vamos a ver como montar un sencillo servicio web en un servidor web basado en PHP+MySQL.

En primer lugar necesitaremos un servidor con dichas características. Hay multitud de opciones de hosting, tanto gratuitas como de pago. Elegimos una gratuita, concretamente http://www.000webhost.com/ Llevo utilizando este servicio gratuito durante algún tiempo y la verdad es que no me ha dado nunca ningún problema.

El servicio web que vamos a montar utiliza una librería de PHP llamada nuSOAP. Puede ser descargada libremente desde http://sourceforge.net/projects/nusoap/

La estructura de ficheros que subiremos al servidor será la siguiente:

servicioweb.php
nusuaop/Todo el contenido de la librería descargada

Veamos finalmente el contenido del fichero servicioweb.php





configureWSDL('servicename', 'urn:servicename','','document');

//********************************************************************************
//Registramos la función
//********************************************************************************
myRegister($server,'saludar',
array(
'in' => array(
'nombre' => 'xsd:string'
),
'out' => array(
'resultado' => 'xsd:string'
)
));

if (!isset($HTTP_RAW_POST_DATA)) $HTTP_RAW_POST_DATA = implode("\r\n", file('php://input'));
$server->service($HTTP_RAW_POST_DATA);

function myRegister(&$server,$methodname,$params)
{
$server->register($methodname,$params["in"],$params["out"],
'urn:servicename', // namespace
$server->wsdl->endpoint.'#'.$methodname, // soapaction
'document', // style
'literal', // use
'N/A' // documentation
);
}

//********************************************************************************
// Definimos la función
//********************************************************************************
function saludar($nombre){
return "Hola ".$nombre;
}

die();
?>


El servicio recibe una cadena de texto (un nombre) y devuelve otra cadena de texto ("Hola " + nombre) Por último ya solo queda probarlo. La url donde ha quedado publicado el webservice sería algo así: www.midominio.com/servicioweb.php?wsdl

Existen aplicaciones para probar servicios web (clientes SOAP genéricos). Uno muy completo que suelo utilizar es soapUI. Otro también interesante y mucho más liviano es WebserviceStudio (este no lo he probado mucho).

miércoles, 27 de enero de 2010

Tecnologías de televisión 3D

Hace poco vi la película "Avatar" en 3D. No era la primera que veía de esta nueva generación de cine, pero la experiencia fue sorprendente.


También, hace ya un buen tiempo en unos grandes almacenes, vi una televisión con otra tecnología, en la que para apreciar el efecto 3D no era necesario ponerse unas gafas especiales. Bastaba con situarse delante y abrir bien los ojos, claro.


Repasemos un el "estado del arte" de la televisión 3D.


Lenticular Viewing


Tecnología lanzada por Philips. Se puede ver la imagen 3D sin necesidad de gafas especiales. Para ello, la pantalla cuenta con unos espejos dispuestos de tal forma que a cada ojo le llegue una imagen ligeramente distinta, similar a si estuviera el objeto físico realmente delante de nosotros. Esto hace que para ver la imagen correctamente en 3D se tenga que estar justo delante de la pantalla. Si hay mucha gente visionando, no todos tendrá una sensación 3D óptima.


Passive glass systems


Tecnología desarrollada por Hiunday. Usa una pantalla normal, capaz de mostrar imágenes en 2D y 3D. El efecto tridimensional lo consigue este sistema mediate la tradicional técnica de anaglifos. El video 3D en cuestión fue grabado con 2 cámaras separadas por una distancia a la que está cada ojo del otro. Posteriormente, ambas grabaciones son polarizadas y montadas una sobre la otra. Usando unas gafas especiales, con la misma polarización para cada ojo, es posible reconstruir el efecto 3D.







Active glass systems


Este sistema es muy similar al anterior. En este caso las gafas son un componente activo a diferencia del anterior sistema. Así, para crear una película tendríamos que tener también una doble cámara, grabando por solo una de ellas en cada fotograma, de manera alternativa. Al reproducir la grabación en una pantalla normal, la película se vería en 2D: usando las gafas se verían en 3D. Para conseguir esto, las gafas están sincronizadas con la frecuencia de la pantalla, polarizándose la correspondiente lente en cada periodo.





Fuentes: 1, 2

martes, 26 de enero de 2010

El avispón gigante de Japón

No me gustaría encontrarme en la ventana con uno de estos "bichitos"... Suelen medir del orden de 2 a 4 cm llegando las reinas incluso a los 5 cm de longitud. El aguijón tampoco se queda atrás: más de 6 cm de "temible clavo". Nos podemos hacer una idea de su increible tamaño con la siguiente fotografía.

Fotografía: Takehiko Kusama - http://www.muenster.org/hornissenschutz/vespa-mandarinia.htm


Su nombre científico es "Vespa mandarinia japonica" pero bueno, esto tampoco nos va a importar mucho si la vemos revoloteando por el jardin..

Por último, en el siguiente video vemos como un grupito de estos "avispones" se las gasta ante una legión de abejas comunes europeas...






Vía: ALT1040

lunes, 25 de enero de 2010

La puntuación del tenis

El tenis siempre ha sido, aunque ya no tanto, un deporte de clase alta. Era un deporte de ricos, a los que acompañaban sus mayordomos a los partidos. Así, cuando le tocaba sacar a uno, el juez decía "servicio para Pierre" indicando así a su mayordomo que le acercara las pelotas.

Dominio público


El origen de la puntuación es un tanto confuso. Existen varias hipótesis, una de ellas con la astronomía como protagonista. Como hemos dicho era un deporte de la clase alta francesa, practicado por reyes, cortesanos e incluso astrónomos. Un instrumento usado por estos últimos para medir ángulos era el sextante. Es probable que se usara este como marcador en los partidos.

Así, un juego lo ganaba el primero que desplazara el espejo móvil a lo largo de todo su sextante. De esta manera cada juego estaba cuantificado de la siguiente manera: 15 grados, 30 grados, 45 grados y 60 grados, completándose el sextante.

El partido lo ganaba el primero en ganar 6 sextantes, completándo así una circunferencia. Esto es lo que ahora denominamos set.

Con el paso del tiempo las reglas fueron adaptándose: el punto 45 era muy costoso de decir por lo que degeneró a 40 (mucho más rápido de pronunciar!), el partido pasó a tener varios sets, las mujeres jugarían 3 y los hombres 5, para ganar un juego habría que ganar por dos puntos de diferencia, con lo que si se llegaba a empate a 45 se diría "a dos!" ("a deux", adaptado por los ingleses como "deuce"), etc..

Y estas son algunas curiosidades de la puntuación del tenis, posteriormente también adoptado por el padel.

domingo, 24 de enero de 2010

Viaje al pasado

¿Quién dijo que no se podía viajar al pasado? Existe una organización llamada Internet Archive que guarda una versión caché de millones de páginas de Internet desde 1996 (160 billones de páginas) Así, podemos buscar una página web y ver como era hace años o directamente ver una que ya haya "muerto".

http://www.archive.org/

Gracias a este sitio he podido regresar a 1998 y revivir como era la página de Google:

o la de Altavista de 1996:


y lo mejor de todo es que he podido volver a ver mi primera y vieja página web de geocities! (ya difunta desde hace algunos años).

sábado, 23 de enero de 2010

Plantillas de entregables

Un apartado importante en la ingeniería del software (aunque en la vida real no se realice todo lo que se debiera) es la documentación. Existen multitud de documentos asociados a cada una de las fases del ciclo de vida de un proyecto software: Propuesta, Especificaciones, Diseño, Pruebas, Guía del usuario, etc..

En el siguiente sitio se pueden encontrar multitud de ejemplos y plantillas para todos estos tipos de documentos.

Los clasifica de dos maneras: por actividad y por secuencia sugerida, según la metodología clásica de desarrollo de software.

viernes, 22 de enero de 2010

Gráficas con Zedgraph en VB.NET

Hace tiempo me surgió la necesidad de representar gráficas en mis aplicaciones .NET. Buscando por la web encontré una libre y estupenda librería acorde a mis necesidades. Se trata de Zedgraph, descargable desde la siguiente página:
Para utilizarla en nuestras aplicaciones es necesario referenciar la DLL ZedGraph.dll.
La librería ofrece muchas posibilidades y tipos de gráficas (barras, líneas, tarta, etc..). Estas son altamente configurables (color, grosor, textos, etc..) En la página anteriormente citada existen muchos ejemplos útiles.
Por último, incluyo un pequeño ejemplo de uso:



Dim area As RectangleF
Dim x As Double
Dim y As Double
Dim puntos = New PointPairList()

'Limpiar gráfica
area = GRAFICA.GraphPane.Rect
GRAFICA.GraphPane = New GraphPane(area, "Mi gráfica", "x", "y")

'Informar los puntos
For x = 1 to 24
y = miFuncion(x)
puntos.Add(x, y)
Next

'Crear y añadir la curva
Dim curva As LineItem = GRAFICA.GraphPane.AddCurve("Gráfica", puntos, Color.Blue, SymbolType.None)
curva.Line.Width = 3.0

'Refrescar la gráfica
GRAFICA.GraphPane.Fill = New Fill(Color.White, Color.FromArgb(220, 220, 255), 45.0F)
GRAFICA.AxisChange()
GRAFICA.Refresh()

Control del consumo eléctrico

Suele ser habitual llevarnos sorpresas al ver la factura de la luz. Entre todos los números que aparece en dicho papelito está la potencia contratada, que suele ser normalmente entre 3 kW y 5kW. Vemos que se mide en kW y es ni más ni menos que la capacidad que se nos suministra para encender aparatos eléctricos.


Por otra parte, el consumo energético se mide en kWh. Este es el numerito que aparece en el contador y que va lentamente incrementándose según vayamos consumiendo. En otras palabras, según vayamos realizando trabajo con esa energía. Ese trabajo es mantener los electrodomésticos encendidos.

Así, según cuanto trabajo hayamos hecho al mes con la capacidad que se nos suministra, así nos facturarán. Si por ejemplo el consumo ha sido de 100 kWh estando el precio del kWh fijado en 0.08 € el coste será de 8 €.

Con este nuevo sistema que os muestro a continuación llamado Watt Diet Sub, es posible visualizar en tiempo real cuanta energía estamos consumiendo y así de alguna manera controlar el coste.


Como vemos en la imagen se trata de unos enchufes conectados a la toma eléctrica donde se enchufan a su vez los distintos aparatos eléctricos. Los enchufes del sistema cuentan con un pequeño display donde van informando cuanta energía va consumiendo. Cada uno de estos enchufes inteligentes enviará la información a un computador central el cual mostrará la información global en una pantalla.

Sin duda un invento muy interesante.

Fuentes: 1, 2, 3

jueves, 21 de enero de 2010

El precio del tomate

El programa "Comando actualidad" que emitío ayer Televisión Española trató sobre la formación de los precios de los productos alimenticios. Investigaba como se forma el precio en origen y como se llega a encarecer tanto una vez que llega al comercio final, al consumidor.

Fuente: Domino público

Considerando el tomate, el primer eslabón de la cadena es el agricultor. Este recolecta la hortaliza llevándola a la comercializadora, una gran nave donde se almacenarán los tomates provenientes de muchos agricultores. Allí se darán cita los corredores, que serán los compradores.

Los corredores son los intermediarios de los mayoristas y comprarán según este les dictamine. La compra se realiza mediante una subasta de tipo holandesa. En este tipo el precio comienza con un valor alto para ir progresivamente descendiendo hasta que un participante lo considere aceptable.

Una vez que se realiza la compra es transportada al mercado mayorista, como por ejemplo Mercamadrid. Allí los mayoristas reciben la mercancia que los corredores le compraron y la venderán a los minoristas (los fruteros, tenderos, representantes de supermercados, etc..). Estos se pasearán por este gran "hipermercado" y comprarán lo que mejor les convenga según sus márgenes. Por último, estos venderán a los consumidores estableciendo un PVP (en algunos casos venderán a otros minoristas!!)

Como vemos el precio del producto alimenticio se va encareciendo en cada eslabón ya que se van acumulando costes (de almacenaje en la comercializadora, de transporte, de márgenes, etc..). En definitiva, el precio se puede incrementar desde el origen hasta el destino en más de un 200%.

Veamos un ejemplo según los precios de la semana 2 de 2010 (podeis verlos aqui): el tomate liso para ensalada tiene un precio en origen de 0.56 €/Kg; en el mercado mayorista se incrementa a 1.13 €/Kg; finalmente el precio en destino se eleva a 1.99 €/Kg, un 255% respecto del origen! Estos precios que acabamos de ver son medias ponderadas, lo que supone que algunos establecimientos tendrán un PVP mayor..

miércoles, 20 de enero de 2010

Generador on-line de diagramas de secuencia

Como todo buen programador, durante la fase de análisis a veces es necesario realizar diagramas de secuencia. Para facilitar estas tareas existen buenos programas como StarUML o ArgoUML pero en ocasiones no contamos con estas herramientas instaladas en nuestro PC.

Una manera rápida y fácil de generar diagramas de secuencia es mediante la siguiente aplicación web:


En primer lugar es necesario codificar el diagrama que queramos generar mediante su sencilla sintaxis. Por ejemplo, el siguiente código nos generaría el diagrama que pongo a continuación:



CLIENTE->SERVIDOR: compruebaConexion()
activate CLIENTE
note right of CLIENTE: Si hay conexión devuelve la hora del sistema
SERVIDOR-->CLIENTE: 10:05:00 (OK)
CLIENTE->SERVIDOR: calculaDesfase()
note right of CLIENTE
Se mira la hora del cliente y se calcula
Desfase = hSERVIDOR - hCLIENTE
end note


martes, 19 de enero de 2010

Simulación de Monte Carlo

La simulación de Monte Carlo es un método estadístico numérico utilizado para estimar variables aleatorias con una densidad de probabilidad conocida mediante el uso de un ordenador.

Supongamos la simulación del lanzamiento de una moneda. Sabemos que la probabilidad de que salga cara es 1/2. Utilizando la función RANDOM de un ordenador podemos simular dicho lanzamiento, asignando el segmento [0, 0.5] al suceso CARA y (0.5, 1] al suceso CRUZ.


Algo similar podríamos podríamos hacer para simular el lanzamiento de un dado.



Este método tiene muchas aplicaciones como por ejemplo en el cálculo de áreas. Básicamente se generan muchos puntos aleatorios y se cuantifica cuantos “caen” dentro del área y cuantos no.
Otra aplicación es la estimación de valores (como los dos ejemplos que hemos visto). Generalmente esta aplicación se suele utilizar en el campo de la economía.