All posts by 曹 tsao

World Poetry Day 2013

Today I want to remember the modern Spanish drama founder and great poet Lope de Vega. This year my girlfriend and me visited his grave at San Sebastian church, Madrid.

Amor con tan honesto pensamiento

Amor con tan honesto pensamiento
arde en mi pecho, y con tan dulce pena,
que haciendo grave honor de la condena,
para cantar me sirve de instrumento.

No al fuego, al celestial atento,
en alabanza de Amarilis suena
con esta voz, que el curso al agua enfrena,
mueve la selva y enamora el viento.

La luz primera del primero día,
luego que el sol nació, toda la encierra,
círculo ardiente de su lumbre pura,

y así también, cuando tu sol nacía,
todas las hermosuras de la tierra
remitieron su luz a tu hermosura.

Félix Lope de Vega y Carpio, 1624

Abaqus (getting old ;-) part III)

Last months I’ve been very stressed involved in a pretty project at the GME. Some years ago, my coordinator Jacobo Díaz wrote a program called MEFLAP that created a FEM model with shell elements (with orthotropic materials definition)of voided slab for bridge decks. MEFLAP was conceived as an independent program that called COSMOS/M by Structural Research & Analisys Corporation to run analysis and show results. MEFLAP was written in DEC’s Visual Fortran.

Well, SRAC dissapeared, DEC was taken over by Compaq that was taken over by HP. So, you guessed it, MEFLAP is now a bunch of useless code (the binaries worked well with WinXP but hardly with Vista or Win7). It is the usual result if you use non standard programming languages and privative software.

We have not a free/libre replacement for non linear, FEM analisys programs today. So, if you are going to use a privative program, at least you must use the best. And Simulia Abaqus from Dassault Systèmes is a very good choice. Why? Because it’s a very advanced program with important aids for Civil, Mechanical, Aerospatial Engineering. Because it runs on Unix systems (last versions run on RHEL6 compatible GNU/Linux distributions). And because you can extend/customize Abaqus with a standard, powerful language: Python.

Abaqus write the user sessions as a sequence of Python commands. In fact the CAE has an interactive interpreter so you can run commands in it. It has an scripting interface that runs a Python script. And you can modify the GUI calling Python bindings for the FOX library (that it’s also free software).

The first step was to write a Python script (‘the core‘) that sequentially got the intial parameters, made numerical transformations, defined the final model and passed it to Abaqus via input (.inp) file. Then Abaqus run the analisys. And, when the script recovered the control, it made transformations on the database in order to get the real stresses that the structure bears.

When the script was tested and the results were right I wrote a easy GUI for introducing the initial parameters more easily. So the total program, called now VoidSlab, is launched as an Abaqus plugin.

So I have been very happy learning Abaqus (and improving my Python). I think Dassault are making a great job. And… errr… I wish they release it as free/libre software someday. Why not? Blender showed the way :-) But if they don’t release the code, and GME leave Abaqus, we still can use the core to create voided slab models in another program.

In the beginning Turing created the Machine

Alan Turing
Alan Turing, via

17 years ago I met for first time with the Alan Mathison Turing (1912-1954) figure. I was taking an AI course at the Faculty of Computer Science. Until that moment, I thought (as many people do) in Albert Einstein, Santiago Ramón y Cajal, Severo Ochoa, Marie Curie… as the privileged minds of the XX century. Then I discovered the top 1 of them: Alan Turing, the codebreaker who helped to Allies to win the II World War. Alan Turing, who helped to build the first computers as we know today. Alan Turing, who showed us the limits of computation. Father of the Artificial Intelligence.

Even all these great contributions to the human progress he was ostracized because his work for the Great Britain secret services and his sexual condition. The intolerance with the homosexuality in GB that time caused him great pains and it is said it pushed him to suicide (some investigators think he was murdered).

It’s clear Alan Turing changed our lives forever. I can’t imagine how the world would be if his life wasn’t so short.

World Poetry Day 2012

Another WPD. Still alive ;-)

I saw the best minds of my generation destroyed by madness, starving hysterical naked,
dragging themselves through the negro streets at dawn looking for an angry fix,
angelheaded hipsters burning for the ancient heavenly connection to the starry dynamo in the machinery of night,
who poverty and tatters and hollow-eyed and high sat up smoking in the supernatural darkness of cold-water flats floating across the tops of cities contemplating jazz,
who bared their brains to Heaven under the El and saw Mohammedan angels staggering on tenement roofs illuminated,
who passed through universities with radiant eyes hallucinating Arkansas and Blake-light tragedy among the scholars of war,
who were expelled from the academies for crazy & publishing obscene odes on the windows of the skull,
who cowered in unshaven rooms in underwear, burning their money in wastebaskets and listening to the Terror through the wall,
who got busted in their pubic beards returning through Laredo with a belt of marijuana for New York,
who ate fire in paint hotels or drank turpentine in Paradise Alley, death, or purgatoried their torsos night after night
with dreams, with drugs, with waking nightmares, alcohol and cock and endless balls,
incomparable blind streets of shuddering cloud and lightning in the mind leaping towards poles of Canada & Paterson, illuminating all the motionless world of Time between,
Peyote solidities of halls, backyard green tree cemetery dawns, wine drunkenness over the rooftops, storefront boroughs of teahead joyride neon blinking traffic light, sun and moon and tree vibrations in the roaring winter dusks of Brooklyn, ashcan rantings and kind king light of mind,
who chained themselves to subways for the endless ride from Battery to holy Bronx on benzedrine until the noise of wheels and children brought them down shuddering mouth-wracked and battered bleak of brain all drained of brilliance in the drear light of Zoo,
who sank all night in submarine light of Bickford’s floated out and sat through the stale beer afternoon in desolate Fugazzi’s, listening to the crack of doom on the hydrogen jukebox,
who talked continuously seventy hours from park to pad to bar to Bellevue to museum to the Brooklyn Bridge,
a lost batallion of platonic conversationalists jumping down the stoops off fire escapes off windowsills off Empire State out of the moon
yacketayakking screaming vomiting whispering facts and memories and anecdotes and eyeball kicks and shocks of hospitals and jails and wars,
whole intellects disgorged in total recall for seven days and nights with brilliant eyes, meat for the Synagogue cast on the pavement[…]

Allen Gingsberg, Howl (extract)

Serpents in my life (getting old ;-) part II)

In the previous post I wrote about one of my projects working at the GME and the new tools for me I used. This post relates to the other project I work on it.
The GME is partner of the MAAXIMUS Project (More Affordable Aircraft through eXtended, Integrated and Mature nUmerical Sizing). We put our knowledge about structural optimization to produce better materials and elements to be used in the aircraft industry–mainly in the AIRBUS Consortium.

Fuselage (source:
Fuselage (source:

Well, one of our tasks is to design and test some optimization methods. Because the complexity of the real elements to analize these are a collection of numerical methods working together. In fact the process implies using some computer programs: design, meshing, structural calculus, postprocessing tools, and, at the center of the system, the optimization tool.

The optimization tool generates via different engines  series of designs that must be tested by the other tools. Each engine implements a method or family methods. And this is my project: I must develop an engine to be integrated in a Dakota-style framework. I would use the old Fortran to do it. But I needed to program a text file parser, so I decided to make some experiments with the Python programming language.

I hadn’t programmed in Python before. I avoided it in part because I thought Python would have a lot of hype as some years ago it happened with Perl. Some proofs of concept after, I was really happy with the results. It’s true the basic Python was a bit limited to develop the numerical part of the engine. But then I discovered NumPy (now part of ScyPy libraries).

NumPy logo

NumPy allowed me quickly replace some code developed in Matlab language by my fellows and write my own, more clear and simpler code. And, after the experience of implementing some numerical methods, I seriously think it can be a good idea for me to leave Fortran (with the exception of educational purposes) and code Python+NumPy.

The Qt x-perience (getting old ;-), part I)

Some time ago I think about writting my (short) experience programming GUI with C++/Qt/Qwt. This interesting post by Linus Torvalds blaming C++ motivated me again to do it.
As I wrote in a previous post, last year I began to work in the Structural Mechanics Group of my civil engineers School. My first work was to develop a GUI to use with PULO by PhD Arturo Fontán, an engine used to optimize launched bridges. Trends in previous works in our team aimed to use MS VisualBasic, but I made a report evaluating some free and privative software. I considered some topics:

  • easy integration with PULO (it is written in Fortran)
  • respect toward standards
  • economy
  • cross-platform
  • easy learning
  • mature develop platform
  • community of users
  • maintainable

So I wrote about Java, .net, Qt, GTK+, wxWidgets, GNUstep,Fox Toolkit, and FLTK. And, you guess, Qt was the winner for me.
My next step was learning C++. I previously has written code in C, but never C++. In two weeks I learned C++ and Qt enough to make a simple proof-of-concept. I programmed a very (dirty) simple editor.

I learned a lot with two books: The C++ programming language by Bjarne Stroustrup and C++ GUI Programming with Qt4 by Jasmin Blanchette and  Mark Summerfield.

Then I began the real work. Of course, the final code can be cleaned and optimized, but after six months the main target was reached: to have an interface that easily can be used to introduce an initial design of properties and constructive process of the bridge, and read results from the engine and analyze them.


I used QtCreator to develop the GUI and Emacs to modify the engine. Both with best control version system ever, git, made my work really, shaming easy.

Initial design input
Initial design input

To develop the postprocess I thought on gnuplot, but finally I used the Qwt library because its good integration with Qt.


And what about C++? Well, Linus has strong reasons to run C++ down, but Linus develop operating systems. I think doing all this work in pure C would be a pain. It’s true if you want to program more confortable, you’ll produce a less optimum code. But it’s true too programming with C++ is far to attract monkey coders that only had in mind the fastest solution.

World Poetry Day

I want to celebrate World Poetry Day 2011 with this poem by John Keats :-)

Ode to a Nightingale
My heart aches, and a drowsy numbness pains
My sense, as though of hemlock I had drunk,
Or emptied some dull opiate to the drains
One minute past, and Lethe-wards had sunk:
‘Tis not through envy of thy happy lot,
But being too happy in thine happiness, –
That thou, light-winged Dryad of the trees,
In some melodious plot
Of beechen green and shadows numberless,
Singest of summer in full-throated ease.

O, for a draught of vintage! that hath been
Cool’d a long age in the deep-delved earth,
Tasting of Flora and the country green,
Dance, and Provençal song, and sunburnt mirth!
O for a beaker full of the warm South,
Full of the true, the blushful Hippocrene,
With beaded bubbles winking at the brim,
And purple-stained mouth;
That I might drink, and leave the world unseen,
And with thee fade away into the forest dim:

Fade far away, dissolve, and quite forget
What thou among the leaves hast never known,
The weariness, the fever, and the fret
Here, where men sit and hear each other groan;
Where palsy shakes a few, sad, last gray hairs,
Where youth grows pale, and spectre-thin, and dies;
Where but to think is to be full of sorrow
And leaden-eyed despairs,
Where Beauty cannot keep her lustrous eyes,
Or new Love pine at them beyond to-morrow.

Away! away! for I will fly to thee,
Not charioted by Bacchus and his pards,
But on the viewless wings of Poesy,
Though the dull brain perplexes and retards:
Already with thee! tender is the night,
And haply the Queen-Moon is on her throne,
Cluster’d around by all her starry Fays;
But here there is no light,
Save what from heaven is with the breezes blown
Through verdurous glooms and winding mossy ways.

I cannot see what flowers are at my feet,
Nor what soft incense hangs upon the boughs,
But, in embalmed darkness, guess each sweet
Wherewith the seasonable month endows
The grass, the thicket, and the fruit-tree wild;
White hawthorn, and the pastoral eglantine;
Fast fading violets cover’d up in leaves;
And mid-May’s eldest child,
The coming musk-rose, full of dewy wine,
The murmurous haunt of flies on summer eves.

Darkling I listen; and, for many a time
I have been half in love with easeful Death,
Call’d him soft names in many a mused rhyme,
To take into the air my quiet breath;
Now more than ever seems it rich to die,
To cease upon the midnight with no pain,
While thou art pouring forth thy soul abroad
In such an ecstasy!
Still wouldst thou sing, and I have ears in vain –
To thy high requiem become a sod.

Thou wast not born for death, immortal Bird!
No hungry generations tread thee down;
The voice I hear this passing night was heard
In ancient days by emperor and clown:
Perhaps the self-same song that found a path
Through the sad heart of Ruth, when, sick for home,
She stood in tears amid the alien corn;
The same that oft-times hath
Charm’d magic casements, opening on the foam
Of perilous seas, in faery lands forlorn.

Forlorn! the very word is like a bell
To toll me back from thee to my sole self!
Adieu! the fancy cannot cheat so well
As she is fam’d to do, deceiving elf.
Adieu! adieu! thy plaintive anthem fades
Past the near meadows, over the still stream,
Up the hill-side; and now ’tis buried deep
In the next valley-glades:
Was it a vision, or a waking dream?
Fled is that music: – Do I wake or sleep?

John Keats, 1819

Let’s launch it again

Yes, you guessed it. I’m trying to revive this blog again. The last months you only read sets of my microblog updates in Spanish. The 2010 year recently finished was a very intense year with too much changes in my life I’m still soaking up.

In the end of March I left CartoLab. After near two years it was a hard  decision, but I thought there was no choice. Too much conditions aimed to it. At least I still have good friends in the current CartoLab’s crew.

In April, some days after attending III DudesConf (first as Spanish official DebConf) my Grandmother passed away. She’s one of most important person in my life. It was a very hard blow, and we still are recovering from it. Moreover, I always think in her legacy as a woman ahead of her time. Her relationship with my Grandfather is an example of perfect marriage full of love and respect, too.

I lost all my energy. I temporarily left my studies and my activities as social volunteer at Portiño.

My personal rolling down stopped in June when Tania and me began a love story I hope it will be written about someday. It is epic, it is magic, it is romantic, it is the wonderful love you dream on when you are a child. She made me strong again, and we are living too many sweet experiences to remember.

So I began to rebuild my life. I’m running again the end of my Civil Engineering master. And I found a job in the Structural Mechanics Group in my School. I changed my profile from sysadmin to programmer, and I think I’m adapting to my new position well. Even when I never made object-oriented programming before. Now C++ and Qt are my swords.

2011 begins with new hopes and challenges. And, one of my targets is to get again discipline as (blog, technical, poetry) author. I’ll try to keep informed my friends about my life, and to write about interesting things to the strangers, again. Like the bridges I’m currently working on, let’s launch it!

Launched bridge

For ever and ever

Ámote eiquí

Ámote eiquí a carón do meu peito
brandamente namorado da tua boca
e sínto o berro quente do teu riso
e síntote, amor,
nos meus días cheos de fame.

Ámote eiquí sen presa nin parolas
porque o amor non sabe
de presa nin parolas para ser meirande

Ámote aquí, mainamente,
baixo a sombra calada dos teus ollos
como un paxaro que move as túas follas
e escapa ao teu adentro fuxidío.

Nada sei doutros día
nin outras voces
que non señan isas mans
e istes sonos
que me rouban cara a tí niste parque.

Nada sei xa.

Ti e máis eu pra sempre
niste banco cheo de tarde!

Salvador García Bodaño, Ao pé de cada hora (1967)

In flames sunset

Del amor imprevisto

Nadie comprendía el perfume
de la oscura magnolia de tu vientre.
Nadie sabía que martirizabas
un colibrí de amor entre los dientes.

Mil caballitos persas se dormían
en la plaza con luna de tu frente,
mientras que yo enlazaba cuatro noches
tu cintura, enemiga de la nieve.

Entre yeso y jazmines, tu mirada
era un pálido ramo de simientes.
Yo busqué, para darte, por mi pecho
las letras de marfil que dicen siempre.

Siempre, siempre: Jardín de mi agonía,
tu cuerpo fugitivo par siempre,
la sangre de tus venas en mi boca,
tu boca ya sin luz para mi muerte.

Federico García Lorca, “Diván del Tamarit” (1936)


¡Sensación de retorno!
¡Sensación de retorno!
Pero ¿de dónde, dónde?
Alli estuvimos, si,
juntos.Para encontrarnos
este día tan claro
las presencias de siempre
no bastaban.Los besos
se quedaban a medio
vivir de sus de sus destinos:
no sabían volar
de su ser en las bocas
hacia su pleno más.
Mi mirada, mirándote,
sentía paraísos
guardados más allá,
virginales jardines
de ti, donde con esta luz
de que disponíamos
no se podía entrar.
Por eso nos marchamos.
Se deshizo el abrazo,
se apartaron los ojos,
dejaron de mirarse
para buscar el mundo
donde nos encontraramos.
Y ha sido allí, sí, allí.
Nos hemos encontrado
allí. ¿Cómo, el reencuentro?

Pedro Salinas. Razón de Amor, 1936

I believed

El ángel

Al amanecer,
cuando la dureza del día es aún extraña
vuelvo a encontrarte en la precisa línea
desde la que la noche retrocede.
Reconozco tu oscura transparencia,
tu rostro no visible,
el ala o filo con el que he luchado.
Estás o vuelves o reapareces
en el extremo límite, señor
de lo indistinto.
No separes
la sombra de la luz que ella ha engendrado.

José Ángel Valente

Lone wave

Tomorrow I’ld must be attending to the IV Civil Engineering, Territory and Environment Congress at Málaga (South Spain). Finally I couldn’t travel because domestic problems, so I’m a bit sad.

I’m a bit sad because tomorrow morning my first boss J.R. Acinas will present the paper “POPE. Assisting to the port operations system. Experiences in Ferrol Outward Port”. It shows the first professional work in wich I’ve got involved. We developed in the Ports and Coast Lab of my Civil Engineering School a system that helped to take decissions about operations in the port based in 48/72 hours weather forecast. The program takes wave and wind forecast in great scales and it calculates wave, tide and currents in a thinner grid. And, of course, it was developed with very interesting pieces of free software like Delft University of Technology’ SWAN (Simulating WAves Nearshore), on top of a (Debian) GNU/Linux system.

We finished the works some years ago, but I’m still very fond of it :-) And I’ll be always grateful with Dr. Engineer Javier Eiras because the great work he did and the assistance he made me when he left the team.

Eternal poetry

When I was a teenager I had a controversy with my friends and our the Biology teacher. They said once the paper is destroyed, writtings are missed forever. Meanwhile, I defended even when the paper rots or burns, poetry will survive ever because it’s written on our souls.

Today I finished to read civil engineer José Antonio Fernandez Ordóñez‘ speech in his joining to the Fine Arts Academy of San Fernando. He finished with this paragraph:

“…don’t deceive ourselves, only the work of poets is really everlasting. When there’ll only be ruins of the most beautiful bridges in the world, Mozart’s music will remain so wonderful and new like the first day of its conception…”

So now I think I won that debate :-)


Chanson d’Après-midi

Quoique tes sourcils méchants
Te donnent un air étrange
Qui n’est pas celui d’un ange,
Sorcière aux yeux alléchants,

Je t’adore, ô ma frivole,
Ma terrible passion !
Avec la dévotion
Du prêtre pour son idole.

Le désert et la forêt
Embaument tes tresses rudes,
Ta tête a les attitudes
De l’énigme et du secret.

Sur ta chair le parfum rôde
Comme autour d’un encensoir ;
Tu charmes comme le soir,
Nymphe ténébreuse et chaude.

Ah ! les philtres les plus forts
Ne valent pas ta paresse,
Et tu connais la caresse
Qui fait revivre les morts !

Tes hanches sont amoureuses
De ton dos et de tes seins,
Et tu ravis les coussins
Par tes poses langoureuses.

Quelquefois, pour apaiser
Ta rage mystérieuse,
Tu prodigues, sérieuse,
La morsure et le baiser ;

Tu me déchires, ma brune,
Avec un rire moqueur,
Et puis tu mets sur mon cœur
Ton œil doux comme la lune.

Sous tes souliers de satin,
Sous tes charmants pieds de soie,
Moi, je mets ma grande joie,
Mon génie et mon destin,

Mon âme par toi guérie,
Par toi, lumière et couleur !
Explosion de chaleur
Dans ma noire Sibérie !

Charles Baudelaire, 1860

Yes (I hope) we can

Last Thursday I’ve been elected as president of GPUL. Since October 2008 I held that position but it happened because Emilio J. Padrón must be replaced. He went to the INRIA at Grenoble, and he needed to take a rest too: his work as president was impressive.

2009 was not a good year for GPUL. We tried to go on with our usual program of workshops and hackmeetings, making honor to our 10th anniversary, but we were forced to stop. Part of the problem were some personal (family) problems I bore this year.

So we (the new board of directors) face now the challenge of guideing GPUL to a new golden age in free software developing and promoting. In the next months we must work updating the infraestructure, then we’ll really try to keep up with the times.

The SS (Second Section) strikes back

As the great mass of Spanish blogosphere, I join to the “Fundamental Rights in the Internet Manifesto” against a new law project of our fascist govern that tries to block Internet web sites bypassing the courts.

  1. Copyright should not be placed above citizens’ fundamental rights to privacy, security, presumption of innocence, effective judicial protection and freedom of expression.
  2. Suspension of fundamental rights is and must remain an exclusive competence of judges. This blueprint, contrary to the provisions of Article 20.5 of the Spanish Constitution, places in the hands of the executive the power to keep Spanish citizens from accessing certain websites.
  3. The proposed laws would create legal uncertainty across Spanish IT companies, damaging one of the few areas of development and future of our economy, hindering the creation of startups, introducing barriers to competition and slowing down its international projection.
  4. The proposed laws threaten creativity and hinder cultural development. The Internet and new technologies have democratized the creation and publication of all types of content, which no longer depends on an old small industry but on multiple and different sources.
  5. Authors, like all workers, are entitled to live out of their creative ideas, business models and activities linked to their creations. Trying to hold an obsolete industry with legislative changes is neither fair nor realistic. If their business model was based on controlling copies of any creation and this is not possible any more on the Internet, they should look for a new business model.
  6. We believe that cultural industries need modern, effective, credible and affordable alternatives to survive. They also need to adapt to new social practices.
  7. The Internet should be free and not have any interference from groups that seek to perpetuate obsolete business models and stop the free flow of human knowledge.
  8. We ask the Government to guarantee net neutrality in Spain, as it will act as a framework in which a sustainable economy may develop.
  9. We propose a real reform of intellectual property rights in order to ensure a society of knowledge, promote the public domain and limit abuses from copyright organizations.
  10. In a democracy, laws and their amendments should only be adopted after a timely public debate and consultation with all involved parties. Legislative changes affecting fundamental rights can only be made in a Constitutional law.

Art & attitude of Civil Engineering

Next November, 30th at my Civil Engineers School we’ll enjoy a very interesting speech of Julio Martínez Calzón [wikipedia, ES] of MC-2. He’s currently one of the best Spanish civil engineers, he has a very impressive (technical and artistic) work in structural design.

Torre Collserola (From, under GFDL License)
Torre Collserola (From, under GFDL License)

He worked in the 70-80’s with José Antonio Fernández Ordóñez (JAFO) building bridges, but he has a lot of works about another structural types. More than 10 years ago I was lucky of attending another speech where he talked about built-on-the-ground-and-up structures, and he showed three great examples: the Collserola Tower and the sports dome Palau San Jordi in Barcelona, and the Congress Palace in Salamanca.