The Future

Tonight I’m feeling a bit weird. It’s a mix of tiredness and cluelessness, it feels like venturing into a new universe but I’m not quite there yet.

Going through some changes in my life, mostly positives, and accommodating accordingly. However, it is still a tremendous burden in my concience because sometimes it’s hard to tell whether what you do is right or wrong. Although it feel correct, people are always bound to feel hurt.

Computers are a great getaway from reality, at least it works for me. I feel like I belong in there, like I can be more than here, like I said its odd. Computers also make be feel somewhat immature, I know we humans are still evolving but machines now a days have so much more potential and most of us seem or want to ignore it.

The thing about machines is that they have no feelings… yet… something that has always amazed me. Understanding the binary language to which machines dance, and knowing the higher level of such, when will machines feel? will I enjoy the company of one? maybe instead of writing this he or she could just talk back to me or record my thoughts or just put me to sleep… maybe one day, hopefully.

Posted: February 4th, 2010
Categories: Technology, Thoughts
Tags: , , ,
Comments: No Comments.

La Bohemia

Esta noche me encuentro escribiendo otra vez. Me hierve la sangre al sentir mis ganas de escribir y el deseo de expresar cualquiera que sea lo que tenga que expresar en forma de letras. Hace ya algún tiempo no escribo ni una palabra que tenga sentido más allá del mundo mundano técnico, de mi conocimiento calculado-científico, donde las emociones y el existir son solo momentos débiles de nosotros los insignificantes humanos, sin el poder de la luz. Este lado de mi me encanta! El lado en el cual la ciencia y la tecnología se convierten en los juguetes del año pasado y las emociones y sentimientos en el nuevo juguete de hoy.

Apasionante como la sangre que brota de las heridas del naufrago de un amor imposible, donde la única salida es el intento mortal, salen mis palabras de mi mente y se convierten en poderosas esculturas de bronce indestructibles y eternas. Es extraño que después de tanto tiempo sin la tinta ni el papel, vea el despliegue de mis vocales formar tan fluido río de frases, donde el otro lado de mi irreconocible me encontraría. Alegría! Se siente en mi cuerpo. Alegría! Es volver a la expresión humana.

Esta noche donde el supuesto invierno nunca llegó, en la mitad del mundo y en el centro del calor, es fácil desprenderse de la realidad y mostrarse como es, puro, sin colgandejos ni educación, desnudo yo y la noche, desnudo yo y nadie más.

Quizás vuelva a tocar el libro que hace ya años empecé, quizás escriba más que antes, quizás nunca vuelva a escribir, las posibilidades son infinitas cuando te agarran las animas del amor a la cultura y de la pasión por la Bohemia.

Si, la Bohemia, una dama de unos ocho metros que se aparece en mi cuarto a eso de las once de la noche me acosa al papel. Ella me mira con ojos de perdida y con hambre de aventura y sed de libertad. Su piel es dura cual gitana, demostrando experiencia y al mismo tiempo frialdad. La Bohemia me acoge como si necesitara de mi, pero sin necesitar de mi.

Esta noche no fue diferente a las demás, ella vino me miro profundamente con esos ojos estelares, me susurro unas palabras y aquí me dejo…

Ella me dijo:

- Escribe Javi, escribe…

Posted: December 6th, 2009
Categories: Pensamientos
Tags: , , , ,
Comments: No Comments.

Silverlight Functional Testing with WebAii Framework

Summary

In this article you’ll get a glimpse of how the UltiStudio development team is tackleing the functionality tests for the product. If you are a Silverlight developer or are familiar with Silverlight you know that testing Silverlight applications for their functionality is not a trial task. This article will expose you to a young framework developed by the Art of Test people. Its name is WebAii.

Requirements

You should have the latest Visual Studio installed. MbUnit and TestDriven.Net should also be installed. Additionally, you should know how to create a Test Project and how to add Test Fixtures to it.

Who will benefit from this Article?

Anyone that works with Silverlight and is desperately looking for a way of functionally tests their applications.

WebAii, Here we go! ( with Super Mario voice :p )

This framework is currently Beta for Silverlight applications, young as I said earlier, therefore if you are planning to use it be patient and hang on. Let’s jump right into the tests. You will need the following files, download them to a preferred location and be ready to add their assemblies to your test project in Visual Studio.

• [WebAii 2009 Framework|

MbUnit

Once you have located the DLLs and assuming that you have Visual Studio, MbUnit and TestDrive.NET installed, go ahead and create a "MbUnit Test Project" in Visual Studio. Next, add a new TextFixture to your project and you are now ready to write some tests.

Setting up the Test Fixture

Once we've added the Fixture we should have something like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Editor.FunctionalTests

{

class SilverlightFunctionalTests

{

}

}

Now, add the MbUnit attribute [TestFixture] to the class, (don’t forget to make it public). Additionally, add a SetUp method. The code should look like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using MbUnit.Framework;

namespace Editor.FunctionalTests

{

[TestFixture]

public class SilverlightFunctionalTests

{

[TestFixtureSetUp]

public void SetUp()

{

}

}

}

Great! that was easy and I’m sure most of you are did this even before you read this. Next, we will add the WebAii to the Fixture. For the purpose of this example I will use a random URL, make sure you write yours correctly and that the URL you point to has the Silverlight application you are trying to test. I have added most of the WebAii set up within the SetUp method I just created, however feel free to put this code where you think it’s better. Go ahead and add the following code and then we’ll go over it:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using MbUnit.Framework;

using ArtOfTest.WebAii.Core;

using ArtOfTest.WebAii.TestTemplates;

using ArtOfTest.WebAii.Silverlight;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Editor.FunctionalTests

{

[TestFixture]

public class SilverlightFunctionalTests : BaseTest

{

private SilverlightApp _app;

[TestFixtureSetUp]

public void SetUp()

{

Settings settings = GetSettings();

settings.DefaultBrowser = BrowserType.InternetExplorer;

settings.EnableSilverlight = true;

Initialize(settings);

Manager.LaunchNewBrowser();

ActiveBrowser.NavigateTo("URL");

SilverlightAppsList apps = ActiveBrowser.SilverlightApps();

_app = apps.ElementAt(0);

_app.Connect();

}

}

}

public class SilverlightFunctionalTests : BaseTest

private SilverlightApp _app;

Settings settings = GetSettings();

settings.DefaultBrowser = BrowserType.InternetExplorer;

settings.EnableSilverlight = true;

Initialize(settings);

The first thing you’ll notice is that I’ve added WebAii objects (Green) . Most of this is set up and you will have to copy this code as is. Here, I’ve added inheritance to the BaseTest class, created a SilverlightApp object and initialized the settings by setting the a default browser and enabling silverlight.

Manager.LaunchNewBrowser();

ActiveBrowser.NavigateTo(“URL”);

SilverlightAppsList apps = ActiveBrowser.SilverlightApps();

_app = apps.ElementAt(0);

_app.Connect();

The next thing I wrote (Orange) will launch the browser we set in the settings and it will make it navigate to the URL that we have specified. Then the code will tell the browser to find all the Silverlight applications in the page and return a SilverlightAppsList (list of Silverlight applications). For the purpose of this example we only have one application in the page, hence why I get the element at position 0 within the list. Finally, I set the global SilverlightApp and immediately after, I called Connect() on the SilverlightApp.

At this point we are ready to start writing tests.

Writing Tests, finally!

Here is the fun stuff. I will show you a test that does a simple thing, it will click on the Silverlight application. In this section of this article I will try to give you a very broad understanding of what you should do in order to write your own tests. The framework does offer several methods that will allow you to be creative with your tests. I’ll point some of the most used ones and then I’ll give you a link for you to digest the rest.

To the code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Test]

public void ClickingSilverlightApplication_ShouldClickTheApplication_Test()

{

//Preconditions

FrameworkElement control = _app.FindName("PopupBorder1");

control.Wait.ForVisible();

//Actions

control.User.Click();

//Postconditions

Assert.isTrue(true);

}

//Preconditions

FrameworkElement control = _app.FindName(“PopupBorder1″);

control.Wait.ForVisible();

Fair enough, we have our precious test. It looks easy too\! As you can see, it works exactly as any unit test framework would. Allow me to explain it first. Initially (Green), I use the WebAii framework FindName method. There are a couple of things to say about this. FindName is a method that will look within the XAML of your silverlight application and it will try to find a XAML node with the Name attribute equal to the string you are passing to the method. The other thing I should say is that you can also call FindName like this: FindName<T>(<string>) where T is a specific type; I will show an example later on.

Keep in mind you have to know the Name attribute to find objects in the silverlight application. If the object is not found your test will time out and fail, so you will know. If it doesn’t then you’ll end up with a FrameworkElement or T if you used FindName<T>(<string>). As in the previous code, call Wait.ForVisible(). This will allow our test and the silverlight application to wait for each other.

control.User.Click();

The next piece of code (Orange) used the User property to call the action: Click(), simply to click on the found object. In this Actions section of the test you will usually be calling .User.<Something>, there are a lot of things that WebAii can do to mock the user functionality, here are some included on the version released at the moment I’m writing this article:

1
2
3
4
5
6
7
8
9
10
11
control.User.DragTo(...)

control.User.HoverOver(...)

control.User.KeyDown(...)

control.User.KeyPress(...)

control.User.MouseEnter(...)

control.User.TypeText(...)

You can get all of them by using the IntelliSense feature in Visual Studio. Their documentation is pretty good too.

As promised, here is the example of the FindName<T> overload.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Test]

public void FindEllipse_FindEllipseInApplication_Test()

{

//Preconditions

Ellipse control = app.FindName&lt;Ellipse&gt;("SomeEllipse");

control.Wait.ForVisible();

//Actions

//someaction

//Postconditions

//Asserts

}

Word of advise: The returned Ellipse is not a Silverlight control, is a WebAii control which means they are different types of objects. This means you will need to be creative in order to assert the different properties of the object.

Conclusion

By now you should have a broad understanding of how the WebAii framework works for Silverlight and what it’s needed to create tests based on this framework. Additionally, you should be aware that there are many options when it comes to mocking the User behavior and that in order to find objects in your application and interact with them you will need their XAML Name attribute. If you have any questions or get stuck anywhere while testing with WebAii don’t hesitate to submit a comment or write me an email to my Ultimate Email

If you want to learn more about WebAii and Silverlight head over to WebAii and Silverlight Documentation

Posted: August 10th, 2009
Categories: Programming, Technology
Tags: , , , , , ,
Comments: No Comments.

Silverlight Testing with Microsoft Silverlight Testing Framework

Summary

This page intents to explain in simple non-technical words how some of the unit testing, specifically testing for the designer portion of the project, is being done. This page contains examples of some unit tests and an explanation of their behavior.

1. Getting Familiar with Silverlight

If you are familiar with Silverlight already feel free to move on to section 2 of this page

For those of you that are not familiar with the Silverlight way of things, allow me to mention a couple of concepts to get you on the right track and to ease your understanding of the unit tests to follow.

Silverlight, in a nutshell, it’s driven by UserControls. These are Xaml files with code behind just like many other technologies from Microsoft, in Silverlight they are “rendered” when they are called in your browser.

For example:

1
2
3
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

This Xaml, which represents a UserControl, will display a TextBlock with the Text content of Hello World.

These UserControls as you would expect, can be constructed in your code behind to dynamically add more content to it. For example:

1
2
3
TextBlock textBlock = new TextBlock();
textBlock.Text = "Hello World";
LayoutRoot.Children.Add(textBlock);

To finalize this short Silverlight review, let me just say that obviously you can add as many other classes to a Silverlight project allowing the use of all of the wonders of Object Oriented programming, however only the UserControls will be the ones seen in the browser.

That’s it!

2. Lets jump right to it…

A simple file to test, and for the purpose of this example, it’s Editor.xaml file. This file is divided in 4 sections, when you open the Editor in a browser you would see the following:

editor screenshot

As you can see there are 4 sections ( Menu, Tool Bar, Designer, Status Bar ). In Silverlight terms these sections are called Borders (I said I wouldn’t get technical, I know). The simplest test that I can think of, is to test if the rendered Editor Xaml page has 4 sections. Here is what the test would look like:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[TestMethod]
[Asynchronous]
public void XAML_EditorContainsFourRowsTest()
{
//Preconditions
int rowDefinitions = 4;

//Actions
TestPanel.Children.Add(_page);

//Postconditions
EnqueueCallback( (Action)(() =&gt; Assert.AreEqual(_page.LayoutRoot.RowDefinitions.Count, rowDefinitions )));
EnqueueTestComplete();
}

The first thing you’ll notice is that this test looks similar to what a test would look in any other framework, i.e. MbUnit, etc.. The next thing you’ll notice is the [Asynchronous] tag. This is because Silverlight Unit Test Framework has support of asynchronous calls that are used when UserControls have data driven service calls. The last thing you’ll notice is that I’ve divided the method in 3 sections. I do it because it looks organized and I think is good practice. Preconditions includes initialization of variables and objects later used in the postconditions assertions against data gathered in the actions section. Actions includes calls to the object in test, in the example “_page” was added to the TestPanel UserControl. Postconditions includes assertions. Calls to EnqueueCallback and EnqueueTestComplete are part of the Asynchronous feature.

If this test wasn’t Asynchronous it would look like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[TestMethod]

public void XAML_EditorContainsFourRowsTest()

{

//Preconditions

int rowDefinitions = 4;

//Actions

TestPanel.Children.Add(_page);

//Postconditions

Assert.AreEqual(_page.LayoutRoot.RowDefinitions.Count, rowDefinitions );

}

Now, lets look at a more involved test. This next test is a test to a method in the AccordionToolBox UserControl.

The Accordion ToolBox currently looks like this:

accordion toolbox screenshot

Simply has an Accordion Silverlight control with some AccordionItem Silverlight controls and inside of each AccordionItem there is a StackPanel Silverlight control with some Buttons in it. In the UltiStudio world this are the equivalents:

  • AccordionItem EQUALS Section
  • Button inside StackPanel of AccordionItem EQUALS a Section Item

Here is a test to make sure that the code creating a section actually creates a section behind the scenes or dynamically.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[TestMethod]

public void InitializeSectionContent_Test()

{

//Preconditions

ToolBoxSection toolBoxSection = new ToolBoxSection("General", 1);

ToolBoxItem item = new ToolBoxItem("1 Column Section", 1, 1);

toolBoxSection.Items = new Collection();

toolBoxSection.Items.Add(item);

int expectedSectionSize = 1;

//Actions

AccordionItem accordionItem = _accordionToolBox.InitializeSectionContent(toolBoxSection);

StackPanel accordionContent = accordionItem.Content as StackPanel;

//Postconditions

Assert.IsNotNull(accordionItem);

Assert.AreEqual(accordionContent.Children.Count, expectedSectionSize);

}

Assuming you read the previous test, you’ll know how this test is divided. The test is simple hardcoding a section with an item and passing it to the InitializeSectionContent method in the AccordionToolBox UserControl, then the test verifies that the method created an AccordionItem with the section properties which include the item inside its StackPanel.

As per the comment I received from Robert, the _accordionToolBox object is variable that I initialized in the setup portion of the fixture. It would look something like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[TestClass]

public class AccordionToolBoxTests : SilverlightTest

{

private AccordionToolBox _accordionToolBox;

private Mock _mockFactory;

List _sections;

[TestInitialize]

public void SetUp()

{

_mockFactory = new Mock(MockBehavior.Strict);

_sections = new List();

_accordionToolBox = new AccordionToolBox(_mockFactory.Object);

TestPanel.Children.Add(_accordionToolBox);

}

Don’t mind the Mock if you are not familiar with it, Mock falls outside the scope of this article.

For now, I will leave this document as is, and if you have questions and suggestion please let me know, I will keep adding to it along with our development.

Posted: August 10th, 2009
Categories: Programming, Technology
Tags: , , , , , , ,
Comments: No Comments.

Future Parking Garage

I’ve been thinking about the future of parking garages…

I know what you are about to read is not that futuristic at all and probably a lot of people have thought of the same. I’m writing it down, just for the record, and hopefully in the future if this does occur, me or someone can have fun with it.

The future parking garage will work in the following way:

A person driving a vehicle (it could fly for all I care) goes into the garage through the lower level. This lower level is the only level where humans are allowed, meaning that there won’t be a need to be driving all over the parking garage looking for an open spot, therefore there won’t be any wasted petrol (assuming the vehicle runs in petrol) or battery, etc., you get the idea. Right at the entrance the person retrieves a ticket with a number which will point him/her to the numbered parking spot in this level, this spot is obviously available. Here I thought it would be necessary to have either a GPS-like navigation engraved in the ticket, guiding you to the parking spot or some sort of lighting system that would “light” you to your parking spot… neat.

Now, the person has arrived to the parking spot, and will step out of the vehicle and go to the store, restaurant, mall, etc.. As he/she walks away from the vehicle, the parking garage will pick up the vehicle from the parking spot. By picking up I mean the vehicle is parked on top of a platform that will rise from the ground. The vehicle is then transported to a higher level inside the parking garage and will be stored there probably in an alphabetical way, I’m thinking index by tag. This right here, would avoid almost 90% of the hussle that it is to find parking in a parking garage. Not to mention it would be safer for your vehicle (dings and dents) and for people because it avoids people getting ran over, people getting mugged, etc..

For those out there that are thinking what about the way out? I thought about it too :) . Well, assuming that the parking garage has assigned stores (e.g. nearby restaurants), one way this could work is that when the person is leaving that place your ticket signals a proximity alert to the garage (maybe the person will have to press a button on the ticket to avoid false proximity alerts), letting it know that the person’s vehicle is up for departure. Back in the garage the machine will probably use some fancy search algorithm and find the car based on the information of the signal. Once the person is physically in the garage he or she can find a way to the vehicle again using the ticket for navigation or something similar within the garage.

That’s it. This would be so awesome I can’t even explain how much. Hopefully I’m still around to see this happen, and I don’t mean some crappy-state-fair-like-carusel-powered parking garage. I mean really efficient type and not noisy :) .

Cheers!

Posted: July 6th, 2009
Categories: Technology, Thoughts
Tags: , , ,
Comments: 1 Comment.

Púrpura

Perdido en el confín de mis pensamientos me encontraba yo en medio de la selva. Como naufrago sin respiración me quedaba… el mundo se tornaba púrpura y sentía mis ojos de sus anillos escapar. El dolor intenso que sentía no podía ser otro que dolor real. En este caso no basta pellizcarse para saber que lo que no es sueño es real. 30 segundos pasaron como habían pasado ya. Mágicamente deje de respirar sin embargo el peso de mi vida no dejó. Morado como estaba el cielo verde me sentí. Ese sentimiento de confusión me dio la fuerza de seguir sin saber… esperando la presencia de algún ser irracional e imaginario fue perder el tiempo, al parecer en este relato ninguno de los dos seria realidad. Desde la arena donde sentado estaba me paré. Caminé hacia donde podía pero todo era exactamente igual.
Después de caminar por más de lo que parecía una eternidad, entendí que había sucedido conmigo y con el lugar. Basado en mi simple caminar y en la forma en que el cielo púrpura se volvió, vi que nosotros humanos, estamos expuestos a el crimen más atroz de todos, la rutina. Entendí que es posible que todos en algún momento del caminar de nuestras vidas, somos arrojados a un lugar desierto donde el púrpura de los cubículos nos ahoga. La tristeza no es el hecho de que nos ahoga, si no que sabemos que nos ahoga y sin embargo aquí estamos cada lunes. No tengo consejo alguno y espero que algún día mi cielo púrpura finalmente se vuelva azul.

Dedicado a la vida corporativa y sus corbatas.

Rocko.

Posted: June 1st, 2009
Categories: Pensamientos
Tags: , , ,
Comments: No Comments.

Pensamiento utópico

Algunos buscamos y buscamos el camino a seguir. Muchos de nosotros no tenemos la necesidad porque sabemos que siempre lo hemos seguido, sin embargo buscamos. En estos par de meses que se fueron con el amanezer de hoy, me dí cuenta de que la gente nunca sabe lo que hace y que el que dice saber lo único que sabe es que miente. Unos intentan dejar las cosas al destino otros al trabajo y otros al amor.

Personalmente yo no tengo un camino claro pero se que está entre los espacios de mis triunfos y mis fracasos. Hoy me siento bien, cansado pero bien. Mi camino, se, tiene que orientarse al amor, pues afortunadamente siempre he tenido en abundancia. Ojalá pudiera compartir siquiera un poco, el mundo sería diferente.

Pensamiento aparte: Pacho dile a Sydney que madrugue más, 8 no es 6. Abrazos.

Posted: March 13th, 2009
Categories: Pensamientos
Tags: , , ,
Comments: No Comments.

Viaje Espacial

Entre la borrachera que llevaba y la velocidad del carro no pude evitar pensar que iba yo saliendo de la estratosfera dentro de algún tipo de nave espacial. Fue ahí donde cerré los ojos y me dejé llevar por el alcohol que fluía en mi sangre donde aquellas moléculas de trago galopaban mis venas decapitando glóbulos rojos y demás. Cuando este caballero sintió el vacío espacial no hubo quien detener su éxtasis, fue universal. Abrí los ojos por segundos viendo a mi capitán de vuelo la nave manejar y con sus rizos de oro y ojos de mar. Cerrando mis ojos, sabiendo que en mejor manos no he podido estar, miles de estrellas giraron através del ventanal. Quise contarlas quise acariciar su nebulosa piel pero gracias a la física y el alcohol ni tocar ni acariciar eran de alcanzar. Abrí los ojos otra vez solo para saber que la nave fue un sueño de segundos…
Por cuestión de embriaguez me baje del carro y un segundo después la comandante y yo terminamos en una dulce cama durmiendo mi viaje espacial.

Posted: December 3rd, 2008
Categories: Pensamientos
Tags: , , , , , ,
Comments: No Comments.

Thinking through

So I’m back in my apartment after a long weekend in Seattle. I refer to it as long not because I thought it was long but because flying from coast to coast 9 hours and a stop in Dallas, is a long trip. I’m thinking through the options that are now open and the ones that are closed. The ones that are closed are simply gone from now and maybe will open next year or somewhere in the near future, the ones that are open can’t close on me, at least I will keep trying to leave them open. I know that this does not make any sense what so ever but maybe one day you’ll find yourself in my current situation and then this will all make sense.

If you do happen to be in my shoes one day, DO NOT give up, giving up should not even be in your head. Pretend you are fighting in a cage with about 3 to 4 monsters (make them look mean and sick). And POW! you just received a blow to your face by all of them at once… you are laying on the floor looking at their blurry image and your mind is blank. At this point you can only have one thought in your mind, ONLY ONE. That is: GET UP!

It’s not the size of the dog in the fight, it’s the size of the fight in the dog.” — Mark Twain

Posted: November 6th, 2008
Categories: Pensamientos
Tags: , , , ,
Comments: No Comments.

Corazón de Melón

Pensé que el huracán había pasado pero la calma antes de la tormenta nunca había llegado y mi respiración iba a cien. Como una bala traté de disparar mis palabras en el papel pero quizás mi revolver se quedo sin munición. En busca de inspiración y de un poco de ignición, escuche la música que me ayuda a pasar el tiempo… No fue fácil, no fue fácil saber que este mundo gira y que tu giras con el. Los sentimientos se apoderan de mi cuando la verdad se apodera de mis sentimientos y veo como el mundo se cae a pedazos. Rompecabezas de imágenes que vemos en la tele y sin embargo seguimos viendo. Si miramos, aceptamos y si no, nadie nos acepta. El himno sin melodía de aquellos como yo que viven del detalle pero pretenden lo contrario.

Como una rosa con espinas defendiéndose de no se sabe que. Los días pasan y pensamos más que nadie pero nadie nos piensa. Miramos al mundo de un punto óptico del cual no existe perspectiva obtusa… fácil de entender. Mientras recordamos las memorias de otras, los huracanes seguirán estremeciendo el cielo y acabando con lo que se enfrenten. Nosotros mientras ellos lloran, bailamos al ritmo de la elección y como por amnesia el dolor pierde sentido. Acuérdate de que tu eres el cambio del mundo y que eres producto del amor de dos y como deber, amor tienes que dar.

Por no terminar las palabras de forma inoficiosa y con sabor a religión o política, igual, piensa en tu madre. Piensa en tu padre. Si te es difícil mirar dentro de ti, dentro del músculo, corazón. Corazón te pido que pienses, OK? Si te reis, corazón tienes, si no, más corazón tiene un melón. Melón que por culpa de la vida dulce ha dejado de ser.

Rocko

Posted: September 9th, 2008
Categories: Pensamientos
Tags: , , , , ,
Comments: 1 Comment.
Get Adobe Flash playerPlugin by wpburn.com wordpress themes