Monday, November 30, 2009

+1 for interdisciplinarity

Ending quote from The Emperor of Scent:
"My father always said if you translate a proverb from one language into another, you pass for a poet. The same for science. Work strictly within one area, and it's diminishing returns, hard to make progress. But translate a concept from its field for use where it is unknown, and it is always fresh and powerful. In buying outside, you are doing intellectual arbitrage. The rate limiting step in this is your willingness to continuously translate, to force strange languages to be yours, to live in between, to be everywhere and nowhere."

Saturday, November 28, 2009

Smells, music, antibiotics, and other things

Estoy leyendo "The Emperor of Scent", de Chandler Burr, acerca de Luca Turin, un científico con una teoría interesante acerca de cómo olemos. Propone que tenemos un espectroscopio de efecto túnel (electron-tunneling spectroscope) orgánico (hecho de proteínas) en la nariz, que analiza las vibraciones características de enlaces atómicos en las moléculas, y cada combinación diferentes de enlaces tiene un olor particular (como acordes musicales).

El libro está interesante, y he encontrado varias ideas/frases de él que me han gustado/entretenido, so I'll just stick them here.

Este es un extracto donde vienen sus ideas acerca de la belleza en los olores y del dilema natura VS nurtura acerca de cómo apreciamos los olores (los franceses con sus quesos, por ejemplo):
His second view on the nature versus nurture of smell, firmly held, is that one should seek the full spectrum of smells in one's life. "France", he says, "is a country that understands that, much as in music an orchestra is not just violins, the range of smells that makes life interesting includes some rather severe ones." So what determines what we like to smell? "Your taste in smell is part biology and part culture. Everyone who smells rotten cheese the first time — take Époisses, where you smell it about three rooms away, and one that is even more rare and heavenly and makes the Époisses positively spartan by comparison: Soumaintrain, from Bourgogne, specifically from Saint-Florentin, near Auxerre. When they smell that, Americans think, 'Good God!' The Japanese think, 'I must now commit suicide.' The French think, 'Where's the bread?'

...

Theres' a vibrational fifth in esters, you know. I've always thought that esters, fruity, are Mozart. The melon notes — helional, for example — strike me as the watery Debussy harmonies, the fourths. Beethoven in his angrier moments is quinolines, which you get in green peppers. Thus Bandit, a dark, angular Beethoven string quartet. There's a lot of perfumery that smells like Philip Glass's minimalism, a deceptive simplicity. Mitsouko I think is pure Brahms, the string sextets, extremely intricate but rather monochrome. Tommy Girl gives you Prokofiev's First Symphony.

But the rotten cheeses. Put it this way: Sauternes, this incredible thing, is a wine that is the direct result of rotting grapes being eaten by a mold. I mean, in an American hospital they'd hand out antibiotics to exterminate half the food in France.

Hablando de un vino (Sauternes):
A great Sauternes is a perfectly proportioned thing. Rieussec makes big-boned, stocky affairs. The '59, in a bottle for forty years, comes out the way James Bond emerges from a wet suit in a perfect tuxedo. It looks at you and murmurs, 'What kept you?'

Day C

Corny cornered corns crankily chop crooked crocodiles' crumbs. Can cheese crops create cold cancer? Cream crushes cyanide cans. Cool.

Friday, November 27, 2009

Best. Beer name. Ever.

Tactical Nuclear Penguin.

Y para acabarla es la más fuerte del mundo (31-32% alcohol), según este artículo.

Day B

Blueberry brewers bark besides big, burnt barns built by brimstone blobs. Beer bunnies bend baskets behind boring bromide bubbles. Bah.

Notes on SQL 1

I'll be posting notes and insights on SQL now that I'm preparing for the Microsoft SQL Server 2008, Database Development certification exam. Both as a way of improving my retention over the things I learn, and as a reference for my future self =P. Note that these will most probably NOT be a full-depth treatment of the topics, but isolated notes that are new or interesting to me (in other words, I strongly advise against using these notes as a tutorial for learning SQL). Without further ado:

ANSI_NULLS


The ANSI_NULLS option determines if "normal" comparisons, i.e. using the = and <> operators, can be done against NULL values or not. Setting ANSI_NULLS to ON, these comparisons won't work (will return "unknown") and thus IS NULL and IS NOT NULL should be used. When ANSI_NULLS is set to OFF, queries like the following work:

SELECT * FROM Table WHERE Column <> NULL

CONTAINS clause


"The CONTAINS clause is available only when you create a full text index on the column being compared." This is a big topic, so I'll summarize some of my findings here (I'll definitely cover this to a deeper extent in a future post though).

Full-text capabilities in SQL Server 2008 allow us to go beyond Column = 'Exact_text_match' and Column LIKE '%Partial_text_match%' and do searches like the following (or so I've read haha):

  • Two words near each other

  • Any word derived from a particular root (for example run, ran, or running)

  • Multiple words with distinct weightings

  • A word or phrase close to the search word or phrase


Everything needed for this functionality to work is included in SQL Server 2008 if it's properly configured during installation (this was not true for previous versions of SQL Server, that depended on some components of the OS). A full-text catalog must be created on the database, and a full-text index on the table of interest (only 1 full-text index can exist per table, and it requires a unique key index on the table too). The index must then be populated. Full-text search can be done over columns of the following types: char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, or varbinary(max). While creating these indexes, several options can be specified, like sensitivity to accents, the language of the text we're indexing, a stoplist word list ('a', 'an', 'the', etc.), the extension of the file contents stored in a column (in the case of a varbinary, varbinary(max) or image column, that store documents in binary format), automatic/manual/off settings for index updates. SQL Server includes "language helpers" like stemmers (processes that conjugate verbs based on the linguistic rules of the language) and initially empty thesaurus. The CONTAINS predicate (along with the FREETEXT predicate, and their [command]TABLE function counterparts, which return the results in a table), is one of the ways to actually use full-text search in a query.

Note from the MSDN:
A LIKE query against millions of rows of text data can take minutes to return; whereas a full-text query can take only seconds or less against the same data, depending on the number of rows that are returned.

Boolean operators (AND, OR, NOT)
The NOT operator typically hurts performance because the query optimizer cannot use indexes for the WHERE clause when a NOT operator is specified. For indexes to be utilized when an OR operator is specified, all columns referenced by the OR condition must be included in an index or none of the indexes are used.

LIKE clause

  • A percent sign (%) replaces any amount of characters in the string (including 0)

  • An underscore (_) replaces exactly one character in the string.

  • Square brackets ([]) replace any one character within a set or a range of characters.

  • A caret (^) as the first character inside square brackets means "match any character NOT in this set/range".


Just as the NOT operator, Wildcard characters at the beginning of a string do not allow the query optimizer to use indexes.

BETWEEN clause

It is inclusive, so "SELECT * FROM Products WHERE Price BETWEEN 4 AND 8" includes products with price = 4 and price = 8. Note that this might cause weird behavior when using alphanumeric ranges (i.e. BETWEEN 'S' and 'Z' returns 'S', 'Slice', 'Tom', and 'Z', but not 'Zebra')

Click here for the next part in this series of posts.

Thursday, November 26, 2009

Day A

Rules: write a coherent phrase (little bit of nonsense and grammatical incorrectness allowed... a.k.a. encouraged =P) in which ALL words start with the day's letter.

The phrase that started it all... (courtesy of Chac and Alex):

Annoying aardvarks are adamantly assembling an artificial arm as another asshole alligator astonishes ants and arising all animals alone.

Use the comments. Go!

Thursday, November 19, 2009

Sunday, November 15, 2009

Alex reescribe El Quijote

Ok, pedazos del Quijote. Técnicamente, fragmentos de 1000 caracteres (random) del Quijote. Lo más interesante es ver las mejoras con diferente parámetro de backtracking, no sugiero que se pongan a leer a detalle los fragmentos.

Con bactracking de 1 caracter:
alese elalo l ca mubr. e lo fón l cierantaíar vucue yelondomo: oron io de les quer pr fucanoro a endo muntó íaó s, asonoce lado y asprmime va, blenter ladas, y, envir, la pe una, se y lor ll haqudarba, rtos llese adño cin dal da do, o, del lgolan y pe ue, y quazor. quecu lesue e acience y queciroba ma dan pra cosaltien o y ch ndaraó en l trindesesiescimpijode y mo y on y me a, ra cesu vo piesa strcorran petea leralo lano queba elade y, ndedese cal ca que y, fe so qura dábas hamóntraloten a, elay a puelo puiere do, uriromaban en, ástadensemilal dejos qualacue centes e. hoste calana mibíonta, r bevad dos lgosesu a quen u acomó, y so en ue en esueco: hien de es lle fin pe ítranse arentu y y e prería de l s s cuel quntrinasel e corabre co ecón teriélersa sunte nale n #zon co y cie, ramural tr, hianzazas véní, r d. uecalen y are; nd; trase tese cos, que, nora quientey don cabracon piges uerter, vuy qunste uen mpoma chutu 1 que queara va cona deton de astelen e sceluertos s,

Con bactracking de 2 caracteres:
al muje as ques pue ar balee, cona de la habal ro que el es pativola supor coso llas, bienda ho y de sión dentantido hanada, y mantomodo, nues mancabastro destoparpon trugara, que fambrazantos nuel man se rada. ventalgún se prello en le se esporquencabebrecedía de julevacos, sero eníturás del vio. mucía, quespusa estastorno apio, nostaros en loros apesparte, pre nue en sincas añadíana susina que al seía que ento. chechaba enda, cones, y cuesea tradadas hijotresa es pos najese dela susco no lin ces allerla de no, lersencien el hicha, él bre; la, prevalera. es; que de lerte, pren quijora énde le pada vidías leñor dustra quien el mudonas, que dero vientomolvalo, con trocarnacelás mar quellas sinal y el recelle sobredel punas lejotende y de llosado enea, no; nue lo de coba, ercerciólos sía, sien aldabande lo dí, queguallas! levalla sego elio anchaceraidon ta a a exión cuy es, que embrecísino un ellevara cor ento cabábaleguijor y el enerí cuestodo aros, bue, secíanterevo

Con bactracking de 3 caracteres:
untos de la imaginaba llarote; de anto y abundole por la bucín, lantea, las de mejo lado sazón que la ver que los vento; y auto mesmo su parescado, fin de modo se él que vues, acaber al mesmo a la dicesafíos, etero, arme el había buen otra daluros, a siero sacía las cuando donces y así, un su pudiendo curarse parenos, por de penas compusió talleronle crito y todo por vino avento en el fin honrazonera mábase empres de mitar unado a saliénera que, que mozas del valomina muy buscázarecín, su se era edad de su inguaje, y castablanteridad y todo fuerpo, en un repáis perdad. en estoreseo. mahombre, y peso reción acordanturbio; que en habían acomo de la había luego de nadaballamaba el servidó a celada, alboroncellamas lo su don una porque el cura hinquiereco en responisto, caba ocinardo fueregurastillo, sino de leyendo el señoradura castillo que alguno; quello des, sino hacercedor descria, quello fuerta de la cabablantendo cual levados que la donder mi pueste quijo de se de lo

Con bactracking de 4 caracteres:
alcaide de parecía leer los dos de todo el valién el riendo de sea los que venturas de me mancha sin duda, que tener la fanta añadas que satisfecho encajada, que hallará en enseñoras pantuflos cuales, como cortales de quitas pareción resucitaban. cuando le vio a buscándose quitador de lo servido con sentósele de todos pensartando que jamás estaban enflaquellas curiosidad y todo enamorado, hombre a mi deshizo los se llegó al talante? #oh priesa y el huéspedirme a cuyo no esto delante: nombre, a suyo nombre, ventura de carreos sábase porque ya se honraba, y necesidad con la puertas y con dura. en sentido, comprar en quiebro, altos que algo con galateria que encuento; basta que allería puercos que ver correrse y no se ejercitar la razo. a don grandes fecho le pasaba de gración ser muy bueno él y así ensilla celada, que, mudas domingos, que encantaría como si el caballeros que le ponérsele de sabio en acaso esta celos de caballero alguno, y así, contento de venturas de una t

Con bactracking de 5 caracteres:
dejando saliera cosa sino que tenía en la narración del celebro, de moho, luengos si otro le aventura compuesto se quijote, por vuestras merced, señor castillo y robar si descanso el peto y con gentil talle fin al pie de miedo, aunque de los de moho, luengos si otros deste romance viese, una gran famoso caballo, que fuera don quijote, el haberle pastores doncellas cuando leído, luengos siglos había sido del mundo con quijote de viese, dejando lugar de su caballo demás su lenguas había leído que el traidor de don quien darle llamar quijote; de don quijote lo fuerzo la facilidad del mundo como a nuevo ejercicio y patria, por haber que os acuitedes ni tan despedirme y recebía leía, ni podía comedidos, él no lejos deste menester. mas, hermosura. plégaos, se desarmaban solazando. en rocines del su rocín y llevadiza y aquella jamás que dicen que tal modo del alcaide de nuestro hidalgo de aquella generación recebía de entraba, cuales, sino morrión, él un castellano, y lleno de l

Con bactracking de 6 caracteres:
cipales se ejercitarse en broncesvalles había en el morrión simple; mas él no lo que es mejor que en este romance viejo de las vuestra merced, para sólo ello. llamábase el pobre ya coronado por haberle llamarse don belianís daba a los cincuentro por ahí con algún castillo o alguna diferencia dello. llamábase por su espada y le derribo de unos rastrojos una moza labradora de servicio y prosiguió su industria, y la honra comparar, era de parecían tan bueno como la ternera, y aun a su talante de las armas blancas, como vieron titubear en su casa una ama que leer, se llamaba quejana. pero, como fuera si el ventero, hombre della contar estaba muy adelante se le podía estar al propósito; mas, como él por ser muy gordo, era muy pacífico, el cura de servido como llegando ahogó a la orden de carnero, sin dar nombre a su casa una cuchillada, puesta choza ocasiones y peligros donde saldrán a luz las fiestas, cosa sino a llamado caballero, pero vio que habían sayo de velar; y sin quere


All done in less than 300 lines of Java =). Luego que tenga dónde, subo el código.

¿Alguien más cree que los que tienen backtracking 2 y 3 *podrían* pasar por portugués o catalán?

Friday, November 13, 2009

Galería de fotos de animales

Me encontré esta galería hoy, y está MUY cool. Just sharing, and for the record.

Sunday, November 8, 2009

Quote of the day

"When you have mastered numbers, you will in fact no longer be reading numbers, any more than you read words when reading books You will be reading meanings." - W.E.B. Du Bois

Sunday, November 1, 2009

Siete pecados capitales, de Milorad Pavić

Acabo de terminar de leerlo y hubo varias cosas que me gustaron.

1) La primera historia, La Jaula Blanca de Túnez en Forma de Pagoda. La idea de un decorador de interiores que amuebla una casa con la intención de que cada mueble, cada espacio, cada detalle, provoque un movimiento o un ademán diferente y específico de una mujer (todos ellos previamente admirados, claro), se me hizo una variación muy cool de la clásica adoración romántica, que encausa todas las acciones y/o creaciones de alguien hacia su pareja.
Así provisto empecé a amueblar la casa de la manera que mejor satisfaría¹ los gustos y la naturaleza de los movimientos de JM, decidido a invocar de ese modo, al menos en la mente, todas mis reservas de sus actividades, vueltas, entradas, subidas por la escalera y salidas...

...

Ni siquiera dos picaportes debían ser iguales. La razón era simple. Cada uno de los picaportes induciría un ademán diferente en los largos dedos de JM. Cuando los trajeron y distribuyeron los revisé con deleite. Uno tenía la forma de pájaro que estaría en la mano de JM cada vez que abriera la puerta de la sala de baile en el piso superior, otro era como el mango de un arco de violín, el tercero como un abanico chino. Había picaportes que llevaban manzanas de vidrio y bolas de mármol o picaportes hechos de cuernos del chivo montés, y en el dormitorio de JM se encontró un picaporte de madera de abeto que olía eternamente a bosques cubiertos de nieve. El picaporte de entrada se parecía a un pequeño revólver de dama del siglo XVIII. La puerta se abría apretando el gatillo.

La idea de los diferentes picaportes además se me hizo bastante chida para hacerlo de verdad en una casa jeje.

2) Una frase de la segunda historia, El Manantial Mágico.
Las mujeres estaban enamoradas de él y de su música y nosotros de su música y de las mujeres enamoradas de él.

Me dejó un sabor de boca entre Sabinezco —por esas frases que le gusta "viceversear"² (my term)— y Les-Lutheriano —por frases llenas de aliteraciones³—. In both cases masterful uses of language, I must say.

3) La cuarta historia, Cazadores de Sueños. Por la mezcla que hace de la historia personal del autor, con su sueño y con lo que escribe. Y por el final que deja ver que la historia en realidad ya pasó...

4) Una frase de la quinta historia:
El escritor que resulta ser más sabio que su cuento se ha equivocado de oficio.

¿O sea que los escritores deberían escribir sin saber qué escriben o por qué?

5) La mezcla de realidad y meta-realidad en la quinta (El Cuarto de los Pasos Perdidos), sexta (Té Para Dos)  y séptima (El Espejo con Agujero) historias. En la quinta, por ejemplo, El Cuarto de los Pasos Perdidos, porque queda (o no) muy claro que el escritor de un cuento y el narrador del mismo no son la misma persona. Si no, Inguerina conocería al lector que llega a la fiesta, pues ella hubiera sido la que le contó de los restos de un cuento, llamados El Cuarto de los Pasos Perdidos...

Tanto este libro, como Pieza Única (también de Pavić) muy recomendables.

____________________________________________________________

¹ Sorprendentemente, es la conjugación correcta. Nunca la había visto.

² "Y morirme contigo si te matas...
y matarme contigo si te mueres...
porque el amor... cuando no muere mata...
porque amores que matan... nunca mueren".

³ "Yo seré su anfitrión, porque, a mi jefe el jeque lo aqueja la jaqueca."
"Los beduinos provenían, algunos, de ciertos oasis poblados, y otros, de ciertos desiertos desiertos".

Engineer VS Industry Researcher VS Academic Researcher

Hace rato leí un ensayo de C.A.R. Hoare (el creador del algoritmo QuickSort), publicado en el número de octubre 2009 de la revista Communications of the ACM, y hubo 2 ideas que me agradaron. Just sharing.

La primera es acerca de la diferencia entre un ingeniero y un investigador:
As in other branches of engineering, it is the responsibility of the individual software engineer to use all available and practicable methods, in a combination adapted to the needs of a particular project, product, client, or environment. The best contribution of the scientific researcher is to extend and improve the methods available to the engineer, and to provide convincing evidence of their range of applicability.

La segunda, acerca de la diferencia entre un investigador en la industria y un investigador en la academia:
The goal of industrial research is (and should always be) to pluck the 'low-hanging fruit'; that is, to solve the easiest parts of the most prevalent problems, in the particular circumstances of here and now. But the goal of the pure research scientist is exactly the opposite: it is to construct the most general theories, covering the widest possible range of phenomena, and to seek certainty of knowledge that will endure for future generations. It is to avoid the compromises so essential to engineering, and to seek ideals like accuracy of measurement, purity of materials, and correctness of programs, far beyond the current perceived needs of industry or popularity in the market-place. For this reason, it is only scientific research that can prepare mankind for the unknown unknowns of the forever uncertain future.

Este es el ensayo completo.