Descubrimientos de una inteligencia artificial que supera el test de Turing
On the Internet, everybody knows you're a chatbot.
Buscar en Mind w/o Soul
lunes, mayo 18, 2009
More monadic and non-monadic parsers in python
http://pyparsing.wikispaces.com/
http://www.valuedlessons.com/search?q=monads
Some intuitions on Monads
Did you mutter to yourself then, "how can 'sequence' be an operator and not just, well, how the program is laid out in the file?" Well, fact is you really can think of sequence as an explicit operator. And monads are a way to overload that operator, in the OOP sense of operator overloading.
If you have defined a monad in a functional program, you can use it to build a sequence of operations, just like you would in an imperative program. But you can actually change the meaning of the composition in the sequence: every step of your program, the logic in the monad is activated and it decides how (and if) it should perform the next step.
See this example from Monads in Ruby (with nice syntax!):
def with_failable_rbinding(first_divisor)Here you have a do-block containing a sequence of divisions composed using the special monadic assignment =xx. Everything executed within the block is handled by the Failable monad, wich is programmed to return a special non-numeric Failure value when a division by 0 is performed:
with_monad Failable do
val1 =xx fdiv(2.0, first_divisor)
val2 =xx fdiv(3.0, 1.0)
val3 =xx fdiv(val1, val2)
val3
end
end
puts fdiv_with_binding(1.0)
=> Success(0.666666666666667)
puts fdiv_with_binding(0.0)
=> Failure(cannot divide by zero)
For every side effect in traditional imperative programming (control of errors, concurrency, input/output, commit/rollback of the whole application state, non-determinism... and some more) you can get some specific logic added for it, anytime, for free, without any syntactic complexity other than the sequence operation. Better yet, you can change the allowed side effects without actually changing a single line of your imperative procedure, just by redefining the logic encapsulated in the monad that glues the statemens in the procedure together.
See some more of my intuitions on monads here.
martes, abril 28, 2009
Caja de Herramientas de Usabilidad
The Usability Methods Toolbox
brought to you by
James Hom
Welcome to the Usability Methods Toolbox! I've attempted to compile information about almost all of the methods and techniques (well, ok, a lot of them) used in usability evaluation. I hope you find helpful information here, or at least a pointer to additional information that will help you find what you need.

jueves, febrero 19, 2009
Interfaces con fotografías

Recommendations for photography in next-generation interfaces
- Integrate the images into the interaction design. This can be achieved by making areas responsive to user behaviour, enhancing its function from a visual element to an instrument of interaction. Due to its realistic and nonverbal nature, photography can be equally or more powerful than icons, buttons or other classic interface elements.
- Work with screen space. Place images in a way that they have a real impact on the overall appearance instead of putting them into small banner-like screen areas.
- Photography invokes an emotional reaction and has the capability to create a certain ambiance more easily than other media. Use pictures that make the user feel comfortable and adequate to the application context.
- Clarity, structure, movement, separation, union – photos can convey messages instantly to the viewer, by means of blur, motion, composition, and of course motive. Work with these as design elements.
- If used as content element, think about alternatives to simply placing photography on a grid. There are a lot of possibilities to make images "tangible" to the user. Think of multiple layers, movable objects, or 3D approaches.
- Keep the subject of the application and the nature of the content in mind while designing. Choose photos that convey a real meaning and make sense in the application context. Avoid standard (stock) images or those with only decorative function. Prefer custom-made images tailored to your intentions and requirements.
- Combine and integrate all elements to create a holistic interface design where all visual elements work together and make the interface.
miércoles, febrero 18, 2009
CORE: un engine lógico para usabilidad
un motor de razonamiento para modelar modelos mentales
http://www.cict.nasa.gov/assets/pdf/044_CICT_IS_CORE_A_web.pdf
[7] Vera, A., Howes, A., McCurdy, M., & Lewis, R.L.
(2004). A constraint satisfaction approach to predicting
skilled interactive performance. Proc. of the SIGCHI
Conference on Human Factors in Computing Systems.
Google search
martes, febrero 17, 2009
Docbook2Word roundtrip
http://shudson310.wordpress.com/2005/12/08/roundtripping-docbook-and-word/
http://www.explain.com.au/oss/docbook/
http://wiki.docbook.org/topic/ConvertOtherFormatsToDocBook
lunes, febrero 16, 2009
Idea para un idioma de programación universal usable
Explicación:
Igual que la web revolucionó el almacenamiento de información gracias a hacer visible la idea del "enlace" entre documentos, se podría revolucionar la Programación por el Usuario Final creando una entidad "enlace" y otra "colección" que funcionen:
- como entidades genéricas
- con una "API" visual sencilla y homogénea
- que funcionen SIEMPRE, sobre cualquier otra entidad manejable por el usuario (ésto es lo más difícil, haría falta un clasificador universal de información de usuario tipo Nepomuk + URIs).
- los lenguajes de programación son demasiado abstractos - la separación código/datos es un salto conceptual difícil para no programadores. (El caso más sencillo, el Apple Automator es un lenguaje de scripting, es difícil hacer flujos más allá de lo estrictamente trivial)
- el Excel es el paradigma más programable a nivel de usuario, pero sólo maneja relaciones numéricas - y no es aplicable a los objetos de interfaz, sólo a bases de datos.
- Un Enlace entre dos objetos permite definir acciones asociadas a eventos (desde un extremo "Origen" está accesible el otro "Destino") con un esquema mental sencillo. Como los enlaces se pueden aplicar a objetos de la interfaz, los enlaces se pueden usar para acceder a información no visible en el estado actual de la máquina.
- Una Colección permite automatizar una tarea repetitiva (sin las complicaciones del uso de bucles): aplicar una acción a todos los objetos de la colección, o a todos los que quedan tras aplicar un filtro.
- Tanto Enlaces como Colecciones soportan la "programación basada en ejemplos": los programas se pueden definir sobre datos reales, no como una entidad abstracta separada ("programa") sino como una serie de ediciones de manipulación directa sobre información. El feedback es mucho mayor que con un entorno/lenguaje de programación.
- Ver la "metáfora del pintor" para crear agrupaciones automáticas:
- Now, for the following let's think of nodes being white bricks placed in an ordered row on the floor. These bricks can be painted with one (or even several – think: spotty!) colors. The color indicates the element by which the bricks should be grouped.
- The grouper does one very simple thing: It wraps all adjacent, likewise colored nodes in a parent element (think of this being some kind of bag) that has the same name as the color of the nodes it wraps.So the essential part to be done beforehand is to color the nodes in the desired way. This is a two-step process: First, you need to check the role of each node as far as grouping is concerned and assign it that role by placing a painter on it that knows how to go about painting for this specific role. Second, the painting is actually performed.
sábado, febrero 14, 2009
sábado, febrero 07, 2009
Docbook Windows Howto
http://mawi.org/articles/DocBook_On_Windows_Bliss.html "One page install in windows"
http://www.codeproject.com/KB/winhelp/docbook_howto.aspx
http://tldp.org/HOWTO/DocBook-Demystification-HOWTO/
Herramientas docbook
DocBook: The Definitive Guide
http://wiki.docbook.org/topic/ConvertOtherFormatsToDocBook
Upcast & Downcast
http://www.infinity-loop.de/products/upcast/samples.html
The DocBook XSL project (http://docbook.sf.net/) has exactly what you
want - an XSL stylesheet that converts DocBook into WordML. The
project also happens to have the reverse as well; XSL stylesheets that
convert WordML into DocBook.
You may need to look in the CVS repository to find the stylesheet(s);
I'm currently working towards having them included in the distribution.
Stock options HOWTO
Preguntas interesantes si te ofrecen stock options
1. What's the vesting schedule? Others have touched on this. It is the single most important factor to consider. Half now and 1/120th per month for 60 months is a lot different than a bulk grant that vests in 2014.
2. Can you vote and/or receive dividends on unvested shares? Control matters, and dividends matter even more. In many states, you can be fires without cause at any time. That includes one day before your shares vest.
3. What kind of shares are they? I would not accept common shares in this situation; I would insist on preferred shares. Preferred shareholders are paid dividends first and if the company is liquidated they receive the proceeds first (though a consulting company isn't likely to have much in the way of assets).
4. What is the company's existing and potential future capital structure? If the company has a great deal of debt, you aren't likely to receive much money. If your approval is not required to issue more shares, especially more preferred shares (possibly senior to your own) then you may find your stake nearly worthless when future employees or investors are issued new shares.
5. What does the company's balance sheet look like? Most small companies have little or no assets. This means they should also have no debt. But in either case, be aware that you are buying shares that have little or no liquidation value. If the company's operating performance suffers, it is likely to go bankrupt and your shares will be worthless.
6. What do the recent income and expense reports look like? What do the current bookings look like? You need to know exactly who the customers are, how diverse they are, and what their future commitments are.
7. Do you trust management? Are they owners? Do they have control?
8. Will you get a seat on the board? If so, who else is on the board? Do you trust them? Are any of them independent?
9. Last, and deliberately least because we are considering an investment here, do you like the work? Your coworkers? Is this an environment in which you want to spend your time? This helps you figure out what you're giving up by staying; you might also earn a higher salary elsewhere or enjoy other perks that you must value against the compensation you would receive by staying.
Quite frankly, as a dotcom bust veteran, I don't value equity very highly. This is especially true of companies with little in the way of tangible assets and even more true if it's common equity. This situation would have to be almost perfect for me to even consider it; i.e., the answers to almost all of the above questions would need to be favourable.
Let's ask one more question, of ourselves, that might help lay the issue to rest:
10. Why wasn't I inquiring about buying shares in this company before the offer was made?
miércoles, febrero 04, 2009
Proyecto Euler - programación y matemáticas
About Project Euler

What is Project Euler?
Project Euler is a series of challenging mathematical/computer
programming problems that will require more than just mathematical
insights to solve. Although mathematics will help you arrive at elegant
and efficient methods, the use of a computer and programming skills
will be required to solve most problems.
The motivation for starting Project Euler, and its continuation, is to
provide a platform for the inquiring mind to delve into unfamiliar
areas and learn new concepts
martes, febrero 03, 2009
"Estilos extremos" en MS Word
Styles
- Style (defined by Microsoft)
size, and indentation, that you name and store as a set. When
you apply a style, all of the formatting instructions in that style
are applied at one time.
- “Extreme” Advantages
– Adhere to corporate standards / style guide
– Format pasted text easily
- Access & Select Styles
– Styles and Formatting Task Pane
domingo, febrero 01, 2009
Qué debes saber para comprar un descodificador de TDT
1)Guia para comprar un receptor TDT.
2)Qué debes saber para comprar un descodificador de televisión digital terrestre

EPG: Guía Electrónica de Programación que puede visualizarse de forma paralela a los programas. Es un contenido en forma de fichas de texto que indica los horarios, nombres y contenidos de los programas.
Receptor Dual: Imprescindible para poder grabar y ver canales diferentes a la vez o grabar dos canales de forma simultánea.
Conexiones recomendadas: Dos Euroconectores (SCART), una para el televisor y otra para el vídeo, una entrada de antena y una salida de antena, salida de sonido analógica y digital, puerto USB y conexión LAN.
Picture in Picture (PiP): es la función que nos permite estar viendo un canal y a la vez visualizar otro diferente en una pequeña pantalla ubicada en una esquina de la imagen.
Time-Shift: Es una función de grabación que nos permite comenzar a visualizar un programa que aún se está grabando. Se utiliza, por ejemplo, cuando llegamos unos minutos tarde a ver una película o cuando suena el teléfono y tenemos que interrumpir el visionado del programa.
Formatos compatibles: MPEG, MP3, JPG, BMP, DivX... Cuantos más, mejor.
Conexión de Red: Mediante una conexión Ethernet podremos comunicar el receptor de TDT con nuestro ordenador. Así, por ejemplo, desde el receptor podremos hacer uso de los archivos multimedia del ordenador.
Conexión inalámbrica: La conexión de red puede ser WiFi, aunque sea a través de un accesorio.
Grabación: Si queremos grabar es necesario que incorpore doble sintonizador y que integre un disco duro, o al menos admita la conexión de uno a través de USB o LAN. Si además permite reproducir música, vídeo o imágenes almacenados en el disco duro, mejor.
Guía TV: Se trata de un sistema que desarrollan los fabricantes de los dispositivos que permite conocer con antelación la parrilla de programación que emiten los canales.
sábado, enero 17, 2009
Errores de instalación de Grub
http://users.bigpond.net.au/hermanzone/p15.htm#Grub_Errors
Consejos para arreglar Grub, en Gentoo
http://www.gentoo.org/doc/en/grub-error-guide.xml
viernes, enero 16, 2009
Prototipos con Visio y Java
http://www.guuui.com/issues/02_03_02.php
STC Usability SIG Newsletter: Usability Interface | ![]() |
| Prototyping Using Visio |
DENIM: Herramienta experimental de prototipado en Java, Universidad de Washington
http://dub.washington.edu:2007/denim/
Presentación:
http://www.cs.berkeley.edu/~jfc/hcc/retreat1/Talks/Denim/ppframe.htm
Prototypes
lunes, enero 12, 2009
Types of activities in cognitive dimensions
Tipos de tareas - tipos de actividades - task / activity types:
Los 4 tipos principales de actividades son:
- incrementation: adding a new card to a cardfile; adding a formula to a spreadsheet
- transcription: copying book details to an index card; converting a formula into spreadsheet terms
- modification: changing the index terms in a library catalogue; changing the layout of a spreadsheet; modifying the spreadsheet to compute a different problem
- exploratory design typographic design; sketching; programming on the fly (‘hacking’)
Las 4 categorías de actividades de usuario
- Aumento: introducción de nueva información no existente en el sistema.
- Transcripción: transformación de un tipo de información otro tipo de información diferente, manteniendo esencialmente los mismos contenidos.
- Modificación: alteración de los contenidos de la información.
- Diseño exploratorio: manipulación de la información con un objetivo, pero sin conocer la forma final deseada.
Cognitive Dimensions tutorial
martes, diciembre 30, 2008
Functional vs Imperative Programming
The tricks you learn to program the imperative way are different to those you use for funtional programming, that's why it's difficult for IP programmers to do the switch to FP. Not because FP is inherently more difficult, but because you lose your expertise and start again as a beginner.
viernes, diciembre 12, 2008
That's the spirit!
http://www.worldofspectrum.org/infoseekid.cgi?id=0005222
Search The Tipshop The Tipshop has hints, cheats and/or POKEs for this game!
Magazine references
Magazine Issue Type
SinclairPrograms 8.85 page 10 (News/Note) [full page]
Computer Gamer 9.85 page 66 (Review) [full page]
Crash 9.85 page 26 (Review) [full page]
Sinclair User 9.85 page 22 (Review) [full page]
Crash 10.85 page 78 (Tips) [full page]
Your Spectrum 10.85 page 44 (Review) [full page]
ZX Computing 12.85 page 63 (Review)
MicroHobby 11.85 page 14 (Nuevo) [full page]
Magazine adverts
Magazine Issue Type
Crash 8.85 page 119 (Full-page ad) [full page]
Your Spectrum 8.85 page 2 (Full-page ad) [full page]
