<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Joan Mira Studio</title>
        <link>https://www.joanmira.com</link>
        <description>Modern Software Engineering &amp; UI/UX Design</description>
        <lastBuildDate>Sat, 06 Dec 2025 16:44:06 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Joan Mira Studio</title>
            <url>https://www.joanmira.com/img/apple-touch-icon.png</url>
            <link>https://www.joanmira.com</link>
        </image>
        <copyright>All rights reserved 2025, Joan Mira Studio</copyright>
        <item>
            <title><![CDATA[The spirituality in Japan]]></title>
            <link>https://www.joanmira.com/blog/spirituality-in-japan</link>
            <guid>https://www.joanmira.com/blog/spirituality-in-japan</guid>
            <pubDate>Tue, 29 Nov 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[The differences between Eastern and Western religions are substantial but they have some things in common]]></description>
            <content:encoded><![CDATA[<p>I start writing this new blog post sitting on the bed in my room at <a href="https://www.hotel-graphy.com/">Hotel Graphy</a> (I recommended it) in Nezu, Tokyo. Nearby there is a <a href="https://en.wikipedia.org/wiki/Nezu_Shrine">quite famous Shinto shrine</a> and in spring there are very long queues to see the azaleas in its gardens. Nezu is also very close to the popular shopping district of <a href="https://en.wikipedia.org/wiki/Ueno">Ueno</a> with its <a href="https://en.wikipedia.org/wiki/Ueno_Park">big park</a> and <a href="https://en.wikipedia.org/wiki/Ueno_Zoo">Zoo</a> and the traditional neighbourhood of <a href="https://en.wikipedia.org/wiki/Yanaka,_Tokyo">Yanaka</a>.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/azaleas.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/azaleas.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/azaleas-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/azaleas-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/azaleas.jpg" alt="Azaleas at Nezu Shinto Shrine" loading="lazy">
        </picture>
        <figcaption>Azaleas at Nezu Shinto Shrine</figcaption>
      </figure></p>
<p>The hotel room is small with typical western furniture and decoration. I would have liked to say goodbye to Japan enjoying a Japanese-style room with tatami and futon, but perhaps it is better to leave still wanting to do things. Aspiring to have <strong>everything</strong> is an illusion that can lead to unhappiness and depression by not being able to achieve it, by losing it (for whatever reason) or by reaching a state of indifference and lack of interest in doing new things.</p>
<p>There&#39;s only one week left. Last week in Japan before I get on that one-way ticket plane back home. It saddens me since I still feel passion for Japanese culture, but on the other hand, I am also happy to be able to live again surrounded by my culture and my family. It has been almost four years that I have spent in Japan. They have flown by quickly. I have enjoyed learning new things almost every day (although the Japanese language is quite hard) and delving into their culture and traditions. I will try in the following lines to share some of that learning and observations, especially about the spiritual life of the Japanese people and how it compares with that of Westerners.</p>
<p>Thanks to <a href="https://verdadyreligiones.blogspot.com/">Javier Moreno</a> and <a href="https://rustyecow66.bike">Josep Lluis Mira</a> for inspiring me to write about it!</p>
<h3 id="are-the-japanese-people-religious">Are the Japanese people religious?</h3>
<p>The vast majority of Japanese declare themselves &quot;non-religious.&quot; However, about 80% of the population participates in Shinto and Buddhist religious or spiritual activities, often together. They worship both ancestors and spirits (<a href="https://en.wikipedia.org/wiki/Kami">kami</a>) at home altars and public shrines as well as Buddhas in temples. This unique mix of religions is known as <a href="https://en.wikipedia.org/wiki/Shinbutsu-sh%C5%ABg%C5%8D">Shinbutsu shūgō</a>.</p>
<p>From the beginning of the Meiji era (1868-1912) until the end of World War II, <a href="https://en.wikipedia.org/wiki/State_Shinto">Shinto became the official religion of Japan</a>. Shinto shrines were &quot;purified&quot; and Buddhism was persecuted, accused of being a foreign religion. Today, clearly differentiated Buddhist temples can be seen, although traces of syncretism remain.</p>
<p>Shinto (神道 Shintō) means &quot;the way of the gods&quot;, and is an animistic polytheistic system that has thousands of kami deities. The kami are deities of nature, for example, the sun, the sea, trees, rice and even sounds. This religion originated in Japan and is almost exclusive there.</p>
<p>There are a few sacred texts, some of which are the <a href="https://en.wikipedia.org/wiki/Kojiki">Kojiki</a> and the <a href="https://en.wikipedia.org/wiki/Shoku_Nihongi">Shoku Nihongi</a>.</p>
<p>Another important aspect is that there are many schools, groups, sects and religious movements derived from Shintoism.</p>
<p>At some point it seems that the topic has gotten a little out of hand, coming to have some of the most diverse kami, such as the god of the toilet, the god of sudden death, the god of the poor, the god of opportunity or the god of epidemics. Better that you see the video that Nekojitablog has prepared about <strong>the rarest gods in Japan</strong> for your delight. Don&#39;t forget to enable the subtitles:</p>
<iframe width="100%" height="394" src="https://www.youtube.com/embed/2kQA9F_PmMc" title="Japan's weirdest gods" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<p>Buddhism was born in India and is a religion based on Buddha&#39;s teachings and the hope of achieving Enlightenment by breaking the cycle of reincarnations. It was imported to Japan from China during the 6th century. Within Japan, various schools and trends began to emerge, starting with <a href="https://en.wikipedia.org/wiki/Mahayana">Mahayana Buddhism</a>, however, the trend that prospered in Japan and caused an impact on the Japanese culture is <a href="https://en.wikipedia.org/wiki/Zen">Zen Buddhism</a> (禅).</p>
<p>The Japanese word for religion is <em>shūkyō</em> which comes from shū &quot;sect&quot; and kyō &quot;doctrine&quot;, that is, sectarian doctrine, so it can have a pejorative connotation. That is why most of the Japanese claim not to belong to any religion. However, if they have to define themselves with any religion, they would probably prefer to do so with Buddhism, since it is an established religion in the West with a similar status to Christianity or Islam, while Shintoism may be more misunderstood as something &quot;pagan&quot; or superstitious.</p>
<p>Due to the characteristics of each religion and its emphasis, Shintoism, for example, practically does not mention anything about life after death and focuses on life. In addition, the dead are taboo because they make &quot;dirty&quot; the place, while Buddhism attaches great importance to having a good or auspicious rebirth in future lives.</p>
<blockquote>
<p>A common phrase in Japan is that the Japanese are &quot;born Shinto and die Buddhist&quot; because it is common for young children to be presented at Shinto shrines (by tradition at 13 days old) but almost all funerals are held in Buddhist temples</p>
</blockquote>
<p>Therefore, we can say that the Japanese follow Shinto for ceremonies related to the main stages of life (births, weddings) or for family or personal prosperity (financial success, love, career, etc). While Buddhism is left for funeral ceremonies or linked to personal piety to achieve Enlightenment. In any case, in their houses, it is normal to find a small Shinto altar, near a statue of Buddha.</p>
<h3 id="differences-between-shinto-shrines-and-buddhist-temples">Differences between Shinto shrines and Buddhist temples</h3>
<p>In Japanese, <a href="https://en.wikipedia.org/wiki/Buddhist_temples_in_Japan">Buddhist temples</a> are called <em>tera</em> or <em>dera</em> (寺), like Kiyomizu-dera in Kyoto, or added the suffix <em>-ji</em>, for example Kinkaku-ji (the golden temple). <a href="https://en.wikipedia.org/wiki/Shinto_shrine">Shinto shrines</a> are called <em>jinja</em> (神社), such as Ujigami-jinja, <em>taisha</em> (Fushimi Inari Taisha), <em>jingu</em> (Heian-jingu) or the suffix <em>-gu</em> (Tosho-gu) is added.</p>
<h3 id="shinto-shrines">Shinto shrines</h3>
<p>The main difference between a Buddhist temple and a Shinto shrine is in the access to the place of worship. Shintô shrines always have a <a href="https://en.wikipedia.org/wiki/Torii">torii</a> 鳥居 (sacred gate), most of the time red, which delimits the passage from the profane world to the sacred world of the kami. It is good manners to bow slightly before going through the torii and enter the gate from the side, as the centre is reserved for the kami (gods) to pass through.</p>
<p>On the trip I made last year to <a href="https://en.wikipedia.org/wiki/Naoshima,_Kagawa">Naoshima</a> (an island with many art museums), I came across a torii in the middle of the beach. No one knows why the torii gate is so far from Ebisu Shrine (the God of luck), but what people do know is that if you place a stone on top of the gate, your prayer has a very good chance of coming true!</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/naoshima-torii.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/naoshima-torii.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/naoshima-torii-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/naoshima-torii-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/naoshima-torii.jpg" alt="Torii on Naoshima beach near the Benesse art museum" loading="lazy">
        </picture>
        <figcaption>Torii on Naoshima beach near the Benesse art museum</figcaption>
      </figure></p>
<p>In 2014 I also visited the famous island of Miyajima, near Hiroshima (one of the places where the atomic bomb was dropped). There is a very nice torii in the middle of the sea. Sometimes the tide is low, so make sure you take the photo at the right time! In recent years they have been making repairs and improvements, but they are already finished, so prepare the camera if you plan to visit it.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/miyajima-torii.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/miyajima-torii.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/miyajima-torii-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/miyajima-torii-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/miyajima-torii.jpg" alt="Torii in Miyajima, near Hiroshima" loading="lazy">
        </picture>
        <figcaption>Torii in Miyajima, near Hiroshima</figcaption>
      </figure></p>
<p>At the entrance, it is also common to find a <a href="https://en.wikipedia.org/wiki/Shimenawa">shimenawa</a> (標縄/注連縄/七五三縄), a thick rope of rice straw and <a href="https://en.wikipedia.org/wiki/Shide_(Shinto)">shide</a> (紙垂, 四手), a zigzag-shaped paper streamer used by Miko priestesses for purification and blessing.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/shide.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/shide.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/shide-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/shide-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/shide.jpg" alt="Shide and shimenawa at a shrine near my first apartment in Otsuka, Tokyo" loading="lazy">
        </picture>
        <figcaption>Shide and shimenawa at a shrine near my first apartment in Otsuka, Tokyo</figcaption>
      </figure></p>
<p>After crossing the torii, there will be a small stone fountain with one or several small ladles (usually made of bamboo). This area is called <a href="https://en.wikipedia.org/wiki/Ch%C5%8Dzuya">chôzuya</a> (手水舎) and it is where the visitors wash their hands and mouths to be free from any spiritual contamination. The correct process for the washing ritual is as follows:</p>
<ul>
<li>Take the ladle with your right hand and wash your left hand with a little water.</li>
<li>Take the ladle with your left hand and wash your right hand.</li>
<li>Take the ladle with your right hand and use it to put water in your left hand.</li>
<li>Use the water in your left hand to rinse your mouth well. <strong>DO NOT drink the water directly from the ladle!</strong>.</li>
<li>Wash your left hand again with the ladle.</li>
<li>Put the ladle vertically so that all the water falls before putting it back where it was.</li>
</ul>
<iframe width="100%" height="394" src="https://www.youtube.com/embed/R4gXGdwGX_s" title="Ritual for washing yourself at a Japanese shrine" frameborder="0" allow=" accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<blockquote>
<p>The act of purification before visiting these sacred places is very important.</p>
</blockquote>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/chozuya.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/chozuya.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/chozuya-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/chozuya-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/chozuya.jpg" alt="Chôzuya made with bamboo in a Kyoto temple" loading="lazy">
        </picture>
        <figcaption>Chôzuya made with bamboo in a Kyoto temple</figcaption>
      </figure></p>
<p>The Shinto shrine is mainly made up of two buildings. The <a href="https://en.wikipedia.org/wiki/Haiden_(Shinto)">haiden</a> (拝殿), where the ceremonies are held, and the <a href="https://en.wikipedia.org/wiki/Honden">honden</a> (本殿), a closed building reserved for the kami and the objects that personify them. The two buildings are sometimes connected to each other and surmounted by gables.</p>
<p>Once you have already washed and purified yourself, you can head to the main building. There is usually a small queue of people waiting their turn to pray. When your turn comes, do not stand in the centre (for the same reason as in the torii). Stand aside and take a bow. If there is a bell, ring it. In this way, you inform the Gods that they have visitors. Put your offering in the offering box without making a lot of noise. The 5 yen coin is the best choice because its name resembles the word <em>bond</em>, as in a relationship. Then do the following:</p>
<ul>
<li>Two bows</li>
<li>Two claps with your left hand a little higher</li>
<li>One bow</li>
<li>Put both hands together and if you want, close your eyes</li>
<li>Do your prayer. Normally it lasts between 10 and 30 seconds.</li>
<li>When you finish the prayer, make one last bow and that&#39;s it</li>
</ul>
<iframe width="100%" height="394" src="https://www.youtube.com/embed/rSSCAMEvckw" title="How to pray at a Shinto shrine" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<p>Within the shrine compound, you will often come across small wooden plaques hanging. They are called <a href="https://en.wikipedia.org/wiki/Ema_(Shinto)">ema</a> and in them, the visitors write their wishes and pray to the kami of the sanctuary to fulfil them. For example, at the time when the university entrance exams are held, shrines such as the Yushima Tenjin, in the Tokyo district of Bunkyō, and the Dazaifu Tenman, in Fukuoka, are filled with ema with messages asking to pass the exams.</p>
<p>&#39;Well-being for the family&#39;, &#39;Prosperity in business&#39;, &#39;Good health&#39; and &#39;Success in love&#39; are some of the messages that people often write on emas. &#39;Passing the exams&#39; is what students usually ask for at the 12,000 shrines throughout Japan dedicated to education-related deities. One of them is Dazaifu Tenman, in which the academic Sugawara Michizane, considered a god of studies, is venerated. People choose the sanctuary or temple whose deity suits the wish or request that they want to carry out. Once in the enclosure, an ema is bought, the message is written and it is hung in the corresponding place.</p>
<p>There are no rules on how to write in emas. However, the face on which a drawing appears corresponds to the front; the wish or request is written on the back, along with the name, address and other personal information, although it is not necessary to put the name if one does not want to. The ema can be hung in the sanctuary, but it is also possible to make the offering at home. An ema costs between 500 and 1,000 yen.</p>
<p>If data protection agencies in Europe are so concerned about cookies on the Internet, I wonder what they will think about these very personal and public messages!...</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/ema.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/ema.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/ema-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/ema-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/ema.jpg" alt="Ema wooden boards where wishes are written for the kami" loading="lazy">
        </picture>
        <figcaption>Ema wooden boards where wishes are written for the kami</figcaption>
      </figure></p>
<p>Via <a href="https://www.nippon.com/en/features/jg00030/">Nippon.com</a> I found out about the origin of the ema:</p>
<p>In ancient Japan, it was believed that the gods travelled to the human realms on horses. In the Nara period (710–794) people dedicated horses to temples and shrines. As the practice developed, pictures of horses on wooden tablets were substituted for real animals. The kanji for ema are 絵馬, meaning “picture” and “horse.”</p>
<p>Today, ema designs are not limited to horses, and often have a picture of the year’s eto, or zodiacal animal. The system of associating a different animal with each year in a 12-year cycle came from China during the sixth century. In Japan, the animals (in order) are the rat, ox, tiger, rabbit, dragon, snake, horse, sheep, monkey, rooster, dog, and boar.</p>
<p>Examples of Shinto shrines:</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/kiyomizu-dera.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/kiyomizu-dera.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/kiyomizu-dera-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/kiyomizu-dera-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/kiyomizu-dera.jpg" alt="Kiyomizu-dera Shrine stands on top of a mountain in Kyoto and is a World Heritage Site" loading="lazy">
        </picture>
        <figcaption>Kiyomizu-dera Shrine stands on top of a mountain in Kyoto and is a World Heritage Site</figcaption>
      </figure></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/fushimi-inari.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/fushimi-inari.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/fushimi-inari-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/fushimi-inari-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/fushimi-inari.jpg" alt="Fushimi Inari Shrine in Kyoto is very popular for its many red torii. Photo by Junsheng Chen on Unsplash" loading="lazy">
        </picture>
        <figcaption>Fushimi Inari Shrine in Kyoto is very popular for its many red torii. Photo by Junsheng Chen on Unsplash</figcaption>
      </figure></p>
<h3 id="buddhist-temples">Buddhist temples</h3>
<p>The entrance of Buddhist temples usually has a large gate with a roof called <a href="https://en.wikipedia.org/wiki/Mon_(architecture)">Mon</a>. The suffix <em>-mon</em> is also often used to designate doors, for example, &quot;omote-mon&quot; (main door). Often, on the sides of the Mon, we will find the protective deities <a href="https://en.wikipedia.org/wiki/Nio">Niō</a> (仁王).</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/mon.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/mon.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/mon-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/mon-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/mon.jpg" alt="Nandai-mon, the great south gate at Todai-ji temple in Nara" loading="lazy">
        </picture>
        <figcaption>Nandai-mon, the great south gate at Todai-ji temple in Nara</figcaption>
      </figure></p>
<p>The Buddhist temple is made up of several buildings. The most important is the <a href="https://en.wikipedia.org/wiki/Main_Hall_(Japanese_Buddhism)">kondô</a>, also known as <em>Butsuden</em>, <em>Butsu-dō</em>, <em>konpon-chūdō</em>, and <em>hondō</em> (the golden hall). It&#39;s where the cult statue is.</p>
<p>Another very easy-to-recognize building that indicates that it is a Buddhist temple is the <a href="https://en.wikipedia.org/wiki/Pagoda">pagoda</a>. It is an evolution of the Indian stupa. In Japanese, it is called <em>tô</em> and it can have three to five stories.</p>
<p><a href="https://www.instagram.com/explore/locations/11355804/chureito-pagoda/">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/pagoda.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/pagoda.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/pagoda-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/pagoda-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/pagoda.jpg" alt="Classic photo of Mount Fuji from Chureito Pagoda in Fujiyoshida" loading="lazy">
        </picture>
        <figcaption>Classic photo of Mount Fuji from Chureito Pagoda in Fujiyoshida</figcaption>
      </figure></a></p>
<p>Different-sized statues representing Buddha, or bodhisattvas, are also very present in the complex. Buddhist temples usually have a garden (a <a href="https://en.wikipedia.org/wiki/Japanese_dry_garden">dry garden</a> in the case of the Zen branch), usually lit by stone lanterns <a href="https://en.wikipedia.org/wiki/Stone_lantern">Tōrō</a> (灯籠 or 灯篭, 灯楼).</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/karesansui.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/karesansui.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/karesansui-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/karesansui-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/karesansui.jpg" alt="Dry Garden in Takamatsu Castle Garden" loading="lazy">
        </picture>
        <figcaption>Dry Garden in Takamatsu Castle Garden</figcaption>
      </figure></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/big-budha.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/big-budha.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/big-budha-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/big-budha-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/big-budha.jpg" alt="Big Buddha in Kamakura" loading="lazy">
        </picture>
        <figcaption>Big Buddha in Kamakura</figcaption>
      </figure></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/budha.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/budha.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/budha-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/budha-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/budha.jpg" alt="Buddha statue in Nikko" loading="lazy">
        </picture>
        <figcaption>Buddha statue in Nikko</figcaption>
      </figure></p>
<p>When I went to <a href="https://en.wikipedia.org/wiki/Nikk%C5%8D">Nikko</a> (north of Tokyo), I visited the <a href="https://en.wikipedia.org/wiki/T%C5%8Dsh%C5%8D-g%C5%AB">Tōshōgū Shrine</a> (東照宮). It is a spectacular memorial to <a href="https://en.wikipedia.org/wiki/Tokugawa_Ieyasu">Tokugawa Ieyasu</a>, the <a href="https://en.wikipedia.org/wiki/Shogun">shogun</a> who ruled Japan for 250 years until 1868. Both Shinto and Buddhist elements can be found in the shrine, which was common until <a href="https://en.wikipedia.org/wiki/Meiji_era">the Meiji era</a>.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/toro.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/toro.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/toro-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/toro-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/toro.jpg" alt="Stone lanterns at Toshogu Shrine in Nikko" loading="lazy">
        </picture>
        <figcaption>Stone lanterns at Toshogu Shrine in Nikko</figcaption>
      </figure></p>
<p>Another of the typical rituals in Buddhist temples is to burn an incense called <a href="https://en.wikipedia.org/wiki/Japanese_incense">Osenko</a> (incense sticks). In particularly popular temples, this ritual of burning incense can produce quite a bit of smoke, so don&#39;t be too alarmed. Some people like to blow smoke into their faces. This is because the smoke is believed to possess magical healing powers.</p>
<p>If you decide to buy a pack of incense, <strong>do not light it using others that are already lit</strong>, as it is considered a symbol of taking on the sins of others.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/incense.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/incense.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/incense-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/incense-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/incense.jpg" alt="Incense burning in a Buddhist temple" loading="lazy">
        </picture>
        <figcaption>Incense burning in a Buddhist temple</figcaption>
      </figure></p>
<p>Examples of Buddhist temples:</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/byodoin.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/byodoin.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/byodoin-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/byodoin-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/byodoin.jpg" alt="Byōdō-in temple in Uji is a World Heritage Site and is near Kyoto" loading="lazy">
        </picture>
        <figcaption>Byōdō-in temple in Uji is a World Heritage Site and is near Kyoto</figcaption>
      </figure></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/kinkakuji.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/kinkakuji.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/kinkakuji-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/kinkakuji-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/kinkakuji.jpg" alt="The Kinkaku-ji temple (known as the Golden Pavilion) is one of the most beautiful and is also a World Heritage Site" loading="lazy">
        </picture>
        <figcaption>The Kinkaku-ji temple (known as the Golden Pavilion) is one of the most beautiful and is also a World Heritage Site</figcaption>
      </figure></p>
<h3 id="other-spiritual-activities-and-customs">Other spiritual activities and customs</h3>
<h4 id="the-omamori">The omamori</h4>
<p>One of my favourite things to do when visiting a shrine or temple is to buy a Japanese amulet. They are called <a href="https://en.wikipedia.org/wiki/Omamori">omamori</a> and provide various forms of luck and protection. The most interesting I bought provides protection on the road, to avoid traffic accidents. They usually cost between 500 and 2000 yen, although there are more expensive ones.</p>
<p>The word <em>omamori</em> (守り) means &quot;protection&quot;. Originally they were made of paper or wood, but nowadays they are small items that are generally kept inside a few small brocaded silk bags and may contain a prayer or religious inscription.</p>
<p>The <em>omamori</em> become sacred through the use of rituals. They are also a form of donation from visitors to the temple or sanctuary. They are also often used as a gift to wish a friend, colleague or family member good wishes or to ward off bad luck. They are often seen in handbags, attached to mobile phone straps, in cars, etc.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/omamori.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/omamori.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/omamori-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/omamori-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/omamori.jpg" alt="By Leongboy1 - Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=5048916" loading="lazy">
        </picture>
        <figcaption>By Leongboy1 - Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=5048916</figcaption>
      </figure></p>
<h4 id="forest-bathing-and-power-spots">Forest bathing and power spots</h4>
<p>Another of my favourite activities is practising <em>shinrin-yoku</em> (forest bathing) and visiting the <em>power spots</em>. In 1982, the Japanese Ministry of Agriculture created the term <em>shinrin-yoku</em>, which translates as &quot;forest bathing&quot; or &quot;absorption of the forest atmosphere&quot;. It&#39;s simply about spending time in nature, using the term bathing as a metaphor. No need for strenuous walks or runs. The goal is to live in the present moment while immersing your senses in the sights and sounds of a natural environment.</p>
<p>This practice also helps reduce blood pressure, heart rate, and levels of harmful hormones, such as cortisol, which the body produces when we are stressed. This can help put us in a calmer and more relaxed state. Certain studies have found that simply spending 10 to 20 minutes a day outdoors can increase well-being and happiness, and decrease the amount of stress.</p>
<p>During one of these walks through the woods, we may come across a <em>power spot</em>. It is like a spiritual place, where you can feel in tune with nature or the surrounding elements. Sometimes it is a big power spot, like a very important temple and other times it can be a tree, a waterfall, a mountain, a lake or something related to nature. The point is that you will normally feel a different spiritual or magnetic energy when you are near that power spot. You don&#39;t have to be a shaman to feel it...</p>
<p>In other countries, there are also sites with special energy, for example Sedona in the United States, Stonehenge in the United Kingdom and Uluru (Ayers Rock) in Australia. In Japan, there are people who have written books and lists with <a href="https://allabout-japan.com/en/article/5484/">the best power spots in the country</a>.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/power-spot.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/power-spot.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/power-spot-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/power-spot-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/power-spot.jpg" alt="During a walk on Mount Mitake, I came across a very large tree that is considered a power spot" loading="lazy">
        </picture>
        <figcaption>During a walk on Mount Mitake, I came across a very large tree that is considered a power spot</figcaption>
      </figure></p>
<h4 id="the-hatsumode">The hatsumode</h4>
<p>Via <a href="https://www.nippon.com/en/features/jg00030/">Nippon.com</a>, I learned that there is a custom called <a href="https://en.wikipedia.org/wiki/Hatsum%C5%8Dde">hatsumōde</a> which consists of visiting a Buddhist temple or a Shinto shrine during the first days of the year to ask if they will have good luck during the next twelve months. The ritual consists of consulting a kind of oracle that offers its messages in writing. It is about the <a href="https://en.wikipedia.org/wiki/Omikuji">omikuji</a>. Some of the results may be:</p>
<ul>
<li><em>Kichi</em>: good luck</li>
<li><em>Kyō</em>: bad luck</li>
<li><em>Daikichi</em>: very good luck</li>
</ul>
<p>It is believed that <em>omikuji</em> began to be used in the Edo period (1603-1868). Its origin would go back to the custom of consulting the divine will when deciding who should govern the country, who one should marry or who should be his successor.</p>
<p>The process consists of going to the corresponding counter and paying the amount of the <em>omikuji</em>. It is usually between 100 and 200 yen. Then, from a wooden box or cylinder, a toothpick is drawn on which a number is inscribed; This corresponds to the message that will determine the good or bad luck of the bearer. In addition to the different degrees of fortune, the strip of paper contains information on aspects such as love, health and studies. If a message of good fortune is obtained, it can be kept, for example, in the wallet, but in the event that the result has been bad, the strip of paper is tied to a tree or plank in the sanctuary with the aim of praying to the gods that change our luck.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/omikuji.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/omikuji.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/omikuji-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/omikuji-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/omikuji.jpg" alt="Omikuji with poor results tied to a plank at the shrine. Photo by freeimageslive.co.uk" loading="lazy">
        </picture>
        <figcaption>Omikuji with poor results tied to a plank at the shrine. Photo by freeimageslive.co.uk</figcaption>
      </figure></p>
<p>There are more and more types of <em>omikuji</em> available. For example, there are specific ones to find out what the destination has in store for us in matters of love, or with explanations in English or Chinese for foreign tourists. We can also find original formats, such as cat-shaped ceramic figurines and wooden daruma; the messages would come inserted inside. Even if the result is bad and the strip of paper is tied to a tree, there is always the option of keeping the figurine or amulet as a travel souvenir.</p>
<p>They say that during the Kamakura period (1192-1333) when the farmers did not agree on the order of irrigation of the rice fields or the fishermen could not reach an understanding on the allocation of the fishing grounds, they wrote their names on a small piece of paper and commended to the gods; They performed a purification ceremony before taking out the pieces of paper one by one to make a decision. Since ancient times, there has been a belief in Japan that both Shinto and Buddhist deities are fair, just like coincidences, which is why omikuji were also used as an instrument to unify communities without complications.</p>
<h4 id="the-setsubun">The Setsubun</h4>
<p>On February 3, the <a href="https://en.wikipedia.org/wiki/Setsubun">spring setsubun</a> (節分) is celebrated. In association with the Chinese New Year, it can be considered a type of New Year&#39;s Eve and is also accompanied by a special ritual to cast out all the evil of the previous year and drive away demons in the new year. This ritual is known as <em>mamemaki</em>, which means scattering beans.</p>
<p>The <em>mamemaki</em> is usually performed by the <em>toshiotoko</em> of the house, for example, the man who was born in the corresponding animal year of the Chinese zodiac, or the head man of the house. A particular type of soybean called <em>irimame</em> is thrown at the door or at a family member wearing an <a href="https://en.wikipedia.org/wiki/Oni">oni</a> mask, while the throwers say &quot;<em>Oni wa soto! Fuku wa uchi!</em>&#39;&#39; (鬼は外福は内). The literal meaning of the words is &quot;Away with the oni, bring in good luck!&quot; The seeds are thrown symbolically to purify the house by casting out evil spirits and driving away bad luck and ill health with them. Then, as part of bringing good luck, it is customary to eat the soybeans, one for each year of life, and in some places, one for each year of life plus one for the coming year as good luck for that year.</p>
<h4 id="new-years-eve-and-japanese-new-year">New Year&#39;s Eve and Japanese New Year</h4>
<p>The <a href="https://en.wikipedia.org/wiki/Japanese_New_Year">oshogatsu</a> (正月) is the most important holiday in the Japanese calendar. In ancient times this date coincided with the Chinese calendar, at the beginning of spring; but since 1873 this date was adjusted to the Gregorian calendar and therefore coincides with January 1.</p>
<p>Preparations begin at the end of December. The houses are decorated traditionally: a sacred rope of straw (<a href="https://en.wikipedia.org/wiki/Shimenawa">shimenawa</a>) with hanging strips of white paper (<em>shide</em>) is placed over the front door to prevent evil spirits from entering. It is also typical to put <a href="https://en.wikipedia.org/wiki/Kadomatsu">kadomatsu</a> which are decorative pine trees that represent longevity. It must be put on December 14 because after that date it is forbidden to go to cut pine trees in the mountains. This decorative tree remains until January 14.</p>
<p>The celebration lasts about three days and people spend most of the time with their family. It is customary to play traditional games and eat dishes specially prepared for the celebration. On December 31, a deep cleaning of the houses (<em>ōsōji</em>) is also organized to welcome the new year and not continue to have impure influences.</p>
<p>During the celebration the <em>seibo</em> are delivered, gifts are chosen for those people from whom help was received during the year, and on the first of January, all the New Year&#39;s greetings letters that were kept in the post office are delivered to be distributed in a special shipment each year.</p>
<p>It is also very important to pay off debts before the end of the year and eat <em>toshikoshi-soba</em> in the hope that family fortunes will spread like long noodles.</p>
<p>On New Year&#39;s Eve (大晦日 Ōmisoka) many people visit Buddhist temples to hear the bells ring 108 times at midnight (<em>joya no kane</em>). The reason they are struck 108 times is the Buddhist belief that human beings are plagued by 108 earthly desires or passions (<em>bonnō</em>), dissipating one with each strike.</p>
<h4 id="the-obon-and-the-hanabi">The Obon and the Hanabi</h4>
<p>The <a href="https://en.wikipedia.org/wiki/Bon_(festival)">O-bon</a> is a festival of worship to the ancestors that takes place in July or August. It is a semi-religious tradition that honours the spirits of deceased ancestors. This custom of Buddhist origin has ended up becoming part of the culture of Japan, not only in religious and cultural aspects but also as an occasion for social interaction with the community. It has been celebrated for 500 years and traditionally includes dances and dances such as <a href="https://en.wikipedia.org/wiki/Bon_(festival)#Bon_Odori">Bon Odori</a>, or festivals such as <a href="https://en.wikipedia.org/wiki/Gozan_no_Okuribi">Gozan no Okuribi</a>.</p>
<p>The end of Bon Odori is marked with the celebration of <em>tōrō nagashi</em>. Small paper lanterns with lit candles inside are floated down rivers and shorelines to point the way for the ancestral spirits when they leave. A message is usually written on the outside of the paper lantern.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/toro-nagashi.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/toro-nagashi.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/toro-nagashi-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/toro-nagashi-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/toro-nagashi.jpg" alt="Anniversary of the Hiroshima bomb. August 6" loading="lazy">
        </picture>
        <figcaption>Anniversary of the Hiroshima bomb. August 6</figcaption>
      </figure></p>
<p>During these months the <a href="https://en.wikipedia.org/wiki/Fireworks#Japan">Hanabi</a> (花火, はなび) is also celebrated, formed by the characters &quot;flower&quot; and &quot;fire&quot;. They are fireworks displays that light up the sky in all regions of Japan. People usually attend them wearing <a href="https://en.wikipedia.org/wiki/Yukata">yukata</a>.</p>
<h3 id="christianity-in-japan">Christianity in Japan</h3>
<p>Via <a href="https://es.wikipedia.org/wiki/Religi%C3%B3n_en_Jap%C3%B3n#Cristianismo">Wikipedia</a>, we know that Christianity is also very present in Japanese culture. It came in 1549 from the Spanish missionary Francisco Javier, and was spread by European missionaries, especially by Jesuits; these were known in Japan as <em>Kirishitan</em> (切支丹).</p>
<p>At first, the Japanese authorities supported the presence of religion as a way to counter Buddhism; However, soon after they saw that the Europeans were conquering territories in Asia based on religious conversion and saw them as a threat. Thus, at the beginning of the Tokugawa era, in the 17th century, Christianity was banned for two centuries until the Meiji Restoration, when Christian missionaries were allowed to arrive.</p>
<p>However, during World War II Christianity was outlawed in all its forms. Since 1947 it has been considered a free religion to practice, and currently consists of 1% of the Japanese population, even though the majority celebrate holidays of Christian origin such as Christmas or Valentine&#39;s Day.</p>
<p>When it&#39;s time to get married, most Japanese prefer to do it at a shrine with a Shinto priest and a traditional ceremony. The groom usually wears a Japanese wedding kimono and the bride wears a white bridal kimono called <a href="https://es.wikipedia.org/wiki/Kimono#Kimonos_femeninos">uchikake</a> with a white headdress. In other cases, the bride and groom prefer to get married in a church with a Christian priest, although more than out of faith, they do it because it is fashionable. It may also be the case that the couple celebrates two ceremonies, one Shinto and the other Christian.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/wedding.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/wedding.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/spirituality-in-japan/images/wedding-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/spirituality-in-japan/images/wedding-mobile.jpg" />
          <img class="image" src="/blog/spirituality-in-japan/images/wedding.jpg" alt="Grooms taking the typical wedding photos in the gardens of Kenroku-en, Kanazawa" loading="lazy">
        </picture>
        <figcaption>Grooms taking the typical wedding photos in the gardens of Kenroku-en, Kanazawa</figcaption>
      </figure></p>
<h3 id="conclusions">Conclusions</h3>
<p>The concept of religion in Japan is quite different from religion in Western culture. Spirituality is quite eclectic and the prayers and rites are more focused on achieving well-being and worldly benefits than on following doctrines or beliefs.</p>
<p>Without having a great knowledge of any particular religion, the feeling I have <strong>on a superficial level</strong> is that the Japanese are quite superstitious and practice their spirituality in a healthy and light-hearted way, without the rules that you see in Islam or Christianity. There is no obligation to go to the temple or pray every x day. Each one does it at their own pace when it seems right and they are not judged for it. There is also no feeling that you are going to be punished by going to hell. In Japan, everything seems much more pragmatic and simple. Go to the temple, make an offering, prayer and you are done. Surely the monks of the temples and shrines will have a lot of spiritual activities and sacrifices, but the Japanese folks who visit these temples and shrines do not seem to spend much time praying.</p>
<p>Also, many of the rituals are quite aesthetic and easy to follow. Washing your hands and mouth, breathing incense, clapping your hands, bowing, throwing beans, eating this or that... The act of purification seems to be something more physical and in contact with nature. In Christianity and Islam, it seems that the followers have to do more work (physical and intellectual) to practice the faith and have a healthy conscience.</p>
<h4 id="does-religion-condition-the-good-behaviour-of-people">Does religion condition the good behaviour of people?</h4>
<p>In the West, there is a belief that religious people (not extremists) are usually &quot;good people&quot;. The classic stereotype of the family that attends church every Sunday and interacts with the community, participates in social activities, reads the Bible, etc. Perhaps today that image has been diluted a bit, but it is still quite significant. The ethical principles and behaviour of Christians (practising or not) are also usually based on <a href="https://es.wikipedia.org/wiki/Diez_Mandamientos">the 10 commandments</a>.</p>
<p>In the East and more specifically in Japan, the concept that prevails the most to define the good behaviour of the Japanese is the <a href="https://es.wikipedia.org/wiki/Wa_(Jap%C3%B3n)">Wa</a>. To explain it, no one better than the author of the book &quot;<a href="https://www.lecturalia.com/libro/108583/wa-la-via-japonesa-de-la-armonia">Wa. The Japanese Way of Harmony</a>&quot;.</p>
<blockquote>
<p>Wa means harmony, but like all Japanese words it evokes much more. Wa is, in fact, everything that is soft, serene and moderate, but it also refers to everything that is Japanese. Wa is a prefix that applies to both things and concepts. Through wa, Japan teaches us its best lesson: beauty, joy and civility are built with a large dose of commitment, through continuous work on oneself, exercising patience, doing things carefully and never at the expense of others. others, because truly lasting happiness is everyone&#39;s project and never just one. — Laura Imai Messina</p>
</blockquote>
<p>Therefore, in Japan, maintaining harmony, avoiding conflict, and getting along with others are of paramount importance, as it is a relatively small island with 130 million people on it. That is why social phenomena such as [honne <a href="https://es.wikipedia.org/wiki/Honne_y_tatemae">and tatemae</a> permeate the daily interactions of the Japanese and contribute to facilitating harmony.</p>
<p>Regarding how religion influences their behaviour, it should be noted that in Buddhism there is no divine being that decides who goes to heaven or hell. On the contrary, they believe in divine justice or invisible energy called <a href="https://es.wikipedia.org/wiki/Karma">karma</a>, which is generated from the acts of people and punishes us when we do something bad or blesses us when we do something good.</p>
<p>I came up here. If you want to share an opinion or think I have forgotten something that deserves to be included, please write a comment. I will be very happy to improve the entry with more information.</p>
<p>In the next blog post, I will talk about Japanese aesthetics.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/spirituality-in-japan/images/cover.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[How to pass the motorcycle "shaken" inspection in Tokyo by yourself]]></title>
            <link>https://www.joanmira.com/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself</link>
            <guid>https://www.joanmira.com/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself</guid>
            <pubDate>Sat, 18 Jun 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Like everything else in Japan, it's easier if you know how to speak Japanese properly, but don't worry, it's not as difficult as you might think]]></description>
            <content:encoded><![CDATA[<p>The <a href="https://en.wikipedia.org/wiki/Motor-vehicle_inspection_(Japan)">motor-vehicle inspection</a> (<em>shaken</em> or JCI inspection) is a compulsory inspection for all vehicles on the road in Japan that must be taken every 2 years. The <strong><em>shaken</em> is mandatory only for motorcycles above 250cc</strong>. In Spain, this inspection is called ITV and it&#39;s also mandatory (for motorcycles starting at 125cc) every two years once the bike is older than 4 years. In the UK it&#39;s called MOT. Bikes older than 3 years must pass it every year. The advantage is that there are 2,800 motorbike MOT facilities in the UK. </p>
<p>Last month I had to go through the process of renewing the shaken for my Kawasaki W800 in Tokyo, so I thought it could be a good idea to share my experience. Hopefully, it can help reduce the anxiety of some <em>gaijins</em> who, like me, sometimes worry too much about dealing with Japanese administrative duties.</p>
<h3 id="check-the-expiration-date">Check the expiration date</h3>
<p>First of all, check the expiration date of your <em>shaken</em> on the JCI inspection certificate (<em>syakensyo</em>):</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/1.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/1.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/1-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/1-mobile.jpg" />
          <img class="image" src="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/1.jpg" alt="JCI certificate shaken photo borrowed from OIST" loading="lazy">
        </picture>
        <figcaption>JCI certificate shaken photo borrowed from OIST</figcaption>
      </figure></p>
<p>For official documents, instead of the western calendar (<em>seireki</em>), they use the traditional Japanese calendar, which is based on the reign period of the emperor.</p>
<p>These are the periods:</p>
<ul>
<li>2019 - Present ~ Reiwa Era</li>
<li>1989 - 2019 ~ Heisei Era</li>
<li>1926 - 1989 ~ Showa Era</li>
<li>1912 - 1926 ~ Taisho Era</li>
</ul>
<table>
<thead>
<tr>
<th>Western Years</th>
<th>Japanese Years</th>
</tr>
</thead>
<tbody><tr>
<td>2024</td>
<td>令和6年</td>
</tr>
<tr>
<td>2023</td>
<td>令和5年</td>
</tr>
<tr>
<td>2022</td>
<td>令和4年(or 平成34年)</td>
</tr>
<tr>
<td>2021</td>
<td>令和3年(or 平成33年)</td>
</tr>
<tr>
<td>2020</td>
<td>令和2年(or 平成32年)</td>
</tr>
<tr>
<td>2019</td>
<td>令和元年(or 平成31年)</td>
</tr>
<tr>
<td>2018</td>
<td>平成30年</td>
</tr>
</tbody></table>
<h3 id="get-the-papers-ready">Get the papers ready</h3>
<p>These are the documents you will need:</p>
<ul>
<li><p><strong>JCI inspection certificate (自動車検査証 / <em>syakensyo</em>)</strong>:
This is the blue document that we talked about in the previous section. I usually bring a copy with me when I&#39;m riding the bike and keep the original at home. It contains information about your motorcycle and the registered owner</p>
</li>
<li><p><strong>Road tax payment receipt (自動車税納税証明書)</strong>:
This is the tax to be paid by the owner of the vehicle every year. If you are the owner of the vehicle as of the 1st of April of the year, you will receive the document by mail and you can pay it in any <em>combini</em> </p>
</li>
<li><p><strong>Certificate of compulsory vehicle liability insurance (自賠責保険証書 / <em>jibaiseki</em>)</strong>:
This is the insurance certificate that will also expire on a similar date as the shaken. It has to be renewed as well at the same time as the shaken</p>
</li>
<li><p><strong>Inkan</strong> (personal seal): if you don&#39;t have one, then using your signature is fine</p>
</li>
</ul>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/documents.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/documents.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/documents-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/documents-mobile.jpg" />
          <img class="image" src="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/documents.jpg" alt="Required documents" loading="lazy">
        </picture>
        <figcaption>Required documents</figcaption>
      </figure></p>
<h3 id="request-a-date-for-the-inspection">Request a date for the inspection</h3>
<p>In my case, I had to request a date for the inspection center in Shinagawa. That is the closest to my place.</p>
<ul>
<li>Go to <a href="https://www.reserve.naltec.go.jp/web/ap-entry?slinky___page=forward:A1001_01">reserve.naltec.go.jp</a> and click on <strong>account registration</strong> if you still don&#39;t have an account. You can use Google Translate</li>
<li>Once your account is ready, log in and go through the process. In my case, I selected <strong>Continuous inspection</strong>, <strong>motorcycle</strong>, <strong>Tokyo</strong> and <strong>Tokyo Transport Bureau</strong></li>
<li>Select a date and time and you will receive an email with the reservation number</li>
</ul>
<p>Weekdays and mornings are probably going to be less crowded. That&#39;s how it was in my case.</p>
<p>If for whatever reason you decide not to go, remember to cancel the appointment and request a new one. You can cancel it even just one hour before, no worries.</p>
<p>The inspection center is located in Shinagawa: <a href="https://goo.gl/maps/unp3ybW6kfAWJb2f6">https://goo.gl/maps/unp3ybW6kfAWJb2f6</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/2.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/2.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/2-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/2-mobile.jpg" />
          <img class="image" src="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/2.jpg" alt="Shinagawa Vehicle Inspection Center" loading="lazy">
        </picture>
        <figcaption>Shinagawa Vehicle Inspection Center</figcaption>
      </figure></p>
<h3 id="the-headlight-alignment">The headlight alignment</h3>
<p>The most critical part of the whole process is the headlight alignment. For some reason, they are very picky with this particular requirement in Japan. Thankfully, there is a garage right in front of the inspection center that specializes in precisely this task. Here&#39;s the location: <a href="https://goo.gl/maps/U9nGAqzGwQNxB3qz9">https://goo.gl/maps/U9nGAqzGwQNxB3qz9</a></p>
<p>One thing that I learned the hard way... Don&#39;t go to test your headlight with a LED bulb. It&#39;s probably not going to be strong enough. I had to buy a halogen one in <a href="https://goo.gl/maps/9QDzxWjjFVrge5CVA">Ricoland Tokyo Bay</a>. This is the one I bought:</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/7.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/7.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/7-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/7-mobile.jpg" />
          <img class="image" src="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/7.jpg" alt="Halogen light bulb" loading="lazy">
        </picture>
        <figcaption>Halogen light bulb</figcaption>
      </figure></p>
<p>Also, during the alignment process, make sure that the screen shows a perfect alignment. Otherwise, you&#39;ll have to come back to the garage because you will not pass the shaken test. It doesn&#39;t matter how you achieve that perfect alignment. The guy in the garage put a piece of cardboard and some tape on the sides to get it right. During the inspection, they don&#39;t care about the cardboard or the tape, so don&#39;t worry about it. I know. This also puzzles me, but that&#39;s just how it goes.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/6.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/6.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/6-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/6-mobile.jpg" />
          <img class="image" src="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/6.jpg" alt="Pre-inspection headlight alignment in a nearby garage" loading="lazy">
        </picture>
        <figcaption>Pre-inspection headlight alignment in a nearby garage</figcaption>
      </figure></p>
<p>The cost of the headlight alignment is about ¥2.000 IIRC and the process takes just 5 minutes. Sometimes there is a small queue outside the garage, so it can take a bit longer. But it shouldn&#39;t take longer than 30 minutes.</p>
<p>Another tip regarding the garage access: If you are coming from the north, it&#39;s better to follow the route in the screenshot below, so you don&#39;t have to cut through the traffic coming from the opposite direction:</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/3.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/3.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/3-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/3-mobile.jpg" />
          <img class="image" src="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/3.jpg" alt="Headlight alignment garage and coffee shop locations" loading="lazy">
        </picture>
        <figcaption>Headlight alignment garage and coffee shop locations</figcaption>
      </figure></p>
<h3 id="things-to-check-before-the-inspection">Things to check before the inspection</h3>
<ul>
<li><p>Make sure that all the lights, breaks and the horn work properly</p>
</li>
<li><p>In the inspection center, they might ask you if you have a maintenance book. I didn&#39;t have one, so it doesn&#39;t seem to be mandatory. In any case, it&#39;s a good idea to bring an invoice or some paper that shows when you last changed the oil, filter, etc. But, as I said, I didn&#39;t have to show anything like this</p>
</li>
<li><p>If you have changed/modified any part of your bike, bring the papers that prove these parts are homologated and compatible with your bike. For example, my bike doesn&#39;t have the original exhaust pipes, so I have some papers that show they are similar to the original and they can pass the inspection</p>
</li>
</ul>
<h3 id="on-the-day-of-the-inspection">On the day of the inspection</h3>
<ul>
<li><p>If you haven&#39;t chosen a very early timeslot, you could try to do the headlight alignment and the inspection on the same day. Just cross the street (with your bike) to the inspection center</p>
</li>
<li><p>Once I arrived at the inspection center, this is where I parked my motorcycle (besides the stairs) and no one complained about it. There were no cones as well:</p>
</li>
</ul>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/4.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/4.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/4-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/4-mobile.jpg" />
          <img class="image" src="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/4.jpg" alt="Where to park the bike in the inspection center" loading="lazy">
        </picture>
        <figcaption>Where to park the bike in the inspection center</figcaption>
      </figure></p>
<ul>
<li><p>Take the stairs and go to the 2nd floor. As soon as you enter, mention that you have a reservation for the shaken and they will give you some papers to complete</p>
</li>
<li><p>Once you give them the papers, they will send you to another building where you will have to pay the weight tax and renew the mandatory insurance (<em>jibaiseki</em>). They will tell you the window number where you have to go next so it&#39;s pretty easy</p>
</li>
<li><p>Once you complete all the paperwork and paid everything, they will tell you to bring your bike to the building where they will perform the inspection. Notice that the lane is narrower than the others because it&#39;s specific for motorcycles</p>
</li>
<li><p>When you reach the gate, just stay in line until someone comes to check your papers. They will ask you to switch the lights on and off, rev the bike until a certain rpm, etc</p>
</li>
</ul>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/5.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/5.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/5-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/5-mobile.jpg" />
          <img class="image" src="/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/5.jpg" alt="Waiting for the inspection to start" loading="lazy">
        </picture>
        <figcaption>Waiting for the inspection to start</figcaption>
      </figure></p>
<ul>
<li><p>Next, you will have to move your bike inside the building to check the brakes, headlight alignment, exhaust noise and fumes. They will ask you if you need English assistance. If you say yes, then you will be able to read the instructions on a screen. Pretty useful!</p>
</li>
<li><p>Once the tests are completed they will let you know if you have passed or not. If everything went well, you will get your papers updated and will have to come back to the first building (2nd floor) where they will give you a new sticker to put on your plate and that will be the end of the story. If you got something wrong (like me) then you will have to fix it and come back to pass the failing part of the test again. In my case, it was the headlight alignment. It wasn&#39;t perfect, so I had to cross the street and do it again. At least they didn&#39;t charge me extra. Going to the garage and coming back was also pretty fast, perhaps just 15 minutes, so don&#39;t worry if you don&#39;t pass the alignment the first time</p>
</li>
</ul>
<h3 id="conclusions">Conclusions</h3>
<p>Overall, even if I worried for many days prior to the inspection (mostly because of the language barrier), it turned out to be more like an interesting learning exercise rather than a bureaucratic pain in the ass. It was annoying having to change the LED bulb, but <em>shoganai</em>. So if someone asks me if I&#39;d recommend doing the <em>shaken</em> by yourself, my answer would be yes. You will save substantial money and learn something along the way. I don&#39;t recall exactly how much I spent, but it was something around <strong>¥17.000</strong>, including the halogen bulb and the headlight alignment check. Considering that the whole process takes around 1.5h (not including the trip to the inspection center), I think it is worth it.</p>
<p>I would also like to show some appreciation for my biker-friend Greg, who was patient enough to answer all my questions and share his <em>shaken</em> experience with me. Thank you!</p>
<p>Finally, if during the process you feel that you need a break to think (like I needed), there&#39;s a <a href="https://goo.gl/maps/YuE4mMr5NCbjP42F9">Komeda coffee shop</a> very near (it&#39;s on the map posted above) and it has parking for motorcycles.</p>
<p>What are your thoughts or how was your shaken experience? Did I miss anything or said something wrong? Please let me know in the comments. Thank you!</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/how-to-pass-the-motorcycle-shaken-inspection-in-tokyo-by-yourself/images/cover.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Why I migrated from Gatsby to a tiny custom static site generator]]></title>
            <link>https://www.joanmira.com/blog/why-i-left-gatsby-and-built-my-own-tiny-static-site-generator</link>
            <guid>https://www.joanmira.com/blog/why-i-left-gatsby-and-built-my-own-tiny-static-site-generator</guid>
            <pubDate>Sun, 12 Jun 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[The pleasures of knowing what is going on under the hood and being able to focus on simplicity and minimalism]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>Software engineering is like aeronautical engineering. The less weight, the better.</p>
</blockquote>
<p>Sometimes, software engineers forget this simple premise about the weight of the code. We immerse ourselves in rabbit holes (or I should say JavaScript holes) that end up making our apps very bloated. With dozens and dozens of NPM packages, polyfills, helpers, overkill architectures, abstractions and more abstractions,...</p>
<p>The main problem with having lots of code is that we have to maintain it! Someone could argue, ohh, but I always rely on OSS and external packages. And that&#39;s a perfectly fine strategy. The problem is that those packages also get updated and sometimes they introduce breaking changes. This means, that someone has to take care of updating those packages, follow the migration docs, fix the conflicts with other packages, etc.</p>
<p>Therefore, the time we think we save by relying on external OSS packages starts to fade away. Don&#39;t get me wrong, I support the use of OSS. What I mean is that, instead of consuming OSS as if we are living on a permanent food buffet, we should be mindful and choose carefully the dependencies to import. Because the more we decide to include in our project, the more time we will need to invest in the code maintenance and the more bloated our JS bundles will be.</p>
<h3 id="the-busy-blogger-use-case">The busy blogger use case</h3>
<p>Since I arrived in Japan, around 3.5 years ago, I&#39;ve been very busy. My job is quite intellectually demanding - as with many other people in IT - and after at least 8 hours of solving complex problems, there&#39;s not a lot of room left in the brain for squeezing new creative ideas. If we add up the fact that I&#39;m going to Japanese school three times a week and have to memorize kanji strokes in the proper order, then the neurons left for the day can only handle a very shallow Netflix show.</p>
<p>I think you get where I&#39;m going. Yes, I haven&#39;t been updating this blog very often. I&#39;m sorry about that! I would have loved to share some stories and experiences of my life here in Japan. But, I didn&#39;t have much time or energy left to do it. The other issue I had is related to Gatsby and what I mentioned before.</p>
<p>After 3 years of not updating the codebase of this website, you can imagine how outdated all the Gatsby dependencies and plugins were. I tried to upgrade. I promise. But at some point, I just felt like it&#39;d be better to start again from scratch. And that&#39;s what I did.</p>
<h3 id="a-new-beginning-with-a-tiny-approach">A new beginning with a tiny approach</h3>
<p>This is how one day, looking around for small static site generators, I stumbled upon <a href="https://github.com/yakkomajuri/teeny">Teeny</a> and <a href="http://picocss.com/">PicoCSS</a>. After testing them a bit, I made my mind up. This is it. I&#39;m gonna fork them and start building my static site generator. The idea of teeny was very similar to what I had in mind. Just use NodeJS to build HTML pages from markdown files. Who cares about GraphQL for a website like this? At the same time, I also wanted to use CSS variables and forget about any JS framework like React. The main idea was to keep the dependencies as low as possible so that in the future I wouldn&#39;t need to keep migrating or updating the codebase for features that I don&#39;t need.</p>
<p>Arriving at this point, I would like to highlight the fact that, when we are building apps, <strong>we should always focus on what the user needs and wants</strong>. In this particular case, I am also a user, since I&#39;m the one writing the stories on the blog and updating the content of the other pages. If I don&#39;t have a good UX and DX, then nothing is going to happen and the app or website is going to die. Therefore, the teaching here is that <strong>technology shouldn&#39;t be above the user&#39;s needs or the primary goal of the project</strong>. In the same way that a fancy guitar or a drumset shouldn&#39;t be more important than creating the music itself!</p>
<h3 id="what-have-i-learned-from-this-experience">What have I learned from this experience?</h3>
<ul>
<li><p>I&#39;ve been using markdown for content since I moved years ago from WordPress to Ghost. This approach still feels right. It&#39;s very flexible. You can add HTML code when you need it and keep the content clean when you don&#39;t</p>
</li>
<li><p>I&#39;m still very glad not to have to maintain yet another database or a server. That is the beauty of SSGs and the <a href="https://jamstack.org/">Jamstack</a></p>
</li>
<li><p>It&#39;s nice to switch gears once in a while and do some NodeJs coding. Although the debugging is not as enjoyable as in the front-end. I still prefer dealing with issues in a browser rather than in the terminal</p>
</li>
<li><p>It is possible to build a static site generator with <a href="https://github.com/gazpachu/joanmira/blob/main/package.json">less than 15 npm dependencies</a></p>
</li>
<li><p>Being able to build the whole website from scratch is awesome. Knowledge is power. You can tweak everything and just code exactly what you need, which makes the codebase feel much lighter</p>
</li>
<li><p>Added a new dark mode that follows the PicoCSS approach to take care of our eyes. You are welcome</p>
</li>
<li><p>For portfolio images, if you are going to use mockups (like I did with the Apple screens, iPads and laptops), make sure to export them in PNG with transparency! I&#39;ve spent long days having to redo all the images of the 140 projects on my portfolio because they were exported as JPGs with a white background and they didn&#39;t look good with the new dark mode... &#129318;</p>
</li>
<li><p>Since <a href="https://pages.github.com/">Github Pages</a> doesn&#39;t support 301 redirects, I had to migrate to <a href="https://netlify.com/">Netlify</a>. I love both companies. They do a great job in UX. Thank you so much!</p>
</li>
<li><p>Things like JPG to WebP conversion and XML sitemap or RSS feed generation are much easier than you think with the right NPM packages</p>
</li>
<li><p>I took advantage of the refactoring to do some design improvements along the way. Starting from the logo. I got inspired by <a href="https://en.wikipedia.org/wiki/Rafael_Nadal#Legacy">Rafael Nadal winning his 14th championship at Roland Garros</a>. So, if you find some similarities between my logo and the Roland Garros logo, now you know why</p>
</li>
<li><p>I migrated from <a href="https://disqus.com/">Disqus</a> to <a href="https://utteranc.es/">Utterances</a>. Mainly because of difficulties with their dark mode. Thank you, Disqus for your service! I&#39;m so glad I did! It never occurred to me that we could use Github&#39;s Issues for hosting website comments. Very interesting</p>
</li>
<li><p>I&#39;ve made it easier for users of this website to subscribe to the blog and also added a <a href="https://ko-fi.com">Ko-Fi</a> widget to start experimenting with this type of sponsor economy</p>
</li>
<li><p>I&#39;ve also improved the Algolia search results, the homepage content, the 404 page and the footer styles</p>
</li>
</ul>
<h3 id="how-does-the-ssg-work">How does the SSG work?</h3>
<p>The whole website generation logic is concentrated in a single file called <code>cli.js</code>. It is less than 500 lines of code. Hopefully, it can be even further reduced with some improvements. There is just another extra script called <code>images.js</code> for generating the mobile-optimized and WebP images.</p>
<p>The folder structure is very simple:</p>
<ul>
<li><p><code>pages</code>: it contains all the markdown content files organized in subfolders. No need to follow any specific pattern. The build script will replicate the same structure but instead with HTML files</p>
</li>
<li><p><code>public</code>: (initially empty) it contains all the generated files that need to be published</p>
</li>
<li><p><code>static</code>: global images, CSS and js. It gets copied to <code>public</code> every time we build</p>
</li>
<li><p><code>design</code>: backup of the original design resources used for the project</p>
</li>
<li><p><code>templates</code>: all the HTML layouts and partials used for building the final HTML pages</p>
</li>
</ul>
<p>There are two main scripts: <code>build</code> and <code>develop</code>. The only difference between them is that the latter starts a local web server after finishing the build process.</p>
<p>When we trigger the build process with <code>npm run build</code>, first the script starts cleaning up the public folder and copying/renaming files. Then it starts processing the whole <code>pages</code> folder, a specific folder within <code>pages</code> or a specific .md file depending if we pass a parameter or not to the script (i.e. <code>npm run build pages/blog/index.md</code>). Once it finishes processing the markdown files, it generates an XML sitemap, an RSS feed and updates the index in Algolia (only for prod).</p>
<p>The most important function is <code>processPage</code>. This is the one in charge of loading the correct template (specified in the markdown front matter) and adding the different bits and bobs to the output HTML. Also, if the page to process is a listing page, like the blog index or a blog category page, then it does some recursive logic to get all the list items.</p>
<h3 id="a-work-in-progress-and-ideas-for-the-future">A work in progress and ideas for the future</h3>
<p>Something that I&#39;m considering doing is implementing a very basic admin mode (CMS) to be able to publish/edit stories from a website, rather than from the code editor. It can be useful when I want to write a story on my mobile phone. This admin mode would have to connect with the Github API to allow the website to write/edit files in the repository, so that&#39;s something to think about in the future.</p>
<p>Also, it&#39;d be nice to find a way to have hot reloading and eventually refactor the code to make it easier for other engineers to use on their projects.</p>
<p>I will keep pushing new code in the next weeks or when I get some time. At the moment there are quite a lot of hardcoded things. But if you are interested to have a look at the WIP code, here it is:</p>
<p><a class="btn github" role="button" href="https://github.com/gazpachu/joanmira" target="_blank">Source Code</a></p>
<h3 id="update-on-16-jun-2022">Update on 16 Jun 2022</h3>
<p>I&#39;ve added <a href="https://ejs.co/">EJS</a> to be able to handle dynamic data in the templates and now the code is much better organized and reduced to around 300 lines. Hot reloading is almost working. The only part remaining about it is to refresh the browser.</p>
<h3 id="update-july-23-2022">Update July 23, 2022</h3>
<p>I have included support for two languages and translated the entire website into Spanish. It has been a considerable amount of work but I think it has been worth it. I still need to translate the utterances widget for the blog comments.</p>
<p>Plane wing photo by <a href="https://unsplash.com/es/fotos/rf6ywHVkrlY">Ross Parmly</a></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/why-i-left-gatsby-and-built-my-own-tiny-static-site-generator/images/1.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Lessons learned writing our own static site generator]]></title>
            <link>https://www.joanmira.com/blog/lessons-learned-writing-our-own-static-site-generator</link>
            <guid>https://www.joanmira.com/blog/lessons-learned-writing-our-own-static-site-generator</guid>
            <pubDate>Wed, 19 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[The journey from Gatsby to custom React SSR SSG. Article originally published on TableCheck's Tech Blog]]></description>
            <content:encoded><![CDATA[<p>Nowadays, websites and web apps can be built and served in many different ways. Using pure HTML, Javascript, and CSS, with frameworks such as <a href="https://reactjs.org/">React</a>, <a href="https://vuejs.org/">Vue</a>, or <a href="https://angularjs.org/">Angular</a>, following a <a href="https://developers.google.com/web/updates/2019/02/rendering-on-the-web">CSR or SSR approach</a>, <a href="https://applandeo.com/blog/single-page-applications-versus-multi-page-applications-what-to-choose/#:~:text=What%20is%20an%20MPA%3F,have%20different%20levels%20of%20UI.">MPA</a>, using back-end frameworks like <a href="https://www.phoenixframework.org/">Phoenix</a>, with a CMS like <a href="https://wordpress.org/">WordPress</a> or <a href="https://www.drupal.org/">Drupal</a>, implementing static site generators like <a href="https://jamstack.org/generators/gatsby/">Gatsby</a>, <a href="https://nextjs.org/">Next js</a>, <a href="https://gohugo.io/">Hugo</a>, <a href="https://jekyllrb.com/">Jekyll</a>, etc. The options are overwhelming.</p>
<p>If that wasn&#39;t enough, you can still dive into <a href="https://dev.to/this-is-learning/is-0kb-of-javascript-in-your-future-48og">0kb of JS frameworks</a>, <a href="https://alpinejs.dev/">AlpineJS</a>, <a href="https://stimulus.hotwired.dev/">Stimulus</a>, <a href="https://github.com/vuejs/petite-vue">Petite Vue</a>, <a href="https://astro.build/">Astro</a>, <a href="https://iles-docs.netlify.app/">Iles</a>, <a href="https://markojs.com/">MarjoJS</a>, <a href="https://github.com/BuilderIO/qwik">Qwik</a>, <a href="https://github.com/hotwired/turbo-rails">Turbo</a>, or <a href="https://remix.run/">Remix</a>, the new kid on the block.</p>
<p>But when websites have mostly static content (except for dynamic news/blog pages), that’s when <a href="https://jamstack.org/generators/">SSGs</a> (Static Site Generators) become a great option. One of the most popular frameworks out there is <a href="https://jamstack.org/generators/gatsby/">Gatsby</a>. That is the one we used to build our previous website and for a time, it served us well.</p>
<p>One of the issues we discovered a couple of years after, was that the build times were taking longer and longer. This was due to the huge amount of pages that the site was accumulating–specifically because of the multiple languages–and the difficulty of building just one page. Instead, we had to build the whole website whenever a single page was updated.</p>
<p>We also realized that static sites don’t need to have a lot of JavaScript and NPM dependencies. They should feel light and easy to maintain. The main requirements are just HTML, CSS, and some JavaScript for a side or top navigation, a contact form, and some other bits and bobs.</p>
<p>Arriving at this point, we learned that Gatsby was releasing <a href="https://www.gatsbyjs.com/blog/2020-04-22-announcing-incremental-builds/">incremental builds</a>, but even with that potentially helpful feature, our minds were already set: we were going to build our static site generator.</p>
<h3 id="the-selected-tech-stack">The selected tech stack</h3>
<p>At TableCheck we are highly invested in AWS, Typescript, React, Emotion, and our own UI Toolkit called <a href="http://tablekit.tablecheck.com/">TableKit</a>. It became quite clear from the beginning that using these technologies could accelerate development and simplify maintenance. As a comparison exercise, Wahid Farid (project lead) also did a POC with <a href="https://gohugo.io/">Hugo</a> and Joan Mira (front-end manager) with the EJS templating system, but eventually, we preferred to continue with the React SSR approach.</p>
<p>At the same time, our previous Gatsby website was building its pages by gathering the content from the <a href="https://www.storyblok.com/home">Storyblok</a> API. This was something that we were quite happy about, specifically because of the flexibility that provides this headless CMS for building pages using blocks with custom schemas. This allows us and content editors to build pages for different regions in the world by reusing common layouts and blocks defined in the CMS.</p>
<p>We also considered the possibility of using <a href="https://wordpress.org/">WordPress</a> and <a href="https://elementor.com/">Elementor</a> (mostly because of the UX for content editors). But the fact that it’s based on PHP requires other technologies and it’s often the target of hackers was something that we were not very keen on. Hence, we decided to continue with <a href="https://www.storyblok.com/home">Storyblok</a> as our CMS.</p>
<p>Regarding the infrastructure, Alexander Nicholson (SRE lead) suggested that we use a serverless approach (<a href="https://seed.run/">Seed.run</a>) with a lambda function to build the HTML static pages.</p>
<p>And finally, for the search functionality, Joan Mira suggested using <a href="https://www.algolia.com/">Algolia</a> and for the product demo scheduling, Eri Koyano (product manager) suggested using <a href="https://calendly.com/">Calendly</a>.</p>
<p>This is the approved tech stack for our custom statically generated website:</p>
<ul>
<li>AWS, serverless, and Seed.run</li>
<li>Typescript</li>
<li>React SSR</li>
<li>Emotion, TableKit &amp; CSS variables</li>
<li>Storyblok</li>
<li>Algolia and Calendly</li>
</ul>
<h3 id="website-architecture">Website architecture</h3>
<p>Once we decided on the technologies to use, TableCheck’s principal front-end engineer, Simeon Cheeseman, suggested using React SSR to build the pages. We brainstormed about how to make it work and ended up with the following:</p>
<ol>
<li>Content gets added/updated in Storyblok and the user clicks the save button</li>
<li>A webhook gets triggered in Storyblok</li>
<li>A NodeJS Express server running on a lambda function receives the webhook call</li>
<li>A server-side script reads the story ID from the URL passed to the server</li>
<li>The script calls the Storyblok API with that ID and gets all the data needed to build that specific page</li>
<li>Then it generates the HTML using React components</li>
<li>And finally, it uploads the file to an S3 bucket from where it’d be served to the Internet</li>
</ol>
<p>We all agreed with this approach and Alexandr Shostyr (project technical lead) built a POC.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/lessons-learned-writing-our-own-static-site-generator/images/static-site-generator-diagram.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/lessons-learned-writing-our-own-static-site-generator/images/static-site-generator-diagram.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/lessons-learned-writing-our-own-static-site-generator/images/static-site-generator-diagram-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/lessons-learned-writing-our-own-static-site-generator/images/static-site-generator-diagram-mobile.jpg" />
          <img class="image" src="/blog/lessons-learned-writing-our-own-static-site-generator/images/static-site-generator-diagram.jpg" alt="Architecture diagram" loading="lazy">
        </picture>
        <figcaption>Architecture diagram</figcaption>
      </figure></p>
<h3 id="from-the-poc-to-the-finish-line">From the POC to the finish line</h3>
<p>Once the POC was approved and the architecture validated, we continued the development with the help of Irina Soupel (front-end engineer). We soon realized that we&#39;d have to do certain things slightly different from other TableCheck projects, especially because we were not using React in the front-end:</p>
<ul>
<li>Use <a href="https://emotion.sh/docs/ssr">emotion for SSR</a> to support <code>nth-child</code> selectors</li>
<li>Figure out how to use CSS variables with Tablekit&#39;s theme provider</li>
<li>Create a simple Button and Input styled component to bypass an issue with hexToRgba</li>
</ul>
<p>Another considerable hiccup we encountered was regarding building individual pages vs all pages. Some Storyblok blocks are common to all pages, like the top navigation or the footer. Therefore, whenever a content editor changes one of these blocks, we have to regenerate all the pages on the website. This represented a challenge since we would need to have a way to tell the build script if all pages need to be built or not. We are currently still investigating this point and will update the article once we find the appropriate solution.</p>
<p>At the same time, the blog listing pages were also tricky. First, we implemented them dynamically using Algolia. That worked fine but it required many API requests, which would make the navigation slow and costly. Finally, we found a way to build all these pages statically, even for the category and paginated listing pages.</p>
<p>We also had other challenges regarding the sitemap, legacy redirects, build complications due to having to share the same S3 bucket with another website, etc. Nonetheless, these issues are not representative of the migration process from Gatsby to our custom SSG.</p>
<h3 id="next-steps">Next steps</h3>
<p>Going forward, we still want to continue doing improvements. We will update the article in the future with more details. Here are some of the things we are considering doing:</p>
<ul>
<li>The build speed: especially with supporting individual page builds </li>
<li>Preload critical assets and pages (like Gatsby does) to make the website load even faster than it already does, probably because we have very little JS code on it</li>
</ul>
<p>Overall, it was a great experience building something new from scratch that we have full control over. More cool things will come. Stay tuned and follow us!</p>
<h3 id="march-2022-update">March 2022 Update</h3>
<p>Good news! after a bit of work, we were able to implement individual page builds with StoryBlok.</p>
<p>The way we ended up doing it is by copying/pasting the page ID into an input within a modal dialog that appears when clicking on a custom task. This allows us to pass the ID of the page we want to build to the Lambda function.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/lessons-learned-writing-our-own-static-site-generator/images/custom-static-site-generator.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Migrate from GhostJS to GatsbyJS]]></title>
            <link>https://www.joanmira.com/blog/migrate-from-ghostjs-to-gatsbyjs</link>
            <guid>https://www.joanmira.com/blog/migrate-from-ghostjs-to-gatsbyjs</guid>
            <pubDate>Mon, 05 Feb 2018 00:00:00 GMT</pubDate>
            <description><![CDATA[My experience working with this new static site generator that everyone seems to love]]></description>
            <content:encoded><![CDATA[<p><a class="btn github" href="https://github.com/gazpachu/joanmira" target="_blank">Source code</a></p>
<p>I&#39;ve been using the community version (self-hosted) of <a href="http://ghost.org">GhostJS</a> since 2016 on my websites. In the beginning, it was all good, I loved it. I decided to migrate from WordPress to Ghost because WP was getting always targeted by hackers and the code was becoming messy with all sorts of plugins, bugs, etc.</p>
<p>But then, after a couple of years, I started falling out of love. I don&#39;t blame Ghost, it was probably me. I became lazy to upgrade to the latest version of Ghost, which required a lot of changes in the codebase and also in the VPS config I had in <a href="http://ovh.es">OVH</a>. Due to this situation, I didn&#39;t update my websites much.</p>
<p>Time passed and then I realized I needed to update my website with new projects. I also wanted to leave my hosting provider and hopefully find a modern and free web hosting service I could use and integrate into a CI/CD pipeline. That&#39;s when I started researching modern static site generators and how I found <a href="http://gatsbyjs.org">GatsbyJS</a>.</p>
<p>There are other static site generators out there like <a href="https://nextjs.org/">NextJS</a> or <a href="https://www.netlify.com/blog/2017/05/25/top-ten-static-site-generators-of-2017/">these</a> other](<a href="https://www.netlify.com/blog/2017/05/25/top-ten-static-site-generators-of-2017/">https://www.netlify.com/blog/2017/05/25/top-ten-static-site-generators-of-2017/</a>). I was interested in Gatsby because it uses GraphQL, a technology I want to learn and it&#39;s also based on ReactJS.</p>
<h3 id="preparing-the-migration">Preparing the migration</h3>
<p>After installing GatsbyJS and exploring a bit how it works, I started researching how could I transfer all my blog posts and static pages into Gatsby&#39;s folder structure, with the posts as markdown files and the images stored in subfolders. Luckily enough, there was a kind soul that <a href="https://github.com/InsidersByte/ghost-to-gatsby">built a module</a> to do exactly that.</p>
<p>The module takes the export file from Ghost and automatically creates the folders for the posts renamed with the post date and the post slug. It is then placed inside the post in markdown format and downloads the images into an <code>images</code> folder. Unfortunately, the module didn&#39;t fully download all the images nor produced all the markdown files, but still, I got a lot of the work done for free!</p>
<h3 id="finding-a-starter-package">Finding a starter package</h3>
<p>In the Gatsby community, there are many boilerplates/templates, or as they call it, <a href="https://www.gatsbyjs.org/starters/?v=2">starter packages</a>. There are different approaches to building a new website. You could start it completely from scratch, just using the <code>gatsby-cli</code> tool or you could install a starter and then build from there. In my case, I chose the <a href="https://github.com/greglobinski/gatsby-starter-hero-blog">starter-hero-blog</a>, as it already had some features I was interested to learn.</p>
<h3 id="start-formatting-the-posts">Start formatting the posts</h3>
<p>A new concept I learned with Gatsby is the <code>front matter</code>. The front matter is the first section of a book and is generally the shortest; it is also sometimes called the prelims, or preliminary matter. In Gatsby and also in the static site generators world, the frontmatter is the data at the top of the markdown files that are going to be like its metadata`. So it will contain the name of the featured image, the category the post belongs to, the slug, date, etc. The structure is open, so you can decide what data you want to use.</p>
<p>In my case, because the post folders already contain the post date and the slug, I decided not to include them again in the front matter. For blog posts, I decided to store only the category, title and cover image.</p>
<p>This part of choosing which metadata to use in all blog posts is quite important, as every markdown file will have to contain these values, so think well about what you need. You can always use the <code>search in all files</code> feature of your text editor to rename stuff, but it&#39;s not ideal to keep doing that...</p>
<p>After the blog posts from Ghost were imported into Gatsby, I realized that I had to format a bit the <code>frontmatter</code>, so this, together with fixing image URLs, cleaning up markup and improving some articles, will take a considerable amount of time, depending on how many posts you have in your website.</p>
<h3 id="adding-new-features">Adding new features</h3>
<p>In my case, I needed to add a few new things:</p>
<ul>
<li><strong>Blog pagination</strong>: this would allow users to divide the listing page into several pages, otherwise, all the blog posts would show up, which is not ideal</li>
<li><strong>Moving the blog from the index to <code>/blog</code></strong>: I wanted to have the homepage for something else, so I had to do a few changes in the <code>gatsby-config.js</code> file to accommodate the blog in a different URL</li>
<li><strong>Create nodes for projects and static pages</strong>: these changes would require new layout files and changes in the config</li>
</ul>
<p>Check the <a href="https://github.com/gazpachu/joanmira">source code</a> if you want to explore how I did these changes.</p>
<h3 id="setting-up-cicd-and-deploying-to-github-pages">Setting up CI/CD and deploying to GitHub pages</h3>
<p>One of the benefits of moving to a static site generator is that I no longer need to maintain a server by myself. I can just generate the HTML, CSS and JavaScript files and upload them to Github pages. That&#39;s it!</p>
<p>To deploy to GitHub, there&#39;s no need to have continuous integration and a continuous delivery pipeline. You can just install the <code>gh-pages</code> package and add the deploy script (<code>&quot;deploy&quot;: &quot;gh-pages -d public&quot;</code>) to your <code>package.json</code> file.</p>
<p>But, if you want an automatic way to deploy your website every time you push something new to the <code>master</code> branch, then I recommend you setting it up with Netlify.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/migrate-from-ghostjs-to-gatsbyjs/images/1.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Move your React JSON API project from Redux to MobX]]></title>
            <link>https://www.joanmira.com/blog/move-your-react-json-api-project-from-redux-to-mobx</link>
            <guid>https://www.joanmira.com/blog/move-your-react-json-api-project-from-redux-to-mobx</guid>
            <pubDate>Tue, 23 May 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[A few notes regarding global state management]]></description>
            <content:encoded><![CDATA[<p>After a few projects using Redux, I&#39;ve realized that it might not be the best solution for all types of projects. Don&#39;t get me wrong, redux works great, but I tend to find myself procrastinating a bit whenever I have to add a new value to the state tree. Perhaps is due to the amount of code required to do it.</p>
<p>Anyway, this post is going to be about MobX. I will explain step by step the changes I had to do to make it work. Note that I am also using JSON API, so I will cover this aspect as well.</p>
<p>First of all, you need to remove all the redux packages and references from your codebase. Then you have to install the following babel plugins to allow the use of decorators.</p>
<pre><code class="language-javascript">yarn add babel-plugin-transform-decorators-legacy -D
yarn add babel-plugin-transform-class-properties -D
</code></pre>
<p>And then add them to the plugins array in your <code>.babelrc</code> file:</p>
<pre><code class="language-javascript">&quot;plugins&quot;: [&quot;transform-decorators-legacy&quot;, &quot;transform-class-properties&quot;]
</code></pre>
<p>Now we have to use babel as the ESLint parser. Add this package:</p>
<pre><code class="language-javascript">yarn add babel-eslint -D
</code></pre>
<p>Then, update the parser in the <code>.eslintrc</code> file:</p>
<pre><code class="language-javascript">&quot;parser&quot;: &quot;babel-eslint&quot;
</code></pre>
<p>Now let&#39;s install the following MobX packages:</p>
<pre><code class="language-javascript">yarn add mobx -S
yarn add mobx-jsonapi-store -S
yarn add mobx-react -S
yarn add mobx-react-router -S
</code></pre>
<p>That&#39;s all the dependencies we need so far. Now let&#39;s look at some code.</p>
<p>First of all, we are going to create a store to handle the app global states, like the loader, notifications alerts and other common flags.</p>
<p>Create a new file called <code>store.jsx</code> and add the following code:</p>
<pre><code class="language-javascript">import { autorun, observable } from &#39;mobx&#39;;

class MainStore {
  @observable isLoading = true;
  @observable isFetching = false;
  @observable isDesktop = true;
  @observable notification: { message: &#39;&#39;, type: &#39;&#39; };
  @observable apiReady = false;
  @observable isDesktop = false;
  @observable isDesktop = false;
}

const store = new MainStore();

autorun(() =&gt; {
  // eslint-disable-next-line
  console.log(store);
});

export default store;
</code></pre>
<p>In this file, we are just creating the state variables and making them observable. We are also using <code>autorun</code> to automatically console log any changes in the store (just for debug purposes).</p>
<p>Now, let&#39;s refactor the <code>index.jsx</code> file. We are going to be using the latest version of react router (v4) and the <a href="www.material-ui.com">Material UI framework</a>, so bear that in mind.</p>
<pre><code class="language-javascript">import React from &#39;react&#39;;
import ReactDOM from &#39;react-dom&#39;;
import createBrowserHistory from &#39;history/createBrowserHistory&#39;;
import { Provider } from &#39;mobx-react&#39;;
import { RouterStore, syncHistoryWithStore } from &#39;mobx-react-router&#39;;
import { Router } from &#39;react-router&#39;;
import MuiThemeProvider from &#39;material-ui/styles/MuiThemeProvider&#39;;
import mainStore from &#39;./store&#39;;
import App from &#39;./components/app&#39;;
import &#39;./components/bundle.scss&#39;;

const browserHistory = createBrowserHistory();
const routingStore = new RouterStore();

const stores = {
  routing: routingStore,
  app: mainStore
};

const history = syncHistoryWithStore(browserHistory, routingStore);

ReactDOM.render(
  &lt;Provider {...stores}&gt;
    &lt;Router history={history}&gt;
      &lt;MuiThemeProvider&gt;
        &lt;App /&gt;
      &lt;/MuiThemeProvider&gt;
    &lt;/Router&gt;
  &lt;/Provider&gt;,
  document.getElementById(&#39;react-root&#39;)
);
</code></pre>
<p>The important bit to mention here is the object that contains the stores, one for the router and the other one that we created before. We then pass these stores to the MobX provider and that&#39;s it!</p>
<p>Now let&#39;s look at the <code>app.jsx</code> file, which will contain the routes and other common components:</p>
<pre><code class="language-javascript">import React, { Component } from &#39;react&#39;;
import { inject, observer } from &#39;mobx-react&#39;;
import { Route } from &#39;react-router-dom&#39;;
import injectTapEventPlugin from &#39;react-tap-event-plugin&#39;;
import Helmet from &#39;react-helmet&#39;;
import Notification from &#39;./common/notification/notification&#39;;
import Loader from &#39;./common/loader/loader&#39;;
import Home from &#39;./home/home&#39;;
import PageNotFound from &#39;./pageNotFound/pageNotFound&#39;;

injectTapEventPlugin();

@inject(&#39;routing&#39;) @observer
class App extends Component {
  render() {
    const title = this.props.routing.title
      ? `${this.props.routing.title} | App name`
      : &#39;App name&#39;;

    return (
      &lt;section className=&quot;app-container&quot;&gt;
        &lt;Switch&gt;
          &lt;Route exact path=&quot;/&quot; component={Home} /&gt;
          &lt;Route component={PageNotFound} title=&quot;Page not found&quot; /&gt;
        &lt;/Switch&gt;
        &lt;Helmet title={String(title)} /&gt;
        &lt;Loader /&gt;
        &lt;Notification /&gt;
      &lt;/section&gt;
    );
  }
}

export default App;
</code></pre>
<p>All we are doing here is creating the routes and telling the component to be an observer, so that anytime the state variables change, the component will update. Notice also that we are reading the <code>title</code> from the route to know which page title to set using the <code>Helmet</code> package.</p>
<p>Remember to use <code>Switch</code> inside the <code>Router</code> and set the root path with <code>exact</code>, otherwise the page not found won&#39;t work.</p>
<p>Another example of how to use MobX, is for the loader component. We need to know when to display or hide the loader, so we are going to use the <code>isLoading</code> flag from the <code>store</code> we created. If the flag is <code>true</code> then the loader will be visible, otherwise not.</p>
<p>Let&#39;s look at the loader component:</p>
<pre><code class="language-javascript">import React, { Component } from &#39;react&#39;;
import { inject, observer } from &#39;mobx-react&#39;;
import classnames from &#39;classnames&#39;;
import Icon from &#39;../lib/icon/icon&#39;;
import Logo from &#39;../../../assets/svg/logo.svg&#39;;

@inject(&#39;app&#39;) @observer
class Loader extends Component {
  render() {
    return (
      &lt;section
        className={classnames(&#39;loader&#39;, {
          &#39;fade-in&#39;: this.props.app.isLoading,
          &#39;fade-out&#39;: !this.props.app.isLoading
        })}
      &gt;
        &lt;div className=&quot;loader__circle&quot; /&gt;
        &lt;div className=&quot;loader__line-mask&quot;&gt;
          &lt;div className=&quot;loader__line&quot; /&gt;
        &lt;/div&gt;
        &lt;Icon glyph={Logo} className=&quot;loader__logo&quot; /&gt;
      &lt;/section&gt;
    );
  }
}

export default Loader;
</code></pre>
<p>All we are doing is setting a <code>fade-in</code> or &#39;fade-out&#39; class depending on the value of the <code>isLoading</code> state.</p>
<p>Now, from any component in the app, we can change this value by doing <code>this.props.app.isLoading = false</code> and the loader will hide.</p>
<p>Another thing that wasn&#39;t working with the new router, is the update of the page (with the new component) when moving from one page to another. After digging a bit about the issue, I found <a href="https://stackoverflow.com/questions/42875949/react-router-v4-redirect-not-working">this stack-overflow answer</a> that fixed it.</p>
<p>When you do <code>@inject(&#39;routing&#39;)</code> to a component, you get access to <code>this.props.routing</code>, so you can push new URLs to the browser history. That was working fine by doing something like this: <code>this.props.routing.push(&#39;/leads/231234&#39;)</code>.</p>
<p>The problem was that the page was not refreshing, so I had to wrap the export of the components with <code>withRouter()</code>: <code>export default withRouter(Home)</code>. You can import it from the <code>react-router</code> package.</p>
<p>Finally, let&#39;s look at how to integrate JSON API with MobX. This is a bit more difficult, but we&#39;ll get there!. The package we are using is <a href="https://github.com/infinum/mobx-jsonapi-store">mobx-jsonapi-store</a>.</p>
<p>A simple example of how to request data from the API and asign it a store would be the following:</p>
<pre><code class="language-javascript">import { Store, config } from &#39;mobx-jsonapi-store&#39;;
const teststore = new Store();
config.defaultHeaders = {&#39;xxxxxx&#39;: &#39;xxxxxxxxxx&#39;};

teststore.request(&#39;http://localhost:3000/xxxxxxxxxxx&#39;)
  .then((response) =&gt; {
    const Data = teststore.sync(response.data);
    console.log(Data);
  });
</code></pre>
<p>UPDATE June 2022: I&#39;m not very fond of using MobX in React projects anymore. It&#39;s better to keep everything under the same functional programming paradigm.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/move-your-react-json-api-project-from-redux-to-mobx/images/mobx.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[A few more VueJS 2 tweaks for the beginners]]></title>
            <link>https://www.joanmira.com/blog/a-few-more-vuejs-2-tweaks-for-the-beginners</link>
            <guid>https://www.joanmira.com/blog/a-few-more-vuejs-2-tweaks-for-the-beginners</guid>
            <pubDate>Tue, 31 Jan 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[My experience with this new front-end JavaScript framework]]></description>
            <content:encoded><![CDATA[<p>This is my second blog post about VueJS 2. In the first one, I covered <a href="http://joanmira.com/vuejs-first-impression-and-how-to-work-with-svgs/">my initial impressions and how to work with SVGs</a>. In this second post, I&#39;m going to talk about some bits and bobs that I&#39;ve discovered and that it wasn&#39;t that straightforward to figure out.</p>
<p>Before you continue reading, remember that I&#39;m using the <a href="vuejs-templates.github.io/webpack/">Vue webpack boilerplate</a>, so all my tweaks are customized for it. Nonetheless, if you are not using this boilerplate, you might be able to grasp the ideas and apply them to yours.</p>
<h3 id="how-to-setup-sass-with-global-files">How to setup SASS with global files</h3>
<p>One of the first things you might want to do is to structure your Vue app with proper SASS global mixins, variables, elements, etc. To do so, you need to create a central <code>scss</code> file with all the <code>@import</code> statements to other global or common files like <code>variables.scss</code>, <code>mixins.scss</code>. There are several ways of doing that (as usual), but I&#39;ve found the following one, the easiest:</p>
<ol>
<li><p>Open <code>build/utils.js</code> and go to line 43. That&#39;s where the SASS loader is. Then replace the line with this: <code>scss: generateLoaders([&#39;css&#39;, &#39;sass?data=@import &quot;~assets/styles/app&quot;;&#39;])</code></p>
</li>
<li><p>The previous change will load the <code>assets/styles/app</code> file and that&#39;s where you have to put all your <code>@imports</code>.</p>
</li>
<li><p>You can put another path, but I&#39;m saving all my generic SASS files inside <code>src/assets/styles</code></p>
</li>
</ol>
<h3 id="how-to-send-data-from-a-child-component-to-its-parent-or-other-components">How to send data from a child component to its parent or other components</h3>
<p>From <a href="https://vuejs.org/v2/guide/components.html#One-Way-Data-Flow">the official Vue docs</a>:</p>
<blockquote>
<p>All props form a <strong>one-way-down binding</strong> between the child property and the parent one: when the parent property updates, it will flow down to the child, but not the other way around. This prevents child components from accidentally mutating the parent’s state, which can make your app’s data flow harder to reason about.</p>
</blockquote>
<p>So, it seems, in previous versions of Vue, there were two methods, called <code>dispatch</code> and <code>broadcast</code>, that would allow us to communicate between components, but as you can see in the Vue docs, <a href="https://vuejs.org/v2/guide/migration.html#dispatch-and-broadcast-replaced">they have been deprecated</a> because they don&#39;t scale well.</p>
<p>So, what they propose is to, use a Flux implementation like <a href="https://github.com/vuejs/vuex">Vuex</a>, which is <a href="https://vuejs.org/v2/guide/state-management.html">explained here</a>, or if your app is not going to be very complex, you can use an <code>event hub</code> or <code>bus</code>. The <code>event hub</code> example is <a href="https://vuejs.org/v2/guide/migration.html#dispatch-and-broadcast-replaced">explained here</a> and the <code>bus</code> example is <a href="https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication">explained here</a>. I believe they are both the same, but the <code>event hub</code> example is more thorough.</p>
<p>If you decide to go with the <code>event hub</code>, then, one aspect that the docs don&#39;t cover is how to inject the `eventHub`` object into all the child components from the root component.</p>
<p>In the following example, you can see how to implement the <code>eventHub</code> so that every child component can change a page heading:</p>
<ol>
<li>In <code>main.js</code>, create the <code>eventHub</code> and assign it to Vue:</li>
</ol>
<pre><code class="language-javascript">const eventHub = new Vue();
Vue.prototype.$eventHub = eventHub;
</code></pre>
<ol start="2">
<li>Then, pass the variable to Vue:</li>
</ol>
<pre><code class="language-javascript">new Vue({
  router,
  eventHub,
  ...
</code></pre>
<ol start="3">
<li>Now you can start using <code>emit</code> and <code>on</code> in your child components. Every time you <code>emit</code> a value, it will be sent to all components and only those who have a listener (<code>on</code>) for that event, will get the value.</li>
</ol>
<pre><code class="language-javascript">this.$eventHub.$emit(&#39;whateverChanged&#39;, this.passThisValue);
this.$eventHub.$on(&#39;whateverChanged&#39;, this.callThisFunction);
</code></pre>
<h3 id="useful-vue-2-videos-and-libraries">Useful VUE 2 videos and libraries</h3>
<ul>
<li><a href="https://laracasts.com/series/learn-vue-2-step-by-step">Learn VUE 2 step by step</a></li>
<li><a href="http://www.codechannels.com/channel/mindspace/">Lots of VUE 2 videos</a></li>
<li><a href="https://www.youtube.com/watch?v=z6hQqgvGI4Y">Vue.js 2.0 In 60 Minutes</a></li>
</ul>
<ul>
<li>If you need a CSS library and you are tired of Bootstrap, I recommend <a href="https://vuematerial.github.io">Vue Material</a>. It&#39;s super easy and works very well</li>
<li>If you need to load JSON, use <a href="https://github.com/mzabriskie/axios">Axios</a>. Vue-resource is no longer maintained.</li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/a-few-more-vuejs-2-tweaks-for-the-beginners/images/vuejs.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[VueJS: first impression and how to work with SVGs]]></title>
            <link>https://www.joanmira.com/blog/vuejs-first-impression-and-how-to-work-with-svgs</link>
            <guid>https://www.joanmira.com/blog/vuejs-first-impression-and-how-to-work-with-svgs</guid>
            <pubDate>Fri, 13 Jan 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[My experience with this new front-end JavaScript framework]]></description>
            <content:encoded><![CDATA[<p>After a delightful year working with <a href="https://facebook.github.io/react/">React</a>, I decided to explore a new framework. I was looking at <a href="http://emberjs.com/">Ember</a> (not so popular at the moment), <a href="http://elm-lang.org">Elm</a> (although it&#39;s not a framework, it still lacks a lot of stuff), <a href="https://angular.io/">Angular2</a> (not interested to learn TypeScript yet) and <a href="https://vuejs.org">Vue</a> (gaining a lot of momentum). In the end, I choose <a href="https://vuejs.org">Vue</a>!</p>
<p>The <strong>first impression was very good</strong>. The Vue docs are really good and their website is so clear and helpful. Then I learned about the <a href="https://github.com/vuejs/awesome-vue">awesome resources</a>, where I found <a href="https://github.com/SimulatedGREG/electron-vue">a couple</a> <a href="https://github.com/quasarframework/quasar">of boilerplates</a> that work with <a href="https://github.com/electron/electron">Electron</a>, which is a library from Git used to build desktop apps. Do you use the <a href="https://atom.io/">Git Atom editor</a> or the <a href="https://slack.com/downloads">Slack desktop app</a>? Then you should know that those are built with <strong>Electron</strong>!</p>
<p>Anyway, Electron has nothing to do with Vue, but it was just a nice discovery and I wanted to share it.</p>
<p>The target of this article is to show you how I managed to set up SVGs with the <a href="https://github.com/vuejs-templates/webpack">Vue Webpack boilerplate</a>. By the way, if you don&#39;t know that boilerplate, I encourage you to check it out. I was very impressed by its quality and its ridiculous simplicity when it comes to creating a new project. It takes just 5 lines to do it!</p>
<p>I intended to replicate the setup that I had with my previous React boilerplate, where I had a folder with all the SVG files and I could import them into my React components whenever I require them.</p>
<p>To do so, in your newly created Vue project, you need to install this Webpack loader called <a href="https://github.com/kisenka/svg-sprite-loader">svg-sprite-loader</a>. Then, in <code>build/webpack.base.conf.js</code> we just have to declare the new loader (line 88 to 92 approx.):</p>
<pre><code class="language-javascript">loader: &#39;svg-sprite?&#39; + JSON.stringify({
    name: &#39;[name]_[hash]&#39;,
    prefixize: true
})
</code></pre>
<p>Also, in the same file, you have to remove the <code>svg</code> format from line 72: <code>test: /\.(png|jpe?g|gif)(\?.*)?$/,</code>. If we don&#39;t do it, this loader would try to load the SVG and the svg-sprite loader wouldn&#39;t do anything.</p>
<p>That&#39;s all we need as far as Webpack configuration. The next step is to create a new component called <code>Icon</code>. This component will be useful to render inline SVGs on our pages. Remember that, this is the only way we can change the colors of the SVGs using <code>fill</code> or <code>stroke</code>. If you load them as CSS backgrounds or <code>&lt;img&gt;</code> tags, then you will not be able to alter their colors.</p>
<p>Create a new file called <code>Icon.vue</code> inside your <code>src/components</code> folder and paste the following code:</p>
<pre><code class="language-javascript">&lt;template&gt;
  &lt;svg :class=&quot;className&quot; :width=&quot;width&quot; :height=&quot;height&quot;&gt;
    &lt;use :xlink:href=&quot;glyph&quot; /&gt;
  &lt;/svg&gt;
&lt;/template&gt;

&lt;script&gt;
export default {
  name: &#39;icon&#39;,
  props: [&#39;className&#39;, &#39;glyph&#39;, &#39;width&#39;, &#39;height&#39;],
};
&lt;/script&gt;

&lt;style scoped&gt;
.icon {
  display: inline-block;
}
&lt;/style&gt;
</code></pre>
<p>This is a basic implementation. You can expand it with more CSS code or props.</p>
<p>Finally, to load the SVGs, I&#39;m going to show you a simple example of how to load a logo icon and a close icon for the main App component, where we have the app layout. If you haven&#39;t modified the boilerplate yet (which is unlikely), you will have an <code>App</code> component. If that&#39;s not the case, don&#39;t worry, this example applies to any component.</p>
<p>Let&#39;s see first the code and then we can review it:</p>
<pre><code class="language-javascript">&lt;template&gt;
  &lt;div id=&quot;app&quot;&gt;
    &lt;icon width=&quot;100&quot; height=&quot;100&quot; :glyph=&quot;Logo&quot;&gt;&lt;/icon&gt;
    &lt;icon width=&quot;100&quot; height=&quot;100&quot; :glyph=&quot;Close&quot;&gt;&lt;/icon&gt;
  &lt;/div&gt;
&lt;/template&gt;

&lt;script&gt;
import Icon from &#39;./components/Icon&#39;;
import Logo from &#39;./assets/logo.svg&#39;;
import Close from &#39;./assets/close.svg&#39;;

export default {
  name: &#39;app&#39;,
  components: {
    Icon,
  },
  data() {
    return { Logo, Close };
  },
};
&lt;/script&gt;
</code></pre>
<p>Whenever you want to add a new SVG to your template, you have to add code in 4 different places:</p>
<ol>
<li><p>Import the file from the <code>assets</code> folder: <code>import Logo from &#39;./assets/logo.svg&#39;;</code></p>
</li>
<li><p>Add the <code>Icon</code> component to the <code>components</code> object</p>
</li>
<li><p>Return the imported SVG in the <code>data</code> function</p>
</li>
<li><p>Call the <code>Icon</code> component and pass the appropriate props: <code>&lt;icon width=&quot;100&quot; height=&quot;100&quot; :glyph=&quot;Logo&quot;&gt;&lt;/icon&gt;</code></p>
</li>
</ol>
<p>That&#39;s all!</p>
<p>If you find a better way to do this. Please let me know. Thanks.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/vuejs-first-impression-and-how-to-work-with-svgs/images/vuejs.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[How to set up a Node.js (React ES6) app for production on Ubuntu with Nginx and basic auth]]></title>
            <link>https://www.joanmira.com/blog/how-to-set-up-a-react-es6-app-for-production-on-ubuntu</link>
            <guid>https://www.joanmira.com/blog/how-to-set-up-a-react-es6-app-for-production-on-ubuntu</guid>
            <pubDate>Wed, 17 Aug 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[A few notes on devops and infrastructure for light and small projects]]></description>
            <content:encoded><![CDATA[<h3 id="introduction">Introduction</h3>
<p>Node.js is an open-source JavaScript runtime environment for easily building server-side and networking applications. The platform runs on Linux, OS X, FreeBSD, and Windows. Node.js applications can be run at the command line, but we&#39;ll focus on running them as a service, so that they will automatically restart on reboot or failure, and can safely be used in a production environment.</p>
<p>In this tutorial, we will cover setting up a production-ready Node.js environment on a single Ubuntu 16.04 server. This server will run a Node.js application managed by PM2, and provide users with secure access to the application through an Nginx reverse proxy with basic auth.</p>
<h3 id="prerequisites">Prerequisites</h3>
<p>This guide assumes that you have an Ubuntu 16.04 server (it also works with Ubuntu 14). If you don&#39;t have one yet, I do recommend <a href="https://www.digitalocean.com/">Digital Ocean</a>, <a href="http://ovh.com">OVH</a> or <a href="https://aws.amazon.com/">Amazon AWS</a>.</p>
<p>It also assumes that you have a domain name, pointing at the server&#39;s public IP address.</p>
<p>Let&#39;s get started by connecting to the server via SSH.</p>
<h3 id="connect-to-the-server-via-ssh">Connect to the server via SSH</h3>
<p>Once your server is up and running, you must have an IP address or DNS you can use to connect to the server. In this example, we are going to use the DNS of a Ubuntu micro instance from Amazon AWS EC2.</p>
<p>During the process of setting up the server, you should create or use an existing key. Download it to a folder on your computer (usually ~/.ssh/) and run the following command from your terminal:</p>
<p><code>ssh -i ~/folder/to/your/ssh/key.pem ubuntu@ec2-28-28-82-82.eu-central-1.compute.amazonaws.com</code></p>
<p>That should give your access to your server!</p>
<p><strong>Note</strong>: make sure that your instance accepts HTTP traffic. In Amazon AWS you have to go to &#39;security groups&#39;, and add HTTP / TCP / Port 80 to the inbound rules of the security group of your instance.</p>
<h3 id="install-nodejs">Install Node.js</h3>
<p>We will install the latest current release of Node.js, using the NodeSource package archives.</p>
<p>First, you need to install the NodeSource PPA to get access to its contents. Make sure you&#39;re in your home directory and use curl to retrieve the installation script for the Node.js 6.x archives:</p>
<p><code>cd ~ curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh</code></p>
<p>And run the script under sudo:</p>
<p><code>sudo bash nodesource_setup.sh</code></p>
<p>The PPA will be added to your configuration and your local package cache will be updated automatically. After running the setup script from nodesource, you can install the Node.js package in the same way that you did above:</p>
<p><code>sudo apt-get install nodejs</code></p>
<p>The nodejs package contains the nodejs binary as well as npm, so you don&#39;t need to install npm separately. However, for some npm packages to work (such as those that require compiling code from source), you will need to install the build-essential package:</p>
<p><code>sudo apt-get install build-essential</code></p>
<p>The Node.js runtime is now installed, and ready to run an application!</p>
<h3 id="clone-your-app">Clone your app</h3>
<p>Make sure that git is installed:</p>
<p><code>sudo apt-get install git</code></p>
<p>Next, clone your app from GitHub (or any other repository) to /opt/your_app. The /opt/ directory is a standard location for software that&#39;s not installed from the distribution&#39;s official package repositories:</p>
<p><code>sudo git clone https://github.com/your_user/your_app /opt/your_app</code></p>
<p>Change to your app directory:</p>
<p><code>cd /opt/your_app</code></p>
<p>Run npm install, bower install or any other command you need to set up your app. Make sure that there are no build errors and once you are done, close your app and proceed to the next step.</p>
<h3 id="set-up-nginx-as-a-reverse-proxy-server">Set Up Nginx as a Reverse Proxy Server</h3>
<p>Now that your application is working, you need to set up a way for your users to access it. We will set up an Nginx web server as a reverse proxy for this purpose. This tutorial will set up an Nginx server from scratch. If you already have an Nginx server setup, you can just copy the location block into the server block of your choice (make sure the location does not conflict with any of your web server&#39;s existing content).</p>
<p>First, install Nginx using apt-get:</p>
<p><code>sudo apt-get install nginx</code></p>
<p>Now open the default server block configuration file for editing:</p>
<p><code>sudo nano /etc/nginx/sites-available/default</code></p>
<p>Delete everything in the file and insert the following configuration. Be sure to substitute your own domain name for the server_name directive. Additionally, change the port (8080) if your application is set to listen on a different port:</p>
<pre><code class="language-javascript">server {
    listen 80;

    server_name example.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection &#39;upgrade&#39;;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
</code></pre>
<p>This configures the server to respond to requests at its root. Assuming our server is available at example.com, accessing <a href="http://example.com/">http://example.com/</a> via a web browser would send the request to your app, listening on port 8080 at localhost.</p>
<p>Once you are done adding the location blocks for your applications, save and exit.</p>
<p>Next, restart Nginx:</p>
<p><code>sudo service restart nginx</code></p>
<p>Assuming that your Node.js application is running, and your application and Nginx configurations are correct, you should now be able to access your application via the Nginx reverse proxy. Try it out by accessing your server&#39;s URL (its public IP address or domain name).</p>
<h3 id="set-up-basic-authentication">Set up basic authentication</h3>
<p>Sometimes, we don&#39;t want everyone to see our app until it&#39;s not completely ready. For that and other reasons, we might like to implement a simple user authentication system that will request a username and password.</p>
<p>First, we are going to create the password file using the OpenSSL utilities. We will create a hidden file called .htpasswd in the /etc/nginx configuration directory to store our username and password combinations.</p>
<p>You can add a username to the file using this command. We are using &#39;pepe&#39; as our username, but you can use whatever name you&#39;d like:</p>
<p><code>sudo sh -c &quot;echo -n &#39;pepe:&#39; &gt;&gt; /etc/nginx/.htpasswd&quot;</code></p>
<p>Next, add an encrypted password entry for the username by typing:</p>
<p><code>sudo sh -c &quot;openssl passwd -apr1 &gt;&gt; /etc/nginx/.htpasswd&quot;</code></p>
<p>You can repeat this process for additional usernames. You can see how the usernames and encrypted passwords are stored within the file by typing:</p>
<p><code>cat /etc/nginx/.htpasswd</code></p>
<h3 id="configure-nginx-password-authentication">Configure Nginx password authentication</h3>
<p>Now that we have a file with our users and passwords in a format that Nginx can read, we need to configure Nginx to check this file before serving our protected content.</p>
<p>Begin by opening up again the server block configuration file that we previously opened:</p>
<p><code>sudo nano /etc/nginx/sites-enabled/default</code></p>
<p>To set up authentication, you need to decide on the context to restrict. Among other choices, Nginx allows you to set restrictions on the server level or inside a specific location. In our example, we&#39;ll restrict the entire document root with a location block, but you can modify this listing to only target a specific directory within the web space:</p>
<p>Within this location block, use the auth_basic directive to turn on authentication and to choose a realm name to be displayed to the user when prompting for credentials. We will use the auth_basic_user_file directive to point Nginx to the password file we created:</p>
<pre><code class="language-javascript">server {
    listen 80;

    server_name example.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection &#39;upgrade&#39;;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        auth_basic &quot;Restricted Content&quot;;
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}
</code></pre>
<p>Save and close the file when you are finished. Restart Nginx to implement your password policy:</p>
<p><code>sudo service nginx restart</code></p>
<p>The directory you specified should now be password protected.</p>
<h3 id="install-pm2">Install PM2</h3>
<p>PM2 is a process manager for Node.js applications. PM2 provides an easy way to manage and daemonize applications (run them in the background as a service).</p>
<p>We will use npm, a package manager for Node modules that install with Node.js, to install PM2 on our server. Use this command to install PM2:</p>
<p><code>sudo npm install -g pm2</code></p>
<p>The -g option tells npm to install the module globally so that it&#39;s available system-wide.</p>
<p>PM2 is simple and easy to use. We will cover a few basic uses of PM2.</p>
<h3 id="start-application">Start Application</h3>
<p>The first thing you will want to do is use the pm2 start command to run your application, hello.js, in the background:</p>
<p><code>pm2 start hello.js</code></p>
<p>In some cases, your app might use &#39;npm start&#39; to start its execution. If that&#39;s the case, you can start your app with PM2 like this:</p>
<p><code>pm2 start npm -- start</code></p>
<p><strong>Note</strong>: the production settings of each app might be very different, so we will not cover that in this tutorial. Just make sure to run the command that will run the production tasks to bundle and run your app.</p>
<p>This also adds your application to PM2&#39;s process list, which is outputted every time you start an application:</p>
<pre><code class="language-html">[PM2] Spawning PM2 daemon
[PM2] PM2 Successfully daemonized
[PM2] Starting npm in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ pid  │ status │ restart │ uptime │ memory      │ watching │
├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ npm      │ 0  │ fork │ 3524 │ online │ 0       │ 0s     │ 21.566 MB   │ disabled │
└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────────────┴──────────┘
Use `pm2 show &amp;lt;id|name&amp;gt;` to get more details about an app
</code></pre>
<p>As you can see, PM2 automatically assigns an App name (based on the filename, without the .js extension) and a PM2 id. PM2 also maintains other information, such as the PID of the process, its current status, and memory usage.</p>
<p>Applications that are running under PM2 will be restarted automatically if the application crashes or is killed, but an additional step needs to be taken to get the application to launch on system startup (boot or reboot). Luckily, PM2 provides an easy way to do this, the startup subcommand.</p>
<p>The startup subcommand generates and configures a startup script to launch PM2 and its managed processes on server boots. You must also specify the platform you are running on, which is ubuntu, in our case:</p>
<p><code>sudo pm2 startup ubuntu</code></p>
<p>This will create a <code>systemd</code> unit that runs pm2 for your user on boot. This pm2 instance, in turn, runs &#39;npm start&#39;</p>
<h3 id="other-pm2-usage-optional">Other PM2 Usage (Optional)</h3>
<p>PM2 provides many subcommands that allow you to manage or look up information about your applications. Note that running pm2 without any arguments will display a help page, including example usage, that covers PM2 usage in more detail than this section of the tutorial.</p>
<p>Stop an application with this command (specify the PM2 App name or id):</p>
<p><code>pm2 stop app_name_or_id</code></p>
<p>Restart an application with this command (specify the PM2 App name or id):</p>
<p><code>pm2 restart app_name_or_id</code></p>
<p>The list of applications currently managed by PM2 can also be looked up with the list subcommand:</p>
<p><code>pm2 list</code></p>
<p>More information about a specific application can be found by using the info subcommand (specify the PM2 App name or id):</p>
<p><code>pm2 info example</code></p>
<p>The PM2 process monitor can be pulled up with the monit subcommand. This displays the application status, CPU, and memory usage:</p>
<p><code>pm2 monit</code></p>
<p>Now that your Node.js application is running, and managed by PM2, let&#39;s set up the reverse proxy.</p>
<h3 id="disclaimer">Disclaimer</h3>
<p>This tutorial is based on the great work of <a href="https://www.digitalocean.com/community/tutorials/">Digital Ocean community tutorials</a>. IMHO one of the best resources on the Internet in terms of sys-admin-related stuff.</p>
<ul>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-nginx-on-ubuntu-14-04">How to set up password authentication with nginx on ubuntu 14 04</a></li>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04">How to set up a node js application for production on ubuntu 16 04</a></li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/how-to-set-up-a-react-es6-app-for-production-on-ubuntu/images/ubuntu-react-nodejs.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The books that have had the greatest impact on me]]></title>
            <link>https://www.joanmira.com/blog/books-that-have-had-the-greatest-impact-on-me</link>
            <guid>https://www.joanmira.com/blog/books-that-have-had-the-greatest-impact-on-me</guid>
            <pubDate>Sat, 02 Jul 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[Some books that I would like to share because I have found them enriching in some way]]></description>
            <content:encoded><![CDATA[<p>Although I have not read as much as I would have liked (something I want to remedy), I am a great advocate of literature. It is without a doubt the best medium for learning (in general) <strong>in depth</strong> about many subjects. Great thinkers, artists and intellectuals are all book lovers. That has to mean something, right?</p>
<p>Haven&#39;t you ever stopped yourself to think about how much work goes into a book? Sometimes it is the work of a lifetime that ends up condensed into a book. When we read it, we are acquiring (in a summarized form) the knowledge of the person who wrote it. That is the greatness of books. It&#39;s like when in the Matrix movie, Neo&#39;s head was plugged into a cable and martial arts programs started to load into his mind...</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-books-that-have-marked-me-most/images/kungfu-matrix.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-books-that-have-marked-me-most/images/kungfu-matrix.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-books-that-have-marked-me-most/images/kungfu-matrix-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-books-that-have-marked-me-most/images/kungfu-matrix-mobile.jpg" />
          <img class="image" src="/blog/the-books-that-have-marked-me-most/images/kungfu-matrix.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<p>During my life, I have been reading different kinds of books. When I was little, I used to read novels and science fiction books. Then I became interested in psychology, self-help books, philosophy and religion. Then I got hooked on travel and art books. Nowadays, the books I read most are related to my work. Programming, technology, science and something related to entrepreneurship, business and Japanese culture.</p>
<p>The truth is that it&#39;s complicated to make time (especially if you have children) to read books of all kinds. So, I can&#39;t blame anyone for not doing it! I understand it perfectly.</p>
<p>Last Friday, my flight from Alicante to London was delayed, so I came up with the idea of buying a book to make time until it was time to board. I found a novel by Haruki Murakami. It&#39;s called &#39;<strong>Kafka on the Shore</strong>&#39; and it&#39;s the story of a young boy who leaves home at the age of 15. It got me hooked! I&#39;ve started to remember the pleasure it feels when you find a book that you like a lot and that you can&#39;t stop reading! So, I&#39;ve decided to do a bit of retrospection and review some of the books that I&#39;ve read during my life and have marked me in some way.</p>
<p>Below, I&#39;ve put together a short list of books that have been special to me for some reason. I might even go so far as to say that some of these books have changed my life! Don&#39;t expect anything special. The mega-intellectual stuff (philosophy and religion) often makes me sleepy, so I have a lot of books left to finish.</p>
<iframe src="https://rcm-eu.amazon-adsystem.com/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=gazpachu06-21&o=30&p=8&l=as1&m=amazon&f=ifr&ref=tf_til&asins=B00CSJYYO4" style="float:right;width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>

<p><strong>The Alchemist</strong> (Paolo Coelho) and <strong>The Monk Who Sold His Ferrari</strong> (Robin Sharma): these two books I read in the summer of 2007 were the breeding ground for the <a href="/samurai-route">samurai route</a>. They were a great inspiration to me and helped me visualize how I should prepare for that great journey. The alchemist also inspired me to go on a backpacking trip to Morocco, where a multitude of adventures took place.</p>
<p><strong>On the razor&#39;s edge</strong> (William Somerset Maugham): I read this book on my subway trips when I lived alone in Paris. In a way, it amplified that sense of adventure I was feeling living in a different country for the first time.</p>
<p><strong>On the Road</strong> (Jack Kerouac): this book I read during my trip through southern Spain and then Morocco. Reading travel books while traveling is very exciting.</p>
<p><strong>Zen, its history and teachings</strong> (Osho): I found this book at my in-laws&#39; house in Manila, Philippines. It was my last day there before going back to London, so I asked my father-in-law to let me take it with me. I enjoyed reading about Zen and discovering how in the end it all comes down to laughing! Are you puzzled? Well, read it then.</p>
<p><strong>A geek in Japan</strong> (Héctor García): I have been following <a href="http://kirainet.com">Kirai</a>&#39;s blog since its beginning, back in 2005. Since then, I was already enthusiastic about the stories he published about his experiences in Japan. Therefore, it is not surprising that I enjoyed his first book as much, if not more than his blog posts. His next book, <a href="http://www.kirainet.com/ikigai-los-secretos-de-japon-para-una-vida-larga-y-feliz/">Ikigai</a> was also very good!</p>
<p><strong>The dream</strong> (Gurbaksh Chahal): this was the first book I read related to entrepreneurs. I was fascinated by the story of Gurbaksh and how his determination and ambition had led him to become a millionaire at a very young age.</p>
<p><strong>Your Wrong Zones</strong> (Wayne Dyer) and <strong>The Inner Compass</strong> (Alex Rovira): these two books are from the time when I discovered self-help books. I was a bit freaked out by the subject and I was reading others related to emotional intelligence, positivism, etc. In general, they were very useful for me to put some things into practice in my relationships with others. Whether you want to or not, when you leave home for the first time and face the world, there are things you have to learn to get along better in society, and these books are certainly a great help in those moments.</p>
<iframe src="https://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&o=30&p=8&l=as1&asins=1517513049&ref=tf_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="float:right;width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>

<p><strong>Siddharta</strong> (Herman Hess): calling me Joan Siddharta, it would have been a fat sin not to have read this book! In any case, it is a very nice story that I recommend everyone to read. Besides, it has some teachings that I would like everyone to put more into practice. Like, for example, getting rid of material possessions or treating nature and animals with love and respect. Who knows..., maybe some of you will get to experience nirvana? :)</p>
<p><strong>Congress of Futurology</strong> (Stanislaw Lem): this was the first sci-fi book I ever read. I don&#39;t remember the age, but it would be around 12 or 14 years old. I probably didn&#39;t get as much out of it as I could have, but I remember being pretty freaked out.</p>
<p>I&#39;m sure some others were special, but as I have most of my books in Alicante, I can&#39;t remember. What I am going to do is to update this blog entry as I remember other books.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/books-that-have-had-the-greatest-impact-on-me/images/bookshelf.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Open Source LMS with React and Node.js]]></title>
            <link>https://www.joanmira.com/blog/open-source-lms-with-react-and-node-js</link>
            <guid>https://www.joanmira.com/blog/open-source-lms-with-react-and-node-js</guid>
            <pubDate>Sun, 29 May 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[A new light in the world of open-source learning management systems with my point of view]]></description>
            <content:encoded><![CDATA[<p><strong>UPDATE 08/2016</strong>: Please refer to <a href="https://joanmira.com/hypatia">this page</a> for the latest news regarding the project. Thanks!</p>
<p>If everything goes as expected, next semester I will start my final project for my university degree. I decided to take advantage of that &quot;obligation&quot; to make something useful for the community and at the same time improve my React and Node.js skills. That&#39;s how I arrived at the idea of building an <strong>Open Source Learning Management System</strong>.</p>
<p>Another reason why I chose to build an LMS is that I keep seeing how things could be done better on my university&#39;s virtual campus. I particularly <strong>have a lot of things to say regarding the way students interact with each other and with the teacher</strong>. The current system does not provide agile communication. It feels slow, with popup windows, cluttered with signatures and other non-relevant data. I want to build a platform that takes the best out of other successful products (that I use in my work), like <a href="https://slack.com/">Slack</a> or <a href="https://trello.com/">Trello</a> and adapts them for educational environments.</p>
<p>In the last few days, I&#39;ve been searching the web and the <a href="https://github.com/search?l=JavaScript&amp;o=desc&amp;q=LMS&amp;s=stars&amp;type=Repositories&amp;utf8=%E2%9C%93">GitHub repositories for JS LMS projects</a>, trying to see if there&#39;s anything like that already going on, but <strong>I haven&#39;t found any</strong> with a strong presence (which is good news). I&#39;m not sure if I would start the project if somebody else already did. Maybe I would anyway!</p>
<p>Of course, there are other LMS with APIs and modern stacks, like <a href="https://www.canvaslms.com/try-canvas">Canvas LMS</a> or <a href="http://www.blackboard.com/learning-management-system/blackboard-learn.aspx">Blackboard</a> (41% of market share), <a href="http://www.d2l.com/">D2L</a>, <a href="https://www.kannu.com/">Kaanu</a>, but they are not using the same stack I want to use and they are not targeting developers. At the same time, I feel that having more open source options out there would be better for everyone.</p>
<p>I know it sounds like a very strong commitment for just one person and a humongous side-project (as I&#39;m still working full-time), but this is going to be like a playground for me, where I can learn about the tech I like and at the same time produce something useful.</p>
<p>Here are some of the requirements I already thought about:</p>
<ul>
<li><p>The final goal is to offer something to the community that feels like <strong>the WordPress</strong> of the LMS**. Something flexible enough to suit the majority of needs by being very open and easy to extend / scale</p>
</li>
<li><p>So far, I want to use a similar <strong>tech stack</strong> to the one used in the project <a href="https://developer.wordpress.com/calypso/">WordPress Calypso</a>](<a href="https://developer.wordpress.com/calypso/">https://developer.wordpress.com/calypso/</a>). The increasingly popular <a href="https://facebook.github.io/react/">React</a> and <a href="https://facebook.github.io/react-native/">React Native</a>,  <a href="https://facebook.github.io/flux/">Flux</a>, <a href="https://babeljs.io/">Babel.js</a> for ES6, <a href="https://webpack.github.io/">Webpack</a> as the bundler, <a href="https://nodejs.org/en/">Node.js</a> as the backend platform and perhaps <a href="https://loopback.io/">Loopback</a> for building the API</p>
</li>
<li><p>The UX and <strong>responsive plain design</strong> have to be spot-on. This is a very important requirement, as I don&#39;t want to create something that feels like <a href="https://moodle.org/">Moodle</a> (23% of market share), which has a very old-school UI</p>
</li>
<li><p>The homepage will display a list of available courses, the same way <a href="https://www.udemy.com/">Udemy</a> does it</p>
</li>
<li><p>It needs to be <strong>real-time</strong>, with agile communication like <a href="https://slack.com/">Slack</a>. No more forums, emails or other slow and cluttered systems to talk to each other</p>
</li>
<li><p>I want to include <strong>quizzes</strong>, something similar to what I did with <a href="http://quizwars.herokuapp.com/">Quizwars</a> and probably get some inspiration from <a href="https://www.quizup.com/">QuizUp</a></p>
</li>
<li><p>It needs to <strong>integrate easily</strong> with <a href="https://www.google.com/docs/about/">Google Docs</a>, <a href="https://trello.com/">Trello</a>, <a href="https://www.dropbox.com">Dropbox</a> and other external tools. I want to use the Internet as a CMS!</p>
</li>
<li><p>It needs to have an <strong>open REST API</strong>, so users could create their front-ends</p>
</li>
<li><p>It has to be <strong>social</strong> and implement <strong>learning analytics</strong></p>
</li>
<li><p>It needs to have a <strong>catchy name</strong> with a free .com and .org domain (this is going to be hard)</p>
</li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/open-source-lms-with-react-and-node-js/images/online-learning.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The background of interactive media]]></title>
            <link>https://www.joanmira.com/blog/the-background-of-interactive-media</link>
            <guid>https://www.joanmira.com/blog/the-background-of-interactive-media</guid>
            <pubDate>Sat, 05 Mar 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[An op-ed on how new technologies affect people's lives]]></description>
            <content:encoded><![CDATA[<p>The following article is a reflection on the importance and significance of everyday life, globalization and collective intelligence for the birth of mass media and the consolidation of the information society.</p>
<p>In addition, this article is part of the <a href="http://cv.uoc.edu/tren/trenacc/web/GAT_EXP.PLANDOCENTE?any_academico=20152&amp;cod_asignatura=76.523&amp;idioma=CAS&amp;pagina=PD_PREV_PORTAL">Interactive Media</a> subject of the <a href="http://estudios.uoc.edu/es/grados/multimedia/presentacion">UOC Multimedia Degree</a>.</p>
<h3 id="everyday-life">Everyday life</h3>
<p>Recently, my father posted a note on Facebook, in which he said the following:</p>
<blockquote>
<p>I think the technological obsession is turning into a nightmare. Does hyper technology free us? Maybe from ourselves? Will it be a luxury to have a SELF in the world we are or they are building? Does hyper technology create jobs or rather destroy them at an ever-increasing rate? Anyway, I don&#39;t like the world that is coming. I think it is rather terrifying, and dehumanizing..., but in a light way. So that we don&#39;t see the face of the monster. But you can already see something and <a href="http://www.eldiario.es/cienciacritica/Evolucion-tecnologia-sueno-pesadilla_6_233136711.html">here we have the smiling android</a>...</p>
</blockquote>
<p>This is a critical opinion against technology from a 65-year-old person. He has a degree in philosophy, is a professor of history and has been a user of new technologies for as long as he can remember. In any case, it fits quite well within the profile of a person retired from his work activity and who in theory has free time to learn how to use new technologies and to participate in interactive media.
His opinion was not new to me, as we had discussed the subject on other occasions. My initial reaction was to defend the benefits of technology for humanity. I replied:</p>
<blockquote>
<p>Because of technology, a lot of people have access to information, a lot of diseases are being cured, the universe is being explored and we are able to have this conversation. How technology can be a bad thing? Just because kids use their phones in the table while having lunch with their parents?</p>
</blockquote>
<p>The conversation continued with several exchanges of opinions until at the end, he revealed the reason for his frustration:</p>
<blockquote>
<p>Between 1987 and 1992 I was between 35 and 40 years old and belonged to the generation of &quot;los reyes del mambo&quot; or &quot;los putos amos&quot; (as they say now). With cassettes, VHS and Fax (the latest technological marvel) we felt fucking great. The 90&#39;s arrived and with them came the PC and the Internet and, from being the fucking masters, we became &quot;recyclable material&quot;. It is a story that always repeats itself. That&#39;s why no one of my generation is crazy about the technologies that dethroned us, nor do we bow down to them. We use them as much as we can, knowing that it will be increasingly difficult for us to keep up to date and even to participate. In all this I am also exaggerating, but it is a way to draw attention to myself and to vent some frustration.</p>
</blockquote>
<p>To a certain extent, he is right. New technologies have redefined many aspects of our lives and continue to do so at an exponential rate. In fact, for professionals working in something related to the Internet or new technologies, there is not a year that goes by that we don&#39;t have to learn a new paradigm, framework, system, platform, library, software or tool. Learning is continuous and we constantly have to recycle our knowledge of the environment to be able to continue being useful in our profession.</p>
<p>Daily life has changed a lot compared to the 60s and, normally, people who have not grown up in this maelstrom of rapid technological advances are overwhelmed and frustrated. However educated and intellectual they may be, the digital world uses codes, metaphors, systems and virtual environments that require learning. It is necessary to invest time and effort, otherwise, you are doomed to technological ostracism or symbolic and unfruitful participation.</p>
<p>On the other hand, the <a href="https://en.wikipedia.org/wiki/Millennials">Millenials</a> and a large part of <a href="https://en.wikipedia.org/wiki/Generation_X">generation X</a> have adapted to the new times without major complications. After all, we have grown up playing the little machines, witnessing the birth of the Internet and being the pioneers in the consumption and production of everything digital and virtual. Simple acts such as buying a videogame magazine at the newsstand were replaced by a subscription to an online magazine. <a href="https://en.wikipedia.org/wiki/Napster">Napster</a> marked a before and after in music sharing. Recording the neighbor&#39;s cassette tape was immediately relegated to the past.</p>
<p>There are countless examples of our daily lives that we have been adapting one by one to the information society until we reach the present, where practically all actions that can be incorporated into the digital world have already done so or will do so soon (read <a href="https://en.wikipedia.org/wiki/Financial_technology">fintech</a>). This process of reconversion of a commercial or industrial analog activity is known as disruption. We have already seen it recently in the case of <a href="https://www.airbnb.com/">AirBnB</a> or <a href="https://www.uber.com/">Uber</a>, which continue to have tensions with professionals who still make a living with the traditional model.</p>
<h3 id="globalization">Globalization</h3>
<p>Mass media and the information society also contributed to accelerating the further integration of the world&#39;s nations, and the exchange of ideas, products and cultures. This process is known as globalization.
The Internet has enabled people in isolated countries to have access to the world&#39;s largest source of information and to learn and observe what is happening in other parts of the world. The means of transportation have also helped people to travel and confirm everything we know through the Internet. Therefore, it is a system that feeds back on itself. Users search and share information on the networks and then check that this information is useful in real life. For example, the case of <a href="https://en.wikipedia.org/wiki/TripAdvisor">TripAdvisor</a>, an application that gathers thousands of user opinions on hotels, restaurants and places, so that travelers can make informed decisions for their benefit during their trips.
Today, fads are no longer isolated phenomena. News is no longer just local. Changes in economies affect every country. Everything is global. Everything is instantaneous. All data flows and affects us to a greater or lesser extent. The people who inhabit the modern, connected world are no longer isolated and dependent on each other.</p>
<p>The enormous amount of data we are generating is leading to the emergence of new scientific disciplines, such as <a href="https://en.wikipedia.org/wiki/Big_data">Big Data</a>, whose aim is to analyze massive amounts of data in search of patterns to draw conclusions that can later provide benefits and insights.</p>
<p>Globalization means that people are consuming more and more information. We no longer just consume the local newspaper and chat with neighbors or co-workers. Today, people move around, speak several languages and communicate with colleagues and acquaintances in various time zones around the globe. Our circle of action has expanded significantly and therefore, we increasingly need better means of communication and more entertaining, productive and effective ways of interacting.</p>
<h3 id="collective-intelligence">Collective intelligence</h3>
<p>The mass media has also been fed by another very important movement. The collective intelligence. This movement is more supported by young people since it requires a high level of assimilation about the functioning of the Internet and social networks. It is also the most popular means of expression among people in a position to fight for drastic social and political changes.
Collective intelligence emerges from the collaboration and collective efforts of many individuals to make joint and consensual decisions. It is a phenomenon that can be seen at its best in <a href="https://en.wikipedia.org/wiki/Crowdfunding">crowdfunding</a> activities, <a href="https://en.wikipedia.org/wiki/Wikipedia">Wikepedia</a> (a free encyclopedia maintained by Internet users), online signature petitions, social networks, online voting systems, online forums and communities such as <a href="https://en.wikipedia.org/wiki/Stack_Overflow">StackOverflow</a>, etc.</p>
<p>In recent years, we have seen how people have organized themselves to create movements as important as the <a href="https://en.wikipedia.org/wiki/Arab_Spring">Arab Spring</a> or <a href="https://en.wikipedia.org/wiki/15-M_Movement">15M</a>. These movements also have a collective intelligence base, as social networks played a major role in their organization and dissemination. These events are unique and novel in the history of mankind, as without the mass media, they could not have reached this level of repercussion. Also, the fact that dictators and repressors censored and cut off the use of the Internet during the Arab Spring, indicates the level of power and influence that this medium has come to have to destabilize an entire country and overthrow governments.</p>
<p>The previous point leads me to talk about another highly topical issue: the US presidential elections. If we take into account that the Internet has become a vitally important medium, it is normal that governments and large corporations want to control it. For this reason, nowadays it is very important to find out about the interests of the different political parties: Who is subsidizing their election campaigns? What are their objectives regarding net neutrality? What is their opinion of organizations such as Wikileaks or people like Edward Snowden...? All these aspects are discussed on social networks like Facebook or Twitter and end up shaping the collective conscience and people&#39;s opinions through collective intelligence. Between all of them, objective and transparent data is obtained. It is a way of unveiling the truth. To uncover the liars and manipulators. It is the new policy of citizen participation. Created from collective intelligence and the exchange of data on social networks.</p>
<h3 id="conclusion">Conclusion</h3>
<p>All the phenomena we have talked about feed back on each other and their causes/effects are rich in detail. Another aspect that has led to the success of mass media and the information society is its bidirectional nature. We are no longer talking about TV, radio or the press. Unidirectional media. The Internet allows us to become content producers. Not just consumers. All users have a voice and spaces to share information. The manipulation of society is no longer so easy. Now it is easier to obtain a more objective perspective by gathering the opinions of hundreds of publications (including blogs). We can say that the Internet has democratized information and made it livelier and faster.</p>
<p>Surely, the neutrality of the net and the bidirectionality of communications are the most important factors for its success, since they are the essence, the principles that allow other phenomena such as globalization and collective intelligence to develop. Therefore, our objective as citizens, defenders of free information, democracy and social justice, is to strive to ensure that governments do not legislate to favor the interests of a few and that large corporations do not try to buy governments to favor their interests.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-background-of-interactive-media/images/medios-interactivos-1.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Build a social website aggregator using Meteor]]></title>
            <link>https://www.joanmira.com/blog/build-a-social-website-aggregator-using-meteor</link>
            <guid>https://www.joanmira.com/blog/build-a-social-website-aggregator-using-meteor</guid>
            <pubDate>Wed, 10 Feb 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[My experience working with this popular full-stack framework]]></description>
            <content:encoded><![CDATA[<p><a class="btn github" role="button" href="https://github.com/gazpachu/siteace" target="_blank">Source code</a></p>
<p>This tutorial is the result of my final assignment for the <a href="https://www.coursera.org/learn/meteor-development/">Introduction to Meteor.js Development course</a> by Dr. Matthew Yee-King (<a href="http://www.gold.ac.uk/">University of London &amp; Goldsmiths</a>) at Coursera. This course is part of a <a href="https://www.coursera.org/specializations/website-development">Responsive Website Development and Design</a> specialization that covers the basics of modern full-stack web development, from UX design to front-end coding, to custom databases.</p>
<p>In that course, I learned how to create a complete, multi-user website using the Meteor.js framework and MongoDB. It&#39;s divided into four weeks and has a couple of assignments and several quizzes. All and all, it was a very good introduction to the framework and I hope this tutorial will show everything I learned.</p>
<h3 id="requirements">Requirements</h3>
<p>The purpose of the application is to allow users to <strong>share</strong>, <strong>discuss</strong> and <strong>rate</strong> pages they find on the internet. The app also needs to have the following features:</p>
<ul>
<li>Use <a href="http://getbootstrap.com/">Bootstrap</a></li>
<li>Users can register and login</li>
<li>Users can post new websites if they are logged in. Websites posted by users should have a URL and a description</li>
<li>Users can up and down vote web pages by clicking a plus or a minus button.</li>
<li>Websites should be listed with the most upvoted site first</li>
<li>The listing page shows when the website was added and how many up and down votes it has</li>
<li>Users can move to a detail page for a website (using routing)</li>
<li>On the detail page, users can post comments about a webpage, and they are displayed below the description of the webpage</li>
<li>Use the HTTP package for Meteor to pull in information about the posted web links automatically, so the user does not need to enter anything other than the URL</li>
<li>Implement a search function that allows the user to search within the listed sites for keywords</li>
<li>Recommend websites to users based on things they have upvoted and commented on. E.g. if I upvote a site entitled ‘Tofu recipes’, it would recommend other sites with ‘tofu’ and ‘recipe’ in their titles or descriptions</li>
<li>Deploy the application using the Meteor deploy command</li>
</ul>
<h3 id="part-1-installing-meteor-and-creating-the-app">Part 1. Installing Meteor and creating the app</h3>
<p>Go to <a href="https://www.meteor.com/">meteor.com</a> and follow <a href="https://www.meteor.com/install">the instructions</a> to install Meteor in your OS.</p>
<p>To create the app, open your terminal, go to the folder where you want to save the app and type:</p>
<p><code>meteor create siteace</code></p>
<p>This will create a new folder called <code>siteace</code> (the name of the app we are building) with all of the files that a Meteor app needs:</p>
<ul>
<li><strong>siteace.js</strong>: a JavaScript file loaded on both client and server</li>
<li><strong>siteace.html</strong>: an HTML file that defines view templates</li>
<li><strong>siteace.css</strong>: a CSS file to define your app&#39;s styles</li>
<li><strong>.meteor</strong>: internal Meteor files (hidden folder)</li>
</ul>
<p>To run the newly created app:</p>
<p><code>cd siteace</code></p>
<p><code>meteor</code></p>
<p>Open your web browser and go to <a href="http://localhost:3000">http://localhost:3000</a> to see the app running. If that&#39;s working, then you can stop it by pressing Ctrl+C.</p>
<h3 id="part-2-organizing-the-folder-structure">Part 2. Organizing the folder structure</h3>
<p>Meteor is a client and server framework, which means we have code for the front-end and code for the back-end. Both use Javascript. The back-end code console logs are rendered in the operating system terminal/console and the front-end console logs are rendered in the browser&#39;s console.</p>
<p>One way of deciding which code is going to run on the front-end or the back-end is to use the following conditional statements:</p>
<pre><code class="language-javascript">if (Meteor.isClient) {
}
if (Meteor.isServer) {
}
</code></pre>
<p>That is fine for very small apps, but there&#39;s a better way of dividing the code using folders:</p>
<ul>
<li><strong>/server</strong>: put all the Javascript files with code that need to be run on the server here</li>
<li><strong>/client</strong>: put all the Javascript files with code that need to be run on the client here</li>
<li><strong>/lib</strong>: all the Javascript files that have shared code and need to be run before anything else</li>
<li><strong>/public</strong>: all the public assets, like images, sounds, JSON, etc</li>
</ul>
<p>So, let&#39;s go ahead and create those folders in our app.</p>
<p>Now rename siteace.js to main.js, siteace.css to style.css, siteace.html to index.html and place them inside the client folder.</p>
<p>Then we are going to create a file called <code>collections.js</code> and place it in the lib folder. That file will hold the definition of the Mongo collections for our DB.</p>
<p>Finally, create a file called <code>startup.js</code> and place it in the server folder. We will use this file to initialize the DB with some dummy data when the app starts.</p>
<p>Once we run meteor again in the console, it will take care of the minification of the files</p>
<h3 id="part-3-routing-and-defining-the-markup-and-templates">Part 3. Routing and defining the markup and templates</h3>
<p>Meteor uses <a href="https://www.meteor.com/blaze">Blaze</a> and <a href="https://github.com/meteor/meteor/blob/devel/packages/spacebars/README.md">Spacebars</a> (a modified version of Handlebars) to produce reactive Meteor templates when compiled. Wait a minute... <strong>reactive</strong>? Yes, Meteor does update the interface automatically whenever there&#39;s a change in the data bound to that UI. At this point you might be thinking: is that like <a href="https://facebook.github.io/react/">Facebook&#39;s React</a>? In a way yes. Should I use React instead? Probably yes, but that&#39;s a topic you might want to read more about <a href="https://www.discovermeteor.com/blog/blaze-react-meteor/">here</a>.</p>
<p>For the sake of simplicity, we are going to stick with Meteor&#39;s default front-end tools: Blaze and Spacebars.</p>
<p>First, let&#39;s start by installing the router. Type the following in the terminal:</p>
<p><code>meteor add iron:router</code></p>
<p>Now we are going to define the application layout (the main placeholders) and the nav bar template. We use &#39;yield&#39; to define the placeholder where later we will render the chosen templates in the routes. Open index.html and add the following:</p>
<pre><code class="language-html">&lt;head&gt;
  &lt;title&gt;Site Ace by Joan Mira&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;/body&gt;

&lt;template name=&quot;ApplicationLayout&quot;&gt;
    {{&gt; yield &quot;navbar&quot;}}
    &lt;div class=&quot;container&quot;&gt;
        {{&gt; yield &quot;form&quot;}}
        {{&gt; yield &quot;main&quot;}}
    &lt;/div&gt;
&lt;/template&gt;

&lt;!-- template that displays the header with the nav bar --&gt;
&lt;template name=&quot;navbar&quot;&gt;
    &lt;nav class=&quot;navbar navbar-default&quot;&gt;
      &lt;div class=&quot;container-fluid&quot;&gt;
        &lt;div class=&quot;navbar-header&quot;&gt;
            &lt;a class=&quot;navbar-brand&quot; href=&quot;/&quot;&gt;Site Ace, a social website aggregator by Joan Mira&lt;/a&gt;
        &lt;/div&gt;
          {{&gt; loginButtons align=&quot;right&quot;}}
      &lt;/div&gt;
    &lt;/nav&gt;
&lt;/template&gt;
</code></pre>
<p>Now we are also adding three more templates, website_form, website_list and website_item. The first one will render a form to allow the user to submit new URLs to the app. The second one will render a list of websites already in the DB and the third one is a partial to render an individual list item in the list of websites:</p>
<pre><code class="language-html">&lt;template name=&quot;website_form&quot;&gt;
    &lt;a class=&quot;btn btn-default toggle-website-form js-toggle-website-form&quot; href=&quot;#&quot;&gt;
          &lt;span class=&quot;glyphicon glyphicon-plus&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;
    &lt;/a&gt;
    &lt;div id=&quot;website_form&quot; class=&quot;hidden_div&quot;&gt;
        &lt;form class=&quot;js-save-website-form&quot;&gt;
          &lt;div class=&quot;form-group&quot;&gt;
            &lt;label for=&quot;url&quot;&gt;Site address&lt;/label&gt;
            &lt;input type=&quot;text&quot; class=&quot;form-control&quot; id=&quot;url&quot; placeholder=&quot;http://www.mysite.com&quot;&gt;
          &lt;/div&gt;
          &lt;button type=&quot;submit&quot; class=&quot;btn btn-default&quot;&gt;Submit&lt;/button&gt;
        &lt;/form&gt;
    &lt;/div&gt;
&lt;/template&gt;

&lt;!-- template that displays several website items --&gt;
&lt;template name=&quot;website_list&quot;&gt;
    &lt;ol&gt;
    {{#each websites}}
    {{&gt;website_item}}
    {{/each}}
    &lt;/ol&gt;
&lt;/template&gt;

&lt;!-- template that displays individual website entries --&gt;
&lt;template name=&quot;website_item&quot;&gt;
&lt;li&gt;
    &lt;a href=&quot;{{_id}}&quot;&gt;{{title}}&lt;/a&gt;
    &lt;p&gt;
        {{description}}
    &lt;/p&gt;
    &lt;a href=&quot;#&quot; class=&quot;btn btn-default js-upvote&quot;&gt;
        &lt;span class=&quot;glyphicon glyphicon-arrow-up&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;
    &lt;/a&gt;
    &lt;a href=&quot;#&quot; class=&quot;btn btn-default js-downvote&quot;&gt;
        &lt;span class=&quot;glyphicon glyphicon-arrow-down&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;
    &lt;/a&gt;
    &lt;!-- you will be putting your up and down vote buttons in here! --&gt;
&lt;/li&gt;
&lt;/template&gt;
</code></pre>
<p>Notice that instead of URL, we used _id to compose the URL of the website link. That will be useful later when we are creating the detail page...</p>
<p>Now we are going to define the Router configuration and the homepage/default route. Open main.js and add the following at the top:</p>
<pre><code class="language-javascript">Router.configure({
    layoutTemplate: &#39;ApplicationLayout&#39;
});

Router.route(&#39;/&#39;, function () {
    this.render(&#39;navbar&#39;, {
        to: &#39;navbar&#39; // The name of the main placeholder in applicationLayout
    });
    this.render(&#39;website_form&#39;, {
        to: &#39;form&#39;
    });
    this.render(&#39;website_list&#39;, {
        to: &#39;main&#39;
    });
});
</code></pre>
<h3 id="part-4-define-the-collection-and-the-initial-data">Part 4. Define the collection and the initial data</h3>
<p>Open collections.js and create a new one by typing:</p>
<p><code>Websites = new Mongo.Collection(&quot;websites&quot;);</code></p>
<p>Now open startup.js and set some dummy data:</p>
<pre><code class="language-javascript">// start up function that creates entries in the Websites databases.
Meteor.startup(function () {
    // code to run on server at startup
    if (!Websites.findOne()){
        console.log(&quot;No websites yet. Creating starter data.&quot;);
          Websites.insert({
            title:&quot;Goldsmiths Computing Department&quot;,
            url:&quot;http://www.gold.ac.uk/computing/&quot;,
            description:&quot;This is where this course was developed.&quot;,
            createdOn:new Date()
        });
         Websites.insert({
            title:&quot;University of London&quot;,
            url:&quot;http://www.londoninternational.ac.uk/courses/undergraduate/goldsmiths/bsc-creative-computing-bsc-diploma-work-entry-route&quot;,
            description:&quot;University of London International Programme.&quot;,
            createdOn:new Date()
        });
         Websites.insert({
            title:&quot;Coursera&quot;,
            url:&quot;http://www.coursera.org&quot;,
            description:&quot;Universal access to the world’s best education.&quot;,
            createdOn:new Date()
        });
        Websites.insert({
            title:&quot;Google&quot;,
            url:&quot;http://www.google.com&quot;,
            description:&quot;Popular search engine.&quot;,
            createdOn:new Date()
        });
    }
});
</code></pre>
<h3 id="part-5-add-some-css">Part 5. Add some CSS</h3>
<p>The form to submit new URLs that we specified in the markup is hidden by default. It only opens when the user clicks on the &#39;+&#39; button. To make this form hidden, we just have to add the following CSS:</p>
<pre><code class="language-css">.hidden_div {
    display: none;
}

ol {
    padding: 0;
    list-style-type: none;
    counter-reset: section;
}

ol li,
.info {
    counter-increment: section;
    border: 1px solid #CCC;
    border-radius: 5px;
    margin-bottom: 20px;
    padding: 10px;
    background-color: #F8F8F8;
}

ol li::before {
    content: counter(section);
    margin-right: 5px;
    font-size: 80%;
    background-color: #3388BB;
    color: white;
    font-weight: bold;
    padding: 3px 8px;
    border-radius: 3px;
}

.info {
    background-color: #3388BB;
    color: white;
    text-align: center;
}
.info a {
    color: white;
    text-decoration: underline;
}

.website-meta {
    float: right;
    line-height: 35px;
}

.website-meta span {
    font-weight: bold;
}

.comment-meta {
    text-align: right;
    margin: 5px 0 0 0;
}

.toggle-website-form,
#website_form,
.info {
    margin-bottom: 10px;
}

#login-buttons {
    float: right;
    margin-top: 15px;
}

#url {
    float: left;
    width: 50%;
    margin-right: 5px;
}

#search {
    float: right;
    max-width: 150px;
}
</code></pre>
<h3 id="part-6-add-basic-events">Part 6. Add basic events</h3>
<p>To show/hide the form, we are going to need to capture the click event. Open the main.js file and add the following:</p>
<pre><code class="language-javascript">Template.website_form.events({
    &quot;click .js-toggle-website-form&quot;:function(event){
        $(&quot;#website_form&quot;).toggle(&#39;slow&#39;);
    }
)};
</code></pre>
<p>Here we are just targeting the click event of the .js-toggle-website-form element and toggling its visible state.</p>
<p>At this point, the app should look similar to this (probably a bit better ;-)</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/build-a-social-website-aggregator-using-meteor/images/meteor-tutorial-1.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/build-a-social-website-aggregator-using-meteor/images/meteor-tutorial-1.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/build-a-social-website-aggregator-using-meteor/images/meteor-tutorial-1-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/build-a-social-website-aggregator-using-meteor/images/meteor-tutorial-1-mobile.jpg" />
          <img class="image" src="/blog/build-a-social-website-aggregator-using-meteor/images/meteor-tutorial-1.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<h3 id="part-7-add-new-urls-to-the-db">Part 7. Add new URLs to the DB</h3>
<p>Before we start coding, we are going to need a Meteor package called HTTP to retrieve the title and description from the website we are adding. You can read more about the package <a href="https://themeteorchef.com/snippets/using-the-http-package/">here</a>. Type the following in the terminal to install it:</p>
<p><code>meteor add http</code></p>
<p>Due to CORS restrictions, we need to contact the website from the server. So open the startup.js file and create a new method (inside the startup method) to get the title and description from the URL:</p>
<pre><code class="language-javascript">Meteor.methods({
    getWebsiteData: function (url) {
        this.unblock();
        return Meteor.http.call(&quot;GET&quot;, url, {&quot;npmRequestOptions&quot; : {&quot;gzip&quot; : true}});
    }
});
</code></pre>
<p>The GZIP option is to decompress the data in case the server returns it compressed.</p>
<p>Now we have to call that method from the front-end when the user submits the form. Open main.js and in the same function we were working on in the previous part, add the following event to capture the form submit:</p>
<pre><code class="language-javascript">    &quot;submit .js-save-website-form&quot;:function(event){

        // here is an example of how to get the url out of the form:
        var url = event.target.url.value;
        console.log(&quot;The url they entered is: &quot;+url);

        //  put your website saving code in here!
        Meteor.call(&quot;getWebsiteData&quot;, url, function(error, results) {

            // Dump the markup into a dummy element for jQuery manipulation
            var el = $(&#39;&lt;div&gt;&lt;/div&gt;&#39;);
            el.html(results.content);

            // Get the meta data
            var title = $(&#39;title&#39;, el).text();
            var description = $(&#39;meta[name=&quot;description&quot;]&#39;, el).attr(&#39;content&#39;);

            // Add the new website in the Websites collection
            Websites.insert({
                title: title,
                url: url,
                description: description,
                createdOn:new Date()
            })
        });

        return false; // stop the form submit from reloading the page
    }
</code></pre>
<p>You can try to add a few URLs and then reload the page. The new ones should remain there. If you want to reset the DB, just type in the terminal meteor reset.</p>
<h3 id="part-8-user-authentication">Part 8. User authentication</h3>
<p>Two Meteor packages take care of user registration and authentication. To install them type this in the terminal:</p>
<p><code>meteor add accounts-ui accounts-password</code></p>
<p>And then add the following partial to the navbar (besides the Site Ace title):</p>
<p><code>{{&gt; loginButtons }}</code></p>
<p>By default, the only enabled fields for user registration are the email and password. If we also want to have a username field, we have to specify it in the package config. Open main.js and add the following at the top:</p>
<pre><code class="language-javascript">Accounts.ui.config({
    passwordSignupFields: &quot;USERNAME_AND_EMAIL&quot;
});
</code></pre>
<p>Also, from now on, if we need to check if the user is logged in or we want to access its data, we can do it like this:</p>
<pre><code class="language-javascript">if (Meteor.user()) {
    Meteor.user().username;
}
</code></pre>
<h3 id="part-9-allow-only-logged-in-users-to-post-new-websites">Part 9. Allow only logged-in users to post new websites</h3>
<p>We could do it by hiding the form for not logged-in users, but then this could be easily hacked by manipulating the DOM from the console. So we are going to use a form validation task instead. Open main.js and wrap everything inside the submit form event with the approach we specified in the previous part. Also, add an else condition and display an alert window with an error message if the user is not logged in:</p>
<pre><code class="language-javascript">&quot;submit .js-save-website-form&quot;:function(event){

    if (Meteor.user()) {
        (...)
    }
    else {
        alert(&#39;You need to be logged in to submit websites!&#39;);
    }

    return false;
}
</code></pre>
<h3 id="part-10-display-the-date-and-add-votes">Part 10. Display the date and add votes</h3>
<p>On the listing page, we are going to display the date the website was added. We need to install a new package called Moments.js, a popular library to work with dates in Javascript:</p>
<p><code>meteor add momentjs:moment</code></p>
<p>We also need to create a new template function to parse the date. In this case, we are going to make it global, so other templates can use it as well. Open main.js and add this:</p>
<pre><code class="language-javascript">// format the date
Template.registerHelper(&#39;formattedDate&#39;, function() {
     return moment(this.createdOn).format(&quot;MM/DD/YYYY&quot;);  // or whatever format you prefer
});
</code></pre>
<p>Then, in index.html add a placeholder for the date and the votes right after the voting buttons:</p>
<pre><code class="language-html">&lt;p class=&quot;website-meta&quot;&gt;{{formattedDate}} | &lt;span class=&quot;js-votes-up&quot;&gt;{{up}}&lt;/span&gt;↑, &lt;span class=&quot;js-votes-down&quot;&gt;{{down}}&lt;/span&gt;↓&lt;/p&gt;
</code></pre>
<p>We also have to initialize the up and down fields for each website entry in the DB. Open startup.js and refactor the initial items like this. Do it as well in the form submit event in main.js!:</p>
<pre><code class="language-javascript">Websites.insert({
    title:&quot;Coursera&quot;,
    url:&quot;http://www.coursera.org&quot;,
    description:&quot;Universal access to the world’s best education.&quot;,
    createdOn:new Date(),
    user: &quot;Anonymous&quot;, // Use Meteor.user()._id in main.js
    up: 0,
    down: 0
});
</code></pre>
<p>Finally, we have to save the votes in the DB. To do it, we have to use the &#39;update&#39; method of the Websites collection. In this case, we are going to define the events for the parent template &#39;ApplicationLayout&#39;. We do it like this to be able to use these events later in the detail page. Open main.js and add the following:</p>
<pre><code class="language-javascript">Template.ApplicationLayout.events({
    &quot;click .js-upvote&quot;:function(event){
        // example of how you can access the id for the website in the database
        // (this is the data context for the template)
        var website_id = this._id;
        console.log(&quot;Up voting website with id &quot;+website_id);

        // put the code in here to add a vote to a website!
        Websites.update({_id: website_id},
                        {$set: {up: this.up + 1}});

        return false;// prevent the button from reloading the page
    },
    &quot;click .js-downvote&quot;:function(event){

        // example of how you can access the id for the website in the database
        // (this is the data context for the template)
        var website_id = this._id;
        console.log(&quot;Down voting website with id &quot;+website_id);

        // put the code in here to remove a vote from a website!
        Websites.update({_id: website_id},
                        {$set: {down: this.down + 1}});

        return false;// prevent the button from reloading the page
    }
})
</code></pre>
<h3 id="part-11-sort-items-by-votes-up">Part 11. Sort items by votes up</h3>
<p>This is an easy one. We know Meteor templates are reactive, meaning the UI gets updated automatically every time something changes. We are going to take advantage of that by defining a sorting in the website list template in main.js:</p>
<pre><code class="language-javascript">Template.website_list.helpers({
    websites:function(){
        return Websites.find({}, {sort: {up:-1}});
    }
});
</code></pre>
<h3 id="part-12-implement-a-detail-page-using-routing">Part 12. Implement a detail page using routing</h3>
<p>Now we need to create a new route in main.js that will take the website id as a parameter in the URL path and query the DB to get the data of that id. We will also render a new template in the main placeholder:</p>
<pre><code class="language-javascript">Router.route(&#39;/:_id&#39;, function () {
    this.render(&#39;navbar&#39;, {
        to: &#39;navbar&#39;
    });
    this.render(&#39;website_detail&#39;, {
        to: &#39;main&#39;,
        data: function() {
            return Websites.findOne({_id: this.params._id});
        }
    });
});
</code></pre>
<p>Now let&#39;s create the new template in index.html:</p>
<pre><code class="language-html">&lt;!-- template that displays a website detail --&gt;
&lt;template name=&quot;website_detail&quot;&gt;

    &lt;h1&gt;&lt;a href=&quot;{{url}}&quot;&gt;{{title}}&lt;/a&gt;&lt;/h1&gt;
    &lt;p&gt;
        {{description}}
    &lt;/p&gt;
    &lt;a href=&quot;#&quot; class=&quot;btn btn-default js-upvote&quot;&gt;
        &lt;span class=&quot;glyphicon glyphicon-arrow-up&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;
    &lt;/a&gt;
    &lt;a href=&quot;#&quot; class=&quot;btn btn-default js-downvote&quot;&gt;
        &lt;span class=&quot;glyphicon glyphicon-arrow-down&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;
    &lt;/a&gt;
    &lt;p class=&quot;website-meta&quot;&gt;Votes: &lt;span class=&quot;js-votes-up&quot;&gt;{{up}}&lt;/span&gt;↑, &lt;span class=&quot;js-votes-down&quot;&gt;{{down}}&lt;/span&gt;↓&lt;/p&gt;

&lt;/template&gt;
</code></pre>
<h3 id="part-13-adding-comments-to-the-detail-page">Part 13. Adding comments to the detail page</h3>
<p>First, we are going to create a new Mongo collection in collections.js:</p>
<p><code>Comments = new Mongo.Collection(&quot;comments&quot;);</code></p>
<p>Then two new main placeholders in the ApplicationLayout template and three new templates (very similar to the ones we already have) in index.html:</p>
<pre><code class="language-html">{{&gt; yield &quot;comments&quot;}}
{{&gt; yield &quot;comment&quot;}}

(...)

&lt;!-- template that displays several comments --&gt;
&lt;template name=&quot;comments_list&quot;&gt;
    &lt;h3&gt;Comments&lt;/h3&gt;
    &lt;ol&gt;
        {{#each comments}}
        {{&gt;comment_item}}
        {{/each}}
    &lt;/ol&gt;
&lt;/template&gt;

&lt;!-- template that displays individual comment entries --&gt;
&lt;template name=&quot;comment_item&quot;&gt;
    &lt;li&gt;
        {{comment}}
        &lt;p class=&quot;comment-meta&quot;&gt;{{formattedDate}} by {{getUser user}}&lt;/p&gt;
    &lt;/li&gt;
&lt;/template&gt;

&lt;!-- template that displays the form to submit a new comment --&gt;
&lt;template name=&quot;comment_form&quot;&gt;
    &lt;div id=&quot;comment_form&quot;&gt;
        &lt;form class=&quot;js-save-comment-form&quot;&gt;
          &lt;div class=&quot;form-group&quot;&gt;
            &lt;input type=&quot;text&quot; class=&quot;form-control&quot; id=&quot;comment&quot; placeholder=&quot;Type your comment here...&quot;&gt;
          &lt;/div&gt;

          &lt;button type=&quot;submit&quot; class=&quot;btn btn-default&quot;&gt;Submit&lt;/button&gt;
        &lt;/form&gt;
    &lt;/div&gt;
&lt;/template&gt;
</code></pre>
<p>Now, before we continue. Notice that we are using a new helper called getUser. We need this to get the real username from a given user ID (that&#39;s what we have in the DB). So add this new helper into main.js:</p>
<pre><code class="language-javascript">// helper function that returns the username for a given user ID
Template.registerHelper(&#39;getUser&#39;, function(userId) {
     var user = Meteor.users.findOne({_id: userId});
    if (user) {
        return user.username;
    }
    else {
        return &quot;anonymous&quot;;
    }
});
</code></pre>
<p>Then, we are going to update the detail page route (in main.js) and render the new templates:</p>
<pre><code class="language-javascript">this.render(&#39;comments_list&#39;, {
    to: &#39;comments&#39;
});
this.render(&#39;comment_form&#39;, {
    to: &#39;comment&#39;
});
</code></pre>
<p>Now we have to insert the new comments into the comments collection whenever a logged-in user submits the comment form. The schema for this collection is going to store the ID of the website where the comment belongs, the comment itself, the date and the user who wrote it. Notice that to get hold of the website ID, we are going to use the Router params...</p>
<pre><code class="language-javascript">Template.comment_form.events({
    &quot;submit .js-save-comment-form&quot;:function(event){

        if (Meteor.user()) {

            // here is an example of how to get the comment out of the form:
            var comment = event.target.comment.value;
            console.log(&quot;The comment they entered is: &quot;+comment);

            Comments.insert({
                website: Router.current().params._id,
                comment: comment,
                createdOn: new Date(),
                user: Meteor.user().username
            });
        }
        else {
            alert(&#39;You need to be logged in to submit comments!&#39;);
        }

        return false; // stop the form submit from reloading the page

    }
});
</code></pre>
<p>Now that we have the comments stored in the DB, we need a template helper to render the list of comments. We will filter the query by finding only the comments that have a website ID equal to the one on the current page:</p>
<pre><code class="language-javascript">Template.comments_list.helpers({
    comments:function(){
        return Comments.find({website: Router.current().params._id});
    }
});
</code></pre>
<h3 id="part-14-secure-and-deploy">Part 14. Secure and deploy</h3>
<p>Finally, we are just going to remove the insecure package (otherwise our DB could be easily compromised):</p>
<p><code>meteor remove insecure</code></p>
<p>And now we have to allow access to the different DB operations in collections.js:</p>
<pre><code class="language-javascript">// set up security on collections
Websites.allow({
    insert: function(userId, doc) {

        if (Meteor.user()) {
            if (userId != doc.user) {
                return false;
            }
            else {
                return true;
            }
        }
        else {
            return false;
        }
    }
});

Comments.allow({
    insert: function(userId, doc) {

        if (Meteor.user()) {
            if (userId != doc.user) {
                return false;
            }
            else {
                return true;
            }
        }
        else {
            return false;
        }
    }
});
</code></pre>
<p>Now that we have some basic security in place, we are ready to deploy to the FREE Meteor servers:</p>
<p><code>meteor deploy siteace-joanmira.meteor.com</code></p>
<p>That&#39;s all! I hope you enjoyed the tutorial and please do let me know if you find any issues. Thanks.</p>
<p>In the following days, I might add the functionality remaining: search and recommended websites.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/build-a-social-website-aggregator-using-meteor/images/meteor-header.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Javascript: understanding the weird parts [Part 2]]]></title>
            <link>https://www.joanmira.com/blog/javascript-understanding-the-weird-parts-part-2</link>
            <guid>https://www.joanmira.com/blog/javascript-understanding-the-weird-parts-part-2</guid>
            <pubDate>Mon, 01 Feb 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[My learnings reviewing JavaScript concepts on the Udemy educational site]]></description>
            <content:encoded><![CDATA[<p>In the <a href="/javascript-understanding-the-weird-parts/">previous part of this article</a>, we learned about execution contexts, types and operators, functions, etc. In this part, we are going to learn more about object-oriented programming with Javascript.</p>
<h3 id="lecture-53-classical-vs-prototypal-inheritance">Lecture 53: Classical vs prototypal inheritance</h3>
<p><strong>Inheritance</strong>: one object gets access to the properties and methods of another object.</p>
<p>Classical inheritance: (most popular) is in C++, Java, etc. It&#39;s very verbose. We can end up with a massive tree of objects and relationships. Many keywords: friend, protected, private, interface,...</p>
<p>Prototypal inheritance: simple. Extensible. Easy to understand.</p>
<h3 id="lecture-54-understanding-the-prototype">Lecture 54: Understanding the prototype</h3>
<p>All objects have a &quot;special property&quot; called the proto {} property. That&#39;s the prototype of the object. It can also have its properties. When we request the property of an object, JS first looks into the object itself to find that property, if it cannot find it, then it looks for the property inside the prototype.</p>
<p>That prototype can also contain another prototype object and JS will always go down the chain. That&#39;s called the <strong>prototype chain</strong>.</p>
<p>If we have object2, it can also point at the same prototype of object1. Objects can share the same prototype.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/javascript-understanding-the-weird-parts-part-2/images/JS-prototype-chain.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/javascript-understanding-the-weird-parts-part-2/images/JS-prototype-chain.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/javascript-understanding-the-weird-parts-part-2/images/JS-prototype-chain-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/javascript-understanding-the-weird-parts-part-2/images/JS-prototype-chain-mobile.jpg" />
          <img class="image" src="/blog/javascript-understanding-the-weird-parts-part-2/images/JS-prototype-chain.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<p>Example:</p>
<pre><code class="language-javascript">var person = {
    firstname: &#39;Default&#39;,
    lastname: &#39;Default&#39;,
    getFullName: function() {
        return this.firstname + &#39; &#39; + this.lastname;
    }
}

var john = {
    firstname = &#39;John&#39;.
    lastname: &#39;Doe&#39;
}

// Don&#39;t do this EVER! for demo purposes only!!!
// This is a browser way to access the prototype but with very bad performance
john.__proto__ = person;
console.log(john.getFullName());
console.log(john.firstname); // It returns John&#39;s name, not Person&#39;s name because of the prototype chain priority.
</code></pre>
<h3 id="lecture-55-everything-is-an-object-or-a-primitive">Lecture 55: Everything is an object (or a primitive)</h3>
<pre><code class="language-javascript">var a = {};
var b = function() {};
c = [];

console.log(a.__proto__); // returns the base object and we can access toString, etc

console.log(b.__proto__); // returns function Empty() {} and we can access apply, call, bind,...

console.log(c.__proto__); // returns push, pop, indexOf, length, etc

console.log(c.__proto__.__proto__); // that returns the base object
</code></pre>
<p>Everything leads to the base object. That&#39;s the bottom of the prototype chain.</p>
<h3 id="lecture-56-reflection-and-extend">Lecture 56: Reflection and extend</h3>
<p>Reflection: an object can look at itself, listing and changing its properties and methods. We can use that to implement the extended pattern. Let&#39;s look at how reflection works:</p>
<pre><code class="language-javascript">var person = {
    firstname: &#39;Default&#39;,
    lastname: &#39;Default&#39;,
    getFullName: function() {
        return this.firstname + &#39; &#39; + this.lastname;
    }
}

var john = {
    firstname = &#39;John&#39;.
    lastname: &#39;Doe&#39;
}

// loop through every member in the john object
for (var prop in john) {
    console.log(prop + &#39;: &#39; + john[prop]);
}

// The previous code will also output getFullName and the function. To avoid that we do:

for (var prop in john) {
    // it will only list it if it&#39;s on john&#39;s object
    if (john.hasOwnProperty(prop)) {
        console.log(prop + &#39;: &#39; + john[prop]);
    }
}
</code></pre>
<p>Conceptual aside: look at the &quot;_extend&quot; method in the Underscore library. Analyze the &#39;createAssigner&#39; method to understand how reflection is used. It uses two loops to assign the properties and methods of the objects passed as parameters to the first object passed as a parameter.</p>
<p>Extend is used in many libraries and frameworks. We could pull that method from Underscore and use it in our own library/project.</p>
<p>In ES6, we have also &#39;extends&#39;, but that&#39;s used for different functionality.</p>
<h3 id="lecture-57-building-objects">Lecture 57: Building objects</h3>
<p>Function constructors, &#39;new&#39; and the history of Javascript.</p>
<p>It was called Javascript to attract Java developers. In the same way, Microsoft created VBScript to attract its developers.</p>
<p>So, Java developers were used to creating objects like this:</p>
<p><code>var john = new Person();</code></p>
<p>Although ES6 will introduce the class keyword, Javascript doesn&#39;t have classes.</p>
<p>So, Java developers thought Javascript was like Java and they recommended it.</p>
<pre><code class="language-javascript">function Person(firstname, lastname) {
    this.firstname = firstname;
    this.lastname = lastname;
}

var john = new Person(&#39;John&#39;, &#39;Doe;);
console.log(john);

var jane = new Person(&#39;Jane&#39;, &#39;Doe;);
console.log(jane);
</code></pre>
<p>&#39;new&#39; immediately creates an empty object. Then it calls the function. Then &#39;this&#39; will point to that empty object. So, the function becomes the constructor of that object.</p>
<h3 id="lecture-58-function-constructors-and-prototype">Lecture 58: Function constructors and &#39;.prototype&#39;</h3>
<p>Functions have special properties, aside from the name, code, etc, they also have a prototype property, which starts its life as an empty object and it&#39;s ONLY used by the new operator.</p>
<pre><code class="language-javascript">function Person(firstname, lastname) {
    this.firstname = firstname;
    this.lastname = lastname;
}

Person.prototype.getFullName = function() {
    return this.firstname + &#39; &#39; + this.lastname;
}

var john = new Person(&#39;John&#39;, &#39;Doe;);
console.log(john);

var jane = new Person(&#39;Jane&#39;, &#39;Doe;);
console.log(jane);&lt;/pre&gt;

Person.prototype.getFormalFullName = function() {
    return this.lastname + &#39;, &#39; + this.firstname;
}

console.log(john.getFormalFullName());
</code></pre>
<p>So, we can add features to all those objects that we create by using the prototype.</p>
<p>In good code, the methods of an object are set with the prototype. Why? Because if we add <code>getFullName</code> to every object, it means they are using a lot of memory. If we add it to the prototype, we only have it once. We just use one copy for all the instances of the object. We are saving memory space because there&#39;s only one prototype for all the objects.</p>
<h3 id="lecture-59-dangerous-aside-using-new-and-functions">Lecture 59: Dangerous aside, using &#39;new&#39; and functions</h3>
<p>If we forget to use &#39;new&#39;, the function constructor will return undefined. It&#39;s a good practice to use capital letters for constructors. In that way, if we see the new keyword is missing,  we will notice it&#39;s wrong.</p>
<p>In ES6, function constructors are likely going away.</p>
<h3 id="lecture-60-built-in-function-constructors">Lecture 60: Built-in function constructors</h3>
<p><code>var a = new Number(3);</code></p>
<p>That creates an object of the type Number with some special methods. We can use a.toFixed();</p>
<p><code>var a = new String(&#39;John&#39;);</code></p>
<p>Same thing and we can use a.indexOf(&#39;o&#39;);</p>
<p>We can also do &quot;John&quot;.length</p>
<p>They both store the value in a property called &#39;PrimitiveValue&#39;. So they are not primitives, they are objects with special methods.</p>
<p>In the same way, we can do the same for dates:</p>
<p><code>var a = new Date(&#39;10/12/2010&#39;);</code></p>
<p>We can also do things like:</p>
<pre><code class="language-javascript">String.prototype.isLengthGreaterThan = function(limit) {
   return this.legth &gt; limit;
}
console.log(&#39;John&#39;.isLengthGreaterThan(3));
</code></pre>
<p><code>String</code> is an object and we are adding a method to the prototype. We just enhanced the JS language just like that! We have to be careful not to overwrite an existing method.</p>
<pre><code class="language-javascript">Number.prototype.isPositive = function() {
    return this &gt; 0;
}

console.log(3.isPositive()); // Returns error
</code></pre>
<p>Javascript doesn&#39;t return a number into an object, so we have to do the following:</p>
<pre><code class="language-javascript">var a = new Number(3);
a.isPositive();
</code></pre>
<p>So, it&#39;s a good feature, but it gets a bit confusing because not everything works the same way.</p>
<h3 id="lecture-61-dangerous-aside-built-in-function-constructors">Lecture 61: Dangerous aside. Built-in function constructors</h3>
<pre><code class="language-javascript">var a = 3;
var b = new Number(3);

a == b // returns true because of coercion
a === b // returns false
</code></pre>
<p>So, as you can see, that&#39;s not a very recommended situation. It&#39;s better not to use new to create primitives.</p>
<p>In the same way, if we are going to work a lot with dates, it is recommended to use the library <a href="http://momentjs.com">Moment.js</a>.</p>
<h3 id="lecture-62-dangerous-aside-arrays-and-forin">Lecture 62: Dangerous aside. Arrays and for..in</h3>
<pre><code class="language-javascript">Array.prototype.myCustomFeature = &#39;cool!&#39;;

var arr = [&#39;John&#39;, &#39;Jane&#39;, &#39;Bob&#39;];
for (item in arr) {
    console.log(item + &#39;: &#39; + arr[item]);
}
// That will render also myCustomFeature
</code></pre>
<p>So, in the case of arrays, don&#39;t use <code>for..in</code>. Use the <code>for..i</code> classic loop.</p>
<h3 id="lecture-63-objectcreate-and-pure-prototypal-inheritance">Lecture 63: Object.create and pure prototypal inheritance</h3>
<p>This is a new feature for new browsers. If we need to support an older browser, we use a <strong>polyfill</strong>, which is code that adds a feature that the engine may lack.</p>
<pre><code class="language-javascript">var person = {
    firstname = &#39;Default&#39;,
    lastname = &#39;Default&#39;,
    greet = function() {
        return &#39;Hi&#39; + this.firstname;
    }
}

var john = Object.create(person);
console.log(john);
</code></pre>
<p>That creates an empty object with a prototype with all the methods indicated above. So, if we want to override those default values, we can do:</p>
<pre><code class="language-javascript">john.firstname = &#39;John&#39;;
john.lastname = &#39;Doe&#39;;
</code></pre>
<p>So, the big advantage of prototype vs classic inheritance, is that we can add new methods on the fly and mutate things easily, without complex layers and interactions.</p>
<h3 id="lecture-64-es6-and-classes">Lecture 64: ES6 and classes</h3>
<pre><code class="language-javascript">class Person {
    constructor(firstname, lastname) {
        this.firstname = firstname;
        this.lastname = lastname;
    }

    greet() {
        return &#39;Hi &#39; + firstname;
    }
}

var john = new Person(&#39;John&#39;, &#39;Doe&#39;);
</code></pre>
<p>That is an OBJECT.</p>
<p>To set the prototype, we do it like this:</p>
<pre><code class="language-javascript">class InformalPerson extends Person {
    constructor(firstname, lastname) {
        super(firstname, lastname);
    }

    greet() {
        return &#39;Yo &#39; + firstname;
    }
}
</code></pre>
<p>Syntactic sugar: a different way to type something that doesn&#39;t change how it works under the hood.</p>
<h3 id="lecture-65-odds-and-ends-initialization">Lecture 65: Odds and ends. Initialization</h3>
<p>Just talking about common syntax errors when creating big literal objects with arrays and functions. Nothing to highlight here.</p>
<h3 id="lecture-66-odds-and-ends-typeof-intanceof-and-figuring-out-what-something-is">Lecture 66: Odds and ends. Typeof, intanceof and figuring out what something is</h3>
<p>We can use typeof to figure out the type of primitive or object we are dealing with, but in the case of arrays, we have to use something like this:</p>
<pre><code class="language-javascript">var d = [];
console.log(Object.prototype.toString.call(d));&lt;/pre&gt;

That would output [Object Array]

In the case of objects:

&lt;pre&gt;function Person(name) {
    this.name = name;
}
var e = new Person(&#39;Jane&#39;);
</code></pre>
<p>With instanceof Person, we are looking for an object of the type Person down the prototype chain.</p>
<p>There&#39;s a very known bug. If you type typeof null, it returns an object.</p>
<p>And typeof functionName returns function.</p>
<h3 id="lecture-67-odds-and-ends-strict-mode">Lecture 67: Odds and ends. Strict mode</h3>
<p>This tells the JS engine to process the code in a stricter way. For example, in the following case, we mistyped the variable but without the strict mode, it will not throw an error.</p>
<pre><code class="language-javascript">var person;

persom = {};
console.log(persom);
</code></pre>
<p>If we put &quot;use strict&quot;; in the beginning, it will throw an error because we are forced to declare a variable in order to use it.</p>
<p>For more info, check <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode">the strict mode reference</a>.</p>
<h3 id="lecture-69-learning-from-others-good-code">Lecture 69: Learning from other&#39;s good code</h3>
<p>An open-source education. Github.com contains a great collection of source code where we can learn. So, it&#39;s a good practice to occasionally take a look at some of the methods of the libraries we use.</p>
<h3 id="lectures-70-72-deep-dive-into-famous-source-code-jquery">Lectures 70-72: Deep dive into famous source code. jQuery</h3>
<p>These lectures are quite dense in terms of code review, so I will skip commenting about them. You are more than welcome to download the unminified version of jQuery and dive into the code to try to understand how the library it&#39;s initialized (without the need of using &#39;new&#39;) and how all the methods are stored in the prototype of fn.</p>
<p>I just like to mention the <strong>method chaining</strong>, which is a very useful way of chaining calls to methods. If you use jQuery, then very probably you already know about this. Like when you add a class and remove another class in the same line:</p>
<pre><code class="language-javascript">$(&#39;.selector&#39;).addClass(&#39;a&#39;).removeClass(&#39;b&#39;);
</code></pre>
<p>To achieve that, we only have to &#39;return this;&#39; in the methods we are calling.</p>
<h3 id="lectures-73-lets-build-a-frameworklibrary-requirements">Lectures 73: Let&#39;s build a framework/library. Requirements</h3>
<ul>
<li>We are going to call it &#39;Greetr&#39;, an app to greet users</li>
<li>When given a first name, last name and optional languages, it generates formal and informal greetings</li>
<li>Support English and Spanish languages</li>
<li>Reusable library/framework</li>
<li>Easy to type &#39;G$()&#39; structure</li>
<li>Support jQuery</li>
</ul>
<h3 id="lectures-74-lets-build-a-frameworklibrary-structuring-safe-code">Lectures 74: Let&#39;s build a framework/library. Structuring safe code</h3>
<p>First, create a file called Greetr.js. First, we are going to create a new execution context with a self-invoking function.</p>
<pre><code class="language-javascript">(function(global, $) {

}(window, jQuery))
</code></pre>
<h3 id="lectures-75-lets-build-a-frameworklibrary-our-object-and-its-prototype">Lectures 75: Let&#39;s build a framework/library. Our object and its prototype</h3>
<p>Create a file called app.js. We are going to imitate jQuery structure. So we don&#39;t want to use &#39;new&#39;, we want to use G$() like in jQuery and get an object as a result:</p>
<pre><code class="language-javascript">var g = G$(&#39;John&#39;, &#39;Doe&#39;);
</code></pre>
<p>Then, in Greetr.js:</p>
<pre><code class="language-javascript">(function(global, $) {

    var Greetr = function(firstName, lastName, language) {
    return new Greetr.init(firstName, lastName, language);

    Greetr.prototype = {};

    Greetr.init = function(firstName, lastName, language) {
        var self = this;
        self.firstName = firstName || &#39;&#39;;
        self.lastName = lastName || &#39;&#39;;
        self.language = language || &#39;en&#39;;
    }

    Greetr.init.prototype = Greetr.prototype;

    global.Greetr = global.G$ = Greetr;
}

}(window, jQuery))
</code></pre>
<h3 id="lectures-76-lets-build-a-frameworklibrary-properties-and-chainable-methods">Lectures 76: Let&#39;s build a framework/library. Properties and chainable methods</h3>
<p>Now we are just going to create methods in the prototype and return this in some of them to make them chainable.</p>
<pre><code class="language-javascript">(function(global, $) {

    var Greetr = function(firstName, lastName, language) {
    return new Greetr.init(firstName, lastName, language);

    var supportedLangs = [&#39;en&#39;, &#39;es&#39;];

    var greetings = {
        en: &#39;Hello&#39;,
        es: &#39;Hola&#39;
    };

    var formalGreetings = {
        en: &#39;Greetings&#39;,
        es: &#39;Saludos&#39;
    };

    var logMessages = {
        en: &#39;Logged in&#39;,
        es: &#39;Inició sesión&#39;
    }

    Greetr.prototype = {

        fullName: function() {
            return this.firstName + &#39; &#39; + this.lastName;
        },

        validate: function() {
            if (supportedLangs.indexOf(this.language) === -1) {
                throw &quot;Invalid language&quot;;
            }
        },

        greeting: function() {
            return greetings[this.language] + &#39; &#39; + this.firstName + &#39;!&#39;;
        },

        formalGreeting: function() {
            return formalGreetings[this.language] + &#39;, &#39; + this.fullName();
        },

        greet: function(formal) {
            var msg;

            if (formal) msg this.formalGreeting();
            else msg = this.greeting();

            if (console) console.log(msg);
            return this;
        },

        log: function() {
            if (console) {
                console.log(logMessages[this.language] + &#39;: &#39; + this.fullName();
            }
            return this;
        },

        setLang: function(lang) {
            this.language = lang;
            this.validate();
            return this;
        }
    };

    Greetr.init = function(firstName, lastName, language) {
        var self = this;
        self.firstName = firstName || &#39;&#39;;
        self.lastName = lastName || &#39;&#39;;
        self.language = language || &#39;en&#39;;
        self.validate();
    }

    Greetr.init.prototype = Greetr.prototype;

    global.Greetr = global.G$ = Greetr;
}

}(window, jQuery))
</code></pre>
<p>so now we can call it like this:</p>
<pre><code class="language-javascript">var g = G$(&#39;John&#39;, &#39;Doe&#39;);
g.greet().setLang(&#39;es&#39;).greet(true);
</code></pre>
<h3 id="lectures-77-lets-build-a-frameworklibrary-adding-jquery-support">Lectures 77: Let&#39;s build a framework/library. Adding jQuery support</h3>
<p>Imagine we have an HTML form for login users. We just need a dropdown with the two languages supported and a login button. We also need an H1 with the id greeting.</p>
<p>Now we are going to add a method that accepts a jQuery selector and updates whatever the selector is.</p>
<p>To do this, we just need to add the following method to the prototype:</p>
<pre><code class="language-javascript">    HTMLGreeting: function(selector) {
        if (!$) throw &#39;jQuery not loaded&#39;;

        if (!selector) throw &#39;Missing jQuery selector&#39;;

        var msg;
        if (formal) msg this.formalGreeting();
        else msg = this.greeting();

        $(selector).html(msg);
        return this;
    }
</code></pre>
<h3 id="lectures-78-lets-build-a-frameworklibrary-good-commenting">Lectures 78: Let&#39;s build a framework/library. Good commenting</h3>
<p>This is especially important in JS because is not very verbose and we could make things very slick but not easy to read.</p>
<p>It&#39;s also good to get other developers to check your code and see if it&#39;s readable.</p>
<h3 id="lectures-79-lets-build-a-frameworklibrary-lets-use-our-framework">Lectures 79: Let&#39;s build a framework/library. Let&#39;s use our framework</h3>
<p>Sometimes libraries also use a semi-colon before the self-invoked function as a sanity check (just in case another library wasn&#39;t closed properly).</p>
<p>The rest of the lecture is just about connecting the HTML form with the library, which is not particularly adding much value, so I will skip it.</p>
<h3 id="lecture-81-typescript-es6-and-transpiled-languages">Lecture 81: Typescript, ES6 and transpiled languages</h3>
<p><strong>Transpile</strong>: convert the syntax of one programming language to another. In this case, languages don&#39;t ever run anywhere, but instead are processed by &#39;transpilers&#39; that generate Javascript.</p>
<p><a href="http://www.typescriptlang.org/">Typescript</a> by Microsoft is quite popular. It provides types for variables! i.e. message: string. It also uses class and constructors.</p>
<p><a href="https://github.com/google/traceur-compiler">Traceur</a> by Google is also another popular ES6 library.</p>
<p>A lot of teams with long-term Javascript projects are using these tools so that they can write ES6 code (future proof) and at the same time be compatible with the current browsers.</p>
<p>As a personal opinion, I&#39;ve heard of <a href="https://babeljs.io/">BabelJs</a> more than any of the previous libraries. <a href="http://ilikekillnerds.com/2015/01/transpiling-wars-6to5-vs-traceur/">Some people</a> recommend Babel over Traceur if support for JSX is a requirement or if the resulting code quality is also important to you over function.</p>
<h3 id="lectures-83-ecmascript-60-existing-and-upcoming-features">Lectures 83: EcmaScript 6.0. Existing and upcoming features</h3>
<p>This is probably the best resource out there to learn about the ES6 features: <a href="https://github.com/lukehoban/es6features">https://github.com/lukehoban/es6features</a></p>
<p>And that&#39;s all. Here is the certificate that you will get if you take the course on Udemy:</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/javascript-understanding-the-weird-parts-part-2/images/UC-E8UQOM40.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/javascript-understanding-the-weird-parts-part-2/images/UC-E8UQOM40.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/javascript-understanding-the-weird-parts-part-2/images/UC-E8UQOM40-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/javascript-understanding-the-weird-parts-part-2/images/UC-E8UQOM40-mobile.jpg" />
          <img class="image" src="/blog/javascript-understanding-the-weird-parts-part-2/images/UC-E8UQOM40.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/javascript-understanding-the-weird-parts-part-2/images/coding.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[How to create a portfolio in ghost]]></title>
            <link>https://www.joanmira.com/blog/how-to-create-a-portfolio-in-ghost</link>
            <guid>https://www.joanmira.com/blog/how-to-create-a-portfolio-in-ghost</guid>
            <pubDate>Fri, 22 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[My experience working with the new kid on the block: The Ghost publishing platform]]></description>
            <content:encoded><![CDATA[<p>I&#39;ve been a <strong>WordPress</strong> developer for quite some time, but at some point, I got tired of the massive attention that it was getting from <strong>hackers</strong>. I also started to feel tired of the old LAMP stack and wanted to have a fresh start with relevant technologies like Node.js, Nginx, Ember.js, etc. That&#39;s how I switched all my websites to <a href="http://ghost.org">Ghost</a>.</p>
<p>I&#39;ve been using the <strong>fantastic</strong> <a href="http://ghost.org">Ghost</a> platform to run this website since almost a year ago and so far, it has been a great experience. In this article, I&#39;m going to explain how I built the <a href="http://joanmira.com/work">/work</a> section of this website. In a way, it&#39;s a bit of a hack, considering that <a href="http://ghost.org">Ghost</a> doesn&#39;t have yet a clear way to create pages of a specific type or have custom post fields that we can read in the templates (like in WordPress).</p>
<p>To make this work, we are going to use:</p>
<ul>
<li>The <strong>tag system</strong>: to categorise our portolio works</li>
<li>A new <strong>page-work.hbs</strong> <a href="https://themes.ghost.org/docs/templates">template</a>: to display the portfolio grid and navigation</li>
<li>The <strong>page.hbs</strong> <a href="https://themes.ghost.org/docs/templates">template</a>: to create the HTML structure of the portfolio pages</li>
<li>The new <strong>{{#get}}</strong> <a href="https://themes.ghost.org/docs/get">helper</a>: to search for portfolio entries among all our Ghost posts</li>
<li>The <a href="http://isotope.metafizzy.co/">Isotope library</a>: to create the interactive animated responsive masonry layout</li>
</ul>
<p>You can read more about the mentioned Ghost features in the <a href="https://themes.ghost.org/docs/about">documentation</a>. Notice that the <a href="https://themes.ghost.org/docs/get">{{get}} helper</a> is still in beta.</p>
<p>The way it works is very simple, we are going to use normal Ghost tags (like web, mobile, video, design, etc) to categorize our portfolio items and we will also use the &#39;<strong>work</strong>&#39; tag to identify the pages that need to be treated as portfolio pages.</p>
<p>This approach has at least <strong>one limitation</strong>:</p>
<p>If we are going to use the <strong>page.hbs</strong> template for the portfolio entries, which means we cannot create new pages on the fly because that template is used by default for every new page we create. For the rest of the static pages of our site, we will have to use specific new templates. For example, the about page will require a new template called page-about.hbs, the contact page will require a new template called page-contact.hbs, etc. This approach is more appropriate for small sites that don&#39;t have many static pages and the new content is usually going to be either a blog post or a new portfolio entry.</p>
<h3 id="step-1-create-a-new-html-template-to-display-the-portfolio-grid">Step 1. Create a new HTML template to display the portfolio grid</h3>
<p>First, we are going to create a new template. I called it page-work.hbs (because my URL is /work), but you can call it whatever you prefer, ie. page-portfolio, page-projects, etc. In this template, we are going to have:</p>
<ul>
<li>Some intro copy (entered with the markdown editor)</li>
<li>The portfolio&#39;s main navigation</li>
<li>The grid with the portfolio items</li>
</ul>
<p>And this is the code we will use:</p>
<pre><code class="language-html">&lt;section&gt;
  {{#post}}
    {{content}}
  {{/post}}
&lt;/section&gt;

&lt;main&gt;
  &lt;div class=&quot;work-navigation&quot;&gt;
    &lt;div id=&quot;filters&quot; class=&quot;button-group&quot;&gt;
      &lt;button class=&quot;btn is-checked&quot; data-filter=&quot;*&quot;&gt;ALL&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.web&quot;&gt;WEB&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.desktop&quot;&gt;DESKTOP&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.mobile&quot;&gt;MOBILE&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.prototype&quot;&gt;PROTOTYPE&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.installation&quot;&gt;INSTALLATION&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.open-source&quot;&gt;OPEN SOURCE&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.consultancy&quot;&gt;CONSULTANCY&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.design&quot;&gt;DESIGN&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.ux&quot;&gt;UX&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.video&quot;&gt;VIDEO&lt;/button&gt;
      &lt;button class=&quot;btn&quot; data-filter=&quot;.photo&quot;&gt;PHOTO&lt;/button&gt;
    &lt;/div&gt;
  &lt;/div&gt;

  &lt;div class=&quot;work-grid clearfix&quot;&gt;
    &lt;div class=&quot;grid-sizer&quot;&gt;&lt;/div&gt;
    {{#get &quot;posts&quot; limit=&quot;all&quot; include=&quot;tags&quot; filter=&quot;tag:work+page:true&quot;}}
      {{#foreach posts}}
        &lt;a href=&quot;/{{slug}}&quot; class=&quot;{{tags separator=&quot; &quot; autolink=&quot;false&quot;}}&quot;&gt;
          &lt;div class=&quot;work-thumb&quot;&gt;&lt;/div&gt;
          &lt;h2 class=&quot;name&quot;&gt;{{title}}&lt;/h2&gt;
          &lt;p class=&quot;meta&quot;&gt;&lt;span class=&quot;date&quot;&gt;{{date published_at format=&quot;YYYY&quot;}}&lt;/span&gt;&lt;span class=&quot;country&quot;&gt;{{#has tag=&quot;uk&quot;}}UK{{/has}}{{#has tag=&quot;spain&quot;}}Spain{{/has}}{{#has tag=&quot;multiple-regions&quot;}}Multiple regions{{/has}}&lt;/span&gt;&lt;/p&gt;
        &lt;/a&gt;
      {{/foreach}}
    {{/get}}
  &lt;/div&gt;
&lt;/main&gt;
</code></pre>
<p>The first part of the code will render the content that we enter in the markdown editor. Then we define the portfolio navigation buttons, each one of them has a filter attribute with a class name. When clicked, the isotope library will display only the portfolio entries that have the class name specified in the filter attribute of the button.</p>
<p>Finally, in the work-grid block, we are going to use the {{get}} helper to get a collection of posts that have the tag &#39;work&#39; and are marked as &#39;page&#39;. That will skip all the normal blog posts and all the pages that don&#39;t have the &#39;work&#39; tag.</p>
<p>Then we are going to loop through the collection (using {{#foreach}} and render an anchor tag with the metadata of each post in the collection. Notice that to render the post tags, we use the helper {{tags}} inside the class attribute of the anchor tag. That is the key point of this approach.</p>
<p>The content inside the anchor tag is not enforced. You can style it however you prefer. I&#39;m just rendering the post date and a country string or another depending on the post tags.</p>
<h3 id="step-2-setup-the-isotope-configuration">Step 2. Setup the isotope configuration</h3>
<p>Now that our markup is ready, we need to download the <a href="http://isotope.metafizzy.co/">Isotope library</a> and load it on our page. There are many different ways to do this, depending on what type of task manager you are using, if you are bundling and minifying the code and how your Ghost theme is structured. So I will leave that for you. The only thing to bear in mind is that we need the library to be loaded on the page!</p>
<p>Once we are sure that the library is loading, we need to set it up. Once again, the place where you should put the following code, depends on how your theme is structured, but you should have a Javascript file somewhere in your theme that you can use:</p>
<pre><code class="language-javascript">// init Isotope
var $grid = $(&#39;.work-grid&#39;).isotope({
  itemSelector: &#39;.work&#39;,
  percentPosition: true,
  masonry: {
    columnWidth: &#39;.grid-sizer&#39;
  }
});

// bind filter button click
$(&#39;#filters&#39;).on(&#39;click&#39;, &#39;button&#39;, function() {
  var filterValue = $(this).attr(&#39;data-filter&#39;);
  $grid.isotope({ filter: filterValue });
});

// change is-checked class on buttons
$(&#39;.button-group&#39;).each( function(i, buttonGroup) {
  var $buttonGroup = $(buttonGroup);
  $buttonGroup.on(&#39;click&#39;, &#39;button&#39;, function() {
    $buttonGroup.find(&#39;.is-checked&#39;).removeClass(&#39;is-checked&#39;);
    $(this).addClass(&#39;is-checked&#39;);
  });
});
</code></pre>
<p>In the first part of the code, we are just attaching Isotope to the work-grid block defined in our HTML template. Then we are telling Isotope that our portfolio thumbnails will have the class name &#39;work&#39;. The rest of the settings are the ones indicated by the <a href="http://isotope.metafizzy.co/#getting-started">Isotope documentation</a> to make the grid responsive.</p>
<p>The next bit takes care of the navigation click events. It tells Isotope to rearrange the items in the grid based on the selected filter.</p>
<p>Finally, the last snippet updates the &#39;checked&#39; class names in the navigation buttons when they are clicked. Notice that we are targeting the buttons inside the &#39;button-group&#39; blocks. That&#39;s because you might decide to have different sets of navigations, one for filtering and another one for sorting. You can find out about how to sort items in the <a href="http://isotope.metafizzy.co/#getting-started">Isotope documentation</a>.</p>
<h3 id="step-3-create-new-entries">Step 3. Create new entries</h3>
<p>The next step is to create a few new entries in your Ghost admin panel and prepare them to be portfolio entries. Remember that all you have to do is to check the option &#39;Turn this post into a static page&#39; and assign at least the &#39;work&#39; tag.</p>
<h3 id="step-4-decide-what-to-do-with-the-post-images">Step 4. Decide what to do with the post images</h3>
<p>Regarding the thumbnail images that will be used in the Isotope grid, there are at least a couple of options.</p>
<p>The first one (which I didn&#39;t use) would be to add a post image using the post sidebar settings in the admin panel. Then you would retrieve that image during the {{foreach}} loop in the &#39;page-work.hbs&#39; template and render it as an &lt;img&gt; or as a CSS <code>background-image</code>. This option is the best if you only need one image for the thumbnails, no background colors or other stuff and you are not going to use the post image on the portfolio entry page (page.hbs).</p>
<p>The other option would be more time-consuming (in terms of maintenance) but more flexible in terms of presentation. I chose this option because I wanted to have specific CSS for every single thumbnail in my portfolio grid. That means, that every time I want to add a new item to my portfolio, I have to manually update my CSS with the project logo. Why did I complicate my life in such a way? Just because I wanted to have nice roll-over animations with background changing colors and keep the post image for the page.hbs template :-)</p>
<p>So, if you just want to display normal project thumbnails as images, I would go with the first option. This way you could add new portfolio items directly from the admin panel without the need to touch a line of code!</p>
<h3 id="step-5-modify-the-pagehbs-template">Step 5. Modify the page.hbs template</h3>
<p>We are going to use this template as the base for every new portfolio page:</p>
<pre><code class="language-html">{{#post}}
  {{#if image}}
    &lt;section class=&quot;hero&quot; style=&quot;background-image: url({{image}})&quot;&gt;&lt;/section&gt;
  {{/if}}

  &lt;main class=&quot;content {{#if image}}{{else}}no-hero{{/if}}&gt;
    &lt;article class=&quot;{{post_class}}&quot;&gt;
      &lt;h1 class=&quot;post-title&quot;&gt;{{{title}}}{{#if tags}}&lt;time datetime=&quot;{{date format=&quot;YYYY-MM-DD&quot;}}&quot;&gt;{{date format=&#39;YYYY&#39;}}&lt;/time&gt;{{/if}}&lt;/h1&gt;
      &lt;section class=&quot;post-content&quot;&gt;
        {{content}}
      &lt;/section&gt;
    &lt;/article&gt;
  &lt;/main&gt;
{{/post}}
</code></pre>
<p>Depending on which route you decided to take in the previous step and if you want to display the post image at the top of the portfolio entry page, you would need the first condition or not.</p>
<p>The rest of the code is just setting a basic HTML structure to render the content of the portfolio entry.</p>
<h3 id="step-6-set-the-basic-styles-for-the-grid">Step 6. Set the basic styles for the grid</h3>
<p>In your CSS, add the following styles. I&#39;m not including all the parts that relate only to my specific website, like the hover animations, background images, etc, but if you are interested, let me know in a comment and I will add them:</p>
<pre><code class="language-css">.work-grid {
  .grid-sizer,
  .work {
    width: 16.67%;

    @media screen and (max-width: 1500px) {
      width: 20%;
    }

    @media screen and (max-width: 1200px) {
      width: 25%;
    }

    @media screen and (max-width: 900px) {
      width: 33.34%;
    }

    @media screen and (max-width: 700px) {
      width: 50%;
    }

    @media screen and (max-width: 380px) {
      width: 100%;
    }
  }

  .work {
    position: relative;
    box-sizing: border-box;
    float: left;
    height: 200px;
    overflow: hidden;

    .work-thumb {
      position: absolute;
      height: 100%;
      width: 100%;
      background-repeat: no-repeat;
      background-position: center;
    }

    .name, .meta {
      opacity: 0;
      position: relative;
      color: white;
    }

    .name {
      padding-left: 40px;
      padding-right: 40px;
      font-size: 1.5em;
      white-space: pre-wrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-height: 60px;

      @media screen and (max-width: 700px) {
        font-size: 1.2em;
        max-height: 70px;
      }
    }

    .meta {
      .date {
        margin-right: 5px;
      }
    }

    /* If you decided to go with option 2 in the previous step,
        you will need to manually link your portfolio thumbnail CSS
        by adding a tag with the name of the project */
    &amp;.project-name {
      background-color: #c60c30; // this is optional
      .work-thumb {
        background-image: url(/assets/work/project-name/logo.png);
      }
    }
  }
}
</code></pre>
<h3 id="step-7-ready-to-go">Step 7. Ready to go!</h3>
<p>At this point, you should be ready to start adding your portfolio entries, content and images. If you find something missing in my code or there&#39;s anything that doesn&#39;t make much sense, let me know in a comment and I will refine it.</p>
<p>Good luck! and keep blogging with <a href="http://ghost.org">Ghost</a> ;-)</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/how-to-create-a-portfolio-in-ghost/images/ghost-portfolio.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Tutorial: build a weather app with React]]></title>
            <link>https://www.joanmira.com/blog/tutorial-build-a-weather-app-with-react</link>
            <guid>https://www.joanmira.com/blog/tutorial-build-a-weather-app-with-react</guid>
            <pubDate>Wed, 20 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[This is a classic exercise or test when applying for a job]]></description>
            <content:encoded><![CDATA[<p><a class="btn github" role="button" href="https://github.com/gazpachu/react-weather" target="_blank">Source code</a></p>
<p>In this <a href="https://facebook.github.io/react/">React</a> tutorial for beginners, we are going to learn how to build a small and simple <a href="https://facebook.github.io/react/">React</a> app to display the weather of cities in the world. If you are interested in learning React, this beginner tutorial is a good starting point, as it doesn&#39;t cover very complex topics. At the same time, once you learn how to connect to an external API and display the results, it can be quite handy to build other types of single-page apps whose only requirement is to fetch data from an external source and display the results in any way.</p>
<p>It&#39;s a very simple app that can be coded in a few hours, so you should try to do it by yourself. That&#39;s how you will learn more! For the impatient ones... <a href="https://github.com/gazpachu/react-weather">here is the source code</a>.</p>
<h3 id="functional-requirements">Functional requirements</h3>
<ul>
<li>Display the city name, current weather icon, temperature, humidity and wind speed</li>
<li>The background color changes based on the temperature</li>
<li>Loads a city name using the query string &#39;?city=Madrid&#39;</li>
<li>Loads comma-separated cities and rotates them after 5s</li>
<li>Cache the API data and refresh it after 5m</li>
<li>Responsive design. It should work well on all devices</li>
</ul>
<h3 id="tech-stack">Tech stack</h3>
<ul>
<li>Cross-browser compatible back to Internet Explorer 9</li>
<li>Don&#39;t use jQuery</li>
<li>Use the <a href="https://fonts.adobe.com/fonts/league-gothic">League Gothic</a> font</li>
<li>Use the weather icons from <a href="erikflowers.github.io/weather-icons/">Erik Flowers</a></li>
<li>Use the data from <a href="http://openweathermap.org/apihttp://openweathermap.org/api">Open Weather Map</a></li>
<li>Use <a href="https://nodejs.org/en/">Node.js</a> and <a href="http://bower.io/">Bower</a></li>
<li>Use the <a href="http://gulpjs.com/">Gulp Task Runner</a> and the <a href="http://sass-lang.com/">SASS CSS pre-processor</a></li>
<li>Use <a href="http://browserify.org/">Browserify</a> to require modules</li>
</ul>
<p>Note: due to the simplicity and small size of the architecture, we will omit the use of <a href="http://getbem.com/introduction/">BEM</a> and <a href="https://speakerdeck.com/dafed/managing-css-projects-with-itcss">ITCSS</a>.</p>
<p>This is what the app should look like by the end of the tutorial:</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/tutorial-build-a-weather-app-with-react/images/react-weather.png" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/tutorial-build-a-weather-app-with-react/images/react-weather.png" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/tutorial-build-a-weather-app-with-react/images/react-weather.png" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/tutorial-build-a-weather-app-with-react/images/react-weather.png" />
          <img class="image" src="/blog/tutorial-build-a-weather-app-with-react/images/react-weather.png" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<p>There can be a few differences in the icons or the font (3rd party dependencies), but the general look and feel will be very similar to any of these two screenshots.</p>
<h3 id="step-1-setup-the-dev-environment">Step 1. Setup the dev environment</h3>
<p>The first thing we are going to do is <strong>install</strong> <a href="https://nodejs.org/en/">Node.js</a>. I&#39;m going to be using the Mac Os terminal, <a href="http://brackets.io/">Brackets</a> and Chrome. You can use whichever tools or operating system you prefer, all you need is a console, a text editor and a browser.</p>
<p>If you decide to use <a href="http://brackets.io/">Brackets</a>, I recommend installing also these extensions:</p>
<ul>
<li><a href="https://github.com/ivogabe">Brackets icons</a> (to display nice icons beside the files)</li>
<li><a href="https://github.com/cfjedimaster/brackets-htmlhint">HTMLHint</a> (adds hints to the HTML tags)</li>
<li><a href="https://github.com/Brackets-Themes/Monokai">Monokai theme</a> (based on the Sublime Text monokai color scheme)</li>
<li><a href="https://github.com/apla/brackets-jsx">React JSX language mode</a> (Adds the JSX language mode)</li>
<li><a href="https://github.com/DH3ALEJANDRO/custom-work-for-brackets">Tabs custom</a> (adds tabs to Brackets)</li>
</ul>
<p>This is how my Brackets looks like with all these extensions installed:</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/tutorial-build-a-weather-app-with-react/images/brackets-extensions.png" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/tutorial-build-a-weather-app-with-react/images/brackets-extensions.png" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/tutorial-build-a-weather-app-with-react/images/brackets-extensions.png" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/tutorial-build-a-weather-app-with-react/images/brackets-extensions.png" />
          <img class="image" src="/blog/tutorial-build-a-weather-app-with-react/images/brackets-extensions.png" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<h3 id="step-2-conceptual-aside-about-nodejs-modules">Step 2. Conceptual aside: about Node.js modules</h3>
<p>As you probably already know, the fundamental Node building block is called a module that maps directly to a file and everything within that module is private (vars only work in that file).</p>
<p>Now, before we look at how to expose things out of a module, let&#39;s look at loading a module. This is where &#39;<strong>require</strong>&#39; comes in. &#39;require&#39; is used to load a module, which is why its returned value is typically assigned to a variable:</p>
<p><code>var moduleA = require(&#39;./filenameA&#39;);</code></p>
<p>As long as our module doesn&#39;t expose anything, the above isn&#39;t very useful. To expose things we use &#39;<strong>module.exports</strong>&#39; and export everything we want. We can export objects or primitives in different ways:</p>
<pre><code class="language-javascript">var User = function(name, email) { ... }
module.exports = User;
</code></pre>
<pre><code class="language-javascript">module.exports = function(name, email) { ... }
</code></pre>
<pre><code class="language-javascript">var x = 5;
module.exports.x = x;
</code></pre>
<p>In this app, we are only going to create one module, the <strong>API module</strong> (api.jsx), which is going to be taking care of fetching the data from the <a href="http://openweathermap.org/apihttp://openweathermap.org/api">Weather API</a>. We will talk about it more in detail later.</p>
<h3 id="step-3-installing-npm-and-bower-modules">Step 3. Installing NPM and Bower modules</h3>
<p>NPM is a package manager that comes with Node.js. It&#39;s very useful to install 3rd party Node.js modules that we can use to speed up our development.</p>
<p>NPM uses a file called package.json as a reference for all the dependencies that the project is going to have. We can create this file manually or by typing &#39;<strong>npm init</strong>&#39;.</p>
<p>Let&#39;s start by creating a folder called &#39;<strong>react-weather</strong>&#39; whichever you prefer on your computer.</p>
<p>Then open the console/terminal, cd to that folder and type <code>npm init</code>. You will be prompted with a few questions which we don&#39;t need to answer. Just keep pressing enter until you exit the process.</p>
<p>Now you should have a package.json file in your folder.</p>
<p>Next, we are going to download a few packages (which will be saved automatically in the &#39;<strong>node_modules</strong>&#39; folder) and save the reference in the package.json file:</p>
<p>Use <code>npm install &lt;pkg&gt; --save</code> afterward to install a package and save it as a dependency in the package.json file.</p>
<p>We can also download several packages at the same time. So type the following:</p>
<p><code>npm install --save browserify classnames gulp gulp-concat gulp-react gulp-sass gulp-server-livereload gulp-util gulp-watch node-notifier react react-dom reactify vinyl-source-stream watchify whatwg-fetch</code></p>
<p>We are also going to install the gulp client globally (not only for this project). We use the option &#39;-g&#39;. We might need to give admin rights using &#39;sudo&#39;:</p>
<p><code>sudo npm install -g gulp-cli</code></p>
<p>It might take a while..., but you should end up with a package.json that looks like this:</p>
<pre><code class="language-javascript">{
  &quot;name&quot;: &quot;react-weather&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;main&quot;: &quot;index.js&quot;,
  &quot;scripts&quot;: {
    &quot;test&quot;: &quot;echo \&quot;Error: no test specified\&quot; &amp;&amp; exit 1&quot;
  },
  &quot;author&quot;: &quot;&quot;,
  &quot;license&quot;: &quot;ISC&quot;,
  &quot;dependencies&quot;: {
    &quot;browserify&quot;: &quot;^9.0.3&quot;,
    &quot;classnames&quot;: &quot;^2.2.3&quot;,
    &quot;gulp&quot;: &quot;^3.8.11&quot;,
    &quot;gulp-concat&quot;: &quot;^2.5.2&quot;,
    &quot;gulp-react&quot;: &quot;^3.0.1&quot;,
    &quot;gulp-sass&quot;: &quot;^2.0.1&quot;,
    &quot;gulp-server-livereload&quot;: &quot;1.3.0&quot;,
    &quot;gulp-util&quot;: &quot;^3.0.4&quot;,
    &quot;gulp-watch&quot;: &quot;^4.2.4&quot;,
    &quot;node-notifier&quot;: &quot;^4.2.1&quot;,
    &quot;react&quot;: &quot;^0.14.3&quot;,
    &quot;react-dom&quot;: &quot;^0.14.3&quot;,
    &quot;reactify&quot;: &quot;^1.1.0&quot;,
    &quot;vinyl-source-stream&quot;: &quot;^1.1.0&quot;,
    &quot;watchify&quot;: &quot;^2.4.0&quot;,
    &quot;whatwg-fetch&quot;: &quot;^0.11.0&quot;
  },
  &quot;devDependencies&quot;: {}
}
</code></pre>
<p>Next, we are going to install Bower (another package manager for the web) and download the weather icons. It will create a folder called &#39;<strong>bower_components</strong>&#39; and a registry file called &#39;<strong>bower.json</strong>&#39;:</p>
<p><code>npm install -g bower</code></p>
<p><code>bower install weather-icons</code></p>
<p>If we were to upload this project into a Git code repository, we would have to create a &#39;<strong>.gitignore</strong>&#39; file and add &#39;node_modules/&#39; and &#39;bower_components/&#39; to it, as we don&#39;t want to upload all these dependencies to the repository. New users could type &#39;<strong>npm install</strong>&#39; and &#39;bower install&#39; to download all the dependencies.</p>
<h3 id="step-4-folder-structure-and-placeholders">Step 4. Folder structure and placeholders</h3>
<p>We are going to create a few folders and files. We should end up with the following folder structure:</p>
<pre><code class="language-javascript">/react-weather
    bower.json
    package.json
    gulpfile.js
    index.html
    /bower_components
    /node_modules
    /sass
        main.scss
        /partials
            base.scss
            reset.scss
    /src
        app.jsx
        /utils
            api.jsx
</code></pre>
<p>The new files are:</p>
<ul>
<li><strong>gulpfile.js</strong>: this is where we will define the tasks to be run, like compiling SASS and JSX, bundling the code, watching for changes, reloading the browser, etc</li>
<li><strong>index.html</strong>: a very minimal markup for our app</li>
<li><strong>main.scss</strong>: we will use it to set the order in which we want to load the SASS files</li>
<li><strong>base.scss</strong>: all our CSS styles</li>
<li><strong>reset.scss</strong>: basic resetting CSS rules</li>
<li><strong>app.jsx</strong>: the core of our app</li>
<li><strong>api.jsx</strong>: the module to contact the Weather API</li>
</ul>
<h3 id="step-5-setup-gulp-tasks">Step 5. Setup Gulp tasks</h3>
<p>When talking about React, we are not only looking at the framework itself. We are also learning about the tools that will help us have a smooth and agile development experience. That&#39;s when a task runner becomes your best friend :-)
<a href="http://gulpjs.com/">Gulp</a> is a task runner, just like <a href="http://gruntjs.com/">Grunt</a>. I don&#39;t have any particular preference for Gulp, actually, I am more used to working with Grunt, but for the sake of learning and trying new things, we are going to use Gulp in this tutorial.</p>
<p>First, we are going to start by opening the <strong>gulpfile.js</strong> in the editor and requiring the dependencies:</p>
<pre><code class="language-javascript">var gulp = require(&#39;gulp&#39;);
var gutil = require(&#39;gulp-util&#39;);
var source = require(&#39;vinyl-source-stream&#39;);
var browserify = require(&#39;browserify&#39;);
var watchify = require(&#39;watchify&#39;);
var reactify = require(&#39;reactify&#39;);
var notifier = require(&#39;node-notifier&#39;);
var server = require(&#39;gulp-server-livereload&#39;);
var concat = require(&#39;gulp-concat&#39;);
var sass = require(&#39;gulp-sass&#39;);
var watch = require(&#39;gulp-watch&#39;);
</code></pre>
<p>As we mentioned before, we need to compile the SASS and JSX files, bundle the code and watch for changes. We also want to display formatted errors and reload the browser automatically when there&#39;s a change in the JS or SASS files.</p>
<p>Let&#39;s start with the error messages:</p>
<pre><code class="language-javascript">// Format error messages
var notify = function (error) {
    var message = &#39;In: &#39;;
    var title = &#39;Error: &#39;;

    if (error.description) {
        title += error.description;
    }
    else if (error.message) {
        title += error.message;
    }

    if (error.filename) {
        var file = error.filename.split(&#39;/&#39;);
        message += file[file.length-1];
    }

    if (error.lineNumber) {
        message += &#39;\nOn Line: &#39; + error.lineNumber;
    }

    notifier.notify({title: title, message: message});
};
</code></pre>
<p>The module &#39;node-notifier&#39; creates nice alerts (at least in Mac Os) with the error messages that occurred during the build process. With the snippet above, we are just formatting the error message in a way that could be more readable.</p>
<p>The next step is to <strong>create the bundle</strong>. For this part, we are going to need three modules: watchify, browserify and reactify. The first one is a module to do automatic bundling of browserify-based scripts.</p>
<p>Browserify lets us require(&#39;modules&#39;) in the browser by bundling up all our dependencies. It looks at a single JavaScript file (in this case app.jsx), and follows the require dependency tree, and bundles them into a new file.</p>
<p>ReactJS uses a special syntax called JSX, not the normal JS one. Usually, when you want to work with ReactJS JSX files, you need to transform them into normal JS files. So we are going to use &#39;reactify&#39; to transform those JSX into JS files.</p>
<p>In conclusion, we will create a Browserify bundler and add a transformer to transform JSX to Javascript and then bundle everything together into a file called <strong>main.js</strong> that will sit in the root.</p>
<pre><code class="language-javascript">// Bundle settings
var bundler = watchify(browserify({
    entries: [&#39;./src/app.jsx&#39;],
    transform: [reactify],
    extensions: [&#39;.jsx&#39;],
    debug: true,
    cache: {},
    packageCache: {},
    fullPaths: true
}));

// Bundle tasks
function bundle() {
    return bundler
        .bundle()
        .on(&#39;error&#39;, notify)
        .pipe(source(&#39;main.js&#39;))
        .pipe(gulp.dest(&#39;./&#39;))
}
bundler.on(&#39;update&#39;, bundle);

// Create bundle
gulp.task(&#39;build&#39;, function() {
    bundle()
});
</code></pre>
<p>Now we are going to process the SASS files and put them all together (in the order specified in main.scss) in a unique CSS file (style.css) that will sit in the root folder:</p>
<pre><code class="language-javascript">// Compile the SASS files from main.scss
gulp.task(&#39;sass&#39;, function () {
    gulp.src(&#39;./sass/main.scss&#39;)
        .pipe(sass().on(&#39;error&#39;, sass.logError))
        .pipe(concat(&#39;style.css&#39;))
        .pipe(gulp.dest(&#39;./&#39;));
});
</code></pre>
<p>The next stage is to set up the live reload server. This module will reload the browser automatically each time there&#39;s a change in our code. This is a really nice feature! In this case, we are going to pass a test filter to the livereload module, so that it will check our compiled CSS and JS files before reloading the browser. You can read more about the module documentation <a href="https://github.com/hiddentao/gulp-server-livereload">here</a>.</p>
<pre><code class="language-javascript">// Live reload server settings
gulp.task(&#39;serve&#39;, function(done) {
    gulp.src(&#39;&#39;)
        .pipe(server({
            livereload: {
                enable: true,
                filter: function(filePath, cb) {
                if (/main.js/.test(filePath)) {
                    cb(true)
                }
                else if (/style.css/.test(filePath)) {
                    cb(true)
                }
            }
        },
        open: true
    }));
});
</code></pre>
<p>Finally, we are going to create the watch task for our SASS files and set the order in which all the created tasks need to be run:</p>
<pre><code class="language-javascript">// Watch for changes in the SASS files
gulp.task(&#39;watch&#39;, function () {
    gulp.watch(&#39;./sass/**/*.scss&#39;, [&#39;sass&#39;]);
});

// Run tasks in a specific order
gulp.task(&#39;default&#39;, [&#39;build&#39;, &#39;serve&#39;, &#39;sass&#39;, &#39;watch&#39;]);
</code></pre>
<p>At this point, if you are using Git, you should add <strong>main.js</strong> and <strong>style.css</strong> to your .gitignore file, as these files will be generated by Gulp and we don&#39;t need them in the repository.</p>
<h3 id="step-6-create-a-basic-markup">Step 6. Create a basic markup</h3>
<p>We are going to create a basic HTML file with:</p>
<ul>
<li>A container DIV where we will attach the React component</li>
<li>The font loaded from Adobe Edge Fonts</li>
<li>The compiled CSS file</li>
<li>The weather icons CSS file</li>
<li>The compiled JS file</li>
</ul>
<p>I prefer to load fonts using <code>&lt;link&gt;</code> rather than a <code>&lt;script&gt;</code> tag, but for the sake of simplicity, we will go with this method this time.</p>
<pre><code class="language-html">&lt;html&gt;
    &lt;head&gt;
        &lt;script src=&quot;//use.edgefonts.net/league-gothic:n4:all.js&quot;&gt;&lt;/script&gt;
        &lt;link rel=&quot;stylesheet&quot; href=&quot;/style.css&quot;&gt;
        &lt;link rel=&quot;stylesheet&quot; href=&quot;/bower_components/weather-icons/css/weather-icons.min.css&quot;&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;div class=&quot;container&quot;&gt;&lt;/div&gt;
    &lt;/body&gt;
    &lt;script src=&quot;main.js&quot;&gt;&lt;/script&gt;
&lt;/html&gt;
</code></pre>
<h3 id="step-7-add-the-reset-css">Step 7. Add the reset CSS</h3>
<p>Just copy/paste the following code in /sass/partials/reset.scss</p>
<pre><code class="language-css">html {
  box-sizing: border-box;
}

*, *:before, *:after {
  box-sizing: inherit;
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote {
  &amp;:before, &amp;:after {
    content: &#39;&#39;;
    content: none; } }

q {
  &amp;:before, &amp;:after {
    content: &#39;&#39;;
    content: none; } }

table {
  border-collapse: collapse;
  border-spacing: 0; }
</code></pre>
<h3 id="step-8-start-building-the-react-component">Step 8. Start building the React component</h3>
<p>Finally, we arrive at the moment where you can really start learning React! I&#39;m sorry it took so long, but now we have everything ready and from now on it will be just pure coding :P</p>
<p>First we are going to open /src/app.jsx. This is where we will create our React component. We need to require some modules:</p>
<pre><code class="language-javascript">var React = require(&#39;react&#39;);
var ReactDOM = require(&#39;react-dom&#39;);
var classNames = require(&#39;classnames&#39;);
var Api = require(&#39;./utils/api&#39;);
</code></pre>
<p>The two first modules correspond to the React framework. Classname is a 3rd party module (recommended by React) to build class names that contain dynamic data. In JSX we cannot use &#39;+&#39; like in JS to concatenate strings in the class attribute. The API object is requiring the module that we will use to fetch data from the Weather API. Notice that to load this module, we have to build the relative path, as it&#39;s not a module that we have installed with NPM.</p>
<p>Now we are going to define a few variables to handle the cities from the query string:</p>
<pre><code class="language-javascript">var query = &#39;&#39;; // Expects something like this ?city=London,Paris,Berlin,Madrid
var cities = []; // Transform query string cities into an array
var citiesWeather = []; // API cache
var currentCity = 0; // Index of current city displayed
</code></pre>
<p>Let&#39;s not go too deep in trying to explain what we are going to do with these variables. Their purpose will be revealed as we go along building the component.</p>
<p>Now we can define the new React component like this:</p>
<pre><code class="language-javascript">var Weather = React.createClass({
    render: function() {

    }
});

// Assign the React component to a DOM element
var element = React.createElement(Weather, {});
ReactDOM.render(element, document.querySelector(&#39;.container&#39;));
</code></pre>
<p>We basically created a React component called &#39;Weather&#39; and render it inside the &#39;container&#39; DIV.</p>
<p>From now on, we are going to work on the methods of the object defined inside the React.createClass().</p>
<p>First method is getInitialState():</p>
<pre><code class="language-javascript">// Init data for UI
getInitialState: function() {
    return {
        weather: &#39;&#39;,
        temp: 0,
        humidity: 0,
        wind: 0
    }
},
</code></pre>
<p>Here, we are just initializing the props that we are going to use later to hold the values for our weather indicators in the UI.</p>
<p>Now we need to create the HTML structure for our weather component Let&#39;s use this simple wireframe to map each box into an HTML element:</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/tutorial-build-a-weather-app-with-react/images/react-weather-wire.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/tutorial-build-a-weather-app-with-react/images/react-weather-wire.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/tutorial-build-a-weather-app-with-react/images/react-weather-wire-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/tutorial-build-a-weather-app-with-react/images/react-weather-wire-mobile.jpg" />
          <img class="image" src="/blog/tutorial-build-a-weather-app-with-react/images/react-weather-wire.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<p>Inside the render() method, add the following:</p>
<pre><code class="language-javascript">// Build class names with dynamic data
var weatherClass = classNames(&#39;wi wi-owm-&#39; + this.state.weather);
var bgColorClass = &#39;weather-widget &#39;; // very-warm, warm, normal, cold, very-cold

// Set the background colour based on the temperature
if (this.state.temp &gt;= 30) {
    bgColorClass += &#39;very-warm&#39;;
}
else if (this.state.temp &gt; 20 &amp;&amp; this.state.temp &lt; 30) {
    bgColorClass += &#39;warm&#39;;
}
else if (this.state.temp &gt; 10 &amp;&amp; this.state.temp &lt; 20) {
    bgColorClass += &#39;normal&#39;;
}
else if (this.state.temp &gt; 0 &amp;&amp; this.state.temp &lt; 10) {
    bgColorClass += &#39;cold&#39;;
}
else if (this.state.temp &lt;= 0) {
    bgColorClass += &#39;very-cold&#39;;
}

// Render the DOM elements
return &amp;lt;div className={bgColorClass}&gt;
    &amp;lt;h1 className=&quot;city&quot;&gt;{cities[currentCity]}&amp;lt;/h1&gt;
    &amp;lt;div className=&quot;weather&quot;&gt;
        &amp;lt;i className={weatherClass}&gt;&amp;lt;/i&gt;
    &amp;lt;/div&gt;
    &amp;lt;section className=&quot;weather-details&quot;&gt;
        &amp;lt;div className=&quot;temp&quot;&gt;&amp;lt;span className=&quot;temp-number&quot;&gt;{this.state.temp}&amp;lt;/span&gt;&amp;lt;span className=&quot;wi wi-degrees&quot;&gt;&amp;lt;/span&gt;&amp;lt;/div&gt;
        &amp;lt;div className=&quot;humidity&quot;&gt;&amp;lt;i className=&quot;wi wi-raindrop&quot;&gt;&amp;lt;/i&gt;{this.state.humidity} %&amp;lt;/div&gt;
        &amp;lt;div className=&quot;wind&quot;&gt;&amp;lt;i className=&quot;wi wi-small-craft-advisory&quot;&gt;&lt;/i&gt;{this.state.wind} &amp;lt;span className=&quot;vel&quot;&gt;Km/h&amp;lt;/span&gt;&amp;lt;/div&gt;
    &amp;lt;/section&gt;
&amp;lt;/div&gt;
</code></pre>
<p>Let&#39;s analyze the code step by step.</p>
<p>To render the big weather icon (the sun, clouds, etc), we need to get the <a href="http://api.openweathermap.org/data/2.5/weather?q=London&amp;appid=2de143494c0b295cca9337e1e96b00e0">icon ID from the Weather API</a>. Once we have it, we can use the prefix &#39;<strong>wi wi-owm-</strong>&#39; (got it from the <a href="https://erikflowers.github.io/weather-icons/api-list.html">weather icons API compatibility list</a>) to compose the class name that we need. That&#39;s what we are doing with the weatherClass variable.</p>
<p>The next variable, &#39;bgColorClass&#39; is composing the class name that we will use for the app wrapper background color. The aim is to have the class &#39;warm&#39; for temperatures between 20 and 30 degrees and so on. We will then assign a color to each class later in the SASS file.</p>
<p>In the return statement, the first thing that stands out is the use of &#39;className&#39; rather than &#39;class&#39;. That&#39;s how you add CSS classes in JSX templates. The class names also need to be composed using the classNames module that we required at the beginning of the file.</p>
<p>Then we have variables wrapped in {}, like in Handlebars. This is how we render the content of React variables, states or properties (called <em>props</em>). In this app, we are going to use states. If you want to know more about the difference between props and states, head to <a href="https://github.com/uberVU/react-guide/blob/master/props-vs-state.md">this article</a>.</p>
<h3 id="step-9-fetch-the-api-data">Step 9. Fetch the API data</h3>
<p>Let&#39;s summarise. So far, we have a React component that initializes and renders its empty data. That&#39;s all. So, the next step is to fetch the API data and pass it on to the React component.</p>
<p>Let&#39;s open the <code>/src/utils/api.jsx</code> file and write the following code:</p>
<pre><code class="language-javascript">var Fetch = require(&#39;whatwg-fetch&#39;);
var rootUrl = &#39;http://api.openweathermap.org/data/2.5/weather?q=&#39;;
var apiUrl = &#39;&amp;appid=2de143494c0b295cca9337e1e96b00e0&#39;;

module.exports = {
    get: function(place) {
        return fetch(rootUrl + place + apiUrl, {
            headers: {
                // No need for special headers
            }
        })
        .then(function(response) {
            return response.json();
        });
    }
};
</code></pre>
<p>In this module, we are going to require &#39;whatwg-fetch&#39;, which is a <a href="https://github.com/github/fetch">window.fetch JavaScript polyfill</a>. We are also going to use an API key and the API URL. I think you don&#39;t need to register to generate a new key, as this one I got it from the API docs and seems to be working fine.</p>
<p>The fetching code is super simple. We compose the final URL by concatenating the variables plus the city&#39;s name that we receive as a parameter and pass it to the fetch method. Then we have a &#39;promise&#39; that will receive the response from the API and we just return it in JSON format.</p>
<h3 id="step-10-connect-the-api-module-with-the-react-component">Step 10. Connect the API module with the React component</h3>
<p>Back in /src/app.jsx, we are going to create a new method called &#39;fetchData&#39; that will try to load the data from our cache and if it cannot find it, then it will call the module we created in the previous step to get new data:</p>
<pre><code class="language-javascript">fetchData: function() {

    // Get the data from the cache if possible
    if (citiesWeather[currentCity]) {
        this.updateData();
    }
    else {
        // Request new data to the API
        Api.get(cities[currentCity])
            .then(function(data) {
                citiesWeather[currentCity] = data;
                this.updateData();
        }.bind(this));
    }
},
</code></pre>
<p>The array <strong>citiesWeather</strong> is our cache object. We are going to store here the JSON responses that we get from the API. Why are we doing this? Because when we have a list of cities rotating, we don&#39;t want to keep contacting the API every time we change the city.</p>
<p>When we want to request new data, we just call the get method in the API module and pass the current city name. In the &#39;promise&#39;, we make sure to update the cache object with the data received and we call the updateData method to set the new value in the states.</p>
<h3 id="step-11-update-the-states">Step 11. Update the states</h3>
<p>At this point, the React component has just received <a href="http://api.openweathermap.org/data/2.5/weather?q=London&amp;appid=2de143494c0b295cca9337e1e96b00e0">new data from the API</a> and it&#39;s ready to update the UI with this new data. We are going to create a new method called updateData:</p>
<pre><code class="language-javascript">updateData: function() {
    // Update the data for the UI
    this.setState({
        weather: citiesWeather[currentCity].weather[0].id,
        temp: Math.round(citiesWeather[currentCity].main.temp - 273.15), // Kelvin to Celcius
        humidity: Math.round(citiesWeather[currentCity].main.humidity),
        wind: Math.round(citiesWeather[currentCity].wind.speed)
    });
}
</code></pre>
<p>Modifying this.props or this.state directly is not a good idea, because React will not be able to pick up on the changes. That&#39;s because React does a shallow comparison of your post prop to determine if it has changed. So always use &#39;setState&#39;.</p>
<h3 id="step-12-read-the-query-string-and-create-the-timers">Step 12. Read the query string and create the timers</h3>
<p>Before we start with the styling of the app, there&#39;s one more step we have to tackle. We are going to create a new method called componentWillMount(), which is called before the render method is executed:</p>
<pre><code class="language-javascript">// Called before the render method is executed
componentWillMount: function() {

    // Get the query string data
    query = location.search.split(&#39;=&#39;)[1];

    // Figure out if we need to display more than one city&#39;s weather
    if (query !== undefined) {
        cities = query.split(&#39;,&#39;); // Get an array of city names

        // Set the interval to load new cities
        if (cities.length &gt; 1) {
            setInterval((function() {
                currentCity++;
                if (currentCity === cities.length) {
                    currentCity = 0;
                }
                this.fetchData(); // Reload the city every 5 seconds
            }).bind(this), 5000);
        }
    }
    else {
        cities[0] = &#39;London&#39;; // Set London as the default city
    }

    // Create a timer to clear the cache after 5 minutes, so we can get updated data from the API
    setInterval(function() {
        citiesWeather = []; // Empty the cache
    }, (1000*60*5));

    this.fetchData();
},
</code></pre>
<p>There&#39;s a module called React Router that can be very useful for building single-page apps, but for the sake of simplicity, I decided not to include it. So we are going to use a very simple approach for reading the list of cities: a query string.</p>
<p>In the first lines of the snippet above, we are just splitting the string into an array and checking if the user entered a single city or several separated by commas. If we have several, then we create a timer that will call the fetchData() method every 5 seconds, which will update the data of the current city. Notice that we are also passing the execution context of the React component to the timer, otherwise &#39;this&#39; wouldn&#39;t find the fetchData method.</p>
<p>In the second part of the snippet, we are creating another timer that will be in charge of clearing the cache every 5 minutes, otherwise, we would only get LIVE data once (when we launch the app).</p>
<p>Congratulations, you arrived at the end of the Javascript part! Now let&#39;s quickly add the CSS and try to run the app.</p>
<h3 id="step-13-add-the-sass-styles">Step 13. Add the SASS styles</h3>
<p>Copy/paste the following code into /sass/partials/base.scss:</p>
<pre><code class="language-scss">// Colours
$very-warm: #FF8500;
$warm: #ffc600;
$normal: #94AF10;
$cold: #06799F;
$very-cold: #233884;

// Breakpoints
$mobile-width: 500px;
@mixin mobile {
    @media (max-width: $mobile-width) {
        @content;
    }
}

// DOM Elements
.weather-widget {
    width: 100%;
    color: white;
    font-family: league-gothic, sans-serif;
    font-weight: 100;
    font-style: normal;
    padding: 5% 10%;

    @include mobile {
        padding: 2%;
    }

    &amp;.very-warm { background-color: $very-warm; }
    &amp;.warm { background-color: $warm; }
    &amp;.normal { background-color: $normal; }
    &amp;.cold { background-color: $cold; }
    &amp;.very-cold { background-color: $very-cold; }
}

.city {
    font-size: 4em;
    text-transform: uppercase;
    letter-spacing: 2px;
    width: 100%;
    text-align: center;
}

.weather{
    display: table;
    height: 415px;
    width: 100%;
    text-align: center;
    border-bottom: 2px solid white;

    @include mobile {
        height: 350px;
    }

     .wi {
        display: table-cell;
        vertical-align: middle;
        font-size: 20em;

         @include mobile {
            font-size: 15em;
         }
    }
}

.weather-details {
    overflow: hidden;
    margin-top: 35px;
    max-width: 550px;
    margin-left: auto;
    margin-right: auto;

    .temp {
        font-size: 13.5em;
        float: left;
        width: 55%;
        max-height: 200px;

        @include mobile {
            font-size: 9em;
        }

        .temp-number, .wi {
            vertical-align: top;
            line-height: 0.85em;
        }

        .wi {
            font-size: 1.5em;
            line-height: 0.8em;
        }
    }

    .humidity, .wind {
        font-size: 5em;

        @include mobile {
            font-size: 3em;
        }

        .wi {
            vertical-align: top;
            width: 70px;

            @include mobile {
                width: 40px;
            }
        }
    }

    .humidity {
        margin-bottom: 20px;
    }

    .wind {
        .wi {
            font-size: 0.82em;
        }
        .vel {
            font-size: 0.6em;
        }
    }
}
</code></pre>
<p>The SASS code is quite self-explanatory. It can be improved, but for this tutorial, which is to learn React, I think it fulfills its purpose.</p>
<h3 id="step-14-the-moment-of-truth">Step 14. The moment of truth</h3>
<p>Type &#39;gulp&#39; in the console/terminal and cross your fingers!</p>
<p>If it works, congratulations! if it doesn&#39;t, try to debug the error messages and find a fix. If you get stuck, then post a comment here and I will try to help you.</p>
<p>This was my first React app and I&#39;m excited to continue learning about Flux, Reflux, the router, etc. So, please, send me your suggestions or let me know if the app could be improved in any way. Thanks and I hope you enjoyed it!</p>
<p><strong>UPDATE</strong>: You DO need to create your own API Key and set it in the apiUrl variable in <code>/src/utils/api.jsx</code>, otherwise your requests will be blocked at some point.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/tutorial-build-a-weather-app-with-react/images/react-clouds.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Javascript: understanding the weird parts [Part 1]]]></title>
            <link>https://www.joanmira.com/blog/javascript-understanding-the-weird-parts</link>
            <guid>https://www.joanmira.com/blog/javascript-understanding-the-weird-parts</guid>
            <pubDate>Mon, 18 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[My learnings reviewing JavaScript concepts on the Udemy educational site]]></description>
            <content:encoded><![CDATA[<p>Looking back and analyzing how web technologies have evolved in the latest few years, I&#39;ve realized that Javascript is now the single most important skill every web developer must-have. It&#39;s everywhere (also in the back-end!) and it&#39;s never going away (like Flash...).</p>
<p>So, for this new year 2016, I decided to focus on polishing my Javascript and become a <strong>JavaScript Samurai / Master of the Universe</strong>, HA, HA, HA! (evil laugh).</p>
<p>I purchased three courses on <a href="https://www.udemy.com">Udemy</a> and the one I&#39;m going to be talking about in this article is called &quot;<a href="https://www.udemy.com/understand-javascript/">Javascript: understanding the weird parts</a>&quot;. If you want to take it, you can try with the voucher code NEWYOU015 and see if it gives you the course for £13, otherwise, I would suggest writing an email to support asking them to give you a new one. The course has been written by Anthony Alicea and currently has <strong>more than 32.700 students</strong>.</p>
<p>I think I know JavaScript quite well, but it&#39;s always good to refresh the concepts, the vocabulary and of course, learn the new ES6 stuff! So, if you want to join me in this journey,  I will be posting all my learnings on the blog, so feel free to read along and share your thoughts.</p>
<h3 id="javascript-understanding-the-weird-parts-part-1">Javascript: understanding the weird parts [Part 1]</h3>
<p>I&#39;m going to skip the first four lectures, which are mainly focused on giving some context and setting up the coding environment.</p>
<h3 id="lecture-6-syntax-parsers-execution-contexts-and-lexical-environments">Lecture 6: Syntax parsers, execution contexts and lexical environments.</h3>
<p><strong>Syntax parsers</strong>: A program that reads your code and determines what it does and if its grammar is valid. Your code isn&#39;t magic. Someone else wrote a program to translate it for the computer and they might add &quot;extra stuff&quot; in during that translation.</p>
<p><strong>Lexical environment</strong>: where something sits physically in the code your write. &#39;Lexical&#39; means &#39;having to do with words or grammar&#39;. A lexical environment exists in programming languages in which <strong>where</strong> you write something is <em>important</em>.</p>
<p>Where you see things written in the code, it will give you an idea of where they will be sitting in the memory.</p>
<p><strong>Execution context</strong>: a wrapper to help manage the code that is running. There are lots of lexical environments. The one which is currently running is managed via execution contexts. It can contain things beyond what you&#39;ve written in your code.</p>
<h3 id="lecture-7-namevalue-pairs-and-objects">Lecture 7: Name/Value pairs and objects</h3>
<p><strong>Name/Value pair</strong>: a name which maps to a unique value. The name may be defined more than once, but only can have one value in any given <strong>context</strong>. That value can be also a new name/value pair.</p>
<p><strong>Object</strong>: a collection of name-value pairs. The simplest definition when talking about Javascript. Don&#39;t think any more deeply of an object than this!</p>
<h3 id="lecture-9-the-global-environment-and-the-global-object">Lecture 9: The global environment and the global object</h3>
<p>The base execution context is the global one. The thing that is accessible from anywhere in your code. Javascript creates also the reserved word &#39;<strong>this</strong>&#39; and in the global context, this represents the window, the browser window, which also can be accessed with the reserved word &#39;window&#39;. Each tab in the browser has its execution context.</p>
<p>When we say &#39;global&#39;, in Javascript means &#39;not inside a function&#39;. Don&#39;t think any deeper than that.</p>
<p>Note: If we are running Node.js, the global object will not be the window.</p>
<p>When we create variables and functions that are not sitting inside any other function, they get attached to the global object. So we could access them using window.anyVariable or window.anyFunction.</p>
<h3 id="lecture-10-the-execution-context-creation-and-hoisting">Lecture 10: The execution context: creation and &#39;hoisting&#39;</h3>
<p>If you are not a native English speaker, you might have found yourself wondering what hoisting means. Hoisting means bringing something to the top, like when using a hoist to lift stuff.</p>
<p>In Javascript, there are situations where we have declared variables and functions at the bottom of a script but we are using them before they are declared, which will return undefined (in the case of the variable).</p>
<p>Hoisting means that Javascript brings to the top the variables and functions when the execution context is created, but let&#39;s look at it in more detail:</p>
<p>1st phase: the creation phase.</p>
<ul>
<li>Create the global object</li>
<li>Create &#39;this&#39;</li>
<li>Create the outer environment</li>
<li>Recognize the variables and function that we created and set up memory space for them -&gt; &#39;hoisting&#39;</li>
</ul>
<p>So, hoisting means that, in this phase, our stuff will exist in memory and that all variables are set initially to undefined. That&#39;s it so far.</p>
<h3 id="lecture-11-javascript-and-undefined">Lecture 11: Javascript and &#39;undefined&#39;</h3>
<p>&#39;undefined&#39; is a special keyword. It&#39;s a value. It means that the variable hasn&#39;t been set. If it wasn&#39;t declared, it would throw an &#39;uncaught ReferenceError&#39;. It&#39;s better not to set &#39;undefined&#39; manually because then, we wouldn&#39;t know if it was us or Javascript who set it to undefined.</p>
<h3 id="lecture-12-the-execution-context-code-execution">Lecture 12: The execution context: code execution</h3>
<p>In Lecture 10 we talked about the creation phase. Now, in the execution context, we are just going to run line by line the code prepared by the creation phase.</p>
<h3 id="lecture-13-single-threaded-synchronous-execution">Lecture 13: Single-threaded, synchronous execution</h3>
<p><strong>Single threaded</strong>: one command at a time. Under the hood of the browser, maybe not. But from our perspective, JS is single-threaded.</p>
<p><strong>Synchronous</strong>: one at a time and in order...</p>
<h3 id="lecture-14-function-invocation-and-execution-stack">Lecture 14: Function invocation and execution stack</h3>
<p><strong>Invocation</strong>: running a function or calling a function. In Javascript, by using parenthesis ()</p>
<p>Every time you execute a function, a new execution context is created and placed on top of the execution stack, where the global execution context is always at the bottom.</p>
<p>Each time the execution context of a function ends, it pops off the execution stack.</p>
<h3 id="lecture-15-functions-context-and-variable-environments">Lecture 15: Functions, context and variable environments</h3>
<p><strong>Variable environment</strong>: where the variables live and how they related to each other in memory.</p>
<p>This is about variable scope and the difference between global vars and local vars scope.</p>
<h3 id="lecture-16-the-scope-chain">Lecture 16: The scope chain</h3>
<p>When looking for variables, each execution context has a reference to its outer environment, and this outer environment is where the code was written physically. So, the Javascript engine will keep moving down (looking for the variable) in the execution stack until it hits the global context.</p>
<h3 id="lecture-17-scope-es6-and-let">Lecture 17: Scope, ES6 and let</h3>
<p><strong>Scope</strong>: where a variable is available in your code and if it&#39;s truly the same variable or a new copy</p>
<p>let is a new ES6 way to declare variables, allowing block scoping (declared inside {}) and only creating it in memory when reaching the line where it&#39;s defined.</p>
<h3 id="lecture-18-what-about-asynchronous-callbacks">Lecture 18: What about asynchronous callbacks?</h3>
<p><strong>Asynchronous</strong>: more than one at a time.</p>
<p>The Javascript engine has hooks that link with other browser engines and modules like the rendering engine or HTTP requests.</p>
<p>There&#39;s another list that sits outside the execution stack called the &#39;Event Queue&#39;. This lists stores click events, http requests, etc.</p>
<p>The Javascript Engine looks at that list ONLY when the execution stack is EMPTY! then it looks periodically at the event queue to see if there&#39;s anything that needs to be run.</p>
<p>So that means long-running functions can block anything else from running, so Javascript can run asynchronous events but in a synchronous way :D</p>
<h3 id="lecture-19-types-and-javascript">Lecture 19: Types and Javascript</h3>
<p><strong>Dynamic typing</strong>: you don&#39;t tell the Javascript engine what type of data a variable holds, it figures it out while your code is running. Variables can hold different types of values because it&#39;s all figured out during execution.</p>
<h3 id="lecture-20-primitive-types">Lecture 20: Primitive types</h3>
<p><strong>Primitive type</strong>: a type of data that represents a single value. That is, not an object.</p>
<p><strong>undefined</strong>: represents a lack of existence (you shouldn&#39;t set a variable to this).</p>
<p><strong>null</strong>: represents a lack of existence (you can set a variable to this).</p>
<p><strong>boolean</strong>: true or false</p>
<p><strong>number</strong>: floating point number (there are always some decimals). Unlike other programming languages, there&#39;s only one &#39;number&#39; type... and it can make math weird.</p>
<p><strong>string</strong>: a sequence of characters (both &#39;&#39; and &quot;&quot; can be used)</p>
<p><strong>symbol</strong>: used in ES6 (the next version of Javascript).</p>
<h3 id="lecture-21-operators">Lecture 21: Operators</h3>
<p><strong>Operator</strong>: a special function that is syntactically (written) differently. Generally, operators take two parameters and return one result.</p>
<p>The way we use operators is called infix notation, ie. 3 + 4</p>
<h3 id="lecture-22-operator-precedence-and-associativity">Lecture 22: Operator precedence and associativity</h3>
<p><strong>Operator precedence</strong>: which operator function gets call first when there&#39;s more than one. Functions are called in order of preference (Higher preference wins).</p>
<p><strong>Operator associativity</strong>: what order operator functions get called in: left-to-right or right-to-left. When functions have the same precedence.</p>
<p>In <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">this table</a> you can find the precedence of the operators.</p>
<h3 id="lecture-24-coercion">Lecture 24: Coercion</h3>
<p><strong>Coercion</strong>: converting a value from one type to another. This happens quite often in Javascript because it&#39;s dynamically typed. For example, when we try the following 1 + &#39;2&#39;, the result would be 12 rather than 3, just because the JS engine will guess that both numbers are strings.</p>
<h3 id="lecture-25-comparison-operators">Lecture 25: Comparison operators</h3>
<p>Sometimes, when we have a chain of comparisons, like for example (3 &lt; 2 &lt; 1), the result, rather than false, will be true. In this case, (3 &lt; 2) is returning false and then (false &lt; 1) returns true because false is coerced into 0.</p>
<p>In the same way, when comparing values, like (&#39;3&#39; == 3), (false == 0), (null &lt; 1), (&quot;&quot; == 0), (&quot;&quot; == false) or (undefined = 0) it would return true. On the other hand, (null = 0) will return false.</p>
<p>How do we fix it? With the strict equality: ===</p>
<p>In <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness">this table</a> you can find the sameness comparisons.</p>
<h3 id="lecture-27-existence-and-boolean">Lecture 27: Existence and boolean</h3>
<p>If we try to convert null, undefined or &quot;&quot; to boolean, we always get false. Boolean(null) returns false;</p>
<p>We can use this to our advantage. When we put something in an &#39;if&#39; statement, it&#39;s going to try to convert it to a Boolean, so we can use it to check if a variable has content. An example:</p>
<pre><code class="language-javascript">var a; // a is undefined
if (a) {
    console.log(&#39;Something is there.&#39;);
}
</code></pre>
<p>The only scenario where a will be coerced into false even if it has content is when a = 0, so we could change the condition to if (a || a === 0).</p>
<h3 id="lecture-28-default-values">Lecture 28: Default values</h3>
<p>When we use functions with parameters, if we don&#39;t pass the parameters when we call the function, these get initialized to undefined and that&#39;s it.
But there&#39;s a neat trick to override this:</p>
<pre><code class="language-javascript">function greet(name) {
   name = name || &#39;Your name here&#39;;
   console.log(&#39;Hello&#39; + name);
}
greet(&#39;Joan&#39;);
</code></pre>
<p>So, it returns the value that can be coerced into true. So if we call greet() without any parameters, &#39;Your name here&#39; will be reddened because it can be coerced to true.</p>
<p>Note: in ES6 there&#39;s a new way to do this...</p>
<h3 id="lecture-29-framework-default-values">Lecture 29: Framework default values</h3>
<p>Let&#39;s imagine we have two libraries (lib1.js and lib2.js) that we are loading beside our app.js.
Both libraries are declaring a variable called libraryName and set it to &#39;Lib 1&#39; and &#39;Lib 2&#39; respectively. The problem here is that when we output that variable from app.js, the result will be &#39;Lib 2&#39; because it overrides the previous one. To avoid this, what most libraries do is to assign the object to the global window object ONLY if there&#39;s nothing there:</p>
<p><code>window.libraryName = window.libraryName || &#39;Lib 2&#39;;</code></p>
<h3 id="lecture-30-objects-and-functions">Lecture 30: Objects and functions</h3>
<p>In other languages, objects and functions are different, but in Javascript, they are very much the same.</p>
<p>An object is a collection of values that are given names. An object can have properties and methods. Properties can be primitives (like booleans, numbers, etc). The property can also be another object and the methods are the functions that the object have.</p>
<p>We can create an object like this (there are better ways of doing it, but for the moment let&#39;s do it like this):</p>
<p><code>var person = new Object();</code></p>
<p>To create a primitive (a string) using a computed member access:</p>
<p><code>person[&quot;firstname&quot;] = &quot;Joan Mira&quot;;</code></p>
<p>The brackets are an operator that looks for that property in the person object. This is useful if we need to precompose the name of the member property.</p>
<p>We can also store the primitive name in a variable and use it to locate that primitive in the object:</p>
<pre><code class="language-javascript">var firstNameProperty = &quot;firstname&quot;;
console.log(person[firstNameProperty]);
</code></pre>
<p>We can also use the &#39;.&#39; operator to access the member primitive (which is the recommended way):</p>
<p><code>console.log(person.firstname);</code></p>
<p>We can also create an object sitting inside the person object:</p>
<pre><code class="language-javascript">person.address = new Object();
person.address.street = &quot;111 Main St.&quot;;
person.address.city = &quot;London&quot;;
</code></pre>
<h3 id="lecture-31-objects-and-object-literals">Lecture 31: Objects and object literals</h3>
<p>To create object literals, we use curly braces, which is not an operator. It&#39;s just the JS engine assuming that we are creating an object.</p>
<p><code>var person = {};</code></p>
<p>We can also set and initialized properties and methods:</p>
<p><code>var person = { firstname: &#39;Joan&#39;, lastname: &#39;Mira&#39; };</code></p>
<p>It&#39;s also recommended to use white space and put each property on a different line:</p>
<pre><code class="language-javascript">var Joan = {
    firstname: &#39;Joan&#39;,
    lastname: &#39;Mira&#39;,
    address: {
        street: &#39;111 Main St.&#39;,
        city: &#39;London&#39;
    }
};
</code></pre>
<p>And we can pass the object to a function:</p>
<pre><code class="language-javascript">function greet(person) {
    console.log(&#39;Hi &#39; + person.firstname;
}
greet(Joan);
</code></pre>
<p>We can also create objects on the fly:</p>
<pre><code class="language-javascript">greet({
    firstname: &#39;Mary&#39;,
    lastname: &#39;Doe&#39;
});
</code></pre>
<h3 id="lecture-32-faking-namespaces">Lecture 32: Faking namespaces</h3>
<p><strong>Namespace</strong>: a container for variables and functions. Typically to keep variables and functions with the same name separate.</p>
<pre><code class="language-javascript">var greet = &#39;Hello!&#39;;
var greet = &#39;Hola!&#39;;

console.log(greet); // Renders Hola!
</code></pre>
<p>We can prevent that collision by creating containers:</p>
<pre><code class="language-javascript">var english = {};
var spanish = {};

english.greet = &#39;Hello!&#39;;
spanish.greet = &#39;Hola!&#39;;
</code></pre>
<h3 id="lecture-33-json-and-object-literals">Lecture 33: JSON and object literals</h3>
<p>JSON (JavaScript Object Notation) looks a lot to the JS object syntax but let&#39;s not fall into that mistake.</p>
<pre><code class="language-javascript">var objectLiteral = {
    firstname: &#39;Mary&#39;,
    isAProgrammer: true
};
</code></pre>
<p>JSON format:</p>
<pre><code class="language-javascript">{
    &quot;firstname&quot;: &quot;Mary&quot;,
    &quot;isAProgrammer&quot;: true
}
</code></pre>
<p>In JSON, properties need to be wrapped in quotes.</p>
<p>There are also utilities to convert objects into JSON:</p>
<p><code>JSON.stringify(objectLiteral);</code></p>
<p>And to parse them (convert from JSON into JS object):</p>
<p><code>var jsonValue = JSON.parse(&#39;{ &quot;firstname&quot;: &quot;Mary&quot;, &quot;isAProgrammer&quot;: true }&#39;);</code></p>
<h3 id="lecture-34-functions-are-objects">Lecture 34: Functions are objects</h3>
<p><strong>First class functions</strong>: everything you can do with other types you can do with functions. Assign them to variables, pass them around, and create them on the fly.</p>
<p>Functions don&#39;t need a name, they can be anonymous and the code that we write in the function is just one of the properties that we are adding to the function. The special thing is that that property is invocable ();</p>
<p>We have to think of functions as objects, whose code happens to be a property of that object.</p>
<p>It can be moved around, and copied, just like a string or a number or another object.</p>
<pre><code class="language-javascript">function greet() {
    console.log(&#39;hi&#39;);
}

greet.language = &#39;english&#39;;
</code></pre>
<p>Yes! we can add properties to a function. FUNCTIONS ARE OBJECTS.</p>
<h3 id="lecture-35-function-statements-and-function-expressions">Lecture 35: Function statements and function expressions</h3>
<p><strong>Expression</strong>: a unit of code that results in a value. It doesn&#39;t have to save to a variable.</p>
<p>For example (a === 3), that&#39;s an expression.</p>
<p>On the other hand, a statement is something that doesn&#39;t return a value, like for example an &#39;if&#39; statement.</p>
<p>With functions, there&#39;s a similar scenario. The following is a function statement that doesn&#39;t return a value:</p>
<pre><code class="language-javascript">function greet() {
    console.log(&#39;hi&#39;);
}
</code></pre>
<p>On the other hand, this is a function expression:</p>
<pre><code class="language-javascript">var anonymousGreet = function() {
    console.log(&#39;hi&#39;);
}
</code></pre>
<p>We are creating an object on the fly and assigning it to a variable. The difference is that anonymousGreet has the ADDRESS in memory of the anonymous function.</p>
<h3 id="lecture-36-by-value-vs-by-reference">Lecture 36: By value vs by reference</h3>
<p>When talking about assigning the value of a variable to another one, in the case of primitives, JS COPIES the value into a new memory address. This is <strong>by value</strong>.</p>
<p>Now, for objects (all objects), when we are trying to make two the same value, instead of getting a new location in memory, simply point to the same location in memory. There&#39;s no copy. So, two names point to the same address. This is called <strong>by reference</strong>.</p>
<p>When modifying objects, we often hear these two concepts, which sound much more complicated than they are.</p>
<p><strong>Mutable</strong>: to change something
<strong>Immutable</strong>: that cannot be changed</p>
<h3 id="lecture-37-objects-functions-and-this">Lecture 37: Objects, functions and &#39;this&#39;</h3>
<p>If you create a function (even a function expression) in the global context, invoke it and console.log &#39;this&#39; inside that function, you will get the global window as a result.</p>
<p>On the other hand, if we declare a method inside an object and we console.log &#39;this&#39; in that method, we will get as a result the object.</p>
<p>A lot of people think that JS has a bug when we create a new method inside that method from the previous object and use &#39;this&#39; to mutate the object. In this case, &#39;this&#39; will no longer point to the object, but to the global window WTF!</p>
<p>To fix this Bug, we can use this popular trick:</p>
<p><code>var self = this;</code></p>
<p>That will create a reference to the right object scope that we can use to target its properties and methods, so we can communicate from inside the method with other properties and methods of the object.</p>
<h3 id="lecture-38-arrays---collections-of-anything">Lecture 38: Arrays - collections of anything</h3>
<p>Arrays can be defined with = new Array() or using the literal format with brackets []. They can hold collections of anything, even mixing different types!</p>
<h3 id="lecture-39-arguments-and-spread">Lecture 39: &#39;arguments&#39; and spread</h3>
<p><strong>Arguments</strong>: the parameters you pass to a function. Javascript gives you a keyword of that same name that contains them all. Example:</p>
<pre><code class="language-javascript">function greet(firstname, lastname, language) {
    console.log(arguments);
}
</code></pre>
<p>The reserved word arguments will return a pseudo-array with the parameters that the function received.</p>
<h3 id="lecture-40-function-overloading">Lecture 40: Function overloading</h3>
<p>Function overloading is to have another function with the same name but different parameters. In JavaScript, there&#39;s no such functionality, but we can replicate it using other patterns, like conditionals inside the function to return one of the other results.</p>
<h3 id="lecture-41-syntax-parsers">Lecture 41: Syntax parsers</h3>
<p>Javascript reads each word character by character.</p>
<h3 id="lecture-42-dangerous-automatic-semicolon-insertion">Lecture 42: Dangerous! automatic semicolon insertion</h3>
<p>The syntax parser tries to be helpful by not requiring the semicolon at the end of the line. The Javascript is putting them automatically where he thinks they should be. We don&#39;t want the JS engine to be taking those decisions for us. It can cause a BIG problem in our code because it&#39;s very difficult to track.</p>
<h3 id="lecture-43-whitespace">Lecture 43: Whitespace</h3>
<p><strong>Whitespace</strong>: invisible characters that create literal &#39;space&#39; in your written code. Carriage returns, tabs, spaces.</p>
<p>Javascript is quite liberal at accepting whitespace, so we can actually write comments between var and the name of the variables or inside the object literals.</p>
<p>Make your code readable, and understandable. Write comments! Don&#39;t be too bothered with the whitespace.</p>
<h3 id="lecture-44-iifes-immediately-invoked-function-expressions">Lecture 44: IIFEs (Immediately Invoked Function Expressions)</h3>
<p>We already know that the parenthesis () is used to invoke a function, so that&#39;s basically what we are going to use for IIFEs:</p>
<pre><code class="language-javascript">var greeting = function(name) {
    return &#39;Hello &#39; + name;
}(&#39;John&#39;);

console.log(greeting);
</code></pre>
<p>That&#39;s fine for function expressions, but how can we do IIFEs with normal function statements like this one:?</p>
<pre><code class="language-javascript">function name() {
    return &#39;Hello &#39; + name;
}
</code></pre>
<p>There&#39;s a trick to make the syntax parser think that the function is an expression. We just need to wrap the function in parenthesis. Because they are an operator and we only use them with expressions, the parser treats them as such. Example:</p>
<pre><code class="language-javascript">(function name() {
    var greeting = &#39;Hello&#39;;
    return greeting + &#39; &#39; + name;
}(&#39;John&#39;))
</code></pre>
<p>By the way, we can invoke it before or after the wrapping parenthesis.</p>
<h3 id="lecture-45-iifes-and-safe-code">Lecture 45: IIFEs and safe code</h3>
<p>There are scenarios where a variable (in this case &#39;greeting&#39;) can be defined in two different contexts. So that means, we are not overwriting the greeting variable. They both exist in different contexts.</p>
<pre><code class="language-javascript">var greeting = &#39;Hola&#39;;

(function(name) {
    var greeting = &#39;Hello&#39;;
    return greeting + &#39; &#39; + name;
}(&#39;John&#39;))

console.log(greeting);
</code></pre>
<p>In case we want to pass the global object into the wrapped function, we can do it by passing the window parameter. Remember that objects pass by reference, so we are not copying anything, we are just passing a reference to the global object:</p>
<pre><code class="language-javascript">var greeting = &#39;Hola&#39;;

(function(global, name) {
    var greeting = &#39;Hello&#39;;
    // we can access the global object here
    global.greeting = &#39;Hello&#39;;

    return greeting + &#39; &#39; + name;
}(window, &#39;John&#39;))

console.log(greeting);
</code></pre>
<p>We are just calling it global because we might want to use the code in the server (where there&#39;s no browser).</p>
<h3 id="lecture-46-understanding-closures">Lecture 46: Understanding closures</h3>
<p>This is a notorious topic. It&#39;s vital to understand it to advance in the language.</p>
<pre><code class="language-javascript">function greet(whattosay) {
    return function(name) {
        console.log(whattosay + &#39; &#39; + name);
    }
}

greet(&#39;Hi&#39;)(&#39;Joan&#39;);
</code></pre>
<p>Here we have a function that returns a function. Then we invoke the function and invoke again the returned function. We could also call it like this:</p>
<pre><code class="language-javascript">var sayHi = greet(&#39;Hi&#39;);
sayHi(&#39;Joan&#39;);
</code></pre>
<p>The question is, how is it possible that whattosay still exists in the second function? It should be gone because the context of that function is no longer in the execution stack. Well, that&#39;s possible thanks to closures. The JS engine released the execution context of the first function, but the whattosay value is still hanging around...</p>
<p>So, the execution context might be gone, but the variable is still in memory because the other function still needs it. That&#39;s a closure!</p>
<p>The second function is traversing down the scope chain to find the stuff it needs.</p>
<p>The execution context has closed in its outer variables. Variables that would normally have been referenced anyway, even in their execution contexts are gone. This phenomenon is called closure. It&#39;s not something we create, type or tell JS to do. It&#39;s just a feature of JS. They just happen. The JS engine will always make sure that whatever execution context is running, the variables will be always accessible.</p>
<p>It&#39;s just a feature to make sure that when we run a function, everything works as it should.</p>
<h3 id="lecture-47-understanding-closures-part-2">Lecture 47: Understanding closures [part 2]</h3>
<p>There is a classic example to explain closures:</p>
<pre><code class="language-javascript">function buildFunctions() {
    var arr = [];

    for (var i = 0; i &lt; 3; i++) {
        arr.push(function() {
            console.log(i);
        }
    }

    return arr;
}

var fs = buildFunctions();
fs[0]();
fs[1]();
fs[2]();
</code></pre>
<p>So we are just creating three functions in an array using a for loop. Then we invoked the functions and render i. What would i be?</p>
<p>What we would normally expect is that i would be 1, 2, 3, but then we get all 3s!</p>
<p>So, what&#39;s happening under the hood is that the console.log is not being executed inside the for loop, so by the time we start running the console.log of the functions, the value of i has reached 3.</p>
<p>So, in this case, we still have the i variable in memory but it&#39;s not holding the values that we were expecting.</p>
<p>So how do we fix it to render the numbers we want?
In ES 6, we could use let to create de-scoped variables, but we can also prevent the value of i by creating a new execution context for each of the functions that we are pushing to the array. So we could do that by using IIFEs:</p>
<pre><code class="language-javascript">function buildFunctions2() {
    var arr = [];

    for (var i = 0; i &lt; 3; i++) {
        //let j = i; //ES6 solution
        arr.push(
            (function(j) {
                return function() {
                    console.log(j);
                }
            }(i))
        )
    }

    return arr;
}

var fs2 = buildFunctions2();
fs2[0]();
fs2[1]();
fs2[2]();
</code></pre>
<h3 id="lecture-48-function-factories">Lecture 48: Function factories</h3>
<p>A factory means a function that returns and mixes something for us.</p>
<pre><code class="language-javascript">function makeGreeting(language) {

    return function(firstname, lastname) {

        if (language === &#39;en&#39;) {
            console.log(&#39;Hello &#39; + firstname + &#39; &#39; + lastname);
        }

        if (language === &#39;es&#39;) {
            console.log(&#39;Hola &#39; + firstname + &#39; &#39; + lastname);
        }
    }
}

var greetEnglish = makeGreeting(&#39;en&#39;);
var greetSpanish = makeGreeting(&#39;es&#39;);

greetEnglish(&#39;John&#39;, &#39;Doe&#39;);
greetSpanish(&#39;Laura&#39;, &#39;Diaz&#39;);
</code></pre>
<p>Here we are taking advantage of closures to create a factory that returns functions to greet in different languages. This helps us to avoid passing the same parameters all the time for the desired language.</p>
<h3 id="lecture-49-closures-and-callbacks">Lecture 49: Closures and callbacks</h3>
<pre><code class="language-javascript">function sayHiLater() {

    var greeting = &#39;Hi!&#39;;

    setTimeout(function() {
        console.log(greeting);
    }, 3000);
}

sayHiLater();
</code></pre>
<p>In this case, we are using a closure (the greeting variable) and a first-class function inside the timeout that acts as a function expression. Thanks to the closure, we still have access to the greeting 3 seconds later!</p>
<p>In jQuery, we are also using the same things types of function expressions and first-class functions</p>
<pre><code class="language-javascript">$(&quot;button&quot;).click(function() {
});
</code></pre>
<p><strong>Callback function</strong>: a function you give to another function, to be run when the other function is finished. So the function you call (i.e. invoke), &#39;calls back&#39; by calling the function you gave it when it finishes.</p>
<pre><code class="language-javascript">function tellMeWhenDone(callback) {
    var a = 1000; // some work
    var b = 2000; // some work

    callback(); // the &#39;callback&#39;, it runs the function I gave it!
}

tellMeWhenDone(function() {
    console.log(&#39;I am done!&#39;);
});
</code></pre>
<h3 id="lecture-50-call-apply-and-bind">Lecture 50: Call(), Apply() and Bind()</h3>
<p>All functions have access to a call, apply and bind method.</p>
<p><strong>Call</strong> invokes a function with the scope of the object that we pass and lets us pass comma-separated parameters.</p>
<p><strong>Apply</strong> is the same thing as a call but we pass the parameters as an array. An array is more useful, especially under mathematical circumstances.</p>
<p><strong>Bind</strong> doesn&#39;t invoke the function, it creates a copy of the function we are calling and passes the context of an object.</p>
<pre><code class="language-javascript">var person = {
    firstname: &#39;John&#39;,
    lastname: &#39;Doe&#39;,
    getFullName: function() {
        var fullname = this.firstname + &#39; &#39; + this.lastname;
        return fullname;
    }
}

var logName = function(lang1, lang2) {
    console.log(&#39;Logged: &#39; + this.getFullName());
}
// we can also finish it like this:
// }.bind(person);

var logPersonName = logName.bind(person);
logPersonName(&#39;en&#39;);

logName.call(person, &#39;en&#39;, &#39;es&#39;);
logName.apply(person, [&#39;en&#39;, &#39;es&#39;]);
</code></pre>
<p>With bind, we are creating a new copy of logName and assigning it the execution context of the person. So, the value of &#39;this&#39; will be the correct one rather than the global object.</p>
<p>We can also use call and apply for function borrowing:</p>
<pre><code class="language-javascript">var person2 = {
    firstname: &#39;John&#39;,
    lastname: &#39;Doe&#39;
}

console.log(person.getFullName.apply(person2));
</code></pre>
<p>We can also do function currying. With bind we create a new copy of the function, so what happens if we pass parameters to it?</p>
<p>Giving the parameters sets the permanent values of these parameters when the copy is made.</p>
<pre><code class="language-javascript">function multiply(a, b) {
    return a*b;
}

var multiplyByTwo = multiply.bind(this, 2);
console.log(multiplyByTwo(4));
</code></pre>
<p>So, in this example, the variable &#39;a&#39; will always be a 2, and the 4 will be the second parameter.
If we passed 2 parameters to the bind, then it means those values would always be the same.</p>
<p><strong>Function currying</strong>: creating a copy of a function with some preset parameters. Very useful in mathematical situations.</p>
<h3 id="lecture-51-functional-programming">Lecture 51: Functional programming</h3>
<p>We can think and code in terms of functions. It introduces an approach that you can&#39;t do in other programming languages that don&#39;t have first-class functions.</p>
<pre><code class="language-javascript">var arr1 = [1,2,3];
console.log(arr1);

var arr2 = [];
for (var i=0; i &lt; arr1.length; i++) {
    arr2.push(arr1[i] * 2);
}

console.log(arr2);
</code></pre>
<p>But we can do something better with functions, to be more flexible. In this way, we are segmenting our code more cleanly:</p>
<pre><code class="language-javascript">function mapForEach(arr, fn) {
    var newArr = [];
    for (var i=0; i &lt; arr1.length; i++) {
        newArr.push(
            fn(arr[i])
        )
    };

    return newArr;
}

var arr1 = [1,2,3];
console.log(arr1);

var arr2 = mapForEach(arr1, function(item) {
    return item * 2;
});
console.log(arr2);

var arr3 = mapForEach(arr1, function(item) {
    return item &gt; 2;
});
console.log(arr3);

var checkPastLimit = function(limiter, item) {
    return item &gt; limiter;
}

var arr4 = mapForEach(arr1, checkPastLimit.bond(this, 1));
console.log(arr4);

var checkPastLimitSimplified = function(limiter) {
    return function(limiter, item) {
        return item &gt; limiter;
    }.bind(this, limiter);
}

var arr5 = mapForEach(arr5, checkPastLimitSimplified(1));
console.log(arr5);
</code></pre>
<p>Functional programming is what takes Javascript to the next level.</p>
<h3 id="lecture-52-functional-programming-part-2">Lecture 52: Functional programming [part 2]</h3>
<p><a href="http://underscorejs.org/">Underscore.js</a> library is one of the most famous libraries and it&#39;s a great example of functional programming.</p>
<p>If you open the <a href="http://underscorejs.org/docs/underscore.html">annotated source code</a>, you can see the comments on how the functions of undescore.js are implemented.</p>
<p>There&#39;s another library called <a href="https://lodash.com/">lodash</a> which works like underscore. Some people prefer it over underscore, but the first one was Underscore (which is always more difficult, to be the first one).</p>
<p>Some things we can do with Underscore:</p>
<pre><code class="language-javascript">// underscore
var arr6 = _.map(arr1, function(item) { return item * 3; });
console.log(arr6);

var arr7 = _.filter([2,3,4,5,6,7], function(item) { return item % 2 === 0; });
console.log(arr7);
</code></pre>
<p>So, play with Underscore, learn how it&#39;s done and try to build those utilities by yourself.</p>
<h3 id="end-of-the-first-part">End of the first part</h3>
<p>This is the end of the first part of the course. I hope you enjoyed it and apologies if some of the lectures are not very clear. These are just notes I&#39;m taking while watching the videos. If there&#39;s anything that needs a better explanation, feel free to comment and I will improve it.</p>
<p>The next lectures will be about object-oriented javascript and prototypal inheritance. Stay tuned!</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/javascript-understanding-the-weird-parts/images/javascript-bg.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Site of the year 2015]]></title>
            <link>https://www.joanmira.com/blog/site-of-the-year-2015</link>
            <guid>https://www.joanmira.com/blog/site-of-the-year-2015</guid>
            <pubDate>Sun, 10 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[An inspiring site built with lots of love, attention to detail and patience]]></description>
            <content:encoded><![CDATA[<p>The Awards for design, creativity and innovation on the internet, aka <a href="http://www.awwwards.com">AWWWARDS</a>, have published the <a href="http://www.awwwards.com/annual-awards-2015/">list of nominated projects for 2015</a>. These awards, together with <a href="http://www.thefwa.com/">theFWA</a>, are the maximum awards given on the Internet. You can call them the Oscars and Grammys of the Internet.</p>
<p>Anyway, <strong>I have a favorite</strong> and you probably have seen it before. It&#39;s called <a href="http://species-in-pieces.com/">Species in Pieces</a>. A beautiful CSS-based interactive exhibition by <a href="http://www.bryanjamesdesign.co.uk/">Bryan James</a>.</p>
<p>It&#39;s a remarkable project with a technical difficulty beyond what normal people can imagine, as all the animals have been <strong>hand crafted manually and purely with CSS</strong>. I can see this type of work being recognized in future generations as an example of creative innovation.</p>
<p>Best of luck with that award!</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/site-of-the-year-2015/images/species-in-pieces-mosaic.png" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/site-of-the-year-2015/images/species-in-pieces-mosaic.png" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/site-of-the-year-2015/images/species-in-pieces-mosaic.png" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/site-of-the-year-2015/images/species-in-pieces-mosaic.png" />
          <img class="image" src="/blog/site-of-the-year-2015/images/species-in-pieces-mosaic.png" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/site-of-the-year-2015/images/species-in-pieces.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The best codepens of 2015]]></title>
            <link>https://www.joanmira.com/blog/the-best-codepens-of-2015</link>
            <guid>https://www.joanmira.com/blog/the-best-codepens-of-2015</guid>
            <pubDate>Sat, 09 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[A selection of lovely or useful code examples]]></description>
            <content:encoded><![CDATA[<p>These are the most hearted Pens of 2015. Quite impressive! <a href="http://codepen.io/2015/popular/pens/">http://codepen.io/2015/popular/pens/</a>. If you are a front-end developer, I would recommend you set some time aside to review all these examples. They give a real taste of what&#39;s trending at the moment and the kind of stuff that the browsers support nowadays.</p>
<p>I can see there is a lot of material design look and feel experiments going on, which confirms the UI design buzz that we&#39;ve been hearing last year.</p>
<p>Among all these great examples, I especially liked the animated curved content. Mostly because we built something similar (without the animation) for the Dove project and maybe this animation would have looked great on it.</p>
<iframe height='265' scrolling='no' title='Curved Cut' src='//codepen.io/Hornebom/embed/RNKMrL/?height=265&theme-id=0&default-tab=css,result' frameborder='no' allowtransparency='true' allowfullscreen='true' style='width: 100%; margin-bottom: 30px'>See the Pen <a href='https://codepen.io/Hornebom/pen/RNKMrL/'>Curved Cut</a> by Hornebom (<a href='https://codepen.io/Hornebom'>@Hornebom</a>) on <a href='https://codepen.io'>CodePen</a>.
</iframe>

<p>These navigation animations examples are not very impressive but can be quite useful for small websites or microsites:</p>
<iframe height='265' scrolling='no' title='Navigation Animation' src='//codepen.io/EvyatarDa/embed/waKXMd/?height=265&theme-id=0&default-tab=css,result' frameborder='no' allowtransparency='true' allowfullscreen='true' style='width: 100%; margin-bottom: 30px'>See the Pen <a href='https://codepen.io/EvyatarDa/pen/waKXMd/'>Navigation Animation</a> by StyleShit (<a href='https://codepen.io/EvyatarDa'>@EvyatarDa</a>) on <a href='https://codepen.io'>CodePen</a>.
</iframe>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-best-codepens-of-2015/images/codepen.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Geek life]]></title>
            <link>https://www.joanmira.com/blog/geek-life</link>
            <guid>https://www.joanmira.com/blog/geek-life</guid>
            <pubDate>Fri, 01 Jan 2016 00:00:00 GMT</pubDate>
            <description><![CDATA[Stories of a teen who liked videogames perhaps too much]]></description>
            <content:encoded><![CDATA[<p>Since I was very young, I liked computers and techy stuff; this hobby started at the age of 7 when I visited my cousins from Barcelona. I was amazed by the things the <a href="http://en.wikipedia.org/wiki/Amiga_500">Amiga 500</a> could do and more than anything, I was very jealous of the nearly 1000 videogames that my cousin was able to get for his collection.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/geek-life/images/1.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/geek-life/images/1.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/geek-life/images/1-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/geek-life/images/1-mobile.jpg" />
          <img class="image" src="/blog/geek-life/images/1.jpg" alt="Amiga 500, Monkey Island and Atari 2600" loading="lazy">
        </picture>
        <figcaption>Amiga 500, Monkey Island and Atari 2600</figcaption>
      </figure></p>
<p>During those times, a <a href="http://en.wikipedia.org/wiki/Commodore_64">Commodore 64</a> and an <a href="http://en.wikipedia.org/wiki/Atari_2600">Atari 2600</a> arrived at my home with a cartridge containing 32 games (if I remember well). What a wonderful time... I was constantly visiting neighbors to play <a href="http://en.wikipedia.org/wiki/Super_Sprint">Super Sprint</a> in <a href="http://en.wikipedia.org/wiki/Sinclair_ZX_Spectrum">Spectrum</a>, or the <a href="http://en.wikipedia.org/wiki/The_Secret_of_Monkey_Island">Monkey Island</a> (in black &amp; white) in the PC 286 of the guy on the 5th floor, or playing <a href="http://en.wikipedia.org/wiki/Ghosts_%27n_Goblins">Ghost’n&#39;Goblins</a> in the <a href="http://en.wikipedia.org/wiki/Amstrad_CPC_664">Amstrad 664</a> with  3” floppies! of my schoolmate. At that time, we were patient with the loading times. We just wanted to play games like <a href="http://en.wikipedia.org/wiki/Double_Dragon_%28arcade_game%29">Double Dragon</a> on a green screen, even if we had to wait 15 minutes listening to psychophonies from the Amstrad 464 while loading the game from the cassette.</p>
<p>I believe that the beginning of my <a href="http://en.wikipedia.org/wiki/Geek">geek</a> life started exactly the day of my first communion (in March 1989), when my wise grandmother decided to buy the <a href="http://en.wikipedia.org/wiki/Amstrad_464">Amstrad 464</a> with 400 cassette games from my cousin to give to me. During those years, I was also playing with the famous <a href="http://en.wikipedia.org/wiki/Amstrad_1512">Amstrad PC 1512</a> from my family in Almería. A really good computer that used 5 1/4&#39;&#39; disks. A few years later, my father bought an <a href="http://en.wikipedia.org/wiki/Amstrad_PCW#PCW_8256_and_8512">Amstrad PCW 8256</a> with a printer and green screen. I wasn&#39;t very convinced because there were very few games available on that computer.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/geek-life/images/2.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/geek-life/images/2.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/geek-life/images/2-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/geek-life/images/2-mobile.jpg" />
          <img class="image" src="/blog/geek-life/images/2.jpg" alt="Amstrad CPC 464, Amstrad PCW 8256 and computer discs" loading="lazy">
        </picture>
        <figcaption>Amstrad CPC 464, Amstrad PCW 8256 and computer discs</figcaption>
      </figure></p>
<p>I remember with special love the &quot;Focus&quot; game saloon in Playa San Juan (Alicante), where the 100 pesetas and 25 pesetas coins were wisely changed in favor of the trick with the electric lighter. We used them to generate a spark inside the coins gap to obtain free credits in the arcade machines. I remember authentic classics like the <a href="http://en.wikipedia.org/wiki/Wonder_Boy_%28Arcade%29">Wonder Boy</a>, <a href="http://en.wikipedia.org/wiki/Side_Arms">Side Arms</a>, <a href="http://en.wikipedia.org/wiki/Gun.Smoke">Gun Smoke</a>, <a href="http://en.wikipedia.org/wiki/Legendary_Wings">Legendary Wings</a>, the famous <a href="http://en.wikipedia.org/wiki/Street_Fighter_%28series%29">Street Fighter</a>, <a href="https://en.wikipedia.org/wiki/Hard_Drivin%27">Hard Driving</a>, <a href="https://en.wikipedia.org/wiki/Hammerin%27_Harry">Hammerin’ Harry</a>, <a href="https://en.wikipedia.org/wiki/Vigilante_(video_game)">Vigilante</a>, <a href="http://en.wikipedia.org/wiki/Kung_Fu_%28video_game%29">Kung-Fu Master</a>, <a href="http://en.wikipedia.org/wiki/Road_Fighter">Road Fighter</a>, <a href="http://en.wikipedia.org/wiki/Spy_Hunter">Spy Hunter</a>, <a href="https://en.wikipedia.org/wiki/Track_%26_Field_(video_game)">Track and Field</a>, <a href="https://en.wikipedia.org/wiki/Rush%27n_Attack">Green Beret</a>, <a href="http://en.wikipedia.org/wiki/Contra_%28arcade_game%29">Contra</a>, <a href="https://en.wikipedia.org/wiki/Combat_School">Combat School</a>, <a href="http://en.wikipedia.org/wiki/Lethal_Enforcers">Lethal Enforcers</a>, <a href="http://en.wikipedia.org/wiki/Mortal_Kombat_%28video_game%29">Mortal Kombat</a>, <a href="http://en.wikipedia.org/wiki/Gauntlet_%28arcade_game%29">Gaunlet</a>, <a href="https://en.wikipedia.org/wiki/Enduro_Racer">Enduro Racer</a>, <a href="https://en.wikipedia.org/wiki/Super_Hang-On">Super Hang-on</a>, <a href="https://en.wikipedia.org/wiki/Tetris">Tetris</a>, <a href="http://en.wikipedia.org/wiki/Out_Run">Out Run</a>, <a href="http://en.wikipedia.org/wiki/Altered_Beast">Altered Beast</a>, <a href="http://en.wikipedia.org/wiki/Golden_Axe">Golden Axe</a>, <a href="https://en.wikipedia.org/wiki/Heavyweight_Champ">Heavy Weight Champ</a>, <a href="https://www.arcade-museum.com/game_detail.php?game_id=8986">Passing shot</a>, <a href="http://en.wikipedia.org/wiki/After_Burner">After Burner</a>, <a href="http://en.wikipedia.org/wiki/Fatal_Fury">Fatal Fury</a>, <a href="http://en.wikipedia.org/wiki/Metal_Slug">Metal Slug</a>, <a href="https://en.wikipedia.org/wiki/Super_Sidekicks_(video_game)">Super Sidekicks</a>, <a href="https://en.wikipedia.org/wiki/Windjammers_(video_game)">Windjammers</a>, <a href="http://en.wikipedia.org/wiki/Bubble_Bobble">Bubble Bobble</a>, <a href="http://en.wikipedia.org/wiki/Operation_Wolf">Operation Wolf</a>, <a href="http://en.wikipedia.org/wiki/Rastan_Saga">Rastan</a>, <a href="https://en.wikipedia.org/wiki/Wardner_(video_game)">Wardner</a>, <a href="http://en.wikipedia.org/wiki/Chase_HQ">Chase HQ</a>, <a href="http://en.wikipedia.org/wiki/Cabal_%28arcade_game%29">Cabal</a>, <a href="http://en.wikipedia.org/wiki/Snow_Bros">Snow Bros</a>,... really good times of videogame obsession.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/geek-life/images/3.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/geek-life/images/3.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/geek-life/images/3-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/geek-life/images/3-mobile.jpg" />
          <img class="image" src="/blog/geek-life/images/3.jpg" alt="Bubble Bobble, Outrun and Hang-on" loading="lazy">
        </picture>
        <figcaption>Bubble Bobble, Outrun and Hang-on</figcaption>
      </figure></p>
<p>The SEGA <a href="http://en.wikipedia.org/wiki/Sega_Mega_Drive">Megadrive</a> with <a href="http://en.wikipedia.org/wiki/Sonic_the_Hedgehog_%28Mega_Drive%29">Sonic: the HedgeHog</a> turned me into a proper addict. I recall it cost me around 27.000 pesetas and due to my low income, I wasn&#39;t able to buy a <a href="http://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_System">Super Nintendo</a>. That&#39;s the reason I never played <a href="http://en.wikipedia.org/wiki/The_Legend_of_Zelda">Zelda</a> and other great <a href="http://en.wikipedia.org/wiki/Nintendo">Nintendo</a> games when I was a kid.</p>
<p>However, even if I was very into games, I never stopped studying, although <a href="http://en.wikipedia.org/wiki/Dragon_Ball">Dragon Ball</a>, <a href="https://en.wikipedia.org/wiki/Big_Red_Racing">Big Red Racing</a> and the <a href="http://en.wikipedia.org/wiki/PlayStation">Playstation</a> were constant distractions.</p>
<h3 id="things-ive-felt-passionate-about-at-some-point-in-my-life">Things I&#39;ve felt passionate about at some point in my life</h3>
<p>Matrix, Pcmania, Super Juegos, PC Actual, Pentium, The Day of the Tentacle, Lego, C++, Dragon Ball, Japón, Fast Tracker 2, Amiga 500, Radiohead, Gatitos, Amstrad CPC 464, Linux, Star Wars, Mozart, AI, Google, Sim City, Playmobil. Demoscene, Joao Gilberto, Tokyo, Bonsai, piano, PcFútbol, Yamaha, Nissan, Croquets, Pascal, Death Note, Firefox, Windows 95, french fries, DirectX, Foo fighters, TaekWonDo, Gurbaksh Chahal, Shibuya, CouchSurfing, Meccano, Wayne Dyer, LOTR, Blade Runner, mapex (drumming), Blogs, PhpMyAdmin, Rails, Nihongo, Asia, Paella, Photography, HDR, Breaking Bad, The Wire, acustic guitar, Mega Drive, Karate, Wwoofing, Muse, Mario Kart, Bokeh, Akira Kurosawa, TED, Hasekura Tsunesaga, Coldplay, Time lapse, onsen, Canon D550, Sakamoto Ryuichi…</p>
<h3 id="favorite-games">Favorite games</h3>
<p>Half-Life 1 and 2, Far Cry, ISS Pro Evolution/Winning Eleven, The Dig, Monkey Island, Day of the Tentacle, Indiana Jones in the fate of Atlantis, Full Throttle, Halo, GP500, Need for Speed Underground, Counter-Strike, Medal of Honor, NBA Jam, Fifa 2006, Resident Evil, Lemmings, Sonic, Mario 64, Another World, Flashback, Forza 4.</p>
<h3 id="did-you-know-that">Did you know that...</h3>
<ul>
<li><p>The first RAM module I bought (slot SIMM) was just for 4 MB and cost me 20.000 pesetas! I got it in the summer of 1994 via <a href="http://www.centromail.es">CentroMAIL</a> (from PCMANIA) and used it to play <a href="http://en.wikipedia.org/wiki/Bioforge">Bioforge</a> in my 486 SX 33Mhz with CDROM!</p>
</li>
<li><p>The neighborhood where I grew up was full of kids addicted to video games. We were constantly exchanging games like the <a href="https://en.wikipedia.org/wiki/Doom_(1993_video_game)">DOOM</a>, <a href="http://en.wikipedia.org/wiki/Rise_of_the_Robots">Rise of the Robots</a> or the wonderful <a href="https://en.wikipedia.org/wiki/The_Dig_(video_game)">The Dig</a> (one of my favorite graphic adventures ever).</p>
</li>
</ul>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/geek-life/images/4.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/geek-life/images/4.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/geek-life/images/4-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/geek-life/images/4-mobile.jpg" />
          <img class="image" src="/blog/geek-life/images/4.jpg" alt="The DIG, Shinobi and Captain Comando" loading="lazy">
        </picture>
        <figcaption>The DIG, Shinobi and Captain Comando</figcaption>
      </figure></p>
<ul>
<li><p>Near my home, there was a bar (just crossing the street) and as far as I remember, there was always an arcade machine. I could tell many stories about that place. It was so popular that the fights were constant. Some of the videogames from that place were: <a href="http://en.wikipedia.org/wiki/Captain_Commando">Captain Commando</a>, <a href="http://en.wikipedia.org/wiki/Final_Fight">Final Fight</a>, <a href="https://en.wikipedia.org/wiki/Three_Wonders">Three Wonders</a>, <a href="http://en.wikipedia.org/wiki/Shinobi_series">Shinobi</a> and <a href="http://en.wikipedia.org/wiki/Buster_Bros">Pang</a>.</p>
</li>
<li><p>During my childhood, I only saw one time someone finishing <a href="http://en.wikipedia.org/wiki/Ghosts&#39;n_Goblins">Ghost’n&#39;Goblins</a> in the arcade. It&#39;s very very difficult!</p>
</li>
<li><p>In the bar near my elementary school, they had <a href="http://en.wikipedia.org/wiki/New_Zealand_Story">the arcade with the chicken game</a>... I was rubbish on that game.</p>
</li>
</ul>
<p>Thanks for reading all this! :-)</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/geek-life/images/monkey-island-hero.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Full Stack developers]]></title>
            <link>https://www.joanmira.com/blog/full-stack-developers</link>
            <guid>https://www.joanmira.com/blog/full-stack-developers</guid>
            <pubDate>Thu, 03 Dec 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[The industry is getting more professionalized. It's hard to keep a very high level in all disciplines]]></description>
            <content:encoded><![CDATA[<p>Recently, I started to hear some buzz about full-stack developers and how it&#39;s no longer believable to call yourself such. It&#39;s a topic that I am especially interested in, as I have considered myself one of those for a long time. I will try to explain my thoughts and please, feel free to add yours as well!</p>
<h3 id="huh-what-happened">Huh? What happened?!</h3>
<p>I believe that in the past years, especially since 2010, web development has evolved very quickly. Mostly due to the increasing popularity of web apps and other types of apps that use the Internet in some way. This is great! for humanity in general. We now have a more democratic and competitive environment to showcase our things, buy &amp; sell, interact and communicate, but of course, that comes with a price.</p>
<p>What used to be relatively straightforward from an architectural point of view, has become more complex now. Before 2010, I used to work mainly with open source <a href="https://en.wikipedia.org/wiki/LAMP_(software_bundle)">LAMP software</a> and Adobe Flash / ActionScript. Of course, there were also libraries, plugins and a few frameworks, but nothing compared to the scale of what is available now.</p>
<h3 id="so-how-do-i-call-myself-now">So, how do I call myself now?</h3>
<p>The amount of disciplines within web development has also increased. The separation between front-end and back-end doesn&#39;t even cut it anymore. Nowadays, we are starting to even have to choose an area of expertise within those domains, like Big Data, Game Development, Animation, mobile dev like Cordova or React native, framework-specific / CMS-specific development, and creative technologies (Arduino, Kinect, IoT,...), etc. The size of the projects makes it almost impossible to get involved in all areas of active coding work at the same time. If we consider how quickly things are changing (especially frameworks), it&#39;s also becoming more and more difficult to keep switching between areas of expertise.</p>
<p>In fact, in the following chart, we can appreciate that only 3% of the web development job market is looking for a full-stack developer, while front-end developers are the most desirable at 20%.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/full-stack-developers/images/relative-demand-web-development-jobs-secondary.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/full-stack-developers/images/relative-demand-web-development-jobs-secondary.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/full-stack-developers/images/relative-demand-web-development-jobs-secondary-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/full-stack-developers/images/relative-demand-web-development-jobs-secondary-mobile.jpg" />
          <img class="image" src="/blog/full-stack-developers/images/relative-demand-web-development-jobs-secondary.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure>
<em>Credit: Sundeep Pattem and Olivia Zhao original research for <a href="http://www.skilledup.com/articles/reimagining-the-full-stack-developer">SkilledUp.com</a>.</em></p>
<p>Developers that work on small projects, like WordPress or Drupal websites, of course, you can still define yourself as a full-stack developer, but this is something that will also be threatened by new platforms like <a href="http://ghost.org">Ghost</a>, which implements a more complex stack consisting of Node.js, Express.js, Ember, Grunt, Handlebars, jQuery, Moment.js, etc.</p>
<p>It&#39;s a pity to let go of something that you think you can be competent with, but it&#39;s just not realistic to try to spread yourself too thin. Tasks require time, dedication and attention to detail, so it&#39;s just not possible to do everything (unless you are a prodigy or live with your hands attached to the keyboard).</p>
<h3 id="what-if-i-still-want-to-have-a-go-at-everything">What if I still want to have a go at everything?</h3>
<p>Perhaps the most respectable aspect of people who claim to be full-stack, is that it conveys ambition and determination. The ideal developer should be willing to have a go at learning new things, but also acknowledge when they need help from a specialist in the team.</p>
<p>After all, smaller companies and startups still need full-stack developers. Developers are often forced to acquire new skills when the resources simply aren&#39;t available. The problem for companies desperate to hire these guys is that the real multi-skilled developers are quite hard to find.</p>
<p>On the other hand, for complex projects, it is critical to have at least one person with at least a functional understanding of each of the composite parts who is also capable of connecting various tiers and working with each expert so that a feature can be delivered. In a way, these tier-connecting, bridge-building software architects (who are likely experts in only one or a couple of tiers) are less full-stack developers and much more full-stack integrators.</p>
<p>If you want to have a go (maybe with a side project), one of the most popular full-stack frameworks is <a href="https://en.wikipedia.org/wiki/MEAN">MEAN</a>.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/full-stack-developers/images/mean-stack.png" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/full-stack-developers/images/mean-stack.png" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/full-stack-developers/images/mean-stack.png" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/full-stack-developers/images/mean-stack.png" />
          <img class="image" src="/blog/full-stack-developers/images/mean-stack.png" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure>
<em>Image from <a href="http://www.bacancytechnology.com/mean-js-full-stack-development-solution/">Bacancy Technology</a></em></p>
<p><a href="http://mean.io">MEAN</a> is an opinionated full-stack JavaScript framework that simplifies and accelerates web application development. MEAN stands for MongoDB, ExpressJS, AngularJS, and NodeJS.</p>
<h3 id="conclusion">Conclusion</h3>
<p>So, what do you think? Is it just a matter of labels or are we experiencing dramatic changes in our industry?</p>
<p><em>Featured image from <a href="https://www.packtpub.com/books/content/today-you-are-not-web-developer-if-you-dont-know-javascript">PacktPub</a></em></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/full-stack-developers/images/skill-up-blog_2.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[The Internet's boy: the story of Aaron Swartz]]></title>
            <link>https://www.joanmira.com/blog/the-internets-own-boy-the-story-of-aaron-swartz</link>
            <guid>https://www.joanmira.com/blog/the-internets-own-boy-the-story-of-aaron-swartz</guid>
            <pubDate>Wed, 18 Nov 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Personal review of the movie. Something failed deeply in the system and we ended up losing a very valuable human being]]></description>
            <content:encoded><![CDATA[<p>Yesterday I finished watching the FREE movie &quot;<a href="http://www.imdb.com/title/tt3268458/">The Internet&#39;s own boy: the story of Aaron Swartz</a>&quot; on Netflix. It was touching. I felt frustrated and angry to see what the government can do to destroy someone who believed in a better world.</p>
<p>I also felt very disappointed with how <a href="http://web.mit.edu/">MIT</a> decided not to get involved or do anything to defend Aaron. At the end of the day, MIT is an organization that promotes hacking for learning and innovation! That is so hypocritical of them. There is no excuse, no matter how many favors or money they own. You have to defend your people, especially when there&#39;s a battle of this caliber between a normal person vs a government like the US.</p>
<p>At the end of the movie, I felt like the &quot;old system&quot; is what killed Aaron. Their inability to listen and evaluate the situation with perspective, their prepotency and abuse of power, their fear to lose control... The US and the world have a real problem with transparency and open data. That&#39;s what Aaron was trying to fight for and I believe in his ideals.</p>
<p>I&#39;ve been always interested in copyright and how the Internet is making humanity reconsider what needs to be opened and shared. We have to work towards a world with more transparency, more open data, open software and open governments. That&#39;s how you beat cancer or improve renewable energies. That&#39;s how humanity evolves to a higher level of consciousness. We, the millennials demand this new way of understanding life.</p>
<p>You can <a href="https://www.youtube.com/watch?v=3Q6Fzbgs_Lg&amp;t=5s&amp;ab_channel=Documentaries">watch the movie here</a></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-internets-own-boy-the-story-of-aaron-swartz/images/aaron-swartz.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[My learnings about Big Data]]></title>
            <link>https://www.joanmira.com/blog/my-learnings-about-big-data</link>
            <guid>https://www.joanmira.com/blog/my-learnings-about-big-data</guid>
            <pubDate>Mon, 19 Oct 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Sharing some interesting things I've learned recently]]></description>
            <content:encoded><![CDATA[<p>Hi folks! Yesterday I joined a <a href="https://www.coursera.org/specializations/big-data">course in Coursera regarding Big Data</a>. It is taught by the University of San Diego in California. I thought it would be a good idea to write a blog post about my learnings, so you can have an idea of the type of things you will learn if you decide to enrol as well.</p>
<p>I will keep posting notes here while doing the course, so don&#39;t expect a very organised article until the end!.</p>
<h3 id="week-1-welcome-to-big-data">Week 1: Welcome to Big Data</h3>
<ul>
<li>There&#39;s a huge need for data scientists</li>
<li>90% of the World&#39;s data has been created in the last two years!</li>
<li>In 2009 we had 0.8 ZB of data and in 2020 we will have 20 ZB</li>
<li>It&#39;s growing very rapidly</li>
<li>The majority of Big Data out there is unstructured</li>
<li>It is generated from everywhere around us (mobiles, GPS, etc)</li>
<li>Companies need to capture information about their products, services, customers, pricing, segmentation, social networks, etc, to gain insight from the data</li>
<li>Gather, store and manipulate large amounts of data at the right speed and at the right time</li>
<li>There&#39;s a lot of untapped value in Big Data</li>
<li>Predictive and deep analytics</li>
<li>Come up with answers and improve ROI or try to understand our customers and learn their habits and predict their future behaviours</li>
<li>Functional requirements: collection, integration, organise, analyse (statistical, summary, predictive,..), management, take action, decisions</li>
<li>Big Data stack: analyse then offer some focussed services on top of those analytics</li>
<li>Tools that provide fast, scalable access to the data then push that to the analytics stack</li>
<li>Many different areas of booming new technologies. Crowded and diverse space</li>
<li>Marketing companies are at the forefront</li>
<li>Needs: real-time, scalable, high-performance analytics on large datasets</li>
<li>Bring storage capacity and computational capacity together: Hadoop</li>
<li>Apache Hadoop: open source, low cost, reliable, scalable, distributed computing. From a single server to thousands of machines</li>
<li>Fault-tolerant, flexible environment (structured or unstructured data)</li>
<li>Lower layer: Hadoop Distributed File System (HDFS)</li>
<li>Middle layer: Hadoop MapReduce, a model for large-scale data processing</li>
<li>Top layer: we can have software like Pig, Hive, Mahout, etc to manipulate the data through the MapReduce processes</li>
<li>Minimize data movement</li>
<li>This is how MapReduce works:

      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/content/images/2015/10/mapreduce.png" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/content/images/2015/10/mapreduce.png" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/content/images/2015/10/mapreduce.png" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/content/images/2015/10/mapreduce.png" />
          <img class="image" src="/content/images/2015/10/mapreduce.png" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></li>
<li>We will learn how to submit MapReduce jobs</li>
<li>In Hadoop 2.0 we have YARN, which allows us to do more complex stuff</li>
</ul>
<h3 id="week-2-why-big-data">Week 2: Why Big Data?</h3>
<ul>
<li>Computers are no longer deterministic machines. Not physically available</li>
<li>Bring technologies together to find meaning in large, fast-moving, uncertain data</li>
<li>Before: relational databases. Now: clickstream</li>
<li>Machine data is very fast</li>
<li>Streaming data. IoT. Very fast too</li>
<li>Before: structured datasets. Now: raw, complex, unstructured</li>
<li>Going beyond the data warehouse. SQL? HBase, Hive,...</li>
<li>Expanded &#39;views&#39; of data. Behavioural, Social Media challenge: integration</li>
<li>Find meaning in the chaos: integration, transformation, load</li>
<li>Analytics: simple, advanced, statistical</li>
<li>Predictive dashboards</li>
<li>Parallelised, distributed, optimised</li>
<li>Before: sample, do machine learning, build predictive models, score larger data set. Now: just analyse all data and run models? Exploding sample size</li>
<li>Correlation vs causality. Does not necessarily explain it</li>
<li>New methods from the research community: deep learning, moving beyond flat files to more complex data</li>
<li>Past and present. Before: white-coat PhD expensive tools. Now: data scientist open source tools</li>
<li>Who are data scientists? Need to understand statistics, machine learning, databases, data mining, how to query, order, visualisation,...</li>
<li>Communication skills. Understand the domain.</li>
<li>Ask the right questions that will bring value to the business</li>
<li>Intellectual curiosity, intuition, communication and engagement, presentational skills, creativity, and business savvy. Interact with business analysts.</li>
<li>Data preparation, understanding, modelling</li>
<li>Need to code, create equations</li>
<li>Most successful data scientists have substantial, deep expertise in at least one aspect of data science: statistics, machine learning, Big data, Business communication</li>
<li>Data science is inherently collaborative and creative</li>
<li>Curriculum topics: Data manipulation at scale, Analytics, Communicating results</li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/my-learnings-about-big-data/images/bid-data-cloud.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Detecting the client device easily with device.js]]></title>
            <link>https://www.joanmira.com/blog/detecting-the-client-device-easily-with-device-js</link>
            <guid>https://www.joanmira.com/blog/detecting-the-client-device-easily-with-device-js</guid>
            <pubDate>Thu, 10 Sep 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Quick note regarding device detection on JavaScript]]></description>
            <content:encoded><![CDATA[<p>Do you find yourself creating &quot;isMobile&quot; variables in Javascript quite often? What about manually adding a &quot;mobile&quot; or &quot;tablet&quot; class to the body or the HTML tag? If you fall into that group, pay attention to this! Don&#39;t waste your time anymore. Just use this super useful and easy library called device.js.</p>
<p>Device.js makes it easy to write conditional CSS and/or JavaScript based on the device operating system (iOS, Android, Blackberry, Windows, Firefox OS, MeeGo, AppleTV, etc), orientation (Portrait vs. Landscape), and type (Tablet vs. Mobile).</p>
<p>Device.js will update automatically the classes in the HTML tag based on the device and orientation. Example:</p>
<p><code>&lt;html lang=&quot;en&quot; class=&quot; desktop portrait&quot;&gt;</code></p>
<p>When I change my user agent to iPad iOS 6, it shows:</p>
<p><code>&lt;html lang=&quot;en&quot; class=&quot;ios ipad tablet portrait&quot;&gt;</code></p>
<p>Then you can use those classes to style your website accordingly.</p>
<p>At the same time, on JavaScript, you can access the same information like this:</p>
<pre><code class="language-javascript">device.portrait() === true
device.landscape() === false
device.mobile() === false
device.tablet() === false
device.ipad() === false
device.ipod() === false
device.iphone() === false
device.android() === false
device.androidTablet() === false
device.blackberryTablet() === false
</code></pre>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/detecting-the-client-device-easily-with-device-js/images/device-js.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Javascript loader with promises]]></title>
            <link>https://www.joanmira.com/blog/javascript-loader-with-promises</link>
            <guid>https://www.joanmira.com/blog/javascript-loader-with-promises</guid>
            <pubDate>Sat, 04 Jul 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[An interesting technique to load external JavaScript files dynamically]]></description>
            <content:encoded><![CDATA[<p>A few days ago, while refactoring this website, I came across <a href="http://liamnewmarch.co.uk/promises/">an interesting technique</a> to load JS scripts using promises. My objective was to load the home page game scripts only on desktop devices (to minimize the loading impact on mobiles).</p>
<p>The device detection part can be done like this:</p>
<pre><code class="language-javascript">isMobile: function() {
    var isMobile = false;
    if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) isMobile = true;

    return isMobile;
}
</code></pre>
<p>While the script loading can be done in a sequence or all at once using the following script:</p>
<pre><code class="language-javascript">promises: [],
loadScript: function(url, parallel) {

    var promise = new Promise(function(resolve, reject) {

        var script = document.createElement(&#39;script&#39;);
        script.src = url;

        script.addEventListener(&#39;load&#39;, function() {
              resolve(script);
        }, false);

        script.addEventListener(&#39;error&#39;, function() {
              reject(script);
        }, false);

        document.body.appendChild(script);
    });

    if (parallel) utils.promises.push(promise);
        else return promise;
    },

    allLoaded: function(callback) {
        Promise.all(utils.promises).then(callback);
    }
}
</code></pre>
<p>And this is how I would load the scripts:</p>
<pre><code class="language-javascript">JM_MODULES.utils.loadScript(&#39;//cdn.jsdelivr.net/phaser/2.2.2/phaser.min.js&#39;, false).then(function() {
    return JM_MODULES.utils.loadScript(&#39;/assets/js/starpach.js&#39;, false);
}).then(function() {
    JM_MODULES.starpach.init();
});
</code></pre>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/javascript-loader-with-promises/images/load-script.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Bikesafe in London]]></title>
            <link>https://www.joanmira.com/blog/bikesafe-in-london</link>
            <guid>https://www.joanmira.com/blog/bikesafe-in-london</guid>
            <pubDate>Thu, 28 May 2015 00:00:00 GMT</pubDate>
            <description><![CDATA[Improving my driving style thanks to advice from the British police]]></description>
            <content:encoded><![CDATA[<p>Hey, biker friends, how&#39;s life? Do you have any trips planned for this summer?</p>
<p>Today I spent the day with some bikers from the <a href="http://content.met.police.uk/Home">Metropolitan Police</a> in London, who organize a motorcycle safety course called <a href="http://www.bikesafe-london.co.uk/">Bikesafe</a>.</p>
<p>First, we had a theoretical session, in which they explained to us, with videos and examples on a blackboard, the most common accidents (when a car does not see you and crosses in front of you).</p>
<p>Then we went for lunch at <a href="http://www.frankieandbennys.com/">Franky &amp; Benny&#39;s</a> with the motorcycles (food included). A short ride. Each instructor was assigned two riders, who took turns to ride at the head of the group. In this way, the instructor could observe the riding style of the leading rider.</p>
<p>After lunch, we went through the roads of <a href="http://en.wikipedia.org/wiki/Essex">Essex</a> (region east of London) with many curves. It was an hour and a half ride with quite a lot of speed changes and interesting &quot;lay downs&quot; in the curves.</p>
<p>To finish, we went back to <a href="http://www.jacklilley.com/">Jack Lilley&#39;s Triumph dealer</a> where we had had the theory class. There they gave us a pack with some goodies (including a book on advanced motorcycle riding) and told us how we had done during the day.</p>
<p>In short, it was a great experience that I recommend to all bikers living in the UK.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/bikesafe-in-london/images/bikesafe.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Tutorial: how to build a multi-player quiz app with Sails.js]]></title>
            <link>https://www.joanmira.com/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js</link>
            <guid>https://www.joanmira.com/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js</guid>
            <pubDate>Sat, 29 Nov 2014 00:00:00 GMT</pubDate>
            <description><![CDATA[My personal experience working with Socket.io and this new full-stack framework]]></description>
            <content:encoded><![CDATA[<style>
.left .gatsby-resp-image-wrapper {
  float: right;
  margin-left: 30px !important;
  margin-bottom: 30px;
  width: 178px;
}
</style>

<p><a class="btn external" role="button" href="http://quizwars.herokuapp.com/" target="_blank">Launch QuizWars App</a>
<a class="btn github" role="button" href="https://github.com/gazpachu/quizwars" target="_blank">Source code</a></p>
<h3 id="1-introduction">1. Introduction</h3>
<p>This tutorial intends to explain how to build a game like <a href="http://quizwars.herokuapp.com">Quiz Wars</a> with the MVC <a href="http://sailsjs.org">Sails.js</a> framework. Quiz Wars is a real-time multi-player responsive web app to solve quizzes. The aim is to be the quickest answering quiz questions and win against other players. It has been developed trying to follow the Sapient Dev Standards as much as possible, with a mobile-first approach in mind and a module pattern structure for the frontend. Currently, it&#39;s in the early development stages, but the main user journey to enter and finish a quiz with other players is working in any browser/device.</p>
<h3 id="current-featuresrules">Current features/rules</h3>
<ul>
<li>Flexible and scalable quiz DB based on JSON files (see /assets/data/javascript.json)</li>
<li>User authentication (signup and login) with password encryption</li>
<li>Chat room with system status messaging</li>
<li>Geolocation based on socket IP address (at the moment not working in Heroku)</li>
<li>An unlimited number of players can play at the same time</li>
<li>Minimum 2 players with a &quot;ready&quot; status are required to start a quiz</li>
</ul>
<h3 id="future-features">Future features</h3>
<ul>
<li>Support for different chat/quiz rooms</li>
<li>URL-based invites to play a specific quiz</li>
<li>Support for multiple quizzes (at the moment, if a quiz is already running, starting a second quiz would break the first one)</li>
<li>Build a widget to embed quizzes in other websites</li>
<li>Add many more quizzes on different topics: design, photography, business, UX and of course coding!</li>
<li>Add a Pictionary-type feature: one user draws and the others have to guess it</li>
<li>Global user score ranking</li>
<li>Possibility to add teams/clans and competitions</li>
<li>Most popular quizzes list</li>
<li>Improve the chat (ie. &quot;user is typing...&quot;)</li>
</ul>
<h3 id="tech-stack">Tech stack</h3>
<ul>
<li><strong>Backend</strong>: Sails.js (based on Express, Node.js, Waterline ORM and Socket.io)</li>
<li><strong>Frontend</strong>: HTML5, LESS, JavaScript, jQuery, EJS, Bootstrap, Parsley</li>
<li><strong>Tools</strong>: Grunt, Git, Heroku, Bitbucket</li>
</ul>
<h3 id="requirements">Requirements</h3>
<p>This tutorial assumes that the reader feels comfortable coding with Javascript, JSON files, HTML, LESS and jQuery.</p>
<h3 id="2-about-sailsjs">2. About Sails.js</h3>
<p>Sails is an MVC framework to manage the whole development pipeline of an application (frontend and backend). It makes it easy to build custom, enterprise-grade Node.js apps. It is designed to emulate the familiar MVC pattern of frameworks like Ruby on Rails, but with support for the requirements of modern apps: data-driven APIs with a scalable, service-oriented architecture. It&#39;s especially good for building chat, real-time dashboards, or multiplayer games; but you can use it for any web application project - top to bottom. These are some of its features:</p>
<ul>
<li><strong>It&#39;s 100% Javascript</strong></li>
<li><strong>You can use any database system</strong>: Sails bundles a powerful ORM, Waterline, which provides a simple data access layer that just works, no matter what database you&#39;re using</li>
<li><strong>Auto-generate REST APIs</strong>: Sails comes with blueprints that help jumpstart your app&#39;s backend without writing any code</li>
<li><strong>Easy WebSocket Support</strong>: Sails translates incoming socket messages for you</li>
<li><strong>Reusable security policies</strong>: Sails provides basic security and role-based access control by default</li>
<li><strong>Frontend agnostic</strong>: Sails is designed to be compatible with any frontend strategy; whether it&#39;s Angular, Backbone, iOS/ObjC, Android/Java, Windows Phone, or something else entirely</li>
<li><strong>Flexible asset pipeline</strong>: Sails ships with Grunt- which means your entire frontend asset workflow is completely customizable</li>
</ul>
<h3 id="3-sailsjs-installation">3. Sails.js installation</h3>
<p>Quiz Wars is based on Sails v0.10. Simply <a href="http://sailsjs.org/#/getStarted">follow the official Sails.js tutorial</a> to install Node.js in your preferred operating system.</p>
<p>Once you have Node.js installed, proceed to install Sails.js by typing the following in your console. Note: in Windows you don&#39;t need to use &quot;sudo&quot;</p>
<p><code>sudo npm -g install sails</code></p>
<p>Download or clone the <a href="https://github.com/gazpachu/quizwars">Quiz Wars source code</a> and extract its contents into whatever location you prefer</p>
<p>Note: If you were creating a new Sails.js app with the default folder structure and templates, then you could type:</p>
<p><code>sails new testProject</code></p>
<p>In your console, navigate to the previous folder and type the following to install the dependencies (Node modules). These are defined in &quot;package.json&quot;</p>
<p><code>npm install</code></p>
<p>Once we have all the files and the dependencies downloaded, we can proceed to start the Node server and the app</p>
<p><code>sails lift</code></p>
<p>At this point, if you visit <a href="http://localhost:1337">http://localhost:1337</a> you will see the Quiz Wars running or the default home page if you created a new project</p>
<h3 id="4-sailsjs-folder-structure">4. Sails.js folder structure</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/folder-structure_fqfmgc.png" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/folder-structure_fqfmgc.png" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/folder-structure_fqfmgc.png" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/folder-structure_fqfmgc.png" />
          <img class="image" src="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/folder-structure_fqfmgc.png" alt="Folder structure" loading="lazy">
        </picture>
        <figcaption>Folder structure</figcaption>
      </figure></p>
<ul>
<li><p><strong>/.tmp/public</strong>: where the distribution files are compiled. These files are what we see when we load the website</p>
</li>
<li><p><strong>/api</strong>: <strong>all the backend files</strong>. In the &quot;policies&quot; folder are stored rules for application user access. &quot;responses&quot; contain files like the web server errors (404, 403, 500, etc). We can include in this folder the functions that handle specific tasks like deciding how to manage users with different access levels. It could be done in the controller, but it&#39;s a best practice not to bloat the controllers with a lot of business logic.</p>
</li>
<li><p><strong>/assets/data</strong>: JSON files with the quiz questions</p>
</li>
<li><p><strong>/assets/images</strong>: all the frontend images</p>
</li>
<li><p><strong>/assets/styles</strong>: LESS files</p>
</li>
<li><p><strong>/assets/js</strong>: <strong>all the frontend logic</strong> and its javascript dependencies</p>
</li>
<li><p><strong>/config</strong>: all the configuration files</p>
</li>
<li><p><strong>/tasks</strong>: all the Grunt tasks</p>
</li>
<li><p><strong>/view</strong>: all the HTML markup of our pages</p>
</li>
</ul>
<h3 id="other-important-files">Other important files</h3>
<ul>
<li><strong>&quot;/config/sockets.js&quot;</strong>: this file has two methods, &quot;onConnect&quot; and &quot;onDisconnect&quot;. We use these methods to handle the socket connections</li>
<li><strong>&quot;/config/models.js&quot;</strong>: this file allows us to specify which DB connector we want to use and the way we want to migrate the data</li>
<li><strong>&quot;/config/routes.js&quot;</strong>: this file allows us to connect URLs with views and endpoints to controller methods</li>
</ul>
<pre><code class="language-javascript">module.exports.routes = {
    // HTML Views
    &#39;/&#39;: { view: &#39;index&#39; },
    &#39;/quiz&#39;: { view: &#39;quiz&#39; },

    // Endpoints
    &#39;post /login&#39;: &#39;UserController.login&#39;,
    &#39;post /signup&#39;: &#39;UserController.signup&#39;,
    &#39;/logout&#39;: &#39;UserController.logout&#39;,
};
</code></pre>
<h3 id="5-flow-diagram">5. Flow diagram</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-flow-diagram_bggdcc.png" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-flow-diagram_bggdcc.png" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-flow-diagram_bggdcc.png" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-flow-diagram_bggdcc.png" />
          <img class="image" src="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-flow-diagram_bggdcc.png" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<h3 id="6-architecture-diagram">6. Architecture diagram</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-architecture-diagram_ipzw4b.png" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-architecture-diagram_ipzw4b.png" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-architecture-diagram_ipzw4b.png" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-architecture-diagram_ipzw4b.png" />
          <img class="image" src="/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/quiz-wars-architecture-diagram_ipzw4b.png" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<h3 id="7-the-sitemap-layout-and-the-views">7. The sitemap, layout and the views</h3>
<p>Whenever I build a new project, the first thing that comes to my mind is the sitemap. This elemental document is very important to create a picture in your mind of how is going to be the user journey and how the pages are interconnected. In Quiz Wars, the sitemap is very simple. There are only two views/pages, &quot;index&quot; and &quot;quiz&quot;. The user journey consists of logging into the system or signing up as a new user. Then you get redirected to the quiz page, where you will remain until the end of your session.</p>
<p>By default, Sails is configured to use EJS (Embedded Javascript) as its view engine. The syntax for EJS is highly conventional- if you&#39;ve worked with php, asp, erb, gsp, jsp, etc., you&#39;ll immediately know what you&#39;re doing.</p>
<ul>
<li><strong>&quot;/view/index.ejs&quot;</strong>: this is the homepage, where we have two forms (toggled with jQuery), the login and signup forms. The first form posts data to the &quot;/login&quot; endpoint, which is connected with the &quot;login&quot; method in the &quot;user&quot; controller. The second one posts data to &quot;/signup&quot;, which is connected to the &quot;signup&quot; method in the &quot;user&quot; controller</li>
<li><strong>&quot;view/quiz.ejs&quot;</strong>: this page holds the rest of the available content on the website. There are three panels: the score table, the quiz panel and the chat panel</li>
</ul>
<p>The views make use of <strong>&quot;/view/layout.ejs&quot;</strong>, which is the template that holds the common elements, like the meta and link tags, the body declaration and all the JS dependencies:</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;Quiz Wars&lt;/title&gt;
        &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, maximum-scale=1&quot;&gt;
        &lt;link rel=&quot;stylesheet&quot; href=&quot;/styles/bootstrap.min.css&quot;&gt;
        &lt;link rel=&quot;stylesheet&quot; href=&quot;/styles/importer.css&quot;&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;header id=&quot;logo&quot;&gt;&lt;/header&gt;
        &lt;script src=&quot;/js/dependencies/jquery.min.js&quot;&gt;&lt;/script&gt;
        &lt;script src=&quot;/js/dependencies/parsley.min.js&quot;&gt;&lt;/script&gt;
        &lt;script src=&quot;/js/dependencies/sails.io.js&quot;&gt;&lt;/script&gt;
        &lt;script src=&quot;/js/app.js&quot;&gt;&lt;/script&gt;
        &lt;script src=&quot;/js/user.js&quot;&gt;&lt;/script&gt;
        &lt;script src=&quot;/js/chat.js&quot;&gt;&lt;/script&gt;
        &lt;script src=&quot;/js/quiz.js&quot;&gt;&lt;/script&gt;
        &lt;script src=&quot;/js/events.js&quot;&gt;&lt;/script&gt;
        &lt;%- body %&gt;
    &lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>The layout support is only implemented for the EJS view engine. If you prefer to use a different engine (jade, handlebars, mustache underscore, etc), you can change it in &quot;<strong>/config/views.js</strong>&quot;.</p>
<h3 id="8-the-homepage">8. The homepage</h3>
<p>The homepage contains just two classic HTML forms for logging in to the user or sign him up. The only usual logic is the evaluation of the session to determine if the user is already logged in:</p>
<pre><code class="language-javascript">&lt;% if (req.session.me) { %&gt;
    &lt;a href=&quot;/quiz&quot;&gt;Quiz&lt;/a&gt; | &lt;a href=&quot;/logout&quot;&gt;Logout&lt;/a&gt;
&lt;% } else { %&gt;
  &lt;!-- show the login/signup form --&gt;
&lt;% } %&gt;
</code></pre>
<p>In the code example above, we are evaluating if the session object has the user data or not. We assign the user data to the session after a successful login in <strong>&quot;/api/responses/login.js&quot;</strong> -&gt; req.session.me = user.id;</p>
<p>Another aspect I would like to highlight is the form validation taken care of by <a href="http://parsleyjs.org/">parsleyjs</a>. This is being done by adding attributes to the input fields like <code>data-parsley-trigger=&quot;keyup&quot;</code>, <code>data-parsley-maxlength=&quot;30&quot;</code> or required.</p>
<p>Note: currently there&#39;s no error reporting when the user tries to login with the wrong username/password.</p>
<h3 id="9-the-quiz-page">9. The quiz page</h3>
<p>The markup is quite straight forward. There are <strong>three panels</strong>: the score table <code>&lt;div id=&quot;players-panel&quot;&gt;&lt;/div&gt;</code>, the quiz panel <code>&lt;div id=&quot;quiz-panel&quot;&gt;&lt;/div&gt;</code> and the chat panel <code>&lt;div id=&quot;chat-panel&quot;&gt;&lt;/div&gt;</code>. Again, we only display the contents if the user has an active session, otherwise the user will see the message <em>You are not logged in</em>.</p>
<p>The quiz dropdown contains the names of the JSON files as values:</p>
<pre><code class="language-html">&lt;select id=&quot;quiz-dropdown&quot; class=&quot;form-control&quot;&gt;
  &lt;option value=&quot;javascript.json&quot;&gt;Javascript Quiz&lt;/option&gt;
  &lt;option value=&quot;html5.json&quot;&gt;HTML5 Quiz (not yet ready)&lt;/option&gt;
&lt;/select&gt;
</code></pre>
<p>And the button to restart the quiz, which has a simple page reload: <code>onClick=&quot;window.location.reload()&quot;</code></p>
<h3 id="10-the-user-model">10. The User Model</h3>
<p>In an MVC framework, we have models, views and controllers. The models allow us to define the logic that will interact with our DB. Sails.js uses an ORM (although they prefer to call it &quot;a brand new kind of storage and retrieval engine&quot;) called <a href="https://github.com/balderdashy/waterline">Waterline.</a> It provides a uniform API for accessing stuff from different kinds of databases, protocols, and 3rd party APIs. That means you write the same code to get and store things like users, whether they live in Redis, MySQL, LDAP, MongoDB, or Postgres. Waterline strives to inherit the best parts of ORMs like ActiveRecord, Hibernate, and Mongoose, but with a fresh perspective and emphasis on modularity, testability, and consistency across adapters.</p>
<p>In Quiz Wars, the DB is based on the filesystem (the default method). From a development perspective, it&#39;s great because we don&#39;t need to worry about creating tables and connecting with the DB, plus we can reset the data very easily by selecting the 3rd migration option when lifting the app using &quot;sails lift&quot;. To see the migration options, the &quot;migrate&quot; value has to be commented out in <strong>&quot;/config/models.js&quot;</strong>.</p>
<p>Now, let&#39;s study the User model of Quiz Wars (the only model we need) in <strong>&quot;/api/models/User.js&quot;</strong>:</p>
<pre><code class="language-javascript">module.exports = {
    autosubscribe: [&#39;destroy&#39;],

    attributes: {
        name: {
            type: &#39;string&#39;,
            required: true
        },
        email: {
            type: &#39;email&#39;,
            unique: true,
            required: true
        },
        password: {
            type: &#39;string&#39;,
            required: true,
            minLength: 6
        },
        avatar: {
            type: &#39;string&#39;,
            required: false
        },
        status: {
            type: &#39;string&#39;,
            defaultsTo: &#39;offline&#39;,
            required: false
        },
        score: {
            type: &#39;integer&#39;,
            defaultsTo: 0,
            required: false
        },
        ip: {
            type: &#39;string&#39;,
            required: false
        }
    }
};
</code></pre>
<p>Creating a model feels very similar (conceptually speaking) to creating a new table in a DB. Each attribute can have certain properties, like a type, be unique or required, have a default state, a minimum length, etc. For a full list of attribute properties, you can refer to the <a href="https://github.com/balderdashy/waterline-docs/blob/master/models.md">Waterline Model documentation</a>. Each model serves as an interface to communicate our controllers with our DB.</p>
<p>In this model, we are storing the basic information for each user, being the <strong>status</strong> the most important. A user can have one status at a time and it can be: &quot;<strong>online</strong>&quot;, when the user is connected but it&#39;s not ready to play, &quot;<strong>ready</strong>&quot;, when the user has confirmed that wants to join the next quiz and &quot;<strong>playing</strong>&quot;, when the user is currently playing a quiz game. If the user has an &quot;offline&quot; status, it means that it&#39;s not connected and therefore will not appear on the score/players table.</p>
<p>Aside from the attributes, models also contain the logic to query the DB. In Quiz Wars, we have two methods (in the same file where we have the attributes), signup and attemptLogin:</p>
<pre><code class="language-javascript">signup: function (inputs, cb) {
  var password = inputs.password;
  var hasher = require(&quot;password-hash&quot;);
  password = hasher.generate(password);

  // Create a user
  User.create({
      name: inputs.name,
      email: inputs.email,
      password: password,
      avatar: inputs.avatar
    )
    exec(cb);
},

attemptLogin: function (inputs, cb) {

    // Create a user
    User.findOne({
        email: inputs.email
    })
    .exec(cb);
}
</code></pre>
<p>The &quot;signup&quot; method uses a node module called &quot;password-hash&quot;. This module creates a hash from the password string that we can safely store in the DB. Once our data is ready to be stored, we call the &quot;create&quot; query to store it in the DB. For a complete list of queries that we can use with Waterline, please refer to the <a href="https://github.com/balderdashy/waterline-docs/blob/master/query.md">queries documentation</a>. The create query will fail if the email address is already in the DB due to the &quot;unique&quot; property set in the email attribute.</p>
<p>The &quot;attemptLogin&quot; method tries to find a user in the DB with the same email address as the one passed as a parameter. Notice that the error handling is not included in the model. That&#39;s a job for the controller...</p>
<h3 id="11-the-user-controller">11. The User Controller</h3>
<p>The User controller encapsulates all the application logic between the homepage and quiz page and the User model. All its methods, either call the model to perform a query in the DB, or call a response or emit a socket event. Let&#39;s see them a bit more in detail:</p>
<ul>
<li><strong>login</strong>&gt;: this method basically calls &quot;api/responses/login.js&quot; with the input values from the login form</li>
<li><strong>logout</strong>: we assign null to the session and redirect the user to the homepage</li>
<li><strong>signup</strong>: it calls the signup method from the User model, handles the returned response and redirects the user if the signup is successful</li>
<li><strong>chat</strong>: this emits a socket event with the verb &quot;messaged&quot; and the parameters passed to the function. This message will be received in the frontend by all connected users</li>
<li><strong>status</strong>: this method takes care of updating the status of a given user or a group of users depending if the value of the ID attribute is a number or a string respectively. The process to update a user is: query the DB, i.e. user.find(...) -&gt; loop users, users.forEach(...) -&gt; assign new value, user.status = req.param(&#39;status&#39;) -&gt; save(). After the user is updated in the DB, we emit a socket event to inform the rest of the users. Notice that the error handling has not yet been implemented</li>
<li><strong>start</strong>: emit a socket event to inform the rest of the users that the quiz has started. At the same time, we are sending them a sequence of numbers that correspond to the random indexes of questions that the user who started the quiz generated</li>
<li><strong>score</strong>: a simple method to broadcast to all the sockets connected that a determined user has a new score. At the moment we are not saving the score in the DB, but this will be necessary if we want to implement a persistent ranking</li>
</ul>
<pre><code class="language-javascript">module.exports = {
    login: function (req, res) {

        // See `api/responses/login.js`
        return res.login({
            email: req.param(&#39;email&#39;),
            password: req.param(&#39;password&#39;),
            successRedirect: &#39;/quiz&#39;,
            invalidRedirect: &#39;/&#39;
        });
    },

    logout: function (req, res) {

        req.session.me = null;

        // If this is not an HTML-wanting browser, e.g. AJAX/sockets/cURL/etc.,
        // send a simple response letting the user agent know they were logged out
        // successfully.
        if (req.wantsJSON) {
            return res.ok(&#39;Logged out successfully!&#39;);
        }

        // Otherwise if this is an HTML-wanting browser, do a redirect.
        return res.redirect(&#39;/&#39;);
    },

    signup: function (req, res) {

        // Attempt to signup a user using the provided parameters
        User.signup({
            name: req.param(&#39;name&#39;),
            email: req.param(&#39;email&#39;),
            password: req.param(&#39;password&#39;),
            avatar: req.param(&#39;avatar&#39;),
        }, function (err, user) {
            // res.negotiate() will determine if this is a validation error
            // or some kind of unexpected server error, then call `res.badRequest()`
            // or `res.serverError()` accordingly.
            if (err) return res.negotiate(err);

            // Go ahead and log this user in as well.
            // We do this by &quot;remembering&quot; the user in the session.
            // Subsequent requests from this user agent will have `req.session.me` set.
            req.session.me = user.id;
            req.session.name = user.name;


            // If this is not an HTML-wanting browser, e.g. AJAX/sockets/cURL/etc.,
            // send a 200 response letting the user agent know the signup was successful.
            if (req.wantsJSON) {
                return res.ok(&#39;Signup successful!&#39;);
            }

            // Otherwise if this is an HTML-wanting browser, redirect to /welcome.
            return res.redirect(&#39;/quiz&#39;);
        });
    },

    chat: function (req, res) {
        sails.io.sockets.emit(&quot;chat&quot;, {verb:&quot;messaged&quot;, data:{from: req.param(&#39;sender&#39;), msg: req.param(&#39;msg&#39;)}})
    },

    status: function (req, res) {

        if (typeof req.param(&#39;id&#39;) === &#39;string&#39;) { // We want to change the status of a group of users

            User.find({status: req.param(&#39;id&#39;)}).exec(function(err, users) {
                if (err) {
                    return res.negotiate(err);
                }
                else {
                    users.forEach(function (user) {
                        user.status = req.param(&#39;status&#39;);
                        user.save();
                    });
                }
            });
        }
        else {
            User.findOne({id: req.param(&#39;id&#39;)}).exec(function(err, user) {
                if (err) {
                    return res.negotiate(err);
                }
                else {
                    req.session.me.status = req.param(&#39;status&#39;);
                    user.status = req.param(&#39;status&#39;);
                    user.save();
                }
            });
        }

        sails.io.sockets.emit(&quot;chat&quot;, {verb:&quot;changedStatus&quot;, data:{id: req.param(&#39;id&#39;), status: req.param(&#39;status&#39;)}})
    },

    start: function(req, res) {
        sails.io.sockets.emit(&quot;chat&quot;, {verb:&quot;startQuiz&quot;, data:{user: req.param(&#39;user&#39;), sequence: req.param(&#39;sequence&#39;)}})
    },

    score: function(req, res) {

        User.findOne({id: req.param(&#39;id&#39;)}).exec(function(err, user) {
            if (err) {
                return res.negotiate(err);
            }
            else {
                /*user.score += 1;
                user.save();*/
                sails.io.sockets.emit(&quot;chat&quot;, {verb:&quot;score&quot;, data:{id: req.param(&#39;id&#39;), name: user.name}})
            }
        });
    }
};
</code></pre>
<h3 id="12-the-login-response">12. The login response</h3>
<p>Why do we need to separate this logic from the controller? This might be the first question that comes to your mind and in many cases, that would be preferable.  This example uses a &quot;fat&quot; custom response to demonstrate how we could do it if, for instance, we need the backend to support multiple user roles, with different login behavior. We might need to send back a few different kinds of success/failure codes, with different messages based on the outcome. In that case, it would be most sensible to create a custom version of the logic here rather than in the relevant controller action.</p>
<p>This login function in <code>api/responses/login.js</code> attempts to log in the user verifies that the password from the login form matches the hash in the DB, assigns the user ID and name to the session and handles any possible error/response.</p>
<pre><code class="language-javascript">module.exports = function login(inputs) {
    inputs = inputs || {};

    // Get access to `req` and `res`
    var req = this.req;
    var res = this.res;

    // Look up the user
    User.attemptLogin({
        email: inputs.email
    }, function (err, user) {

        if (err) return res.negotiate(err);
        if (!user) {

            if (req.wantsJSON || !inputs.invalidRedirect) {
                return res.badRequest(&#39;Invalid username/password combination.&#39;);
            }
            return res.redirect(inputs.invalidRedirect);
        }

        var password = inputs.password;
        var hasher = require(&quot;password-hash&quot;);
        if (hasher.verify(password, user.password)) {

            // &quot;Remember&quot; the user in the session
            // Subsequent requests from this user agent will have `req.session.me` set.
            req.session.me = user.id;
            req.session.name = user.name;

            // If this is not an HTML-wanting browser, e.g. AJAX/sockets/cURL/etc.,
            // send a 200 response letting the user agent know the login was successful.
            // (also do this if no `successRedirect` was provided)
            if (req.wantsJSON || !inputs.successRedirect) {
                return res.ok();
            }

            // Otherwise if this is an HTML-wanting browser, redirect to /.
            return res.redirect(inputs.successRedirect);
        }
        else {
            if (req.wantsJSON || !inputs.invalidRedirect) {
                return res.badRequest(&#39;Invalid username/password combination.&#39;);
            }
            return res.redirect(inputs.invalidRedirect);
        }
    });
};
</code></pre>
<h3 id="13-the-socketjs-config-file">13. The socket.js config file</h3>
<p>The file located at <code>/config/socket.js</code> is being used to find out if a user has already a session created. Let&#39;s say you sign up on the page and you have a socket opened. Then for whatever reason, you lose the Internet connection and your sockets get disconnected. When your connection is back and you reload the page, the first method that will be triggered when your socket comes alive again is &quot;onConnect&quot;. Here we will check if your session is already logged in the DB and if that&#39;s the case we will resume your activity as it was before your connection was interrupted.</p>
<p>OnConnect will also subscribe you to watch changes in the User Model, save your IP address and save your data in the session object.</p>
<p>OnDisconnect will set your status to &quot;offline&quot; and broadcast to the rest of the users that you left the app.</p>
<pre><code class="language-javascript">onConnect: function(session, socket) {
    // Proceed only if the user is logged in
    if (session.me) {

        User.findOne({id: session.me}).exec(function(err, user) {

            var socketId = sails.sockets.id(socket);

            user.status = &#39;online&#39;;
            user.ip = socket.handshake.address.address;
            user.save(function(err) {
              // Publish this user creation event to every socket watching the User model via User.watch()
              User.publishCreate(user, socket);
            });

            // Create the session.users hash if it doesn&#39;t exist already
            session.users = session.users || {};

            // Save this user in the session, indexed by their socket ID.
            // This way we can look the user up by socket ID later.
            session.users[socketId] = user;

            // Persist the session
            session.save();

            // Get updates about users being created
            User.watch(socket);

            // Send a message to the client with information about the new user
            sails.sockets.emit(socketId, &#39;hello&#39;, user);
        });
    }
}

onDisconnect: function(session, socket) {
     try {

         if (session.users !== undefined) {

             // Look up the user ID using the connected socket
             var socketId = sails.sockets.id(socket);
             var userId = session.users[socketId].id;

             if (userId) {

                 // Get the user instance
                 User.findOne(userId).exec(function(err, user) {

                     // Set the user offline
                     user.status = &#39;offline&#39;;
                     user.save();

                     // Publish the destroy event to every socket subscribed to this user instance
                     User.publishDestroy(user.id, null, {previous: user});
                 });
             }
         }
     } catch (e) {
          console.log(&quot;Error in onDisconnect: &quot;, e);
     }
}
</code></pre>
<h3 id="14-the-frontend-modules">14. The frontend modules</h3>
<p>The frontend modules are located in <code>/assets/js/</code>. Currently, we have <code>chat.js</code>, <code>events.js</code>, <code>quiz.js</code> and <code>user.js</code>. The entry point for the application is located in <code>app.js</code>. With the current basic approach of the game, we just need one instance of each module running at the same time because a given user can only play one quiz at a time. But if in the future we want to add more features, like multiple chat rooms or private messages, it would be a good idea to refactor the modules to be more flexible.</p>
<h3 id="lets-start-with-appjs">Let&#39;s start with app.js</h3>
<pre><code class="language-javascript">io.socket.on(&#39;connect&#39;, function socketConnected() {
    QW_MODULES.chat.init();
    QW_MODULES.quiz.init();
    QW_MODULES.user.init();
    QW_MODULES.events.init();

    io.socket.on(&#39;hello&#39;, function(data) {

        if (data) {
            window.me = data;

            io.socket.get(&#39;/user&#39;, QW_MODULES.user.updateUserList);
            io.socket.post(&#39;/user/chat&#39;, {sender: &#39;System&#39;, msg: data.name + &#39; joined&#39;});
        }
    });

    io.socket.on(&#39;user&#39;, function messageReceived(message) {

        switch (message.verb) {
            case &#39;created&#39;: QW_MODULES.user.addUser(message.data); break;
            case &#39;destroyed&#39;: QW_MODULES.user.removeUser(message.id); break;
            default: break;
        }
    });

    io.socket.on(&#39;chat&#39;, function messageReceived(message) {

        switch (message.verb) {
            case &#39;messaged&#39;: QW_MODULES.chat.receiveMessage(message.data); break;
            case &#39;changedStatus&#39;: QW_MODULES.chat.updateStatus(message.data); break;
            case &#39;startQuiz&#39;: QW_MODULES.quiz.loadQuiz(message.data); break;
            case &#39;score&#39;: QW_MODULES.chat.updateScore(message.data); break;
            default: break;
        }
    });
});

io.socket.on(&#39;disconnect&#39;, function() {
    io.socket.post(&#39;/user/chat&#39;, {sender: &#39;System&#39;, msg: me.name + &#39; left&#39;});
});
</code></pre>
<p>The first thing you will notice is that we are not using &quot;onReady/onLoad&quot; to start the app. In this case, I&#39;ve decided to use the &quot;connect&quot; event of the socket.io library as the entry point to load everything else. The reason for this is to avoid loading the app before we even have a socket connection. If there&#39;s no socket available for whatever connection issue, then we don&#39;t load the app.
Right from the beginning, we load all the frontend modules prefixed with <code>QW_MODULES</code>. Probably we don&#39;t need all of them on the login/signup page, but that&#39;s part of an optimization stage that it&#39;s not necessary now. The next three functions are socket.io callbacks. We are subscribing to those messages: &quot;hello&quot;, &quot;user&quot; and &quot;chat&quot;. Whenever the backend emits one of those messages, the frontend will receive it. This is called the <a href="http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern">pub/sub pattern</a> (publish/subscribe). In some of these callbacks, we can find that the message has a verb attached. Sails.js automatically creates events for verbs like &quot;created&quot;, &quot;destroyed&quot; and a few more when we interact with the models. In this case, we are calling the addUser and removeUser functions in our frontend user module whenever the backend emits an automatic event when a user is created or destroyed. This is what makes the framework so powerful.</p>
<p>The &quot;hello&quot; callback is triggered when a successful connection is made. If the user reloads the page, it will trigger again. Now, from the front-end we can also emit messages! that&#39;s what we do in lines 13 and 14. The first line uses &quot;get&quot; to retrieve a list of users from the backend API and sends it to the updateUserList method in the frontend user module. Sails.js generates automatic JSON views of the controllers and their actions that are accessible by the URL that matches the name of the controller &amp; action:</p>
<ul>
<li>&quot;User&quot; controller, &quot;index&quot; action -&gt; /user</li>
<li>&quot;User&quot; controller, &quot;chat&quot; action -&gt; /user/chat</li>
</ul>
<p>You can try it yourself. Login to Quiz Wars and visit <a href="http://localhost:1337/user">http://localhost:1337/user</a></p>
<p>The next callback, &quot;chat&quot;, is used to update the gameplay and the chat messages. Honestly, instead of &quot;chat&quot; we could have called it &quot;quiz&quot; or &quot;game&quot;... Its main purpose is to act as a virtual router that redirects messages to the right frontend function.</p>
<p>Sadly, the &quot;disconnect&quot; callback is not working :-( I&#39;m not sure why. I&#39;ve tried to put it inside the &quot;connect&quot; function but it didn&#39;t work. Please let me know if you make it work. We are using it to display a message in the chat room when the user leaves the app.</p>
<h3 id="the-user-module">The user module</h3>
<p>This module is quite self-explanatory. &quot;addUser&quot; and &quot;removeUser&quot; take care of updating the users <code>&lt;table&gt;</code> by adding/removing a <code>&lt;tr&gt;</code> and updating the UI (enabling/disabling the quiz button). The &quot;updateUserList&quot; function resets the table when a new user connects to the app or when someone leaves.</p>
<pre><code class="language-javascript">var QW_MODULES = (function (modules, $) {
    &quot;use strict&quot;;

    var self;

    var user = {

        init: function() {

            self = this;
        },

        // Add a user to the list of available users to play with
        addUser: function(user) {

            var found = false;

            // Check if the user is already in the table
            $(&#39;#status-table tr&#39;).each(function() {
                var hasUser = $(this).attr(&#39;id&#39;);

                if (hasUser !== undefined &amp;amp;&amp;amp; (&#39;user-&#39; + user.id == hasUser)) {
                    found = true;
                }
            });

            if (!found) {
                var $table = $(&#39;#status-table&#39;);
                var ready = (user.id == me.id) ? &#39;&lt;button type=&quot;button&quot; id=&quot;changeStatus&quot; class=&quot;btn btn-default btn-xs&quot;&gt;change&lt;/button&gt;&#39; : &#39;&#39;;
                var row = &#39;&lt;tr id=&quot;user-&#39;+user.id+&#39;&quot;&gt;&lt;td class=&quot;name&quot; data-avatar=&quot;&#39;+user.avatar+&#39;&quot;&gt;&#39;+user.name+&#39;&lt;/td&gt;
                          &lt;td&gt;&lt;img class=&quot;flag&quot; src=&quot;http://api.hostip.info/flag.php?ip=&#39;+user.ip+&#39;&quot; width=&quot;20&quot; height=&quot;14&quot; alt=&quot;&quot;&gt;
                          &lt;span class=&quot;status&quot; data-status=&quot;&#39;+user.status+&#39;&quot;&gt;&#39;+user.status+&#39;&lt;/span&gt;&#39;+ready+&#39;&lt;/td&gt;&lt;td class=&quot;score&quot;&gt;&#39;+user.score+&#39;&lt;/td&gt;&lt;/tr&gt;&#39;;
                $table.append(row);

                QW_MODULES.chat.updateUI();
            }
        },

        // Remove a user from the table of available users to play with, by sending
        // either a user object or a user ID.
        removeUser: function(user) {

            // Get the user&#39;s ID.
            var id = user.id || user;
            var userName = $(&#39;#user-&#39;+id).text();

            // Remove the corresponding element from the users table
            var userEl = $(&#39;#user-&#39;+id).remove();


            QW_MODULES.chat.updateUI();
        },

        // Add multiple users to the users list.
        updateUserList: function(users) {

            $(&#39;#status-table tbody tr&#39;).remove();

            users.forEach(function(user) {

                if ((typeof user.id === &#39;undefined&#39;) || (user.status === &#39;offline&#39;) || (typeof me === &#39;undefined&#39;)) {
                    return;
                }

                self.addUser(user);
            });
        }
    };

    // return as QuizWars Module
    modules.user = user;
    return  modules;

})(QW_MODULES || {}, jQuery);
</code></pre>
<h3 id="the-events-module">The events module</h3>
<p>This module creates all the UI events in the app. They are organized by module: login/signup, user, chat and quiz.</p>
<pre><code class="language-javascript">var QW_MODULES = (function (modules, $) {
    &quot;use strict&quot;;

    var self;

    var events = {

        init: function() {

              // Login / Signup events
              $(&#39;#login-cta&#39;).on(&#39;click&#39;, function() {
                  $(&#39;#login&#39;).show();
                  $(&#39;#signup&#39;).hide();
              });

              $(&#39;#signup-cta&#39;).on(&#39;click&#39;, function() {
                  $(&#39;#login&#39;).hide();
                  $(&#39;#signup&#39;).show();
              });

              // Chat and User events
              $(&#39;#message&#39;).keyup(function (event) {
                  if (event.keyCode == 13) {
                        QW_MODULES.chat.triggerSendButton();
                  }
              });

              $(&#39;#status-table&#39;).on(&#39;click&#39;, &#39;#changeStatus&#39;, function() {
                  var status = &#39;ready&#39;;

                  if ($(this).parent().children(&#39;.status&#39;).attr(&#39;data-status&#39;) === &#39;ready&#39;) {
                        status = &#39;online&#39;;
                  }

                  io.socket.post(&#39;/user/status&#39;, {id: me.id, status: status});
              });

              // Quiz events
              $(&#39;#rules-cta&#39;).on(&#39;click&#39;, function() {
                  $(&#39;#rules&#39;).toggle();
              });

              $(&#39;#startQuiz&#39;).on(&#39;click&#39;, function() {

                  QW_MODULES.chat.writeMessage(&#39;System&#39;, me.name + &quot; started a quiz!&quot;);

                  $(&#39;#quiz-settings&#39;).hide();
                  $(&#39;#questions tr&#39;).remove();

                  io.socket.post(&#39;/user/status&#39;, {id: &#39;ready&#39;, status: &#39;playing&#39;});

                  QW_MODULES.quiz.generateSequence();
              });

              $(&#39;#questions&#39;).on(&#39;click&#39;, &#39;input[name=&quot;answer&quot;]&#39;, function() {
                  if ($(this).attr(&#39;disabled&#39;) !== &#39;disabled&#39;) {
                        QW_MODULES.quiz.checkAnswer();
                  }
              });
        }
    };

    // return as QuizWars Module
    modules.events = events;
    return  modules;

})(QW_MODULES || {}, jQuery);
</code></pre>
<h3 id="the-chat-module">The chat module</h3>
<p>This module takes care of all the interactions that the user makes with the chat system. Notice that we are posting the message to &quot;/user/chat&quot; which corresponds to the Chat action in the User Controller. I&#39;ve just realized that the &quot;updateScore&quot; and function might be a bit out of place in this module; it probably sits better in the Quiz module. Nonetheless, this function updates the score in the players&#39; table and shows the correct answer to the current question.</p>
<pre><code class="language-javascript">var QW_MODULES = (function (modules, $) {
    &quot;use strict&quot;;

    var self;

    var chat = {

        systemMsg: [&#39;I don&#39;t mean to be rude, but you are talking to yourself...&#39;,
                    &#39;Are you sure you want to continue doing this?&#39;,
                    &#39;I have all the time in the world...&#39;,
                    &#39;OK, this is getting weird.&#39;,
                    &#39;Stop it now&#39;,
                    &#39;Please, go and tell somebody to join&#39;,
                    &#39;http://www.itsgoodtotalk.org.uk/therapists&#39;],
        currentMsg: 0,

        init: function() {

              self = this;
        },

        triggerSendButton: function() {

              if ($(&#39;#message&#39;).val() !== &#39;&#39;) {
                  self.sendMessage(me.name, $(&#39;#message&#39;).val());

                  $(&#39;#message&#39;).val(&#39;&#39;);
              }
        },

        writeMessage: function(senderName, message) {

              var textarea = $(&#39;#messages&#39;);
              var currentdate = new Date();
              var message = currentdate.getHours() + &quot;:&quot; + (&#39;0&#39; + currentdate.getMinutes()).slice(-2) + &quot; &quot; + senderName+&#39;: &#39;+message+&#39;n&#39;;
              textarea.append(message);

              // Scroll to the bottom
              if(textarea.length) {
                  textarea.scrollTop(textarea[0].scrollHeight - textarea.height());
              }
        },

        sendMessage: function(senderName, message) {

              if( $(&#39;#status-table tr&#39;).length &gt; 2 ) {
                  io.socket.post(&#39;/user/chat&#39;, {sender: senderName, msg: message});
              }
              else {
                  self.writeMessage(&#39;System&#39;, systemMsg[currentMsg]);

                  if (currentMsg &lt; systemMsg.length -1) currentMsg++;                   else currentMsg = 0;               }         },         receiveMessage: function(data) {               self.writeMessage(data.from, data.msg);         },         updateStatus: function(data) {               var $el = null;               if (typeof data.id === &#39;string&#39;) {                   $el = $(&#39;#status-table&#39;).find(&#39;[data-status=&quot;&#39;+data.id+&#39;&quot;]&#39;);               }               else {                   $el = $(&#39;#status-table&#39;).find(&#39;#user-&#39;+data.id+&#39; .status&#39;);               }               $el.attr(&#39;data-status&#39;, data.status).html(data.status);               me.status = data.status;               self.updateUI();         },         updateUI: function() {               var readyPlayers = 0;               $(&#39;#status-table tr&#39;).each(function() {                   if ($(this).find(&#39;.status&#39;).attr(&#39;data-status&#39;) === &#39;ready&#39;) {                         readyPlayers++;                   }               });               if( readyPlayers &gt; 1 ) {
                  $(&#39;#startQuiz&#39;).removeAttr(&#39;disabled&#39;);
              }
              else {
                  $(&#39;#startQuiz&#39;).attr(&#39;disabled&#39;, &#39;disabled&#39;);
              }
        },

        updateScore: function(data) {

              $(&#39;#question-winner&#39;).html(data.name + &#39; was the quickest to answer correctly&#39;);
              QW_MODULES.quiz.resolveQuestion();

              $(&#39;#status-table tr&#39;).each(function() {
                  var hasUser = $(this).attr(&#39;id&#39;);

                  if (hasUser !== undefined &amp;amp;&amp;amp; (&#39;user-&#39; + data.id == hasUser)) {
                        var newScore = parseInt($(this).find(&#39;.score&#39;).html()) + 1;
                        $(this).find(&#39;.score&#39;).html(newScore);
                  }
              });
        }
    };

    // return as QuizWars Module
    modules.chat = chat;
    return  modules;

})(QW_MODULES || {}, jQuery);
</code></pre>
<h3 id="the-quiz-module">The quiz module</h3>
<p>This module manages all the logic when the quiz starts. The first step is to generate an array of random indexes from the selected JSON file with the quiz questions. This is done by the function &quot;generateSequence&quot;, which loads the JSON via Ajax. Once we know the number of questions in the JSON file, we create a dummy array filled with numbers, from 0 to the total amount of questions. Then we apply the custom function &quot;shuffle&quot; to mix up all the numbers into a new array. Finally, we grab the number of questions that the user chose and we send them to all the players together with the signal to start the quiz.</p>
<p>When all the users receive the signal to start the quiz, the &quot;loadQuiz&quot; function will be triggered, which will load the first question from the sequence from the JSON file and call &quot;setupQuiz&quot; to start the initial countdown.</p>
<p>Once the initial countdown is over, the first question will appear on the screen (see the &quot;startQuiz&quot; case in the &quot;countdownCallback&quot; function). When a new question appears on the screen, a new countdown will also start. This countdown will only stop if any of the players click on the correct answer (see &quot;checkAnswer&quot; function) or the countdown arrives at the end. In both scenarios, the correct answer will be revealed, the score will be updated and the next question loaded.</p>
<p>The &quot;resolveQuestion&quot; function adds the classes to the answers to display the correct and incorrect ones, then it checks if we are at the end of the quiz and if that&#39;s the case it calls the &quot;winner&quot; function. This last function will display the user avatar to the rest of the users and display a button to reload the page and start a new quiz.</p>
<pre><code class="language-javascript">var QW_MODULES = (function (modules, $) {
    &quot;use strict&quot;;

    var self;

    var quiz = {

        jsonData: null,
        questions: [],
        current: 0,
        interval: 0,
        secondsToStart: 5,
        secondsToAnswer: 20,
        secondsToWait: 5,

        init: function() {

              self = this;
        },

        generateSequence: function() {

              // Get the quiz questions from the selected JSON file
              $.getJSON(&#39;/data/&#39; + $(&#39;#quiz-dropdown :selected&#39;).val(), function (obj) {

                  self.jsonData = obj;
                  var size = obj.questions.length;
                  var requestedSize = parseInt($(&#39;#amount&#39;).val());
                  var sequence, dummyArray = [];

                  // Limit the quiz size to the amount of available questions
                  if (requestedSize &gt; size) requestedSize = size;

                  // Get an array with numbers as big as the json file
                  for (var i = 0; i &lt; size; i++) {                         dummyArray[i] = i;                   }                   // Shuffle the array and get a slice of it                   dummyArray = self.shuffle(dummyArray);                   sequence = dummyArray.slice(0, requestedSize);                   io.socket.post(&#39;/user/start&#39;, {user: me.name, sequence: sequence});               });         },         loadQuiz: function(data) {               $(&#39;#quiz&#39;).show();               $(&#39;#changeStatus&#39;).hide();               // Check if we still don&#39;t have the generated sequence of questions               if (self.questions.length === 0) {                   self.questions = data.sequence;               }               if (self.jsonData === null) {                   $.getJSON(&#39;/data/&#39; + $(&#39;#quiz-dropdown :selected&#39;).val(), function (obj) {                         self.jsonData = obj;                         self.setupQuiz(self.jsonData.title);                   });               }               else {                   self.setupQuiz(self.jsonData.title);               }         },         setupQuiz: function(title) {               $(&#39;#quiz-settings&#39;).hide();               $(&#39;#questions tr&#39;).remove();               $(&#39;#title&#39;).html(title);               $(&#39;#progress&#39;).attr(&#39;max&#39;, parseInt($(&#39;#amount&#39;).val()));               self.countDown($(&#39;#countdown&#39;), self.secondsToStart, &#39;startQuiz&#39;);         },         countDown: function($el, secs, stage) {               clearInterval(self.interval);               self.interval = setInterval(function () {                   if (secs &gt; 0) {
                        $el.html(secs);
                        secs--;
                  }
                  else {
                        $el.html(&#39;&#39;);
                        clearInterval(self.interval);
                        self.countDownCallback(stage);
                  }
              }, 1000);
        },

        countDownCallback: function(stage) {

              switch(stage) {

                  case &#39;startQuiz&#39;: $(&#39;#countdown&#39;).removeClass(&#39;start&#39;);
                                    self.loadQuestion();
                                    break;

                  case &#39;waitTime&#39;: $(&#39;#question-winner&#39;).html(&#39;Nobody answered correctly&#39;);
                                    self.resolveQuestion();
                                    break;

                  case &#39;nextQuestion&#39;: self.loadQuestion();
                                        break;

                  case &#39;winner&#39;: self.winner();
                                  break;
              }
        },

        loadQuestion: function() {

              $(&#39;#question&#39;).html(&#39;&lt;strong&gt;Question: &lt;/strong&gt;&#39; + self.jsonData.questions[self.questions[self.current]].question);
              $(&#39;#questions tr&#39;).remove();

              $.each(self.jsonData.questions[self.questions[self.current]].answers, function (key, value) {
                  $(&#39;#questions&#39;).append(&#39;&lt;tr&gt;&lt;td class=&quot;button&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;answer&quot; value=&quot;&#39; + key + &#39;&quot;&gt;&lt;/td&gt;&lt;td&gt;&#39; + value + &#39;&lt;/td&gt;&lt;/tr&gt;&#39;);
              });

              // Update status and countdown
              $(&#39;#quiz-message&#39;).html(&#39;Seconds remaining to answer: &#39;);
              $(&#39;#question-winner&#39;).html(&#39;&#39;);
              self.countDown($(&#39;#countdown&#39;), self.secondsToAnswer, &#39;waitTime&#39;);
        },

        checkAnswer: function() {

              //This user cannot answer this question anymore
              $(&#39;#questions .button input&#39;).attr(&#39;disabled&#39;, &#39;disabled&#39;);

              var radioButtons = $(&quot;#questions input:radio[name=&#39;answer&#39;]&quot;);
              var selectedAnswer = radioButtons.index(radioButtons.filter(&#39;:checked&#39;));

              var correctAnswer = self.jsonData.questions[self.questions[self.current]].correct_answer;

              if (selectedAnswer &gt;= 0 &amp;amp;&amp;amp; selectedAnswer === parseInt(correctAnswer)) {
                  //We&#39;ve got a winner. Broadcast it!
                  io.socket.post(&#39;/user/score&#39;, {id: me.id});
              }
        },

        resolveQuestion: function() {

              $(&#39;#quiz-message&#39;).html(&#39;Next question in... &#39;);
              $(&#39;#questions .button input&#39;).attr(&#39;disabled&#39;, &#39;disabled&#39;);

              var radioButtons = $(&quot;#questions input:radio[name=&#39;answer&#39;]&quot;);
              var selectedAnswer = radioButtons.index(radioButtons.filter(&#39;:checked&#39;));

              var correctAnswer = self.jsonData.questions[self.questions[self.current]].correct_answer;
              $(&#39;#questions tr&#39;).eq(correctAnswer).addClass(&#39;success&#39;);

              if (selectedAnswer &gt;= 0 &amp;amp;&amp;amp; selectedAnswer !== parseInt(correctAnswer)) {
                  $(&#39;#questions tr&#39;).eq(selectedAnswer).addClass(&#39;danger&#39;);
              }

              // Update questions index and gameplay
              var quizQuestions = parseInt($(&#39;#amount&#39;).val());

              if (self.current &lt; quizQuestions) {                   self.current++;                   $(&#39;#progress&#39;).val(self.current);                   if (self.current === quizQuestions) { //We reached the end of the quiz                         self.countDown($(&#39;#countdown&#39;), self.secondsToWait, &#39;winner&#39;);                   }                   else {                         self.countDown($(&#39;#countdown&#39;), self.secondsToWait, &#39;nextQuestion&#39;);                   }               }         },         winner: function() {               $(&#39;#quiz&#39;).hide();               $(&#39;#winner&#39;).show();               var scores = [];               var players = [];               $(&#39;#status-table tbody tr&#39;).each(function() {                   scores.push(parseInt($(this).find(&#39;.score&#39;).html()));                   players.push($(this).find(&#39;.name&#39;).html());               });               var highScore = Math.max.apply(Math, scores);               var scoreIndex = scores.indexOf(highScore);               var isDraw = false;               $(&#39;#status-table tbody tr&#39;).each(function(index) {                   if (parseInt($(this).find(&#39;.score&#39;).html()) === highScore &amp;amp;&amp;amp; scoreIndex !== index) isDraw = true;               });               $(&#39;#winner-image&#39;).removeClass(&#39;no-one-wins&#39;);               $(&#39;#winner-image&#39;).css(&#39;background-image&#39;, &#39;&#39;);               if (highScore &gt; 0) {
                  if (isDraw) {
                        $(&#39;#winner-message&#39;).html(&#39;We have a draw. Well done!&#39;);
                        $(&#39;#winner-image&#39;).addClass(&#39;no-one-wins&#39;);
                  }
                  else {
                        $(&#39;#winner-message&#39;).html(&#39;And the winner is... &lt;strong&gt;&#39; + players[scoreIndex] + &#39;&lt;/strong&gt;!&#39;);
                        $(&#39;#winner-image&#39;).css(&#39;background-image&#39;, &#39;url(&quot;&#39; + $(&#39;#status-table tbody tr&#39;).eq(scoreIndex).find(&#39;.name&#39;).attr(&#39;data-avatar&#39;) + &#39;&quot;)&#39;);
                  }
              }
              else {
                  $(&#39;#winner-message&#39;).html(&#39;And the winner is... &lt;strong&gt;no one&lt;/strong&gt; :-(&#39;);
                  $(&#39;#winner-image&#39;).addClass(&#39;no-one-wins&#39;);
              }
        },

        shuffle: function(o) {
              //+ Jonas Raoni Soares Silva
              //@ http://jsfromhell.com/array/shuffle [v1.0]
              for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
              return o;
        }
    };

    // return as QuizWars Module
    modules.quiz = quiz;
    return  modules;

})(QW_MODULES || {}, jQuery);
</code></pre>
<h3 id="15-conclusions">15. Conclusions</h3>
<p>My experience with Sails.js has been very positive and I recommend everyone interested in real-time multi-user applications start a project and discover all its virtues. The learning curve is very mild and all the codebase is very well commented, with references to other files when necessary. Everything in the framework is clear, without redundant files that otherwise would end up bloating it and making it more difficult to understand. The only aspect that is not as good as one might like is the documentation and the community. There&#39;s a <a href="http://stackoverflow.com/tags/sails.js/hot">stack overflow section for Sails.js</a> with a few interesting topics. It&#39;s a very new framework and we hope that in a near future there will be more resources available. Nonetheless, that is a minor consideration, at least for small projects.</p>
<p>I would be glad to answer any questions or try to help to resolve any issue you might face during the installation process, so please don&#39;t hesitate to let me know. At the same time, I am very open to hearing about improvements or mistakes in the code, but please bear in mind that this example is not intended to be a completed/final product. There are still many features that need to be refined or included.</p>
<p>Many thanks for your time and I hope you have a great time in the exciting world of Node.js! ^_^</p>
<h3 id="16-credits">16. Credits</h3>
<p>My research has been based on Sails.js official examples, which can be found in <a href="https://github.com/sails101">Sails 101</a> and these two Github projects: <a href="https://github.com/Ajeey/node-sails-chat/">node-sails-chat</a>, <a href="https://github.com/sgress454/sailsChat">sailsChat</a>.</p>
<h3 id="17-updates-and-bugs">17. Updates and bugs</h3>
<p>I have tried running Sails.js on a server with Node.js and Apache, but my experience wasn&#39;t great. The proxy in the apache vhost was adding a big delay in the socket connection. So I don&#39;t recommend running a Node app on a server that is already running Apache. <a href="http://https//www.digitalocean.com/community/tutorials/how-to-create-an-node-js-app-using-sails-js-on-an-ubuntu-vps">More info here</a>.</p>
<p>There&#39;s a bug when selecting a quiz different from the first one and starting it. The selected quiz and amount of questions are not being broadcasted to the connected users.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/tutorial-how-to-build-a-multi-player-quiz-app-with-sails-js/images/desktop-view_ytdkg3.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Searching for Sugar Man]]></title>
            <link>https://www.joanmira.com/blog/searching-for-sugar-man</link>
            <guid>https://www.joanmira.com/blog/searching-for-sugar-man</guid>
            <pubDate>Sat, 16 Feb 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[A brief mention of an inspiring and very musical film.]]></description>
            <content:encoded><![CDATA[<p>It&#39;s been more than a year since I wrote anything on the blog and now I know why... it&#39;s the damn Facebook. It had me hooked, but that&#39;s over now. I have deactivated my account and I hope not to open it again for a long time!</p>
<p>Well, today I&#39;d like to tell you about this movie that I just saw and that has filled me with inspiration and joy. It&#39;s about &quot;Searching for Sugar Man&quot;, the story of Sixto Rodriguez, a folk singer from Detroit who released an album in the 70s but was not successful in the US. I&#39;m not going to tell anything else because, unlike my wife, I prefer to watch a movie knowing practically nothing beforehand. You have to see it!</p>
<p>I liked it so much that when I finished watching it I went directly to Amazon to buy <a href="http://www.amazon.es/gp/product/B008C1WUZ2/ref=s9_simh_gw_p15_d0_i1?pf_rd_m=A1AT7YVPFBWXBL&amp;pf_rd_s=center-2&amp;pf_rd_r=1XC147RMDBQCJXP3GYDV&amp;pf_rd_t=101&amp;pf_rd_p=312235527&amp;pf_rd_i=602357031">the DVD of the movie</a> and <a href="http://www.amazon.es/Cold-Fact-Rodriguez/dp/B001BKVWYG/ref=pd_sim_m_3">the CD of their first album</a> for my father (a great lover of American Folk music).</p>
<p>Rodriguez! you already have one more fan!</p>
<p>You can also get more information at <a href="http://sugarman.org/">Rodriguez&#39;s official website</a></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/searching-for-sugar-man/images/sixto-rodriguez.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[An introduction to mobile development]]></title>
            <link>https://www.joanmira.com/blog/an-introduction-to-mobile-development</link>
            <guid>https://www.joanmira.com/blog/an-introduction-to-mobile-development</guid>
            <pubDate>Thu, 07 Feb 2013 00:00:00 GMT</pubDate>
            <description><![CDATA[To understand the mobile development scene, we must first know who are the present industry leaders and who are the new contenders for 2013/14]]></description>
            <content:encoded><![CDATA[<p>In Q4 2012, the most used mobile operating systems were <strong>Android</strong> (with 68.4% of market share) <strong>and</strong> <strong>iOS</strong> (with 19.4% of market share). Both together grabbed <a href="http://techcrunch.com/2013/01/28/android-ios-grabbed-92-of-global-smartphone-shipments-in-q4-2012-android-undisputed-volume-leader-says-analyst/">92% of the global smartphone shipments</a>. These results make <a href="http://en.wikipedia.org/wiki/Java_(programming_language)">Java</a> (Android) and <a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a> (iOS) <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">two of the most used programming languages for mobile development</a>, but that’s only when we are talking about apps built using the <a href="http://developer.android.com/sdk/index.html">Android SDK</a> or the <a href="https://developer.apple.com/devcenter/ios/index.action">iOS SDK</a>.</p>
<p>The other mobile operating systems already in the market are <a href="http://www.windowsphone.com/en-gb">Windows Phone</a> and <a href="http://global.blackberry.com/blackberry-10.html">Blackberry 10</a>, but their market share is still very small. In the following months we can expect the following releases:</p>
<ul>
<li><a href="http://www.mozilla.org/en-US/firefoxos/">Firefox OS</a> from <a href="http://www.mozilla.org/en-US/firefoxos/">Mozilla</a></li>
<li><a href="http://www.ubuntu.com/devices/phone">Ubuntu Mobile</a> from <a href="http://www.ubuntu.com/devices/phone">Ubuntu</a></li>
<li><a href="https://www.tizen.org/">Tizen</a> from <a href="http://www.linuxfoundation.org/">Linux Foundation</a>, <a href="http://www.samsung.com/">Samsung</a>, <a href="http://www.intel.com/">Intel</a>, <a href="https://www.tizen.org/community">Tizen Community</a></li>
</ul>
<p>You can read more about mobile operating systems <a href="http://en.wikipedia.org/wiki/Comparison_of_mobile_operating_systems">here</a> and <a href="http://en.wikipedia.org/wiki/Mobile_operating_system">here</a></p>
<p><strong>The pros and cons of native coding</strong></p>
<p>The benefits of building native apps are all related to maximum flexibility and performance. All programmers know that using the lowest level programming languages gives you the possibility to tweak the apps, customize them and optimize the code to the maximum level. This is possible because you are working almost directly with the hardware; there are no unnecessary layers of complexity between your code and the device.</p>
<p>The apps that rely heavily on 3D graphics and need to process a lot of data or make intensive use of the <a href="http://en.wikipedia.org/wiki/CPU">CPU</a> are the best candidates for the native code approach.</p>
<p>But flexibility and performance have a price and that is complexity and duplicate <a href="http://en.wikipedia.org/wiki/Codebase">codebases</a>. If you want your native app to be compatible with Android and iOS, then you need to have two different <a href="http://en.wikipedia.org/wiki/Codebase">codebases</a>, which means you have to work double. <a href="http://en.wikipedia.org/wiki/Java_(programming_language)">Java</a> and <a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a> are two very different programming languages, they require completely different programming environments and maintaining the code (<a href="http://en.wikipedia.org/wiki/Refactoring">refactoring</a>) can become expensive for individuals or organizations that don’t have a team of developers working full time in mobile apps.</p>
<p><strong>What are the alternatives?</strong></p>
<p>Luckily or not, there are several companies with products that promise to solve the hassle of having two or more different codebases for the same app. These products allow developers to use <a href="http://en.wikipedia.org/wiki/Api">common APIs</a> to build the apps and then “export” them to native Java (Android), Objective-C code (iOS) or even other platforms like Kindle Fire, Blackberry, Windows Phone, etc:</p>
<ul>
<li><a href="http://www.appcelerator.com/">Appcelerator</a> and its free JavaScript-driven <a href="http://www.appcelerator.com/platform/titanium-platform/">Titanium SDK</a>](<a href="http://www.appcelerator.com/platform/titanium-platform/">http://www.appcelerator.com/platform/titanium-platform/</a>) and <a href="http://www.appcelerator.com/cloud/">Cloud services</a>. They advertise their success with more than <strong>50.000 apps deployed</strong> in the market, <strong>419,000 developers</strong> and customers like eBay, Merck, Mitsubishi Electric, NBC, and PayPal. [Showcase <a href="http://pinterest.com/appcelerator/app-showcase/">of apps</a>. After having tested the platform for several months, I can say that the product certainly works and the learning curve is fairly smooth, which makes the development process quite fun. Although <a href="http://usingimho.wordpress.com/2011/06/14/why-you-should-stay-away-from-appcelerators-titanium/">not everything is as marvelous as they say</a>.</li>
<li><a href="http://www.madewithmarmalade.com/">Marmalade</a> is one of the best game development frameworks out there. Whether you choose to code natively (C++) or take a hybrid (HTML5-native) approach, with Marmalade you can deploy to iOS, Android, BlackBerry, Windows and Mac, as well as selected Smart TVs and (shortly) set-top box platforms as well. Clients: <strong>Electronic Arts, Nokia, Apple, Konami, Google, Square Enix, nVidia, Samsung</strong>, etc. <a href="http://www.madewithmarmalade.com/app-showcase">App showcase</a>.</li>
<li><a href="http://phonegap.com/">Adobe PhoneGap</a> is a free and open-source framework that allows you to create mobile apps using standardized web APIs like HTML5, CSS and JavaScript. They have <strong>400,000 developers</strong> and contributors from IBM, RIM and Microsoft. <a href="http://phonegap.com/app/">App showcase</a>.</li>
<li><a href="http://www.coronalabs.com/products/corona-sdk/">Corona SDK</a> is a well-known framework for mobile game developers. From a single codebase, you can deploy to iOS, Android, Kindle Fire and NOOK. <a href="https://developer.coronalabs.com/showcase">App showcase</a>.</li>
<li><a href="http://xamarin.com/">Xamarin</a> is another company/product to develop apps for iOS, Android and Mac using <a href="http://en.wikipedia.org/wiki/C_Sharp_(programming_language)">C#</a>. They have <strong>230,245 developers</strong> and customers like 3M, Microsoft, VMWare, Accenture, Cisco, AT&amp;T, AOL, Monster and HP. <a href="http://xamarin.com/apps">App showcase</a>.</li>
<li><a href="http://www.shivaengine.com/new-features.html">Shiva3D</a> and <a href="http://unity3d.com/unity/multiplatform/">Unity3D</a> are options more focussed on high-level multiplatform 3D games. <a href="http://www.shivaengine.com/shiva-3d-engine-showcase.html">Shiva showcase</a>. <a href="http://unity3d.com/gallery/made-with-unity/game-list">Unity showcase</a>.</li>
<li><a href="http://www.mosync.com/sdk">MoSync SDK</a> is a less known option that makes it easy to build and compile apps for up to nine different platforms at once, using C/C++ or HTML5/JavaScript, or a combination of both. <a href="http://www.mosync.com/showcase">App showcase</a>.</li>
<li><a href="http://www.biznessapps.com/">Biznessapps</a> and <a href="http://gamesalad.com/">gamesalad</a> are fast and easy solutions for small businesses and simple games with low requirements of custom programming and design. These solutions are <strong>not recommended</strong> for the vast majority of projects due to the limitations of the editors used to build the apps and their lack of flexibility.</li>
<li>For an extended comparison chart of mobile frameworks, please visit <a href="http://www.markus-falk.com/mobile-frameworks-comparison-chart/">this link</a>, <a href="http://en.wikipedia.org/wiki/Multiple_phone_web-based_application_framework">this wiki page</a> or <a href="http://en.wikipedia.org/wiki/Mobile_application_development">this other one</a>.</li>
</ul>
<p><strong>What are the challenges for both, native and non-native apps?</strong></p>
<p>Programming mobile apps are harder than building desktop or web apps. The platform is very new and is getting more and more fragmented, which doesn’t help developers.</p>
<p>For example, <a href="https://en.wikipedia.org/wiki/List_of_Android_smartphones">Android has hundreds of different devices</a> in the market. Some of them have a 3.4’’ screen, others 7’’ or 10’’. Some of them run Android 2.1 and others run Android 4.3. Some of them have 3G, GPS and a 300dpi (dots per inch/pixel density), HD Ready or Full HD screen. The possible combinations are intimidating and the truth is that every single user expects that your app will work flawlessly on his device.</p>
<p><strong>Some important aspects to bear in mind are:</strong></p>
<ul>
<li>Deciding which tool/framework/approach to use is a critical decision that should be carefully thought out before starting any development work</li>
<li>Performance in old devices… the bar has to be set at some point.</li>
<li>Responding quickly and successfully to complaints/bugs/feature requests in the Android Market and App Store. Remember about having duplicate codebases…</li>
<li>Finding the right marketing approach and value for an app (<a href="http://en.wikipedia.org/wiki/Freemium">freemium</a> scheme or ads based). Some marketing strategies require a lot of customization in the code. Make sure to plan everything.</li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/an-introduction-to-mobile-development/images/mob_dev_dwbkru.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The Royal Opera House in numbers 2011/12]]></title>
            <link>https://www.joanmira.com/blog/the-royal-opera-house-in-numbers</link>
            <guid>https://www.joanmira.com/blog/the-royal-opera-house-in-numbers</guid>
            <pubDate>Fri, 26 Oct 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[A look back at last season reveals some fascinating figures]]></description>
            <content:encoded><![CDATA[<p>Post originally published by Chris Shipman on the blog of the Royal Opera Houra (where <a href="/roh">I worked as a Digital Developer</a>).</p>
<p>We’ve been looking at figures for the ROH during 2011/12 and found them so amazing that we thought we should share them.</p>
<ul>
<li><p>7.5+ million engaged globally with the work of the Royal Opera House by attending performances; watching Cinema Season relays, TV and radio broadcasts, online streams or attending BP Summer Big Screens; and by engaging with our Education outreach work.</p>
</li>
<li><p>4.5 million watched BBC Two&#39;s Maestro at the Opera which featured the Orchestra of the Royal Opera House, The Royal Opera Chorus, the Jette Parker Young Artists and the Royal Opera House Youth Opera Company working on and performing Act 2 of Puccini’s La bohème.</p>
</li>
<li><p>2.4 million website users. Online ticket sales increased to 60%.</p>
</li>
<li><p>1 million tuned in to listen to The Royal Opera on BBC Radio 3 as part of the network&#39;s Opera on 3 seasons. Broadcasts included Puccini&#39;s Il trittico, Verdi’s La traviata, Mozart’s Le nozze di Figaro and Wagner’s Die Meistersinger von Nürnberg.</p>
</li>
<li><p>1 million viewed video from Royal Ballet LIVE on the day and in the following five months. Royal Ballet LIVE saw a full day&#39;s work live online and featured Daily Class, interviews and rehearsals.</p>
</li>
<li><p>1 million minutes of our YouTube content is watched each month.</p>
</li>
<li><p>692,608 tickets were sold to 428 performances at the Royal Opera House with 92% capacity. We achieved a break-even position for the 13th successive year.</p>
</li>
<li><p>500,000 were reached through our social media channels including Facebook, Twitter, Google+ and YouTube.</p>
</li>
<li><p>300,000 watched cinema relays of Royal Opera and The Royal Ballet productions in 30 countries around the world. A live screening of La fille mal gardée was the fifth-highest grossing film in the UK on the night of the relay.</p>
</li>
<li><p>27,238 The number of people who took part in Education projects. 21,207 people came to the ROH for the first time through targeted schemes for families, schools, students and isolated older people.</p>
</li>
<li><p>10s of 1000s Attendees of BP Summer Big Screen relays (despite one of the wettest summers for years!).</p>
</li>
<li><p>40% of our audience is under 45.</p>
</li>
<li><p>40% of our tickets are £40 and under.</p>
</li>
<li><p>30% of our tickets are £30 and under.</p>
</li>
</ul>
<p>How did you interact with us during the 2011/12 season? Did you come to a performance in Covent Garden, attend an Education event in Thurrock or come to a Big Screen relay in Glasgow? Let us know – we’d love to know what you particularly enjoyed.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-royal-opera-house-in-numbers/images/roh-numbers.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Churchill beats Spiderman to world record]]></title>
            <link>https://www.joanmira.com/blog/churchill-beats-spiderman-to-world-record</link>
            <guid>https://www.joanmira.com/blog/churchill-beats-spiderman-to-world-record</guid>
            <pubDate>Thu, 25 Oct 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Article originally posted by Duncan McLauchlan in the blog of WCRS, where I worked as a Creative Technologist]]></description>
            <content:encoded><![CDATA[<p>Note: I contributed with my work building the Facebook app for this Churchill campaign.</p>
<p>Churchill has beaten Spiderman to claim the Guinness World Records Record Title for the ‘Most Contributions to a Greeting Card’.  Oh Yes!</p>
<p>To celebrate Churchill’s birthday, Facebook fans were asked to sign the nodding dog’s online birthday card, encouraged by Churchill to break the World Record attempt with a pledge to donate £2,000 to Battersea Dogs &amp; Cats Home, if successful.</p>
<p>An enormous physical card also toured the country collecting birthday messages and signatures at Churchill’s contact centers.</p>
<p>The thousands of online signatures were then manually transferred (we have the sore arms to prove it!) into the gigantic birthday card which, with a total of 4,347 signatures (compared to Spidey’s mere 2,707), was crowned this week as a Guinness World Records record-breaker.</p>
<p>As an added thank you to his fans for their support, Churchill upped his donation to Battersea to £4,347 – that’s £1 for every birthday message Churchill received.</p>
<p>The World Record attempt tops off Churchill’s very busy year which has seen him star in films to celebrate The Oscars and The Proms, and make a celebratory Jubilee mug for which he received a personalized letter from Buckingham Palace.</p>
<p>We could even build a program that captures data at regular intervals from Twitter, Facebook, Flickr, Google+, and Google reviews and store it in our database. This program could also crawl the web searching blog comments and other interesting brand data like logos, awards, statistics, etc.</p>
<p>I believe open data is not enough. We must collect and store brand data to be able to process and deliver great artistic, informative and rich multimedia applications.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/churchill-beats-spiderman-to-world-record/images/churchill.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[If the content is king, data is queen]]></title>
            <link>https://www.joanmira.com/blog/if-content-is-king-data-is-queen</link>
            <guid>https://www.joanmira.com/blog/if-content-is-king-data-is-queen</guid>
            <pubDate>Thu, 13 Sep 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Article originally posted in the blog of WCRS, where I worked as a Creative Technologist]]></description>
            <content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Open_data">Open data</a> has become a very serious topic. Governments and corporations invest a lot of effort in1 developing software to capture, process, store and distribute data (<a href="http://data.gov.uk/">data.gov.uk</a>, <a href="http://data.gov/">data.gov</a>, <a href="https://developers.google.com/products/">Google API</a>, <a href="https://dev.twitter.com/">Twitter API</a>, <a href="http://www.flickr.com/services/api/">Flickr API</a>, <a href="http://developers.facebook.com/">Facebook API</a> etc.), which is then offered back to the community.</p>
<p>Although the neutrality of the Internet is being questioned and threatened by lobbies and governments across the world, we know that <a href="http://en.wikipedia.org/wiki/Open_data">open data</a> is good for the Internet community, but we cannot guarantee for how long it will remain free and public. At the same time, government-employed <a href="http://en.wikipedia.org/wiki/Hacker_%28computer_security%29">hackers</a> and <a href="http://en.wikipedia.org/wiki/Hacktivism">hacktivists</a>](<a href="http://en.wikipedia.org/wiki/Hacktivism">http://en.wikipedia.org/wiki/Hacktivism</a>) like <a href="http://en.wikipedia.org/wiki/Anonymous_%28group%29">Anonymous</a> are increasing their activities on the Internet, sometimes using a <a href="http://en.wikipedia.org/wiki/White_hat_%28computer_security%29">white hat</a> and sometimes a <a href="http://en.wikipedia.org/wiki/Black_hat_hacking#Black_hat">black hat</a>, which makes data vulnerable.</p>
<p>You might think that Internet security and data ownership/freedom are not powerful enough arguments to worry about the future of open data, and you might be right, but I have a second reason… <strong>agility</strong>. Yes, sadly web APIs are known to be slow and some of them have a limit to the amount of data you can request per hour or per day. This makes the development of highly data-based real-time applications not fun. To the point that it can ruin the user experience – making it boring and frustrating.</p>
<p>Last Thursday we had a (so in-Vogue) <a href="http://en.wikipedia.org/wiki/Hackathon">hack evening</a> where, aside from enjoying some Thai food, we attempted to come up with some interesting ideas. One of them, called “<strong>Brand Rank</strong>“, was to build a program to display the social ranking (in Twitter) of the brands we work with versus the ranking of their direct competitors. This application involves the use of a database and an automatic process to feed the tweets in the database every 10 minutes. Once the data is in our domain we could play with it faster and display the results in a more customized and rich manner.</p>
<p>I believe we could make tools such as Brand Rank practical, and obtain a true benefit for our clients, by extracting the emotions of people (the data) from the social media channels of our brands.</p>
<p>Owning the data will give us unlimited power and agility to create bespoke <a href="http://en.wikipedia.org/wiki/Business_intelligence">business intelligence</a> tools that can help us better understand people’s feelings for our clients. We’d also be able to build interfaces and <a href="http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29">mashups</a> to display the sentiments on different platforms like the web, android, iPhone or even offline indoor/outdoor <a href="http://en.wikipedia.org/wiki/Art_installations">art installations</a> and <a href="http://en.wikipedia.org/wiki/Guerrilla_marketing">digital guerrilla / viral marketing</a> actions.</p>
<p>We could even build a program that captures data at regular intervals from Twitter, Facebook, Flickr, Google+, and Google reviews and store it in our database. This program could also crawl the web searching blog comments and other interesting brand data like logos, awards, statistics, etc.</p>
<p>I believe open data is not enough. We must collect and store brand data to be able to process and deliver great artistic, informative and rich multimedia applications.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/if-content-is-king-data-is-queen/images/content_d4zfvf.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Our new website: An update on progress]]></title>
            <link>https://www.joanmira.com/blog/our-new-website-an-update-on-progress</link>
            <guid>https://www.joanmira.com/blog/our-new-website-an-update-on-progress</guid>
            <pubDate>Sun, 12 Feb 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Article originally published by Rob Greig on the blog of the Royal Opera House, where I worked as a Digital Developer]]></description>
            <content:encoded><![CDATA[<h3 id="chief-technology-officer-rob-greig-on-our-forthcoming-new-website">Chief Technology Officer Rob Greig on our forthcoming new website</h3>
<p>Since my last post, there has been a great deal of progress in developing our new and improved website. Like the rest of the team here, I was delighted with the feedback given to my last blog; it’s great to know that we’re on the right track with delivering many of the things you’re looking for.</p>
<p>The focus of the last month has been data, data and more data; we’ve been trying to find the best ways to display all the important information about our performances and productions in a way that makes sense to everyone using it.</p>
<p>A lot of the information you see on our website today has to be manually entered, meaning that we’re limited in how we can present the data, an increased likelihood of mistakes, and a lot of time spent updating for our team. This is also not one project, it&#39;s four; technology, the content, the ticket and e-commerce, and the repurposing of all the content from the old to the new.</p>
<p>Like all the work we do at the Royal Opera House it could not happen without the people who work behind the scenes, so I wanted to introduce you to the dedicated technical team who are making this all happen. We’ll look at the work of the content team in another blog.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-1.jpeg" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-1.jpeg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-1.jpeg" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-1.jpeg" />
          <img class="image" src="/blog/our-new-website-an-update-on-progress/images/roh-progress-1.jpeg" alt="The Royal Opera House development team © ROH 2012" loading="lazy">
        </picture>
        <figcaption>The Royal Opera House development team © ROH 2012</figcaption>
      </figure></p>
<p>Firstly they are the often unsung heroes, the development team of two developers and a manager. Jamie and his small team are building the site from the ground up. Working with reams of data, they’ve recently been building a new more integrated way to reserve a restaurant table - one of the consequences of which is that we won&#39;t be asking for a restaurant deposit on the new site. Other fundamental work includes keeping data open and accessible. This will, for example, impact the way we store and showcase our ever-popular production photography, which will be managed through Flickr.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-2.jpeg" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-2.jpeg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-2.jpeg" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-2.jpeg" />
          <img class="image" src="/blog/our-new-website-an-update-on-progress/images/roh-progress-2.jpeg" alt="The Royal Opera House IT team © ROH 2012" loading="lazy">
        </picture>
        <figcaption>The Royal Opera House IT team © ROH 2012</figcaption>
      </figure></p>
<p>Then there is the Technology team who is working behind the scenes with staff from all over the house to perform a major upgrade of the supporting systems and databases that hold the data and ultimately sell the tickets. Experienced and skilled techies though they are, they’re not your typical IT crowd - including a cellist, an actor, writer, dancer, and an ex-orchestra pit manager. Head of IT Chris and his team have to make sure the behind-the-scenes systems are safe, secure and responsive for both the website and the box office.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-3.jpeg" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-3.jpeg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-3.jpeg" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/our-new-website-an-update-on-progress/images/roh-progress-3.jpeg" />
          <img class="image" src="/blog/our-new-website-an-update-on-progress/images/roh-progress-3.jpeg" alt="POP: the team building our ticketing system © ROH 2012" loading="lazy">
        </picture>
        <figcaption>POP: the team building our ticketing system © ROH 2012</figcaption>
      </figure></p>
<p>We also have a partner in all this; POP will be building the ticketing system and has taken on the formidable challenge of building an online sales system capable of handling our busiest periods without the need for a waiting room. They have a long history of working with arts venues in the UK, previously creating the system that sends you our emails as well as our iPhone ticketing app. They’re currently working on a new select-a-seat tool that will be simpler to use than the current incarnation and works on other devices that don’t support Flash. Their next task is to build single-click purchasing similar to Amazon’s.</p>
<p>After all these developments, I’m sure that your ultimate question is “When is it going to be launched?”, but I’m afraid we’re going to keep you guessing, for now at least. I can tell you that we start our first round of testing in the middle of March. We must get this right; there are always issues with complex new websites, and we want to be sure we give you the best possible experience when we go live.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/our-new-website-an-update-on-progress/images/roh-progress-1.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[Our website: A look forward]]></title>
            <link>https://www.joanmira.com/blog/our-website-a-look-forward</link>
            <guid>https://www.joanmira.com/blog/our-website-a-look-forward</guid>
            <pubDate>Thu, 12 Jan 2012 00:00:00 GMT</pubDate>
            <description><![CDATA[Chief Technology Officer Rob Greig on our forthcoming new website]]></description>
            <content:encoded><![CDATA[<p>Post originally published on the blog of the ROH (where <a href="/roh">I worked as a Digital Developer</a>), London by Rob Greig.</p>
<p>Back in 2001 someone boldly told me that theatergoers would not want to book their tickets via the internet. If there is one thing I have learned, it’s never to underestimate the ability of technology to capture the imagination and change the way we do things. According to legend, even Bill Gates famously said, &quot;The Internet is just a fad&quot;.</p>
<p>The fad didn&#39;t pass and six years ago (a millennium in internet years), we at the Royal Opera House launched our current website. This shiny new website, putting all sorts of exciting new content at the fingertips of the world, quickly became popular. More and more people took to booking online and as a result, unfortunately, the hot ticket often became the slow ticket. This meant that an online waiting room had to be introduced to manage the demand.</p>
<p>When I joined the Royal Opera House in 2009, the website was already feeling a bit old. We spent the next 12 months shoring up the site, improving stability and have experienced relative success. We can now serve 26% more customers online than we could in 2009. However, this is no real consolation to many of us who still have to sit in a virtual waiting room of 2000 fellow audience members queuing for tickets. It has been a source of frustration for everyone who works at the Royal Opera House because we want to provide the best possible service to our audience.</p>
<p>We firmly believe that we should be providing an excellent experience for everyone from the moment someone arrives at our website. This can be tricky when we have to employ a virtual waiting room up to 30 times a year to manage the 50,000 people on the busiest days all trying to buy tickets at the same time. 53% of you now book your tickets online and we’re sure it would be more if our website had the capacity. So we went back to the drawing board and decided to start again with a new website.</p>
<p>Over the past 18 months, we’ve been building a new team with the expertise to create the next improved Royal Opera House online experience and are starting from scratch. We’ve also been listening: taking on board your comments and feedback from emails and letters; on Facebook and Twitter; and from the plethora of excellent blogs maintained by dedicated Ballet and Opera fans. We know things are hard to find, not always accessible and know that tickets need to be simpler and quicker to book.</p>
<p>After an extensive period of planning and preparation based in part on your feedback, we are now building the new site and there is still a lot to do. Unfortunately, I can&#39;t guarantee everyone will get the best seat in the house, but there is light at the end of the tunnel.</p>
<p>Thank you for your patience so far and we look forward to launching our new site and hearing your thoughts. Keep an eye out for more details shortly.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/our-website-a-look-forward/images/roh-forward.jpeg" length="0" type="image/jpeg"/>
        </item>
        <item>
            <title><![CDATA[My Laptop Resurrects, Microsiervos and Romeo and Juliet at the O2 Arena]]></title>
            <link>https://www.joanmira.com/blog/my-laptop-resurrects-microsiervos-and-romeo-and-juliet-in-the-o2-arena</link>
            <guid>https://www.joanmira.com/blog/my-laptop-resurrects-microsiervos-and-romeo-and-juliet-in-the-o2-arena</guid>
            <pubDate>Sun, 19 Jun 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[Some recent joys I wanted to share with you]]></description>
            <content:encoded><![CDATA[<p>This week has been very good. The first good news was on Tuesday when I received the ATI x1400 I had purchased on eBay. I installed it on my late DELL Inspiron 9400, said an Our Father and booted up... I almost had a tear in my eye. The second piece of good news came the next day when I finally managed to finish the article on the 1001 movies to watch before you die. But that&#39;s not the end of the story. I sent it to Alvy from Microsiervos and within half an hour he had already <a href="http://www.microsiervos.com/archivo/peliculas-tv/1001-peliculas-ver.html">published it on the web</a>. What a rush!!!, both emotionally and in terms of visits. In fact, in the first hours after it was published, my server was saturated by the traffic and the web was down. During this week, I have experienced a 400% increase in traffic, with more than 20,000 unique users O_O</p>
<p>To top off the week, on Thursday I went to see Romeo and Juliet at the O2 Arena with Farah, her husband, Tintin, Barbará and Tuesday. It was amazing, especially Tamara Rojo - what a cracker, 37 years old and she moves like she&#39;s 20. Also, I was very surprised by the creativity in the choreography, with scenes like when Carlos Acosta lifts Julieta (already dead). You can tell they are the best dancers in the world.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/my-laptop-resurrects-microsiervos-and-romeo-and-juliet-in-the-o2-arena/images/romeoJuliet_1924249i_kd5wus.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Programmed obsolescence: my laptop has died]]></title>
            <link>https://www.joanmira.com/blog/programmed-obsolescence-my-laptop-is-dead</link>
            <guid>https://www.joanmira.com/blog/programmed-obsolescence-my-laptop-is-dead</guid>
            <pubDate>Mon, 06 Jun 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[A brief history of computers getting old]]></description>
            <content:encoded><![CDATA[<p>What a weekend... as soon as I wake up on Saturday I turn on the computer and I see with horror how my screen fills up with lines and pixels like crazy. I reboot and it gets worse. I reboot again and the screen goes black!!!!!  :*******((((</p>
<p>It was the graphics card, an Nvidia 7900 GS with 256 MB of VRAM. Apparently, the card gets very hot and because the fans of the DELL Inspiron 9400 jump very late, over time the solder joints have been cracking to the point that they no longer make good contact (I have learned this by reading forums of poor unfortunate people like me).</p>
<p>After some research, <a href="http://stuff.thatblogs.com/content/shake-n-bake-fixing-dead-nvidia-7900gs-dell-9400-e1705">I found some crazy people</a> who say that they have fixed their graphics cards by putting them in the oven at 200 degrees for 10 minutes. It may sound crazy, but it makes sense. That way the solder joints reheat and re-solidify fixing the cracks caused by the drastic temperature changes.</p>
<iframe allowfullscreen="" frameborder="0" height="340" src="https://www.youtube.com/embed/vpzpNI7EBa0?feature=oembed" width="100%"></iframe>

<p>My laptop cost me $1,400 in September 2006 and I refuse to give it up for dead. I don&#39;t want to succumb to industry shenanigans to force me to buy a new one. The other day, talking to my friend Ari about this issue, he told me to watch the documentary &quot;programmed obsolescence&quot;. The story of how different industries program their products to stop working when they reach a certain date in their life. Yes, it&#39;s true. It is not an urban legend. It&#39;s consumer society taken to the extreme.</p>
<p>Back to my graphics card... the thing is that I have put it through the oven 3 times and I have not been able to fix it :( I have started to look for options on eBay and I hope I can find a solution soon because I can&#39;t be without a working computer!</p>
<p>I don&#39;t know if it was the death of my PC, but Saturday night I ended up with Alex (my roommate) and his friends. They were having a barbecue and we joined in. We ended up pretty drunk on Tequila, coconut liquor imported from the Philippines and beers everywhere. Sunday was spent hungover watching Oprah and fixing the <a href="/1001-movies-to-watch-before-you-die/">1001-movies-to-watch-before-you-die</a> post. What a job it is!</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/programmed-obsolescence-my-laptop-is-dead/images/dell_dead_nernqd.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Situation in Sendai after the earthquake]]></title>
            <link>https://www.joanmira.com/blog/situation-in-sendai-after-the-earthquake</link>
            <guid>https://www.joanmira.com/blog/situation-in-sendai-after-the-earthquake</guid>
            <pubDate>Sun, 13 Mar 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[How to send money to Japan to help fix the damage from the recent earthquake]]></description>
            <content:encoded><![CDATA[<p>Yesterday I wrote an e-mail to Tae Matsuki (our contact in Sendai). She was the person designated by Sendai City Hall to guide us during our visit, showing us various places of interest and taking us to lunch and dinner on several occasions. Both she and the members of the Miyagi Hispanic Society were extremely kind to Vicente and me and I am glad they are all well. Below I copy the emails we are sending each other:</p>
<h3 id="march-12-2011">March 12, 2011</h3>
<p>Hi Tae,</p>
<p>I hope you are all well. I am so sorry to hear about the earthquake disaster and I am very sorry for you. I imagine you are all overwhelmed with the situation right now. Please let me know if I can do anything to help.</p>
<p>A big hug and lots of encouragement!</p>
<p>Greetings to the friends of the Hispanic association in Sendai.</p>
<p>Joan Mira</p>
<h3 id="march-13-2011">March 13, 2011</h3>
<p>Hi Joan:</p>
<p>Thank you very much for your kind message. Thank God, I and my family members are fine. Although some rooms in the house were damaged, having enough space to sleep and do daily things, we don&#39;t need to take shelter. At my house, on Saturday night, the electricity service was resumed.</p>
<p>Regarding the water supply, from the beginning no problem. The only thing missing is gas. They say it will take a few weeks for the resumption of gas service... Well, I am patient and lucky, because, in other areas of the city, water and electricity are still cut off. I believe that here, downtown, the damage was minimal. So the members of the Miyagi Hispanic Society who received you at dinner will be fine because they also live downtown.</p>
<p>However, in other neighborhoods of the city, hundreds of people are said to have been killed by the tsunami. The problem is that, for the time being, even rescue forces such as the Ground Self-Defense Force cannot get close to these places, due to the pile of rubble and lots of muddy water. For this reason, it will take a long time to know exactly the outcome of this catastrophe.</p>
<p>When the situation calms down, I will tell you more details.</p>
<p>Once again thank you for your kind solidarity, best regards.</p>
<p>Tae</p>
<h3 id="march-13-2011-1">March 13, 2011</h3>
<p>Hi Tae!</p>
<p>I am very glad to hear from you. Everyone is following very closely everything that is happening in Japan and the truth is that your words reassure me a little. I hope you can get back to normal as soon as possible and that the damage is as little as possible.</p>
<p><a href="http://www.facebook.com/notes/h%C3%A9ctor-garc%C3%ADa-puigcerver/as%C3%AD-lo-viv%C3%AD-yo-el-mayor-terremoto-de-la-historia-de-jap%C3%B3n-parte-1/10150116984462662">This article by Héctor</a>, (an alicantino who has been living in Tokyo for several years) I liked it very much. It is a little story of love during the earthquake, narrated in first person. Narrated in first person, it&#39;s very touching! I hope you like it.</p>
<p>Please Tae, send me when you can more information about how the situation evolves and some photos (if you can). If you know of any bank account number or way we can show solidarity with those affected, I&#39;m sure some of the followers of La Ruta Samurai will be interested to know.</p>
<p>On <a href="http://www.rutasamurai.com/Japon/situacion-en-sendai-despues-del-terremoto.html">this page</a> of the blog of La Ruta Samurai](<a href="http://www.rutasamurai.com/Japon/situacion-en-sendai-despues-del-terremoto.html">http://www.rutasamurai.com/Japon/situacion-en-sendai-despues-del-terremoto.html</a>) I am putting the emails you send me. Is that ok?</p>
<p>Best regards and lots of encouragement,</p>
<p>Joan</p>
<h3 id="march-15-2011">March 15, 2011</h3>
<p>Through the Japanese embassy in Spain I have got some information in case anyone wants to help:</p>
<p>DONATIONS TO HELP THE VICTIMS OF THE EARTHQUAKES IN JAPAN*.</p>
<p>*Update on the receipt of aid and donations to help the areas affected by the earthquake and tsunami in the Tohoku region and Pacific coast on March 11.</p>
<p>The Japanese Red Cross Society is ready to receive aid and donations from individuals, foreign companies, organizations and institutions, as well as aid from the governments of various countries.</p>
<p>The following are the different modalities for those individuals and institutions, both private and public, who are interested in contributing directly to the Japanese Red Cross Society.</p>
<h3 id="donations-from-private-individuals-and-foreign-groups">DONATIONS FROM PRIVATE INDIVIDUALS AND FOREIGN GROUPS</h3>
<ol>
<li>Donations for those affected by the earthquake and tsunami (Note: these donations will be sent to all those affected by the earthquake and tsunami through the Japanese Red Cross Society, which will deliver them to the local community Relief Distribution Committees, which in turn will be responsible for the delivery of the aid). If a receipt is required, please indicate this in the appropriate box.</li>
</ol>
<ul>
<li>Bank Name: Sumitomo Mitsui Banking Corporation</li>
<li>Branch Name: Ginza</li>
<li>Account Number: 8047670 (Regular Account)</li>
<li>SWIFT Code: SMBC JP JT</li>
<li>Name of Beneficiary: The Japanese Red Cross Society</li>
<li>Beneficiary&#39;s address: 1-1-3 Shiba-Daimon, Minato-ku, Tokyo JAPAN</li>
</ul>
<ol start="2">
<li>Donations for the lifesaving activities of the Japanese Red Cross Society. If a receipt is required, please indicate it in the appropriate box.</li>
</ol>
<ul>
<li>Name of bank: Sumitomo Mitsui Banking Corporation</li>
<li>Branch Name: Ginza</li>
<li>Account Number: 8047705 (Regular Account)</li>
<li>SWIFT Code: SMBC JP JT</li>
<li>Name of Beneficiary: The Japanese Red Cross Society</li>
<li>Beneficiary&#39;s address: 1-1-3 Shiba-Daimon, Minato-ku, Tokyo JAPAN</li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/situation-in-sendai-after-the-earthquake/images/sendai_kgaoko.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Impressive photos of the last edition of the Dakar 2011]]></title>
            <link>https://www.joanmira.com/blog/impressive-photos-of-the-last-edition-of-dakar-2011</link>
            <guid>https://www.joanmira.com/blog/impressive-photos-of-the-last-edition-of-dakar-2011</guid>
            <pubDate>Fri, 14 Jan 2011 00:00:00 GMT</pubDate>
            <description><![CDATA[The images of the desert remind me of Mongolia]]></description>
            <content:encoded><![CDATA[<p>Stephane Peterhansel and his co-driver, Jean-paul Cottret (both French) in their BMW, competing in the 9th stage of the Dakar Argentina-Chile 2011 in Copiapo, Chile. Tuesday, January 11, 2011. (Photo by Natacha Pisarenko)</p>
<p>I had a hard time choosing one of the <a href="http://www.boston.com/bigpicture/2011/01/dakar_2011.html">42 photos selected by The Big Picture</a>. Simply amazing, how hard a rally like that must be! My congratulations to all the participants. By the way, what a pity that <a href="http://www.elmundo.es/elmundo/2011/01/11/television/1294772382.html">Calleja had to abandon</a> due to mechanical problems...</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/impressive-photos-of-the-last-edition-of-dakar-2011/images/paris-dakar1_mfdzsc.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Objective achieved]]></title>
            <link>https://www.joanmira.com/blog/target-achieved</link>
            <guid>https://www.joanmira.com/blog/target-achieved</guid>
            <pubDate>Sun, 10 Oct 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Finally, we made it to Sendai in Japan and completed the samurai route!]]></description>
            <content:encoded><![CDATA[<p>Better to report late than never... a month and a bit ago, exactly on September 3, 2010, we arrived in Sendai and delivered the gifts from the city council of Coria del Rio to the director of the international relations center of Sendai. We would also like to thank the Sendai Hispanic Society for the reception they gave us and especially Tae Matsuki for his exceptional kindness and the effort he made to make our visit to Sendai an unforgettable gift.</p>
<p>We would also like to deeply thank all the help we received from our sponsors (especially Leonardo from the Nicolas Roerich Museum), the city council of Coria del Rio, the friends of the Japan Association of Coria del Rio (especially Virginio Japan, Juan Francisco Japan and Momo), the Spanish embassy in Japan, the Spanish embassy in Russia, all the Yamaha team in Yekaterinburg (especially Sofia Panova), to Mike and Ruby for their help in Mongolia, to Bob and his wife for their help in Barnaul, to Mami Uchida for her important help as translator, to Paco and his wife for treating us like kings in Nagoya, to Martyn for being a good travel companion and for saving us from getting stranded on numerous occasions and of course we also want to thank all of you who have accompanied us or followed us on Facebook in this adventure and to those who have been concerned about our health.</p>
<p>Thank you very much!</p>
<p>PS. Please <a href="http://facebook.com/rutasamurai">visit our Facebook page</a> to read the latest comments on the trip and see the most updated photos.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/target-achieved/images/we_made_it_lo8yit.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Chronicle of Mongolia. Part I]]></title>
            <link>https://www.joanmira.com/blog/mongolia-chronicle-part-i</link>
            <guid>https://www.joanmira.com/blog/mongolia-chronicle-part-i</guid>
            <pubDate>Mon, 23 Aug 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Roads in Mongolia are "free style". If they don't exist, you make them up]]></description>
            <content:encoded><![CDATA[<p>We arrived at the border between Russia and Mongolia on July 25. The last village in Russia is called Tashanta, a small village that takes no more than 2 minutes to cross. We take the usual photo in front of the sign at the entrance to the village and continue towards the Russian border.</p>
<p>When we arrive at the checkpoint, we find two Canadian bikers (a man and a woman) in the queue, equipped with two BMW GS1200 and well-studied luggage. You can tell they have experience traveling around the world on motorcycles. We talk to them for a while and they tell us that we have to go back a little further to fill out some paperwork before we can enter customs and passport control.
In the end, we manage to get into the offices and start the paperwork to be allowed to enter Mongolia. The visa and passport issue was solved quickly, but there were problems with the ATA carnet. Apparently in St. Petersburg, they did not fill in the booklet properly and now when we leave Russia they do not want to stamp the booklet because they say that the import is already closed.</p>
<p>It is lunchtime, the border closes for an hour, so we wander around, have a picnic in the middle of the border and wait for the officials to return to see what solution we can give to the ATA carnet issue. After waiting a few hours and using advanced techniques in silent protest, they tell us that there is no problem, that we can pass to Mongolia, but that the ATA carnet has recorded our passage through Russia in a somewhat strange way since they gave us entry and exit of the goods in St. Petersburg.</p>
<p>We took the exit and headed for the next border post, but not before passing through two more passport controls. Once at the Mongolian border, we entered the offices to process the motorcycle papers and visas. While I took care of the paperwork, Vicente stayed behind to watch the motorcycles. Several Russian truck drivers are messing around, fiddling with the motorcycles, putting on their cases without asking permission... Vicente almost slaps them.</p>
<p>When we manage to fix the papers (about two hours) we go on, they stop us and force us to buy insurance for the bike (500 rubles, about 14 €). The children come up to us to ask for some trinkets.</p>
<p>Finally, we get into Mongolia and it starts to pour, the dirt road turns into a muddy mess with puddles that make driving very difficult. We have to reach a village called Tsanangur and we cannot stop. We reach a point where the road is cut by a fence. What the hell is this? We are puzzled for a moment, we can not believe that we are forced to go cross-country ... but in the end, it is the only option. We tighten our belts and go through the middle of the mountain for several kilometers. We skirted the fence and arrived at the first Mongolian village since the Russian border. The road was complicated, we had to pass through some deep puddles, it was pouring rain and the bikes got very dirty.</p>
<p>When we got to the village, it looked rather worse than the Russian villages. It looks pretty devastating, however, the scenery and the mountains are breathtaking. Suddenly two guys on a motorcycle approach us, they have a very broad smile and immediately start to mumble some English. They want to take us to their house for a chai (tea) and also tell us to stay overnight because it rains a lot and the next village is far away and the road is very bad.</p>
<p>We decide to go with them and arrive at their humble Ger, where their family is waiting for us with open arms. For a change, as soon as I arrive I fall off the bike and the side case fills with mud. It&#39;s becoming a classic to see the bike on the ground...</p>
<p>We enter the ger (yurt) and sit down to drink tea and talk a bit with the parents of the guys who rescued us. They seem happy to have us as guests and are amazed at how much we know how to say in Mongolian. Soon we arrange everything, arrange the food for dinner, pack our luggage and make ourselves comfortable by the stove.</p>
<p>Soon it gets dark and I was already feeling like giving something to these people who were being so nice to us. We go outside and start taking things out of the suitcases, flashlights, padlock, radio, T-shirts, medicine, sunglasses,... In the end, they were very happy and we were more relaxed to be able to compensate for the hospitality they were offering us.</p>
<p>Later on, neighbors and relatives started to come. We are the attraction and they can&#39;t pass up the opportunity to come and say hello to us. We all have dinner, there are several children and they are immediately interested in the photos we show them from the camera, the videos made with the cell phone and the stories we told them about Russia. It seems unbelievable, but they are very fond of the neighboring country...</p>
<p>It starts to get dark, the guests go home and we fall into bed, but not before being a little embarrassed for having to change our clothes in front of the whole family that kept staring at us. The bed is a horror, but the euphoria I felt for being there with them makes it not even cross my mind how uncomfortable the bed is.</p>
<p>To be continued...</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/mongolia-chronicle-part-i/images/mongolia_suzl8x.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Russian version of Groundhog Day]]></title>
            <link>https://www.joanmira.com/blog/groundhog-day-russian-version</link>
            <guid>https://www.joanmira.com/blog/groundhog-day-russian-version</guid>
            <pubDate>Sun, 22 Aug 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[The farewell to Russia is a bit complicated, but we are taking it with patience and as much good humor as possible]]></description>
            <content:encoded><![CDATA[<p>It&#39;s been more than a month since I&#39;ve deigned to write something with a little literary substance and I&#39;m going to avoid telling all the pathetic excuses that come to my mind.</p>
<p>We have been in Vladivostok since last Wednesday and we have only two more days left to catch the ferry that will take us to South Korea and then to Japan. I don&#39;t need to tell you how much I&#39;m looking forward to getting there, those of you who know me will be tired of hearing me talk about Japan now and then. The fact is that we had to stay a week in this city because the ferry to Japan only leaves once a week. Besides, we had the &quot;misfortune&quot; to arrive only a few hours after it left. A few days later we realized that it was not such bad luck because we started to make arrangements and realized that we needed two or three days to arrange the papers for the motorcycles.</p>
<p>We were a bit naive and arrived in Vladivostok with no idea of the schedules or the number of ferries. Then we found out that there were only three possible options: the first was to take two ferries and cross to Japan via Sahalin Island (Russia) and then arrive at Wakkanai (in Hokkaido). This option was soon discarded (although it was my favorite because I would have liked to see Hokkaido). We already had the ATA carnet papers set up for Vladivostok and seeing how the picture is with customs, we preferred to risk 0.0.</p>
<p>The second option we had was to take a direct ferry to Toyama, but apparently, the company that offered this service decided to sell the ferry and close the company. They were probably not profitable or maybe they got into debt drinking too much vodka and had to sell, who knows, but the fact is that they screwed up our plan.</p>
<p>The third option (the one we liked the least) turned out to be the only way out of Russia. Travel to Donghae (South Korea) and then to Sakaiminato (southern Japan) with the DBS company. The trip lasts two days and cost us a whopping 600 €. A considerable pastiche!</p>
<p>During these days that we have to be in Vladivostok, we have taken the opportunity to do the laundry, try to buy some new shoes for Vicente and generally move our asses a bit around the city. We have been quite comfortable in the hotel and the truth is that a few days of rest are very appreciated. I like to ride the bike around on my own, running errands as if I were in Alicante. I know the streets and know how to get to the places in the neighborhood. It is a feeling that I always like to repeat. Already when I went to live in Barcelona and Madrid I started to like it and it doesn&#39;t seem to disappear. Starting again from scratch in a new city is amazing! Every day there is something new to learn and overcoming challenges has something of chemistry - endorphins maybe? - that makes it quite addictive, at least for me.</p>
<p>To go to do business in Russia I already have the idea that I am going to spend most of the day. You have to have a lot of patience and be very persistent. I often say to Vicente, &quot;See? if we had given up when they told us that, we wouldn&#39;t have made it&quot;. Officials tend to close many doors on us, they don&#39;t want to help, we are a complication for them, and we don&#39;t speak the language. We have to be very persistent and use the tactic of silent protest. This technique has worked quite well for us during the whole trip and I am going to explain it because it is funny.</p>
<p>When the Russian authorities close in and there is no way to get anywhere, you have to do like Gandhi. Non-violent protest. Non-verbal warfare. We look for the place they like the most, where they gather to smoke a cigarette or a busy crossroads, the point is that they see you and make them uncomfortable. We go directly to that place and do a sit-down. We start talking to each other and wait for their reaction. After a while, someone more predisposed to help always appears or calls someone else who knows a little English. The point is to get rid of us :-)</p>
<p>In the hotel where we stayed, we also met three other bikers who are also traveling around the world. Jesus, a Basque who travels from Spain to Australia, has a Ural motorcycle (Russian brand) with a sidecar. He likes to play the classical guitar and smoke. Has red hair and sometimes spends a while talking without looking at your face. Eric is French, but his grandfather was Spanish. He is an extreme travel photographer and travels from Spain to Shanghai on a 350 kg Harley-Davidson (with two balls). He carries 3 gas cans and can do 700 km without stopping. He put his bike in China in the trunk of a bus, but he got caught and had to leave China a few days later. The last one is Alex, a Swiss biker who goes all the way to Japan on a GS1200. Today he has gone back to Moscow, where he will pick up his bike that he sent on the Trans-Siberian from Vladivostok.</p>
<p>Anyway, we&#39;ve put together an interesting crew and we get together from time to time to tell travel stories and drink beers, so we&#39;ll keep going for a couple more days!</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/groundhog-day-russian-version/images/vladivostok_port_wmjfgt.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[War and Peace. Love and hate]]></title>
            <link>https://www.joanmira.com/blog/war-and-peace-love-and-hate</link>
            <guid>https://www.joanmira.com/blog/war-and-peace-love-and-hate</guid>
            <pubDate>Mon, 12 Jul 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Curiosities and experiences on the first stage of the trip through Russia]]></description>
            <content:encoded><![CDATA[<p>July 13, 2010. 2:06 am, in a hotel in Yekaterinburg, Russia.</p>
<p>Today has been a tough but quite interesting day. We left at 9:00 am from a small town called Sim (located between Ufa and Yekaterinburg). Yesterday we had to stop in that village because there was a fire on the road and there was a big traffic jam. While we were walking around the village with the motorcycle looking for a place to sleep, people were looking at us as if we were real aliens. We have encountered everything, people who greet us and try to make conversation, others who turn around when they see the helmet camera, and some girls who run out in fear in search of their mother. In general, I have been surprised to see that people are very cautious and usually do not dare to get too close until they see us smile and wave at them. But to go unnoticed as in Europe is impossible.</p>
<p>The fact is that we meet two guys (in a 4×4, one of those that they give away...) and they tell us to follow them to the hotel in the village. When we arrived at the hotel, we put on the typical show of every day, babbling in Russian, drawings on paper and onomatopoeias of all kinds and colors to make them understand the type of room we were looking for. In the end, we got the room for 800 rubles plus 40 rubles for parking (about 22 €). We entered the room (which had a considerable stench) and saw that there was no shower. We are told that we have to wash in a kind of sauna with basins and ladles. We have no photos (it was raining and I was too lazy to take out the camera) but I can assure you that the place was very picturesque. The sauna was a ramshackle hut surrounded by goats and rusty things everywhere.</p>
<p>The next day we woke up with the pleasure of having slept knowing that Spain was the world champion, a vision that vanished as soon as we heard the incipient horn of a 40-ton trailer coming down a mountain pass without brakes. The townspeople came out to watch the spectacle and to await the happy outcome or catastrophe. In the end, it managed to dodge about 30 cars and there were no fatalities or collisions with big explosions. After a brief moment of excitement, we started to load the luggage and start the journey to the Ural Mountains.</p>
<p>The Urals are not a panacea, but we appreciated it. So many straight roads and plains are a bit tiresome. The mountains are always more fun, the curves force you to move a little on the bike and raise the adrenaline. If you add to that the fact that today I was listening to one of my favorite bands &quot;Radiohead&quot; and that it was raining at times, the result is extremely pleasant. Another grace and misfortune of traveling by motorcycle are that we can smell the places we pass through, although being able to smell the Urals in the rain is another great thing.</p>
<p>At lunchtime, we stopped in a village called Miass and then we continued to Karabash, a place that caught my attention because of its inhospitable aspect. Mountains of black sand, old abandoned excavators, very high chimneys, smoking holes. An irresistible color combination for any photographer. I could have stayed the whole day taking pictures of rusty and abandoned things. It reminded me of one of those Russian movies portraying dystopian societies, specifically <a href="https://en.wikipedia.org/wiki/Stalker_(1979_film)">S.T.A.L.K.E.R</a>.</p>
<h3 id="roads-and-kamikazes">Roads and Kamikazes</h3>
<p>We have been traveling for about 10,000 km, of which at least 3,000 km we have traveled in Russia. The difference between traveling in Europe to traveling in Russia is abysmal. The roads have been one of the biggest surprises we have had. We knew they were bad but not as bad as we found them. In general, there are no highways or expressways. They are all conventional roads with one or two lanes in each direction of travel. They are not fenced, so sometimes you can find people crossing, dogs barking at you, horses, cows and sheep... The state of the asphalt is amazing. As thousands of trucks pass by every day, inside a lane there are two steps of about 10 or 15 cm. high that correspond to the treads of the trucks. It is a nuisance because to move with the bike inside the lane you have to be careful going up and down these steps. There are a lot of holes, scratched pavements that make the front wheel slide, and train tracks that stick out a lot. In addition, there is very heavy traffic, they don&#39;t respect the clearance margins and overtake you everywhere. It is very hard to drive and the average speed we are driving is between 60 and 70 Kph.</p>
<p>A couple of days ago we were caught by a policeman while we were overtaking at 134 Kph on an 80 Kph road. They have it well set up, they hide behind trees (old man style) and from a distance, they point the gun at you. Then they stop you and show you how fast you were going. We had to do the show again and smear the policeman with 500 rubles, although I think you can go even lower, at least up to 200 rubles. You have to be careful because if they get angry they might take your papers and make you lose a day or two.</p>
<p>That same day Vicente and I got lost. While I was stopped on the shoulder, Vicente was overtaking a truck and I didn&#39;t see him pass me. In the end, thanks to the walkies sponsored by Midland, we were able to find each other again. The worst thing is that in my haste I couldn&#39;t stop in a good place and my bike fell to the ground. Still, I was lucky it didn&#39;t fall down the hillside...</p>
<h3 id="some-curious-things">Some curious things</h3>
<p>I was surprised that on the menus of the restaurants (here they call them cafés) they always specify the grams of the dishes. It&#39;s very practical! Alcohol is also measured in grams. A normal shot of vodka is 50 g. and a double shot is 100 g.</p>
<p>In general, the Russians we have met are nice people. They have helped us find places to sleep and have been very friendly. There is everything, as everywhere. Some drier ones give us a bad face when they see that we do not speak Russian, although perhaps they do it because they are defensive. After all, they cannot express themselves in English.</p>
<p>We have not seen a single foreign vehicle in all that we have been traveling in Russia. Only some bikers like us. It will be because of the complicated formalities.</p>
<p>The general appearance of the towns and cities is quite depressing. There are many rusty, crumbling and old things. The buildings are simple, not very cheerful, I imagine that they are a legacy of the communist era. Regarding design and urban aesthetics, there are many deficiencies, however, people dress quite well, and they like to dress up. It&#39;s a very obvious contrast, especially now in summer. I imagine that in winter the scenario will be different.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/war-and-peace-love-and-hate/images/moto_caida_yxyqu6.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Entering Russia]]></title>
            <link>https://www.joanmira.com/blog/entering-russia</link>
            <guid>https://www.joanmira.com/blog/entering-russia</guid>
            <pubDate>Sun, 04 Jul 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Quite a rough start in Russia. Bureaucracy and unwritten laws make their presence felt.]]></description>
            <content:encoded><![CDATA[<p>By Vicente Malpica</p>
<p>July 4, 5:00 am, at a hotel in St. Petersburg</p>
<p>We have spent several days of ultra relaxation in Helsinki-Finland. The bike was finished on the 2nd in the morning. We picked it up from BMW at about 10 am, and great, as inside the workshop they have a bar and we could have some breakfast. The bill was good, not very expensive compared to other official services. About 260 euros: new engine oil (Bel-Ray EXP 10W-40), oil filter, two chain sprockets (rear chainring and front sprocket -I bought them to take with me), also two spark plugs and another spare oil filter.</p>
<p>According to what the girl at BMW told us, the clutch cover has a bubble in the hole of one of the screws and causes some oil to come out little by little, a factory defect. That it has to be changed, that they did not have it, but later if we have time to change it, but she thinks it&#39;s ok, we can finish the trip even if a little oil comes out. The two gaskets of the engine crankcase and clutch, as well as that labor, BMW already paid under warranty.</p>
<p>With the bike ready, we return to the campsite, mount everything and head towards Russia. Between Helsinki and the border we stop a little at a gas station of the ABC chain, which by the way is somewhat strange since we can only fill up using banknotes and if you have already filled the tank and you have some leftover, they do not give you back the change.</p>
<p>We bought something for lunch, and before leaving I leaned over and looked to see how the oil was doing. My surprise was that once again it was leaking some oil, well, it was oozing some. Well, nothing, we continue, although I don&#39;t like to see oil down there. Maybe it is not much, a drop at most every two days if anything, but the fact is that it comes out..., and that the issue stays there.</p>
<p>We continue towards the border, on the highway, all ok, 90-100 kph. And further on the highway disappears and now it&#39;s a good national road. So we arrived at the border, but not before, about 10 km, seeing a long queue of trucks stopped on the right side of the road. Already foreshadowed us that the border had good fabric, but ok, cars, motorcycles and others did follow. Then the cars, etc., what we did was skip them and get the first. And, here begins the ordeal...</p>
<p>As we carry ATA Carnet, for the issue of temporary import of our motorcycles, they have to stamp it at the exit of Europe, which we did before in another place, Finland border, and everything ok. Already on the Russian border, the subject is another one, a big CHAOS. People crowded together, everything was very degenerate, the Russian officials I can&#39;t even tell you... Anyway, patience. If a window there, if another one here if some Russian truck drivers help us, who by the way, are good people.</p>
<p>The thing is that, in addition to having no toilets, no chairs to sit on and thousands of mosquitoes that devour you, we were in the truck area, because of the issue of the Cuaderno ATA, so we had to do the paperwork as if we were truck drivers...</p>
<p>With the truck drivers great, we met several, especially one who helped us a lot, he told us that he had lived in Portugal for several years and could speak Portuguese perfectly, so very well with him, he helped us a lot to get out of the quagmire.</p>
<p>It is depressing what they have set up there, as usual, a truck driver, who is in that long queue, takes about 3 days to get to the offices of those crappy officials. Anyway, then maybe they take 1 more day of paperwork, depending on what they give to the others, and at the end of 4-5 days, they take to pass the border with the truck, unbelievable, without toilets and not even the minimum?</p>
<p>We arrived around 17:00 hours, and we can not complain, well yes, but we left there at 2 am, 9 hours of waiting, having everything perfectly, so it seems that they are still in the last war... This is not the end of the story, they let us enter Russia, but we must go to customs, in less than 24 hours, here where we are now, in St. Petersburg, is incredible. Today we have gone, but as it is the weekend, so more days of loss until tomorrow, Monday. We have been messed up in a bad way. If they knew it was the weekend, why did they tell us we had to go in less than 24 hours?</p>
<p>At 2:00 a.m. we managed to cross the border (after asking permission even from the head of customs!). Without Russian currency (Rubles), the Portuguese, accompany us to the entrance of a roadside motel. Nothing, it is full, very late already, well, still super tired we continue to see another one, and another one ...., nothing at all, all full or maybe that to see two bikers at 3-4 in the morning did not bother them at all and that&#39;s why they told us that it was full.</p>
<p>It was foggy, as the sea was close, a mist that made us wear the visor up, a roll, cold about 5-7 degrees, tired, sweaty, exhausted ... without being able to find a place to sleep. In the end, we stopped at a gas station and set up a kind of picnic. We took out the leftover food, some sandwich bread, chocolate Nutella, some fruit and some sausage left over from lunch. We put on our balaclavas to protect us from the mosquitoes and, in the absence of a bed to sleep in, we started to eat dinner =)</p>
<p>We were exhausted, we didn&#39;t know what to do, well, nothing, little by little, with stops and with the midnight sun, which at half past three can be seen perfectly, we continued towards St. Petersburg, on these roads of God, how they are. The asphalt is full of potholes, cracks, crashes in short ..., slow down, about 80 km / h., more speed and fog would have been dangerous and we could load the bike.</p>
<p>The Russian people go like hell, you have to be very careful, as they overtake you and when it suits them, in short, this is war, and in the middle are we, you have to adapt. This is going on a motorcycle, loaded to the marrow, without sleep, on these roads, with these people, at night and without eating moderately well, made us stop at a gas station, about 50 km. of this beautiful city. The gas station where you can finally pay with normal cards and they have a warm breakfast.</p>
<p>We were falling on the sleepy table, banging our heads, we were almost giving a show. In the end, we decided to continue to St. Petersburg. We arrived around 7:00 am.</p>
<p>St. Petersburg is great, with its strange smells, with its pollution of buses and smoking trucks, but well, after getting used to the idiosyncrasy of this place, which is more like a motocross track than a city, how are its streets, mixed with cable networks, sewers and streetcar rails ...., we went to look for the cheap hotels we had pointed out, thanks to the GPS.</p>
<p>Nothing at all, some full and others very expensive. We continued searching, but not without getting a good fine from a policeman... hahaha. Trying to get to the international Hostel we had to make a cheeky in the opposite direction, (nothing serious, 10m. in the opposite direction), the policeman stopped us with his micro patrol car and wanted to take the papers to Joan, who was with whom he spoke, so Joan got with him in the patrol car and left him a couple of bills next to the handbrake ... about 2000 Rubles which is a paste, about 60 euros, but well we continue with all our papers.</p>
<p>It was getting unbearable the heat, the tiredness, and nothing, search after search, through those dusty streets and with somewhat crazy traffic, we got a moderately good room in a Chinurri hotel. Here we are, Garden Beijing Hotel, the GPS brought us there. The Cyrillic alphabet is a mess, you don&#39;t know anything at all, because if it says bank you don&#39;t know it, if it says supermarket idem, in short, you go a little bit at random, seeing what the place is, by its exterior, more than by the name.</p>
<p>As soon as we arrive we go to the shower and sleep for a couple of hours. At about 15:00 hours, we left everything well closed in the room, we took the right thing, ATA papers and passport, and to see if we found the place of customs. We had been told at the border, that as soon as we arrived in St. Petersburg, we should go to the customs office to take the book... Well, nothing, the official told us that they were closed until Monday.</p>
<p>Then we went to see if the people who had made us the invitation to enter Russia were working since they have to register us at the entrance..., but nothing. Closed too. We saw some kind of bar nearby, so we went for a drink, and back here to the hotel, we were still very tired and sleepy.</p>
<p>St. Petersburg looks very nice, there is a river, lots of people, lots of tourism, beautiful monuments and, today already rested, we will go to see something, before leaving, we are leaving tomorrow Monday, the time is running out.</p>
<p>Back to the hotel, there at 19:00 hours, we said, let&#39;s take another nap before going out for dinner later hahaha, yes, what a nap, a while ago I woke up, I looked out the window and it was almost night since at night there is no night at this time, I look at the clock. Woahh!, it&#39;s 3 am...</p>
<p>And that, now it&#39;s half past 5 in the morning, it&#39;s daytime, daytime as if it were almost 11 in the morning, here I am writing something. Joan is still sleeping, with more than 10 hours of sleep, is that he likes to sleep the strip, does very well, I for my work I am more accustomed fewer hours, I usually wake up early.</p>
<p>We are already in Russia, we still have a long way to go, but little by little we will make our way.</p>
<p>Greetings to all and, as much as possible, we will be narrating and putting photos of all this crazy trip to Japan, many hugs.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/entering-russia/images/IMG_2610-_odlju0.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The dimension of dreams]]></title>
            <link>https://www.joanmira.com/blog/the-dimension-of-dreams</link>
            <guid>https://www.joanmira.com/blog/the-dimension-of-dreams</guid>
            <pubDate>Wed, 30 Jun 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[A few observations on how the trip is going after almost a month on the road]]></description>
            <content:encoded><![CDATA[<p>I owe this entry to the Foo Fighters. If it wasn&#39;t for them, I wouldn&#39;t have been in the mood to write anything.</p>
<p>Poor deluded me. I created up to 15 different categories to sort the blog entries by country. A plan full of optimism that, as of today, I can already see is not going to be possible to fulfill. Traveling by motorcycle at the pace we are going is something similar to wanting to see the Louvre museum in 10 minutes. But in reality, this trip is not a vacation, it is not about sightseeing, nor about taking pictures in front of the most representative monuments. This trip has only one goal: to get to Japan.</p>
<p>Today we left Coria del Rio exactly 25 days ago. They have flown by. The road, the bike, the tent, the luggage, the photos, the food, the cleaning, the mechanics. It&#39;s the first thing that comes to my mind, it&#39;s as if the planning is never finished. At the end of one day, we already have to plan for the next day. It&#39;s a never-ending story. Every time I feel like leaving everything in the hands of fate and improvisation.</p>
<p>Europe has been easy, with no adventures, no risks. During these days I have felt almost like watching a movie in my living room. The only thing missing was a popcorn ejaculator embedded in my helmet. Each new country was an &quot;improved&quot; copy of the previous one, but the further north, the more robotic and dumbed down the people are. To the point of not answering &quot;hello&quot; when greeted. No desire to engage in conversation and a chronic sadness on their faces.</p>
<p>Update: traveling in Europe has been easier than I expected. The roads are good, there are plenty of hostels, and campsites and all services work perfectly. The people in Scandinavian countries are not as dry and dumb as I thought. There is a bit of everything, but there is a certain indifference or shyness when it comes to interacting with foreigners.</p>
<p>In any case, who am I to give my opinion so lightly? I&#39;m just a spectator on a motorcycle who from time to time has the chance to share short periods with the people of the country visited. Further north in Germany there is a strong change in the character of the people, drier. There is very little life on the street and it is quite difficult for them to socialize. Can you tell that I am looking forward to leaving Helsinki?</p>
<p>The most important thing when traveling is always to interact with people. Open your heart and mind. Absorbing new points of view and ways of doing things, but what happens when you meet close people who don&#39;t want to share anything? They are not traveling like us and they don&#39;t have so much need to share their time. That&#39;s why God created the Internet ^_^ and told Casey to create <a href="http://www.couchsurfing.com/">CouchSurfing</a>.</p>
<p>Tomorrow we&#39;ll know if they finally brought the missing part for Vicente&#39;s bike and that&#39;s when we&#39;ll decide if we&#39;ll get on the teleporter to cross to Russian territory. I have the impression that it is going to be a busy July,... another story. We are feeling pretty good physically and mentally, so let&#39;s get on with the miles! I can&#39;t wait to get to Japan, get into an <em>onsen</em> and collapse with sushi and ramen until it comes out of my ears. Not to mention the ten thousand other things I want to do.</p>
<p>Hopefully, we&#39;ll meet some good people along the way. I&#39;m tired of listening to pumpers who keep on talking and their egos are coming out of every orifice of their bodies. Is it so hard to know how to talk well? You just need to know how to listen, be interested and read body language.</p>
<p>Many thanks to all of you who joined us in Europe: Octavio, Tomás, Villahermosa, Juan, Moterus, José (the canary), Maria José, Midland France Team, Fiodor, Pepo, Zarwash, Zoohal, Sio, Arrash, Miikka and Björn.</p>
<p>Greasy hugs to all, people!</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-dimension-of-dreams/images/finlandia_vhxvby.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Trip tracking]]></title>
            <link>https://www.joanmira.com/blog/trip-tracking</link>
            <guid>https://www.joanmira.com/blog/trip-tracking</guid>
            <pubDate>Sat, 26 Jun 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Europe is coming to an end and soon the real thrills and adventure will begin]]></description>
            <content:encoded><![CDATA[<p>We are on the ferry to Finland and during the trip through Europe, we have not been able to have much access to the Internet. What little we can update, we are updating directly on Facebook. Please join the <a href="http://facebook.com/rutasamurai">Samurai Route Facebook page</a> to see the latest photos and comments about the trip.</p>
<p>We will be entering Russia soon! Best regards to all.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/trip-tracking/images/finlandia1_lu6sjt.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[We already started!]]></title>
            <link>https://www.joanmira.com/blog/we-already-started</link>
            <guid>https://www.joanmira.com/blog/we-already-started</guid>
            <pubDate>Tue, 08 Jun 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Short thank you note and video of Giralda TV report]]></description>
            <content:encoded><![CDATA[<p>We have been on the road for four days, but until now we have not had time to update the page. The days have passed quite frantically, we have already done more than 2.000Km!</p>
<p>Many thanks to all the friends and followers of the project, the people of Coria, the city council of Coria, the Spanish-Japanese association of Coria, our sponsors and the media that have been interested in this project. We are very happy and with a lot of strength to move forward.</p>
<p><a href="http://www.rutasamurai.com/component/option,com_hdflvplayer/Itemid,164/layout,playerlayout/view,player/index.php?option=com_hdflvplayer&amp;Itemid=164&amp;compid=5">Here you can see the video</a> recorded by Giralda TV of the event in Coria del Rio.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/we-already-started/images/coria_nreau7.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Nicolas Roerich Flag of Peace Museum]]></title>
            <link>https://www.joanmira.com/blog/museum-flag-of-peace-nicolas-roerich</link>
            <guid>https://www.joanmira.com/blog/museum-flag-of-peace-nicolas-roerich</guid>
            <pubDate>Wed, 26 May 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[A great ally and benefactor of the samurai route]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>Where there is Peace, there is Culture; Where there is Culture, there is Peace. - Nicholas Roerich (1874-1947)</p>
</blockquote>
<p>The <a href="http://shambala-roerich.com/">Nicolas Roerich Peace Flag Museum</a> is one of the major benefactors of the Samurai Route project and that is why we want to tell you a little more about the peace flag that we will carry on the motorcycles and about its creator, Nicolas Roerich.</p>
<p><a href="http://shambala-roerich.com/">The museum</a> is located in the mountains of the Basque Country and welcomes during the summer weekends all those who are lovers of the union between East and West, in its cultural, philosophical and spiritual aspects. Paintings of the Roerichs, Agni-Yoga, India, Full Moon Group Meditation, Radiesthesia-Radionics, Spiritual Adventure Travel, Book Readings, Walks in the countryside. You will find all this and much more in Leonardo and Petri&#39;s <a href="http://shambala-roerich.com/">Nicolas Roerich Lodge</a>.</p>
<p><a href="http://www.banderadelapaz.org/bandera/index.shtml">The Banner of Peace</a> is a symbol found all over the world, it has existed since time immemorial. No one can claim that it belongs to a particular religion, group or tradition, and it represents the evolution of consciousness in its various phases, having a completely universal character.</p>
<p>In India it is the most ancient of symbols, <a href="http://es.wikipedia.org/wiki/Chint%C4%81mani">Chintamani</a>, a symbol of happiness; we also find it in the Temple of Heaven in Peking; it also appears in the Three Treasures of Tibet; on the Chest of Christ in the famous painting of Memling; in the [Madonna of Strasbourg](<a href="http://www">http://www</a>. fundacionpea.org/arte/madonna.JPG), on the shields of the Crusades and the coat of arms of the Templars; we also see it on the blades of the famous swords of the Caucasus, known under the name of &quot;Gurda&quot;.</p>
<p>It appears as a symbol in a large number of ancient philosophical systems. We find it on the insignia of Genghis Khan and Rigden Djepo; on the &quot;Tanka&quot; of Tamerlane (Timur Lang) and on the coat of arms of the Popes. It is also found in the works of ancient Spanish painters and Titian, on the ancient icon of St. Nicholas of Bari, and on that of St. Sergius and the Holy Trinity. And also, frequently, on Buddhist flags. This same sign is found marked on Mongolian steeds. Nothing could be more appropriate to group the races than this symbol, since it is not a simple ornament, but a sign that carries in itself a deep significance.</p>
<blockquote>
<p>When it is a question of defending the treasures of the world, no better symbol could be chosen, for it is universal, of unlimited antiquity (one of the oldest in the world) and carries within itself a meaning that will find an echo in every heart.</p>
</blockquote>
<p>Its three spheres were analyzed by Nicholas Roerich, the designer of the Banner of Peace, as the synthesis of all arts, all sciences and all religions within the circle of culture. He defined culture as &quot;the development of man&#39;s creative potential&quot;. He believed that &quot;the achievement of peace, through culture, is a goal to be realized through the positive effort of the human will&quot;_.</p>
<p>Wherever the Flag is displayed it recognizes the great achievements of the past, present and future inscribed in the ring of eternity. It encourages the individual to strive toward the realization of his highest potential, embellishing all aspects of life; it encourages each person to take responsibility for the evolution of the planet. It signifies the builder of peace; and symbolizes the transformation of the individual and society. It represents cooperation - the cornerstone of the emerging planetary culture - in all aspects of human activity.</p>
<p>Nicholas Roerich was a world-renowned artist, philosopher, archaeologist and writer. He created an international treaty, the Roerich Pact and the Banner of Peace. He stipulated that the Banner be flown over all historical monuments and educational, artistic and scientific institutions to indicate special protection and respect in times of war and peace. It recognized that cultural treasures are of permanent value to all people as the common heritage of mankind.</p>
<p>The Covenant was presented by Roerich in New York in 1929 and merited nomination for the Nobel Peace Prize. On April 15, 1935, President Franklin D. Roosevelt presided over a ceremony at the White House in Washington, D.C., at which twenty Latin American countries joined the United States in signing the historic document, among them Spain.</p>
<p>Nicholas Roerich said: &quot;Positive creativity is the fundamental quality of the human spirit. Let us welcome all those who, overcoming personal difficulties, impel their spirits in the task of building Peace, thus guaranteeing a radiant future&quot;.</p>
<p>More information at: <a href="http://shambala-roerich.com/">http://shambala-roerich.com</a></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/museum-flag-of-peace-nicolas-roerich/images/jesucristo_u7y7qq.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Trip to Barcelona. Meeting with Yamaha and Midland]]></title>
            <link>https://www.joanmira.com/blog/trip-to-barcelona-meet-yamaha-and-midland</link>
            <guid>https://www.joanmira.com/blog/trip-to-barcelona-meet-yamaha-and-midland</guid>
            <pubDate>Sun, 18 Apr 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Story with Vicente about our mini adventures with the preparations for the trip]]></description>
            <content:encoded><![CDATA[<p>Last Tuesday, April 13th (what a day...) Joan traveled by motorcycle from Alicante to my house in Cuenca. We had arranged to prepare things for the meetings we had with several companies in Barcelona interested in collaborating on the project. We had a lot of work to do. Printing resumes on good quality paper, outlining the route on google maps, preparing the presentations and the documentation for the Mongolian visa, etc.</p>
<p>We had spent the whole day working and it started raining in the afternoon and didn&#39;t stop all night. We were not yet aware of what we were going to go through the next day, 600 km of a motorcycle ride to Barcelona.</p>
<p>I had a hard time sleeping, I had already been talking to Joan about the rain and the bad weather. We even talked about going to Barcelona in the car... But the life and spirit of the biker are different. Besides, we have to get in shape for the trip. We had to go by motorcycle.</p>
<p>We got up and had a good breakfast, the weather was still closed, and the humidity was such that it was difficult to walk. We didn&#39;t say anything to each other, we finished breakfast, we put everything on the bikes and not too soon, around 10:30 am, we started the half-adventure that I am about to tell you about.</p>
<p>The rain gave us a small lapse of time to adapt to the road (very wet, by the way). We headed towards Carboneras, stopped to refuel and then took the N-420 towards Teruel. It starts to rain cats and dogs, but we had appointments in the city of Barcelona and, unless the destination said a resounding NO, we would go ahead.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/1_ciiykf.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/1_ciiykf.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/1_ciiykf-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/1_ciiykf-mobile.jpg" />
          <img class="image" src="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/1_ciiykf.jpg" alt="1" loading="lazy">
        </picture>
        <figcaption>1</figcaption>
      </figure></p>
<p>Mittens are a great invention and on a day like this, I can&#39;t imagine riding along with a pair of gloves. Joan put hers on the bike, but not having hand protectors, with the force of the wind, they began to press the brake and clutch levers. You can imagine how uncomfortable it was, raining cats and dogs, at zero degrees and with the fingers of the hands like sticks to prevent the mittens from pressing the brake...</p>
<p>We continued our trip, &quot;relaxing&quot;. We could see a lot of water in the ditches of the road and adjacent mountains and then we saw snow..., the temperature indicator kept blinking, indicating to me that there was a possibility of ice. The day was complicated, but well, happy to go on a motorcycle, we comforted ourselves by thinking and dreaming about the possible outcomes of the meetings we were going to have in Barcelona with the sponsors.</p>
<p>Before arriving in Teruel we went through a small mountain pass of more than 1000 meters high, there was some snow on the road, so we decided to stop a little to take advantage of the magnificent day. It was necessary to leave a photographic record of the moment. It is very nice not to go alone on route, the sorrows, are fewer sorrows when you are accompanied.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/2_pq7ijg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/2_pq7ijg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/2_pq7ijg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/2_pq7ijg-mobile.jpg" />
          <img class="image" src="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/2_pq7ijg.jpg" alt="2" loading="lazy">
        </picture>
        <figcaption>2</figcaption>
      </figure></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/3_ztiwhx.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/3_ztiwhx.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/3_ztiwhx-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/3_ztiwhx-mobile.jpg" />
          <img class="image" src="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/3_ztiwhx.jpg" alt="3" loading="lazy">
        </picture>
        <figcaption>3</figcaption>
      </figure></p>
<p>Between Teruel and Alcañiz we made a stop, it was cold and the relentless humidity excited our nasal taps incessantly. A good lunch, based on a pork loin sandwich with cheese, left us almost perfect and with restored spirits. Too bad it was still raining, but we had to continue on our way along this beautiful road towards Alcañiz, Caspe, Fraga and Barcelona.</p>
<p>Passing Alcañiz we stopped to fill the gas tank, things changed somewhat, it was still cloudy, but the rain stopped. More straights, and more endless straights, we went over the bridge that crosses the Ebro and arrived in Fraga. The rest is already history, a good Colacao in a roadside bar after passing through Lérida and boring straight stretches of the highway until we reached Manresa. It was almost seven o&#39;clock in the evening, there was little left to reach L&#39;Ametlla del Vallés. The last kilometers of mountains and the regional road we did like zombies with flat encephalogram. Too many kilometers on the same day, but at least the scenery was a pleasure. Beautiful mountain moors that reminded me of Galicia, what a great green, it&#39;s fantastic north of Barcelona!</p>
<p>We stayed at my friend Ignacio&#39;s house, a great guy who took good care of us. He is a real biker and very ingenious with the DIY of motorcycles. He installed some hand protectors that Joan no longer used to fix the problem with the mittens. Thank you very much, Ignacio, let&#39;s see if we see each other soon and go back to ride around with the motorcycles.</p>
<h3 id="meeting-with-yamaha-midland-and-other-formalities">Meeting with Yamaha, Midland and other formalities</h3>
<p>The next day, Wednesday, was a very good day, we didn&#39;t stop doing things. The most important was the meeting we had with the management of Yamaha Motor Spain. Although we don&#39;t want to talk too much about it because we are still in the negotiation stage. If in the end, we reach an agreement, there will be time to tell you about it in detail. For now, we can only say that they like the project very much and that we are doing our best to encourage them to collaborate.</p>
<p>We also visited our already confirmed sponsor, Midland. They will provide us with walkies and intercoms so that we can always be well communicated =) David was very kind to explain to us all the advantages (which are not a few) of Bluetooth technology, which allows us to have two-way conversations at the same time and be able to listen to the sound of the phone, GPS and MP3. A marvel that can not be missing to any group of bikers who intend to make a long trip.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/midland_pnhvh6.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/midland_pnhvh6.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/midland_pnhvh6-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/midland_pnhvh6-mobile.jpg" />
          <img class="image" src="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/midland_pnhvh6.jpg" alt="midland" loading="lazy">
        </picture>
        <figcaption>midland</figcaption>
      </figure></p>
<p>In between the visits to the sponsors, we also took the opportunity to start the visa procedures for Mongolia. It seems that everything is in order and now we just have to wait for our passports to be returned. Then we went to visit some motorcycle stores and have some good beers in the best biker pub in Barcelona, the Paddock. A fantastic Guinness, with great friends like Federico-Varadero and Ignacio-Tíger and all those nice people with gasoline in their veins who frequent this great biker corner. Thank you very much!</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/5_w3i0th.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/5_w3i0th.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/5_w3i0th-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/5_w3i0th-mobile.jpg" />
          <img class="image" src="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/5_w3i0th.jpg" alt="5" loading="lazy">
        </picture>
        <figcaption>5</figcaption>
      </figure></p>
<p>We sold some t-shirts for the trip, thanks! and we also decided to have a small party, if everything goes well, on June 6th at dusk, being already started the route to Japan and taking advantage of our passage through Barcelona.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/6_gen06b.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/6_gen06b.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/6_gen06b-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/6_gen06b-mobile.jpg" />
          <img class="image" src="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/6_gen06b.jpg" alt="6" loading="lazy">
        </picture>
        <figcaption>6</figcaption>
      </figure></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/7_ybsedb.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/7_ybsedb.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/7_ybsedb-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/7_ybsedb-mobile.jpg" />
          <img class="image" src="/blog/trip-to-barcelona-meet-yamaha-and-midland/images/7_ybsedb.jpg" alt="7" loading="lazy">
        </picture>
        <figcaption>7</figcaption>
      </figure></p>
<p>And so end these intense and pleasant days, a lot of bike and emotions, about 530 kilometers there and back, with good friends, happy to travel by bike and work to make our dreams come true. Take care of yourselves and see if you can get us T-shirts, we need your help, thanks in advance and a big hug to all of you.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/trip-to-barcelona-meet-yamaha-and-midland/images/4_kuyxuc.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[We already have the first t-shirts]]></title>
            <link>https://www.joanmira.com/blog/we-already-have-the-first-shirts</link>
            <guid>https://www.joanmira.com/blog/we-already-have-the-first-shirts</guid>
            <pubDate>Thu, 08 Apr 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[We continue with great energy the preparations for the trip.]]></description>
            <content:encoded><![CDATA[<p>Thanks to our sponsor EstampAlicante, we got the first run of 100 t-shirts. Thank you very much ;-)</p>
<p>From today we can send you the t-shirts in exchange for a small donation of 9€ :-) To order them, you can do it from <a href="http://rutasamurai.herokuapp.com/Camisetas/ver-todos-productos.html">here</a>.</p>
<p>We have 13 of size XS (the smallest), 4 of size S, 39 of size M, 28 of size L and 12 of size XL (the biggest). Hurry up, they are running out!</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/we-already-have-the-first-shirts/images/camisetas_i5qeeq.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[1001 movies to watch before you die]]></title>
            <link>https://www.joanmira.com/blog/1001-movies-to-watch-before-you-die</link>
            <guid>https://www.joanmira.com/blog/1001-movies-to-watch-before-you-die</guid>
            <pubDate>Wed, 24 Mar 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[A reference to keep in mind for movie lovers]]></description>
            <content:encoded><![CDATA[<p>If you were searching the Internet for a list of the best movies in history, you&#39;re in the right place. Below you will find the 1001 movies that I have decided to watch (in original version with subtitles) before I die. They are probably the best movies in the history of cinema and watching them all will be easy, the hardest part will be to find some of the most <em>oldies</em>.</p>
<p>This list (or a very similar one) is also <a href="http://www.amazon.com/1001-Movies-You-Must-Before/dp/0764161512/ref=sr-1-1?ie=UTF8&amp;qid=1306874610&amp;sr=8-1">available in book</a> - (in case you find that format more convenient).</p>
<p>If you don&#39;t have much time to spare, you might be interested in seeing the list of <a href="https://www.lavanguardia.com/cribeo/cultura/20150828/47374779015/25-peliculas-que-debes-ver-antes-de-los-25.html">the 25 movies you must see before you die</a> and the <a href="https://cocalecas.net/2014/01/25-documentales-que-tienes-que-ver-antes-de-morir/">25 documentaries you must see before you die</a>.</p>
<h3 id="from-1900-to-1920">From 1900 to 1920</h3>
<ul>
<li>1902 – <a href="http://www.imdb.com/title/tt0000417/">Le voyage dans la lune</a> – Viaje a la luna – George Méliès</li>
<li>1903 – <a href="http://www.imdb.com/title/tt0000439/">The Great Train Robbery</a> – Asalto y robo de un tren – Edwin S. Porter</li>
<li>1915 – <a href="http://www.imdb.com/title/tt0004972/">The birth of a nation</a> – El nacimiento de una nación – D.W. Griffith</li>
<li>1915 – <a href="http://www.imdb.com/title/tt0006206/">Les vampires</a> – Los vampiros – Louis Feuillade</li>
<li>1916 – <a href="http://www.imdb.com/title/tt0006864/">Intolerance</a> – Intolerancia – D. W. Griffith</li>
<li>1919 – <a href="http://www.imdb.com/title/tt0010323/">Das kabinett des Doktor Caligari</a> – El gabinete del Doctor Caligari – Robert Wiene</li>
<li>1919 – <a href="http://www.imdb.com/title/tt0009968/">Broken Blossoms</a> – Lirios rotos/La culpa ajena – D. W. Griffith</li>
</ul>
<h3 id="from-1920-to-1930">From 1920 to 1930</h3>
<ul>
<li>1920 – <a href="http://www.imdb.com/title/tt0011841/">Way down east</a> – Las dos tormentas – D. W. Griffith</li>
<li>1920 – <a href="http://www.imdb.com/title/tt0011870/">Within our gates</a> – Puertas adentro – Oscar Micheaux</li>
<li>1921 – <a href="http://www.imdb.com/title/tt0012364/">Korkalen</a> – La carreta fantasma – Victor Sjöström</li>
<li>1921 – <a href="http://www.imdb.com/title/tt0012532/">Orphans of the storm</a> – Las dos huérfanas – D. W. Griffith</li>
<li>1922 – <a href="http://www.imdb.com/title/tt0013626/">La souriante Madame Beudet</a> – La sonriente Madame Beudet – Germaine Dulac</li>
<li>1922 – <a href="http://www.imdb.com/title/tt0013086/">Dr. Mabuse, der Spieler</a> – Dr. Mabuse – Fritz Lang</li>
<li>1922 – <a href="http://www.imdb.com/title/tt0013427/">Nanook of the Nord</a> – Nanook el esquimal – Robert J. Flaherty</li>
<li>1922 – <a href="http://www.imdb.com/title/tt0013442/">Nosferatu, eine Symphonie des Grauens</a> – Nosferatu el No Muerto – Murnau</li>
<li>1922 – <a href="http://www.imdb.com/title/tt0013257/">Häxan (Witchcraft through the ages)</a> – Häxan: la brujería… – Benjamin Christensen</li>
<li>1922 – <a href="http://www.imdb.com/title/tt0013140/">Foolish wives</a> – Esposas frívolas – Erich v. stroheim</li>
<li>1923 – <a href="http://www.imdb.com/title/tt0014341/">Our hospitality</a> – La ley de la hospitalidad – Buster Keaton</li>
<li>1923 – <a href="http://www.imdb.com/title/tt0014417/">La roue</a> – La rueda – Abel Gance</li>
<li>1924 – <a href="http://www.imdb.com/title/tt0015400/">The Thief of Bagdad</a> – El ladrón de Bagdad – Raoul Walsh</li>
<li>1924 – <a href="http://www.imdb.com/title/tt0015361/">Stachka</a> – La huelga – Sergei Eisenstein</li>
<li>1924 – <a href="http://www.imdb.com/title/tt0015881/">Greed</a> – Avaricia – Erich v. stroheim</li>
<li>1924 – <a href="http://www.imdb.com/title/tt0015324/">Sherlock, Jr.</a> – El moderno Sherlock Holmes – Buster Keaton</li>
<li>1924 – <a href="http://www.imdb.com/title/tt0015064/">Der Letzte Mann</a> – El último – Murnau</li>
<li>1925 – <a href="http://www.imdb.com/title/tt0016332/">Seven chances</a> – Siete ocasiones – Buster Keaton</li>
<li>1925 – <a href="http://www.imdb.com/title/tt0016220/">Phantom of the Opera</a> – El fantasma de la Ópera – Rupert Julian</li>
<li>1925 – <a href="http://www.imdb.com/title/tt0015648/">Bronenosec Potyomkin</a> – Acorazado Potemkim – Sergei Eisenstein</li>
<li>1925 – <a href="http://www.imdb.com/title/tt0015864/">The Gold Rush</a> – La quimera del oro – Charles Chaplin</li>
<li>1925 – <a href="http://www.imdb.com/title/tt0015624/">The big parade</a> – El gran desfile – King Vidor</li>
<li>1927 – <a href="http://www.imdb.com/title/tt0017136/">Metropolis</a> – Metrópolis – Fritz Lang</li>
<li>1927 – <a href="http://www.imdb.com/title/tt0018455/">Sunrise</a> – Amanecer – Murnau</li>
<li>1927 – <a href="http://www.imdb.com/title/tt0017925/">The General</a> – El maquinista de La General – Buster Keaton</li>
<li>1927 – <a href="http://www.imdb.com/title/tt0018528/">The Unknown</a> – Garras humanas – Tod Browning</li>
<li>1927 – <a href="http://www.imdb.com/title/tt0018217/">Oktjabr</a> – Octubre – Sergei Eisenstein</li>
<li>1927 – <a href="http://www.imdb.com/title/tt0018037/">The Jazz singer</a> – El cantor de Jazz – Alan Crosland</li>
<li>1927 – <a href="http://www.imdb.com/title/tt0018192/">Napoleon</a> – Napoleón – Abel Gance</li>
<li>1927 – <a href="http://www.imdb.com/title/tt0018051/">The Kid Brother</a> – El hermanito – J.A. Howe, Ted Wilde (Harold Lloyd)</li>
<li>1928 – <a href="http://www.imdb.com/title/tt0018806/">The Crowd</a> – Y el mundo marcha… – King Vidor</li>
<li>1928 – <a href="http://www.imdb.com/title/tt0018839/">The Docks Of New York</a> – Los muelles de Nueva York – Josef von Sternberg</li>
<li>1928 – <a href="http://www.imdb.com/title/tt0020530/">Un chien andalou</a> – Un perro andaluz – Luis Buñuel</li>
<li>1928 – <a href="http://www.imdb.com/title/tt0019254/">La Passion de Jeanne D’Arc</a> – La Pasión de Juana – Carl Theodor Dreyer</li>
<li>1928 – <a href="http://www.imdb.com/title/tt00-19421/">Steamboat Bill, Jr.</a> – El héroe del río – Charles Reisner Keaton</li>
<li>1928 – <a href="http://www.imdb.com/title/tt0019286/">Potomok Chingos-Khana</a> – Tempestad sobre Asia – Vsevolod Pudovkin</li>
<li>1929 – <a href="http://www.imdb.com/title/tt0019702/">Blackmail</a> – La muchacha de Londres – Alfred Hitchcock</li>
<li>1929 – <a href="http://www.imdb.com/title/tt0019760/">Čelovjek s Kinoapparatom</a> – El hombre de la cámara – Dziga Vertov (Дзига Вертов)</li>
<li>1929 – <a href="http://www.imdb.com/title/tt0018737/">Die Büchse der Pandora</a> – La caja de Pandora (Lulú) – Georg Wilhelm Pabst</li>
</ul>
<h3 id="from-1930-to-1940">From 1930 to 1940</h3>
<ul>
<li>1930 – <a href="http://www.imdb.com/title/tt0020697/">Der Blaue Engel</a> – El Ángel Azul – Josef von Sternberg</li>
<li>1930 – <a href="http://www.imdb.com/title/tt0021577/">L’age d’or</a> – La edad de Oro – Luis Buñuel</li>
<li>1930 – <a href="http://www.imdb.com/title/tt0021571/">Zemlya</a> – La Tierra – Aleksandr Dovzhenko</li>
<li>1930 – <a href="http://www.imdb.com/title/tt0021079/">Little Caesar</a> – Hampa dorada – Mervyn LeRoy</li>
<li>1930 – <a href="http://www.imdb.com/title/tt0020629/">All quiet on the wester front</a> – Sin novedad en el frente – Lewis Milestone</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0022599/">À nous la liberté</a> – Viva la libertad – René Clair</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0022150/">Le million</a> – El millón – René Clair</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0022458/">Tabu</a> – Tabú – Murnau y Flaherty</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0021814/">Dracula</a> – Drácula – Tod Browning</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0021884/">Frankestein</a> – El doctor Frankenstein – James Whale</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0021749/">City LIights</a> – Luces de la ciudad – Charles Chaplin</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0022286/">The public enemy</a> – El enemigo público – William A. Wellman</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0022100/">M</a> – M, el vampiro de Dusseldorf – Fritz Lang</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0021739/">La chienne</a> – La golfa – Jean Renoir</li>
<li>1931 – <a href="http://www.imdb.com/title/tt0023649/">Vampyr (Der Traum des Allan Grey)</a> – Vampyr, la bruja vampiro – Carl Theodor Dreyer</li>
<li>1932 – <a href="http://www.imdb.com/title/tt0023158/">Love me tonight</a> – Ámame esta noche – Rouben Mamoulian</li>
<li>1932 – <a href="http://www.imdb.com/title/tt0022718/">Boudu sauvé des eaux</a> – Boudu salvado de las aguas – Jean Renoir</li>
<li>1932 – <a href="http://www.imdb.com/title/tt0023042/">I am a fugitive from a chain gang</a> – Soy un fugitivo – Mervyn LeRoy</li>
<li>1932 – <a href="http://www.imdb.com/title/tt0023622/">Trouble in Paradise</a> – Un ladrón en la alcoba – Ernst Lubitsch</li>
<li>1932 – <a href="http://www.imdb.com/title/tt0023427/">Scarface: The shame of a Nation</a> – Scarface, el terror del hampa – Howard Hawks</li>
<li>1932 – <a href="http://www.imdb.com/title/tt0023458/">Shanghai express</a> – El expreso de Shanghai – Joseph Von Sternberg</li>
<li>1932 – <a href="http://www.imdb.com/title/tt0022913/">Freaks</a> – La parada de los monstruos – Tod Browning</li>
<li>1932 – <a href="http://www.imdb.com/title/tt0023202/">Me and my gal</a> – Mi chica y yo – Raoul Walsh</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0024803/">Zero de conduite</a> – Cero en conducta – Jean Vigo</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0024034/">42nd Street</a> – La calle 42 – Lloyd Bacon</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0024028/">Footlight Parade</a> – Desfile de candilejas – Lloyd Bacon</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0024069/">Gold diggers of 1933</a> – Vampiresas From 1933 – Mervin Le Roy</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0024906/">Born to Be Bad</a> – Nacida para ser mala – Lowell Sherman</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0023969/">Duck soap</a> – Sopa de ganso – Leo McCarey [los hermanos Marx]</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0024481/">Queen Christina</a> – La reina Cristina de Suecia – Rouben Mamoulian</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0023037/">Las Hurdes (Tierra sin pan)</a> – Luis Buñuel</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0024216/">King Kong</a> – King Kong – Merian C. Cooper, Ernest B. Schoedsack</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0023814/">The bitter tea of General Yen</a> – La amargura del General Yen – Frank Capra</li>
<li>1933 – <a href="http://www.imdb.com/title/tt0024601/">Sons of the desert</a> – Compañeros de juerga – Wiliam A. Seiter (El Gordo y el Flaco)</li>
<li>1934 – <a href="http://www.imdb.com/title/tt0025318/">It’s a gift</a> – Norman Z. McLeod</li>
<li>1934 – <a href="http://www.imdb.com/title/tt0025913/">Triumph des Willens</a> – Triunfo de la voluntad – Leni Riefenstahl</li>
<li>1934 – <a href="http://www.imdb.com/title/tt0024844/">L’Atalante</a> – L’Atalante – Jean Vigo</li>
<li>1934 – <a href="http://www.imdb.com/title/tt0024894/">The black cat</a> – Satanás – Edgar G. Ulmer</li>
<li>1934 – <a href="http://www.imdb.com/title/tt0025335/">Judge Priest</a> – El juez Priest – John Ford</li>
<li>1934 – <a href="http://www.imdb.com/title/tt0025316/">It Happened one night</a> – Sucedió una noche – Frank Capra</li>
<li>1934 – <a href="http://www.imdb.com/title/tt0025878/">The thin man</a> – La cena de los acusados – W.S. Van Dyke</li>
<li>1935 – <a href="http://www.imdb.com/title/tt0026174/">Captain Blood</a> – El capitán Blood – Michael Curtiz</li>
<li>1935 – <a href="http://www.imdb.com/title/tt0026752/">Mutiny on the Bounty</a> – La tragedia de la Bountry – Frank Lloyd</li>
<li>1935 – <a href="http://www.imdb.com/title/tt0026778/">Night at the opera</a> – Una noche en la ópera – Sam Wood (Hermanos Marx)</li>
<li>1935 – <a href="http://www.imdb.com/title/tt0026029/">The 39 steps</a> – 39 escalones – Alfred Hitchcock</li>
<li>1935 – <a href="http://www.imdb.com/title/tt0026138/">Bride of Frankenstein</a> – La novia de Frankenstein – James Whale</li>
<li>1935 – <a href="http://www.imdb.com/title/tt0027125/">Top hat</a> – Sombrero de copa – Mark Sandrich</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0028445/">Une partie de campagne</a> – Día de campo – Jean Renoir</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0027977/">Modern Times</a> – Tiempos modernos – Charles Chaplin</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0028333/">Swing Time</a> – En alas de la danza – George Stevens</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0028010/">My man Godfrey</a> – Al servicio de las damas – Gregory La Cava</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0027996/">Mr. Deeds goes to town</a> – El secreto de vivir – Frank Capra</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0028683/">Camille</a> – Margarita Gautier – George Cukor</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0035279/">Sabotage</a> – Sabotaje – Alfred Hitchcock</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0027532/">Dodsworth</a> – Desengaño – William Wyler</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0028358/">Things to come</a> – La vida futura – William Cameron Menzies</li>
<li>1936 – <a href="http://www.imdb.com/title/tt0028201/">Le roman d’un tricheur</a> – La novela de un tramposo – Sacha Guitry</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0028691/">Captain courageous</a> – Capitanes intrépidos – Víctor Fleming</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0206442/">Ye ban ge sheng</a> – Canción de medianoche – Weibang Ma-Xu</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0028950/">La grande illusion</a> – La gran ilusión – Jean Renoir</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0029146/">The life of Emile Zola</a> – La vida de Emile Zola – William Dieterle</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0029608/">Stella Dallas</a> – Stella Dallas – King Vidor</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0029192/">Make way for tomorrow</a> – Dejad paso al mañana – Leo McCarey</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0029583/">Snow White and the Seven Dwarves</a> – Blancanieves y los Siete enanitos – Disney</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0028597/">The Awful Truth</a> – La pícara puritana – Leo McCarey</li>
<li>1937 – <a href="http://www.imdb.com/title/tt0029453/">Pepe le Moko</a> – Pepe le Moko – Julien Duvivier</li>
<li>1938 – <a href="http://www.imdb.com/title/tt0030287/">Jezebel</a> – Jezabel – William Wyler</li>
<li>1938 – <a href="http://www.imdb.com/title/tt0029843/">The adventures of Robin Hood</a> – Robin de los bosques – Michael Curtiz, William Keighley</li>
<li>1938 – <a href="http://www.imdb.com/title/tt0029870/">Angels with dirty faces</a> – Ángeles con caras sucias – Michael Curtiz</li>
<li>1938 – <a href="http://www.imdb.com/title/tt0030522/">Olympia</a> – Olimpia – Leni Riefenstahl</li>
<li>1938 – <a href="http://www.imdb.com/title/tt0030127/">La femme du boulanger</a> – El pan y el perdón – Marcel Pagnol</li>
<li>1938 – <a href="http://www.imdb.com/title/tt0029947/">Bringing up baby</a> – La fiera de mi niña – Howard Hawks</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031971/">Stagecoach</a> – La diligencia – John Ford</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0032156/">Zangiku Monogatari</a> – La historia del último Crisantemo – Kenji Mizoguchi</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031066/">Babes in arms</a> – Hijos de la Farándula – Busby Berkeley</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031679/">Mr. Smith goes to Washington</a> – Caballero sin espada – Frank Capra</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0032138/">The Wizard Of Oz</a> – El mago de Oz – Victor Fleming y otros</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031225/">Destry rides again</a> – Arizona – George Marshall</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031762/">Only angels have wings</a> – Solo los ángeles tienen alas – Howard Hawks</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031381/">Gonne with the wind</a> – Lo que el viento se llevó – Victor Fleming</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031514/">Le jour se léve</a> – Marcel Carné</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031398/">Gunga Din</a> – Gunga Din – George Stevens</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031725/">Ninotchka</a> – Ninotchka – Ernst Lubitsch</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0031885/">La regle du jeu</a> – La regla del juego – Jean Renoir</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0032145/">Wuthering Heights</a> – Cumbres borrascosas – William Wyler</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0032599/">His girl friday</a> – Luna nueva – Howard Hawks</li>
<li>1939 – <a href="http://www.imdb.com/title/tt0032976/">Rebecca</a> – Rebeca – Alfred Hitchckock</li>
</ul>
<h3 id="from-1940-to-1950">From 1940 to 1950</h3>
<ul>
<li>1940 – <a href="http://www.imdb.com/title/tt0032455/">Fantasia</a> – Fantasía – Disney</li>
<li>1940 – <a href="http://www.imdb.com/title/tt0032904/">The Philadelphia Story</a> – Historias de Filadelfia – George Cukor</li>
<li>1940 – <a href="http://www.imdb.com/title/tt0032551/">The Grapes of Wrath</a> – Las uvas de la ira – John Ford</li>
<li>1940 – <a href="http://www.imdb.com/title/tt0032376/">Dance, girl, dance</a> – Dance, girl, dance – Dorothy Arzner</li>
<li>1940 – <a href="http://www.imdb.com/title/tt0032910/">Pinocchio</a> – Pinocho – Disney</li>
<li>1940 – <a href="http://www.imdb.com/title/tt0032811/">The mortal Storm</a> – Tormenta mortal – Frank Borzage</li>
<li>1940 – <a href="http://www.imdb.com/title/tt0032234/">The Bank Dick</a> – Edward F. Cline</li>
<li>1940 – <a href="http://www.imdb.com/title/tt0033467/">Citizen Kane</a> – Ciudadano Kane – Orson Welles</li>
<li>1941 – <a href="http://www.imdb.com/title/tt0033804/">The Lady Eve</a> – Las tres noches de Eva – Preston Sturges</li>
<li>1941 – <a href="http://www.imdb.com/title/tt0034398/">The Wolf Mann</a> – El hombre lobo – George Waggner</li>
<li>1941 – <a href="http://www.imdb.com/title/tt0033870/">The Maltese Falcon</a> – El Halcón Maltés – John Huston</li>
<li>1941 – <a href="http://www.imdb.com/title/tt0034167/">Sergeant York</a> – El sargento York – Howard Hawks</li>
<li>1941 – <a href="http://www.imdb.com/title/tt0033563/">Dumbo</a> – Dumbo – Disney</li>
<li>1941 – <a href="http://www.imdb.com/title/tt0033717/">High Sierra</a> – El último refugio – Raoul Walsh</li>
<li>1941 – <a href="http://www.imdb.com/title/tt0034240/">Sullivan’s Travels</a> – Los viajes de Sullivan – Preston Sturges</li>
<li>1941 – <a href="http://www.imdb.com/title/tt0033729/">How green was my Valley</a> – Qué verde era mi valle – John Ford</li>
<li>1942 – <a href="http://www.imdb.com/title/tt0035169/">The Palm Beach Story</a> – Un marido rico – Preston Sturges</li>
<li>1942 – <a href="http://www.imdb.com/title/tt0035140/">Now, Voyager</a> – La extraña pasajera – Max Steiner</li>
<li>1942 – <a href="http://www.imdb.com/title/tt0034583/">Casablanca</a> – Casablanca – Michael Curtiz</li>
<li>1942 – <a href="http://www.imdb.com/title/tt0035446/">To be or not to be</a> – Ser o no ser – Ernst Lubitsch</li>
<li>1942 – <a href="http://www.imdb.com/title/tt0034587/">Cat People</a> – La mujer pantera – Jacques Tourneur</li>
<li>1942 – <a href="http://www.imdb.com/title/tt0035015/">The Magnificent Ambersons</a> – El cuarto Mandamiento – Orson Welles</li>
<li>1942 – <a href="http://www.imdb.com/title/tt0035575/">Yankee Doodle Dandy</a> – Yanqui Dandy – Michael Curtiz, James Cagney</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0036154/">Meshes of the afternoon</a> – Maya Deren</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0035881/">Fires were started</a> – El fuego comenzó – Humphrey Jennings</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0036135/">The man in grey</a> – Perfidia – Leslie Arliss</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0036112/">The life and death of Colonel Blimp</a> – Vida y muerte del… – M. Powell, E. Pressburger</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0036027/">I walked with a Zombie</a> – Yo anduve con un zombie – Jacques Tourneur</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0036341/">The seventh victim</a> – La séptima víctima – Mark Robson</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0036244/">The Ox-Bow Incident</a> – Incidente en Ox-Bow – William A. Wellman</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0036342/">Shadow of a doubt</a> – La sombra de una duda – Alfred Hitchcock</li>
<li>1943 – <a href="http://www.imdb.com/title/tt0035160/">Ossessione</a> – Obsesión – Visconti</li>
<li>1944 – <a href="http://www.imdb.com/title/tt0037059/">Meet me in St. Louis</a> – Cita en San Louis – Vincente Minnelli</li>
<li>1944 – <a href="http://www.imdb.com/title/tt0037382/">To have and have not</a> – Tener y no tener – Howard Hawks</li>
<li>1944 – <a href="http://www.imdb.com/title/tt0037008/">Laura</a> – Laura – Otto Preminger</li>
<li>1944 – <a href="http://www.imdb.com/title/tt0036855/">Gaslight (The Murder in Thornton Square)</a> – Luz que agoniza – George Cukor</li>
<li>1944 – <a href="http://www.imdb.com/title/tt0036910/">Henry V</a> – Enrique V – Laurence Olivier</li>
<li>1944 – <a href="http://www.imdb.com/title/tt0037824/">Ivan Grozni I y II</a> – Iván el Terrible 1ª y 2ª parte – Eisenstein</li>
<li>1944 – <a href="http://www.imdb.com/title/tt0036775/">Double Indemnity</a> – Perdición – Billy Wilder</li>
<li>1944 – <a href="http://www.imdb.com/title/tt0037101/">Murder, my sweet / Farewell, my lovely</a> – Historia de un dectective – Edward Dmytryk</li>
<li>1945 – <a href="http://www.imdb.com/title/tt0036630/">The battle of San Pietro</a> – John Huston</li>
<li>1945 – <a href="http://www.imdb.com/title/tt0038109/">Spellbound</a> – Recuerda – Alfred Hitchcock</li>
<li>1945 – <a href="http://www.imdb.com/title/tt0037913/">Mildred Pierce</a> – Alma en suplicio – Michael Curtiz</li>
<li>1945 – <a href="http://www.imdb.com/title/tt0037674/">Les enfants du Paradis</a> – Los niños del paraíso – Marcel Carné</li>
<li>1945 – <a href="http://www.imdb.com/title/tt0038890/">Roma, cittá aperta</a> – Roma, ciudad abierta – Roberto Rossellini</li>
<li>1945 – <a href="http://www.imdb.com/title/tt0037884/">The lost weekend</a> – Días sin huella – Billy Wilder</li>
<li>1945 – <a href="http://www.imdb.com/title/tt0037638/">Detour</a> – Detour – Edgar G. Ulmer</li>
<li>1945 – <a href="http://www.imdb.com/title/tt0037800/">I Know where I’m going</a> – Sé adonde voy – Michael Powell y Emeric Pressburger</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0036868/">The best years of our lives</a> – Los mejores años de nuestra vida – William Wyler</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0037558/">Brief encounter</a> – Breve encuentro – David Lean</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038823/">Paisa</a> – Camarada – Roberto Rossellini</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038854/">The Postman always rings twice</a> – El cartero siempre llama dos veces – Tay Garnett</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038762/">My darling Clementine</a> – La pasión de los fuertes – John Ford</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038991/">The stranger</a> – El extraño – Orson Welles</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038348/">La Belle et la Bete</a> – Jean Cocteau</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038355/">The big sleep</a> – El sueño eterno – Howard Hawks</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038669/">The killers</a> – Forajidos – Robert Siodmak</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038733/">A matter of life and death (Stairway to Heaven)</a> – A vida o muerte – M. Powell, E. Pressburger</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038574/">Great expectations</a> – Cadenas rotas – David Lean</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038787/">Notorious</a> – Encadenados – Alfred Hitchcock</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0039192/">Black narcissus</a> – Narciso negro – Micahel Powell, Emeric Pressburger</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038650/">It’s a wonderful life</a> – ¡Qué bello es vivir! – Frank Capra</li>
<li>1946 – <a href="http://www.imdb.com/title/tt0038559/">Gilda</a> – Charles Vidor</li>
<li>1947 – <a href="http://www.imdb.com/title/tt0039631/">Monsieur Verdoux</a> – Charles Chaplin</li>
<li>1947 – <a href="http://www.imdb.com/title/tt0039689/">Out of the past</a> – Retorno al pasado – Jacques Tourneur</li>
<li>1947 – <a href="http://www.imdb.com/title/tt0039420/">The Ghost and Mrs. Muir</a> – El fantasma y la Señora Muir – Joseph L. Mankiewick</li>
<li>1947 – <a href="http://www.imdb.com/title/tt0039677/">Odd man out</a> – Larga es la noche – Carol Reed</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040522/">Ladri di biciclette</a> – Ladrón de bicicletas – Vittorio de Sica</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040536/">Letter from an Unknown Woman</a> – Carta de una desconocida – Max Ophüls</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040766/">Secret beyond the door</a> – Secreto tras la puerta – Fritz Lang</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040366/">Force of evil</a> – La fuerza del destino – Abraham Polonski</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0189219/">Xiao Cheng Zhi Chung</a> – Primavera en una pequeña ciudad – Fei Mu</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040724/">Red River</a> – Río Rojo – Howard Hawks, Arthur Rosson</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040746/">Rope</a> – La soga – Alfred Hitchcock</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040806/">The Snake Pit</a> – Nido de víboras – Anatole Litvak</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040525/">The lady from Shanghai</a> – La dama de Shangai – Orson Wells</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040679/">The paleface</a> – Rostro Pálido – Norman Z. McLeod</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040725/">The red Shoes</a> – Las zapatillas rojas – Michael Powell, Emeric Pressburger</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040897/">The Treasure of the Sierra Madre</a> – El tesoro de Sierra Madre – John Huston</li>
<li>1948 – <a href="http://www.imdb.com/title/tt0040550/">Louisiana Story</a> – Robert J. Flaherty</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0041452/">The heiress</a> – La heredera – William Wyler</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0041546/">Kind hearts and coronets</a> – Ocho sentencias a muerte – Robert Hamer</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0042530/">Gun crazy (Deadly is the female)</a> – El demonio de las armas – Joseph H. Lewis</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0041090/">Adam’s rib</a> – La costilla de Adán – George Cukor</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0042040/">Whiski galore!</a> – Alexander Mackendrick</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0042041/">White heat</a> – Al rojo vivo – Raoul Walsh</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0041786/">The reckless moment</a> – Almas desnudas – Max Ophüls</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0041959/">The third man</a> – El tercer hombre – Carol Reed</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0041716/">On the town</a> – Un día en Nueva York – Stanley Donen, Gene Kelly</li>
<li>1949 – <a href="http://www.imdb.com/title/tt0041719/">Orphee</a> – Orfeo – Jean Cocteau</li>
</ul>
<h3 id="from-1950-to-1960">From 1950 to 1960</h3>
<ul>
<li>1950 – <a href="http://www.imdb.com/title/tt0042208/">The Asphalt Jungle</a> – La jungla de asfalto – John Huston</li>
<li>1950 – <a href="http://www.imdb.com/title/tt0042876/">Rashomon</a> – Akira Kurosawa</li>
<li>1950 – <a href="http://www.imdb.com/title/tt0043137/">Winchester ’73</a> – Anthony Mann</li>
<li>1950 – <a href="http://www.imdb.com/title/tt0042895/">Rio Grande</a> – John Ford</li>
<li>1950 – <a href="http://www.imdb.com/title/tt0042192/">All about Eve</a> – Eva al desnudo – Joseph L. Mankiewick</li>
<li>1950 – <a href="http://www.imdb.com/title/tt0043014/">Sunset Blvd.</a> – El crepúsculo de los dioses – Billy Wilder</li>
<li>1950 – <a href="http://www.imdb.com/title/tt0042804/">Los olvidados</a> – Luis Buñuel</li>
<li>1950 – <a href="http://www.imdb.com/title/tt0042593/">In a lonely Place</a> – En un lugar solitario – Nicholas Ray</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0043338/">The big carnival</a> – El gran carnaval – Billy Wilder</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0044081/">A Streetcar Named Desire</a> – Un tranvía llamado deseo – Elia Kazan</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0044079/">Extrangers on a Train</a> – Extraños en un tren – Alfred Hitchcock</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0044829/">The Lavender Hill Mob</a> – Oro en barras – Charles Crichton</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0043899/">Pandora and the Flying Dutchman</a> – Pandora y el holandés errante – Albert Lewin</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0043265/">The African Queen</a> – La Reina de África – John Huston</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0042619/">Journal d’un curé de campagne</a> – Diario de un cura de campaña – Robert Bresson</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0043278/">Un american in Paris</a> – Un americano en París – Vincente Minnelli</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0043924/">A Place in the Sun</a> – Un lugar en el sol – George Stevens</li>
<li>1951 – <a href="http://www.imdb.com/title/tt0043456/">The Day the Earth Stood Still</a> – Ultimátum a la Tierra – Robert Wise</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0045061/">The Quiet Man</a> – El hombre tranquilo – John Ford</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0043686/">Jeux interdits</a> – Juegos prohibidos – René Clément</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0044357/">Angel Face</a> – Cara de ángel – Otto Preminger</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0045152/">Singin’ in the Rain</a> – Cantando bajo la lluvia – Stanley Donen</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0044741/">Ikiru</a> – Vivir – Akira Kurosawa</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0043511/">Europa ’51</a> – Roberto Rossellini</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0044391/">The Bad and the Beautiful</a> – Cautivos del mal – Vincente Minnelli</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0044419/">The Big Sky</a> – Ríos de sangre – Howard Hawks</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0044706/">High Noon</a> – Solo ante el peligro – Fred Zinnermann</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0045274/">Umberto D</a> – Vittorio de Sica</li>
<li>1952 – <a href="http://www.imdb.com/title/tt0044487/">Le carrosse d’or</a> – La carroza de oro – Jean Renoir</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0045557/">The Bigamist</a> – El bígamo – Ida Lupino</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0045537/">The Band Wagon</a> – Melodías de Broadway – Vincente Minnelli</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046022/">Madame de…</a> – Max Ophüls</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0045793/">From here to eternity</a> – De aquí a la eternidad – Fred Zinnermann</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046438/">Tokyo Monogatari</a> – Cuentos de Tokio – Yasujiro Ozu</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046250/">Roman Holiday</a> – Vacaciones en Roma – William Wyler</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046268/">Le salaire de la peur</a> – El salario del miedo – Henri-Georges Clouzot</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0044953/">The Naked Spur</a> – Colorado Jim – Anthony Mann</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046187/">Pickup on South Street</a> – Manos peligrosas – Samuel Fuller</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0045810/">Gentlemen Prefer Blondes</a> – Los caballeros las prefieren rubias – Howard Hawks</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0045555/">The Big Heat</a> – Los sobornados – Fritz Lang</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046487/">Les vacances de M. Hulot</a> – Las vacaciones de Monsieur Hulot – Jacques Tati</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046511/">Viaggio in Italia</a> – Te querré siempre – Roberto Rossellini</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046478/">Ugetsu Monogatari</a> – Cuentos de la luna pálida – Kenji Mizoguchi</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046303/">Shane</a> – Raíces profundas – George Stevens</li>
<li>1953 – <a href="http://www.imdb.com/title/tt0046414/">Beat the Devil</a> – La burla del diablo – John Huston</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047136/">Johnny Guitar</a> – Nicholas Ray</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047296/">On the Waterfront</a> – La ley del silencio – Elia Kazan</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047472/">Seven Brides for Seven Brothers</a> – Siete novias para siete hermanos – Stanley Donen</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0046911/">Les Diaboliques</a> – Las diabólicas – Henri-Georges Clouzot</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047834/">Animal Farm</a> – Rebelión en la granja – Joy Batchelor, John Halas</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047396/">Rear Window</a> – La ventana indiscreta – Alfred Hitchcock</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047522/">A Star is born</a> – Ha nacido una estrella – George Cukor</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0046754/">The Barefoot Contessa</a> – La condesa descalza – Joseph L. Mankiewicz</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047528/">La Strada</a> – Federico Fellini</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047478/">Shichinin Samurais</a> – Los siete samurais – Akira Kurosawa</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047469/">Senso</a> – Luchino Visconti</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047495/">Silver Lode</a> – Filón de Plata – Allan Dwan</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0046828/">Carmen Jones</a> – Otto Preminger</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047445/">Sanshô Dayu</a> – El intendente Sanshô – Kenji Mizoguchi</li>
<li>1954 – <a href="http://www.imdb.com/title/tt0047443/">Salt of the Earth</a> – La sal de la tierra – Herbert J. Biberman</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0047840/">Artists and Models</a> – Cómicos en París – Frank Tashlin</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048140/">Guys and Dolls</a> – Ellos y ellas – Joseph L. Mankiewicz</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048473/">Pather Panchali</a> – La canción del sendero – Satyajit Ray</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0047849/">Bad Day at Black Rock</a> – Conspiración de silencio – John Sturges</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048363/">Les maîtres fous</a> – Los amos locos – Jean Rouch</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048121/">Hill 24 Doesn’t Answer</a> – La Colina 24 no contesta - Thorold Dickinson</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048281/">The Ladykillers</a> – El quinteto de la muerte – Alexander Mackendrick</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048356/">Marty</a> – Delbert Mann</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048452/">Ordet</a> – La palabra – Carl Theodor Dreyer</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0047892/">Bob le Flambeur</a> – Jean-Pierre Melville</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048261/">Kiss me deadly</a> – El beso mortal – Robert Aldrich</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048342/">The man from Laramie</a> – El hombre de Laramie – Anthony Mann</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048545/">Rebel without Cause</a> – Rebelde sin causa – Nicholas Ray</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048488/">The Phenix City Story</a>- El Imperio del terror – Phil Karlson</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048641/">Sommarnattens Leende</a> – Sonrisas de una noche de verano – Ingmar Bergman</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048434/">Nuit et Brouillard</a> – Noche y niebla – Alain Resnais</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048424/">The Night of the Hunter</a> – La noche del cazador – Charles Laughton</li>
<li>1955 – <a href="http://www.imdb.com/title/tt0048308/">Lola Montès</a> – Lola Montes – Max Ophüls</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049223/">Forbidden Planet</a> – Planeta prohibido – Fred M. Wilcox</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049012/">Biruma No Tategoto</a> – El arpa birmana – Kon Ichikawa</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049730/">The Searchers</a> – Centauros del desierto – John Ford</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049902/">Un condamné a mort s’est echappé</a> – Un condenado a muerte… – Robert Bresson</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049966/">Written in the Wind</a> – Escrito sobre el viento – Douglas Sirk</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049470/">The man who Knowk too Much</a> – El hombre que sabía demasiado – Alfred Hitchcock</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049261/">Giant</a> – Gigante – George Stevens</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0047811/">All the heaven Allows</a> – Solo el cielo lo sabe – Douglas Sirk</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0077745/">Invasion of the Body Snatchers</a> – La invasión de los ladrones de cuerpos – Don Siegel</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0051207/">The Wrong Man</a> – Falso culpable – Alfred Hitchcock</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049010/">Bigger than Life</a> – Delirio de locura – Nicholas Ray</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049314/">High Society</a> – Alta sociedad – Charles Walters</li>
<li>1956 – <a href="http://www.imdb.com/title/tt0049833/">The Ten Commandments</a> – Los Diez Mandamientos – Cecil B. DeMille</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050083/">12 Angry Men</a> – Doce hombres sin piedad – Sidney Lumet</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050976/">Det Sjunde Inseglet</a> – El Séptimo Sello – Ingmar Bergman</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050105/">An Affair to Remember</a> – Tú y yo – Leo McCarey</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050986/">Smultronstället</a> – Fresas salvajes – Ingmar Bergman</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050783/">Le notti di Cabiria</a> – Las noches de Cabiria – Federico Fellini</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050613/">Kumonosu Jo</a> – Trono de sangre – Akira Kurosawa</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050539/">The Incredible Shrinking Man</a> – El increíble hombre menguante – Jack Arnold</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0048956/">Aparajito</a> – El Invencible – Satyajit Ray</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050468/">Gunfight at the OK Corral</a> – Duelo de Titanes – John Sturges</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050212/">The Bridge on the River Kwai</a> – El puente sobre el río Kwai – David Lean</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050188/">Bahrat Mata</a> – Madre India – Mehbood Khan</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050634/">Letjat Zhuravli</a> – Cuando migran las grullas – Mikhell Kalatozov</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0050825/">Paths of Glory</a> – Senderos de gloria – Stanley Kubrick</li>
<li>1957 – <a href="http://www.imdb.com/title/tt0051036/">Sweet Smell of Success</a> – Chantaje en Broadway – Alexander Mackendrick</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0051899/">Man of the West</a> – El hombre del Oeste – Anthony Mann</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0052311/">Touch of Evil</a> – Sed de mal – Orson Welles</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0051390/">Bab El Hadid</a> – Estación Central – Youssef Chahine</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0051658/">Gigi</a> – Vincente Minnelli</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0051525/">The Defiant Ones</a> – Fugitivos – Stanley Kramer</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0052357/">Vertigo</a> – Vértigo (De entre los muertos) – Alfred Hitchcock</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0052080/">Popiól I Diament</a> – Cenizas y diamantes – Andrzej Wajda</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0051554/">Drácula</a> – Terence Fisher</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0050706/">Mon oncle</a> – Mi tío – Jacques Tati</li>
<li>1958 – <a href="http://www.imdb.com/title/tt0051792/">Jalsaghar</a> – El salón de música – Satyajit Ray</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053198/">Les quatre cents copus</a> – Los cuatrocientos golpes – François Truffaut</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053125/">North by Northwest</a> – Con la muerte en los talones – Alfred Hitchcock</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053291/">Some like it hot</a> – Con faldas y a lo loco – Billy Wilder</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0052561/">Anatomy of a murder</a> – Anatomía de un asesinato – Otto Preminger</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053459/">Les yeus sans visage</a> – Ojos sin rostro – Georges Franju</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053220/">Ride lonesone</a> – Cabalgar en solitario – Budd Boetticher, Harry</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053146/">Orfeu negro</a> – Orfeo negro – Marcel Camus</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053270/">Shadows</a> – John Cassavetes</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0052572/">Apur Sansar</a> – El mundo de Apu – Satyajit Ray</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053472/">A bout de souffle</a> – Al final de la escapada – Jean-Luc Godard</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0052618/">Ben Hur</a> – William Wyler</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053168/">Pickpocket</a> – Robert Bresson</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0052893/">Hiroshima mon amour</a> – Alain Resnais</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053221/">Río Bravo</a> – Howard Hawks</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0054407/">Le trou</a> – La evasión – Jacques Becker</li>
<li>1959 – <a href="http://www.imdb.com/title/tt0053390/">Ukigusa</a> – La hierba errante – Yasujiro Ozu</li>
</ul>
<h3 id="from-1960-to-1970">From 1960 to 1970</h3>
<ul>
<li>1960 – <a href="http://www.imdb.com/title/tt0054248/">Rocco e i suoi fratelli</a> – Rocco y sus hermanos – Luchino Visconti</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0053779/">La dolce vita</a> – Federico Fellini</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0054269/">Saturday night and Sunday morning</a> – Sábado noche, domingo mañana – Karel Reisz</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0054389/">Tirez sur le pianiste</a> – Tirad sobre el pianista – François Truffaut</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0053619/">L’avventura</a> – La aventura – Michelangelo Antonioni</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0053967/">The young one</a> – La joven – Luis Buñuel</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0054073/">Meghe dhaka fara</a> – Estrella nublada – Ritwik Ghatak</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0150980/">Hayno</a> – La criada – Kim Ki-young</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0054215/">Psycho</a> – Psicosis – Alfred Hitchcock</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0054067/">La maschera del demonio</a> – La máscara del demonio – Mario Bava</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0054167/">Peeping Tom</a> – El fotógrafo del pánico – Michael Powell</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0053604/">The appartment</a> – El apartamento – Billy Wilder</li>
<li>1960 – <a href="http://www.imdb.com/title/tt0054331/">Spartacus</a> – Espartaco – Kirk Douglas, Edward Lewis</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0055471/">Splendor in the grass</a> – Esplendor en la hierba – Elia Kazan</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0054632/">L’année dernière à Marienbad</a> – El año pasado en Marienbad – Alain Resnais</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0056119/">La jetée</a> - Chris Marker</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0055257/">One-eyed Jacks</a> – El rostro impenetrable – Marlon Brando</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0055093/">Lola</a> – Jacques Demi</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0054698/">Breafast at Tiffany’s</a> – Desayuno con diamantes – Blake Edwards</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0054130/">La notte</a> – La noche – Michelangelo Antonioni</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0055032/">Jules et Jim</a> – François Truffaut</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0055601/">Viridiana</a> – Luis Buñuel</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0055069/">The ladies man</a> – El terror de las chicas – Jerry Lewis</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0055499/">Sasom I en spegel</a> – Como en un espejo – Ingmar Bergman</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0054745/">Chonique d’un été</a> – Edgar Morin, Jean Rouch</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0054997/">The hustler</a> – El buscavidas – Robert Rossen</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0055614/">West side story</a> – Robert Wise</li>
<li>1961 – <a href="http://www.imdb.com/title/tt0057318/">Mondo cane</a> – Este perro mundo – Paolo cavara et al</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0055852/">Cléo de 5 a 7</a> – Agnès Varda</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0058025/">Dog star man</a> – Stan Brakhage</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056444/">Sanma no aji</a> – El sabor del sake – Yasujiro Ozu</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056736/">L’eclisse</a> – El eclipse – Michelangelo Antonioni</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056172/">Lawrence de Arabia</a> – David Lean</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056592/">To kill a Mockinbird</a> – Matar a un ruiseñor – Robert Mulligan</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056218/">The manchurian candidate</a> – El mensajero del miedo – John Frankenheimer</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056193/">Lolita</a> – Stanley Kubrick</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056322/">O pagador de promessas</a> – Anselmo Duarte</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056217/">The Man who Shot Liberty Valance</a> – El hombre que mató a Liberty Valance – John Ford</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056687/">What ever happened to Baby Jane?</a> – ¿Qué fue de Baby Jane? – Robert Aldrich</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056663/">Vivre sa vie: film en douze tableaux</a> – Vivir su vida – Jean-Luc Godard</li>
<li>1962 – <a href="http://www.imdb.com/title/tt0056060/">Heaven and earth magic</a> – Harry Smith</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0056869/">The Birds</a> – Los pájaros – Alfred Hitchcock</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057372/">The Nutty Professor</a> – El profesor chiflado – Jerry Lewis</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0138329/">Blonde Cobra</a> – Ken Jacobs</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0056952/">The cool world</a> – Shirley Clarke</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0056801/">Otto e mezzo</a> – Fellini Ocho y Medio – Federico Fellini</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0054159/">Pasazerka</a> – La pasajera – Witold Lesiewick, Andrezej Munk</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057345/">Le mépris</a> – El desprecio – Jean-Luc Godard</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057163/">Hud</a> – El más salvaje entre mil – Martin Ritt</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057358/">Nattvardsgästerna</a> – Los comulgantes – Ingmar Bergman</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0054880/">Flaming Creatures</a> – Jack Smith</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057115/">The Great Escape</a> – La gran evasión – John Sturges</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057495/">Shock Corridor</a> – Corredor sin retorno – Samuel Fuller</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057091/">Il gattopardo</a> – El gatopardo – Luchino Visconti</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057654/">Vidas secas</a> – Vidas secas – Nelson Pereira dos Santos</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0197719/">Méditerranée</a> – Jean-Daniel Pollet</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0336693/">Khaneh Siah Ast</a> – La casa negra – Forugh Farrokhzad</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057129/">The Haunting</a> – La mansión encantada – Robert Wise</li>
<li>1963 – <a href="http://www.imdb.com/title/tt0057710/">Yukinojo henge</a> – La venganza de un actor – Kon Ichikawa</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0057490/">The servant</a> – El sirviente – Joseph Losey</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058150/">Goldfinger</a> – James Bond contra Goldfinger – Guy Hamilton</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058555/">Scorpio Rising</a> – Kenneth Anger</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058450/">Les parapluies de Cherbourg</a> – Los paraguas de Cherburgo – Jacques Demi</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058329/">Marnie – Marnie, la ladrona</a> – Alfred Hitchcock</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058385/">My fair lady</a> – George Cukor</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058625/">Suna no onna</a> – La mujer de arena – Hiroshi Teshigahara</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0057012/">Dr. Strangelove or…</a> – ¿Teléfono rojo? Volamos hacia Moscú – Stanley Kubrick, Victor Lyndon</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058182/">A Hard day’s Night</a> – ¡Qué noche la de aquel día! – Richard Lester</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058003/">Il desserto rosso</a> – Desierto rojo – Michelangelo Antonioni</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058642/">Tini Zabutykh Predkiv</a> – Sombras de antepasados olvidados – Sergei Parajanov</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058333/">Masque of the Red Death</a> – La máscara de la muerte roja – Roger Corman</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0056371/">Prima della revolutione</a> – Antes de la revolución – Bernardo Bertolucci</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058138/">Gertrud</a> – Carl Theodor Dreyer</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058715/">Il vangelo secondo Mateo</a> – El evangelio según San Mateo – Pier Paolo Pasolini</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058006/">Deus e o diabo na terra do sol</a> – Dios y el diablo en la tierra del sol – Glauber Rocha</li>
<li>1964 – <a href="http://www.imdb.com/title/tt0058430/">Onibaba</a> – El demonio – Kaneto Shindô</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059880/">Vinyl</a> – Andy Warhol</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059527/">Obchod na korze</a> – La tienda en la calle mayor – Jan-Kadar, Elmar Klos</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059113/">Doctor Zhivago</a> – David Lean</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059894/">The War Game</a> – El juego de la guerra – Peter Watkins</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059817/">Tokio orimpikku</a> – Olimpíada de Tokio – Kon Ichikawa</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0058946/">La batagglia di Algeri</a> – La batalla de Argel – Robert Wise</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059742/">The sound of Music</a> – Sonrisas y lágrimas – Robert Wise</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059643/">Rekopis znaleziony w Saragossie</a> – El manuscrito encontrado en Zaragoza – Wojciech Has</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0058898/">Alphaville, une étrange aventure de Lemmy Caution</a> – Lemmy contra Alphaville – Jean-Luc Godard</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059012/">Chimes at Midnight</a> – Campanadas a medianoche – Orson Welles</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059646/">Repulsion</a> – Repulsión – Roman Polnaski</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059229/">Giulietta degli spiriti</a> – Giulietta de los espíritus – Federico Fellini</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059592/">Pierrot le fou</a> – Pierrot el Loco – Jean-Lic Godard</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0059170/">Faster, Pussycat! Kill! Kill!</a> – Russ Meyer</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0056537/">Subarnarekha</a> – Río de oro – Ritwik Ghatak</li>
<li>1965 – <a href="http://www.imdb.com/title/tt0129222/">De m an die zijn abr kort liet knippen</a> – El hombre del cráneo rasurado – André Delvaux</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0060511/">Hold me while I´m naked</a> – George Kuchar</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0060176/">Blowup</a> – Blowup. Deseo de una mañana de verano – Michelangelo Antonioni</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0060196/">Il buono, il bruto, il cattivo</a> – El bueno, el feo y el malo – Sergio Leone</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0060959/">Sedmikrasky</a> – Las margaritas – Vera Chytilová</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0059079/">Da Zui Xia</a> – Ven a beber conmigo – King Hu</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0060955/">Seconds</a> – Plan siniestro – John Frankenheimer</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0061811/">In the head of the night</a> – En el calor de la noche – Norman Jewison</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0061184/">Who´s Afraid of Virginia Woolf</a> – ¿Quién teme a Virginia Woolf? – Mike Nichols</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0060827/">Persona</a> – Ingmar Bergman</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0060675/">Masculin, féminin</a> – Jean-Luc Godard</li>
<li>1966 – <a href="http://www.imdb.com/title/tt0060138/">Au hasard Balthasar</a> – Al azar de Baltasar – Robert Bresson</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0060304/">Deux ou trois choses que je sais d’elle</a> – Jean-Luc Godard</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0061722/">The Graduate</a> – El graduado – Mike Nichols</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0062136/">Playtime</a> – Jacques Tati</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0130976/">Report</a> – Bruce Conner</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0061770/">Hombre</a> – Un hombre – Martin Ritt</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0061395/">Belle de jour</a> – Bella de día – Luis Buñuel</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0062873/">Les demoiselles de Rochefort</a> – Las señoritas de Rochefort – Jacques Demy, Agnes Varda</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0062480/">Weekend</a> – Jean-Luc Godard</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0062229/">Le samouraï</a> – El silencio de un hombre – Jean-Pierre Melville</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0061512/">Cool Hand Luke</a> – La leyenda del indomable – Stuart Rosemberg</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0062138/">Point blank</a> – A quemarropa – John Boorman</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0127354/">Wavelength</a> – Michael Snow</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0061418/">Bonnie and Clyde</a> – Bonnie y Clyde – Arthur Penn</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0061537/">Csillagosok, Katonák</a> – El rojo y el blanco</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0063278/">Marketa Lazarová</a> – Frantisek Vlácil</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0061852/">The Jungle Book</a> – El libro de la selva – Walt Disney</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0061781/">Horí, má Panenko</a> – El baile de los bomberos – Milos Forman</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0062352/">Terra em transe</a> – Tierra en trance – Glauber Rocha</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0060802/">Ostre Sledované vlaky</a> – Trenes rigurosamente vigilados – Jirí Menzel</li>
<li>1967 – <a href="http://www.imdb.com/title/tt0062453/">Vij</a> – Georgi Kropachyov, Constantin Yershov</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0064356/">Gaav</a> – La vaca – Dariush Mehrjui</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0064116/">Céra una volta il West</a> – Hasta que llegó su hora – Sergio Leone</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063442/">Planet of the Apes</a> – El planeta de los simios – Franklin J. Schaffner</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0062952/">Faces</a> – John Cassavetes</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063522/">Rosemary’s Baby</a> – La semilla del diablo – Roman Polanski</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063850/">If…</a> – Lindsay Anderson</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063291/">Memorias del subdesarrollo</a> – Tomás Gutiérrez Alea</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063462/">The Producers</a> – Los productores – Mel Brooks</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0062864/">David Holzman´s diary</a> – Jim NcBride</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063611/">Skammen</a> – La vergüenza – Ingmar Bergman</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0062622/">2001: A Space Odyssey</a> – 2001: Una Odisea espacial – Stanley Kubrick</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063759/">Vargtimmen</a> – La hora del lobo – Ingmar Bergman</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063671/">Targets</a> – El héroe anda suelto – Peter Bogdanovich</li>
<li>1968 – <a href="http://www.imdb.com/title/tt0063350/">Night of the Living Dead</a> – La noche de los muertos vivientes – George A. Romero</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064612/">Ma nuit chez Maud</a> – Mi noche con Maud – Eric Rohmer</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064609/">Lucía</a> – Humberto Solás</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064451/">Xia nu</a> – Un toque de zen – King Hu</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064115/">Butch Cassidy and the Sundance Kid</a> – Dos hombres y un destino – George Roy Hill</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064665/">Midnight Cowboy</a> – Cowboy de medianoche – John Schlesinger</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064940/">Satyricon</a> – Federico Fellini</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0065234/">Z</a> – Costa Gavras</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0065571/">Il conformista</a> – El conformista – Bernardo Bertolucci</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064276/">Easy rider</a> – Buscando mi destino – Dennis Hopper</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064429/">High School</a> – Frederick Wiseman</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064482/">In the year of the pig</a> – Emile de Antonio</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0065214/">The Wild Bunch</a> – Grupo salvaje – Sam Pekinpah</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0060107/">Andrei Rublev</a> – Andrei Tarkovsi</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064106/">Le boucher</a> – El carnicero – Claude Chabrol</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0063555/">Sayat Nova</a> – El color de las granadas – Sergei Parajanov</li>
<li>1969 – <a href="http://www.imdb.com/title/tt0064541/">Kes</a> – Ken Loach</li>
</ul>
<h3 id="from-1970-to-1980">From 1970 to 1980</h3>
<ul>
<li>1970 – <a href="http://www.imdb.com/title/tt0066491/">Tristana</a> – Luis Buñuel</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0065724/">Five easy pieces</a> – Mi vida es mi vida – Bob Rafelson</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0067866/">El topo</a> – Alejandro Jodorowsy</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0066580/">Woodstock</a> – Michael Wadleigh</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0066122/">Deep end</a> – Jerzy Skolimowski</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0066413/">La strategia del ragno</a> – La estrategia de la araña – Bernardo Bertolucci</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0065988/">Little Big Man</a> – Pequeño gran hombre – Arthur Penn</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0066498/">Ucho</a> – La oreja – Karel Kachyna</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0066206/">Patton</a> – Franklin J. Schaffner</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0066026/">Mash</a> – Robert Altman</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0066214/">Performance</a> – Donald Cammell, Nicolas Roeg</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0065780/">Gimme Shelter</a> – Albert Maysles et al</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0066601/">Zabriskie Point</a> – Michelangelo Antonioni</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0065143/">L’Ucello dalle piume di cristallo</a> – El pájaro de las plumas de cristal – Dario Argento</li>
<li>1970 – <a href="http://www.imdb.com/title/tt0065777/">Il giardino de los Finzi-Contini</a> – El jardín de los Finzi-Contini – Vittorio de Sica</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067961/">Wanda</a> – Barbara Loden</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067958/">W.R.: Misterije organizma</a> – Los misterios del organismo – Dusan Makavjev</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0066921/">A Clockwork Orange</a> – La naranja mecánica – Stanley Kubrick</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0066904/">Le chagrin et la pitié</a> – Marcel Ophüls</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067992/">Willy Wonka &amp; the Chocolate Factory</a> – Un mundo de fantasía – Mel Stuart</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067411/">McCabe and Mrs. Miller</a> – Los vividores – Robert Altman</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067959/">Walkabout</a> – Nicolas Roeg</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067309/">Klute</a> – Alan J. Pakula</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067185/">Harold and Maude</a> – Harold y Maude – Hal Ashby</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067467/">Még kér a nép</a> – Salmo rojo – Miklòs Jancsó</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067128/">Get Carter</a> – Asesino implacable – Mike Hodges</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067116/">The French Connection</a> – Contra el imperio de la droga – William Friedkin</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067741/">Shaft</a> – Las noches rojas de Harlem – Gordon Parks</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0066999/">Dirty Harry</a> – Harry el sucio – Don Siegel</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067778/">Le souffle au coeur</a> – El soplo en el corazón – Louis Malle</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067810/">Sweet sweetback’s baadasssss song</a> – Melvin van Peebles</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067328/">The Last Picture Show</a> – La última película – Peter Bogdanovich</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067800/">Straw Dogs</a> – Perros de paja – Sam Peckinpah</li>
<li>1971 – <a href="http://www.imdb.com/title/tt0067893/">Two-Lane Blacktop</a> – Carretera asfaltada en dos direcciones – Monte Hellman</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068687/">The heartbreak Kid</a> – El rompecorazones – Elayne May</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068182/">Aguirre, der zorn gottes</a> – Aguirre, la cólera de Dios – Werner Herzog</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068327/">Cabaret</a> – Bob Fosse</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0070849/">Ultimo tango a Parigi</a> – El último tango en París – Bernardo Bertolucci</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068699/">High Plain Drifters</a> – Infierno de cobardes – Clint Eastwood</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0069281/">Sleuth</a> – La huella – Joseph L. Mankiewicz</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068473/">Deliverance</a> – Defensa – John Boorman</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0069293/">Solyaris</a> – Solaris – Andrei Tarkovski</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068646/">The Godfather</a> – El Padrino – Francis Ford Coppola</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0069467/">Viskingar och rop</a> – Gritos y susurros – Ingmar Bergman</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068575/">Fat City</a> – Ciudad dorada – John Huston</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068361/">Le charme discret de la bourgeoisie</a> – El discreto encanto de la burguesía – Luis Buñuel</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068278/">Die bitteren Tränen der Petra von Kant</a> – Las amargas lágrimas de Petra von Kant – Rainer Werner Fassbinder</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0068611/">Frenzy</a> – Frenesí – Alfred Hitchcock</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0069089/">Pink Flamingos</a> – John Waters</li>
<li>1972 – <a href="http://www.imdb.com/title/tt0069332/">Superfly</a> – El mercado del vicio – Gordon Parks. Jr.</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070735/">The Sting</a> – El golpe – George Roy Hill</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070359/">La maman et la putain</a> – Jean Eustache</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0069762/">Badlands</a> – Malas tierras – Terrence Malick</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0069704/">American graffiti</a> – George Lucas</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070511/">Papillon</a> – Franklin J. Schaffner</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070034/">Enter the Dragon</a> – Operación dragón – Robert Clouse</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070379/">Mean Streets</a> – Malas calles – Martin Scorsese</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070334/">The Long Goodbye</a> – El largo adiós – Robert Altman</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070917/">The Wicker Man</a> – El hombre de mimbre – Robin Hardy</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070460/">La nuit américaine</a> – La noche americana – François Truffaut</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0069995/">Don’t look now</a> – Amenaza en la sombra – Nicolas Roeg</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070707/">Sleeper</a> – El dormilón – Woody Allen</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070666/">Serpico</a> – Sidney Lumet</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070047/">The Exorcist</a> – El exorcista – William Friedkin</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070842/">Turks Fruit</a> – Delicias turcas – âul Verhoeven</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070040/">El espíritu de la colmena</a> – Víctor Erice</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070544/">Le planènete sauvage</a> – El planeta salvaje – René Laloux</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0071129/">Amarcord</a> – Federico Fellini</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070155/">The harder the come</a> – Más dura será la caída – Perry Henzell</li>
<li>1973 – <a href="http://www.imdb.com/title/tt0070518/">Pat Garrett and Billy the Kid</a> – Pat Garrett and Billy the Kid – Sam Peckinpah</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0071411/">Dersu Uzala</a> – Akira Kurosawa</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0071360/">The Conversation</a> – La conversación – Francis Ford Coppola</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0072271/">The Texas Vhain Saw Massacre</a> – La matanza de Texas – Tobe Hooper</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0072443/">Zerkalo</a> – El espejo – Andrei Tarkovsi</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0072417/">A Woman Under the Influence</a> – Una mujer bajo la influencia – John Cassavetes</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0072431/">Young Frankenstein</a> – El jovencito Frankenstein – Mel Brooks</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0071315/">Chinatown</a> – Roman Polanski</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0071381/">Céline et Julie vont en Bateau</a> – Jacques Rivette</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0071230/">Blazing Saddles</a> – Sillas de montar calientes – Mel Brooks</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0071562/">The Goodfather: Part II</a> – El Padrino, segunda parte – Francis Ford Coppola</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0071141/">Angst essen Seele auf</a> – Todos nos llamamos Ali – Rainer Werner Fassbinder</li>
<li>1974 – <a href="http://www.imdb.com/title/tt0071249/">Bring me the Head of Alfredo Garcia</a> – Quiero la cabeza de Alfredo García – Sam Peckinpah</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0072890/">Dogs Day Afternoon</a> – Tarde de perros – Sidney Lumet</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073486/">One Flew Over the Cuckoo’s Nest</a> – Alguien voló sobre el nido del cuco – Milos Forman</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073198/">Jeanne Dielman, 23 Quai du Commerce, 1080 Bruxelles</a> – Chantal Ackerman</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073629/">The rocky horror picture show</a> – Jim Sharman</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0072860/">Deewaar</a> – La pared – Yash Chopra</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0071853/">Monty Python and the Holy Grail</a> – Los caballeros de la mesa cuadrada y sus locos seguidores – Terry Gilliam, Terry Jones</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0072684/">Barry Lyndon</a> – Stanley Kubrick</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0072976/">Faustrecht der Freiheit</a> – La ley del más fuerte – Rainer Werner Fassbinder</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073166/">India song</a> – Canción de La India – Marguerite Duras</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073540/">Picnic en Hanging Rock</a> – Picnic en Hanging Rock – Peter Weir</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073363/">Maynila: sa Mga kuko ng liwanag</a> – Lino Brocka</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073650/">Salò o le centoventi giornate di Sodoma</a> – Salò o los ciento veinte días de Sodoma – Pier Paolo Pasolini</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073440/">Nashville</a> – Robert Altman</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0074360/">Cría cuervos</a> – Carlos Saura</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073800/">O thiassos</a> – El viaje de los comediantes – Theo Angelopoulos</li>
<li>1975 – <a href="http://www.imdb.com/title/tt0073195/">Jaws</a> – Tiburón – Steven Spielberg</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0074749/">The killing of a chinese bookie</a> – John Cassavetes</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0074285/">Carrie</a> – Brian De Palma</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0075029/">The Outlaw Josey Wales</a> – El fuera de la ley – Clint Eastwood</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0074119/">All the President’s Men</a> – Todos los hombres del Presidente – Alan J. Pakula</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0075148/">Rocky</a> – John G. Avildsen</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0075314/">Taxi Driver</a> – Martin Scorsese</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0074958/">Network</a> – Network, un mundo implacable – Sidney Lumet</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0075404/">Voskhozhdeniye</a> – La ascensión – Larisa Shepitko</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0074102/">Ai no korida</a> – El imperio de los sentidos – Nagisa Oshima</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0074084/">Novecento</a> – Bernardo Bertolucci</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0074851/">The Man Who Fell to Earth</a> – El hombre que cayó a la tierra – Nicolas Roeg</li>
<li>1976 – <a href="http://www.imdb.com/title/tt0076759/">Star Wars</a> – La guerra de las galaxias: Episodio IV (Una nueva esperanza) – George Lucas</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0075860/">Close Encounters of the Third Kind</a> – Encuentros en la tercera fase – Steven Spielberg</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0076299/">The Last Wave</a> – La última ola – Peter Weir</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0075686/">Annie Hall</a> – Woody Allen</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0076293/">Last chants for a slow dance</a> – Jon Jost</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0075276/">Stroszek</a> – La balada de Bruno S. – Werner Herzog</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0075902/">Czlowiek z marmuru</a> – El hombre de mármol – Andrej Wajda</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0076666/">Saturday Night Fever</a> – Fiebre del sábado noche – John Badham</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0076263/">Killer of sheep</a> – Charles Burnet</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0074486/">Eraserhead</a> – Cabeza borradora – David Lynch</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0077309/">Ceddo</a> – Ousmane Sembene</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0075675/">Der amerikanische Freund</a> – El amigo americano – Wim Wenders</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0077681/">The Hills Have Eyes</a> – Las colinas tienen ojos – Wes Craven</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0076734/">Soldaat van Oranje</a> – Eric, oficial de la reina – Paul Verhoeven</li>
<li>1977 – <a href="http://www.imdb.com/title/tt0076786/">Suspiria</a> – Dario Argento</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0077318/">The chant of Jimmie Blacksmith</a> – Fred Schepisi</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0077559/">Wu du</a> – Cinco venenos mortales – Chang Cheh</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0077138/">L’albero degli zoccoli</a> – El árbol de los zuecos – Ermanno Olmi</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0077416/">The Deer Hunter</a> – El cazador – Michael Cimino</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0077631/">Grease</a> – Brillantina – Randal Kleiser</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0077405/">Days of the Heaven</a> – Días del cielo – Terrence Malick</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0077402/">Zombi</a> – Dawn of the dead – George A. Romero</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0078243/">Shao Lin San Shih Liu Fang</a> – Las 36 cámaras de shaolin – Chia-Liang Liu</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0078446/">Up in Smoke</a> – Como humo se va – Lou Adler, Tommy Chong</li>
<li>1978 – <a href="http://www.imdb.com/title/tt0077651/">Halloween</a> – La noche de Halloween – John Carpenter</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079095/">Die Ehe der Maria Braun</a> – El matrimonio de María Braun – Rainer Werner Fassbinder</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079781/">Real life</a> – Como en la vida real – Albert Brooks</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079596/">My brilliant career</a> – Gillian Armstrong</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079944/">Stalker</a> – Andrei Tarkovski</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0078748/">Alien</a> – Alien, el octavo pasajero – Ridley Scott</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0078902/">Breaking away</a> – El relevo – Peter Yates</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0078875/">Die Blechtrommel</a> – El tambor de hojalata – Volker Schlöndorf</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0078754/">Alll that Jazz</a> – Empieza el espectáculo – Bob Fosse</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0078841/">Being there</a> – Bienvenido Míster Chance – Hal Ashby</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079417/">Kramer vs. Kramer</a> – Kramer contra Kramer – Robert Benton</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079470/">Life of Brian</a> – La vida de Brian – Terry Jones</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0078788/">Apocalypse Now</a> – Francis Ford Coppola</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079367/">The jerk</a> – Un loco anda suelto – Carl Reiner</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079588/">The muppet movie</a> – James Frawley</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079522/">Manhattan</a> – Woody Allen</li>
<li>1979 – <a href="http://www.imdb.com/title/tt0079501/">Mad Max</a> – Mad Max: salvajes de la autopista – George Miller</li>
</ul>
<h3 id="from-1980-to-1990">From 1980 to 1990</h3>
<ul>
<li>1980 – <a href="http://www.imdb.com/title/tt0079641/">Nosferatu: Phantom der Nacht</a> – Nosferatu, vampiro de la noche – Werner Herzog</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0081283/">Ordinary People</a> – Gente corriente – Robert Redford</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0080388/">Atlantic City</a> – Louis Malle</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0080610/">Le dernier métro</a> – El último metro – Truffaut</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0081505/">The Shining</a> – El resplandor – Stanley Kubrick</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0080684/">Star Wars: Episode V-The Empire Strikes</a> – El imperio contraataca, Episodio V – Irvin Kershner</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0080678/">The Elephant Man</a> – El hombre elefante – David Lynch</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0080437/">The Big Red One</a> – Uno Rojo Division de Choque – Samuel Fuller</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0081076/">Loulou</a> – Maurice Pialat</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0080339/">Airplane!</a> – Aterriza como puedas – Jim Abrahams &amp; al</li>
<li>1980 – <a href="http://www.imdb.com/title/tt0081398/">Raging Bull</a> – Toro salvaje – Martin Scorsese</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0082971/">Raiders of the Lost Ark</a> – En busca del Arca perdida – Steven Spielberg</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0082096/">Das Boot</a> – El submarino – Wolfgang Petersen</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0082432/">Gallipoli</a> – Peter Weir</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0082158/">Chariots of Fire</a> – Carros de fuego – Hugh Hudson</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0082089/">Body Heat</a> – Fuego en el cuerpo – Lawrence Kasdan</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0082979/">Reds</a> – Rojos – Warren Beatty</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0082010/">An American Werewolf in London</a> – Un hombre-lobo americano en Londres – John Landis</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0083226/">Tre fratelli</a> – Tres hermanos – Francesco Rosi</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0082222/">Czlowiek z zelaza</a> – El hombre de hierro – Andrzej Wajda</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0083230/">Zu Frü, zu spät</a> – Danièle Huillet, Jean-Marie Straub</li>
<li>1981 – <a href="http://www.imdb.com/title/tt0083929/">Fast Times at Ridgemont High</a> – Aquel excitante curso – Amy Heckerling</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0083866/">E.T.: The Extra-terrestrial</a> – E.T. El Extraterrestre – Steven Spielberg</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0084787/">The Thing</a> – La Cosa – John Carpenter</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0084516/">Poltergeist</a> – Spielberg</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0083658/">Blade Runner</a> – Ridley Scott</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0083907/">The evil dead</a> – Posesión infernal – Sam Raimi</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0084805/">Tootsie</a> – Sydney Pollack</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0084934/">Yol</a> – El camino – Serif Gören</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0083833/">Diner</a> – Barry Levinson</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0083946/">Fitzcarraldo</a> – Werner Herzog</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0083987/">Gandhi</a> – Richard Attenborough</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0084422/">La notte di San Lorenzo</a> – La noche de San Lorenzo – Paolo Taviani, Vittorio Taviani</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0086369/">De stilte rond Christine M.</a> – El silencio de Christine M. – Marleen Gorris</li>
<li>1982 – <a href="http://www.imdb.com/title/tt0083922/">Fanny och Alexander</a> – Fanny y Alexander – Ingmar Bergman</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0085334/">A Christmas Story</a> – Historias de Navidad – Bob Clark</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0085482/">El norte</a> – Gregory Nava</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0086541/">Videodrome</a> – David Cronenberg</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0086190/">Star Wars: Episode VI – Return of the Jedi</a> – El retorno del Jedi – Richard Marquand</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0085244/">The Big Chill</a> – Reencuentro – Lawrence Kasdan</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0084628/">Sans Soleil</a> – Chris Marker</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0085426/">Le dernier combat</a> – kamikaze 1999 – Luc Besson</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0085180/">L’argent</a> – El dinero – Robert Bresson</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0086497/">Utu</a> – Geoff Murphy</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0086425/">Terms of Endearment</a> – La fuerza del cariño – James L. Brooks</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0086543/">De vierde man</a> – El cuarto hombre – Paul Verhoeven</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0085794/">The King of Comedy</a> – El rey de la comedia – Scorsese</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0086197/">The Right Stuff</a> – Elegidos para la gloria – Philip Kaufman</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0085809/">Koyaanisqatsi</a> – Godfrey Reggio</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0087843/">Once Upon a Time in America</a> – Érase una vez en América – Sergio Leone</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0086250/">Scarface</a> – El precio del poder – Brian de Palma</li>
<li>1983 – <a href="http://www.imdb.com/title/tt0084390/">Narayama Bushi-Ko</a> – La balada del Narayama – Shohei Imamura</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0086879/">Amadeus</a> – Milos Forman</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0088247/">The Terminator</a> – Terminator – James Cameron</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0087884/">París, Texas</a> – Wim Wenders</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0087800/">A Nigthmare on Elm Street</a> – Pesadilla en Elm Street – Wes Craven</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0088258/">This is a spinal tap</a> – Rob Reiner</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0086960/">Beverly Hills Cop</a> – Superdetective en Holliwood – Martin Brest</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0087332/">Ghost Busters</a> – Cazafantasmas – Ivan Reitman</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0087892/">A Passage to India</a> – Pasaje a la India – David Lean</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0088184/">Stranger Than Paradise</a> – Extraños en el Paraíso – Jim Jarmusch</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0087553/">The Killing Fields</a> – Los gritos del silencio – Roland Joffé</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0087781/">The Natural</a> – El mejor – Barry Levinson</li>
<li>1984 – <a href="http://www.imdb.com/title/tt0088847/">The Breakfast Club</a> – El club de los cinco – John Hughes</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089881/">Ran</a> – Akira Kurosawa</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0091251/">Idi i smotri</a> – Masacre-ven y mira – Elem Klimov</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089276/">La historia oficial</a> – Luis Puenzo</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089755/">Out of Africa</a> – Memorias de África – Sydney Pollack</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089853/">The Purple Rose of Cairo</a> – La rosa púrpura de El Cairo – Woody Allen</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0088763/">Back to the Future</a> – Regreso al futuro – Robert Zemeckis</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0090185/">Tong Nien Wang Shi</a> – Tiempo de vivir, tiempo de morir – Hsiao-hsien Hou</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0088846/">Brazil</a> – Terry Gilliam</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089424/">Kiss of the Spider Woman</a> – El beso de la mujer araña – Hector Babenco</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089869/">The Quiet Earth</a> – El único superviviente – Geoff Murphy</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089603/">Mishima: A Life in Four Chapters</a> – Mishima – Pauls Schrader</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089841/">Prizzi’s Honor</a> – El honor de los Prizzi – John Huston</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0089960/">Sans toit ni loi</a> – Sin techo ni ley – Agnès Varda</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0090015/">Shoah</a> – Claude Lanzmann</li>
<li>1985 – <a href="http://www.imdb.com/title/tt0088939/">The Color Purple</a> – El color púrpura – Steven Spielberg</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0091474/">Manhunter</a> – Hunter – Michael Mann</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0092005/">Stand by me</a> – Cuenta conmigo – Rob Reiner</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0090756/">Blue Velvet</a> – Terciopelo azul – David Lynch</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0091167/">Hannah and her Sisters</a> – Hannah y sus hermanas – Woody Allen</li>
<li>1986 – [She’s gotta have it](<a href="http://www.imdb.com/title/tt009-">http://www.imdb.com/title/tt009-</a> 1939/) – Nola Darling – Spike Lee</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0090985/">Le déclin de l’empire américain</a> – El declive del imperio americano – Denys Arcand</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0091064/">The Fly</a> – La mosca – David Cronenberg</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0090605/">Aliens</a> – Aliens: el regreso – James Cameron</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0091042/">Ferris Bueller’s Day Off</a> – Todo en un día – John Hughes</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0090967/">Down by law</a> – Bajo el peso de la ley – Jim Jarmusch</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0091867/">A Room with a View</a> – Una habitación con vistas – James Ivory</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0090830/">Children of a Lesser God</a> – Hijos de un dios menor – Randa Haines</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0091763/">Platoon</a> – Oliver Stone</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0090798/">Caravaggio</a> – Derek Jarman</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0092048/">Tampopo</a> – Juzo Itami</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0090952/">Peking Opera Blues</a> – Do ma daan – Tsui Hark</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0091886/">Salvador</a> – Oliver Stone</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0092099/">Top Gun</a> – Ídolos del aire – Tony Scott</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0091943/">Sherman’s March</a> – Ross McElwee</li>
<li>1986 – <a href="http://www.imdb.com/title/tt0090907/">Dao Ma Zei</a> – El ladrón de caballos – Tian Zhuangzhuang</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0094349/">Yeelen</a> – La luz – Souleymane Cissé</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093191/">Der Himmel über Berlin</a> – El cielo sobre Berlín – Win Wenders</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0092501/">‘A’ gai waak juk jap</a> – El tesoro de China – Jackie Chan</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0092603/">Babettes gaestebud</a> – El festín de Babette – Gabriel Axel</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093822/">Raising Arizona</a> – Arizona Baby – Joel Coen</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093058/">Full Metal Jacket</a> – La chaqueta metálica – Stanley Kubrick</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0094336/">Withnail and I</a> – Withnail y yo – Bruce Robinson</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093105/">Good morning, Vietnam</a> – Barry Levinson</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0092593/">Au revoir les enfants</a> – Adiós muchachos – Louis Malle</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0092699/">Broadcast News</a> – Al filo de la noticia – James L. Brooks</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093225/">Housekeeping</a> – Bill Forsyth</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093779/">The Princess Bride</a> – La princesa prometida – Rob Reiner</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093565/">Moonstruck</a> – Hechizo de luna – Norman Jewison</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0094226/">The Untouchables</a> – Los intocables de Eliot Ness – Brian de Palma</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093206/">Hong gao liang</a> – Sorgo rojo – Zhang Yimou</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0092843/">The dead</a> – Dublineses – John Huston</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093010/">Fatal Atraction</a> – Atracción fatal – Adrian Lyne</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0093978/">Sinnui yauman</a> – Una historia china de fantasmas – Siu-Tung Ching</li>
<li>1987 – <a href="http://www.imdb.com/title/tt0095675/">Mujeres al borde un ataque de nervios</a> – Almodóvar</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0096163/">Spoorloos</a> – Desaparecida – George Sluizer</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0094812/">Bull Durham</a> – Los búfalos de Durham – Ron Shelton</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0094675/">Ariel</a> – Aki Kaurismäki</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0096257/">The thin blue line</a> – Errol Morris</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0094625/">Akira</a> – Katsuhiro Otomo</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0095765/">Nuovo cinema paradiso</a> – Cinema Paradiso – Giuseppe Tornatore</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0095341/">Hotel Terminus: Klaus Barbie et son temps</a> – Marcel Ophüls</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0095159/">A fish called Wanda</a> – Un pez llamado Wanda – Charles Crichton</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0095705/">The Naked Gun</a> – Agárralo como puedas – David Zucker</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0094737/">Big</a> – Quisiera ser grande – Penny Marshall</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0094947/">Dangerous liaisons</a> – Las amistades peligrosas – Stephen Frears</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0095327/">Hotaru no haka</a> – La tumba de las luciérnagas – Isao Takahata</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0096288/">Topio stin omichli</a> – Paisaje en la niebla – Theo Angelopoulos</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0092337/">Dekalog, Jeden</a> – Krzysztof Kieslowski</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0095016/">Die Hard</a> – La jungla de cristal – John McTiernan</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0096337/">Une historie de vent</a> – Joris Ivens</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0096438/">Who Framed Roger Rabbit</a> – ¿Quién engañó a Roger Rabbit? – Robert Zemeckis</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0095953/">Rain man</a> – Barry Levinson</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0096336/">Une affaire de femmes</a> – Asunto de mujeres – Claude Chabrol</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0092929/">Drowing by numbers</a> – Conspiración de mujeres – Peter Greenaway</li>
<li>1988 – <a href="http://www.imdb.com/title/tt0095715/">Neko Z Alenky</a> – Alice – Jan Svankmajer</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0096895/">Batman</a> – Tim Burton</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0098635/">When Harry met Sally</a> – Cuando Harry encontró a Sally – Rob Reiner</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0097123/">Crimes and Misdemeanors</a> – Delitos y faltas – Woody Allen</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0097108/">The Cook, the Thief, his Wife &amp; her Lover</a> – El cocinero, el ladrón, su mujer y su amante – Peter Greenaway</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0097240/">Drugstore Cowboy</a> – Gus Van Sant</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0097937/">My Left Food</a> – Mi pie izquierdo – Jim Sheridan</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0097202/">Dip Huet seung hung</a> – El asesino- John Woo</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0097216/">Do the Right Thing</a> – Haz lo que debas – Spike Lee</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0098213/">Roger &amp; me</a> – Michael Moore</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0097441/">Glory</a> – Tiempos de gloria – Edward Zwick</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0096841/">Astenicheskij Sindrom</a> – Síndrome de abstinencia – Kira Muratova</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0098724/">Sex, Lies and Videotape</a> – Sexo, mentiras y cintas de vídeo – Steven Soderbergh</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0098258/">Say Anything</a> – Un gran amor… – Cameron Crowe</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0100842/">The Unbelievable Truth</a> – La increíble verdad – Hal Hartley</li>
<li>1989 – <a href="http://www.imdb.com/title/tt0096908/">Beiqing Chengshi</a> – Ciudad de la tristeza – Hsiao-hsien Hou</li>
</ul>
<h3 id="from-1990-to-2000">From 1990 to 2000</h3>
<ul>
<li>1990 – <a href="http://www.imdb.com/title/tt0100536/">S’en fout la mort</a> – Claire denis</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0100486/">Reversal of Fortune</a> – El misterio von Bülow – Barbet Schroeder</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0099685/">Goodfellas</a> – Uno de los nuestros – Martin Scorsese</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0099871/">Jacob’s Ladder</a> – La escalera de Jacob – Adrian Lyne</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0099939/">King of New York</a> – El rey de Nueva York – Abel Ferrara</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0099348/">Dances with Wolves</a> – Bailando con lobos – Kevin Costner</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0099776/">Europa, Europa</a> – Hitlerjunge Salomon</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0100405/">Pretty woman</a> – Garry Marshall</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0099053/">Archangel</a> – Guy Maddin</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0103130/">Trust</a> – Confía en mí – Hal Hartley</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0100234/">Nema-ye nazdik</a> – Primer plano – Abbas Kiarostami</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0099487/">Edward Scissorhands</a> – Eduardo Manostijeras – Tim Burton</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0099763/">Henry: Portrait of a Killer</a> – Henry: Retrato de un asesino – John McNaughton</li>
<li>1990 – <a href="http://www.imdb.com/title/tt0100802/">Total Recall</a> – Desafío total – Paul Verhoeven</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0103285/">Wong Fei-Hung</a> – Wong en América – Hark Tsui</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0101507/">Boyz’n the Hood</a> – Los chicos del barrio – John Singleton</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0101640/">Da hong deng long gao gao gua</a> – La linterna roja – Zhang Yimou</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0101700/">Delicatessen</a> – Mar Caro, Jean-Pierre Jeunet</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0101985/">Guling Jie Shaonian sha ren shijian</a> – Una radiante mañana estival – Edward Yang</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0102511/">Naked Lunch</a> – El almuerzo desnudo – David Cronenberg</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0101428/">La belle noiseuse</a> – La bella mentirosa – Jacques Rivette</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0102757/">The Rapture</a> – El despertar de Sharon – Michael Tolkin</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0102494/">My own private Idaho</a> – Mi Idaho privado – Gus van Sant</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0103074/">Thelma &amp; Louise</a> – Thelma y Louise – Ridley Scott</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0103064/">Terminator 2: Judgment Day</a> – Terminator 2: El día del juicio - James Cameron</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0102926/">The Silence of the Lambs</a> – El silencio de los corderos – Jonathan Demme</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0102138/">JFK</a> – Jfk, caso abierto – Oliver Stone</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0102943/">Slacker</a> – Richard Linklater</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0103099/">Tongues Untied</a> – Lenguas desatadas – Marlon Riggs</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0102015/">Hearts of darkness: a filmmaker’s apocalypse</a> – Fax Bahr/Eleanor Coppola</li>
<li>1991 – <a href="http://www.imdb.com/title/tt0101765/">La double vie de Véronique</a> – La doble vida de Verónica – Krzysztof Kieslowski</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0105488/">Strictly ballroom</a> – Baz Luhrmann</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0105151/">The Player</a> – El juego de Hollywood – Robert Altman</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0105236/">Reservoir dogs</a> – Quentin Tarantino</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0105275/">Romper stomper</a> – Geoffrey Wright</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0104348/">Glengarry glen ross</a> – Éxito a cualquier precio – James Foley</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0105695/">Unforgiven</a> – Sin perdón – Clint Eastwood</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0103634/">Aileen wuornos: the selling of a killer</a> – Nick Broomfield</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0104008/">Conte d’hiver</a> – Cuento de invierno – Eric Rohmer</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0102816/">Yuen Ling-Yuk</a> – La actriz – Stanley Kwan</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0103905/">C’est arrivé près de chez vous</a> – Ocurrió cerca de su casa R.Belvaux</li>
<li>1992 – <a href="http://www.imdb.com/title/tt0104036/">The Crying Game</a> – Juego de lágrimas – Neil Jordan</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0106332/">Be wang bie ji</a> – Adiós a mi concubina – Kaige Chen</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0107048/">Groundhog Day</a> – Atrapado en el tiempo – Harold Ramis</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0108328/">Thirty two short films about Glenn Gould</a> – François Girard</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0108122/">Short cuts</a> – Vidas cruzadas – Robert Altman</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0107818/">Philadelphia</a> – Jonathan Demme</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0107157/">Hsimeng Jensheng</a> – El maestro de marionetas – Hou Hsiao-Hsien</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0107290/">Jurassic Park</a> – Parque jurásico – Steven Spielberg</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0108394/">Trois couleurs: Bleu</a> – Tres colores: Azul – Krzysztof Kieslowski</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0107822/">The Piano</a> – El piano – Jane Campion</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0107358/">Lang feng zheng</a> – La cometa azul – Tian Zhuangzhuang</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0107156/">Hsi Yen</a> – El banquete de boda – Ang Lee</li>
<li>1993 – <a href="http://www.imdb.com/title/tt0108052/">Schindler’s List</a> – La lista de Schindler – Steven Spielberg</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0109045/">The Adventures of Priscilla, Queen of the Desert</a> – Las aventuras de Priscilla, reina del desierto – Stephan Elliott</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0111495/">Trois couleurs: Rouge</a> – Tres colores: Rojo – Krzysztof Kieslowski</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0110057/">Hoop dreams</a> – Steve James</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0109830/">Forrest Gump</a> – Robert Zemeckis</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0110357/">The Lion King</a> – El rey León – Roger Allers/ Rob Minkoff</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0109445/">Clerks</a> – Kevin Smith</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0109831/">Four Weddings and a Funeral</a> – Cuatro bodas y un funeral – Mike Newell</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0110632/">Natural Born Killers</a> – Asesinos natos – Oliver Stone</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0110308/">The Last Seduction</a> – La última seducción – John Dahl</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0110912/">Pulp Fiction</a> – Quentin Tarantino</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0111161/">The Shawshank Redemption</a> – Cadena perpetua – Frank Darabont</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0111019/">The roseaux sauvages</a> – Los juncos salvajes – Andrè Téchiné</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0109424/">Chung Hing sam lam</a> – Chungking express – Kar-wai Wong</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0109508/">Crumb</a> – Terry Zwigoff</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0111341/">Sátántangó</a> – Béla Tarr</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0111845/">Zire Darakhatan Zeyton</a> – A través de los olivos – Abbas Kiarostami</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0110005/">Heavenly Creatures</a> – Criaturas celestiales – Peter Jackson</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0109382/">Caro diario</a> – Nanni Moretti</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0110598/">Muriel’s Wedding</a> – La boda de Muriel – P.J. Hogan</li>
<li>1994 – <a href="http://www.imdb.com/title/tt0108906/">Riget</a> – El reino – Morten Arnfred, Lars von Trier</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0112431/">Babe – Babe, el cerdito valiente</a> – Chris Noonan</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0131356/">Deseret</a> – James Benning</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0112573/">Braveheart</a> – Mel Gibson</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0114323/">Safe</a> – Todd Haynes</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0114709/">Toy Story</a> – John Lasseter</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0112641/">Casino</a> – Martin Scorsese</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0113277/">Heat</a> – Michael Mann</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0113557/">Kjaerlighetens kjotere</a> – Zero Kelvin – Hans Petter Moland</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0112697/">Clueless</a> – Sin pistas / Fuera de onda – Amy Heckerling</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0114478/">Smoke</a> – Wayne Wang/Paul Auster</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0112445/">Badkonake sefid</a> – El globo blanco – Jafar Panahi</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0114369/">Seven</a> – David Fincher</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0114787/">Underground</a> – Emir Kusturica</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0112870/">Dilwale dulhaniya le jayenge</a> – El corazón amoroso se queda con la novia – Aditya Chopra</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0112767/">Xich Lo</a> – Triciclo – Ahn-Hung Tran</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0114814/">The Usual Suspects</a> – Sospechosos habituales – Bryan Singer</li>
<li>1995 – <a href="http://www.imdb.com/title/tt0112817/">Dead man</a> – Jim Jarmusch</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0116282/">Fargo</a> – Joel Coen</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0117968/">Trois vies et une seule mort</a> – Tres vidas y una sola muerte – Raúl Ruiz</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0117631/">Shine</a> – Scott Hicks</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0115751/">Breaking the Waves</a> – Rompiendo las olas – Lars von Trier</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0116629/">Independence day</a> – Roland Emmerich</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0117589/">Secrets and lies</a> – Secretos y mentiras – Mike Leigh</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0116384/">Gabbeh</a> – Mohsen Makhmalbaf</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0116905/">Lone star</a> – John Sayles</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0117951/">Trainspotting</a> – Danny Boyle</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0117571/">Scream</a> – Scream, vigila quién llama – Wes Craven</li>
<li>1996 – <a href="http://www.imdb.com/title/tt0116209/">The English Patient</a> – El paciente inglés – Anthnony Minguella</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0118845/">Happy together</a> – Wong Kar-Wai</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0119698/">Mononoke Hime</a> – La princesa Mononoke – Hayao Miyazaki</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0119488/">L.A. confidential</a> – Curtis Hanson</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0118804/">The Butcher Boy</a> – Contracorriente – Neil Jordan</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0119349/">The Ice Storm</a> – La tormenta de hielo – Ang Lee</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0118749/">Boogie nights</a> – Paul Thomas Anderson</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0118954/">Deconstructing Harry</a> – Desmontando a Harry – Woody Allen</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0120255/">The Sweet Hereafter</a> – Dulce porvenir – Atom Egoyan</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0119167/">Funny games</a> – Michael Haneke</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0120265/">Ta’m e Guilass</a> – El sabor de las cerezas – Abbas Kiarostami</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0125659/">Abre los ojos</a> – Alejandro Amenábar</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0119711/">Mat i Syn</a> – Madre e hijo – Aleksandr Sokurov</li>
<li>1997 – <a href="http://www.imdb.com/title/tt0120338/">Titanic</a> – James Cameron</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0118715/">The Big Lebowski</a> – El gran Lebowski – Joel Coen</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0154420/">Festen</a> – Celebración – Thomas Vinterberg</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0120815/">Saving Private Ryan</a> – Salvar al soldado Ryan – Steven Spielberg</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0118789/">Buffalo 66</a> – Vincent Gallo</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0128445/">Rushmore</a> – Wes Anderson</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0130827/">Lola rennt</a> – Corre, Lola, corre – Tom Tykwer</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0154421/">Idioterne</a> – Los idiotas – Lars von Trier</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0138704/">Pi</a> – Pi, fe en el caos – Darren Aronofski</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0147612/">Happiness</a> – Todd Solondz</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0120863/">The Thin Red Line</a> – La delgada línea roja – Terrence Malick</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0129387/">There’s something about Mary</a> – Algo pasa con Mary – Bobby &amp; Peter Farrelli</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0166808/">Sombre</a> – Philippe Grandieux</li>
<li>1998 – <a href="http://www.imdb.com/title/tt0178868/">Ringu</a> – The Ring – Hideo Nakata</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0213682/">Gohatto</a> – Tabú – Nagisa Oshima</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0175880/">Magnolia</a> – Paul Thomas Anderson</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0209933/">Beau travail</a> – Claire Denis</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0185937/">The Blair Witch Project</a> – El proyecto de la bruja de Blair – Daniel Myrick</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0120188/">Three Kings</a> – Tres reyes – David O. Russell</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0200071/">Rosetta</a> – Jean-Pierre &amp; Luc Dardenne</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0185125/">Todo sobre mi madre</a> – Pedro Almodóvar</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0189142/">Les temps retrouvé</a> – El tiempo recobrado – Raúl Ruiz</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0137523/">Fight Club</a> – El club de la lucha – David Fincher</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0120601/">Being John Malkovich</a> – Cómo ser John Malkovich – Spike Jonze</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0169547/">American beauty</a> – Sam Mendes</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0133093/">Matrix</a> – Andy &amp; Larry Wachowski</li>
<li>1999 – <a href="http://www.imdb.com/title/tt0167404/">El sexto sentido</a> – M.Night Shyamalan</li>
</ul>
<h3 id="from-2000-a-2010">From 2000 a 2010</h3>
<ul>
<li>2000 – <a href="http://www.imdb.com/title/tt0247380/">Les glaneurs et la glaneuse</a> – Los espigadores y la espigadora – Agnès Varda</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0172495/">Gladiator</a> – Ridley Scott</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0118694/">Fa yeung nin wa</a> – Deseando amar – Kar-wai Wong</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0247586/">Nueve Reinas</a> – Fabián Bielinski</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0244316/">Yi Yi</a> – Edward Yang</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0180093/">Requiem for a dream</a>- Réquiem por un sueño – Darren Aronofski</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0245712/">Amores perros</a> – Alejandro González Iñárritu</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0212338/">Meet the Parents</a> – Los padres de ella – Jay Roach</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0181865/">Traffic</a> – Steven Soderbergh</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0190332/">Wo hu cang long</a> – Tigre y dragón – Ang Lee</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0209144/">Memento</a> – Christopher Nolan</li>
<li>2000 – <a href="http://www.imdb.com/title/tt0168629/">Dancer in the dark</a> – Bailar en la oscuridad – Lars von Trier</li>
<li>2001 – <a href="http://www.imdb.com/title/tt0211915/">Le fabuleux destin d’Amélie Poulain</a> – Amélie – Jean-Pierre Jeunet</li>
<li>2001 – <a href="http://www.imdb.com/title/tt0203009/">Moulin Rouge!</a> – Baz Luhrmann</li>
<li>2001 – <a href="http://www.imdb.com/title/tt0245574/">Y tu mamá también</a> – Alfonso Cuarón</li>
<li>2001 – <a href="http://www.imdb.com/title/tt0283509/">No Man’s Land</a> – En tierra de nadie – Danis Tanovic</li>
<li>2001 – <a href="http://www.imdb.com/title/tt0245429/">Sen to Chihiro no kamikakushi</a> – El viaje de Chihiro – Hayao Miyazaki</li>
<li>2001 – <a href="http://www.imdb.com/title/tt0254686/">La pianiste</a> – La pianista – Michael Haneke</li>
<li>2001 – <a href="http://www.imdb.com/title/tt0265343/">Monsoon Wedding</a> – La boda del monzón – Mira Nair</li>
<li>2001 – <a href="http://www.imdb.com/title/tt0265666/">The Royal Tenenbaums</a> – Los Tenenbaum, una familia de genios – Wes Anderson</li>
<li>2002 – <a href="http://www.imdb.com/title/tt0340468/">Ônibus 174</a> – Jose Padilha, Felipe Lacerda</li>
<li>2002 – <a href="http://www.imdb.com/title/tt0253474/">The Pianist</a> – El pianista – Roman Polanski</li>
<li>2003 – <a href="http://www.imdb.com/title/tt0364569/">Oldeuboi</a> – Oldboy – Chan-wook Park</li>
<li>2003 – <a href="http://www.imdb.com/title/tt0167260/">LOTR, Return of the King</a> – ESDLA, El retorno del rey – Peter Jackson</li>
<li>2003 – <a href="http://www.imdb.com/title/tt0301357/">Good bye Lenin!</a> – Wolfgang Becker</li>
<li>2003 – <a href="http://www.imdb.com/title/tt0335266/">Lost in Translation</a> – Sofia Coppola</li>
<li>2003 – <a href="http://www.imdb.com/title/tt0346336/">La meglio gioventù</a> – La mejor juventud – Marco Tullio Giordana</li>
<li>2004 – <a href="http://www.imdb.com/title/tt0375679/">Crash</a> – Paul Haggis</li>
<li>2004 – <a href="http://www.imdb.com/title/tt0363163/">Der Untergang</a> – El hundimiento – Oliver Hirschbiegel</li>
<li>2004 – <a href="http://www.imdb.com/title/tt0375063/">Sideways</a> – Entre copas – Alexander Payne</li>
<li>2004 – <a href="http://www.imdb.com/title/tt0361596/">Fahrenheit 9/11</a>- Michael Moore</li>
<li>2005 – <a href="http://www.imdb.com/title/tt0388505/">Va, vis et deviens</a> – Vete y vive – Radu Mihailean</li>
<li>2005 – <a href="http://www.imdb.com/title/tt0445620/">Paradise now</a> – Hany Abu-Assad</li>
<li>2005 – <a href="http://www.imdb.com/title/tt0388795/">Brokeback Mountain</a> – Ang Lee</li>
<li>2005 – <a href="http://www.imdb.com/title/tt0468565/">Tsotsi</a> – Gavin Hood</li>
<li>2005 – <a href="http://www.imdb.com/title/tt0387131/">The Constant Gardener</a> – El jardinero fiel – Fernando Meirelles</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0449059/">Little Miss Sunshine</a> – Pequeña Miss Sunshine – Jonathan Dayton</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0482571/">The Prestige</a> – El truco final, el Prestigio – Christopher Nolan</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0405094/">Das Leven der Anderen</a> – La vida de los otros – Florian Henckel</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0475276/">United 93</a> – Paul Greengrass</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0206634/">Children of Men</a> – Hijos de los hombres – Alfonso Cuarón</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0457430/">Pan’s Labyrinth</a> – El laberinto del fauno - Guillermo del Toro</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0455590/">The Last King of Scotland</a> – El ultimo rey de Escocia – Kevin Macdonald</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0443453/">Borat</a> – Larry Charles</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0449467/">Babel</a> – Alejandro González Iñárritu</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0436697/">The Queen</a> – La Reina – Stephen Frears</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0472043/">Apocalypto</a> – Mel Gibson</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0407887/">The Departed</a> – Infiltrados – Martin Scorsese</li>
<li>2006 – <a href="http://www.imdb.com/title/tt0441909/">Volver</a> – Pedro Almodóvar</li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/1001-movies-to-watch-before-you-die/images/pelis_touhm1.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Route through Teruel and preparations for Japan]]></title>
            <link>https://www.joanmira.com/blog/route-through-teruel-and-preparations-for-japan</link>
            <guid>https://www.joanmira.com/blog/route-through-teruel-and-preparations-for-japan</guid>
            <pubDate>Tue, 23 Mar 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Article written by my partner on the samurai route]]></description>
            <content:encoded><![CDATA[<p>By Vicente Malpica</p>
<p>I have spent many years traveling by motorcycle everywhere, the sensations you feel when you start a trip have never left me, that&#39;s why I keep traveling. So it was that Monday, it was a beautiful morning in mid-March, one of those that seems that everything has stopped, the wind was sleeping, the sun was shining, and the atmosphere was calm, like the temperature, ideal for traveling by motorcycle.</p>
<p>I hadn&#39;t ridden my beloved globetrotting motorcycle for about 4 months. Imagine, what a great situation, a few days off, good weather and a reunion with good friends, so began this route by the Turolense area.</p>
<p>I headed east on the N-420 towards Teruel, the sensations were indescribable.  I love riding a motorcycle, and I feel a fantastic &quot;I don&#39;t know what&quot; when I drive the bike, it&#39;s amazing.</p>
<p>Seeing beautiful landscapes, along the banks of the river Cabriel, I was gradually driving until I reached Villel, a small town located a few kilometers from Teruel.</p>
<iframe frameborder="0" height="350" marginheight="0" marginwidth="0" scrolling="no" src="https://maps.google.es/maps/ms?ie=UTF8&hl=es&msa=0&ll=40.149636,-1.093377&spn=11.188571,22.192383&msid=109521630100610492151.000482b5a91bce6b189e4&z=9&output=embed" width="100%"></iframe>

<p>I thought I had arrived first, but it was not so, Juan, one of my best friends, was at the exit of the village waiting for us, I had not seen him for a long time, and it was gratifying to meet him again.
 We greeted each other, he showed me his new &quot;trail&quot; bike, a great Yamaha Ténéré 660 and we went to the bar to have a drink.</p>
<p>We were still waiting for the rest of the group, in the modest bar restaurant that is next to the national road, Manolo and his workmate Javi.</p>
<p>We started talking about motorcycles, of course! and about life, work, travel, and many things. We heard engine noises, we looked at each other and our thoughts met, Villa and Javier, we jumped out of the chairs and went outside, that&#39;s how it was, Manolo and Javier had just arrived. We went to the dining room and after a good wine, good homemade food and chatting, the time flew by. The route could not start better :-)</p>
<p>After lunch we set off, we did a few km to Más de Jacinto, where we found a small gas station in the village, and we started the route, everything was OK!</p>
<p>We wanted to get to Javalambre, to the ski resort, and for this, we chose a good local route that passes through where almost no one ever passes.</p>
<p>We took the road to Riodeva, to reach Camarena de la Sierra, all this very idyllic area, full of pine forests and small mountains south-west of Teruel.</p>
<p>The afternoon was going very well, the coolness was beginning to appear, the sun was giving signs to say goodbye and we still had a little route to the summit.</p>
<p>The roads were half right. I mean that there were places where the road was still almost covered by snowdrifts, but slowly and with good hands we went through.</p>
<p>The presence of people in these moors is almost null, some locals with a C15 van and a tractor, and little else.</p>
<p>We arrived at the top by a nice curvilinear road, already in better conditions, and we noticed a more influx of people to the ski resort. We stopped for a while to take some pictures, see the place and chat just enough, as the cold was beginning to take its toll on us (+5 indicated to us that night was approaching), so we went buzzing down.</p>
<p>The descent was short because the road is in better condition and we went to the Collado del Gavilán and the N-234, near La Puebla de Valverde. The rest was a piece of cake, a little bit of national highway and Teruel.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_3_r3tucb.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_3_r3tucb.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_3_r3tucb-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_3_r3tucb-mobile.jpg" />
          <img class="image" src="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_3_r3tucb.jpg" alt="teruel_3" loading="lazy">
        </picture>
        <figcaption>teruel_3</figcaption>
      </figure></p>
<p>Joan had explained to me that he would be in Pamplona for work and that he would be with us on Tuesday. Well, that was the agreement, but in the end, he lightened the pace and well into the night, almost 24 hours, of that same Monday, he appeared in Teruel, after passing a strong wind and colder than a penguin, (in truth my partner of adventures is a great guy and tough as stones :-)</p>
<p>We were on our way back from a bar in the center of Teruel, where we had eaten some good plates of sausages, ham and other local food when Joan arrived.</p>
<p>It&#39;s a strange sensation that I feel every time we meet, Joan is a good friend and very adventurous, like the rest of my friends, his company is very pleasant and that of all.</p>
<p>We all went to the residence to &quot;get into the envelope&quot;, and the truth is that it took us a short time to go to those dreamlike worlds of fantasy, where all the bikes and roads are made of light...</p>
<p>On Tuesday we all woke up a bit &quot;tired&quot;, so many changes in a short time are noticeable, but with a huge desire to do kms.</p>
<p>We had a good breakfast in a bar next to the residence and, after taking a look at the bikes, which were frozen at that time, (about 10 h.), we put the ON and rode through the Sierra de Gúdar.</p>
<p>The day was sunnier than the previous one, something glorious was foreseen, although until well into the day, we felt the coldness of the morning.</p>
<p>We took directions to Formiche Alto and Castellar, mountain road, beautiful scenery, and a relaxed walk. I almost didn&#39;t remember what it was like to ride with 5 bikers, because I usually ride alone, at most, one more, but the feeling was very good.</p>
<p>The sun began to press more and more, the muscles to unwind and after small stops, talks at the roadside, laughter and good vibes, the route was running, a day of motorcycles, friends and landscapes.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_2_gr5eby.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_2_gr5eby.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_2_gr5eby-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_2_gr5eby-mobile.jpg" />
          <img class="image" src="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_2_gr5eby.jpg" alt="teruel_2" loading="lazy">
        </picture>
        <figcaption>teruel_2</figcaption>
      </figure></p>
<p>The Sierra de Gúdar is an idyllic place, as it does not have too many tourists and its people and landscapes bring you sensations that other places do not give you, highly recommended, Teruel, exists!</p>
<p>We decided to eat in a small village called Linares de Mora, and while there tasting the good delicacies of the area, Javier&#39;s sister-in-law appeared, a teacher in the area, where she told us how the children of those lands are, the peace that reigns in those mountains and the amount of snow and cold that have passed this winter, interesting...</p>
<p>As time goes by, I don&#39;t even remember the hours we spent in that nice restaurant, the fact is that when we left, the sun seemed to indicate that either we would lighten our pace, or we would be cold at night on our way back.</p>
<p>Unanimously, as always, we decided to do a good piece of dirt track, so that it is not said that we carry trails and do not even touch the ground.</p>
<p>It came in handy for Joan and me since we will soon do thousands of kilometers of dirt and adapting to these terrains is very important.</p>
<p>The route was to reach Castelvispal, and then dirt road to Puertomingalvo.</p>
<p>A trail is indeed a trail, the little way to Castelvispal went well, with broken road and gravel, for no change, also shady areas where snow and ice made an appearance.</p>
<p>Then we started the piece of the trail-land route that, at first, we thought would be only &quot;ripio&quot; (dirt), as the Argentinians say, and then became pieces of mud, ice and snow.</p>
<p>Carefully we all went through and, not without seeing the immensity of the mountains of this area and what nature offers us, wherever we go, fantastic!</p>
<p>In Puertomingalvo the road becomes again with asphalt and spoiled, very entertaining downhill towards Castillo de Villamalefa and Zucaina, where the landscapes are indescribable.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_4_la6dym.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_4_la6dym.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_4_la6dym-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_4_la6dym-mobile.jpg" />
          <img class="image" src="/blog/route-through-teruel-and-preparations-for-japan/images/teruel_4_la6dym.jpg" alt="teruel_4" loading="lazy">
        </picture>
        <figcaption>teruel_4</figcaption>
      </figure></p>
<p>Already in Castellon lands, we followed the route without stopping too much, since the night was approaching us. A stop at the Arenós reservoir and after a few good photos, we continue to Olba, Rubielos de Mora and Mora de Rubielos.</p>
<p>In the latter town, we refueled our faithful trail bikes and, at that moment a mishap occurred:</p>
<p>Well, Javier warns us, alarmed, that his bike, F650, (like my old bike) had noticed a kind of explosion in the antifreeze tank and liquid of the same was seen on the ground.</p>
<p>Well, nothing, hands to work, we disassembled a little his bike, carefully removed the radiator cap, and we could see that the valve that has the same was not going well.</p>
<p>We opened it and put it back, in turn, we checked the tank-expansion vessel, which was empty, then carefully closed the radiator cap, filled the said expansion vessel and now more relaxed, took Teruel course, preceding us all.</p>
<p>The night had already caught us, but the temperature remained a few degrees above zero, great.</p>
<p>Little by little, we advanced towards the small Aragonese city, where we finished the route.</p>
<p>That night we did not feel like going to the center, all somewhat tired of having done some 239 kms. of curves and more curves, so near the residence there was a Pizzeria, where we ate some good pizzas and a few &quot;beers&quot;, to go to sleep early.</p>
<p>And what goes around comes around, and with the illusion and dreams of more and more routes to come, we said goodbye that Wednesday morning, in which each one of us took a different direction.</p>
<p>Joan and I headed west, N420 towards Cuenca, to Torrebaja, where, after some funny pictures, we said goodbye until the next one, which if all goes well will be very soon.</p>
<p>Regarding the trip to Japan, the negotiations continue. We have new sponsors, thanks from here to Seva&#39;s Publicity and Casbas Creaciones.</p>
<p>And to say that KM. Cero continues to make international insurance for the whole trip.</p>
<p>Visas for Russia and Mongolia, we are working on it, a little complicated the issue, especially the Russian, but not impossible.</p>
<p>The gasoline in Mongolia is a mess, we still do not know for sure, if it is led or unleaded, to remove the catalytic converter to the bike or not, we will find out for sure.</p>
<p>The ATA license, almost about to do it, to be able to take our motorcycles out of Europe and the truth little more, struggling to get more support day by day and that, eager to leave and embark on a journey.</p>
<p>Thank you very much to all of you for everything you do for us, a big hug.</p>
<p>Joan and Vicente</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/route-through-teruel-and-preparations-for-japan/images/teruel_1_ywf9sj.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Letters to sponsors]]></title>
            <link>https://www.joanmira.com/blog/letters-to-sponsors</link>
            <guid>https://www.joanmira.com/blog/letters-to-sponsors</guid>
            <pubDate>Thu, 04 Mar 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Any collaboration that can be achieved will be welcome and greatly appreciated]]></description>
            <content:encoded><![CDATA[<p>During the last six days, we have been sending letters to companies and institutions that we think might be interested in participating in this project. In total, we have sent more than twenty, to companies such as Rukka, TCX, IXS, Decathlon, Altus, Arai, GoPro, Canon, Panasonic, Sony, Hepco &amp; Becker, La Caixa, Metzeler, Öhlins, Starcom1, The North Face, Oxford, Touratech, Ubricar Motos, Wunderlich and Yamaha. We have also sent it to the city council of Coria del Rio.</p>
<p>We have done it in the best possible way:</p>
<ul>
<li>with a personalized proposal for each sponsor</li>
<li>printing the envelopes</li>
<li>enclosing a magnet of the Samurai Route</li>
<li>enclosing a Samurai Route business card.</li>
</ul>
<p>We have not sent a T-shirt because they are not ready yet, but if you agree to collaborate with us, we will send it to you for sure!</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/letters-to-sponsors/images/sponsors1_d0wxwi.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/letters-to-sponsors/images/sponsors1_d0wxwi.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/letters-to-sponsors/images/sponsors1_d0wxwi-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/letters-to-sponsors/images/sponsors1_d0wxwi-mobile.jpg" />
          <img class="image" src="/blog/letters-to-sponsors/images/sponsors1_d0wxwi.jpg" alt="sponsors1" loading="lazy">
        </picture>
        <figcaption>sponsors1</figcaption>
      </figure></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/letters-to-sponsors/images/patrocinadores2_oy2mez.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Tomoe Gozen, the samurai woman]]></title>
            <link>https://www.joanmira.com/blog/tomoe-gozen-the-samurai-woman</link>
            <guid>https://www.joanmira.com/blog/tomoe-gozen-the-samurai-woman</guid>
            <pubDate>Sat, 23 Jan 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[A great warrior capable of taking out up to 20 enemies in a single combat]]></description>
            <content:encoded><![CDATA[<p>*Tomoe Gozen charging the enemy, in a woodcut by Yoshu Chikanobu, from 1899.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/tomoe-gozen-the-samurai-woman/images/tomoe.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/tomoe-gozen-the-samurai-woman/images/tomoe.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/tomoe-gozen-the-samurai-woman/images/tomoe-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/tomoe-gozen-the-samurai-woman/images/tomoe-mobile.jpg" />
          <img class="image" src="/blog/tomoe-gozen-the-samurai-woman/images/tomoe.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<p>The Samurai warrior class began in the 9th century as expert fighters with strict rules of honor. There is also a Japanese female warrior. She was the beautiful Tomoe who, besides being recognized as a high-ranking samurai, was feared by her enemies. Her weapon of choice, the naginata, a kind of wooden spear with an attached metal blade, gave her legendary fame. Always ready to fight, she was also an excellent archer and mastered with ease the handling of large horses up steep slopes. Her death, defending her beloved husband, General Minamoto Yoshinaka in unequal combat, made her a myth.</p>
<p>It is estimated that Tomoe was born around 1157. Her name means &quot;Perfect Circle&quot; and, like all women from samurai families, she was introduced to the martial art of naginata (NAGINATA JUTSU). This was necessary, as the women were responsible for the defense of the estates when the men were away.</p>
<p>Tomoe lived through a period of confrontation between Japanese clans, specifically between the TAIRA clan and the MINAMOTO clan, known as the GEMPEI WARS (1180-1185). Finally, the MINAMOTO clan won the victory, proclaiming the first shogunate of Kamakura. With his naginata, his armor and his horse, Tomoe distinguished himself during these fights and legend has it that in single combat he was able to kill 20 enemy warriors. His image has been reflected in many paintings and stories.</p>
<p>It so happened that the generals of the MINAMOTO clan did not get along either. Minamoto Yoshinaka, a young general of great prestige and married to Tomoe Gozen, aroused the suspicions of the Shogun of Kamakura, Yorimoto Minamoto. Accusing him of conspiracy, the Shogun got the Emperor to declare Minamoto Yoshinaka (General Kiso) an enemy of the State, which forced the Shogun to kill him.</p>
<p>General Kiso was abandoned by his men. By all but four loyal warriors, including his faithful wife Tomoe, who perished fighting alongside her husband in the so-called battle of Awazu (1184).</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/tomoe-gozen-the-samurai-woman/images/tomoe-landscape.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Movies about Mongolia that you have to see]]></title>
            <link>https://www.joanmira.com/blog/movies-about-mongolia-that-you-must-see</link>
            <guid>https://www.joanmira.com/blog/movies-about-mongolia-that-you-must-see</guid>
            <pubDate>Sat, 23 Jan 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[For the curious who are not yet familiar with the culture of this remote country]]></description>
            <content:encoded><![CDATA[<h3 id="tuyas-wedding-tu-ya-de-hun-shi">Tuya&#39;s Wedding (Tu ya de hun shi)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Tuya's_wedding_AKA_Tuya's_wedding-496401720-large_fkh8xs.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Tuya's_wedding_AKA_Tuya's_wedding-496401720-large_fkh8xs.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Tuya's_wedding_AKA_Tuya's_wedding-496401720-large_fkh8xs-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Tuya's_wedding_AKA_Tuya's_wedding-496401720-large_fkh8xs-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/Tuya's_wedding_AKA_Tuya's_wedding-496401720-large_fkh8xs.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2006</li>
<li>Length: 92 min.</li>
<li>Country: China</li>
<li>Director: Wang Quan&#39;an</li>
<li>Screenplay: Wang Quan&#39;an, Lu Wei</li>
<li>Photography: Lutz Reitemeier</li>
<li>Cast: Yu Nan, Ba Te Er, Sen Ge, Peng Hongxiang</li>
<li>Production company: Xi&#39;an Motion-Picture</li>
<li>Official website: <a href="http://www.golem.es/labodadetuya">www.golem.es/labodadetuya</a></li>
<li>Awards: 2007, Berlin, Golden Bear for best film</li>
<li>Synopsis: In deepest rural Mongolia, Tuya (Yu Nan) is a young woman struggling to change her destiny, trying to support her crippled husband, her two children and her reb- Year of sheep. There is increasing pressure from the government for Mongolian herders to abandon their traditional nomadic lifestyle. Tuya is beautiful, strong and stubborn. She cares for her animals and her family in Inner Mongolia. She refuses to leave her pastures but the prolonged effort takes its toll and she falls ill. The only solution is to divorce Bater, and her husband, and remarry to move on. There is no shortage of suitors, but none wants to accept the condition Tuya imposes. She is not looking for someone rich, handsome or intelligent. She only asks him to take care of her children and, above all, her husband Bater...</li>
</ul>
<h3 id="the-mongol-dog-die-hoehle-des-gelben-hundes">The Mongol Dog (Die Hoehle des gelben Hundes)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/El_Mongolian_dog_The_Yellow_dog_cave-384806038-large_xjfndd.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/El_Mongolian_dog_The_Yellow_dog_cave-384806038-large_xjfndd.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/El_Mongolian_dog_The_Yellow_dog_cave-384806038-large_xjfndd-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/El_Mongolian_dog_The_Yellow_dog_cave-384806038-large_xjfndd-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/El_Mongolian_dog_The_Yellow_dog_cave-384806038-large_xjfndd.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2005</li>
<li>Length: 90 min.</li>
<li>Country: Germany</li>
<li>Director: Byambasuren Davaa</li>
<li>Script: Byambasuren Davaa</li>
<li>Photography: Daniel Schoenauer</li>
<li>Cast: Batchuluun Urjindorj, Buyandulam Daramdadi Batchuluun, Nansal Batchuluun, Nansalmaa Batchuluun, Batbayar Batchuluun</li>
<li>Production company: Schesch Film / HFF Munich</li>
<li>Synopsis: Nansal, the eldest daughter of a family of Mongolian nomads, comes across a cub one day while collecting firewood for her mother in a field near her home. From the first moment she becomes infatuated with the puppy but, when she brings it home, her father is afraid it will bring them bad luck, as he believes it may be descended from wolves, and asks her to get rid of it immediately...</li>
</ul>
<h4 id="mongolian-ping-pong-lü-cao-di">Mongolian Ping-Pong (Lü cao di)</h4>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/mongolian-ping-pong-dvd_zgi9uy.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/mongolian-ping-pong-dvd_zgi9uy.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/mongolian-ping-pong-dvd_zgi9uy-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/mongolian-ping-pong-dvd_zgi9uy-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/mongolian-ping-pong-dvd_zgi9uy.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2005</li>
<li>Length: 102 min.</li>
<li>Country: China</li>
<li>Director: Hao Ning</li>
<li>Script: Hao Ning</li>
<li>Music: Wuhe</li>
<li>Cinematography: Jie Du</li>
<li>Cast: Hurichabilike, Dawa, Geliban, Badema, Yidexinnaribu...</li>
<li>Production company: Beijing Kunlun Xiongdi Prod</li>
<li>Synopsis: A white ping-pong ball floats down a stream until it is found by Bilgee, a Mongolian boy. His grandmother tells him it is a glowing pearl that has fallen from the sky. He believes the story and spends the whole night in the meadow with his two best friends: Ergotor, who can&#39;t ride a horse but can ride a motorcycle, and Dawaa, who is very small but never gives up. However, they don&#39;t get to see the longed-for glow of the ball and all they get is a beating from their parents when they return home. During the annual Nadam festival, the children mistake Bilgee&#39;s &quot;glowing pearl&quot; for the golf ball they see in a movie. The projectionist will get them out of the confusion and cause the children&#39;s disenchantment.</li>
</ul>
<h3 id="urga-the-land-of-love">Urga, the land of love</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Urga_19_siv0pe.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Urga_19_siv0pe.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Urga_19_siv0pe-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Urga_19_siv0pe-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/Urga_19_siv0pe.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 1991</li>
<li>Length: 118 min.</li>
<li>Country: Russia</li>
<li>Director: Nikita Mikhalkov</li>
<li>Script: Nikita Mikhalkov</li>
<li>Music: Eduard Nikolay Artemiev</li>
<li>Cinematography: Vilen Kaliuta</li>
<li>Cast: Badema Bayaertu, Vladimir Gostukhin, Baoyinhexige, Larisa Kuznetsova</li>
<li>Production company: Coproduction Russia-France</li>
<li>Awards: 1992, Venice, Golden Lion. 1992, Oscar nominee for Best Foreign Language Film.</li>
<li>Synopsis: In the Mongolian steppe lives a family with a modest and rural lifestyle, until the arrival of a Russian ex-soldier will make evident the difference and cultural gap between both civilizations.</li>
</ul>
<h3 id="mongolian">Mongolian</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Mongol-720978610-large_psfxog.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Mongol-720978610-large_psfxog.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Mongol-720978610-large_psfxog-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/Mongol-720978610-large_psfxog-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/Mongol-720978610-large_psfxog.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2007</li>
<li>Length: 126 min.</li>
<li>Country: Kazakhstan</li>
<li>Director: Sergei Bodrov</li>
<li>Screenplay: Arif Aliyev, Sergei Bodrov</li>
<li>Music: Tuomas Kantelinen</li>
<li>Cinematography: Rogier Stoffers, Sergei Trofimov</li>
<li>Cast: Tadanobu Asano, Aliya, Tegen Ao, Ying Bai,...</li>
<li>Production company: Co-production Kazakhstan-Russia-Germany-Germany-Mongolia</li>
<li>Official website: <a href="http://www.mongolmovie.com">www.mongolmovie.com</a></li>
<li>Awards: 2008, National Board of Review, Best Foreign Language Film. 2007, Oscar nominee for Best Foreign Language Film.</li>
<li>Synopsis: Narrates the life of the legendary and fearsome Genghis Khan from his enslavement until he conquered half the world, including Russia in 1206. An epic blockbuster that was selected by Kazakhstan as an Oscar nominee for Best Foreign Language Film.</li>
</ul>
<h3 id="the-story-of-the-crying-camel">The story of the crying camel</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/camel_qcwszg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/camel_qcwszg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/camel_qcwszg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/camel_qcwszg-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/camel_qcwszg.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Original title: Ingen Numsil - Die Geschichte vom weinenden Kamel</li>
<li>Year: 2003</li>
<li>Length: 93 min.</li>
<li>Country: Mongolia</li>
<li>Director: Byambasuren Davaa, Luigi Falorni</li>
<li>Script: Byambasuren Davaa, Luigi Falorni</li>
<li>Cast: Documentary</li>
<li>Production Company: Mongolia-Germany Coproduction</li>
<li>Synopsis: Fictionalized documentary about a family of Mongolian nomadic herders who are given an albino camel that their mother rejects.</li>
</ul>
<h3 id="the-hunter-dersu-uzala">The Hunter (Dersu Uzala)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/dersuuzalaposter-large1_t6wruk.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/dersuuzalaposter-large1_t6wruk.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/dersuuzalaposter-large1_t6wruk-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/dersuuzalaposter-large1_t6wruk-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/dersuuzalaposter-large1_t6wruk.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 1975</li>
<li>Length: 141 min.</li>
<li>Country: Soviet Union (USSR)</li>
<li>Director: Akira Kurosawa</li>
<li>Screenplay: Akira Kurosawa &amp; Yuri Nagibin</li>
<li>Music: Isaac Schwartz</li>
<li>Cinematography: Asakadzu Nakai, Youri Gantoman,...</li>
<li>Cast: Maksim Munzuk, Yuri Solomin, Svetlana Danilchenko,...</li>
<li>Production company: Coproduction USSR-Japan; Mosfilm / Atelier 41</li>
<li>Awards: 1975, Oscar for best foreign film. 1975, Grand Prix at the Moscow International Film Festival. 1976, David de Donatello for best film of the year.</li>
<li>Synopsis: Captain Vladimir Arseniev and his detachment have to carry out geological surveys in the forests of the Siberian taiga. The immensity of the territory and the harshness of the climate cause the captain to be separated from his soldiers. Condemned to wander in the wilderness, Vladimir meets Dersu Uzala, a nomadic hunter, and inhabitant of the area, who knows the whole territory perfectly and knows how to control the inclement weather. Dersu will teach Vladimir to live in complete harmony with nature and to know how to respect it as much as possible so as not to disturb the existence of both. In turn, Vladimir will learn a lesson that he will hardly forget for the rest of his life.</li>
</ul>
<h3 id="desert-dream---hyazgar">Desert Dream - Hyazgar</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/desert_dreams_ctdrbq.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/desert_dreams_ctdrbq.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/desert_dreams_ctdrbq-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/desert_dreams_ctdrbq-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/desert_dreams_ctdrbq.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2007</li>
<li>Length: 123 min.</li>
<li>Country: South Korea</li>
<li>Director: Zhang Lu</li>
<li>Screenplay: Zhang Lu</li>
<li>Cinematography: Kim Sung-tae</li>
<li>Cast: Bakchul, Bat-Ulzii, Osor Bat-Ulzii, Bayasgalan, Shin Dong-ho</li>
<li>Production company: Coproduction South Korea-France</li>
<li>Official Website: <a href="http://www.solaris-distribution.com/desertdream.htm">www.solaris-distribution.com</a></li>
<li>Synopsis: A small town in a desert region, not far from the border between Mongolia and China. Extr- Years are the inhabitants who still live there, among whom there is a farmer, a soldier or a woman who fled from North Korea. Most of them have left the city after having fought in vain for years against the desert, which is gaining more and more ground. The few natives who survive, do so by planting bushes in an increasingly arid land, under the direction of their chief, Hangai.</li>
</ul>
<h3 id="state-of-dogs">State of Dogs</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/state_dogs_vosmnx.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/state_dogs_vosmnx.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/state_dogs_vosmnx-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/state_dogs_vosmnx-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/state_dogs_vosmnx.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 1998</li>
<li>Length: 55 min / 91 min.</li>
<li>Country: Belgium / Mongolia</li>
<li>Director: Peter Brosens, Dorjkhandyn Turmunkh</li>
<li>Screenplay: Peter Brosens, Dorjkhandyn Turmunkh</li>
<li>Cast: Nyam Dagyrantz, Banzar Damchaa, Baatar Galsansukh,...</li>
<li>Production Company: Inti Films with Balthazar Film, Magic Hour Films,...</li>
<li>Awards: 18 - Awards including: &quot;Grand Prix&quot;, Visions du Réel, Nyon,...</li>
<li>Synopsis: An astonishing blend of personal journey and social commentary. Beautiful and haunting, the film is structured by the memories of Basaar, a stray dog killed by a hunter in Ulan Bator. Mongolians believe that dogs are reincarnated as humans, but Basaar is reluctant to accept this fate. Basaar&#39;s story is intertwined with Mongolian myth and contemporary poetry, taking on the texture of a poetic fable. <a href="http://video.google.com/videoplay?docid=-2155333397414514793">Watch the film on Google Videos</a></li>
</ul>
<h3 id="genghis-khan-to-the-ends-of-the-earth-and-sea">Genghis Khan: To the Ends of the Earth and Sea</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/films-about-mongolia-that-you-have-to-see/images/Genghis_Khan_2007_film_poster_ocuddh.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/films-about-mongolia-that-you-have-to-see/images/Genghis_Khan_2007_film_poster_ocuddh.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/films-about-mongolia-that-you-have-to-see/images/Genghis_Khan_2007_film_poster_ocuddh-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/films-about-mongolia-that-you-have-to-see/images/Genghis_Khan_2007_film_poster_ocuddh-mobile.jpg" />
          <img class="image" src="/blog/films-about-mongolia-that-you-have-to-see/images/Genghis_Khan_2007_film_poster_ocuddh.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2007</li>
<li>Length: 136 min.</li>
<li>Country: Japan / Mongolia</li>
<li>Director: Shinichirō Sawai</li>
<li>Screenplay: Takehiro Nakajima, Shôichi Maruyama,...</li>
<li>Cast: Takashi Sorimachi, Rei Kikukawa, Mayumi Wakamura,...</li>
<li>Production Company: Minoru Ebihara, Haruki Kadokawa, Katsuhito Matsuura,...</li>
<li>Synopsis: A look at the life of Genghis Khan, from his birth to the conquests in Asia.</li>
</ul>
<h3 id="kiran-in-mongolia">Kiran in Mongolia</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/splash_Mar_2007_01Layer1_ciavdg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/splash_Mar_2007_01Layer1_ciavdg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/splash_Mar_2007_01Layer1_ciavdg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/splash_Mar_2007_01Layer1_ciavdg-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/splash_Mar_2007_01Layer1_ciavdg.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2005</li>
<li>Length: 60 min.</li>
<li>Country: United States</li>
<li>Director: Jonathan Bland</li>
<li>Script: Jonathan Bland</li>
<li>Music: Anna Halldórsdóttir</li>
<li>Cinematography: Jonathan Bland</li>
<li>Cast: Documentary, Oral Esemgul, Kairatkan Sernedan, Kuma Uliksat</li>
<li>Production company: BULKFilms</li>
<li>Official Website: <a href="http://www.kiranovermongolia.com">www.kiranovermongolia.com</a></li>
<li>Synopsis: Kuma, a young Kazak man, retraces the steps of his grandfather who was a former eagle-training captain in a remote mountainous region. There, in the far west of Mongolia, he fulfills his dream of capturing and training his eagle. Under the tutelage of a local master trainer named Khairatkhan, Kuma learns not only the ways of eagle hunting but also the customs of his people. The Kazakhs of Mongolia have been isolated from Western civilization for 70 years after the &quot;Iron Curtain&quot; of Soviet communism. Ironically, their culture is much better preserved than even that of the Kazakhs of the Republic of Kazakhstan. The aim of &#39;Kiran on Mongolia&#39; is to create a document on the Kazak culture of Mongolia, now that the country has opened up to the world since the fall of communism.</li>
</ul>
<h3 id="taiga">Taiga</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/taiga_wzyvgg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/taiga_wzyvgg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/taiga_wzyvgg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/taiga_wzyvgg-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/taiga_wzyvgg.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 1992</li>
<li>Length: 501 min.</li>
<li>Country: Germany</li>
<li>Director: Ulrike Ottinger</li>
<li>Script: Ulrike Ottinger</li>
<li>Music: Andreas Mücke</li>
<li>Production Company: Ulrike Ottinger Filmproduction, Berlin,...</li>
<li>Official website: <a href="http://www.ulrikeottinger.com/index.php/732.html">www.ulrikeottinger.com</a></li>
<li>Synopsis: A journey to the yak and reindeer nomads of the northern land of the Mongols.</li>
</ul>
<h3 id="johanna-darc-of-mongolia">Johanna D&#39;Arc of Mongolia</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/sisters-47-e992a634_photo_xq9i9a.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/sisters-47-e992a634_photo_xq9i9a.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/sisters-47-e992a634_photo_xq9i9a-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/sisters-47-e992a634_photo_xq9i9a-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/sisters-47-e992a634_photo_xq9i9a.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 1988</li>
<li>Length: 165 min.</li>
<li>Country: Germany</li>
<li>Director: Ulrike Ottinger</li>
<li>Script: Ulrike Ottinger</li>
<li>Main actors:Peter Kern, Irm Hermann, Christoph Eichhorn, Ines Sastre,...</li>
<li>Official website: <a href="http://www.ulrikeottinger.com/index.php/745.html">www.ulrikeottinger.com</a></li>
<li>Synopsis: Ulrike Ottinger&#39;s epic adventure tells the story of a fantastic encounter between two different worlds. Seven Western women travelers find themselves aboard the sumptuous and meticulously reconstructed Trans-Siberian Express, a museum on wheels of European culture. Then they are ambushed by Mongolian horsemen, and the passengers are taken to the plains of Inner Mongolia on a fantastic camel ride through splendid scenery. Ottinger&#39;s film skillfully shows us the breathtaking views, the opulent customs of Princess Ulun Iga and her entourage, and the rituals of Mongolian life. A female version of Lawrence of Arabia, and just as radically romantic, Johanna d&#39;Arc of Mongolia embarks on an unforgettable, adventure-filled journey.</li>
</ul>
<h3 id="a-mongolian-tale-hei-jun-ma">A Mongolian tale (Hei jun ma)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/MongolianTale_c7jyyd.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/MongolianTale_c7jyyd.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/MongolianTale_c7jyyd-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/MongolianTale_c7jyyd-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/MongolianTale_c7jyyd.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 1995</li>
<li>Length: 105 min.</li>
<li>Country: China</li>
<li>Director: Fei Xie</li>
<li>Script: Cheng-zhi Zhang</li>
<li>Cast: Dalarsurong, Bayirtcya, Renhua Na,...</li>
<li>Synopsis: Bayinbulag and Somiya are raised from a young age as brother and sister with their adoptive grandmother. The three of them live happily in a hut on the Mongolian steppes. Just before Bayinbulag left town, having trained as a veterinarian, Grandma and Bayinbulag suggest that Somiya should finally get married. Bayinbulag, now training to be a musician, goes for long periods of time without communicating with Somiya. In the end, he returns and hopes to marry her.</li>
</ul>
<h3 id="all-my-love">All my love</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/2004105533_lgjgme.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/2004105533_lgjgme.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/2004105533_lgjgme-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/2004105533_lgjgme-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/2004105533_lgjgme.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2007</li>
<li>Length: 90 min.</li>
<li>Country: USA, Germany, Mongolia</li>
<li>Director: Brian Short</li>
<li>Script: Brian Short</li>
<li>Main actors:Tania Kupczek</li>
<li>Synopsis: At a time when most independent filmmakers are vying for space at Sundance or in Hollywood&#39;s &quot;indie cinema,&quot; it&#39;s refreshing to see a film that caters exclusively to the mysteries of artistic expression. With &quot;All My Love,&quot; local filmmaker and composer Brian Short has created an audiovisual experience that will surprise some and leave others confused, but bravely worthy of its first Best Film award in 2007, the Northwest Sightings Film Forum, a local film festival.</li>
</ul>
<h3 id="destination-gobi">Destination Gobi</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/films-about-mongolia-that-you-have-to-see/images/destination_gobi_mynfv8.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/films-about-mongolia-that-you-have-to-see/images/destination_gobi_mynfv8.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/films-about-mongolia-that-you-have-to-see/images/destination_gobi_mynfv8-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/films-about-mongolia-that-you-have-to-see/images/destination_gobi_mynfv8-mobile.jpg" />
          <img class="image" src="/blog/films-about-mongolia-that-you-have-to-see/images/destination_gobi_mynfv8.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 1953</li>
<li>Length: 90 min.</li>
<li>Country: USA</li>
<li>Director: Robert Wise</li>
<li>Screenplay: Everett Freeman, Edmund G. Love</li>
<li>Cast: Richard Widmark, Don Taylor, Max Showalter,...</li>
<li>Synopsis: A group of U.S. Navy weathermen goes to take action in the Gobi Desert, in World War II and are forced to seek the help of Mongolian nomads to recover their ship, while the attack of the Japanese air force happens. The Mongols are rewarded by an airlift with the best saddles.</li>
</ul>
<h3 id="the-great-match">The great match</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/The_Great_Match_hakd0g.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/The_Great_Match_hakd0g.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/The_Great_Match_hakd0g-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/The_Great_Match_hakd0g-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/The_Great_Match_hakd0g.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2006</li>
<li>Length: 88 min.</li>
<li>Country: Spain / Germany</li>
<li>Director: Gerardo Olivares</li>
<li>Script: Gerardo Olivares, Chema Rodríguez</li>
<li>Main actors: Shag Humar Khan, Abu Aldanish, Zeinolda Igaza,...</li>
<li>Synopsis: This film tells the adventure story of three heroes, none of whom I have met, but who nevertheless have two things in common: firstly, they all live in the farthest of remote corners of the planet and, secondly, they are all three determined to watch the 2002 World Cup final between Germany and Brazil on television in Japan. The protagonists of this &quot;world comedy&quot; are a family of Mongolian nomads, a caravan of Tuareg camels in the Sahara, and a group of Indians in the Amazon. They all live more than 500 kilometers from the nearest town - and the nearest television - making their task particularly daunting. However, these people possess the inventiveness and ingenuity of willpower to achieve their goals.</li>
</ul>
<h3 id="khadak-color-of-water">Khadak (Color of Water)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/47170340_jisowi.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/47170340_jisowi.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/47170340_jisowi-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/47170340_jisowi-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/47170340_jisowi.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2007</li>
<li>Length: 104 min.</li>
<li>Country: Belgium / Germany / Netherlands</li>
<li>Director: Peter Brosens, Jessica Hope Woodworth</li>
<li>Script: Peter Brosens, Jessica Hope Woodworth</li>
<li>Cast: Batzul Khayankhyarvaa, Tsetsegee Byamba, Banzar Damchaa,...</li>
<li>Synopsis: Magical realism, epilepsy, and the Mongolian steppes. A pilot dies. His son Bagi, who, like his father, has epilepsy, grows up in the steppe, raising sheep, subject to adjustments. A plague among the animals forces the family to leave their land and they go to a city where Bagi gets a job as a miner. His attacks become more frequent and he begins to have visions in this wasteland of mining, factories and rubble. He meets a group of art students after saving the life of one of them. As the crisis deepens with his people - the sheepless shepherds - BAGI uses the visions to seek direction. Will he save his people, and can love be found?</li>
</ul>
<h3 id="mujaan-the-craftsman">Mujaan (The Craftsman)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/mujaan_k6j15p.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/mujaan_k6j15p.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/mujaan_k6j15p-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/mujaan_k6j15p-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/mujaan_k6j15p.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2005</li>
<li>Country: USA</li>
<li>Director: Christopher McKee</li>
<li>Main actors:Altangerel, Sukhbaatar</li>
<li>Web: <a href="http://mujaan.com">www.mujaan.com</a></li>
<li>Synopsis: In the distant steppes of Mongolia, using simple tools, strength and ingenuity, a nomad builds a house the way his ancestors did for the last thousand years. Mujaan (The Artisan) is a vivid window into a way of disappearing from life in one of the most remote corners of the world.</li>
</ul>
<h3 id="my-beautiful-jinjiimaa">My Beautiful Jinjiimaa</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/jinjiimaa_ad5v5g.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/jinjiimaa_ad5v5g.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/jinjiimaa_ad5v5g-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/jinjiimaa_ad5v5g-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/jinjiimaa_ad5v5g.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2006</li>
<li>Country: Mongolia</li>
<li>Length: 88 min.</li>
<li>Director: Ochir Mashbat</li>
<li>Main actors:Natsagdorj Battsetseg, Purevdorj Tserendagva,...</li>
<li>Synopsis: Ochir Mashbat reveals the sublime beauty and grace lurking beneath the surface of another normal way of life with this moving story of a woman who is raped, and the enduring friendship that helps her overcome her trauma can have catastrophic consequences. Jinjimaa is a deaf woman living in rural Mongolia. When Jinjimaa is raped by the local party chairman, she shoots her assailant dead. In the wake of Jinjimaa&#39;s lifelong shooting friend, a farmer named lame Sukhee, takes responsibility...</li>
</ul>
<h3 id="puujee">Puujee</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/puujee_JPG_osaic.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/puujee_JPG_osaic.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/movies-about-mongolia-that-you-must-see/images/puujee_JPG_osaic-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/movies-about-mongolia-that-you-must-see/images/puujee_JPG_osaic-mobile.jpg" />
          <img class="image" src="/blog/movies-about-mongolia-that-you-must-see/images/puujee_JPG_osaic.jpg" alt="" loading="lazy">
        </picture>
        <figcaption></figcaption>
      </figure></p>
<ul>
<li>Year: 2007</li>
<li>Country: Japan</li>
<li>Length: 110 min.</li>
<li>Director: Kazuya Yamada</li>
<li>Synopsis: In the context of a magnificent but heavy natural landscape, a Japanese photojournalist meets Puujee, a young woman who tames wild horses in the steppes of Mongolia. I can&#39;t find this film anywhere to buy or download.</li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/movies-about-mongolia-that-you-must-see/images/puujee_JPG_osaico.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The Story of Hasekura Tsunenaga]]></title>
            <link>https://www.joanmira.com/blog/the-story-of-hasekura-tsunenaga</link>
            <guid>https://www.joanmira.com/blog/the-story-of-hasekura-tsunenaga</guid>
            <pubDate>Sun, 10 Jan 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[First Japanese official to establish trade relations between Japan and Europe]]></description>
            <content:encoded><![CDATA[<h3 id="who-was-hasekura-tsunenaga">Who was Hasekura Tsunenaga?</h3>
<p><a href="http://en.wikipedia.org/wiki/Hasekura_Tsunenaga">Hasekura Rokuemon Tsunenaga</a> (born 1571, died August 7, 1622) was a Japanese samurai who served the daimyo of the Japanese city of <a href="https://en.wikipedia.org/wiki/Sendai">Sendai</a>, <a href="http://en.wikipedia.org/wiki/Date_Masamune">Date Masamune</a>. He led a diplomatic mission to Mexico and then to Europe between 1613 and 1620, finally returning to Japan.</p>
<p>He was the first Japanese official sent to America and his trip to France became the first recorded instance of direct contact in Franco-Japanese relations.</p>
<p>In order to establish a commercial relationship and request the sending of Christian missionaries, the founder of Sendai, Date Masamune, <strong>sent in 1613 a mission to Europe</strong> embarked on the &quot;<em>Saint John the Baptist</em>&quot;, a Western-style sailing ship built by the Sendai manor. The name of his Subdelegate was Haskura Tsunenaga, a vassal of Masamune, who disembarked first in the city of Acapulco (Mexico) crossing the Pacific Ocean, with a Spanish galleon, and then headed for Europe, arriving on December 20, 1614.</p>
<p>He visited Madrid (Spain) and Rome (Italy) <strong>becoming the first Japanese to cross the Atlantic Ocean</strong>.</p>
<p><a href="/blog/the-history-of-hasekura-tsunenaga/images/Sanjuanbautista.jpg" title="Replica of the Spanish Galleon Juan Bautista">Sanjuanbautista</a></p>
<p>The Japanese mission commanded by Hasekura, had an audience with King Philip III of Spain, on January 30, 1615, and brought him a letter from Date Masamune offering him a treaty. The King replied that he would do his best to fulfill his requests.</p>
<p>In Italy, the mission was granted an interview with the Supreme Pontiff. His long journey ended almost seven years after he departed from Japan. This is one of the most relevant events in the history of the populous Japanese city of Sendai.</p>
<p>The Japanese ambassador, Hasekura, was baptized on February 17 by the staff of the Spanish royal chaplaincy with the new name of Felipe Francisco Hasekura.</p>
<p><strong>The mission left Seville for Mexico in June 1617</strong> after two years in Europe, but it was here that some Japanese decided to stay in Spain, specifically in the Sevillian town of <a href="http://en.wikipedia.org/wiki/Coria_del_R%C3%ADo">Coria del Río</a>, where their descendants still retain the surname &quot;Japón&quot;.</p>
<h3 id="the-symbiosis-with-spain">The symbiosis with Spain</h3>
<p><a href="/blog/the-story-of-hasekura-tsunenaga/images/coria-del-rio.jpg" title="Paseo Carlos de Mesa de Coria del Río by the Guadalquivir River - ABC">coria_rio</a></p>
<p>At present, there are many citizens in the city of Coria del Rio, who not only have the adopted surname &quot;Japan&quot; as a legacy passed down from those first Japanese who decided to stay in the town, but it is not difficult to guess in them certain features that corroborate their Japanese descent.</p>
<p>The prestigious researcher, poet and novelist from Coria, Daniel Pineda Novo, a great connoisseur of this subject, assures that the main reason that pushed these navigators to put down roots in this city was none other than <strong>the charm of the beautiful women they found</strong> and the <strong>open and hospitable character</strong> offered by its inhabitants.</p>
<p>At that time, Coria del Río, in addition to being a society with a basically agricultural economy, lived manifestly turned to the river and the fruits that it offered to its community, being an important fluvial and commercial port on the Guadalquivir, a reason that must have served as a channel for the fusion of both cultures.</p>
<p>Nowadays, we can affirm that the Corian today is fully aware of the bond that unites him with the Japanese people. He knows that many of his neighbors share the same blood and recognize the figure of the Japanese ambassador Haskura as the catalyst of this peculiar relationship. Since it was discovered, the City Council has ensured respect and increased bilateral cultural relations with the Japanese government, through the figure of its ambassador to Spain.</p>
<h6 id="photographs-from-wikipedia-and-coria-del-río-by-alonso-díaz">Photographs from Wikipedia and Coria del Río by <a href="http://www.alonsodr.com/">Alonso Díaz</a></h6>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-story-of-hasekura-tsunenaga/images/242px-Hasekura_in_Rome_c7sytj.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The Samurai Route through Spain]]></title>
            <link>https://www.joanmira.com/blog/the-samurai-route-through-spain</link>
            <guid>https://www.joanmira.com/blog/the-samurai-route-through-spain</guid>
            <pubDate>Sun, 10 Jan 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Participate in a historic event and give us your strength to successfully reach the land of the rising sun]]></description>
            <content:encoded><![CDATA[<h3 id="are-you-coming-with-us">Are you coming with us?</h3>
<p>Would you like to join us on a motorcycle through the different Spanish cities we will pass through? Alicante, Coria del Río, Madrid and Barcelona. To sign up, just send us an e-mail to <a href="mailto:&#105;&#110;&#x66;&#x6f;&#64;&#114;&#x75;&#x74;&#x61;&#115;&#x61;&#109;&#x75;&#x72;&#x61;&#x69;&#46;&#99;&#111;&#x6d;">&#105;&#110;&#x66;&#x6f;&#64;&#114;&#x75;&#x74;&#x61;&#115;&#x61;&#109;&#x75;&#x72;&#x61;&#x69;&#46;&#99;&#111;&#x6d;</a> with the following information: names, the brand of your motorcycle and the stage you would like to join us.</p>
<h3 id="stages-and-confirmed-participants">Stages and confirmed participants</h3>
<h4 id="alicante--coria-del-río-joan-yamaha-xt660z-tomás-harley-davidson">Alicante &gt; Coria del Río: Joan (Yamaha XT660Z), Tomás (Harley Davidson)</h4>
<ul>
<li>Date: June 4, 2010 at 9:00h</li>
<li>Departure place: Paseo de la Explanada (in front of Carbonell building) <a href="http://maps.google.es/maps/ms?ie=UTF8&amp;hl=es&amp;msa=0&amp;ll=38.344471,-0.480539&amp;spn=0.002735,0.005279&amp;t=h&amp;z=18&amp;msid=109521630100610492151.000480f70690f95b54790&amp;iwloc=000480f7079596573bb1a">(See map)</a></li>
<li>Route: Alicante - Murcia - Lorca - Granada - Seville (590 kms. - 8 hours)</li>
<li>Accommodation in Coria del Rio: ask for information at <a href="mailto:&#x69;&#x6e;&#x66;&#x6f;&#64;&#x72;&#x75;&#116;&#97;&#115;&#x61;&#x6d;&#x75;&#114;&#x61;&#105;&#x2e;&#x63;&#x6f;&#109;">&#x69;&#x6e;&#x66;&#x6f;&#64;&#x72;&#x75;&#116;&#97;&#115;&#x61;&#x6d;&#x75;&#114;&#x61;&#105;&#x2e;&#x63;&#x6f;&#109;</a></li>
</ul>
<h4 id="coria-del-río--madrid-joan-yamaha-xt660z-vicente-bmw-f800gs-tomás-harley-davidson-osomad-deauville-700">Coria del Río &gt; Madrid: Joan (Yamaha XT660Z), Vicente (BMW F800GS), Tomás (Harley Davidson), Osomad (Deauville 700)</h4>
<ul>
<li>Date: June 5, 2010 at 9:00h</li>
<li>Departure place: Hasekura samurai sculpture, Carlos de Mesa park (El Paseito) <a href="http://maps.google.es/maps/ms?ie=UTF8&amp;hl=es&amp;msa=0&amp;msid=109521630100610492151.000480f6e0aa753ecbcb9&amp;ll=37.282308,-6.048601&amp;spn=0.002881,0.005279&amp;t=h&amp;z=18">(See map)</a></li>
<li>Route: Dos Hermanas - Alcalá de Guadaira - Carmona - Lora del Río - Peñaflor - Córdoba - Some highway and through Montoro to the north N-420 - Puertollano - Ciudad Real - Towards Toledo by N-401 - 70 kms. to Madrid by highway A-42 (547 Kms. - 8 hours)</li>
<li>Lodging in Madrid: ask for information at <a href="mailto:&#105;&#110;&#102;&#111;&#64;&#x72;&#117;&#116;&#x61;&#115;&#x61;&#x6d;&#117;&#x72;&#x61;&#x69;&#x2e;&#99;&#x6f;&#x6d;">&#105;&#110;&#102;&#111;&#64;&#x72;&#117;&#116;&#x61;&#115;&#x61;&#x6d;&#117;&#x72;&#x61;&#x69;&#x2e;&#99;&#x6f;&#x6d;</a></li>
</ul>
<h4 id="madrid--barcelona-joan-yamaha-xt660z-vicente-bmw-f800gs-tomás-harley-davidson">Madrid &gt; Barcelona: Joan (Yamaha XT660Z), Vicente (BMW F800GS), Tomás (Harley Davidson)</h4>
<ul>
<li>Date: June 6, 2010 at 9:00 am</li>
<li>Departure place: ask for information at <a href="mailto:&#x69;&#110;&#x66;&#x6f;&#x40;&#114;&#117;&#x74;&#97;&#115;&#x61;&#109;&#117;&#114;&#97;&#105;&#x2e;&#x63;&#x6f;&#109;">&#x69;&#110;&#x66;&#x6f;&#x40;&#114;&#117;&#x74;&#97;&#115;&#x61;&#109;&#117;&#114;&#97;&#105;&#x2e;&#x63;&#x6f;&#109;</a></li>
<li>Route: Madrid - Alcolea del Pinar - Monreal del Campo - Caminreal - Montalbán - Alcañiz - Calaceite - Reus - Barcelona (616 Kms. - 8,5 hours)</li>
<li>Accommodation in Barcelona: ask for information at <a href="mailto:&#105;&#110;&#102;&#x6f;&#64;&#x72;&#x75;&#116;&#x61;&#x73;&#x61;&#109;&#117;&#x72;&#97;&#x69;&#46;&#x63;&#x6f;&#109;">&#105;&#110;&#102;&#x6f;&#64;&#x72;&#x75;&#116;&#x61;&#x73;&#x61;&#109;&#117;&#x72;&#97;&#x69;&#46;&#x63;&#x6f;&#109;</a></li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-samurai-route-through-spain/images/ruta_spain_ipx2yh.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Press and media]]></title>
            <link>https://www.joanmira.com/blog/press-and-media</link>
            <guid>https://www.joanmira.com/blog/press-and-media</guid>
            <pubDate>Sun, 10 Jan 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Compilation of mentions and stories about the samurai route in the media]]></description>
            <content:encoded><![CDATA[<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/giralda_tv_dby2p0.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/giralda_tv_dby2p0.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/giralda_tv_dby2p0-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/giralda_tv_dby2p0-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/giralda_tv_dby2p0.jpg" alt="giralda_tv" loading="lazy">
        </picture>
        <figcaption>giralda_tv</figcaption>
      </figure></p>
<p><strong>6 June 2010 - <a href="http://www.giraldatv.es">Giralda TV</a></strong></p>
<p>The municipal television of Seville, Giralda TV, publishes a video about our project to travel from Spain to Japan. In the video, there is a mini interview that we did in the place of departure, Coria del Rio <a href="http://www.youtube.com/watch?v=mDsD1S7m3_A" title="See press clipping">See video on Youtube</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/informacion.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/informacion.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/informacion-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/informacion-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/informacion.jpg" alt="informacion" loading="lazy">
        </picture>
        <figcaption>informacion</figcaption>
      </figure></p>
<p><strong>June 4, 2010 - <a href="http://www.diarioinformacion.es">Información de Alicante Newspaper</a></strong></p>
<p>The newspaper Información de Alicante publishes in its weekend edition an article about our project to travel from Spain to Japan. <a href="http://www.diarioinformacion.com/fin-semana/2010/05/31/a-fondo/reportajes/ruta-samurai/5365.html" title="See the article">See the article</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/diario_sevilla.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/diario_sevilla.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/diario_sevilla-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/diario_sevilla-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/diario_sevilla.jpg" alt="diario_sevilla" loading="lazy">
        </picture>
        <figcaption>diario_sevilla</figcaption>
      </figure></p>
<p><strong>4 June 2010 - <a href="http://www.diariodesevilla.es">Diario de Sevilla</a></strong></p>
<p>The newspaper Diario de Sevilla publishes an article in its online edition about our project to travel from Spain to Japan by motorcycle. <a href="http://www.diariodesevilla.es/article/sevilla/717159/japon/gran/salto.html" title="See the article">See the article</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/elcorreo.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/elcorreo.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/elcorreo-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/elcorreo-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/elcorreo.jpg" alt="elcorreo" loading="lazy">
        </picture>
        <figcaption>elcorreo</figcaption>
      </figure></p>
<p><strong>4 June 2010 - <a href="http://www.elcorreoweb.es">El Correo de Andalucía</a></strong> <a href="/blog/press-and-media/images/elcorreo.jpg">See the article</a></p>
<p>The newspaper El Correo de Andalucía publishes an article in its online edition about our project to travel from Spain to Japan by motorcycle. <a href="http://www.elcorreoweb.es/095907/samurais/dejan/coria/rio/motocicleta" title="See the article">See the article</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/eitb.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/eitb.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/eitb-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/eitb-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/eitb.jpg" alt="eitb" loading="lazy">
        </picture>
        <figcaption>eitb</figcaption>
      </figure></p>
<p><strong>18 November 2010 - <a href="http://www.eitb.com">Radio Euskadi</a></strong></p>
<p>In the radio program &quot;La casa de la palabra&quot; directed by Roge Blasco, Joan was interviewed live about the Samurai Route trip. <a href="/blog/press-and-media/images/radio_euskadi.mp3">Listen to the interview</a>. They have also written an article on their blog. <a href="http://www.blogseitb.com/rogeblasco/2010/11/21/joan-mira-%E2%80%9Cla-ruta-del-samurai%E2%80%9D-en-moto-desde-coria-del-rio-en-sevilla-hasta-sendai-en-japon-tras-los-pasos-de-hasekura-tsunenaga/" title="See the article">See the article</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/infoweek.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/infoweek.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/infoweek-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/infoweek-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/infoweek.jpg" alt="infoweek" loading="lazy">
        </picture>
        <figcaption>infoweek</figcaption>
      </figure></p>
<p><strong>10 July 2010 - <a href="http://www.infoweek.biz">InfoWeek</a></strong></p>
<p>This website specialized in innovative products publishes an article about the RFID technology we use in the advertisement of our sponsor Piononos. <a href="http://www.infoweek.biz/la/2010/06/los-anuncios-comienzan-a-incorporar-la-tecnologia-rfid/" title="See the article">See the article</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/idnews.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/idnews.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/idnews-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/idnews-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/idnews.jpg" alt="idnews" loading="lazy">
        </picture>
        <figcaption>idnews</figcaption>
      </figure></p>
<p><strong>4 July 2010 - <a href="http://www.idnoticias.com">IDNews</a></strong></p>
<p>This website specialized in identification technologies publishes an article about the RFID technology we use in the advertisement of our sponsor Piononos. <a href="http://www.idnoticias.com/2010/06/14/los-anuncios-comienzan-a-incorporar-la-tecnologia-rfid" title="See the article">See the article</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/puro_marketing.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/puro_marketing.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/puro_marketing-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/puro_marketing-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/puro_marketing.jpg" alt="puro_marketing" loading="lazy">
        </picture>
        <figcaption>puro_marketing</figcaption>
      </figure></p>
<p><strong>4 July 2010 - <a href="http://www.puromarketing.com">PuroMarketing</a></strong></p>
<p>This website specialized in marketing publishes an article about the RFID technology we use in the advertisement of our sponsor Piononos. <a href="http://www.puromarketing.com/12/7418/el-marketing-ya-incorpora-tecnologia-rfid.html" title="See the article">See the article</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/granada.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/granada.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/granada-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/granada-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/granada.jpg" alt="granada" loading="lazy">
        </picture>
        <figcaption>granada</figcaption>
      </figure></p>
<p><strong>25 april 2010 - <a href="http://www.granadahoy.com">Granada Hoy</a></strong></p>
<p>The newspaper Granada Hoy publishes a full page about the travels of Vicente Malpica from Granada and about our project to travel from Spain to Japan. <a href="/blog/press-and-media/images/diario_granada.jpg" title="See press clipping">See press clipping</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/solo_moto.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/solo_moto.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/solo_moto-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/solo_moto-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/solo_moto.jpg" alt="solo_moto" loading="lazy">
        </picture>
        <figcaption>solo_moto</figcaption>
      </figure></p>
<p><strong>31 March 2010 - <a href="http://www.solomoto30.com">SoloMoto Magazine</a></strong></p>
<p>In the publication nº 326, on page 136 (Reader&#39;s mail), they talk about our project. Thank you! <a href="/blog/press-and-media/images/solomoto_lector2.jpg" title="See press clipping"> See press clipping</a> | <a href="/blog/press-and-media/images/solomoto_lector1.jpg" title="Ad detail">Ad detail</a></p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/press-and-media/images/rac1.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/press-and-media/images/rac1.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/press-and-media/images/rac1-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/press-and-media/images/rac1-mobile.jpg" />
          <img class="image" src="/blog/press-and-media/images/rac1.jpg" alt="rac1" loading="lazy">
        </picture>
        <figcaption>rac1</figcaption>
      </figure></p>
<p><strong>25 February 2010 - Radio in Catalonia - <a href="http://www.rac1.org">RAC 1</a></strong></p>
<p>RAC 1 talked about La Ruta del Samurai in one of their radio programs. Thanks to them, the company Walkis Midland contacted us to sponsor us. Thank you!</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/press-and-media/images/giralda_tv_dby2p0.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Links to websites of travelers and friends]]></title>
            <link>https://www.joanmira.com/blog/links-to-webs-of-travelers-and-friends</link>
            <guid>https://www.joanmira.com/blog/links-to-webs-of-travelers-and-friends</guid>
            <pubDate>Sun, 10 Jan 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[The world is full of adventurers and people who dream of discovering new worlds beyond borders]]></description>
            <content:encoded><![CDATA[<h3 id="on-two-wheels-around-the-world">On two wheels around the world</h3>
<ul>
<li>Unus vita (One life), Mike and Ruby travel the world by motorcycle: <a href="http://www.unusvita.com/">www.unusvita.com</a></li>
<li>From Tokyo to London by motorcycle: <a href="http://www.tokyotolondon.com/">www.tokyotolondon.com</a></li>
<li>The Silk Road: <a href="http://www.rutadelaseda.com.ar/">www.rutadelaseda.com.ar</a></li>
<li>Maurizio and his wife travel through Europe and Asia: <a href="http://www.andiamoper.jimdo.com/">www.andiamoper.jimdo.com</a></li>
<li>On a motorcycle in Russia, where no one has ever gone before: <a href="http://www.sibirskyextreme.com/">www.sibirskyextreme.com</a></li>
<li>Around the world: Juan Ramón Rivero and Elena González: <a href="http://www.alrededordelmundo2010.com/">www.alrededordelmundo2010.com</a></li>
<li>America on a motorcycle: José, the canary: <a href="http://america-en-moto.blogspot.com/">america-en-moto.blogspot.com</a></li>
<li>Around the World: Charly solo: <a href="http://www.sinewan.com/">www.sinewan.com</a></li>
<li>Around the world in tandem: <a href="http://www.acercandoelmundo.com/">www.acercandoelmundo.com</a></li>
<li>Around the world in BMW F800GS: <a href="http://www.vueltamundo.org/">www.vueltamundo.org</a></li>
<li>The world on a motorcycle, two Asturians: <a href="http://elmundoenmoto.wordpress.com/">elmundoenmoto.wordpress.com</a></li>
<li>Around the world on Honda Goldwing: <a href="http://www.elwinger.org/">www.elwinger.org</a></li>
<li>Around the world of Pedrín and Miguelín: <a href="http://30metrosporsegundo.wordpress.com/">30metrosporsegundo.wordpress.com</a></li>
<li>Around the world: Gustavo Cieslas and Elke Pahl: <a href="http://www.re-moto.com/index.php">www.re-moto.com</a></li>
<li>Around the world: Jorge Conde and Maria Acuña: <a href="http://www.porelmundoenmoto.com/">www.porelmundoenmoto.com</a></li>
<li>Around the world: Ewan McGregor and Charley Boorman: <a href="http://www.longwayround.com/">www.longwayround.com</a></li>
<li>They organize motorcycle trips around the world: <a href="http://moto-mundo.com/">www.moto-mundo.com</a></li>
<li>From Colombia to India solo: <a href="http://www.ecbloguer.com/elmundoenpulsar/">www.ecbloguer.com/elmundoenpulsar</a></li>
<li>Going East, from Holland to Nepal: <a href="http://www.goingeast.nl/">www.goingeast.nl</a></li>
<li>Rakatanga Tour, from France to Asia: <a href="http://www.rakatanga-tour.com/">www.rakatanga-tour.com</a></li>
<li>Australia to Ireland: Kevin O&#39;Keeffe: <a href="http://sites.google.com/site/halfwayround/">sites.google.com/site/halfwayround</a></li>
</ul>
<h3 id="other-travelers-around-the-world">Other travelers around the world</h3>
<ul>
<li>Two Argentinian women travel around Latin America: <a href="http://www.cinealaintemperie.com.ar/">www.cinealaintemperie.com.ar</a></li>
<li>An Argentine couple travels around the world: <a href="http://www.acrobatadelcamino.blogspot.com/">www.acrobatadelcamino.blogspot.com</a></li>
<li>Two English graduates travel around the world: <a href="http://www.twoguysaroundtheworld.com/">www.twoguysaroundtheworld.com</a></li>
<li>A Solidarity Rally from Spain to Mongolia: <a href="http://www.atrapadosenmongolia.com/">www.atrapadosenmongolia.com</a></li>
<li>Antonio and Trini around the world: <a href="http://www.xtec.cat/~apique12/home%20page/default.htm">www.xtec.cat/...</a></li>
<li>Around the world by boat and public transport: <a href="http://www.gualtrips.com/">www.gualtrips.com</a></li>
<li>Javi Portoles&#39; travel blog: <a href="http://www.viajerodelmundo.com/">www.viajerodelmundo.com</a></li>
<li>Asun and Ricardo&#39;s world tour: <a href="http://mundoporlibre.com/">www.mundoporlibre.com</a></li>
<li>Around the world of a 25 year old Catán: <a href="http://lavoltadels25.cat/">lavoltadels25.cat</a></li>
<li>Aines en route (2 years traveling): <a href="http://ainesenruta.blogspot.com/">ainesenruta.blogspot.com</a></li>
<li>Around the world with Alex: <a href="http://alexporelmundo.blogspot.com/">alexporelmundo.blogspot.com</a></li>
<li>Orange around the world trip: <a href="http://orangeroundtheworldtrip.blogspot.com/">orangeroundtheworldtrip.blogspot.com</a></li>
<li>Ana and Dani&#39;s around the world trip: <a href="http://www.lavueltaalmundodeanaydani.blogspot.com/">lavueltaalmundodeanaydani.blogspot.com</a></li>
<li>Around the world of Pilar and Sergio: <a href="http://pilarysergio.blogspot.com/">pilarysergio.blogspot.com</a></li>
<li>Sin Rumba Fija, Verónica Cadena: <a href="http://www.travelblog.org/Bloggers/SINRUMBAFIJA/">www.travelblog.org...</a></li>
<li>366 Saturdays: <a href="http://366sabados.blogspot.com/">366sabados.blogspot.com</a></li>
</ul>
<h3 id="travel-websites-in-spanish">Travel websites in Spanish</h3>
<ul>
<li>Blog for travelers interested in traveling around the world: <a href="http://www.vueltaalmundo.com/">www.vueltaalmundo.com</a></li>
<li>Asia travel blog: <a href="http://www.viajarasia.com/">www.viajarasia.com</a></li>
<li>Altaïr magazine&#39;s travel blog: <a href="http://www.altairblog.com/">www.altairblog.com</a></li>
<li>Argentina travel blog: <a href="http://www.blogdeviajes.com.ar/">www.blogdeviajes.com.ar</a></li>
</ul>
<h3 id="interesting-blogs">Interesting blogs</h3>
<ul>
<li>Mongolian culture blog <a href="http://mongolculture.blogspot.com/">mongolculture.blogspot.com</a></li>
<li>Eric Lobo, extreme travel photographer: <a href="http://www.eric-lobo.com/">www.eric-lobo.com</a></li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/links-to-webs-of-travelers-and-friends/images/travellers.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The project]]></title>
            <link>https://www.joanmira.com/blog/the-project</link>
            <guid>https://www.joanmira.com/blog/the-project</guid>
            <pubDate>Sat, 09 Jan 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[Born with the idea of promoting relations and culture between the West and the East]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>&quot;Civilizations, like man, thrive on challenges and die out when they no longer seek them.&quot;- <a href="http://en.wikipedia.org/wiki/Robert_Zubrin">Robert Zubrin</a></p>
</blockquote>
<h3 id="what-is-the-purpose-of-this-journey">What is the purpose of this journey?</h3>
<p>We think that the future of the world is very much related to an understanding of the cultural differences between the West and the East. We have a lot to learn from each other and it seems that young people are starting to realize this. This trip is about bringing cultures together and actively trying to help bring about that understanding to make this world a more sustainable and peaceful place. We want to interview Russians, Mongolians and Japanese to find out how they live, what they would like to change, what their concerns are, what dreams they have, etc.</p>
<p>The answer to the big problems we are suffering today (economic crisis, hyper-consumerism and climate change) is not a technological change, but a great change of consciousness in humanity.</p>
<p>For this to happen, we need to transform some things. Examples: frivolity, superficiality, fear, indifference to all that is profound, to all that is mysterious, to all that is unknown.</p>
<p>Don&#39;t get carried away. Get out of your comfort zone. It is a necessary and sufficient condition to achieve transformation and growth.</p>
<h3 id="description-of-the-route">Description of the route</h3>
<p>The Samurai Route will last three months, in which we will travel by motorcycle from Spain to Japan. We will cross all of Europe, from the south to the north, then we will enter Russia from the northwest, passing through Moscow and St. Petersburg. We will continue through Siberia and when we get to Mongolia, we will enter through a route that goes through the Gobi desert and the Altai mountains. Finally, we will reach the easternmost tip of Russia, where we will take a ferry to South Korea and then on to Japan. (<a href="/samurai-route">see the complete route here</a>.</p>
<h3 id="projects-during-the-trip">Projects during the trip</h3>
<p><strong>1. Blog with videos and photos</strong>: we will try to document the route as much as possible (with videos, photos, diaries, maps, GPS tracking, and statistics). The goal is to collect all the information that may be interesting for future travelers who want to do this route. It would also be very interesting in future editions to organize a route through Southern Europe, the Middle East and South-East Asia.</p>
<p><strong>2. Recording of a documentary video</strong>: The objective of the trip is to explore and in a certain way to vindicate a rapprochement of the cultures between the West and the East. To do this, we want to record a video (Full HD quality) of a travel diary. The script will be 90% improvised and we will try to find interpreters to help us interview the people of the countries we pass through. We will carry small cameras (Full HD with wide angle) attached to the helmets (for the motorcycle scenes) and other cameras with manual focus and a tripod for the walking scenes. Later in the post-production phase and with the help of our collaborators, we will shape the documentary.</p>
<p><strong>3. For a solidary cause</strong>: part of the funds raised from the activities of La Ruta del Samurái will be destined for several projects to help certain communities in need in the Philippines and Mongolia. We still have to work on this part of the project and at the moment we are trying to get the La Caixa Foundation to collaborate with us. Especially to try to help in Mongolia, where <a href="http://www.redcross.int/es/MAG/magazine2003_1/20-21.html">poverty is causing a lot of damage</a>.</p>
<h3 id="how-are-we-going-to-do-it">How are we going to do it?</h3>
<p>We don&#39;t have many means, no doctors, no broom cars, no trucks following us with spare parts and motorcycles. We don&#39;t know where we will sleep, what we will eat if we will get lost... The only thing we know is that we will go as well prepared as we can. We don&#39;t have a lot of money (most of the project is self-financed), but we have a lot of passion for traveling and determination to get to Japan.</p>
<p>We are going to quit our jobs as civil servant and web designer while we are traveling, so the financial issue becomes a bit more traumatic, but no matter, it is an important trip for us and we are determined to do whatever it takes so that on June 5, 2010, we will leave from Coria del Rio on our way to Japan!</p>
<p>We both had the idea of traveling from Spain to Japan for a long time and there are many preparations to do. For example:</p>
<ul>
<li>Planning the route, distances, stages, necessary gasoline, revisions of the motorcycle, etc</li>
<li>Search and buy the necessary accessories for the bike, camping, survival, etc</li>
<li>Travel to Madrid and Barcelona to obtain the necessary visas and contact possible sponsors</li>
<li>Create and update the website, print logos, stickers, t-shirts, etc</li>
<li>Promote the project on social networks and internet forums, press, friends, family, companies, etc</li>
<li>Obtain various cards: for hostels, international driving license, insurance, social security, photographs, medical certificate, vaccinations, etc</li>
<li>Get maps, and GPS cartographies, <a href="http://rutasamurai.herokuapp.com/Equipamiento.html">here we have a complete list of everything we need </a></li>
<li>And many more things!</li>
</ul>
<h3 id="has-anyone-done-it-before">Has anyone done it before?</h3>
<p>We want to mark a &quot;before and after&quot; when it comes to great motorcycle adventure travel and we are going to do our best to make it happen. We believe this route is a first and we hope it won&#39;t be the last! Maybe, with all the information we publish on this website, other travelers will be encouraged to repeat it in the future.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-project/images/ruta-samurai-loading-bike.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The pilots and the motorbikes]]></title>
            <link>https://www.joanmira.com/blog/the-pilots-and-the-motorbikes</link>
            <guid>https://www.joanmira.com/blog/the-pilots-and-the-motorbikes</guid>
            <pubDate>Sat, 09 Jan 2010 00:00:00 GMT</pubDate>
            <description><![CDATA[The union of two motorcycle and travel enthusiasts]]></description>
            <content:encoded><![CDATA[<style>
.wrapper {
  display: grid;
  grid-template-columns: 50% 50%;
  grid-gap: 30px;
}
</style>

<div class="wrapper">
  <div>
    <h3>Vicente Malpica Ruiz</h3>
    <ul>
      <li>Expert in motorcycles and getting into trouble</li>
      <li>Date of birth: February 28, 1964</li>
      <li>Place of birth: Motril, Granada</li>
      <li>Residing at: Cardenete, Cuenca</li>
    </ul>
    <h3>BMW F800GS</h3>
    <ul>
      <li>Engine type: Four-stroke, water-cooled, in-line twin-cylinder, four valves per cylinder, twin overhead camshafts</li>
      <li>Displacement: 798 cc</li>
      <li>Compression ratio: 12.0 : 1</li>
      <li>Maximum power: 63.0 kW (85 hp) @ 7,500 rpm</li>
      <li>Maximum torque: 83.0 Nm @ 7,750 rpm</li>
      <li>Lubrication: Dry</li>
      <li>Clutch type: Multidisc in oil bath</li>
      <li>Transmission system: Six-speed</li>
      <li>Final drive: Chain</li>
      <li>Fuel tank capacity: 16 L</li>
      <li>Chassis: Steel tube</li>
      <li>Front suspension: Telescopic forks</li>
      <li>Front wheel travel: 230 mm</li>
      <li>Rear suspension: Swinging arm</li>
      <li>Rear wheel travel: 215 mm</li>
      <li>Front brake: Dual discs, Ø 300 mm</li>
      <li>Rear brake: Disc, Ø 265 mm</li>
      <li>Front tire: 90/90-21 M/C</li>
      <li>Rear tire: 150/70-17 M/C</li>
      <li>Length (mm): 2,320 mm</li>
      <li>Width (mm): 945 mm</li>
      <li>Height (mm): 1,350 mm</li>
      <li>Seat height (mm): 880 mm</li>
      <li>Distance between axles (mm): 1,578 mm</li>
      <li>Weight in running order (kg): 207 kg</li>
    </ul>
  </div>
  <div>
    <h3>Joan Siddharta Mira</h3>
    <ul>
      <li>Expert in harassing sponsors</li>
      <li>Date of birth: July 17, 1980</li>
      <li>Place of birth: Alicante</li>
      <li>Residing in: Alicante</li>
    </ul>
    <h3>YAMAHA XT660Z TÉNÉRÉ</h3>
    <ul>
      <li>Engine type: Liquid-cooled, 4-stroke, 4-valve, single cylinder, SOHC</li>
      <li>Displacement: 660 cc</li>
      <li>Compression ratio: 10.0 : 1</li>
      <li>Maximum power: 35.0 kW (48 hp) @ 6,000 rpm</li>
      <li>Maximum torque: 58.0 Nm @ 5,500 rpm</li>
      <li>Lubrication: Dry</li>
      <li>Clutch type: Multidisc in oil bath</li>
      <li>Transmission system: Constant take-up, 5 speeds</li>
      <li>Final drive: Chain</li>
      <li>Fuel tank capacity: 23 L</li>
      <li>Chassis: Diamond-shaped steel tubing</li>
      <li>Front suspension: Telescopic forks</li>
      <li>Front wheel travel: 210 mm</li>
      <li>Rear suspension: Swinging arm</li>
      <li>Rear wheel travel: 200 mm</li>
      <li>Front brake: Double discs, Ø 298 mm</li>
      <li>Rear brake: Disc, Ø 245 mm</li>
      <li>Front tire: 90/90-21 M/C</li>
      <li>Rear tire: 130/80-17 M/C</li>
      <li>Length (mm): 2.246 mm</li>
      <li>Width (mm): 865 mm</li>
      <li>Height (mm): 1.477 mm</li>
      <li>Seat height (mm): 895 mm</li>
      <li>Wheelbase (mm): 1,505 mm</li>
      <li>Weight in running order (kg): 206 kg</li>
    </ul>
  </div>
</div>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-pilots-and-the-motorbikes/images/pilotos_zqq8ju.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The iWeekend event in Alicante has been a success]]></title>
            <link>https://www.joanmira.com/blog/the-iweekend-event-has-been-a-success</link>
            <guid>https://www.joanmira.com/blog/the-iweekend-event-has-been-a-success</guid>
            <pubDate>Mon, 23 Nov 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[A great idea to meet professionals from the technology sector in Alicante]]></description>
            <content:encoded><![CDATA[<p>Last weekend I participated in the first edition of <a href="http://iweekend.com/2009/alicante">iWeekend in Alicante</a> and the experience could not have been better. It has been three very intense days, days without rest, from 9 in the morning until midnight, where 50 entrepreneurs have given everything with a single goal: to create a REAL company!</p>
<p>On Friday we started with a &quot;speed networking&quot;, where in 45 seconds we had to explain who we were, and what our work is and then change chairs and start all over again. Saying the speech 50 times is exhausting, but fun.</p>
<p>The rest of the day was spent presenting business ideas, voting and finally choosing a winning idea. Some interesting ideas were presented, but nothing really revolutionary or very original. The winner was <a href="http://oscardelrio.interacso.com/">Oscar del</a> Rio](<a href="http://oscardelrio.interacso.com/">http://oscardelrio.interacso.com/</a>), with his idea of creating a Web 2.0 style portal to order food at home: <a href="http://yonococino.com">yonococino.com</a>.</p>
<p>Saturday and Sunday were dedicated to working to get the company off the ground. We created several groups, basically formed by: programmers (front-end and back-end), graphic designers, marketing team, communication and financial team.</p>
<p>The first two hours were a bit chaotic, but little by little we all assumed our roles in the team and started to work. The atmosphere was great, we all worked together in a big room, with tables full of laptops, water bottles and whiteboards. My contribution was to create the <a href="http://yonococino.com/blog">company blog</a> and I am quite happy with the result :)</p>
<p>It has been a great experience, a unique opportunity to meet entrepreneurs, with lots of ideas and a desire to create something good, some with a lot of experience in the world of IT and new technologies. I will not miss the next iWeekend in 6 months.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-iweekend-event-has-been-a-success/images/cocino_xjv1tr.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[50 animes para ver this summer]]></title>
            <link>https://www.joanmira.com/blog/50-animes-to-watch-this-summer</link>
            <guid>https://www.joanmira.com/blog/50-animes-to-watch-this-summer</guid>
            <pubDate>Sun, 16 Aug 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[Una gran forma de aprender Japonés y de divertise con sus locas historias]]></description>
            <content:encoded><![CDATA[<p>Taking advantage of August and following in the line of the list of the <a href="/blog/las-50-mejores-peliculas-de-los-anos-80/">65 best movies of the 80s</a> (which was so successful, partly thanks to the <a href="http://www.microsiervos.com/archivo/peliculas-tv/65-grandes-peliculas-80.html">Microsiervos</a> effect), we have now prepared a selection of the 50 anime we liked the most of those we have seen, some I think have not been released in Spain and are only subtitled.</p>
<p>Attention, <strong>they are ordered by date</strong>, maybe it would have been more interesting to order them from worst to best, but they are different genres and it would be really difficult to make a very objective ranking of them without collapsing to criticisms by the commentators. I have put the chapters of many of the series, but many of them have separate OVAS and movies.</p>
<p>In the web of <a href="http://www.mcanime.net/enciclopedia">McAnime</a> they have a ranking of the most popular anime in these dates (<em>a very recommended page</em>) and I also have to thank <strong>Hackito</strong> for his great help in making the list. Hope you like it and find something good for these hot days!</p>
<h3 id="1971-lupin-iii-ルパン三世">1971. Lupin iii (ルパン三世)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/lupin_iii_yoetvc.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/lupin_iii_yoetvc.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/lupin_iii_yoetvc-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/lupin_iii_yoetvc-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/lupin_iii_yoetvc.jpg" alt="lupin" loading="lazy">
        </picture>
        <figcaption>lupin</figcaption>
      </figure>(anime series). It deals with the adventures of the famous thief Lupin.
<a href="http://www.mcanime.net/enciclopedia/anime/lupin_iii/886">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/lupin_iii/886">downloads</a></p>
<h3 id="1983-champions-oliver-and-benji-キャプテン翼">1983. Champions (oliver and benji) (キャプテン翼)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/champions_lubucj.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/champions_lubucj.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/champions_lubucj-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/champions_lubucj-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/champions_lubucj.jpg" alt="champions" loading="lazy">
        </picture>
        <figcaption>champions</figcaption>
      </figure>(128-episode series). A great sports series that many people will remember for its endless games, hehehe, of course if you had to put some sports series, this is one of them.
<a href="http://www.mcanime.net/enciclopedia/anime/captain_tsubasa/916">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/captain_tsubasa/916">downloads</a></p>
<h3 id="1986-dragon-ball-ドラゴンボール">1986. Dragon ball (ドラゴンボール)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/dragon_ball_le6sxy.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/dragon_ball_le6sxy.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/dragon_ball_le6sxy-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/dragon_ball_le6sxy-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/dragon_ball_le6sxy.jpg" alt="dragon ball" loading="lazy">
        </picture>
        <figcaption>dragon ball</figcaption>
      </figure>(<strong>153 episodes</strong> series, the z and double z series together total <strong>291 episodes</strong> and the gt series, which for my taste lowered the bar a lot, is <strong>65 episodes</strong>). Undoubtedly this series will be known by almost everyone, it is a series of adventures and a lot of fighting.
<a href="http://www.mcanime.net/enciclopedia/anime/dragon_ball/243">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/dragon_ball/243">downloads</a></p>
<h3 id="1986-the-fist-of-the-north-star-世紀末救世主伝説-北斗の拳">1986. The fist of the north star (世紀末救世主伝説 北斗の拳)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/the_punyo_north_star_pifrkg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/the_punyo_north_star_pifrkg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/the_punyo_north_star_pifrkg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/the_punyo_north_star_pifrkg-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/the_punyo_north_star_pifrkg.jpg" alt="the fist of the north star" loading="lazy">
        </picture>
        <figcaption>the fist of the north star</figcaption>
      </figure>(anime movie). A movie not to be missed without a doubt, quite bloodthirsty and apocalyptic.
<a href="http://wwww.mcanime.net/enciclopedia/anime/fist_of_the_north_star_movie/2135">More information</a> | <a href="http://wwww.mcanime.net/descarga_directa/anime/fist_of_the_north_star_movie/2135">downloads</a></p>
<h3 id="1988-tomb-of-the-fireflies-火垂るの墓">1988. Tomb of the Fireflies (火垂るの墓).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/la_tumba_de_las_luciernagas_odoidm.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/la_tumba_de_las_luciernagas_odoidm.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/la_tumba_de_las_luciernagas_odoidm-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/la_tumba_de_las_luciernagas_odoidm-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/la_tumba_de_las_luciernagas_odoidm.jpg" alt="the tomb of the fireflies" loading="lazy">
        </picture>
        <figcaption>the tomb of the fireflies</figcaption>
      </figure>(anime film). A great drama dealing with life after a nuclear bomb.
<a href="http://www.mcanime.net/enciclopedia/anime/grave_of_the_fireflies/152">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/grave_of_the_fireflies/152">downloads</a></p>
<h3 id="1988-akira-アキラ">1988. Akira (アキラ).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/akira_wkpkxp.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/akira_wkpkxp.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/akira_wkpkxp-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/akira_wkpkxp-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/akira_wkpkxp.jpg" alt="akira" loading="lazy">
        </picture>
        <figcaption>akira</figcaption>
      </figure>(anime movie). Definitely a great sci-fi movie to watch.
<a href="http://www.mcanime.net/enciclopedia/anime/akira/375">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/akira/375">downloads</a></p>
<h3 id="1989-ranma-½-らんま12熱闘編">1989. Ranma ½ (らんま1/2熱闘編)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/ranma_xomajd.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/ranma_xomajd.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/ranma_xomajd-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/ranma_xomajd-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/ranma_xomajd.jpg" alt="Ranma ½" loading="lazy">
        </picture>
        <figcaption>Ranma ½</figcaption>
      </figure>(162-episode series). A series with a lot of humor and fights.
<a href="http://www.mcanime.net/enciclopedia/anime/ranma/64">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/ranma/64">downloads</a></p>
<h3 id="1991-the-adventures-of-fly-ドラゴンクエスト・ダイの大冒険">1991. The adventures of fly (ドラゴンクエスト・ダイの大冒険)</h3>
<p>The adventures of fly](/blog/50-animes-to-watch-this-summer/images/las_aventuras_de_fly_fae6c9.jpg)(series of 46 episodes). Great adventure series, which unfortunately could not be finished.
<a href="http://for.mcanime.net/enciclopedia/anime/dragon_quest_dai_no_daiboken/1521">more information</a> | <a href="http://for.mcanime.net/descarga_directa/anime/dragon_quest_dai_no_daiboken/1521">downloads</a></p>
<h3 id="1993-slam-dunk-スララムダンク">1993. Slam dunk (スララムダンク)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/slam_dunk_z05ew5.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/slam_dunk_z05ew5.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/slam_dunk_z05ew5-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/slam_dunk_z05ew5-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/slam_dunk_z05ew5.jpg" alt="Slam dunk" loading="lazy">
        </picture>
        <figcaption>Slam dunk</figcaption>
      </figure>(<strong>101 episodes</strong> anime series). The basketball series is very good. I liked it better than Oliver and Benji.
<a href="http://www.mcanime.net/enciclopedia/anime/slam_dunk/659">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/slam_dunk/659">downloads</a></p>
<h3 id="1993-ninja-scroll-獣兵衛忍風帖">1993. Ninja scroll (獣兵衛忍風帖)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/ninja_scroll_mooktq.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/ninja_scroll_mooktq.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/ninja_scroll_mooktq-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/ninja_scroll_mooktq-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/ninja_scroll_mooktq.jpg" alt="Ninja scroll" loading="lazy">
        </picture>
        <figcaption>Ninja scroll</figcaption>
      </figure>(anime movie). Very, very good ninja and demon movie. The series, however, is not worth much compared to the movie.
<a href="http://www.mcanime.net/enciclopedia/anime/ninja_scroll/485">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/ninja_scroll/485">downloads</a></p>
<h3 id="1995-ghost-in-the-shell-攻殻機動隊">1995. Ghost in the shell (攻殻機動隊).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/ghost_in_the_shell_u102fn.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/ghost_in_the_shell_u102fn.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/ghost_in_the_shell_u102fn-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/ghost_in_the_shell_u102fn-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/ghost_in_the_shell_u102fn.jpg" alt="ghost_in_the_shell" loading="lazy">
        </picture>
        <figcaption>ghost_in_the_shell</figcaption>
      </figure>(anime movie). A very, very good futuristic movie.
<a href="http://ncf.mcanime.net/enciclopedia/anime/ghost_in_the_shell/465">more info</a> | <a href="http://ncf.mcanime.net/descarga_directa/anime/ghost_in_the_shell/465">downloads</a></p>
<h3 id="1995-neon-genesis-evangelion-新世紀エヴァンゲリオン">1995. Neon genesis evangelion (新世紀エヴァンゲリオン).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/neon_genesis_evangelion_zfd62p.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/neon_genesis_evangelion_zfd62p.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/neon_genesis_evangelion_zfd62p-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/neon_genesis_evangelion_zfd62p-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/neon_genesis_evangelion_zfd62p.jpg" alt="Neon genesis evangelion" loading="lazy">
        </picture>
        <figcaption>Neon genesis evangelion</figcaption>
      </figure>(26-episode anime series). If I had to choose one mecha series, I would choose this one.
<a href="http://www.mcanime.net/enciclopedia/anime/neon_genesis_evangelion/49">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/neon_genesis_evangelion/49">downloads</a></p>
<h3 id="1995-reena-and-gaudy-スレイヤーズ">1995. Reena and gaudy (スレイヤーズ)</h3>
<p>Reena and gaudy](/blog/50-animes-to-watch-this-summer/images/slayers_cnjwsc.jpg)(78-episode series). Series about the adventures of a mage and a warrior, with a lot of humor.
<a href="http://www.mcanime.net/enciclopedia/anime/slayers/657">more information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/slayers/657">downloads</a></p>
<h3 id="1997-berserk-ベルセルク">1997. Berserk (ベルセルク).</h3>
<p>Berserk](/blog/50-animes-to-watch-this-summer/images/berserk_k1sr3b.jpg)(25 episode series). Without a doubt one of the best series I&#39;ve seen. It is about battles in the middle ages with some monsters.
<a href="http://www.mcanime.net/enciclopedia/anime/berserk/328">More info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/berserk/328">downloads</a></p>
<h3 id="1997-princess-mononoke-もののけ姫">1997. Princess Mononoke (もののけ姫).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/la_princesa_mononoke_pnv3ix.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/la_princesa_mononoke_pnv3ix.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/la_princesa_mononoke_pnv3ix-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/la_princesa_mononoke_pnv3ix-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/la_princesa_mononoke_pnv3ix.jpg" alt="Princess Mononoke" loading="lazy">
        </picture>
        <figcaption>Princess Mononoke</figcaption>
      </figure>(anime movie) Great movie about adventures and demons.
<a href="http://www.mcanime.net/enciclopedia/anime/princess_mononoke/197">More info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/princess_mononoke/197">downloads</a></p>
<h3 id="1998-initial-d-頭文字〈イニシャル〉d">1998. Initial d (頭文字〈イニシャル〉D)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/initial_d_nnivuh.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/initial_d_nnivuh.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/initial_d_nnivuh-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/initial_d_nnivuh-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/initial_d_nnivuh.jpg" alt="Initial d" loading="lazy">
        </picture>
        <figcaption>Initial d</figcaption>
      </figure>(64-episode anime series). A great series about car racing, very good.
<a href="http://www.mcanime.net/enciclopedia/anime/initial_d/395">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/initial_d/395">downloads</a></p>
<h3 id="1999-gto--great-teacher-onizuka-グレート・ティーチャー・オニヅカ">1999. GTO ~ Great Teacher Onizuka (グレート・ティーチャー・オニヅカ)</h3>
<p>GTO Great Teacher Onizuka](/blog/50-animes-to-watch-this-summer/images/gto_d7kixn.jpg)(43-episode series). Series about a school teacher who has to make himself respected by his students, with many, many doses of humor and also some drama.
<a href="http://www.mcanime.net/enciclopedia/anime/great_teacher_onizuka/153">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/great_teacher_onizuka/153">downloads</a></p>
<h3 id="1999-one-piece-ワンピース">1999. One piece (ワンピース)</h3>
<p>One piece](/blog/50-animes-to-watch-this-summer/images/one_piece_qropvj.jpg)(anime series that is still airing and has been running for about 390 episodes right now). A series about pirate adventures and lots of fantasy, humor and fights. One of the things to emphasize about this series is that in spite of taking so many chapters has not declined as they have done in other series like naruto, Kenshin or bleach.
<a href="http://www.mcanime.net/enciclopedia/anime/one_piece/836">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/one_piece/836">downloads</a></p>
<h3 id="1999-kare-kano-彼氏彼女の事情">1999. Kare kano (彼氏彼女の事情)</h3>
<p>Kare kano](/blog/50-animes-to-watch-this-summer/images/kare_kano_p9c9vf.jpg)(26-episode anime series). Student romance is very good.
<a href="http://ww.mcanime.net/enciclopedia/manga/kare_kano/1562">more info</a> | <a href="http://ww.mcanime.net/descarga_directa/manga/kare_kano/1562">downloads</a></p>
<h3 id="1999-jester-the-adventurer-ゴクドーくん漫遊記">1999. Jester the adventurer (ゴクドーくん漫遊記).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/jester_the_adventurer_c0crgx.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/jester_the_adventurer_c0crgx.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/jester_the_adventurer_c0crgx-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/jester_the_adventurer_c0crgx-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/jester_the_adventurer_c0crgx.jpg" alt="jester the adventurer" loading="lazy">
        </picture>
        <figcaption>jester the adventurer</figcaption>
      </figure>(26-episode series). A series that parodies many heroes and adventure series. It really has many good points of humor.
<a href="http://wwww.mcanime.net/enciclopedia/anime/gokudo/250">More information</a> | <a href="http://wwww.mcanime.net/descarga_directa/anime/gokudo/250">downloads</a></p>
<h3 id="1999-hunter-x-hunter-ハンターｘハンター">1999. Hunter x hunter (ハンターｘハンター)</h3>
<p>Hunter x hunter](/blog/50-animes-to-watch-this-summer/images/hunter_x_hunter_vna9xt.jpg)(62-episode anime series). Very good adventure series.
<a href="http://www.mcanime.net/enciclopedia/anime/hunter_x_hunter/1134">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/hunter_x_hunter/1134">downloads</a>.</p>
<h3 id="2000-inuyasha-犬夜叉">2000. Inuyasha (犬夜叉).</h3>
<p>Inuyasha](/blog/50-animes-to-watch-this-summer/images/inuyasha_u37862.jpg)(167-episode series). Adventures and demon hunting, are very good.
<a href="http://www.mcanime.net/enciclopedia/anime/inuyasha/159">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/inuyasha/159">downloads</a></p>
<h3 id="2001-fruits-basket-フルーツバスケット">2001. Fruits basket (フルーツバスケット).</h3>
<p>Fruits basket](/blog/50-animes-to-watch-this-summer/images/fruits_basket_tzefgj.jpg)(26-episode anime series). Very cute series with a dose of humor and great messages ;)
<a href="http://for.mcanime.net/enciclopedia/anime/fruits_basket/348">more info</a> | <a href="http://for.mcanime.net/descarga_directa/anime/fruits_basket/348">downloads</a></p>
<h3 id="2001-chihiros-journey-千と千尋の神隠し">2001. Chihiro&#39;s Journey (千と千尋の神隠し).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/el_viaje_de_chihiro_nv91ya.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/el_viaje_de_chihiro_nv91ya.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/el_viaje_de_chihiro_nv91ya-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/el_viaje_de_chihiro_nv91ya-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/el_viaje_de_chihiro_nv91ya.jpg" alt="Spirited Away" loading="lazy">
        </picture>
        <figcaption>Spirited Away</figcaption>
      </figure>(anime film). Undoubtedly another great film from Studio Ghibli, the same studio that made Princess Mononoke.
<a href="http://mcmagazines.mcanime.net/enciclopedia/anime/spirited_away/377">More information</a> | <a href="http://mcmagazines.mcanime.net/descarga_directa/anime/spirited_away/377">downloads</a></p>
<h3 id="2002-chobits-ちょびっツ">2002. Chobits (ちょびっツ).</h3>
<p>Chobits](/blog/50-animes-to-watch-this-summer/images/chobits_dwncop.jpg)(26-episode anime series). It&#39;s about companion robots, very good.
<a href="http://www.mcanime.net/enciclopedia/anime/chobits/357">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/chobits/357">downloads</a></p>
<h3 id="2002-kanon-remake-カノン">2002. Kanon remake (カノン)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/kanon_remake_x3mzw1.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/kanon_remake_x3mzw1.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/kanon_remake_x3mzw1-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/kanon_remake_x3mzw1-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/kanon_remake_x3mzw1.jpg" alt="Kanon remake" loading="lazy">
        </picture>
        <figcaption>Kanon remake</figcaption>
      </figure>(24-episode anime series). A great and quite sentimental series.
<a href="http://www.mcanime.net/enciclopedia/anime/kanon_tv_1_2002/313">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/kanon_tv_1_2002/313">downloads</a></p>
<h3 id="2002-robin-witch-hunter-ウィッチハンターロビン">2002. Robin witch hunter (ウィッチハンターロビン).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/robin_witchhunter_vampires_tornhv.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/robin_witchhunter_vampires_tornhv.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/robin_witchhunter_vampires_tornhv-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/robin_witchhunter_vampires_tornhv-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/robin_witchhunter_vampires_tornhv.jpg" alt="Robin witch hunter" loading="lazy">
        </picture>
        <figcaption>Robin witch hunter</figcaption>
      </figure>(26-episode series). A very good series and it&#39;s about what the name says :)
<a href="http://www.mcanime.net/enciclopedia/anime/witch_hunter_robin/913">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/witch_hunter_robin/913">downloads</a></p>
<h3 id="2003-fullmetal-alchemist-鋼の錬金術師">2003. Fullmetal alchemist (鋼の錬金術師)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/full_metal_alchemist_zofzu9.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/full_metal_alchemist_zofzu9.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/full_metal_alchemist_zofzu9-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/full_metal_alchemist_zofzu9-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/full_metal_alchemist_zofzu9.jpg" alt="Fullmetal alchemist" loading="lazy">
        </picture>
        <figcaption>Fullmetal alchemist</figcaption>
      </figure>(51-episode anime series). Very, very good.
<a href="http://www.mcanime.net/enciclopedia/anime/fullmetal_alchemist/2960">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/fullmetal_alchemist/2960">downloads</a></p>
<h3 id="2003-bobobo-ボボボボーボ・ボーボボ・ボーボボ">2003. Bobobo (ボボボボーボ・ボーボボ・ボーボボ)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/bobobobo_hoqx7o.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/bobobobo_hoqx7o.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/bobobobo_hoqx7o-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/bobobobo_hoqx7o-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/bobobobo_hoqx7o.jpg" alt="Bobobo" loading="lazy">
        </picture>
        <figcaption>Bobobo</figcaption>
      </figure>(76-episode series). If you are looking for absurd humor, this is your series.
<a href="http://for.mcanime.net/enciclopedia/anime/bobobo_bo_bo_bobo/3085">More information</a> | <a href="http://for.mcanime.net/descarga_directa/anime/bobobo_bo_bo_bobo/3085">downloads</a></p>
<h3 id="2003-wolfs-rain-ウルフズ・レイン">2003. Wolf&#39;s rain (ウルフズ・レイン)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/wolfs_rain_wfcqii.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/wolfs_rain_wfcqii.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/wolfs_rain_wfcqii-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/wolfs_rain_wfcqii-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/wolfs_rain_wfcqii.jpg" alt="Wolf&#39;s rain" loading="lazy">
        </picture>
        <figcaption>Wolf&#39;s rain</figcaption>
      </figure>(26-episode series). A bit slow but very good.
<a href="http://www.mcanime.net/enciclopedia/anime/wolfs_rain/1806">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/wolfs_rain/1806">downloads</a>.</p>
<h3 id="2004-monster-モンスター">2004. Monster (モンスター)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/monster_a6ljpv.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/monster_a6ljpv.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/monster_a6ljpv-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/monster_a6ljpv-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/monster_a6ljpv.jpg" alt="Monster" loading="lazy">
        </picture>
        <figcaption>Monster</figcaption>
      </figure>(74-episode series). A very good series about a doctor who saves a murderer and wants to redeem his mistake.
<a href="http://www.mcanime.net/enciclopedia/anime/monster/3750">more information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/monster/3750">downloads</a></p>
<h3 id="2004-gantz-ガンツ">2004. Gantz (ガンツ)</h3>
<p>Gantz](/blog/50-animes-to-watch-this-summer/images/gantz_jhyvgn.jpg)(26-episode series). This is one of my fetish series, a very good sci-fi series, with lots of violence and action. If you want more (which I&#39;m sure you will), you can continue with the manga through volume 8, by the way, the manga is not finished yet.
<a href="http://www.mcanime.net/enciclopedia/anime/gantz/3641">More info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/gantz/3641">downloads</a></p>
<h3 id="2004-elfen-lied-エルフェンリート">2004. Elfen lied (エルフェンリート)</h3>
<p>Elfen lied](/blog/50-animes-to-watch-this-summer/images/elfen_lied_yyjwny.jpg)(13-episode anime series). Very good series, with lots of violence and lots of drama.
<a href="http://www.mcanime.net/enciclopedia/anime/elfen_lied/4148">more information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/elfen_lied/4148">downloads</a></p>
<h3 id="2004-school-rumble-スクールランブル">2004. School rumble (スクールランブル)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/school_rumble_dbj5nc.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/school_rumble_dbj5nc.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/school_rumble_dbj5nc-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/school_rumble_dbj5nc-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/school_rumble_dbj5nc.jpg" alt="School rumble" loading="lazy">
        </picture>
        <figcaption>School rumble</figcaption>
      </figure>(anime series ). Series about love entanglements and lots and lots and lots of humor.
<a href="http://www.mcanime.net/enciclopedia/anime/school_rumble/4114">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/school_rumble/4114">downloads</a></p>
<h3 id="2004-tenjou-tenge天上天下">2004. Tenjou tenge(天上天下)</h3>
<p>Tenjou tenge](/blog/50-animes-to-watch-this-summer/images/tenjo_tenge_ktldbn.jpg)(24-episode series). Martial arts and hot chicks series, good mix no? :)
<a href="http://www.mcanime.net/enciclopedia/anime/tenjho_tenge/3541">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/tenjho_tenge/3541">downloads</a></p>
<h3 id="2005-eureka-seven-交響詩篇-エウレカカセブン">2005. Eureka seven (交響詩篇 エウレカカセブン)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/eureka_seven_seven_hiljzc.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/eureka_seven_seven_hiljzc.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/eureka_seven_seven_hiljzc-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/eureka_seven_seven_hiljzc-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/eureka_seven_seven_hiljzc.jpg" alt="Eureka seven" loading="lazy">
        </picture>
        <figcaption>Eureka seven</figcaption>
      </figure>(50-episode anime series). Great mecha series very, very good.
<a href="http://www.mcanime.net/enciclopedia/anime/eureka_seven/4797">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/eureka_seven/4797">downloads</a></p>
<h3 id="2005-blood-the-last-vampire-ブラッドプラス">2005. Blood, the last vampire (ブラッドプラス).</h3>
<p>Blood, the last vampire](/blog/50-animes-to-watch-this-summer/images/blood_h6e2dd.jpg)(50-episode anime series). A great vampire series, very good.
<a href="http://www.mcanime.net/enciclopedia/anime/blood/5088">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/blood/5088">downloads</a></p>
<h3 id="2006-code-geass-コードギアス-反逆のルルーシュ">2006. Code geass (コードギアス 反逆のルルーシュ)</h3>
<p>Code geass](/blog/50-animes-to-watch-this-summer/images/code_geass_hsqemc.jpg)(2-season anime series). A great series of mecha and tactical battles, very, very good.
<a href="http://www.mcanime.net/enciclopedia/anime/code_geass_lelouch_of_the_rebellion/6704">more info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/code_geass_lelouch_of_the_rebellion/6704">downloads</a></p>
<h3 id="2006-ultimate-hellsing">2006. Ultimate hellsing</h3>
<p>Ultimate hellsing](/blog/50-animes-to-watch-this-summer/images/ultimate_hellsing_ajrcms.jpg)(unfinished series). The good series is the ovas series, not the regular series which is already fully aired. The ovas are really good, a vampire series, quite bloodthirsty and gore, but one of the best vampire series I&#39;ve seen in anime.
<a href="http://www.mcanime.net/enciclopedia/anime/hellsing/5114">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/hellsing/5114">downloads</a></p>
<h3 id="2006-death-note-デスノート">2006. Death note (デスノート).</h3>
<p>Death note](/blog/50-animes-to-watch-this-summer/images/death_note_cx9qqj.jpg)(37-episode anime series). The first season is sublime, but the second season declines a bit, another one of my fetish series, it&#39;s about a guy who finds a notepad in which if you write the name of a person, he dies.
<a href="http://www.mcanime.net/enciclopedia/anime/death_note/6592">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/death_note/6592">downloads</a></p>
<h3 id="2006-the-girl-who-leapt-through-time-時をかける少女">2006. The girl who leapt through time (時をかける少女).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/the_girl_who_leapt_through_through_time_wwmxpx.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/the_girl_who_leapt_through_through_time_wwmxpx.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/the_girl_who_leapt_through_through_time_wwmxpx-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/the_girl_who_leapt_through_through_time_wwmxpx-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/the_girl_who_leapt_through_through_time_wwmxpx.jpg" alt="The girl who leapt through time" loading="lazy">
        </picture>
        <figcaption>The girl who leapt through time</figcaption>
      </figure>(anime film). A film with slight nuances reminiscent of the butterfly effect.
<a href="http://www.mcanime.net/enciclopedia/anime/the_girl_who_leapt_through_time/6733">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/the_girl_who_leapt_through_time/6733">downloads</a></p>
<h3 id="2007-sayonara-zetsubou-sensei-さよなら絶望先生">2007. Sayonara zetsubou sensei (さよなら絶望先生).</h3>
<p>Sayonara zetsubou sensei](/blog/50-animes-to-watch-this-summer/images/sayonara_zetsubou_sensei_rir4yj.jpg)(anime series). The first season is very, very good, with lots of humor and criticism of Japanese society. The second season declines a bit.
<a href="http://www.mcanime.net/enciclopedia/anime/sayonara_zetsubou_sensei/7767">More info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/sayonara_zetsubou_sensei/7767">downloads</a></p>
<h3 id="2007-nodame-cantabile-のだめカンタービレ">2007. Nodame cantabile (のだめカンタービレ).</h3>
<p>Nodame cantabile](/blog/50-animes-to-watch-this-summer/images/nodame_cantabile_cpge5c.jpg)(23-episode anime series, well now they are airing the second season). A series with a lot of humor and a lot of classical music.
<a href="http://www.mcanime.net/enciclopedia/anime/nodame_cantabile/7010">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/nodame_cantabile/7010">downloads</a></p>
<h3 id="2007-school-days-スクールデイズ">2007. School days (スクールデイズ)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/school_days_vh4hw4.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/school_days_vh4hw4.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/school_days_vh4hw4-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/school_days_vh4hw4-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/school_days_vh4hw4.jpg" alt="School days" loading="lazy">
        </picture>
        <figcaption>School days</figcaption>
      </figure>(12-episode series). A very, very, very, very dramatic series, but quite good.
<a href="http://www.mcanime.net/enciclopedia/anime/school_days/7815">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/school_days/7815">downloads</a></p>
<h3 id="2007-tengen-toppa---gurren-lagann-天元突破グレンラガン">2007. Tengen toppa - gurren lagann (天元突破グレンラガン).</h3>
<p>Tengen toppa - gurren lagann](/blog/50-animes-to-watch-this-summer/images/tengen_toppa_gurren_lagann_d9ka4p.jpg)(27 episode anime series). Humorous series at the beginning and more dramatic later, about mecha, very good, no doubt.
<a href="http://www.mcanime.net/enciclopedia/anime/gurren_lagann/6698">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/gurren_lagann/6698">downloads</a></p>
<h3 id="2007-higurashi-no-naku-koro-ni-ひぐらしのなく頃に解">2007. Higurashi no naku koro ni (ひぐらしのなく頃に解).</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/higurashi_no_naku_koro_ni_av8cxr.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/higurashi_no_naku_koro_ni_av8cxr.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/50-animes-to-watch-this-summer/images/higurashi_no_naku_koro_ni_av8cxr-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/50-animes-to-watch-this-summer/images/higurashi_no_naku_koro_ni_av8cxr-mobile.jpg" />
          <img class="image" src="/blog/50-animes-to-watch-this-summer/images/higurashi_no_naku_koro_ni_av8cxr.jpg" alt="Higurashi no naku koro ni" loading="lazy">
        </picture>
        <figcaption>Higurashi no naku koro ni</figcaption>
      </figure>(50-episode series). One of the best horror series I&#39;ve seen in anime, hands down.
<a href="http://www.mcanime.net/enciclopedia/anime/higurashi_no_naku_koroni_kai/7454">More info</a> | <a href="http://www.mcanime.net/descarga_directa/anime/higurashi_no_naku_koroni_kai/7454">downloads</a></p>
<h3 id="2007-lovely-complex-ラブ★コン">2007. Lovely complex (ラブ★コン)</h3>
<p>Lovely complex](/blog/50-animes-to-watch-this-summer/images/lovely_complex_m0jbwl.jpg)(26-episode anime series). Series about love between two students with height problems.
<a href="http://www.mcanime.net/enciclopedia/anime/lovely_complex/7468">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/lovely_complex/7468">downloads</a></p>
<h3 id="2007-kaiji-逆境無頼カイジ">2007. Kaiji (逆境無頼カイジ).</h3>
<p>Kaiji](/blog/50-animes-to-watch-this-summer/images/kaiji_bkdckg.jpg)(anime series). Series about gambling and gambling with human lives, very, very good.
<a href="http://www.mcanime.net/enciclopedia/anime/kaiji/8550">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/kaiji/8550">downloads</a>.</p>
<h3 id="2007-claymore-クレイモア">2007. Claymore (クレイモア).</h3>
<p>Claymore](/blog/50-animes-to-watch-this-summer/images/claymore_vqiml0.jpg)(26-episode series). A series about demon hunting by girls, half human, half demon. Very, very good, but it lacks some chapters and the ending they have put in the anime is the worst I&#39;ve seen, in fact, the ending has nothing to do with the manga. If we remove the last chapter, the series is more than recommendable.
<a href="http://www.mcanime.net/enciclopedia/anime/claymore/7028">More information</a> | <a href="http://www.mcanime.net/descarga_directa/anime/claymore/7028">downloads</a></p>
<h3 id="2009-suzumiya-haruhi-no-yuutsu">2009. Suzumiya haruhi no yuutsu</h3>
<p>Suzumiya haruhi no yuutsu](/blog/50-animes-to-watch-this-summer/images/suzumiya_haruhi_no_yuutsu_fqy8yq.jpg)(series of 14 episodes). Series that parodies many series, pretty good, with a pretty crazy protagonist.
<a href="http://www.mcanime.net/enciclopedia/anime/claymore/7028">More information</a> | <a href="http://for.mcanime.net/descarga_directa/anime/suzumiya_haruhi_no_yuuutsu_2009/10559">downloads</a></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/50-animes-to-watch-this-summer/images/death_note_cx9qqj.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[New Webmarket themes for iGoogle]]></title>
            <link>https://www.joanmira.com/blog/new-webmarket-themes-for-igoogle</link>
            <guid>https://www.joanmira.com/blog/new-webmarket-themes-for-igoogle</guid>
            <pubDate>Wed, 12 Aug 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[Two new visual options for users of the popular news reader]]></description>
            <content:encoded><![CDATA[<p>Voila, Google has published the two themes we have created for its <a href="http://en.wikipedia.org/wiki/IGoogle">iGoogle</a> platform. The first one is called &quot;<a href="http://www.google.es/ig/directory?hl=es&amp;gl=es&amp;type=themes&amp;url=webmarketigoogle.googlecode.com/svn/trunk/theme2.xml"><em>Positive Vibes</em></a>&quot; and represents a planet emanating energy with my two favorite colors (yellowish green and violet). The second one is called &quot;<a href="http://www.google.es/ig/directory?hl=es&amp;gl=es&amp;type=themes&amp;url=webmarketigoogle.googlecode.com/svn/trunk/theme.xml"><em>Colorful Beat</em></a>&quot; and represents a wave of bright colors. You can use them now! :-)</p>
<p><a href="http://www.google.es/ig/directory?hl=es&amp;gl=es&amp;type=themes&amp;url=webmarketigoogle.googlecode.com/svn/trunk/theme2.xml">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/new-webmarket-themes-for-igoogle/images/igoogle1_he21e8.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/new-webmarket-themes-for-igoogle/images/igoogle1_he21e8.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/new-webmarket-themes-for-igoogle/images/igoogle1_he21e8-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/new-webmarket-themes-for-igoogle/images/igoogle1_he21e8-mobile.jpg" />
          <img class="image" src="/blog/new-webmarket-themes-for-igoogle/images/igoogle1_he21e8.jpg" alt="igoogle1" loading="lazy">
        </picture>
        <figcaption>igoogle1</figcaption>
      </figure></a></p>
<p><a href="http://www.google.es/ig/directory?hl=es&amp;gl=es&amp;type=themes&amp;url=webmarketigoogle.googlecode.com/svn/trunk/theme2.xml"><em>Positive Vibes theme for iGoogle</em></a></p>
<p><a href="http://www.google.es/ig/directory?hl=es&amp;gl=es&amp;type=themes&amp;url=webmarketigoogle.googlecode.com/svn/trunk/theme.xml">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/new-webmarket-themes-for-igoogle/images/igoogle2_p07ijg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/new-webmarket-themes-for-igoogle/images/igoogle2_p07ijg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/new-webmarket-themes-for-igoogle/images/igoogle2_p07ijg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/new-webmarket-themes-for-igoogle/images/igoogle2_p07ijg-mobile.jpg" />
          <img class="image" src="/blog/new-webmarket-themes-for-igoogle/images/igoogle2_p07ijg.jpg" alt="igoogle2" loading="lazy">
        </picture>
        <figcaption>igoogle2</figcaption>
      </figure></a></p>
<p><a href="http://www.google.es/ig/directory?hl=es&amp;gl=es&amp;type=themes&amp;url=webmarketigoogle.googlecode.com/svn/trunk/theme.xml"><em>Colorful Beat theme for iGoogle</em></a></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/new-webmarket-themes-for-igoogle/images/igoogle_e94ehy.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Reasons why I like Japan]]></title>
            <link>https://www.joanmira.com/blog/reasons-why-i-like-japan</link>
            <guid>https://www.joanmira.com/blog/reasons-why-i-like-japan</guid>
            <pubDate>Tue, 31 Mar 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[Japanese culture is incredibly rich and unique in the world]]></description>
            <content:encoded><![CDATA[<p>Many times people ask me why I like Japan and the truth is that I had never stopped to think about all the reasons, so I&#39;m going to write them down now to keep them in mind and give shape to something that is starting to be important in my life...</p>
<p><strong>1º For its fantastic creativity:</strong> Manga/anime, its magnificent movies, graphic design (brightly colored and minimalist), ceramics, floral art, architecture, interior design, technology, robotics, electronics, video games, automobiles and bullet trains.</p>
<p><strong>Because of its values:</strong> honor, civility, respect for elders, hard work, capacity for sacrifice, and humility. Because there the neighbors plant saplings (bonsais) and flowers in the streets, while here we see how they are filled with dog poop and graffiti. Because they know neither greed nor corruption.</p>
<p><strong>3º For its culture and tradition:</strong> kimonos, taking off shoes when entering the house, low tables, tatamis, iron teapots, temples, doors in the middle of lakes, cherry blossoms, paper lamps, umbrellas, sliding doors, wooden clogs, feng-shui, karate and martial arts, samurai, katanas, karaoke,...</p>
<p><strong>4º For its gastronomy:</strong> sushi, puffer fish (fugu), eels, rice balls, tea, sake, tofu, and seaweed soups.</p>
<p><strong>5º For its oddities:</strong> Tokyo&#39;s urban tribes, the lame adaptations of things from other countries, geeks, otakus, cosplay.</p>
<p><strong>6º For its people:</strong> how they value silence, their gestures, their way of expressing themselves, and their complex and interesting language.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/reasons-why-i-like-japan/images/grand-gate-itsukushima-shrine-miyajima-japan_a5nm12.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Video games develop intelligence]]></title>
            <link>https://www.joanmira.com/blog/video-games-develop-intelligence</link>
            <guid>https://www.joanmira.com/blog/video-games-develop-intelligence</guid>
            <pubDate>Sun, 01 Mar 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[Game enthusiasts are clear about it. Let's put it in writing for the record]]></description>
            <content:encoded><![CDATA[<p>It is a subject that I have always been interested in analyzing in detail and now I would like to discuss it with you to see what your opinion is about it. I think that the fact that I have been &quot;playing&quot; with video games since I was 6 years old, has had very beneficial effects on the development of my intelligence (in some aspects):</p>
<p>Positive effects:</p>
<ul>
<li><p><strong>Ease of moving machines in three-dimensional spaces</strong> (e.g., driving vehicles.) How many spaceships, planes, cars, tanks, motorcycles, and countless other vehicles have we had to learn to steer in video games. Sometimes we not only have to steer the vehicle but also the driver&#39;s head movement. With that training, parking a car in the real world is a piece of cake, don&#39;t you think?</p>
</li>
<li><p><strong>Geographic orientation</strong>. As I move around, my brain keeps a record of the decisions it makes and the positioning parameters each time it has to make a decision, so I can compare my current position to my initial one. In video games, it is very common to have to learn to move efficiently within a virtual scenario, which can sometimes be hundreds of square kilometers.</p>
</li>
<li><p><strong>Efficient calculation of the physics of objects</strong>, their speed, gravity and trajectories. Surely, this is what is trained the most, since in video games we have to dodge projectiles and calculate the physics of objects almost all the time.</p>
</li>
<li><p><strong>Logic of problem-solving. Inventive strategies and advanced graphic memory</strong>. Problem-solving in video games is what generates reward and satisfaction for the player. The challenges overcome help us to create a positive personality (no problem does not have a solution).</p>
</li>
<li><p><strong>Multitasking, improvisation and speed to make critical decisions</strong>. Together with computer programming, video games significantly improve the ability to effectively prioritize the tasks or problems we face. This is of great help later in the real world...</p>
</li>
<li><p><strong>Courage, adventurous spirit, competitiveness, perseverance, determination, and the pursuit of difficult challenges</strong>. Many video games promote very positive values that can help us in the real world.</p>
</li>
</ul>
<p>Not-so-positive effects of new technologies and video games:</p>
<ul>
<li>Psychological (not physical) addiction to challenges.</li>
<li>Addiction to the consumption of innovative audiovisual experiences, although not necessarily video games (travel, cinema, technology,...).</li>
<li>Internet and the ease of access to information make my brain much more selective to store information, which generates a loss of memory efficiency.</li>
</ul>
<p>Therefore, my conclusion is that video games ARE beneficial for the development of certain aspects of intelligence, but their benefit is not unlimited and there comes a time when their consumption will only generate a creative stimulus (at least until there is a new technological revolution that involves new forms of reasoning and new tools for more accurate and faster control).</p>
<iframe width="100%" height="550" src="https://www.youtube.com/embed/v0P3qvSqdeg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/video-games-develop-intelligence/images/consolasHome2_ae32ah.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The cockroach invasion]]></title>
            <link>https://www.joanmira.com/blog/the-roach-invasion</link>
            <guid>https://www.joanmira.com/blog/the-roach-invasion</guid>
            <pubDate>Fri, 27 Feb 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[One of the most shocking scenes in the history of cinema]]></description>
            <content:encoded><![CDATA[<iframe width="100%" height="380" src="https://www.youtube.com/embed/78GE90_AX_c" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<p>After several years without being able to remember the title of this video that you will find below, a couple of days ago my cousin Mauro reminded me of it (it&#39;s called &quot;Creepshow&quot;) and here it is, for all of you to suffer it. Maybe it&#39;s an important reason why I&#39;m so disgusted by cockroaches...</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-roach-invasion/images/post-cucaracha_junlxf.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Grave of the Fireflies]]></title>
            <link>https://www.joanmira.com/blog/grave-of-the-fireflies</link>
            <guid>https://www.joanmira.com/blog/grave-of-the-fireflies</guid>
            <pubDate>Mon, 09 Feb 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[Una película triste pero de una gran belleza artística y con mucha ternura en sus personajes]]></description>
            <content:encoded><![CDATA[<iframe width="100%" height="380" src="https://www.youtube.com/embed/4vPeTSRd580" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<p><em>Film summary [Theme song of the ending &quot;hotaru&quot;]</em>.</p>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/grave-of-the-fireflies/images/hotaru-no-haka_rrthup.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/grave-of-the-fireflies/images/hotaru-no-haka_rrthup.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/grave-of-the-fireflies/images/hotaru-no-haka_rrthup-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/grave-of-the-fireflies/images/hotaru-no-haka_rrthup-mobile.jpg" />
          <img class="image" src="/blog/grave-of-the-fireflies/images/hotaru-no-haka_rrthup.jpg" alt="hotaru-no-haka" loading="lazy">
        </picture>
        <figcaption>hotaru-no-haka</figcaption>
      </figure></p>
<p>I just finished watching &quot;<a href="http://www.imdb.com/title/tt0095327/">Hotaru no naka</a>&quot; [Japan, 1988] and it has left me in such a state of worry and uneasiness, that I am forced to delay going to bed so that I can write a few words here about this sad story...</p>
<p>The first thing I want to talk about is how amazed I am (since this is the first time it happens to me) that a cartoon movie like this one can &quot;touch&quot; me so deeply. Normally, even if unconsciously, we tend to quickly associate cartoons with stories that are far from reality and, therefore, it is difficult for them to be anything more than simple entertainment. However, in some anime movies, the stories are so well written and crafted that we may be caught off guard and end up whimpering or with severe <em>intellectual trauma</em>™ without even realizing it.</p>
<p>I am not going to tell anything about the plot of the movie, but I am going to talk about the author, <a href="http://en.wikipedia.org/wiki/Akiyuki_Nosaka" title="Akiyuki Nosaka">Akiyuki Nosaka</a>, was born in 1930 in the city of Nakamura, located in Kanagawa prefecture; her birth caused a serious illness to her mother, who, as a result, could not take care of the little ones and the family moved to live with her aunt; however, her mother recovered and the family had another baby girl, Keiko. In 1945, during heavy U.S. bombing raids, her father died and her mother became seriously ill. Shortly afterward, her sister also died due to malnutrition... Those of you who know what the story is about will appreciate that Hotaru no Haka (Grave of the Fireflies) narrates very clear similarities to her real life. Nosaka is primarily a post-war writer, who narrates the contradictions of Japanese society in that period, but at the same time emphasizes the causes that led to Japan&#39;s participation in that historical event. In Hotaru no Haka we can appreciate criticism of the traditional Japanese society, in the sense of the way it got involved in the war, and also in the traditional way of seeing the typical life of that country embodied in his aunt, who does not understand the motivations of Seita, the protagonist, and lets them leave knowing that this will eventually lead to their death by starvation.</p>
<p>Hotaru no Haka is above all a pacifist plea, but at the same time pessimistic... the author spares no detail in describing the plight of Seita and his sister Setsuko, the misery in which they are forced to live, the lack of concern of the rest of society for their problems. In short, a series of events and attitudes that inevitably lead to a tragic outcome?</p>
<p>We find ourselves before a portrait of post-war Japanese society, narrated in a bittersweet, sad style, very much in keeping with the story we are being told, sadly real and, above all, very credible. In this sense, those of you who have seen the movie, if you read the book, will appreciate that it faithfully follows Nosaka&#39;s story point by point, but we must say that Nosaka is an author, like almost all those of his generation, extremely realistic, so we will not find in this book the doses of lyricism that can be appreciated in the homonymous movie, but arid descriptions of reality, although always seen from the point of view of the protagonist, Seita -alter ego of the writer, no doubt-.</p>
<p>In short, a sad story, but at the same time recommendable. The greatest sin of mankind is to forget history, and this sad story allows us to <strong>not forget how sad war can be</strong>, and the dire consequences that any event of this kind brings with it.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/grave-of-the-fireflies/images/hotaru0_sddjyc.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The 65 best movies of the 80s]]></title>
            <link>https://www.joanmira.com/blog/the-65-best-movies-from-the-80s</link>
            <guid>https://www.joanmira.com/blog/the-65-best-movies-from-the-80s</guid>
            <pubDate>Mon, 02 Feb 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[A popular ranking for the golden age of cinema with memorable scripts and original stories]]></description>
            <content:encoded><![CDATA[<p>Fluzo capacitors, starfighters, galaxy wars, stories of replicants, aliens, adventurous archaeologists, bratty monsters, aliens, robocops... during the 80s, a multitude of wonderful movies emerged that have marked a whole generation of children who are now adults and remember with great affection those stories full of creativity and adventures.</p>
<p>I have assembled a <em>ranking</em> of the best movies of the 80s, <strong>ordered from lowest to highest score</strong>, according to an average score obtained from the databases of <a href="http://www.imdb.com/">imdb</a> and <a href="http://www.rottentomatoes.com/">rotten tomatoes</a>. This list may be a bit influenced by the sci-fi genre and I&#39;ve probably forgotten some important movies (hopefully not many!), but I hope you like them ;-)</p>
<h3 id="65-young-sherlock-holmes--the-secret-of-the-pyramid-1985">65. <a href="http://www.amazon.es/gp/product/B006RQD954/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B006RQD954&amp;linkCode=as2&amp;tag=gazpachu06-21">Young Sherlock Holmes / The Secret of the Pyramid</a> (1985)</h3>
<p><a href="http://www.amazon.es/gp/product/B006RQD954/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B006RQD954&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/young-sherlock-holmes_hka1oj.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/young-sherlock-holmes_hka1oj.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/young-sherlock-holmes_hka1oj-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/young-sherlock-holmes_hka1oj-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/young-sherlock-holmes_hka1oj.jpg" alt="young-sherlock-holmes" loading="lazy">
        </picture>
        <figcaption>young-sherlock-holmes</figcaption>
      </figure></a></p>
<p>When a plague of strange and gruesome murders keeps London in suspense, young Sherlock Holmes and his new friend Watson find themselves drawn almost unwittingly into a dark mystery. Something is afoot! And the budding detective finds himself poised to solve the most surprising case of his extraordinary career.</p>
<p><a href="http://www.amazon.es/gp/product/B006RQD954/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B006RQD954&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0090357/">imdb</a>: 6.5 | <a href="http://www.rottentomatoes.com/m/young_sherlock_holmes/">Rotten Tomatoes</a>: 5.4 | <strong>Average: 5.95</strong> <strong>Average: 5.95</strong></p>
<h3 id="64-explorers--explorers-1985">64. <a href="http://www.amazon.es/gp/product/B003Z7RED6/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RED6&amp;linkCode=as2&amp;tag=gazpachu06-21">Explorers / Explorers</a> (1985)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7RED6/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RED6&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/explorers_d2wukq.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/explorers_d2wukq.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/explorers_d2wukq-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/explorers_d2wukq-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/explorers_d2wukq.jpg" alt="explorers" loading="lazy">
        </picture>
        <figcaption>explorers</figcaption>
      </figure></a></p>
<p>In their makeshift laboratory, some boys use an unexpected discovery and their ingenuity to build their own spaceship and launch themselves on a fantastic interplanetary journey.</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7RED6/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RED6&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0089114/">imdb</a>: 6.2 | <a href="http://www.rottentomatoes.com/m/explorers/">Rotten Tomatoes</a>: 5.8 | <strong>Average: 6</strong></p>
<h3 id="63-flight-of-the-navigator-1986">63. <a href="http://www.amazon.es/gp/product/B008WUKVMW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008WUKVMW&amp;linkCode=as2&amp;tag=gazpachu06-21">Flight of the Navigator</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B008WUKVMW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008WUKVMW&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/flight-of-the-navigator_pngdsp.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/flight-of-the-navigator_pngdsp.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/flight-of-the-navigator_pngdsp-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/flight-of-the-navigator_pngdsp-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/flight-of-the-navigator_pngdsp.jpg" alt="flight-of-the-navigator" loading="lazy">
        </picture>
        <figcaption>flight-of-the-navigator</figcaption>
      </figure></a></p>
<p>In 1978, one night, little David, a 12-year-old boy playing near his house looking for his brother Jeff, is knocked unconscious. Eight years, or barely a moment later, David awakens, returns home and realizes that his family has moved away and that he has been reported missing...or dead. Later, David begins to be pursued by NASA, which claims he has been abducted.</p>
<p><a href="http://www.amazon.es/gp/product/B008WUKVMW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008WUKVMW&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0091059/">imdb</a>: 6.6 | <a href="http://www.rottentomatoes.com/m/flight_of_the_navigator/">Rotten Tomatoes</a>: 5.7 | <strong>Average: 6.15</strong> <strong>Average: 6.15</strong></p>
<h3 id="62-tron-1982">62. <a href="http://www.amazon.es/gp/product/B004IP1JXK/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B004IP1JXK&amp;linkCode=as2&amp;tag=gazpachu06-21">Tron</a> (1982)</h3>
<p><a href="http://www.amazon.es/gp/product/B004IP1JXK/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B004IP1JXK&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/http_www.gazpachu.com_wp-content_uploads_2009_02_tron_pjwdmu.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/http_www.gazpachu.com_wp-content_uploads_2009_02_tron_pjwdmu.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/http_www.gazpachu.com_wp-content_uploads_2009_02_tron_pjwdmu-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/http_www.gazpachu.com_wp-content_uploads_2009_02_tron_pjwdmu-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/http_www.gazpachu.com_wp-content_uploads_2009_02_tron_pjwdmu.jpg" alt="tron" loading="lazy">
        </picture>
        <figcaption>tron</figcaption>
      </figure></a></p>
<p>A hacker is split into molecules and transported into the bowels of a computer where an evil program controls behaviors at will.</p>
<p><a href="http://www.amazon.es/gp/product/B004IP1JXK/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B004IP1JXK&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0084827/">imdb</a>: 6.5 | <a href="http://www.rottentomatoes.com/m/tron/">Rotten Tomatoes</a>: 6 | <strong>Average: 6.25</strong>.</p>
<h3 id="61-the-last-starfighter--starfighter-the-adventure-beginsa-1984">61. <a href="http://www.amazon.es/gp/product/B0055KO9X4/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KO9X4&amp;linkCode=as2&amp;tag=gazpachu06-21">The Last Starfighter / Starfighter, the Adventure Begins</a>a (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B0055KO9X4/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KO9X4&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-last-starfighter_alex_rogan_gam_fdv3ry.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-last-starfighter_alex_rogan_gam_fdv3ry.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-last-starfighter_alex_rogan_gam_fdv3ry-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-last-starfighter_alex_rogan_gam_fdv3ry-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-last-starfighter_alex_rogan_gam_fdv3ry.jpg" alt="the-last-starfighter_alex_rogan_gam" loading="lazy">
        </picture>
        <figcaption>the-last-starfighter_alex_rogan_gam</figcaption>
      </figure></a></p>
<p>Alex is a teenager who escapes his monotonous routine by playing a video game called Starfighter. His skill and tenacity attract a friendly Centauri alien, who turns out to be an alien. Alex gets a jolt and is transported to a faraway place in the galaxy, where he will discover that his favorite game is a reality. Now he will have to prove if he is as good as he seems...</p>
<p><a href="http://www.amazon.es/gp/product/B0055KO9X4/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KO9X4&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0087597/">imdb</a>: 6.4 | <a href="http://www.rottentomatoes.com/m/last_starfighter/">Rotten Tomatoes</a>: 6.1 | <strong>Average: 6.25</strong></p>
<h3 id="60-willow-1988">60. <a href="http://www.amazon.es/gp/product/B00BMOZSBE/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00BMOZSBE&amp;linkCode=as2&amp;tag=gazpachu06-21">Willow</a> (1988)</h3>
<p><a href="http://www.amazon.es/gp/product/B00BMOZSBE/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00BMOZSBE&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/willow_j2k85h.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/willow_j2k85h.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/willow_j2k85h-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/willow_j2k85h-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/willow_j2k85h.jpg" alt="willow" loading="lazy">
        </picture>
        <figcaption>willow</figcaption>
      </figure></a></p>
<p>Medieval tale with witches, dwarves and magical powers. In the dungeons of the castle of the evil sorceress Queen Bavmorda, a prisoner gives birth to a baby girl who, according to an ancient prophecy, will put an end to the sorceress&#39;s reign. The midwife saves the child from Bavmorda&#39;s wrath but is forced to throw her cradle into the river when she is overtaken by her prey dogs. The current causes her to reach a village of dwarves where she is adopted by the brave Willow.</p>
<p><a href="http://www.amazon.es/gp/product/B00BMOZSBE/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00BMOZSBE&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0096446/">imdb</a>: 7.1 | <a href="http://www.rottentomatoes.com/m/willow/">Rotten Tomatoes</a>: 5.5 | <strong>Average: 6.3</strong></p>
<h3 id="59-the-mosquito-coast--la-costa-de-los-mosquitos-1986">59. <a href="http://www.amazon.es/gp/product/B008WUKV0E/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008WUKV0E&amp;linkCode=as2&amp;tag=gazpachu06-21">The Mosquito Coast / La costa de los mosquitos</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B008WUKV0E/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008WUKV0E&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-mosquito-coast_zmnret.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-mosquito-coast_zmnret.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-mosquito-coast_zmnret-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-mosquito-coast_zmnret-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-mosquito-coast_zmnret.jpg" alt="the-mosquito-coast" loading="lazy">
        </picture>
        <figcaption>the-mosquito-coast</figcaption>
      </figure></a></p>
<p>Harrison Ford plays an inventor fed up with the consumerism that modern society has become. Disgusted, the man decides to move away from civilization with his family and embark on a new life in the middle of the jungle.</p>
<p><a href="http://www.amazon.es/gp/product/B008WUKV0E/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008WUKV0E&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0091557/">imdb</a>: 6.5 | <a href="http://www.rottentomatoes.com/m/mosquito_coast/">Rotten Tomatoes</a>: 6.4 | <strong>Average: 6.45</strong>.</p>
<h3 id="58-conan-the-barbarian--conan-the-barbarian-1982">58. <a href="http://www.amazon.es/gp/product/B0044LVFXC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044LVFXC&amp;linkCode=as2&amp;tag=gazpachu06-21">Conan the Barbarian / Conan the Barbarian</a> (1982)</h3>
<p><a href="http://www.amazon.es/gp/product/B0044LVFXC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044LVFXC&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/conan-the-barbariano_qepzti.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/conan-the-barbariano_qepzti.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/conan-the-barbariano_qepzti-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/conan-the-barbariano_qepzti-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/conan-the-barbariano_qepzti.jpg" alt="conan-the-barbarian" loading="lazy">
        </picture>
        <figcaption>conan-the-barbarian</figcaption>
      </figure></a></p>
<p>A boy living in a barbarian village, records in his memory the faces of the warriors who have exterminated his family, handing him over to slave traders. Years later, the young boy has become a strong and brave warrior...</p>
<p><a href="http://www.amazon.es/gp/product/B0044LVFXC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044LVFXC&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0082198/">imdb</a>: 6.7 | <a href="http://www.rottentomatoes.com/m/conan_the_barbarian/">Rotten Tomatoes</a>: 6.3 | <strong>Average: 6.5</strong>.</p>
<h3 id="57-innerspace--the-prodigious-chip-1987">57. <a href="http://www.amazon.es/gp/product/B0000695KH/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0000695KH&amp;linkCode=as2&amp;tag=gazpachu06-21">Innerspace / The Prodigious Chip</a> (1987)</h3>
<p><a href="http://www.amazon.es/gp/product/B0000695KH/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0000695KH&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/innerspace_pj4dic.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/innerspace_pj4dic.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/innerspace_pj4dic-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/innerspace_pj4dic-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/innerspace_pj4dic.jpg" alt="innerspace" loading="lazy">
        </picture>
        <figcaption>innerspace</figcaption>
      </figure></a></p>
<p>Temperamental pilot Tuck Pendelton (Dennis Quaid) volunteers for an experiment that involves miniaturizing him inside a capsule that is to be inserted into a rabbit. But some criminals try to appropriate the invention, and Pendelton ends up by chance inside a hypochondriac human being named Jack Putter (Martin Short). From there, the two are forced to work together to get Tuck out of Jack&#39;s body.</p>
<p><a href="http://www.amazon.es/gp/product/B0000695KH/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0000695KH&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://us.imdb.com/title/tt0093260/">imdb</a>: 6.4 | <a href="http://www.rottentomatoes.com/m/innerspace/">Rotten Tomatoes</a>: 6.6 | <strong>Average: 6.5</strong> <strong>Average: 6.5</strong></p>
<h3 id="56-the-lost-boys-1987">56. <a href="http://www.amazon.es/gp/product/B0053C89B2/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C89B2&amp;linkCode=as2&amp;tag=gazpachu06-21">The Lost Boys</a> (1987)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C89B2/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C89B2&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-lost-boys_i9ibag.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-lost-boys_i9ibag.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-lost-boys_i9ibag-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-lost-boys_i9ibag-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-lost-boys_i9ibag.jpg" alt="the-lost-boys" loading="lazy">
        </picture>
        <figcaption>the-lost-boys</figcaption>
      </figure></a></p>
<p>Sam and his older brother Michael are typical young Americans with normal interests. But after their parents&#39; divorce, and as soon as they settle in the quiet town of Santa Carla, a small California town where there are rumors about vampires, things mysteriously begin to change. Michael&#39;s personality is transformed. And his mother would not like to see what he is becoming.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C89B2/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C89B2&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0093437/">imdb</a>: 6.9 | <a href="http://www.rottentomatoes.com/m/lost_boys/">Rotten Tomatoes</a>: 6.4 | <strong>Average: 6.65</strong></p>
<h3 id="55-labyrinth-1986">55. <a href="http://www.amazon.es/gp/product/B0053C8D4A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8D4A&amp;linkCode=as2&amp;tag=gazpachu06-21">Labyrinth</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C8D4A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8D4A&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/labyrinth_tsbmj3.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/labyrinth_tsbmj3.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/labyrinth_tsbmj3-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/labyrinth_tsbmj3-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/labyrinth_tsbmj3.jpg" alt="labyrinth" loading="lazy">
        </picture>
        <figcaption>labyrinth</figcaption>
      </figure></a></p>
<p>Sarah must go through a labyrinth to rescue her little brother, who has been kidnapped by goblins and is in the hands of the powerful King Jareth. Sarah discovers, almost immediately, that she has arrived at a place where things are not always what they seem. Directed by the creator of the Muppets. The screenwriter is Terry Jones, George Lucas is the executive producer and Frank Oz is the animator.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C8D4A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8D4A&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0091369/">imdb</a>: 7.3 | <a href="http://www.rottentomatoes.com/m/labyrinth/">Rotten Tomatoes</a>: 6 | <strong>Average: 6.65</strong>.</p>
<h3 id="54-back-to-the-future-part-ii-1989">54. <a href="http://www.amazon.es/gp/product/B001ZKV6G6/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001ZKV6G6&amp;linkCode=as2&amp;tag=gazpachu06-21">Back to the Future Part II</a> (1989)</h3>
<p><a href="http://www.amazon.es/gp/product/B001ZKV6G6/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001ZKV6G6&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future-part-ii_qgtrd3.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future-part-ii_qgtrd3.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future-part-ii_qgtrd3-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future-part-ii_qgtrd3-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future-part-ii_qgtrd3.jpg" alt="back-to-the-future-part-ii" loading="lazy">
        </picture>
        <figcaption>back-to-the-future-part-ii</figcaption>
      </figure></a></p>
<p>Although Marty McFly still lacks time to assimilate the fact that he is living in the perfect family thanks to his previous time travel, he has no room to breathe when his friend Doc shows up unexpectedly with the time machine (much more modernized) and urges him and his girlfriend to accompany him to travel to the future to solve a problem with the law that one of his future children will have. In the tremendous futuristic maelstrom, with all that it entails, of the Hill Valley of 2015, the presence of such time travelers will cause a greater effect than what they were going to fix. A sports almanac and the possession of the secret of the existence of the time machine by the always villainous Biff Bannett will be the ingredients that will conjugate a cause-effect in the past, in the present and in the future itself, which will make Marty and Doc will have to use their best to put an end to the catastrophe to which destiny leads them.</p>
<p><a href="http://www.amazon.es/gp/product/B001ZKV6G6/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001ZKV6G6&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0096874/">imdb</a>: 7.4 | <a href="http://www.rottentomatoes.com/m/back_to_the_future_2/">Rotten Tomatoes</a>: 5.9 | <strong>Average: 6.65</strong>.</p>
<h3 id="53-the-goonies-1985">53. <a href="http://www.amazon.es/gp/product/B003JN6SNI/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003JN6SNI&amp;linkCode=as2&amp;tag=gazpachu06-21">The Goonies</a> (1985)</h3>
<p><a href="http://www.amazon.es/gp/product/B003JN6SNI/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003JN6SNI&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-goonies_eqwfqn.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-goonies_eqwfqn.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-goonies_eqwfqn-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-goonies_eqwfqn-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-goonies_eqwfqn.jpg" alt="the-goonies" loading="lazy">
        </picture>
        <figcaption>the-goonies</figcaption>
      </figure></a></p>
<p>Mikey is a thirteen-year-old boy who, along with his older brother and his friends, who call themselves &quot;The Goonies,&quot; decides to go upstairs to play in the attic of their house, where their father keeps antiques. There they find the map of a lost treasure dating back to the time of the pirates... It&#39;s a nice adventure movie for teenagers, with a story by Steven Spielberg and a script by Chris Columbus.</p>
<p><a href="http://www.amazon.es/gp/product/B003JN6SNI/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003JN6SNI&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0089218/">imdb</a>: 7.4 | <a href="http://www.rottentomatoes.com/m/goonies/">Rotten Tomatoes</a>: 5.9 | <strong>Average: 6.65</strong>.</p>
<h3 id="52-comming-to-america-1989">52. <a href="http://www.amazon.es/gp/product/B0055KNAH0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KNAH0&amp;linkCode=as2&amp;tag=gazpachu06-21">Comming to America</a> (1989)</h3>
<p><a href="http://www.amazon.es/gp/product/B0055KNAH0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KNAH0&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/principe-de-zamunda_sgxu2n.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/principe-de-zamunda_sgxu2n.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/principe-de-zamunda_sgxu2n-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/principe-de-zamunda_sgxu2n-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/principe-de-zamunda_sgxu2n.jpg" alt="prince-of-zamunda" loading="lazy">
        </picture>
        <figcaption>prince-of-zamunda</figcaption>
      </figure></a></p>
<p>It is the twenty-first birthday of Prince Akeem of the African kingdom of Zamunda, and he must marry a woman he has never seen before, as his father did before him. But as he does not agree to be imposed on the woman with whom he has to spend the rest of his life, Akeem decides to travel to New York, where nobody knows him, so he can look for a beautiful and intelligent girl who loves him for his personality and not for his wealth. So, he settles in New York with a friend and, despite having an immense fortune, decides to live very modestly.</p>
<p><a href="http://www.amazon.es/gp/product/B0055KNAH0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KNAH0&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0094898/">imdb</a>: 6.8 | Rotten Tomatoes: - | <strong>Average: 6.8</strong>.</p>
<h3 id="51-karate-kid-1984">51. <a href="http://www.amazon.es/gp/product/B00127195A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00127195A&amp;linkCode=as2&amp;tag=gazpachu06-21">Karate Kid</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B00127195A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00127195A&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/karate-kid_yqbmu9.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/karate-kid_yqbmu9.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/karate-kid_yqbmu9-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/karate-kid_yqbmu9-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/karate-kid_yqbmu9.jpg" alt="karate-kid" loading="lazy">
        </picture>
        <figcaption>karate-kid</figcaption>
      </figure></a></p>
<p>Daniel Larusso arrives in Los Angeles from the East Coast of the United States and is faced with the difficult task of making new friends. However, he becomes the target of attacks by the Cobras, a hostile group of karate students, when he begins dating Ali, the former girlfriend of the group&#39;s ringleader. Daniel enlists the help of Miyagi, a martial arts master, to teach him karate. Under Miyagi&#39;s tutelage, Daniel develops not only his physical skills but also the self-confidence he needs to overcome all obstacles.</p>
<p><a href="http://www.amazon.es/gp/product/B00127195A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00127195A&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0087538/">imdb</a>: 6.8 | <a href="http://www.rottentomatoes.com/m/karate_kid/">Rotten Tomatoes</a>: 6.8 | <strong>Average: 6.8</strong></p>
<h3 id="50-gremlins-1984">50. <a href="http://www.amazon.es/gp/product/B003Z7R418/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R418&amp;linkCode=as2&amp;tag=gazpachu06-21">Gremlins</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7R418/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R418&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/gremlins_w5lyc1.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/gremlins_w5lyc1.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/gremlins_w5lyc1-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/gremlins_w5lyc1-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/gremlins_w5lyc1.jpg" alt="gremlins" loading="lazy">
        </picture>
        <figcaption>gremlins</figcaption>
      </figure></a></p>
<p>Rand (Hoyt Axton) is a traveling salesman who one day gives his young son Billy (Zach Galligan) a small being named Mogwai, a tender and strange creature. The innocent gift, however, will be the origin of a whole wave of hooliganism and barbarism in a small town in the United States. It all starts when the 3 basic rules that must always be followed to keep the mogwai: do not feed it after midnight, do not get it wet and avoid sunlight, are broken one after the other.</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7R418/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R418&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0087363/">imdb</a>: 7.0 | <a href="http://www.rottentomatoes.com/m/gremlins/">Rotten Tomatoes</a>: 6.7 | <strong>Average: 6.85</strong>.</p>
<h3 id="49-romancing-the-stone-1984">49. <a href="http://www.amazon.es/gp/product/B0053C8BME/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8BME&amp;linkCode=as2&amp;tag=gazpachu06-21">Romancing the stone</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C8BME/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8BME&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/behind-the-green-heart_cy8v9r.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/behind-the-green-heart_cy8v9r.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/behind-the-green-heart_cy8v9r-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/behind-the-green-heart_cy8v9r-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/behind-the-green-heart_cy8v9r.jpg" alt="behind-the-green-heart" loading="lazy">
        </picture>
        <figcaption>behind-the-green-heart</figcaption>
      </figure></a></p>
<p>A romance writer, Joan Wilder, must travel to Colombia with a mysterious package to get her sister released from drug traffickers who have kidnapped her. When she arrives in the South American country, someone is about to murder her, and she is saved by Jack Colton, an adventurer who is too much like the hero protagonist of her novels.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C8BME/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8BME&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0088011/">imdb</a>: 6.9 | <a href="http://www.rottentomatoes.com/m/romancing_the_stone/">Rotten Tomatoes</a>: 7 | <strong>Average: 6.95</strong> <strong>Average: 6.95</strong></p>
<h3 id="48-name-der-rose-der--the-name-of-the-rose-1986">48. <a href="http://www.amazon.es/gp/product/B003Z7R49A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R49A&amp;linkCode=as2&amp;tag=gazpachu06-21">Name der Rose, Der / The Name of the Rose</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7R49A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R49A&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/name-der-rose-der-der_tr34uy.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/name-der-rose-der-der_tr34uy.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/name-der-rose-der-der_tr34uy-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/name-der-rose-der-der_tr34uy-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/name-der-rose-der-der_tr34uy.jpg" alt="name-der-rose-der" loading="lazy">
        </picture>
        <figcaption>name-der-rose-der</figcaption>
      </figure></a></p>
<p>14th century. It all begins one fine late November morning in the year of our Lord 1327 when Friar William of Baskerville (Sean Connery), a Franciscan monk and former inquisitor, and his inseparable disciple the novice Adso de Melk (Christian Slater), who narrates the story, go to a Benedictine abbey located in the north of the Italian peninsula to try to shed light on the death of the young miniaturist Adelmo da Otranto. During their stay at the abbey, more monks mysteriously disappear and are soon found dead. Slowly, and thanks to the information provided by some of the monks, Guillermo begins to clarify the facts. The motive for the crimes seems to be some ancient treatises on the lawfulness of laughter found in the library of the complex, which is said to be the largest in the Christian world. Who is the murderer? What did his victims do to be killed? No one knows...</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7R49A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R49A&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0091605/">imdb</a>: 7.8 | <a href="http://www.rottentomatoes.com/m/name_of_the_rose/">Rotten Tomatoes</a>: 6.2 | <strong>Average: 7</strong></p>
<h3 id="47-batman-1989">47. <a href="http://www.amazon.es/gp/product/B001CP4VMU/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001CP4VMU&amp;linkCode=as2&amp;tag=gazpachu06-21">Batman</a> (1989)</h3>
<p><a href="http://www.amazon.es/gp/product/B001CP4VMU/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001CP4VMU&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/batman_walloi.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/batman_walloi.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/batman_walloi-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/batman_walloi-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/batman_walloi.jpg" alt="batman" loading="lazy">
        </picture>
        <figcaption>batman</figcaption>
      </figure></a></p>
<p>Blockbuster film based on the comic book hero. The dark and dangerous city of Gotham is only protected by its corrupt police force. Despite the efforts of District Attorney Harvey Dent and Police Commissioner Jim Gordon, the city is becoming increasingly unsafe... until the rise of the Lord of the Night, Batman. Reputable journalist Vicky Vale will try to uncover the secret behind the Man-Bat&#39;s cape.</p>
<p><a href="http://www.amazon.es/gp/product/B001CP4VMU/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001CP4VMU&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0096895/">imdb</a>: 7.6 | <a href="http://www.rottentomatoes.com/m/1001781-batman/">Rotten Tomatoes</a>: 6.5 | <strong>Average: 7.05</strong>.</p>
<h3 id="46-unendliche-geschichte-die--the-neverending-story-1984">46. <a href="http://www.amazon.es/gp/product/B003Z7S91W/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7S91W&amp;linkCode=as2&amp;tag=gazpachu06-21">Unendliche Geschichte, Die / The Neverending Story</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7S91W/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7S91W&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/unendliche-geschichte-die_ufq9lo.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/unendliche-geschichte-die_ufq9lo.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/unendliche-geschichte-die_ufq9lo-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/unendliche-geschichte-die_ufq9lo-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/unendliche-geschichte-die_ufq9lo.jpg" alt="unendliche-geschichte-die" loading="lazy">
        </picture>
        <figcaption>unendliche-geschichte-die</figcaption>
      </figure></a></p>
<p>Hidden in the attic of his school, Bastian devours during school hours an enigmatic book, &quot;The Neverending Story&quot;, which recounts the gradual destruction of the Kingdom of Fantasia. A kind of mysterious &quot;Nothing&quot; destroys the whole country and all the creatures that inhabit it. As he reads on, Bastian realizes that the salvation of Fantasia depends on him. On whether he manages to get inside the book...</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7S91W/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7S91W&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0088323/">imdb</a>: 7.4 | <a href="http://www.rottentomatoes.com/m/neverending_story/">Rotten Tomatoes</a>: 6.8 | <strong>Average: 7.1</strong></p>
<h3 id="45-beetle-juice-1988">45. <a href="http://www.amazon.es/gp/product/B0044LT7IM/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044LT7IM&amp;linkCode=as2&amp;tag=gazpachu06-21">Beetle Juice</a> (1988)</h3>
<p><a href="http://www.amazon.es/gp/product/B0044LT7IM/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044LT7IM&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/beetle-juice_z0auyk.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/beetle-juice_z0auyk.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/beetle-juice_z0auyk-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/beetle-juice_z0auyk-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/beetle-juice_z0auyk.jpg" alt="beetle-juice" loading="lazy">
        </picture>
        <figcaption>beetle-juice</figcaption>
      </figure></a></p>
<p>A ghostly married couple (Geena Davis and Alec Baldwin) enlists the services of Bitelchus (Michael Keaton), a specialist in scaring mortals, to scare the new owners away from their former home.</p>
<p><a href="http://www.amazon.es/gp/product/B0044LT7IM/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044LT7IM&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0094721/">imdb</a>: 7.3 | <a href="http://www.rottentomatoes.com/m/beetlejuice/">Rotten Tomatoes</a>: 7 | <strong>Average: 7.15</strong>.</p>
<h3 id="44-beverly-hills-cop-1984">44. <a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053C8E1C&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Beverly Hills Cop</a> (1984)</h3>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053C8E1C&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/superdetective-en-hollywood_fgbzl9.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/superdetective-en-hollywood_fgbzl9.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/superdetective-en-hollywood_fgbzl9-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/superdetective-en-hollywood_fgbzl9-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/superdetective-en-hollywood_fgbzl9.jpg" alt="superdetective-en-hollywood" loading="lazy">
        </picture>
        <figcaption>superdetective-en-hollywood</figcaption>
      </figure></a></p>
<p>Axel Foley is an impetuous and intelligent Detroit detective who follows the trail of the murderer of a friend of his to the most elegant neighborhoods of Beverly Hills. But before Axel achieves his goal, he becomes embroiled in an international network of drug smugglers and traffickers.</p>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053C8E1C&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0086960/">imdb</a>: 7.3 | <a href="http://www.rottentomatoes.com/m/beverly_hills_cop/">Rotten Tomatoes</a>: 7.1 | <strong>Average: 7.2</strong></p>
<h3 id="43-poltergeist-1982">43. <a href="http://www.amazon.es/gp/product/B0053C9G4Q/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C9G4Q&amp;linkCode=as2&amp;tag=gazpachu06-21">Poltergeist</a> (1982)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C9G4Q/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C9G4Q&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/poltergeist_rqgnc4.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/poltergeist_rqgnc4.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/poltergeist_rqgnc4-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/poltergeist_rqgnc4-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/poltergeist_rqgnc4.jpg" alt="poltergeist" loading="lazy">
        </picture>
        <figcaption>poltergeist</figcaption>
      </figure></a></p>
<p>A middle-class American family moves to live in a new house in a seemingly idyllic neighborhood, but inside the house, strange things begin to happen, paranormal phenomena for which there is no possible explanation...</p>
<p><a href="http://www.amazon.es/gp/product/B0053C9G4Q/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C9G4Q&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0084516/">imdb</a>: 7.4 | <a href="http://www.rottentomatoes.com/m/poltergeist/">Rotten Tomatoes</a>: 7 | <strong>Average: 7.2</strong></p>
<h3 id="42-empire-of-the-sun-1987">42. <a href="http://www.amazon.es/gp/product/B0051SUXE4/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0051SUXE4&amp;linkCode=as2&amp;tag=gazpachu06-21">Empire of the Sun</a> (1987)</h3>
<p><a href="http://www.amazon.es/gp/product/B0051SUXE4/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0051SUXE4&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/empire-of-the-sun_gdymf7.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/empire-of-the-sun_gdymf7.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/empire-of-the-sun_gdymf7-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/empire-of-the-sun_gdymf7-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/empire-of-the-sun_gdymf7.jpg" alt="empire-of-the-sun" loading="lazy">
        </picture>
        <figcaption>empire-of-the-sun</figcaption>
      </figure></a></p>
<p>James Graham is an upper-class British boy whose privileged life comes to an end with the arrival of the Japanese army in Shanghai in December 1941. Separated from his parents, he is confined to the Soo Chow concentration camp near a Chinese military airport. Amid the sadness and malnutrition that reigns there, Jim will learn to mature until he sees life in a completely different way.</p>
<p><a href="http://www.amazon.es/gp/product/B0051SUXE4/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0051SUXE4&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0092965/">imdb</a>: 7.7 | <a href="http://www.rottentomatoes.com/m/empire_of_the_sun/">Rotten Tomatoes</a>: 6.7 | <strong>Average: 7.2</strong></p>
<h3 id="41-wargames-1983">41. <a href="http://www.amazon.es/gp/product/B0055KLYQY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLYQY&amp;linkCode=as2&amp;tag=gazpachu06-21">WarGames</a> (1983)</h3>
<p><a href="http://www.amazon.es/gp/product/B0055KLYQY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLYQY&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/wargames_l5sdkr.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/wargames_l5sdkr.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/wargames_l5sdkr-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/wargames_l5sdkr-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/wargames_l5sdkr.jpg" alt="wargames" loading="lazy">
        </picture>
        <figcaption>wargames</figcaption>
      </figure></a></p>
<p>David is a young man knowledgeable in all things computer: he bypasses the most advanced security systems, gets the most sophisticated secret codes and understands computer science as a game. But the game gets complicated when he unwittingly connects his personal computer to that of the American Department of Defense, in charge of the nuclear defense system, triggering a dangerous situation of uncontrollable proportions. Helped by his girlfriend and a computer &quot;genius&quot;, he will have to fight against time and prevent the greatest world conflict of all time: World War III.</p>
<p><a href="http://www.amazon.es/gp/product/B0055KLYQY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLYQY&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0086567/">imdb</a>: 7 | <a href="http://www.rottentomatoes.com/m/wargames/">Rotten Tomatoes</a>: 7.4 | <strong>Average: 7.2</strong>.</p>
<h3 id="40-the-abyss-1989">40. <a href="http://www.amazon.es/gp/product/B0053C886S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C886S&amp;linkCode=as2&amp;tag=gazpachu06-21">The Abyss</a> (1989)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C886S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C886S&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-abyss_bxccgz.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-abyss_bxccgz.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-abyss_bxccgz-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-abyss_bxccgz-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-abyss_bxccgz.jpg" alt="the-abyss" loading="lazy">
        </picture>
        <figcaption>the-abyss</figcaption>
      </figure></a></p>
<p>The civilian crew of an oil facility is hired by the U.S. Navy to conduct a rescue operation for a nuclear submarine trapped at the bottom of the sea, under mysterious circumstances, at the edge of an abyssal rift several miles deep.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C886S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C886S&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0096754/">imdb</a>: 7.5 | <a href="http://www.rottentomatoes.com/m/abyss/">Rotten Tomatoes</a>: 6.9 | <strong>Average: 7.2</strong></p>
<h3 id="39-indiana-jones-and-the-temple-of-doom-1984">39. <a href="http://www.amazon.es/gp/product/B0053CA028/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA028&amp;linkCode=as2&amp;tag=gazpachu06-21">Indiana Jones and the Temple of Doom</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053CA028/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA028&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/temple-of-doom_whjl6a.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/temple-of-doom_whjl6a.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/temple-of-doom_whjl6a-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/temple-of-doom_whjl6a-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/temple-of-doom_whjl6a.jpg" alt="temple-of-doom" loading="lazy">
        </picture>
        <figcaption>temple-of-doom</figcaption>
      </figure></a></p>
<p>Year 1935. Shanghai. The intrepid archaeologist Indiana Jones, after getting into trouble in a nightclub, manages to escape, along with a beautiful singer, in the company of his young companion, an oriental boy with whom he is always arguing. After a bumpy flight, the three of them end up in India, where they try to help the inhabitants of a small village whose children have been kidnapped.</p>
<p><a href="http://www.amazon.es/gp/product/B0053CA028/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA028&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0087469/">imdb</a>: 7.4 | <a href="http://www.rottentomatoes.com/m/indiana_jones_and_the_temple_of_doom/">Rotten Tomatoes</a>: 7.2 | <strong>Average: 7.3</strong></p>
<h3 id="38-star-wars-vi---return-of-the-jedi-1983">38. <a href="http://www.amazon.es/gp/product/B0053C97MC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C97MC&amp;linkCode=as2&amp;tag=gazpachu06-21">Star Wars VI - Return of the Jedi</a> (1983)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C97MC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C97MC&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/return-of-the-jedi2_mhozt4.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/return-of-the-jedi2_mhozt4.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/return-of-the-jedi2_mhozt4-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/return-of-the-jedi2_mhozt4-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/return-of-the-jedi2_mhozt4.jpg" alt="return-of-the-jedi2" loading="lazy">
        </picture>
        <figcaption>return-of-the-jedi2</figcaption>
      </figure></a></p>
<p>Luke Skywalker and Princess Leia must travel to Tatooine to free Han Solo. To do so, they must infiltrate the dangerous lair of Jabba the Hutt, the most feared gangster in the galaxy. Once assembled, the team recruits tribes of Ewoks to fight the Imperial forces in the forests of the moon of Endor. Meanwhile, the Emperor and Darth Vader conspire to turn Luke to the dark side, but the young Skywalker, meanwhile, is determined to rekindle the spirit of the Jedi in his father. The galactic civil war culminates in a showdown between the unified rebel forces and a second Death Star, undefended and incomplete, in a battle that will decide the fate of the galaxy.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C97MC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C97MC&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0086190/">imdb</a>: 8.3 | <a href="http://www.rottentomatoes.com/m/return_of_the_jedi/">Rotten Tomatoes</a>: 6.6 | <strong>Average: 7.45</strong></p>
<h3 id="37-lethal-weapon-1987">37. <a href="http://www.amazon.es/gp/product/B0053C8A48/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8A48&amp;linkCode=as2&amp;tag=gazpachu06-21">Lethal Weapon</a> (1987)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C8A48/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8A48&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/weapon-lethal_kux2hv.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/weapon-lethal_kux2hv.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/weapon-lethal_kux2hv-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/weapon-lethal_kux2hv-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/weapon-lethal_kux2hv.jpg" alt="lethal-weapon" loading="lazy">
        </picture>
        <figcaption>lethal-weapon</figcaption>
      </figure></a></p>
<p>Martin Riggs is a Los Angeles cop with suicidal tendencies. Roger Murtaugh is a mature, responsible cop, a family man, who has been assigned alongside Riggs. Together they will try to dismantle a drug smuggling operation while, despite their different characters, they will become good friends.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C8A48/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8A48&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0093409/">imdb</a>: 7.6 | <a href="http://www.rottentomatoes.com/m/lethal_weapon/">Rotten Tomatoes</a>: 7.3 | <strong>Average: 7.45</strong>.</p>
<h3 id="36-tootsie-1982">36. <a href="http://www.amazon.es/gp/product/B00BLG0SJA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00BLG0SJA&amp;linkCode=as2&amp;tag=gazpachu06-21">Tootsie</a> (1982)</h3>
<p><a href="http://www.amazon.es/gp/product/B00BLG0SJA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00BLG0SJA&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/tootsie_fvzacu.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/tootsie_fvzacu.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/tootsie_fvzacu-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/tootsie_fvzacu-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/tootsie_fvzacu.jpg" alt="tootsie" loading="lazy">
        </picture>
        <figcaption>tootsie</figcaption>
      </figure></a></p>
<p>Michael Dorsey is a New York actor who has yet to gain recognition with a good role. Moreover, in certain artistic circles, he drags a reputation of a &quot;difficult&quot; personality. As his bad streak does not end, one day he makes an important decision: to impersonate a woman and try to find an opportunity. He gets a role, but his new identity will bring more than a few complications in his daily life.</p>
<p><a href="http://www.amazon.es/gp/product/B00BLG0SJA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00BLG0SJA&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0084805/">imdb</a>: 7.4 | <a href="http://www.rottentomatoes.com/m/tootsie/">Rotten Tomatoes</a>: 7.6 | <strong>Average: 7.5</strong></p>
<h3 id="35-dead-poets-society-1989">35. <a href="http://www.amazon.es/gp/product/B003Z7S034/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7S034&amp;linkCode=as2&amp;tag=gazpachu06-21">Dead Poets Society</a> (1989)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7S034/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7S034&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/dead-poets-society_psnpls.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/dead-poets-society_psnpls.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/dead-poets-society_psnpls-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/dead-poets-society_psnpls-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/dead-poets-society_psnpls.jpg" alt="dead-poets-society" loading="lazy">
        </picture>
        <figcaption>dead-poets-society</figcaption>
      </figure></a></p>
<p>A group of students at a strict private school will discover poetry, the meaning of &quot;Carpe Diem&quot;-seize the moment and the importance of pursuing dreams thanks to an eccentric teacher with unconventional methods who awakens their minds.</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7S034/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7S034&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0097165/">imdb</a>: 7.8 | <a href="http://www.rottentomatoes.com/m/dead_poets_society/">Rotten Tomatoes</a>: 7.2 | <strong>Average: 7.5</strong>.</p>
<h3 id="34-akira-1988">34. <a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053CBNYC&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Akira</a> (1988)</h3>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053CBNYC&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/akira_tprwyp.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/akira_tprwyp.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/akira_tprwyp-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/akira_tprwyp-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/akira_tprwyp.jpg" alt="akira" loading="lazy">
        </picture>
        <figcaption>akira</figcaption>
      </figure></a></p>
<p>Year 2019. Neo-Tokyo, a city built on the former Japanese capital destroyed after World War III. Japan is a country on the brink of collapse facing continuous political crises. Secretly, a team of scientists has reactivated by order of the army an experiment to find subjects who can control the ultimate weapon: a force called &quot;absolute energy&quot;. But the inhabitants of Neo-Tokyo have other things to worry about. One of them is Kaneda, a young gang leader of a biker gang. During a fight, his best friend, Tetsuo, suffers a strange accident and ends up in a military facility. There, scientists discover that he is the possessor of absolute energy. But Tetsuo will not resign himself to becoming a guinea pig... and very soon he will become the greatest threat the world has ever known.</p>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053CBNYC&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0094625/">imdb</a>: 7.8 | <a href="http://www.rottentomatoes.com/m/akira/">Rotten Tomatoes</a>: 7.3 | <strong>Average: 7.55</strong> <strong>Average: 7.55</strong></p>
<h3 id="33-the-thing-1982">33. <a href="http://www.amazon.es/gp/product/B00750FPN0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00750FPN0&amp;linkCode=as2&amp;tag=gazpachu06-21">The thing</a> (1982)</h3>
<p><a href="http://www.amazon.es/gp/product/B00750FPN0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00750FPN0&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-thing_mqck1l.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-thing_mqck1l.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-thing_mqck1l-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-thing_mqck1l-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-thing_mqck1l.jpg" alt="the-thing" loading="lazy">
        </picture>
        <figcaption>the-thing</figcaption>
      </figure></a></p>
<p>At an experimental station in Antarctica, a team of researchers discovers a strange entity from space that has been buried in the snow for more than 100,000 years. When the creature thaws out, chaos and terror... It causes chaos and terror as it molts into one of the researchers.</p>
<p><a href="http://www.amazon.es/gp/product/B00750FPN0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00750FPN0&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0084787/">imdb</a>: 8.1 | <a href="http://www.rottentomatoes.com/m/1021244-thing/">Rotten Tomatoes</a>: 7 | <strong>Average: 7.55</strong>.</p>
<h3 id="32-robocop-1987">32. <a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053CB5SG&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">RoboCop</a> (1987)</h3>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053CB5SG&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/robocop_btikrq.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/robocop_btikrq.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/robocop_btikrq-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/robocop_btikrq-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/robocop_btikrq.jpg" alt="robocop" loading="lazy">
        </picture>
        <figcaption>robocop</figcaption>
      </figure></a></p>
<p>In the not-too-distant future, Alex J. Murphy, a Detroit police officer, is killed in the line of duty. To curb crime in the city, the authorities approve the creation of a lethal machine, half robot, half man, which they call Robocop. For its manufacture, they use Murphy&#39;s body. The experiment seems to be a success, but the cop&#39;s memory is not quite destroyed and he initiates a cruel revenge on the guys who killed him.</p>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B0053CB5SG&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0093870/">imdb</a>: 7.5 | <a href="http://www.rottentomatoes.com/m/robocop/">Rotten Tomatoes</a>: 7.7 | <strong>Average: 7.6</strong></p>
<h3 id="31-ghost-busters-1984">31. <a href="http://www.amazon.es/gp/product/B0055KLSKQ/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLSKQ&amp;linkCode=as2&amp;tag=gazpachu06-21">Ghost Busters</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B0055KLSKQ/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLSKQ&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/ghost-busters_umhbur.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/ghost-busters_umhbur.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/ghost-busters_umhbur-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/ghost-busters_umhbur-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/ghost-busters_umhbur.jpg" alt="ghost-busters" loading="lazy">
        </picture>
        <figcaption>ghost-busters</figcaption>
      </figure></a></p>
<p>Drs. Venkman, Stantz and Spengler, are three doctors of parapsychology who become unemployed after being excluded from a university research grant. They then decide to form the company &quot;The Ghostbusters&quot;, dedicated to clearing New York of ectoplasms. The sudden increase of spectral apparitions in the Big Apple will be the harbinger of the arrival of a dangerous and powerful demon.</p>
<p><a href="http://www.amazon.es/gp/product/B0055KLSKQ/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLSKQ&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0087332/">imdb</a>: 7.7 | <a href="http://www.rottentomatoes.com/m/ghostbusters/">Rotten Tomatoes</a>: 7.6 | <strong>Average: 7.65</strong></p>
<h3 id="30-the-breakfast-club-1985">30. <a href="http://www.amazon.es/gp/product/B009QZSVG0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B009QZSVG0&amp;linkCode=as2&amp;tag=gazpachu06-21">The Breakfast Club</a> (1985)</h3>
<p><a href="http://www.amazon.es/gp/product/B009QZSVG0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B009QZSVG0&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-breakfast-club_kvmryy.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-breakfast-club_kvmryy.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-breakfast-club_kvmryy-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-breakfast-club_kvmryy-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-breakfast-club_kvmryy.jpg" alt="the-breakfast-club" loading="lazy">
        </picture>
        <figcaption>the-breakfast-club</figcaption>
      </figure></a></p>
<p>Five students of different education, backgrounds and tastes are punished to spend a Saturday at the high school where they study. Soon disagreements between them appear, especially when the principal who watches over them is absent from the classroom... A cult teen comedy of the eighties.</p>
<p><a href="http://www.amazon.es/gp/product/B009QZSVG0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B009QZSVG0&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0088847/">imdb</a>: 7.8 | <a href="http://www.rottentomatoes.com/m/breakfast_club/">Rotten Tomatoes</a>: 7.5 | <strong>Average: 7.65</strong></p>
<h3 id="29-ferris-buellers-day-off-1986">29. <a href="http://www.amazon.es/gp/product/B000ERVG6G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B000ERVG6G&amp;linkCode=as2&amp;tag=gazpachu06-21">Ferris Bueller&#39;s day off</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B000ERVG6G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B000ERVG6G&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/ferris-bueller_bl5wlt.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/ferris-bueller_bl5wlt.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/ferris-bueller_bl5wlt-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/ferris-bueller_bl5wlt-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/ferris-bueller_bl5wlt.jpg" alt="ferris-bueller" loading="lazy">
        </picture>
        <figcaption>ferris-bueller</figcaption>
      </figure></a></p>
<p>A 17-year-old boy decides to take an early vacation while his parents are away. He prepares a day that is entirely dedicated to doing everything he normally can&#39;t do. For this, he will, of course, count on the company of his best friend and his girlfriend.</p>
<p><a href="http://www.amazon.es/gp/product/B000ERVG6G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B000ERVG6G&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0091042/">imdb</a>: 7.9 | <a href="http://www.rottentomatoes.com/m/ferris_buellers_day_off/">Rotten Tomatoes</a>: 7.5 | <strong>Average: 7.7</strong></p>
<h3 id="28-scarface-1983">28. <a href="http://www.amazon.es/gp/product/B0086R0IWE/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0086R0IWE&amp;linkCode=as2&amp;tag=gazpachu06-21">Scarface</a> (1983)</h3>
<p><a href="http://www.amazon.es/gp/product/B0086R0IWE/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0086R0IWE&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/scarface_fa8gf7.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/scarface_fa8gf7.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/scarface_fa8gf7-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/scarface_fa8gf7-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/scarface_fa8gf7.jpg" alt="scarface" loading="lazy">
        </picture>
        <figcaption>scarface</figcaption>
      </figure></a></p>
<p>A cold and bloodthirsty Cuban émigré, Tony Montana, arrives from Cuba to settle in Miami, where he sets out to make a name for himself in Florida&#39;s organized crime. Along with his friend, Manny Rivera, he embarks on a dazzling criminal career to rise to the top of a drug trafficking organization.</p>
<p><a href="http://www.amazon.es/gp/product/B0086R0IWE/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0086R0IWE&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0086250/">imdb</a>: 8.1 | <a href="http://www.rottentomatoes.com/m/1018324-scarface/">Rotten Tomatoes</a>: 7.4 | <strong>Average: 7.75</strong> <strong>Average: 7.75</strong></p>
<h3 id="27-rain-man-1988">27. <a href="http://www.amazon.es/gp/product/B0055KOT3O/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KOT3O&amp;linkCode=as2&amp;tag=gazpachu06-21">Rain Man</a> (1988)</h3>
<p><a href="http://www.amazon.es/gp/product/B0055KOT3O/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KOT3O&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/rain-man_hab4hn.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/rain-man_hab4hn.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/rain-man_hab4hn-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/rain-man_hab4hn-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/rain-man_hab4hn.jpg" alt="rain-man" loading="lazy">
        </picture>
        <figcaption>rain-man</figcaption>
      </figure></a></p>
<p>Charlie Babbitt (Tom Cruise), a selfish young man hoping to inherit a fortune from his late father, learns that the beneficiary will be his unknown brother Raymond (Dustin Hoffman), an autistic man with a special ability for certain subjects related to memory and numbers. At first, puzzled by his behaviors, Charlie will learn to know his brother during a trip together across the United States.</p>
<p><a href="http://www.amazon.es/gp/product/B0055KOT3O/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KOT3O&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0095953/">imdb</a>: 8.0 | <a href="http://www.rottentomatoes.com/m/rain_man/">Rotten Tomatoes</a>: 7.6 | <strong>Average: 7.8</strong></p>
<h3 id="26-gandhi-1982">26. <a href="http://www.amazon.es/gp/product/B0044XKXD8/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044XKXD8&amp;linkCode=as2&amp;tag=gazpachu06-21">Gandhi</a> (1982)</h3>
<p><a href="http://www.amazon.es/gp/product/B0044XKXD8/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044XKXD8&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/gandhi_wyaqiq.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/gandhi_wyaqiq.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/gandhi_wyaqiq-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/gandhi_wyaqiq-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/gandhi_wyaqiq.jpg" alt="gandhi" loading="lazy">
        </picture>
        <figcaption>gandhi</figcaption>
      </figure></a></p>
<p>Narrates the life of Mahatma Gandhi, from his beginnings as a lawyer in South Africa to becoming the famous leader in India. After championing the rights of citizens of non-European origin in South Africa, he decides that Hindus have become second-class citizens in their own land and succeeds in making the Hindu people revolt from the rule of the British Empire through the doctrine of non-violence.</p>
<p><a href="http://www.amazon.es/gp/product/B0044XKXD8/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0044XKXD8&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0083987/">imdb</a>: 8.2 | <a href="http://www.rottentomatoes.com/m/gandhi/">Rotten Tomatoes</a>: 7.6 | <strong>Average: 7.9</strong></p>
<h3 id="25-et-the-extra-terrestrial-1982">25. <a href="http://www.amazon.es/gp/product/B0053C8M7S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8M7S&amp;linkCode=as2&amp;tag=gazpachu06-21">E.T. the Extra-Terrestrial</a> (1982)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C8M7S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8M7S&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/et-the-extra-terrestrial_xsqvok.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/et-the-extra-terrestrial_xsqvok.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/et-the-extra-terrestrial_xsqvok-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/et-the-extra-terrestrial_xsqvok-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/et-the-extra-terrestrial_xsqvok.jpg" alt="et-the-extra-terrestrial" loading="lazy">
        </picture>
        <figcaption>et-the-extra-terrestrial</figcaption>
      </figure></a></p>
<p>A small visitor from another planet stays on Earth when his ship leaves forgetting about him. He is afraid. He is all alone. He is 3,000,000 light years away from home. Here he will make friends with a boy, who hides and protects him in his home. Together they will try to find a way for the little alien to return to his planet... before the scientists and the police on Earth find him.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C8M7S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8M7S&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0083866/">imdb</a>: 7.9 | Rotten Tomatoes: - | <strong>Average: 7.9</strong>.</p>
<h3 id="24-mad-max-2-1981">24. <a href="http://www.amazon.es/gp/product/B0053C8FKW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8FKW&amp;linkCode=as2&amp;tag=gazpachu06-21">Mad Max 2</a> (1981)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C8FKW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8FKW&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/mad-max-2_rrampt.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/mad-max-2_rrampt.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/mad-max-2_rrampt-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/mad-max-2_rrampt-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/mad-max-2_rrampt.jpg" alt="mad-max-2" loading="lazy">
        </picture>
        <figcaption>mad-max-2</figcaption>
      </figure></a></p>
<p>In the aftermath of the nuclear holocaust, gasoline has become a scarce and highly sought-after commodity. Mad Max, a lone hero, begins an all-out fight to help a colony of survivors constantly under attack by a group of violent warriors trying to snatch a tank of gasoline. Max decides to help the tank&#39;s defenders by using a huge truck as a trap. The band of warriors chases the truck, thinking it is carrying thousands of liters of gasoline.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C8FKW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8FKW&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0082694/">imdb</a>: 7.6 | <a href="http://www.rottentomatoes.com/m/road_warrior/">Rotten Tomatoes</a>: 8.3 | <strong>Average: 7.95</strong>.</p>
<h3 id="23-stand-by-me-1986">23. <a href="http://www.amazon.es/gp/product/B003Z7RCHO/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RCHO&amp;linkCode=as2&amp;tag=gazpachu06-21">Stand by Me</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7RCHO/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RCHO&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/cuenta-conmig_zefswb.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/cuenta-conmig_zefswb.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/cuenta-conmig_zefswb-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/cuenta-conmig_zefswb-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/cuenta-conmig_zefswb.jpg" alt="cuenta-conmig" loading="lazy">
        </picture>
        <figcaption>cuenta-conmig</figcaption>
      </figure></a></p>
<p>In a small Oregon town, four young friends leave town and set out on an adventure in search of a missing boy. Playing hero, sentimental Gordie, rugged Chris, flamboyant Teddy, and fearful Vern make their way through a hostile environment where they must fend for themselves...</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7RCHO/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RCHO&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0092005/">imdb</a>: 8.2 | <a href="http://www.rottentomatoes.com/m/1019794-stand_by_me/">Rotten Tomatoes</a>: 7.7 | <strong>Average: 8</strong></p>
<h3 id="22-airplane-1980">22. <a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B006YSTOLS&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Airplane!</a> (1980)</h3>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B006YSTOLS&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/aterriza-como-puedas_sb4o45.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/aterriza-como-puedas_sb4o45.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/aterriza-como-puedas_sb4o45-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/aterriza-como-puedas_sb4o45-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/aterriza-como-puedas_sb4o45.jpg" alt="aterriza-como-puedas" loading="lazy">
        </picture>
        <figcaption>aterriza-como-puedas</figcaption>
      </figure></a></p>
<p>Trans American Flight 209 departs Los Angeles for Chicago. Among the passengers are several curious characters. Among them, is a former fighter pilot who, in mid-flight, will be forced to take command of the commercial airliner after the pilots are indisposed by a bad meal.</p>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B006YSTOLS&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0080339/">imdb</a>: 7.8 | <a href="http://www.rottentomatoes.com/m/airplane/">Rotten Tomatoes</a>: 8.3 | <strong>Average: 8.05</strong>.</p>
<h3 id="21-paris-texas-1984">21. <a href="http://www.amazon.es/gp/product/B0015FWJSK/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0015FWJSK&amp;linkCode=as2&amp;tag=gazpachu06-21">Paris, Texas</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B0015FWJSK/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0015FWJSK&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/paris-texas_eyyihc.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/paris-texas_eyyihc.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/paris-texas_eyyihc-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/paris-texas_eyyihc-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/paris-texas_eyyihc.jpg" alt="paris-texas" loading="lazy">
        </picture>
        <figcaption>paris-texas</figcaption>
      </figure></a></p>
<p>On the Mexican border, a man begins an exhaustive search for his wife and son.</p>
<p><a href="http://www.amazon.es/gp/product/B0015FWJSK/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0015FWJSK&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0087884/">imdb</a>: 7.9 | <a href="http://www.rottentomatoes.com/m/paris_texas/">Rotten Tomatoes</a>: 8.2 | <strong>Average: 8.05</strong>.</p>
<h3 id="20-platoon-1986">20. <a href="http://www.amazon.es/gp/product/B0053C8VLA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8VLA&amp;linkCode=as2&amp;tag=gazpachu06-21">Platoon</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C8VLA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8VLA&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/platoon_ipehnb.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/platoon_ipehnb.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/platoon_ipehnb-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/platoon_ipehnb-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/platoon_ipehnb.jpg" alt="platoon" loading="lazy">
        </picture>
        <figcaption>platoon</figcaption>
      </figure></a></p>
<p>A young American soldier is sent to the Vietnam-Cambodia border to join a platoon stationed there. Soon after arriving, he discovers the cruelty of this war, not only because of the harsh confrontations with the enemy but also because of the relationships between his comrades.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C8VLA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8VLA&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0091763/">imdb</a>: 8.2 | <a href="http://www.rottentomatoes.com/m/platoon/">Rotten Tomatoes</a>: 8 | <strong>Average: 8.1</strong></p>
<h3 id="19-nuovo-cinema-paradiso-1988">19. <a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B004USINAM&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Nuovo cinema Paradiso</a> (1988)</h3>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B004USINAM&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/nuovo-cinema-paradiso_megon9.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/nuovo-cinema-paradiso_megon9.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/nuovo-cinema-paradiso_megon9-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/nuovo-cinema-paradiso_megon9-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/nuovo-cinema-paradiso_megon9.jpg" alt="nuovo-cinema-paradiso" loading="lazy">
        </picture>
        <figcaption>nuovo-cinema-paradiso</figcaption>
      </figure></a></p>
<p>In front of the demolition of an old cinema, a mature and famous filmmaker recalls his childhood and the moments he spent there in the company of the endearing manager of the place. Developed with agile rhythm, masterfully interpreted and set by an unforgettable soundtrack, the film moves without remedy and reaches its climax in a superb ending that is a tribute to the history of cinema and an appointment with our most sincere tears.</p>
<p><a href="http://rcm-eu.amazon-adsystem.com/e/cm?t=gazpachu06-21&amp;o=30&amp;p=8&amp;l=as1&amp;asins=B004USINAM&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0095765/">imdb</a>: 8.4 | <a href="http://www.rottentomatoes.com/m/cinema_paradiso_directors_cut/">Rotten Tomatoes</a>: 7.9 | <strong>Average: 8.15</strong>.</p>
<h3 id="18-the-shining-1980">18. <a href="http://www.amazon.es/gp/product/B0055KLSJC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLSJC&amp;linkCode=as2&amp;tag=gazpachu06-21">The Shining</a> (1980)</h3>
<p><a href="http://www.amazon.es/gp/product/B0055KLSJC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLSJC&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-shining_gvinpj.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-shining_gvinpj.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-shining_gvinpj-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-shining_gvinpj-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-shining_gvinpj.jpg" alt="the-shining" loading="lazy">
        </picture>
        <figcaption>the-shining</figcaption>
      </figure></a></p>
<p>Jack Torrance moves with his wife and son to the impressive Overlook Hotel in Colorado to maintain it during the winter season, when it is closed and snowbound. His idea is to write his novel while taking care of the facilities during those long and lonely winter months, but since his arrival at the hotel, Jack begins to suffer from disturbing personality disorders, at the same time that various paranormal phenomena begin to happen in the place.</p>
<p><a href="http://www.amazon.es/gp/product/B0055KLSJC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLSJC&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0081505/">imdb</a>: 8.5 | <a href="http://www.rottentomatoes.com/m/shining/">Rotten Tomatoes</a>: 7.8 | <strong>Average: 8.15</strong>.</p>
<h3 id="17-blade-runner-1982">17. <a href="http://www.amazon.es/gp/product/B003Z7QVRG/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7QVRG&amp;linkCode=as2&amp;tag=gazpachu06-21">Blade Runner</a> (1982)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7QVRG/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7QVRG&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/blade-runner_yhvbqz.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/blade-runner_yhvbqz.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/blade-runner_yhvbqz-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/blade-runner_yhvbqz-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/blade-runner_yhvbqz.jpg" alt="blade-runner" loading="lazy">
        </picture>
        <figcaption>blade-runner</figcaption>
      </figure></a></p>
<p>In the early 21st century, the powerful Tyrell Corporation developed a new type of robot called Nexus, a being virtually identical to man and known as a Replicant. Nexus-6 Replicants were superior in strength and agility, and at least equal in intelligence, to the genetic engineers who created them. In outer space, Replicants were used as slave laborers in the risky exploration and colonization of other planets. After the bloody rebellion of a Nexus-6 combat team on a sidereal colony, the Replicants have declared outlaws on Earth under penalty of death. Brigades of special police, under the name of Blade Runner Units, were ordered to shoot to kill at the sight of any invading Replicator. This was not called an execution, it was called a retreat.</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7QVRG/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7QVRG&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0083658/">imdb</a>: 8.3 | <a href="http://www.rottentomatoes.com/m/blade_runner/">Rotten Tomatoes</a>: 8.1 | <strong>Average: 8.2</strong></p>
<h3 id="16-brazil-1985">16. <a href="http://www.amazon.es/gp/product/B003Z7RP8A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RP8A&amp;linkCode=as2&amp;tag=gazpachu06-21">Brazil</a> (1985)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7RP8A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RP8A&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/brazil_j8iez4.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/brazil_j8iez4.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/brazil_j8iez4-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/brazil_j8iez4-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/brazil_j8iez4.jpg" alt="brazil" loading="lazy">
        </picture>
        <figcaption>brazil</figcaption>
      </figure></a></p>
<p>In a strange and depressing futuristic universe where machines reign, a fly falls into a computer and changes the last name of guerrilla Harry Tuttle (Robert de Niro) to that of quiet family man Harry Buttle, who is arrested by the state&#39;s complex repressive apparatus and dies at its hands. Quiet bureaucrat Sam Lowry (Jonathan Pryce) is tasked with returning a stub to the victim&#39;s family, but in doing so he meets Jill Layton (Kim Greist), the woman of his dreams, and, while pursuing her, meets, befriends and becomes Harry Tuttle&#39;s accomplice.</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7RP8A/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7RP8A&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0088846/">imdb</a>: 8.0 | <a href="http://www.rottentomatoes.com/m/1003033-brazil/">Rotten Tomatoes</a>: 8.5 | <strong>Average: 8.25</strong></p>
<h3 id="15-die-hard-1988">15. <a href="http://www.amazon.es/gp/product/B0053C8HBY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8HBY&amp;linkCode=as2&amp;tag=gazpachu06-21">Die Hard</a> (1988)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C8HBY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8HBY&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/die-hard_g8yun7.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/die-hard_g8yun7.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/die-hard_g8yun7-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/die-hard_g8yun7-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/die-hard_g8yun7.jpg" alt="die-hard" loading="lazy">
        </picture>
        <figcaption>die-hard</figcaption>
      </figure></a></p>
<p>High above the city of Los Angeles, an armed terrorist group has taken over a building taking a group of people hostage. Only one man, cop John McClane (Bruce Willis), has managed to escape the terrorist harassment. He is alone, but he will maintain a fierce and exhausting fight against the kidnappers. He&#39;s the only hope for the hostages...</p>
<p><a href="http://www.amazon.es/gp/product/B0053C8HBY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8HBY&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0095016/">imdb</a>: 8.3 | <a href="http://www.rottentomatoes.com/m/die_hard/">Rotten Tomatoes</a>: 8.2 | <strong>Average: 8.25</strong></p>
<h3 id="14-full-metal-jacket-1987">14. <a href="http://www.amazon.es/gp/product/B0053C8A2K/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8A2K&amp;linkCode=as2&amp;tag=gazpachu06-21">Full Metal Jacket</a> (1987)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C8A2K/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8A2K&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/full-metal-jacket_hqoksv.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/full-metal-jacket_hqoksv.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/full-metal-jacket_hqoksv-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/full-metal-jacket_hqoksv-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/full-metal-jacket_hqoksv.jpg" alt="full-metal-jacket" loading="lazy">
        </picture>
        <figcaption>full-metal-jacket</figcaption>
      </figure></a></p>
<p>A group of recruits prepares at Parish Island, a U.S. Navy training center. There is Sergeant Hartmann, tough and relentless, whose sole mission in life is to harden the body and soul of the rookies so that they can defend themselves against the enemy. But not all young men put up with his methods equally...</p>
<p><a href="http://www.amazon.es/gp/product/B0053C8A2K/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C8A2K&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0093058/">imdb</a>: 8.3 | <a href="http://www.rottentomatoes.com/m/full_metal_jacket/">Rotten Tomatoes</a>: 8.2 | <strong>Average: 8.25</strong></p>
<h3 id="13-the-terminator-1984">13. <a href="http://www.amazon.es/gp/product/B0053C80PC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C80PC&amp;linkCode=as2&amp;tag=gazpachu06-21">The Terminator</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053C80PC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C80PC&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/terminator_wps2kb.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/terminator_wps2kb.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/terminator_wps2kb-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/terminator_wps2kb-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/terminator_wps2kb.jpg" alt="terminator" loading="lazy">
        </picture>
        <figcaption>terminator</figcaption>
      </figure></a></p>
<p>Los Angeles, year 2029. The future is dominated by machines. The rebels waging war against them are led by John Connor, a man born in the 1980s. So the machines decide to send an exterminator robot -Terminator- back in time to our days, with the only mission to eliminate Sarah Connor, John&#39;s mother, and prevent her birth.</p>
<p><a href="http://www.amazon.es/gp/product/B0053C80PC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053C80PC&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0088247/">imdb</a>: 8.1 | <a href="http://www.rottentomatoes.com/m/terminator/">Rotten Tomatoes</a>: 8.5 | <strong>Average: 8.3</strong> <strong>Average: 8.3</strong></p>
<h3 id="12-indiana-jones-and-the-last-crusade-1989">12. <a href="http://www.amazon.es/gp/product/B0053CA0U0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA0U0&amp;linkCode=as2&amp;tag=gazpachu06-21">Indiana Jones and the Last Crusade</a> (1989)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053CA0U0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA0U0&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-last-crusade_qqvxng.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-last-crusade_qqvxng.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-last-crusade_qqvxng-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-last-crusade_qqvxng-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-last-crusade_qqvxng.jpg" alt="the-last-crusade" loading="lazy">
        </picture>
        <figcaption>the-last-crusade</figcaption>
      </figure></a></p>
<p>In this third installment of the famous saga of the intrepid archaeologist Indiana Jones (Harrison Ford), the father of the protagonist, the archaeologist Henry Jones (Sean Connery), is kidnapped while searching for the Holy Grail. Indi will have to go to rescue him and, incidentally, try to get hold of the precious relic, also coveted by the Nazis.</p>
<p><a href="http://www.amazon.es/gp/product/B0053CA0U0/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA0U0&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0097576/">imdb</a>: 8.3 | <a href="http://www.rottentomatoes.com/m/indiana_jones_and_the_last_crusade/">Rotten Tomatoes</a>: - | <strong>Average: 8.3</strong></p>
<h3 id="11-back-to-the-future-i-1985">11. <a href="http://www.amazon.es/gp/product/B0053CA48S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA48S&amp;linkCode=as2&amp;tag=gazpachu06-21">Back to the Future I</a> (1985)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053CA48S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA48S&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future_gzj9bm.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future_gzj9bm.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future_gzj9bm-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future_gzj9bm-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/back-to-the-future_gzj9bm.jpg" alt="back-to-the-future" loading="lazy">
        </picture>
        <figcaption>back-to-the-future</figcaption>
      </figure></a></p>
<p>Marty McFly is a teenage friend of Doc, a scientist whom everyone but him takes for a crackpot. When Doc creates a time travel machine in the form of a sports car, Marty accidentally travels back to the year 1955. There he meets his parents when they were young, but prevents their first meeting. From then on, and with time against him, McFly must get them to fall in love so that they marry and he does not cease to exist.</p>
<p><a href="http://www.amazon.es/gp/product/B0053CA48S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CA48S&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0088763/">imdb</a>: 8.3 | <a href="http://www.rottentomatoes.com/m/back_to_the_future/">Rotten Tomatoes</a>: 8.3 | <strong>Average: 8.3</strong></p>
<h3 id="10-the-elephant-man-1980">10. <a href="http://www.amazon.es/gp/product/B001FZG16G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001FZG16G&amp;linkCode=as2&amp;tag=gazpachu06-21">The elephant man</a> (1980)</h3>
<p><a href="http://www.amazon.es/gp/product/B001FZG16G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001FZG16G&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/hombre-elefante_eqhuap.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/hombre-elefante_eqhuap.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/hombre-elefante_eqhuap-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/hombre-elefante_eqhuap-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/hombre-elefante_eqhuap.jpg" alt="elephant-man" loading="lazy">
        </picture>
        <figcaption>elephant-man</figcaption>
      </figure></a></p>
<p>Drama about a man who, due to an illness, suffers terrible physical malformations that prevent him from integrating into society.</p>
<p><a href="http://www.amazon.es/gp/product/B001FZG16G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B001FZG16G&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0080678/">imdb</a>: 8.4 | <a href="http://www.rottentomatoes.com/m/1006528-elephant_man/">Rotten Tomatoes</a>: - | <strong>Average: 8.4</strong></p>
<h3 id="9-amadeus-1984">9. <a href="http://www.amazon.es/gp/product/B003Z7R48G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R48G&amp;linkCode=as2&amp;tag=gazpachu06-21">Amadeus</a> (1984)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7R48G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R48G&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/amadeus_ntgwtm.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/amadeus_ntgwtm.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/amadeus_ntgwtm-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/amadeus_ntgwtm-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/amadeus_ntgwtm.jpg" alt="amadeus" loading="lazy">
        </picture>
        <figcaption>amadeus</figcaption>
      </figure></a></p>
<p>Antonio Salieri is the most outstanding musician at the court of Emperor Joseph II of Austria. Completely devoted to music, he promises God humility and chastity if, in return, he maintains his exceptional musical gifts. For some time he believes that his vow has been heard, but the arrival at the court of a young man named Wolfang Amadeus Mozart relegates him to the background. Irritated by the loss of prominence, he will do everything possible to ruin the career of the young musician. Meanwhile, Mozart surprises everyone with his exceptional musical gifts and his whimsical eccentricities.</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7R48G/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7R48G&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0086879/">imdb</a>: 8.4 | <a href="http://www.rottentomatoes.com/m/amadeus/">Rotten Tomatoes</a>: 8.6 | <strong>Average: 8.5</strong></p>
<h3 id="8-the-grave-of-the-fireflies-1988">8. <a href="http://www.amazon.es/gp/product/B00ABGT6OY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00ABGT6OY&amp;linkCode=as2&amp;tag=gazpachu06-21">The Grave of the Fireflies</a> (1988)</h3>
<p><a href="http://www.amazon.es/gp/product/B00ABGT6OY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00ABGT6OY&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/hotaru-no-haka.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/hotaru-no-haka.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/hotaru-no-haka-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/hotaru-no-haka-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/hotaru-no-haka.jpg" alt="hotaru-no-haka" loading="lazy">
        </picture>
        <figcaption>hotaru-no-haka</figcaption>
      </figure></a></p>
<p>Young Seita and his little sister Setsuko are the children of a Japanese naval officer. During World War II, they both live with their mother, but one day, during a bombing raid, they are delayed and fail to reach the bunker where she is waiting for them. After the bombing, the two brothers search for their mother, and Seita finds her badly wounded in the school that has been converted into an emergency hospital. Soon after the mother dies and, after a brief stay at their aunt&#39;s house, the two will wander homeless and aimless, in a time when food and help are scarce.</p>
<p><a href="http://www.amazon.es/gp/product/B00ABGT6OY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00ABGT6OY&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0095327/">imdb</a>: 8.2 | <a href="http://www.rottentomatoes.com/m/grave_of_the_fireflies/">Rotten Tomatoes</a>: 8.9 | <strong>Average: 8.55</strong></p>
<h3 id="7-ran-1985">7. <a href="http://www.amazon.es/gp/product/B0053CAXBG/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CAXBG&amp;linkCode=as2&amp;tag=gazpachu06-21">Ran</a> (1985)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053CAXBG/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CAXBG&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/ran_ya1ucd.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/ran_ya1ucd.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/ran_ya1ucd-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/ran_ya1ucd-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/ran_ya1ucd.jpg" alt="ran" loading="lazy">
        </picture>
        <figcaption>ran</figcaption>
      </figure></a></p>
<p>In feudal Japan, and after many years of war, the king decides to divide his land among his three sons.</p>
<p><a href="http://www.amazon.es/gp/product/B0053CAXBG/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CAXBG&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0089881/">imdb</a>: 8.3 | <a href="http://www.rottentomatoes.com/m/ran/">Rotten Tomatoes</a>: 8.8 | <strong>Average: 8.55</strong> <strong>Average: 8.55</strong></p>
<h3 id="6-das-boot--the-submarine-1981">6. <a href="http://www.amazon.es/gp/product/B0055KLO14/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLO14&amp;linkCode=as2&amp;tag=gazpachu06-21">Das Boot / The Submarine</a> (1981)</h3>
<p><a href="http://www.amazon.es/gp/product/B0055KLO14/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLO14&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/das-boot_z7doag.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/das-boot_z7doag.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/das-boot_z7doag-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/das-boot_z7doag-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/das-boot_z7doag.jpg" alt="das-boot" loading="lazy">
        </picture>
        <figcaption>das-boot</figcaption>
      </figure></a></p>
<p>A World War II German submarine is the setting in which a group of young soldiers, willing to defend their homeland, will have to undergo a harsh coexistence after discovering that they have been sent on a probably suicidal mission.</p>
<p><a href="http://www.amazon.es/gp/product/B0055KLO14/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KLO14&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0082096/">imdb</a>: 8.5 | <a href="http://www.rottentomatoes.com/m/das_boot/">Rotten Tomatoes</a>: 8.7 | <strong>Average: 8.6</strong></p>
<h3 id="5-aliens-1986">5. <a href="http://www.amazon.es/gp/product/B003Z7ROWC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7ROWC&amp;linkCode=as2&amp;tag=gazpachu06-21">Aliens</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B003Z7ROWC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7ROWC&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/aliens1_nfecvg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/aliens1_nfecvg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/aliens1_nfecvg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/aliens1_nfecvg-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/aliens1_nfecvg.jpg" alt="aliens1" loading="lazy">
        </picture>
        <figcaption>aliens1</figcaption>
      </figure></a></p>
<p>On its way back to Earth, the cargo ship Nostromo interrupts its journey and wakes up its 7 crew members. The central computer, MOTHER, has detected a mysterious transmission, from an unknown life form, coming from a nearby planet. Forced to investigate the source of the communication, the ship heads for the strange planet...</p>
<p><a href="http://www.amazon.es/gp/product/B003Z7ROWC/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003Z7ROWC&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0090605/">imdb</a>: 8.5 | <a href="http://www.rottentomatoes.com/m/1000617-aliens/">Rotten Tomatoes</a>: 8.7 | <strong>Average: 8.6</strong></p>
<h3 id="4-star-wars-v---the-empire-strikes-back-1980">4. <a href="http://www.amazon.es/gp/product/B0055KKQ1I/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KKQ1I&amp;linkCode=as2&amp;tag=gazpachu06-21">Star Wars V - The Empire Strikes Back</a> (1980)</h3>
<p><a href="http://www.amazon.es/gp/product/B0055KKQ1I/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KKQ1I&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/empire-strikes-back_kthpie.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/empire-strikes-back_kthpie.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/empire-strikes-back_kthpie-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/empire-strikes-back_kthpie-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/empire-strikes-back_kthpie.jpg" alt="empire-strikes-back" loading="lazy">
        </picture>
        <figcaption>empire-strikes-back</figcaption>
      </figure></a></p>
<p>After a surprise attack by Imperial troops on the camouflaged bases of the Rebel Alliance, Luke Skywalker, accompanied by R2D2, sets off for the planet Dagobah in search of Yoda, the last Jedi Master, to teach him the secrets of the Force. Meanwhile, Han Solo, Princess Leia, Chewbacca, and C3PO evade the Imperial forces and seek refuge from the former owner of the Millennium Falcon, Lando Calrissian, in the mining town of Bespin, where a trap set by Darth Vader is prepared for them.</p>
<p><a href="http://www.amazon.es/gp/product/B0055KKQ1I/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0055KKQ1I&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://imdb.com/title/tt0080684/">imdb</a>: 8.8 | <a href="http://www.rottentomatoes.com/m/empire_strikes_back/">Rotten Tomatoes</a>: 8.5 | <strong>Average: 8.65</strong></p>
<h3 id="3-raging-bull-1980">3. <a href="http://www.amazon.es/gp/product/B003E4YS1Q/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003E4YS1Q&amp;linkCode=as2&amp;tag=gazpachu06-21">Raging Bull</a> (1980)</h3>
<p><a href="http://www.amazon.es/gp/product/B003E4YS1Q/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003E4YS1Q&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/raging-bull_qbg036.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/raging-bull_qbg036.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/raging-bull_qbg036-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/raging-bull_qbg036-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/raging-bull_qbg036.jpg" alt="raging-bull" loading="lazy">
        </picture>
        <figcaption>raging-bull</figcaption>
      </figure></a></p>
<p>Jake la Motta is a young boxer who trains hard, helped by his brother and manager Joey, to become the number one middleweight. But his psychological and sexual complexes lead him to manifest his aggressiveness both inside and outside the ring. Amid this inner storm is his brother, who has become a victim of Jake&#39;s unhealthy paranoia and jealousy. Soon he manages to see his long-awaited dream come true, but triumph and success turn his life into a nightmare. On the one hand, his marriage is getting worse and worse because of his nights out with other women; on the other hand, the mafia pressures him to rig fights.</p>
<p><a href="http://www.amazon.es/gp/product/B003E4YS1Q/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B003E4YS1Q&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0081398/">imdb</a>: 8.4 | <a href="http://www.rottentomatoes.com/m/raging_bull/">Rotten Tomatoes</a>: 9 | <strong>Average: 8.7</strong></p>
<h3 id="2-raiders-of-the-lost-ark-1981">2. <a href="http://www.amazon.es/gp/product/B00FYRU60S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00FYRU60S&amp;linkCode=as2&amp;tag=gazpachu06-21">Raiders of the Lost Ark</a> (1981)</h3>
<p><a href="http://www.amazon.es/gp/product/B00FYRU60S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00FYRU60S&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/raiders-of-the-lost-ark_gkl1lr.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/raiders-of-the-lost-ark_gkl1lr.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/raiders-of-the-lost-ark_gkl1lr-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/raiders-of-the-lost-ark_gkl1lr-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/raiders-of-the-lost-ark_gkl1lr.jpg" alt="raiders-of-the-lost-ark" loading="lazy">
        </picture>
        <figcaption>raiders-of-the-lost-ark</figcaption>
      </figure></a></p>
<p>Year 1936. Indiana Jones is a university professor of archaeology, who likes to go on adventures in search of valuable historical relics. After returning from an unsuccessful mission in South America, the American government will entrust him with a new task; the search for the Ark of the Covenant, the place where it is believed that the Hebrews deposited the commandments that God had given to Moses, and whose legend attributes an invincible power to whoever possesses it. For this reason, the Nazis are also after it.</p>
<p><a href="http://www.amazon.es/gp/product/B00FYRU60S/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B00FYRU60S&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0082971/">imdb</a>: 8.7 | <a href="http://www.rottentomatoes.com/m/raiders_of_the_lost_ark/">Rotten Tomatoes</a>: 8.8 | <strong>Average: 8.75</strong>.</p>
<h3 id="1-dekalog--decalogue-1982">1. <a href="http://www.imdb.com/title/tt0092337/combined">Dekalog</a> / <a href="http://www.amazon.es/gp/product/B009UIRLBO/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B009UIRLBO&amp;linkCode=as2&amp;tag=gazpachu06-21">Decalogue</a> (1982).</h3>
<p><a href="http://www.amazon.es/gp/product/B009UIRLBO/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B009UIRLBO&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/decalogue1_mgxlsk.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/decalogue1_mgxlsk.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/decalogue1_mgxlsk-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/decalogue1_mgxlsk-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/decalogue1_mgxlsk.jpg" alt="decalogue1" loading="lazy">
        </picture>
        <figcaption>decalogue1</figcaption>
      </figure></a></p>
<p>Ten medium-length films were made for television between director Krzysztof Kieslowski and screenwriter Krzysztof Piesiewicz, generically called &quot;Decalogue&quot;, and each inspired by one of the Ten Commandments.</p>
<p><a href="http://www.amazon.es/gp/product/B009UIRLBO/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B009UIRLBO&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0092337/combined">imdb</a>: 9.2 | <a href="http://www.rottentomatoes.com/m/decalogue_box_set/">Rotten Tomatoes</a>: 9.4 | <strong>Average: 9.3</strong>.</p>
<p><strong>And left out of the ranking are these other films that we were also excited to mention...</strong></p>
<h3 id="bmx-bandits-1983"><a href="http://www.amazon.es/gp/product/B0053CAWBW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CAWBW&amp;linkCode=as2&amp;tag=gazpachu06-21">BMX Bandits</a> (1983)</h3>
<p><a href="http://www.amazon.es/gp/product/B0053CAWBW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CAWBW&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/bmx-bandits_ec3nrq.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/bmx-bandits_ec3nrq.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/bmx-bandits_ec3nrq-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/bmx-bandits_ec3nrq-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/bmx-bandits_ec3nrq.jpg" alt="bmx-bandits" loading="lazy">
        </picture>
        <figcaption>bmx-bandits</figcaption>
      </figure></a></p>
<p>Three young men have bikes as a hobby. One day, after an accident, their bikes are destroyed. To get the money they think of clamming and finding a package that will bring them trouble...</p>
<p><a href="http://www.amazon.es/gp/product/B0053CAWBW/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0053CAWBW&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0085204/">imdb</a>: 4.7 | <a href="http://www.rottentomatoes.com/m/bmx_bandits/">Rotten Tomatoes</a>: - | <strong>Average: 4.7</strong></p>
<h3 id="the-money-pit-1986"><a href="http://www.amazon.es/gp/product/B0041KXMOQ/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0041KXMOQ&amp;linkCode=as2&amp;tag=gazpachu06-21">The money pit</a> (1986)</h3>
<p><a href="http://www.amazon.es/gp/product/B0041KXMOQ/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0041KXMOQ&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-money-pit.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-money-pit.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/the-money-pit-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/the-money-pit-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/the-money-pit.jpg" alt="the-money-pit" loading="lazy">
        </picture>
        <figcaption>the-money-pit</figcaption>
      </figure></a></p>
<p>Anna is a young and attractive violinist who, with her boyfriend Walter, lives temporarily in the apartment of her ex-husband, a famous orchestra conductor. Suddenly, he shows up at the house and the couple has to look for another residence. Walter turns to his friend Jack, a real estate agent, who provides him with a real &quot;bargain&quot; on the outskirts of the city.</p>
<p><a href="http://www.amazon.es/gp/product/B0041KXMOQ/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B0041KXMOQ&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0091541/">imdb</a>: 5.6 | <a href="http://www.rottentomatoes.com/m/money_pit/">Rotten Tomatoes</a>: 4.8 | <strong>Average: 5.2</strong></p>
<h3 id="flashdance-1987"><a href="http://www.amazon.es/gp/product/B008PQ5VZA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008PQ5VZA&amp;linkCode=as2&amp;tag=gazpachu06-21">Flashdance</a> (1987)</h3>
<p><a href="http://www.amazon.es/gp/product/B008PQ5VZA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008PQ5VZA&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/flashdance_mzq8tx.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/flashdance_mzq8tx.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/flashdance_mzq8tx-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/flashdance_mzq8tx-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/flashdance_mzq8tx.jpg" alt="flashdance" loading="lazy">
        </picture>
        <figcaption>flashdance</figcaption>
      </figure></a></p>
<p>Alex Owens is a young orphan girl who dreams of becoming a dancer. To make a living she works in a factory by day as a welder and at night in a nightclub dancing. A blockbuster film from the 80s with a popular soundtrack.</p>
<p><a href="http://www.amazon.es/gp/product/B008PQ5VZA/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B008PQ5VZA&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy now on Amazon</a> | <a href="http://www.imdb.com/title/tt0085549/">imdb</a>: 5.5 | <a href="http://www.rottentomatoes.com/m/flashdance/">Rotten Tomatoes</a>: 4.6 | <strong>Average: 5.05</strong>.</p>
<h3 id="my-friend-mac-1988"><a href="http://www.amazon.es/gp/product/B004P3FGIY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B004P3FGIY&amp;linkCode=as2&amp;tag=gazpachu06-21">My Friend Mac</a> (1988)</h3>
<p><a href="http://www.amazon.es/gp/product/B004P3FGIY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B004P3FGIY&amp;linkCode=as2&amp;tag=gazpachu06-21">
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/mac_and_me_ltf1kq.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/mac_and_me_ltf1kq.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-65-best-movies-from-the-80s/images/mac_and_me_ltf1kq-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-65-best-movies-from-the-80s/images/mac_and_me_ltf1kq-mobile.jpg" />
          <img class="image" src="/blog/the-65-best-movies-from-the-80s/images/mac_and_me_ltf1kq.jpg" alt="mac_and_me" loading="lazy">
        </picture>
        <figcaption>mac_and_me</figcaption>
      </figure></a></p>
<p>An alien escapes from a NASA lab and befriends a paralyzed boy. The boy hides the alien so he won&#39;t be found by the American space agency and locked up again.</p>
<p><a href="http://www.amazon.es/gp/product/B004P3FGIY/ref=as_li_tf_tl?ie=UTF8&amp;camp=3626&amp;creative=24790&amp;creativeASIN=B004P3FGIY&amp;linkCode=as2&amp;tag=gazpachu06-21">Buy it now on Amazon</a> | <a href="http://www.imdb.com/title/tt0095560/">imdb</a>: 2.9 | <a href="http://www.rottentomatoes.com/m/mac_and_me/">Rotten Tomatoes</a>: 1.9 | <strong>Average: 2.4</strong></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-65-best-movies-from-the-80s/images/blade-runner_yhvbqz.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[An idea for a geeky project]]></title>
            <link>https://www.joanmira.com/blog/one-idea-for-a-project-a-little-geek</link>
            <guid>https://www.joanmira.com/blog/one-idea-for-a-project-a-little-geek</guid>
            <pubDate>Sat, 24 Jan 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[The computerized house. A dashboard with weather and task information in the mirror at the entrance]]></description>
            <content:encoded><![CDATA[<p>These days I am thinking of a project that I would be quite excited to make it work well. The idea would be to put a 20-30 inch LCD screen embedded, &quot;embedded&quot; :), embedded in the wall of the entrance of a house. To make it look better, we would put a frame on it and it would look like a v2.0 frame.</p>
<p>The objective of this project is to allow home users to access the internet in a very fast, easy and programmable way. For this, the screen would have to be connected to a computer (Server), which can also be used as a media center to save movies, music, and photos and be accessed remotely via VNC (or similar). The server would also be connected to a projector or screen in the living room, in such a way that with the same computer (server) we would have two screens connected (one in the living room and the other at the entrance).</p>
<p>Well, on the entrance screen we could find a summary of the things that we normally want to know when we are going to leave or enter the house, for example, a summary of the weather with a very short-term forecast, a summary of the latest news, latest e-mail messages received, an agenda with upcoming commitments, a list of things to write down so you don&#39;t forget, etc.</p>
<p>It just occurred to me that it might be interesting to set up a video call service over the Internet, through a web portal where users can register and can record messages with their webcam for other users, so we could integrate this system into the screen of the entrance of the house to see the video messages that they have left us.</p>
<p>Another interesting feature would be the possibility of installing a camera with a motion sensor that would have the ability to wake up the computer (if it is in &quot;sleep&quot; mode) when the motion sensor detects that we are standing in front of the screen for more than 3 seconds. This would help us save energy when the user is not at home and when he arrives at it, the computer will turn on automatically.</p>
<p>Well, the idea ends here for now… I don&#39;t know what you think if it&#39;s bullshit or if it could be interesting. I await your comments.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/one-idea-for-a-project-a-little-geek/images/11214203_1_ryjakm.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Pros and cons of remote work]]></title>
            <link>https://www.joanmira.com/blog/pros-and-cons-of-remote-work</link>
            <guid>https://www.joanmira.com/blog/pros-and-cons-of-remote-work</guid>
            <pubDate>Fri, 09 Jan 2009 00:00:00 GMT</pubDate>
            <description><![CDATA[Not everything is perfect, nor is it intended to be. It is simply another way of working]]></description>
            <content:encoded><![CDATA[<p><strong>Pros:</strong></p>
<ul>
<li>You can dress comfortably and as you like. I like pajamas with a robe</li>
<li>You can save money on transportation</li>
<li>If you like to cook, you can enjoy your food without having to reheat it</li>
<li>You can watch the news at your leisure</li>
<li>You don&#39;t get cold or wet on rainy days</li>
<li>You can eat and smoke whenever you want</li>
<li>You can listen to music or watch TV while you work</li>
<li>If you live in a big city, you can avoid the traffic
(assuming you are your own boss)</li>
<li>Flexible hours. You don&#39;t have someone controlling your schedule. If you prefer to work at night (as in my case), you work at night and that&#39;s it</li>
<li>You can use the operating systems and programs you want</li>
<li>Your work does not have to pass the filter of your boss, to see if the client likes it</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li>There may come a time when you do not distinguish home life from work life.</li>
<li>You can become a big <a href="http://es.wikipedia.org/wiki/Procrastinaci%C3%B3n">procrastinator</a></li>
<li>Being cooped up all day in your own home</li>
<li>You have no social life during working hours since you are not in an office with other colleagues (some may like this, I don&#39;t have much of a problem with this point) (<em>solution 1</em>)</li>
<li>You can become accustomed to a sedentary lifestyle and spend too much time sitting. Which can lead to obesity or eating disorders (<em>solution 2</em>)
(In case you work alone, as a freelancer)</li>
<li>You don&#39;t have a fixed salary per month, you have to get used to saving in case one month you don&#39;t have much work.</li>
<li>In the beginning, if you don&#39;t have some clients, it can be difficult to earn money (<em>solution 3</em>)</li>
</ul>
<p><strong>Solutions to the cons:</strong></p>
<ol>
<li>Call a friend/colleague to go out to lunch together</li>
<li>Join a gym or play sports regularly</li>
<li>Partner up with someone to get more job opportunities</li>
</ol>
<p>And well, those are the ones I can think of, if anyone can think of any others, feel free to send a comment.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/pros-and-cons-of-remote-work/images/teleworking_c3qd1d.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Vicky Cristina Barcelona]]></title>
            <link>https://www.joanmira.com/blog/vicky-cristina-barcelona</link>
            <guid>https://www.joanmira.com/blog/vicky-cristina-barcelona</guid>
            <pubDate>Sun, 28 Sep 2008 00:00:00 GMT</pubDate>
            <description><![CDATA[Brief analysis of Woody Allen's new movie]]></description>
            <content:encoded><![CDATA[<p>I just got back from the movies, from watching Woody Allen&#39;s latest film and I was a bit disappointed... I was expecting something better.</p>
<p>I missed the genuine sense of humor that his films usually have and a more brilliant performance by Scarlet and Patricia. Bardem was good, and seductive,... although I saw him better in other more dramatic roles. The best for me has been Penelope, who although she enjoys less screen time than her co-stars, does it with such strength and character that she manages to win my attention at all times. Without a doubt, this girl is a goddess, pure Latin beauty, feminine mischief, glamour and elegance.</p>
<p>The story is presented as a tasty dish for most viewers, where more than one is sure to identify with the character of Cristina and Vicky. With Bardem and Penelope, it is more difficult (because of the complexity of their lives), but in any case, the director offers us a cocktail of love affairs with an advertisement of the city of Barcelona that serves no purpose.</p>
<p>An entertaining film, but not very well cared for. A boring soundtrack, dubbing and heavy narration in off and patches to lengthen the footage everywhere. In short, a pity that for once Allen makes a film in Spain, but it does not live up to expectations.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/vicky-cristina-barcelona/images/vicky-cristina-barcelona-poster_mmonmn.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The monk who sold his Ferrari]]></title>
            <link>https://www.joanmira.com/blog/the-monk-who-sold-his-ferrari</link>
            <guid>https://www.joanmira.com/blog/the-monk-who-sold-his-ferrari</guid>
            <pubDate>Tue, 23 Sep 2008 00:00:00 GMT</pubDate>
            <description><![CDATA[A book that is very enjoyable to read and inspiring]]></description>
            <content:encoded><![CDATA[<p>I am finishing reading this book and I thought it was a good idea to recommend it for you to read. It is an easy read and has inspired me to make some big decisions and start some projects.</p>
<p>This is the story of Julian Mantle, a prominent lawyer who had everything in life (or so he thought). But, one day, after a heart attack that put him on the verge of death, Julian decided to sell all his material possessions and go to India in search of enlightenment.</p>
<p>It was then that he met the Sages of Sivana in a remote community lost in the Himalayas. Julian studied with them for several years and thus obtained what he was looking for: the seven eternal virtues of the enlightened life.</p>
<p>This entertaining story is a source of practical and spiritual wisdom that can be used by anyone, especially managers and professionals.</p>
<p><a href="http://manuamozarrain.googlepages.com/Elmonjequevendiosuferrari.pdf">Here you can download</a> a PDF with a more extensive summary of the book.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-monk-who-sold-his-ferrari/images/14582634_hnllxa.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Padam! Padam! Padam!]]></title>
            <link>https://www.joanmira.com/blog/padam-padam-padam</link>
            <guid>https://www.joanmira.com/blog/padam-padam-padam</guid>
            <pubDate>Tue, 23 Sep 2008 00:00:00 GMT</pubDate>
            <description><![CDATA[An inspiring and poetic film, with a lot of art.]]></description>
            <content:encoded><![CDATA[<p>What a great movie &quot;<a href="http://www.imdb.com/title/tt0450188/">La Môme</a>&quot;, I loved it, it inspired me, it moved me, it fascinated me... what a life <a href="http://en.wikipedia.org/wiki/Edith_Piaf">Edith Piaf</a> (you just have to read the first line of <a href="http://en.wikipedia.org/wiki/Edith_Piaf">her wikipedia article</a>), &quot;Edith Piaf was born under a lamppost in front of number 72 of <em>rue de Belleville</em> in <a href="http://en.wikipedia.org/wiki/Par%C3%ADs" title="Paris">Paris</a>. Take that!</p>
<p>To the sound of her song &quot;Padam Padam Padam Padam&quot; I write this entry, feeling like I&#39;m in Paris, in those dank and dingy bars of the 40s, drinking wine and getting drunk while we all sing to life! C&#39;est la vie, mon ami, don&#39;t miss it, it&#39;s a great movie with the actress who won the Oscar. A performance that is scary how well she does it.</p>
<iframe allowfullscreen="" frameborder="0" height="340" src="https://www.youtube.com/embed/0Ih5z4WTVDw?feature=oembed" width="100%"></iframe>

<p><em>Padam! Padam! Padam! .... (song ended)</em></p>
<p>PADAM, PADAM - EDITH PIAF</p>
<p>Cet air qui m&#39;obsède jour et nuit - This air that haunts me day and night
cet air n&#39;est pas né d&#39;aujourd&#39;hui - this air was not born today
il vient d&#39;aussi loin que je viens - it comes from as far away as I come from
traîné par cent mille musiciens - dragged along by hundreds of thousands of musicians
un jour cet air me rendra folle - one day this air will drive me crazy
cent fois j&#39;ai voulu dire pourquoi - a hundred times I have wanted to say why
mais il m&#39;a coupé la parole - but he cut off my words
il parle toujours avant moi - he always speaks before me
et sa voix couvre ma voix. - and his voice covers my voice.</p>
<p>Padam...padam...padam... - Padam...padam...padam....
Il arrive en courant derrière moi. - He comes running after me.</p>
<p>Padam...padam...padam...padam... - Padam...padam...padam....
Il me fait le coup du souviens-toi. - He pushes me to remember you.</p>
<p>Padam...padam...padam...padam... - Padam...padam...padam....
C&#39;est un air qui me montre du doigt - It&#39;s an air that points its finger at me
et je traîne après moi comme un drole d&#39;erreur - and I crawl after me like a funny mistake
cet air qui sait tout par cœur. - this air that knows everything by intuition.</p>
<p>Il dit: &quot;Rappelle-toi tes amours - He says: &quot;Remember your loves
rappelle-toi puisque c&#39;est ton tour - remember because it&#39;s your turn
n&#39;y a pas d&#39;raison pour que tu ne pleures pas - there is no reason for you not to cry
avec tes souvenirs sur les bras...&quot; - with your memories on your arms...&quot; - with your memories on your arms...&quot;
et moi je revois ceux qui restent - and I go back to see those who remain
mes vingt ans font battre tambour - my twenty years make me beat the drum
je vois s&#39;entrebattre des gestes - I see the gestures beaten together
toute la comédie des amours - all the comedy of loves
sur cet air qui va toujours. - sur cet air qui va toujours.</p>
<p>Padam...padam...padam...padam... - Padam...padam...padam....
Des &quot;je t&#39;aime&quot; of quatorze-juillet. - The &quot;I love you&quot; of 14 July.</p>
<p>Padam...padam...padam...padam... - Padam...padam...padam....
Des &quot;toujours&quot; qu&#39;on achète au rabais. - The &quot;always&quot; that are bought in liquidation.</p>
<p>Padam...padam...padam... - Padam...padam...padam....
Des &quot;veux-tu&quot; en voilà par paquets - The &quot;do you want you?&quot; here they are in packages
et tout ca pour tomber juste au coin d&#39;la rue - and all this to fall right on the corner of the street
sur l&#39;air qui m&#39;a reconnue - on the air that has recognized me.</p>
<p>Écoutez le chahut qu&#39;il me fair. - Listen to the scandal that makes me.</p>
<p>Comme si tout mon passé défilait. - As if all my past paraded.</p>
<p>Faut garder du chagrin pour après - We must save our grief for later.
j&#39;en ai tout un solfège sur cet air qui bat...- I have a whole solfège on this air that beats
qui bat comme un cœur de bois... - that beats like a heart of wood...</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/padam-padam-padam/images/affiche-la-mome-2005-2_mjokcd.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Kim-ki-duk - Breath]]></title>
            <link>https://www.joanmira.com/blog/kim-ki-duk-breath</link>
            <guid>https://www.joanmira.com/blog/kim-ki-duk-breath</guid>
            <pubDate>Sun, 14 Sep 2008 00:00:00 GMT</pubDate>
            <description><![CDATA[Breve análisis de la nueva película de Kim-ki-duk]]></description>
            <content:encoded><![CDATA[<p>This entry is dedicated with special illusion to all those who are not yet familiar with Asian cinema and especially Korean cinema, which has several directors who are making pretty good movies. Among them is &quot;<a href="http://es.wikipedia.org/wiki/Kim_Ki-duk">Kim-ki-duk</a>&quot;, one of my favorites, for his ability to tell stories without the need for the actors to say practically nothing throughout the film (which is quite useful to see them in the original version) and in this way it is easy to notice much more in the body language, in the composition of the scenes and in general gives the viewer more freedom to think while watching the film.</p>
<p>Last night I saw one of his latest films &quot;<a href="http://www.youtube.com/watch?v=-rW7AlCH1L4">Breath</a>&quot; from 2007 and I can only recommend it to you. It is a sad story but with a deep message of hope and empathy.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/kim-ki-duk-breath/images/breathposter1toedeblogvk1_ipc8di.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Small paint job]]></title>
            <link>https://www.joanmira.com/blog/small-paint-job</link>
            <guid>https://www.joanmira.com/blog/small-paint-job</guid>
            <pubDate>Sat, 13 Sep 2008 00:00:00 GMT</pubDate>
            <description><![CDATA[Introducing a new design for Webmarket's website]]></description>
            <content:encoded><![CDATA[<p>We have been several weeks with changes in the Webmarket servers, something very entertaining... spending the nights together with endearing HTTP and FTP protocols, talking about the DNS policies, trying the new fashion patches,... in short, a whole festival of technologies and other &quot;amenities&quot; for geeks and internet professionals.</p>
<p>Taking advantage of this state of reorganization, we have also started to fix the Webmarket work sample (finally!) and now... we can tell the world... all the links are working! and you can now criticize our humble creations. The <a href="http://upload.wikimedia.org/wikipedia/commons/2/22/New_York_City_at_night_HDR.jpg">background photo</a> is not ours.</p>
<p>As a <strong>goal for this year 2008/2009</strong> it would be nice to create an original project worthy of a <strong><a href="http://www.thefwa.com">FWA</a></strong> award. I already have an idea that I really like and that I haven&#39;t seen in any interactive media so far. If anyone would like to participate in this project, you can write to me at joan (at) webmarket.es. Any help will be welcome and I hope the reward will be a HUGE one! :)</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/small-paint-job/images/webmarket_thggqn.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[New Webmarket logo]]></title>
            <link>https://www.joanmira.com/blog/new-webmarket-logo</link>
            <guid>https://www.joanmira.com/blog/new-webmarket-logo</guid>
            <pubDate>Wed, 03 Sep 2008 00:00:00 GMT</pubDate>
            <description><![CDATA[Change of the green apple logo to another based on Webmarket's initials]]></description>
            <content:encoded><![CDATA[<p>Well, it was about time to change the green apple logo, which although I liked it a lot, was a semi-copy of the Apple logo. So now we are a little bit more different and with more personality.</p>
<p>The logo represents an M and a W, which are the initials of Web Market... as you can see, a display of creativity (tap on the back). If anyone would like to give their opinion, as long as it&#39;s constructive, please go ahead.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/new-webmarket-logo/images/logo_presupuesto_grande_nzfbww.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The new calling cards]]></title>
            <link>https://www.joanmira.com/blog/the-new-calling-cards</link>
            <guid>https://www.joanmira.com/blog/the-new-calling-cards</guid>
            <pubDate>Mon, 14 Apr 2008 00:00:00 GMT</pubDate>
            <description><![CDATA[New Webmarket business cards based on an alphabet soup game]]></description>
            <content:encoded><![CDATA[<p>Webmarket&#39;s new business cards are based on an alphabet soup. The aim is to reflect our passion for interaction in such an analogical medium as print. On the back, you will find the solutions with the contact details and some other words such as design, interactive, graphic...</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-new-calling-cards/images/calling_card_webmarket_front_oaffbx.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The tech inventions that changed our lives]]></title>
            <link>https://www.joanmira.com/blog/the-tech-inventions-that-changed-our-lives</link>
            <guid>https://www.joanmira.com/blog/the-tech-inventions-that-changed-our-lives</guid>
            <pubDate>Sat, 12 May 2007 00:00:00 GMT</pubDate>
            <description><![CDATA[Analysis of how information technology has been incorporated into users' day-to-day lives]]></description>
            <content:encoded><![CDATA[<h3 id="introduction">INTRODUCTION</h3>
<p>The tech inventions that changed our lives is a personal work of the <a href="http://uoc.edu">multimedia degree at the UOC</a> that aims to show how computer technology has been incorporated into the daily lives of users, mainly within this last decade.</p>
<p>Technology is booming. The consumer society has led us to a dynamic in which we consume more and more by whim than by necessity and one of the most beneficial sectors is that of new technologies. In this work, we wanted to explain in a general way some of the latest electronic devices or technological innovations that have become very popular in today&#39;s society.</p>
<p>This project focuses on the explanation and development of what we have selected as the 14 decisive inventions for the user in this last decade. Initially, the project is explained in block 0 Introduction summarizing the objectives of the project and also putting the reader in the situation. The choice of the 14 inventions was not simple and the elaboration of a common template for all the inventions, to follow a similar structure, was not easy either, since there are very diverse inventions and it is not easy to catalog each of the computer advances following the same guidelines.</p>
<p>The first block of the project deals with the main innovations in the field of computer hardware. New forms of communication (Wifi, Bluetooth) and storage (flash), for example, have been some of the most impressive and fastest-growing innovations in the sector.</p>
<p>But it is not only hardware that has undergone an expansion. Some of the topics we deal with in the second block, computer software, have changed the economics of many sectors (such as Peer to Peer and MP3, which have revolutionized the music sector), but others have altered social habits, such as blogs and social communities, which have allowed any anonymous person not only to freely express their opinion but also to spread it around the world.</p>
<p>In the third and final block of content, we have included a few more applications of computing that cannot be classified solely as hardware or software, as they are a union of both and are also notoriously influencing both the economy and society.</p>
<p>As a culmination of the project we present the conclusions, which are evident after having read the project, and we have also developed an explanatory web page, as well as a PowerPoint presentation in which the essence of the project is shown in a more didactic and interactive way.</p>
<p>To explain in a general way each of these new advances, we have designed a template (see next page) that includes the past, present and future of each of the &quot;inventions&quot;, as well as the most relevant aspects of their operation and tries to give an approximate idea of the influence they have had on society. The points evaluated in the project are the following:</p>
<ul>
<li>Initial summary of characteristics</li>
<li>Definition</li>
<li>Functioning and scientific basis</li>
<li>Applications and sectors concerned</li>
<li>Versions and types</li>
<li>Requirements, consumption, problems</li>
<li>Current situation</li>
<li>Future forecast</li>
</ul>
<h3 id="1-computer-hardware">1. COMPUTER HARDWARE</h3>
<h3 id="flash-memories-fast-and-transportable-storage">Flash memories. Fast and transportable storage.</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg-mobile.jpg" />
          <img class="image" src="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg.jpg" alt="memoria.jpg" loading="lazy">
        </picture>
        <figcaption>memoria.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Flash memory. Flash drive. Memory card</li>
<li><strong>Year of invention and place</strong>: It was Intel in 1988 when it invented this type of memory as an evolution of the EEPROMs existing at that time</li>
<li><strong>Year of impact on society</strong>: In 1994, SanDisk began to market memory cards (CompactFlash) based on these circuits and since then they have not stopped evolving</li>
<li><strong>Sectors to which it belongs</strong>: from personal to space aeronautics. The spectrum of users is very wide and affects all sectors</li>
<li><strong>Main brands</strong>: Sandisk, TDK, Verbatim, Kingston, PNY, PNY, Fordox, Samsung, Memorex</li>
<li><strong>Approximate price range</strong>: from 15€ for 512Mb, 50€ for 2GB up to 4000€ for 64GB</li>
</ul>
<p><strong>DEFINITION</strong>: Flash memories are non-volatile, that is, the information stored is not lost as soon as it is disconnected from the current, a feature highly valued for the multitude of uses in which this type of memory is used.</p>
<p>The main uses of this type of memory are small devices based on the use of batteries such as cell phones, PDAs, small household appliances, digital cameras, portable audio players, etc.</p>
<p><strong>HISTORY</strong>: The history of flash memory has always been closely linked to the progress of the rest of the technologies it serves, such as routers, modems, PC BIOS, wireless, etc. It was Intel in 1988 when it invented this type of memory as an evolution of the EEPROM existing at that time.</p>
<p>Between 1994 and 1998, the main types of memory we know today, such as SmartMedia or CompactFlash, were developed. The technology soon found applications in other fields. In 1998, the Rio company marketed the first &#39;Walkman&#39; without moving parts by taking advantage of the SmartMedia mode of operation. It was the dream of every sportsman who had suffered the jumps of a Diskman in his pocket.</p>
<p><strong>APPLICATIONS</strong>: The USB keychain, in addition to storage, often include other services such as FM radio, voice recording and, above all, portable players of MP3 and other audio formats.
 The flash memory cards are the substitute for the reel in digital photography since the photos are stored in them.</p>
<p><strong>TYPES</strong>: There are memory cards of different sizes and brands. Some widespread formats are: compact flash, secure ROM, Memory Stick, Picture Card, etc. USB key fobs have infinite shapes, sizes and functions.</p>
<p><strong>REQUIREMENTS</strong>: Some MP3 or video players with flash memory are self-contained and do not require any other device. Memory cards and USB flash drives require a computer, digital camera or music player to operate.</p>
<p><strong>THE SITUATION</strong>: Nowadays, flash memories are a fundamental element for leisure and work. The change from analog to digital photography would not have been possible without this type of flash memory. Students, professionals and other groups use flash drives to transport data easily and quickly.</p>
<p><strong>FUTURE</strong>: The future of the flash memory world is quite encouraging, as the trend is towards the ubiquity of computers and smart, embedded appliances and, therefore, the demand for small, cheap and flexible memories will continue to rise until new systems appear that surpass it both in features and cost and, at least in appearance, it is not feasible even in the medium term as the miniaturization and density of flash memories is still far from reaching worrying levels from a physical point of view.</p>
<h3 id="fiber-optics-data-transmission-mechanisms">Fiber optics. Data transmission mechanisms</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/fiber_rbsrhb.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/fiber_rbsrhb.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/fiber_rbsrhb-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/fiber_rbsrhb-mobile.jpg" />
          <img class="image" src="/blog/the-tech-inventions-that-changed-our-lives/images/fiber_rbsrhb.jpg" alt="fiber.jpg" loading="lazy">
        </picture>
        <figcaption>fiber.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Fiber optics</li>
<li><strong>Year of invention and place</strong>: 1977 first test system was installed in England.</li>
<li><strong>Sectors to which it belongs</strong>: Internet, telecommunications, television</li>
<li>Main brands**: There are no brands, although the main investors are telephone companies such as Motorola and cable television companies such as the Venezuelan Supercable</li>
</ul>
<p><strong>DEFINITION</strong>: Fiber optics is the necessary advance to improve data transmission at the high speed required for worldwide use of the Internet. Telephone lines do not have such a high transmission capacity since they were not designed to carry data at the time of their creation.</p>
<p><strong>HISTORY</strong>: In 1959 it was discovered as a derivation of the studies of physics (optics) new use of light, called laser beam, which were applied to telecommunications so that the messages were transmitted at unusual speeds and with wide coverage. But the use of lasers was very limited due to the lack of suitable conductors to make electromagnetic waves travel. It was then that scientists turned their efforts to the production of a channel, known today as optical fiber. In 1966 the proposal to use optical guidance for communication arose and in 1977 the first test system was installed in England.</p>
<p><strong>SCIENTIFIC BASIS</strong>: Cables between 10-300 microns thick that carry messages in the form of light beams from one end to the other without interruption using a fiber made of tiny crystals. Transmission is by reflection and there are hardly any losses since the core of the fiber is covered by a layer of glass that causes a very low refractive index. The transmission and reception system requires the following components: Input signal, amplifier, light source, optical corrector, fiber optic line, receiver, amplifier and output signal.</p>
<p><strong>APPLICATIONS</strong>: Increase speed in telecommunications. It is applicable in small stand-alone environments as well as in large geographical networks (from data processing systems in airplanes to long urban line systems maintained by telephone companies). The most common applications are for the Internet, networks, telephony, and cable television.</p>
<p><strong>TYPES</strong>: Fiber optic circuits are composed of glass (natural crystals) or plastic (artificial crystals) filaments.</p>
<p><strong>REQUIREMENTS</strong>: Only people in whose cities the fiber optic network is installed can subscribe. The cost of connection and installation is high. The fibers are fragile, there is limited availability of connectors and the difficulty of repairing a broken cable is high.</p>
<p><strong>SITUATION</strong>: Fully booming, the installation and applications of this new technology are very effective and research continues to improve its performance.</p>
<p><strong>FUTURE</strong>: In the future most people will have access to fiber optics and its installation cost will be lower. This will produce an increase in Internet connections and a new concept in telephony and television.</p>
<h3 id="wi-fi">Wi-fi</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/la-informatica-que-change-our-lives/images/wifi_icx0kk.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/la-informatica-que-change-our-lives/images/wifi_icx0kk.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/la-informatica-que-change-our-lives/images/wifi_icx0kk-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/la-informatica-que-change-our-lives/images/wifi_icx0kk-mobile.jpg" />
          <img class="image" src="/blog/la-informatica-que-change-our-lives/images/wifi_icx0kk.jpg" alt="wifi.jpg" loading="lazy">
        </picture>
        <figcaption>wifi.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: WI-FI or Wifi. Stands for Wireless-Fidelity</li>
<li><strong>Year of invention and place</strong>: The IEEE 802.11 standard was published in 1997. It belongs to the Institute of Electrical and Electronics Engineers (IEEE), a worldwide non-profit technical-professional association founded in 1884 by various personalities (including illustrious ones such as Thomas Alva Edison, Alexander Graham Bell and Franklin Leonard Pope). WIFI as such is both the set of standards based on the IEEE 802.11 specifications and a trademark of the Wi-Fi Alliance</li>
<li><strong>Year of its impact on society</strong>: In 1999 the 802.11b version appeared, which together with 802.11g has been the most widely used</li>
<li><strong>Sectors to which it belongs</strong>: As the IEEE is a non-profit association, any sector can benefit from this standard</li>
</ul>
<p><strong>DEFINITION</strong>: The IEEE 802.11 protocol is a set of standards designed to connect several computers wirelessly (via infrared or radio waves, depending on the standard), although its most frequent use today is for Internet connection.</p>
<p><strong>HISTORY</strong>: The first version of the IEEE 802.11 protocol was created in 1997, with a transmission speed of 2Mbps (Megabits per second). Later, in 1999, two more advanced standards were created: 802.11a (54Mbps) which operated in the 5GHz band (GigaHertz) and 802.11b (11Mbps), which operated in the 2.4 GHz band (more widely used, as it is the same used by cell phones and other electronic devices). In June 2003 another standard was created, 802.11g, which operates in the 2.4GHz band with a theoretical maximum speed of 54Mbps and a range of up to 50km. In addition to being compatible with the 802.11b standard, it became the most popular.</p>
<p><strong>APPLICATIONS</strong>: Its most common use today is to communicate a computer or other device (PDA, mobile, etc.) with an Internet access point. This allows that being within the coverage radius of the access node, you can access the Internet without the need for cables (simultaneously using other security protocols such as WEP or WPA to protect communication and data).</p>
<p><strong>TYPES</strong>: More than types, there are different versions of the same communications protocol standard (see the History section for more details).</p>
<p><strong>REQUIREMENTS</strong>: In most everyday use, which is Internet access, all we need is to have an access point nearby to which we can connect our device. If the device we want to connect is a computer, we will need a wireless network card, if it is another type of device it usually already has integrated WiFi communication capacity.</p>
<p>**Currently it is one of the most widely used communication standards, as it allows the creation of large Internet connection networks, even in entire cities at low cost and without the need for cables. In this way, we can be connected at any time and from anywhere to the network.</p>
<p><strong>FUTURE</strong>: A new version of the protocol (version 802.11n) is already underway, which is expected to reach speeds of up to 600Mbps and with a much larger range. In the future, it is expected that cities will have guaranteed Internet access via Wifi from any point in the city (for example, the city of Nuenen, birthplace of Van Gogh, in the Netherlands, has already implemented it).</p>
<h3 id="scanner">Scanner</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/scanner_khsbtw.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/scanner_khsbtw.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/scanner_khsbtw-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/scanner_khsbtw-mobile.jpg" />
          <img class="image" src="/blog/the-tech-inventions-that-changed-our-lives/images/scanner_khsbtw.jpg" alt="scanner.jpg" loading="lazy">
        </picture>
        <figcaption>scanner.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Scanner (or Scanner)</li>
<li><strong>Year of invention and place</strong>: Rudolf Hell is considered the inventor of the fax and the scanner. He founded a company in Berlin that in the 1960s created the forerunner of today&#39;s scanner</li>
<li><strong>Year of its impact on society</strong>: It has never been a huge boom, although its biggest boom was in the 1990s</li>
</ul>
<p><strong>Sectors to which it belongs</strong>: Private, commercial and professional
<strong>Main brands</strong>: Epson, Canon and HP</p>
<ul>
<li><strong>Approximate price range</strong>: From 60€ the cheapest to 240€ the most expensive</li>
</ul>
<p><strong>DEFINITION</strong>: The scanner is hardware whose main purpose is to convert analog information into digital so that it can be interpreted by a computer and stored or manipulated later.</p>
<p><strong>HISTORY</strong>: The Hell company created in 1929 a machine capable of transmitting text. The machine decomposed letters into dots and retransmitted them electronically. This machine was the forerunner of the fax machine and later served as the technological basis for the first scanner in 1963.</p>
<p><strong>APPLICATIONS</strong>: In addition to the usual uses of a scanner (digitizing images, text, etc.), there is a variant of the scanner that is used very frequently, especially in stores: the bar code reader.</p>
<p><strong>TYPES</strong>There are three types of scanners: roller, handheld and desktop. The roller scanner is similar to a fax machine since it automatically picks up the document to be scanned and digitizes it. Its main drawback is that it can only scan text documents. The handheld type is the least reliable, as it depends on the user&#39;s pulse, but it is the cheapest. Finally, the desktop type is the most expensive, but also the most professional and widespread.</p>
<p><strong>REQUIREMENTS</strong>: The technology that makes up the scanner has the main disadvantage that it is very mechanical and this can lead to failures due to wear and tear, shocks, etc. Regarding consumption and requirements, it needs nothing more than electricity to operate and a driver (TWAIN standard) to communicate with the computer.</p>
<p><strong>SITUATION</strong>: Currently it is not one of the most demanded products. The fact that most of the information produced is already digital has made the scanner fall into disuse.</p>
<p><strong>FUTURE</strong>: Among the devices based on scanner technology with the greatest future are fingerprint readers and retina scanners, among others.</p>
<h3 id="webcam">Webcam</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/webcams_ssdicv.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/webcams_ssdicv.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/webcams_ssdicv-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/webcams_ssdicv-mobile.jpg" />
          <img class="image" src="/blog/the-tech-inventions-that-changed-our-lives/images/webcams_ssdicv.jpg" alt="webcams.jpg" loading="lazy">
        </picture>
        <figcaption>webcams.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Webcam or webcam</li>
<li><strong>Year of invention and place</strong>: It was invented by Quentin Stafford-Fraser in 1991 at the Department of Computer Science, University of Cambridge</li>
<li><strong>Year in which it impacted society</strong>: It is currently being commercialized the most</li>
<li><strong>Sectors to which it belongs</strong>: Private, leisure</li>
</ul>
<p><strong>Main brands</strong>: Logitech, Creative, Microsoft, Genius, etc</p>
<ul>
<li><strong>Approximate price range</strong>: Between 12€ and 120€ depending on the model</li>
</ul>
<p><strong>DEFINITION</strong>: Basically, the webcam is a digital camera connected to a PC and its main purpose is to capture images to distribute them over the Internet.</p>
<p><strong>HISTORY</strong>: Its invention is attributed to Quentin Stafford-Fraser, from the Department of Computer Science at Cambridge University. Quentin was addicted to coffee and, tired of going downstairs to get coffee and there was none left, he decided to connect a video camera to a computer via a video card so he could watch the coffee pot from his place.</p>
<p><strong>APPLICATIONS</strong>: The most popular use is to communicate visually with other people (for example, with instant messaging programs such as MSN Messenger), although it can also be used to record small videos and photos to upload them to the Internet or to play video games (see Types).</p>
<p><strong>TYPES</strong>: In addition to private webcams, you can currently find thousands of webcams on the Internet in public places and cities around the world that allow you to &quot;visit&quot; other places without being there (<a href="http://www.worldlive.cz/en/webcams#location">http://www.worldlive.cz/en/webcams#location</a>). Other types of webcams would be, for example, the &quot;Eye Toy&quot;, an accessory for the PlayStation2 console that captures your image and movements and turns you into the protagonist of the games.</p>
<p><strong>REQUIREMENTS</strong>: The only requirement is to have a fairly powerful computer, a USB port (usually the most common connection) and webcam drivers.</p>
<p><strong>SITUATION</strong>: Webcams are currently being promoted, mainly for recreational and communication use, but they are very popular.</p>
<p><strong>FUTURE</strong>: More and more technological devices include camera and Internet connection and also the speed of data transmission is improving, which will enhance the use of videoconferencing as a form of communication, either from the cell phone, computer or any other portable device.</p>
<h3 id="bluetooth-communication-of-computing-devices">Bluetooth. Communication of computing devices</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg-mobile.jpg" />
          <img class="image" src="/blog/the-tech-inventions-that-changed-our-lives/images/memorias_upspqg.jpg" alt="memorias.jpg" loading="lazy">
        </picture>
        <figcaption>memorias.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Bluetooth</li>
<li><strong>Year of invention and place</strong>: Ericsson, 1994 (first appearance)</li>
<li><strong>Year of impact on society</strong>: From 2001 to 2005, sales of Bluetooth devices doubled every year</li>
<li><strong>Sectors to which it belongs</strong>: Home environments, advertising, leisure and entertainment, applicable to medicine, automobiles, etc</li>
</ul>
<p><strong>Main brands</strong>: Ericsson, Nokia, Toshiba, Intel, IBM, etc</p>
<ul>
<li><strong>Approx. price range</strong>: Depending on which Bluetooth application. For example, a mouse with Bluetooth technology costs about 90 €, on the other hand, a USB-Bluetooth adapter can be found for 30 €</li>
</ul>
<p><strong>DEFINITION</strong>: Bluetooth is the name of the norm that defines a global standard of wireless communication and allows the communication and transmission of data and voice using a radiofrequency link. If one device is within the coverage radius of another, they can establish a connection between them.</p>
<p><strong>HISTORY</strong>: The birth of Bluetooth technology began in 1994, from a study that developed the Ericsson brand and investigated the feasibility of a low-cost and low-consumption radio communication. As a result of this study, it was possible to create a short-range radio link, called the MC link. As the project progressed, a wide range of applications was considered, since the radio chip on which it was based was relatively inexpensive.</p>
<p>It was realized that for this technology to be successful, a large number of devices would have to be equipped with it. For this reason, the SIG group was formed by 5 promoters (Ericsson, Nokia, IBM, Toshiba and Intel) who formed a consortium and established a standard for their software to ensure the interoperability of equipment from different manufacturers.</p>
<p><strong>APPLICATIONS</strong>: Bluetooth technology offers many possibilities, mainly because it facilitates communications between mobile and fixed devices, eliminates any type of cables and connectors between them, and it is even possible to create small wireless networks between personal devices. Moreover, Bluetooth technology applies to many sectors, mainly hardware, software and telecommunications.</p>
<p><strong>TYPES</strong>: There are different versions of Bluetooth devices classified by their transmission power, although they are all compatible regardless of this factor. The classes of Bluetooth devices would be Class 1 devices, with a range of about 100m, Class 2, with a range of 20/30m and finally Class 3, with only one meter of radio. For two devices to communicate they must simultaneously occupy each other&#39;s range, i.e. if we want a Class 1 device to communicate with a Class 3 device, we must place it at a distance of about 1 meter, regardless of whether the range of the Class 1 device reaches 100m.</p>
<p><strong>REQUIREMENTS</strong>: The only requirement is a relatively low-cost chip adapted to each Bluetooth application. However, the weak point of Bluetooth technology is the security given the ease with which data can be transferred to equipment that often lacks processing capacity. To avoid this problem, a question-answer routine has been defined, a session key is provided to the devices and an encrypted stream of data is generated (encryption).</p>
<p><strong>STATUS</strong>: Booming, according to statistics from 2001 to 2005 the sale of Bluetooth devices is doubling every year.</p>
<p><strong>FUTURE</strong>: Bluetooth technology will soon be introduced in consoles such as Sony Playstation 3 and Nintendo Wii, which will have wireless controllers. Businesses will also be affected by the possibility of using Bluetooth as a means of sending advertising to cell phones when passing near a transmitter. Another new development will be the application of Bluetooth for wired communication between GPS equipment and medical equipment.</p>
<h3 id="2-computer-software">2. COMPUTER SOFTWARE</h3>
<h3 id="mp3-and-divx-main-audio-and-video-codecs">MP3 and DIVX. Main audio and video codecs</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/la-informatica-que-change-our-lives/images/divx_jegse2.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/la-informatica-que-change-our-lives/images/divx_jegse2.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/la-informatica-que-change-our-lives/images/divx_jegse2-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/la-informatica-que-change-our-lives/images/divx_jegse2-mobile.jpg" />
          <img class="image" src="/blog/la-informatica-que-change-our-lives/images/divx_jegse2.jpg" alt="divx.jpg" loading="lazy">
        </picture>
        <figcaption>divx.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: DivX, Divx;), MP3, MPEG Audio Layer 3</li>
<li><strong>Year of invention and place</strong>: MP3: developed and patented between 1986-1995, MPEG (Media Pictures Expert Group). Divx: 2000, Jeroma Rota (France), Max Morice (Germany) (hackers)</li>
<li><strong>Year of impact on society</strong>: Parallel to the increase in the number of broadband connections (2000-2005)</li>
</ul>
<p><strong>Sectors to which it belongs</strong>: Home and professional environments, IT industry, music and film industry</p>
<ul>
<li><strong>Approx. price range</strong>: mp3 players cost about 40-300 euros, and DivX players cost 40-200 euros</li>
</ul>
<p><strong>DEFINITION</strong>: Mp3 and Divx are the names of the main audio and sound codecs most commonly used today. Codecs (short for encoder-decoder), encode the size of a signal to reduce the size of audio and multimedia files, mainly for broadcasting over the Internet or other transmission media and then recover it to make it usable.</p>
<p><strong>HISTORY</strong>: The DivX technology was developed in the shadow of other technologies (MPEG-4 Part 2 and DecSS) by two hackers (Jeroma Rota and Max Morice) in 2000. After this innovation, two projects that pretended to legalize divs were Project Mayo and 3ivx.com. Project Mayo claimed at all times to know the source code until it culminated in the creation of the first legal Divx 4 codec. Currently, the development is completely legal and belongs to the company Divx, Inc, originally based on Project Mayo.</p>
<p><strong>SCIENTIFIC BASIS</strong>: The mp3 technology was developed by the MPEG (Moving Pictures Expert Group) and the size reduction is based on a psychoacoustic analysis of the sound, that is to say, the sound is analyzed and the sounds that the brain cannot perceive (very high or very low frequencies, superimposed sounds, etc.) are discarded, obtaining a very reduced final size with an insignificant loss of quality.</p>
<p><strong>TYPES</strong>: Both DivX and Mp3 significantly reduce the file size without hardly altering the quality, and this is precisely the factor that has caused so much success and acceptance for these codecs. To get an idea, Divx stores in about 700 MB what DVD stores in 8 GB, with a derisory loss of quality. The same is true for mp3, which stores approximately 1 minute of sound in 1 MB, i.e. it compresses by 90% the size of the same file in WAV format. This size reduction facilitates its diffusion on the Internet and for this reason, it is so popular.</p>
<p><strong>REQUIREMENTS</strong>: Mp3 and DivX are basically (although not legally) circulating on the Internet, normally they are spread with P2P programs or also from some web pages or other programs. From there it is possible to download them to your computer to play them with specific player software (also easily found on the internet), or they can be recorded on a cd obtaining approximately an mp3 cd with about 12 hours of music or a movie with a quality close to DVD.</p>
<p><strong>SITUATION</strong>: Currently these technologies are in fashion and mp3 is slightly more advanced because DivX files are more extensive and require broadband connections that not everyone has.</p>
<p><strong>FUTURE</strong>: In this sector it is unpredictable to know where this fight between piracy and the film and music industries will go, every time new laws against piracy are agreed upon but apparently without much effect. We can assume that other forms of image and sound storage will be created and that their respective codecs will probably be created at the same time, each time with higher quality.</p>
<h3 id="messenger-and-voip-real-time-communication-using-computers">Messenger and VOIP. Real-time communication using computers</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-computer-changing-our-lives/images/messenger_drnkad.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-computer-changing-our-lives/images/messenger_drnkad.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-computer-changing-our-lives/images/messenger_drnkad-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-computer-changing-our-lives/images/messenger_drnkad-mobile.jpg" />
          <img class="image" src="/blog/the-computer-changing-our-lives/images/messenger_drnkad.jpg" alt="messenger.jpg" loading="lazy">
        </picture>
        <figcaption>messenger.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Instant messaging software, Voip, Voice over IP, IP Telephony, Internet Telephony, Broadband Telephony and Voice over Broadband</li>
<li><strong>Year of invention and place</strong>: The precedent was the &quot;Experimental Voice Protocol Network&quot;, ARPANET - 1973 and the first instant messaging program on the Internet were ICQ, 1996 (Spanish)</li>
<li><strong>Year in which it had an impact on society</strong>: From 2000 onwards</li>
<li><strong>Sectors to which it belongs</strong>: Communication, Internet, education and business</li>
<li><strong>Main brands</strong>: AIM, ICQ, Yahoo Messenger, Windows Messenger, QQ, Skype, Google Talk</li>
</ul>
<p><strong>DEFINITION</strong>: Voice over Internet Protocol, also called Voice over IP, VoIP, is the routing of voice conversations over the Internet or some other IP-based network. The most common use of the VOIP protocol is in instant messaging programs.</p>
<p><strong>HISTORY</strong>: An early form of instant messaging was the implementation of the PLATO system used in the early 1970s. Then such a system on UNIX/LINUX started to be used by engineers and academics in the 80s and 90s. In 1996 ICQ, the first instant messaging program appeared. Since its appearance, many programs have emerged that have incorporated variations and have been developed in parallel elsewhere, each application having its protocol. Alternatively, programs have emerged that support several protocols, such as Gaim or Trillian, and recently some messaging services have begun to offer telephony (VoIP) and videoconferencing.</p>
<p><strong>SCIENTIFIC BACKGROUND</strong>: VoIP converts voice conversations into digital audio, which can be stored on a computer. At the source, the voice is digitized, compressed and encapsulated over the TCP/IP protocol. At the destination, the opposite is done. This translates into greater flexibility to participate in a conversation.</p>
<p><strong>APPLICATIONS</strong>: Important applications in several sectors, mainly for leisure, although its application to business and education is also important. The purpose of these programs is to improve communication by offering instant communication to the client, as opposed to conventional &quot;e-mail&quot;. In addition, these programs increasingly incorporate more options such as telephone calls, file sharing, virtual whiteboard, built-in games, videoconferencing, sending SMS to mobiles, etc.</p>
<p><strong>TYPES</strong>: There are several programs depending on the functions they have, some are more oriented towards videoconferencing and calls, while others are more oriented towards sharing functions and files.</p>
<p><strong>REQUIREMENTS</strong>: The requirements depend on the program, generally, you need a computer with an Internet connection with a preferably high speed, an account in the desired server, and for most of them an advanced version of Windows, audio and microphone, and for some functions a webcam.</p>
<p><strong>SITUATION</strong>: Although the &quot;boom&quot; of these programs is located a few years ago, it continues to be investigated with great impetus its applications in other fields and continues to increase the number of users who use it.</p>
<p><strong>FUTURE</strong>: It seems that these programs are more and more inclined to integrate instant messaging programs with P2P, and the possibility of introducing the use of PayPal with these programs is being studied.</p>
<h3 id="peer-to-peer-file-sharing-networks-such-as-napster-edonkey-kademlia-gnutella-or-bittorrent">Peer To Peer. File sharing networks such as Napster, Edonkey, Kademlia, Gnutella or BitTorrent.</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/la-informatica-que-change-our-lives/images/emule_ntafv0.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/la-informatica-que-change-our-lives/images/emule_ntafv0.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/la-informatica-que-change-our-lives/images/emule_ntafv0-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/la-informatica-que-change-our-lives/images/emule_ntafv0-mobile.jpg" />
          <img class="image" src="/blog/la-informatica-que-change-our-lives/images/emule_ntafv0.jpg" alt="emule.jpg" loading="lazy">
        </picture>
        <figcaption>emule.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: P2P, Emule, Kazaa, Overnet, Torrents, Napster</li>
<li><strong>Year of invention and place</strong>: The first P2P (PeerToPeer) application was Napster, in 1999. In 2001 it was closed by court order (it already had 27 million users) and in 2002 the first decentralized networks such as Kazaa, Grokster and Morpheus started to emerge</li>
<li><strong>Year in which it had an impact on society</strong>: Since the year Napster appeared, file sharing through P2P networks has been growing steadily around the world and today there are hundreds of millions of users</li>
<li><strong>Sectors to which it belongs</strong>: it is usually used in domestic environments although little by little some universities and companies are starting to use the Bitorrent protocol to share large files</li>
<li><strong>Free/private distribution</strong>: Most of them are freely distributed. Emule: open source project (SourceForge). BitTorrent is distributed under the MIT license</li>
<li><strong>Main projects</strong>: Emule (popular in Europe and America), BitTorrent (popular in Asia)</li>
</ul>
<p><strong>DEFINITION</strong>: P2P programs and networks are used to share computer files of all kinds free of charge over the Internet.</p>
<p><strong>HISTORY</strong>: P2P (PeerToPeer) networks are based on the connection of computers through software such as Emule. In the beginning, some P2P networks were not decentralized and therefore a server was needed to manage the clients and their files. Today, P2P software technology continues to evolve to make users&#39; connections and transfers as anonymous as possible.</p>
<p><strong>APPLICATIONS</strong>: Currently, P2P networks are mostly used to share music files, movies encoded in DivX and all types of software for PC, MAC, video game consoles, ebooks, etc.</p>
<p><strong>TYPES</strong>: The community of P2P users is very large and there are many programs and MODS (modifications of the original programs) to share files. In Spain, there are communities such as Emulespana where you can find the necessary information to start experimenting with Peer To Peer Networks.</p>
<p><strong>REQUIREMENTS</strong>: In order to connect to a P2P network it is necessary to have a high-speed Internet connection, a PC or MAC computer with Windows, MAC OS or Linux, and a computer program such as Emule, BitTorrent or Pando.</p>
<p><strong>SITUATION</strong>: Emule and BitTorrent are currently the most widely used file-sharing programs. The RIAA, SGAE, MPA and other organizations that defend copyrights are in an ongoing battle with P2P networks to ban their use.</p>
<p><strong>FUTURE</strong>: Throughout history, lawsuits have led users to switch to P2P programs with technologies that are more difficult to stop, and the number of users has not diminished. The Internet phenomenon and its constant evolution will force film and music production companies to change their business model.</p>
<h3 id="blogging-social-communities-evolution-to-internet-20">Blogging, Social Communities. Evolution to Internet 2.0</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/youtube_fwmlui.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/youtube_fwmlui.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/youtube_fwmlui-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/youtube_fwmlui-mobile.jpg" />
          <img class="image" src="/blog/the-tech-inventions-that-changed-our-lives/images/youtube_fwmlui.jpg" alt="youtube.jpg" loading="lazy">
        </picture>
        <figcaption>youtube.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Friendster, YouTube, Blogspot, Neurona, etc</li>
<li><strong>Year of invention and place</strong>: In 2002, websites promoting online friend networks started to appear</li>
<li><strong>Year of impact on society</strong>: From 2003 onwards, sites such as Friendster, MySpace, Tribe.net, Linkedln started to become popular</li>
<li><strong>Sectors to which it belongs</strong>: Social networks are used by Internet users of all kinds and currently on sites such as Second Life, companies from all over the world can even create a virtual store and promote their services and sell their products</li>
</ul>
<p><strong>Main projects</strong>: SecondLife, MySpace, YouTube, Blogspot, CouchSurfing, Neurona, etc</p>
<p><strong>DEFINITION</strong>: Social networks are made up of users, who are in charge of inviting more people and among them, they can communicate, see other users&#39; profiles, see photos, videos, music, professional profiles, etc. Users are organized in groups and there are powerful search engines to browse the social network in search of other users.</p>
<p><strong>HISTORY</strong>: Social networks are the result of the evolution of the Internet and the increase in the computer-using population.</p>
<p><strong>APPLICATIONS</strong>: Providing multimedia content, offering accommodation to other travelers, sharing professional profiles, searching for friends and partners, finding old school and work colleagues,...</p>
<p><strong>TYPES</strong>: Mainly activities related to leisure and the dissemination of multimedia content. There are also networks focused on the business and professional fields.</p>
<p><strong>REQUIREMENTS</strong>: Normally, to participate in a social network, it is necessary to register as a user and provide some personal data or fill in a personalized profile on the website.</p>
<p><strong>SITUATION</strong>: Social networks are currently booming and new initiatives are appearing every day to capture the interest of Internet users.</p>
<p><strong>FUTURE</strong>: The future of the Internet to the so-called &quot;Internet 2.0&quot; and some are already talking about &quot;Internet 3.0&quot;, involves a greater involvement of users on the Internet. Social networks will continue to be present and will evolve at the same time as the Internet.</p>
<h3 id="e-commerce-and-online-advertising-buying-and-selling-on-the-internet-banking-applications">E-Commerce and Online Advertising. Buying and Selling on the Internet. Banking applications</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/paypal_xnh6tn.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/paypal_xnh6tn.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/paypal_xnh6tn-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/paypal_xnh6tn-mobile.jpg" />
          <img class="image" src="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/paypal_xnh6tn.jpg" alt="paypal.jpg" loading="lazy">
        </picture>
        <figcaption>paypal.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Google Adsense and Adwords, eBay, Paypal, Amazon, etc</li>
<li><strong>Year of invention and place</strong>: In 1995 the G7/G8 countries created the Global Marketplace for SMEs initiative, to accelerate the use of e-commerce among businesses worldwide</li>
<li><strong>Year in which it had an impact on society</strong>: After the &quot;dot com&quot; crisis, from 2003 onwards</li>
<li><strong>Sectors to which it belongs</strong>: the whole of society benefits to a greater or lesser extent from e-commerce and its various applications, from credit cards to Internet shopping</li>
<li><strong>Main projects</strong>: Google Adsense and Adwords, eBay, Paypal, Amazon</li>
</ul>
<p><strong>DEFINITION</strong>: E-Commerce is the simple replication of a business on the Internet allowing to collect orders or offer products and/or services from or to customers or suppliers.</p>
<p><strong>HISTORY</strong>: Since 1995 a multitude of Internet companies began to emerge, but the distrust of customers, and the absence of a well-defined business plan with specific objectives, led many of them to disappear (dot com crisis).</p>
<p><strong>APPLICATIONS</strong>: Making purchases over the Internet. Make transactions in your bank online. Earn money and promote your business with Adsense and Google Adwords.</p>
<p><strong>REQUIREMENTS</strong>: Most services for online shopping require the use of a credit card and for sales, you need a payment gateway that connects the website with a bank or service like Paypal.</p>
<p><strong>SITUATION</strong>: Currently, a large part of society is unaware of or uninterested in Internet shopping/selling services. One of the most popular reasons is the lack of security on the Internet or the fear of being scammed.</p>
<p><strong>FUTURE</strong>: The e-commerce of the future will have more facilities to move money on a global scale, greater social acceptance and sophisticated online marketing tools.</p>
<h3 id="3-other-applications-of-information-technology">3. OTHER APPLICATIONS OF INFORMATION TECHNOLOGY</h3>
<h3 id="gps-global-positioning-system">GPS (Global Positioning System)</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/gps_yasy9i.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/gps_yasy9i.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/gps_yasy9i-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/the-tech-inventions-that-changed-our-lives/images/gps_yasy9i-mobile.jpg" />
          <img class="image" src="/blog/the-tech-inventions-that-changed-our-lives/images/gps_yasy9i.jpg" alt="gps.jpg" loading="lazy">
        </picture>
        <figcaption>gps.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: GPS (Global Positioning System) or Global Positioning System</li>
<li><strong>Year of invention and place</strong>: It was designed by the United States Department of Defense and has been in operation since 1995.</li>
<li><strong>Year in which it had an impact on society</strong>: It is currently being commercialized the most</li>
<li><strong>Sectors to which it belongs</strong>: Military and Private</li>
<li><strong>Main brands</strong>: Airis, TomTom, Navman, Acer, etc</li>
</ul>
<p><strong>Approximate price range</strong>: Between 180€ and 600€ depending on the model. The professional and specialized ones can even reach up to 30000€</p>
<p><strong>DEFINITION</strong>: The idea of GPS is based on a set of 21 satellites. A GPS receives several signals at the same time from some of the satellites and calculates the position in which it is located.</p>
<p><strong>HISTORY</strong>: Initially they devised a system called TRANSIT, consisting of 6 satellites, which was intended to support the U.S. marine fleet. Later they improved it with 28 satellites that provided worldwide coverage the first of the 28 satellites was launched in 1978 and in 1983 the entire network was available.</p>
<p><strong>APPLICATIONS</strong>: In addition to military purposes, GPS has many applications: maritime navigation, detection of earthquakes, and volcanoes, tracking of icebergs, etc. It is increasingly used for private and leisure purposes.</p>
<p><strong>TYPES</strong>The GPS is a unique system. Although GPS is indeed the American satellite network and currently there is another Russian network (GLONASS) and in a few years there will be another European network (GALILEO), there is no great difference between them and the receivers have almost all common characteristics.</p>
<p><strong>REQUIREMENTS</strong>: In order to use GPS technology it is necessary to have a receiver (also known as GPS) and receive the signal from the satellites (the more the better). Usually, the receivers have built-in maps of geographical areas or cities to facilitate the user&#39;s location.</p>
<p><strong>SITUATION</strong>: GPS is currently at a great moment. It is very common to see more and more cars and individuals with a receiver that not only locates them geographically but also indicates the route to follow.</p>
<p><strong>FUTURE</strong>: In the next few years, the European satellite network GALILEO will come into operation, which will also offer positioning services. In addition, more and more GPS receivers are being incorporated into cell phones, laptops and PDAs.</p>
<h3 id="home-media-center-computing-as-the-center-of-the-home">Home Media Center. Computing as the center of the home</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/la-informatica-que-cambio-nos-vidas/images/mediacenter_wt8jhq.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/la-informatica-que-cambio-nos-vidas/images/mediacenter_wt8jhq.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/la-informatica-que-cambio-nos-vidas/images/mediacenter_wt8jhq-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/la-informatica-que-cambio-nos-vidas/images/mediacenter_wt8jhq-mobile.jpg" />
          <img class="image" src="/blog/la-informatica-que-cambio-nos-vidas/images/mediacenter_wt8jhq.jpg" alt="mediacenter.jpg" loading="lazy">
        </picture>
        <figcaption>mediacenter.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Home Media Center</li>
<li><strong>Year of invention and place</strong>: SES GLOBAL, Astra, 2003 - Hannover</li>
<li><strong>Year of impact on society</strong>: Has not yet had a real impact on society</li>
<li><strong>Sectors to which it belongs</strong>: IT, home appliances, entertainment, hardware manufacturers, software, content providers, distributors, and product and service providers</li>
<li><strong>Approx. price range</strong>: 500€ - 3000€</li>
</ul>
<p><strong>DEFINITION</strong>: A media center is a new concept of a computer, adapted to meet the needs of the whole family. It is designed to become the center of the home, that is to say, to be able to operate with a single device that allows several functions at the same time and allows interactive access to television.</p>
<p><strong>HISTORY</strong>: Although it is a very recent invention, the first European Home Media Center was presented at CeBIT (Hannover) by the company SES GLOBAL. We can not clearly describe the history of the Home Media Center because it is rather a fusion between the functions of computers and other audiovisual devices, mainly the functions of the DVR (Digital Video Recorder) that allows recording on a hard disk television programming, video game consoles with an Internet connection and audio manager and digital photography (Xbox, Playstation) However we can say that the software that mainly uses these computers are Windows, Linux and Apple.</p>
<p><strong>APPLICATIONS</strong>: A media center can be used as a personal computer or connected to the television via video cable. The media center can play music, watch movies and photos stored on a local hard disk or in any case on a local network, they are also able to play DVDs, record television images or perform other tasks such as searching for news on the Internet. They have a large storage capacity (the current ones are about 250 GB). Their use is quite simple and graphical, although they can perform quite complex functions. Their main advantage is that the user saves money by investing in a single device that was traditionally obtained from several (TV, video, computer, stereo, etc.). They also have the advantage that they are quite compact and do not take up much space.</p>
<p><strong>TYPES</strong>: They are not well defined yet, but the differences will be created depending on the function of the media center and the possibilities and services that each device can offer.</p>
<p><strong>REQUIREMENTS</strong>: It is necessary to buy a Media Center, the price varies depending on its innovations and power of it. It is also necessary to have an internet connection and to operate a media center it is possible to do it with a keyboard or with remote control.</p>
<p><strong>SITUATION</strong>: Although it is not yet common, its use is booming, more and more brands are betting on these computers to place the computer as the center of the home. Although in Spain they are still not very well known, in other countries such as the U.S.A. and U.K. they are becoming more and more popular.
 FUTURE: Possibly, shortly, all homes will be equipped with a media center that will also serve as a personal computer when necessary.</p>
<h3 id="video-game-consoles">Video game consoles</h3>
<p>
      <figure>
        <picture>
          <source media="(min-width: 769px)" type="image/webp" srcset="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/wee_vyqnbz.webp" />
          <source media="(min-width: 769px)" type="image/jpeg" srcset="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/wee_vyqnbz.jpg" />
          <source media="(min-width: 320px)" type="image/webp" srcset="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/wee_vyqnbz-mobile.webp" />
          <source media="(min-width: 320px)" type="image/jpeg" srcset="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/wee_vyqnbz-mobile.jpg" />
          <img class="image" src="/blog/la-informatica-que-que-cambio-nuestras-vidas/images/wee_vyqnbz.jpg" alt="wee.jpg" loading="lazy">
        </picture>
        <figcaption>wee.jpg</figcaption>
      </figure></p>
<ul>
<li><strong>Name</strong>: Console or video game console</li>
<li><strong>Year of invention, invention and place</strong>: There is no single inventor of video games, although one of the first dedicated companies was ATARI, founded in 1972 in New York</li>
<li><strong>Year of impact on society</strong>: Each year it has a higher level of sales and a greater impact on the entertainment sector</li>
</ul>
<p><strong>Main brands</strong>: Sony, Nintendo, Microsoft</p>
<ul>
<li><strong>Approximate price range</strong>: From 130€ for the Nintendo DS to 399€ for the new Playstation 3</li>
</ul>
<p><strong>DEFINITION</strong>: A console could be defined as an electronic device whose main purpose is to allow playing video games. This would be its basic definition, although more and more consoles are becoming multimedia entertainment centers.</p>
<p><strong>HISTORY</strong>: Although in the 50&#39;s companies such as SEGA and some video games such as OXO (A.S.Douglas, 1952 Cambridge University), a version of the famous tic-tac-toe game to play against the computer, the Odyssey (Magnavox, 1972) is considered the first console as such. However, it was the arrival of games like PONG (ATARI, 1975), SPACE INVADERS (Taito, 1978) or PAC-MAN that marked a before and after in the video game industry. From there came consoles such as the Atari 2600 (1977), the Nintendo (1985) and the Super Nintendo (1991), the different versions of Playstation (SONY), etc.</p>
<p><strong>APPLICATIONS</strong>: Initially, consoles were prepared only to run games, but market demands and the evolution of communications (network games, Internet downloads, multimedia formats, etc.) have meant that the latest models of consoles now have an Internet connection, DVD playback, photographs and many other applications.</p>
<p><strong>TYPES</strong>: More than types we could talk about classifications, for example: by brands (SONY, SEGA, NINTENDO, MICROSOFT...), by the storage system (cartridges, CDs, DVDs..), etc. But perhaps the best way to divide it is into laptops and non-portables. Laptops are characterized by being easy to carry and because you can play with them anywhere and anytime. Non-portables, on the other hand, are much more powerful and with better graphics.</p>
<p><strong>REQUIREMENTS</strong>: If the console is portable, the only thing you need to use is that it has a charged battery and, logically, a game. If it is not, then it will be necessary (besides the game) for some plug and a TV or monitor to be able to play.</p>
<p><strong>SITUATION</strong>: We are living in the most golden age of video games. It is currently one of the industries that moves more money in the world, even above the cinema.</p>
<p><strong>FUTURE</strong>: It seems that the future of consoles is unbeatable. The recent launch of the Nintendo Wii and Playstation 3 has put video games back in the media spotlight, and not for nothing: wireless controllers with motion detectors, Internet browsing, Bluetooth and increasingly more communication between the user and video game and even between console and other &quot;gadgets&quot;, such as other portable consoles, MP3 players, etc. An unbeatable future is predicted for consoles as a center of leisure and entertainment.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/the-tech-inventions-that-changed-our-lives/images/fiber_rbsrhb.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Hey!, I want to be a web designer]]></title>
            <link>https://www.joanmira.com/blog/hey-i-want-to-be-web-designer</link>
            <guid>https://www.joanmira.com/blog/hey-i-want-to-be-web-designer</guid>
            <pubDate>Mon, 07 May 2007 00:00:00 GMT</pubDate>
            <description><![CDATA[How to become a web design professional]]></description>
            <content:encoded><![CDATA[<p>Below you will find a series of tips on how to become a web design professional. This guide is focused on those who are starting or have an interest in web design. Many of the suggestions you will find here are the result of my experience and learning over the years. I hope you find them useful.</p>
<p><strong>General tips</strong> to become a web designer/web developer / graphic designer:</p>
<p><strong>1st.</strong> The most important one: you must create your online portfolio of work. It must be very original and of high quality. If possible, fun (transmitting happiness and positivism). Do not start programming/designing without having a good idea and without having thought about how to solve all the problems of interactivity and usability.</p>
<p><strong>2nd.</strong> Persevere, and have a lot of patience. To be good you need several years of experience. The first years are hard... you will have to do projects for free or charge well below the standard salary.</p>
<p><strong>3rd.</strong> Try to associate with people in the same sector. Look for creative friends who have talent in drawing, 3D modeling, or creating digital music with the computer... Any creative environment is positive and will help you to keep the illusion.</p>
<p><strong>4th.</strong> Read a lot of books, magazines, blogs, and forums, related to web design, the Internet is the best source of information you will find! You can also buy books on Amazon.com</p>
<p><strong>5th.</strong> Get involved in any opportunity to create a project (even if it is free). Even if you don&#39;t make money, you gain experience and in this way, you learn the many &quot;tricks&quot; that web design has.</p>
<p><strong>6th.</strong> Be ready to travel/change city or if you do well you can work online as a Freelancer.</p>
<p><strong>7th.</strong> Set yourself short and long-term goals: win a prize, make 1 website per month, win a contest, make your portfolio, learn HTML in a month, then PHP, etc.</p>
<p><strong>8th.</strong> with time, you will end up knowing which profile that best suits your skills, your talent or your tastes, because in the industry there are several profiles related to web design. Often you will find profiles such as frontend designer/programmer, backend programmer, graphic designer, 3D graphic designer,... or in English, interactive developer, senior web designer, junior programmer, graphic designer, etc...</p>
<p><strong>Some references...</strong></p>
<p><strong>Teaching</strong></p>
<ul>
<li>Vocational Training Schools/Higher grade modules related to graphic design/Art/Computer Science. To find them, go to the website of your autonomous community</li>
<li>Universities that offer degrees or Masters such as Fine Arts, Multimedia Graduate, Audiovisual Communication, Computer Engineering, E-Commerce</li>
<li>Universities or private schools that offer classes for learning Adobe tools and Internet programming languages</li>
<li>Free courses offered by the National Employment Institute or similar organizations</li>
<li>Self-taught (<strong>recommended</strong>). Research and study based on books and other documents taken from the Internet</li>
</ul>
<p><strong>Web design awards</strong></p>
<p>They are a great source of inspiration and learning. Although it is not a very legal practice, from an educational point of view, it can be interesting to de-compile (reverse engineer) some projects extracted from the following pages for study and learning.</p>
<p><a href="http://www.thefwa.com/">www.thefwa.com</a>, <a href="http://www.e-creative.net/">www.e-creative.net</a>, <a href="http://www.fcukstar.com/">www.fcukstar.com</a>, <a href="http://www.dopeawards.com/">www.dopeawards.com</a>, <a href="http://www.websitedesignawards.com/">www.websitedesignawards.com</a>, <a href="http://www.internettinyawards.com/">www.internettinyawards.com</a>, <a href="http://www.creativecream.com/">www.creativecream.com</a></p>
<p><strong>Links to web development communities</strong></p>
<p>Undoubtedly, it is highly advisable to participate in some social community on the Internet. Here is a list of sites related to web design in Flash (Actionscript), Ajax and PHP.</p>
<p><a href="http://www.senocular.com/">www.senocular.com</a>, <a href="http://www.kirupa.com/">www.kirupa.com</a>, <a href="http://www.actionscript.org/">www.actionscript.org</a>, <a href="http://www.cristalab.com/">www.cristalab.com</a>, <a href="http://www.joangarnet.com/blog">www.joangarnet.com/blog</a>, <a href="http://www.joangarnet.com/blog">www.joangarnet.com/blog</a>, <a href="http://www.flashla.com/">www.flashla.com</a>, <a href="http://www.senocular.com/">www.senocular.com</a>, <a href="http://www.sephiroth.it/">www.sephiroth.it</a>, <a href="http://www.after-hours.org/blog">www.after-hours.org/blog</a>, <a href="http://www.carlosrovira.com/blog">www.carlosrovira.com/blog</a></p>
<p><strong>Software:</strong></p>
<p>Below is a list of the most common tools for web development and design. You don&#39;t need to know all of them to be able to work. The industry is increasingly looking for professionals specialized in a particular tool.</p>
<ul>
<li>Graphic, audiovisual and 3D design: Adobe Creative Suite (CS3) and its following versions... Flash, Photoshop, Fireworks, Illustrator, aftereffects, premiere, Corel Draw, Ulead Photoimpact, Swish, Swift 4d, final cut pro, sound forge, Maya, 3D Studio, DVD layout, etc</li>
<li>Basic programming: (x)HTML, DHTML, JavaScript, CSS, ActionScript, CGI, PHP, SQL, Perl, ASP, XML, VBScript, WAP</li>
<li>Advanced programming: ActionScript 3, RubyOnRails, Ajax, WPF, Perl, JAVA (J2EE), C++, VRML, Pyton, Remoting, Coldfusion, Flash Media Server</li>
<li>Development platforms: Flex, Apollo, .Net, Eclipse, MDM Zinc, Dreamweaver, Frontpage, Expression, Visual Studio</li>
<li>On-line tools: Unix/Windows web server management, control panels (plesk, cpanel), Google applications (adsense, adwords, analytics, webmaster tools), Domain registration (Nameservers, Registars,...), Payment platforms (Paypal, Bank gateways, ...), DOM Inspector and Firefox plugins, CMS (WordPress, Drupal, Mambo, PHP-Nuke, Joomla), Forums (phpbb, vBulletin), etc</li>
<li>Other required software: FTP clients, Pando, Microsoft Outlook, Excel, instant messaging programs, text editor, Sothink SWF Decompiler, Firefox, Opera, Internet Explorer, Apache, PHP interpreter, MySQL Server, etc</li>
</ul>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/hey-i-want-to-be-web-designer/images/web-design.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Multigadget for Windows Vista]]></title>
            <link>https://www.joanmira.com/blog/multigadget-for-windows-vista</link>
            <guid>https://www.joanmira.com/blog/multigadget-for-windows-vista</guid>
            <pubDate>Thu, 29 Mar 2007 00:00:00 GMT</pubDate>
            <description><![CDATA[Free Windows Vista sidebar application to search for web domains]]></description>
            <content:encoded><![CDATA[<p>I present the &quot;Multigadget&quot;, a free application for the Windows Vista sidebar that aims to gather small applications of great utility such as a domain search engine with information about the registrant (whois) and a calculator.</p>
<p>My goal is to update this gadget weekly with new features so that we can have as many applications in as little space as possible. If you have any suggestions or requests for the next multigadget updates, you can send them to me by email.</p>
<p>For its correct operation, it is necessary to have installed the Flash 8 plugin (it would be strange if you still don&#39;t have it installed...).</p>
<p>You can download it from <a href="http://gallery.live.com/LiveItemDetail.aspx?li=9f0a2d36-a67e-497d-b11e-16a8f396b0f5">Windows Live Gallery</a></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/multigadget-for-windows-vista/images/gadgets_grmp3x.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Send automatic backups to another server with Cpanel and PHP]]></title>
            <link>https://www.joanmira.com/blog/send-automatic-backups-to-another-server-with-cpanel-and-php</link>
            <guid>https://www.joanmira.com/blog/send-automatic-backups-to-another-server-with-cpanel-and-php</guid>
            <pubDate>Mon, 29 Jan 2007 00:00:00 GMT</pubDate>
            <description><![CDATA[How to automatically backup a web hosting account]]></description>
            <content:encoded><![CDATA[<p>If someone is interested in the possibility of backup his web hosting account automatically (with Cron jobs) and sending the backup to another web hosting account, then read on...</p>
<p>Copy the following code to a file called (for example) <code>fullBackup.php</code>, change the values of the variables and send it to a folder in your account. You can put it in <code>public_html</code>, but ideally in a hidden folder. Then, you need to create a cron job, specifying the address of the created file (example: <code>/home/user/public_html/fullbackup</code>.php) and the execution interval of the script.</p>
<pre><code class="language-php">// PHP script to allow periodic cPanel backups automatically.
// Based on script posted by max.hedroom in cpanel.net forums
// Additions by Zap at http://www.getrss.net/
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE!
// ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED *********
// Info required for cPanel access
$cpuser = “”; // Username used to login to CPanel
$cppass = “”; // Password used to login to CPanel
$domain = “”; // Domain name where CPanel is run
$skin = “x”; // Set to cPanel skin you use (script won’t work if it doesn’t match)

// Info required for FTP host
$ftpuser = “”; // Username for FTP account
$ftppass = “”; // Password for FTP account
$ftphost = “”; // Full hostname or IP address for FTP host
$ftppath = “//”; // Full path on FTP server to save files to
$ftpmode = “ftp”; // FTP mode (“ftp” for active, “passiveftp” for passive)

// Notification information
$notifyemail = “you@yoursite.com”; // Email address to send results

// Secure or non-secure mode
$secure = 0; // Set to 1 for SSL (requires SSL support), otherwise will use standard HTTP

// Set to 1 to have web page result appear in your cron log
$debug = 0;

// *********** NO CONFIGURATION ITEMS BELOW THIS LINE *********

if ($secure) {
  $url = “ssl://”.$domain;
  $port = 2083;
} else {
  $url = $domain;
  $port = 2082;
}

$socket = fsockopen($url,$port);
if (!$socket) { echo “Failed to open socket connection… Bailing out!n”; exit; }

// Encode authentication string
$authstr = $cpuser.”:”.$cppass;
$pass = base64_encode($authstr);

$params = “dest=$ftpmode&amp;email=$notifyemail&amp;server=$ftphost&amp;user=$ftpuser&amp;pass=$ftppass&amp;rdir=$ftppath&amp;submit=Generate Backup”;

// Make POST to cPanel
fputs($socket,”POST /frontend/”.$skin.”/backup/dofullbackup.html?”.$params.” HTTP/1.0rn”);
fputs($socket,”Host: $domainrn”);
fputs($socket,”Authorization: Basic $passrn”);
fputs($socket,”Connection: Closern”);
fputs($socket,”rn”);

// Grab response even if we don’t do anything with it.
while (!feof($socket)) {
  $response = fgets($socket,4096);
  if ($debug) echo $response;
}

fclose($socket);

?&gt;
</code></pre>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/send-automatic-backups-to-another-server-with-cpanel-and-php/images/cpanel_logo_qpb3ap.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Create PDF documents with PHP using FPDF]]></title>
            <link>https://www.joanmira.com/blog/create-pdf-documents-with-php-using-fpdp</link>
            <guid>https://www.joanmira.com/blog/create-pdf-documents-with-php-using-fpdp</guid>
            <pubDate>Tue, 23 Jan 2007 00:00:00 GMT</pubDate>
            <description><![CDATA[A great module to generate PDFs]]></description>
            <content:encoded><![CDATA[<p>I have found a very useful tool for web programmers that more than one may be interested in. It&#39;s called FPDF and it&#39;s free! Here is a list of its main features:</p>
<ul>
<li>Choice of the unit of measurement, page formatting and margins.</li>
<li>Header and footer management</li>
<li>Automatic page break</li>
<li>Automatic line break and text justification</li>
<li>Image support (JPEG and PNG)</li>
<li>Colors</li>
<li>Linking</li>
<li>TrueType, Type1 fonts and encoding support</li>
<li>Page compression</li>
</ul>
<p>The <a href="http://www.fpdf.org/es/tutorial/index.php">tutorials</a> will get you started quickly with FPDF. The complete online documentation can be found <a href="http://www.fpdf.org/es/doc/index.php">here</a> and the download area <a href="http://www.fpdf.org/es/download.php">here</a>.</p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/create-pdf-documents-with-php-using-fpdp/images/fpdf_m9jdxw.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[INMOFlash and TIENDAFlash]]></title>
            <link>https://www.joanmira.com/blog/inmoflash-and-tiendaflash</link>
            <guid>https://www.joanmira.com/blog/inmoflash-and-tiendaflash</guid>
            <pubDate>Sat, 28 Oct 2006 00:00:00 GMT</pubDate>
            <description><![CDATA[We have created two new applications focused on SMEs interested in selling online.]]></description>
            <content:encoded><![CDATA[<p>After several months of development, we offer our customers version 1.0 of INMOFlash and TIENDAFlash. INMOFlash is a web application that contemplates all the needs of the real estate company to make itself known and promote its services on the Internet. The application consists of the following modules:</p>
<h3 id="inmoflash---website">INMOFlash - Website</h3>
<ul>
<li><p>A graphic interface that incorporates a real estate search engine.</p>
</li>
<li><p>Personalized corporate image</p>
</li>
<li><p>Contact form for clients</p>
</li>
<li><p>Corporate sections (Who we are, where we are, etc.)</p>
</li>
<li><p>INMOFlash - Administration panel</p>
</li>
<li><p>Complete property management (insert, modify, delete)</p>
</li>
<li><p>Complete management of locations and types of properties</p>
</li>
<li><p>Infinite photos per property</p>
</li>
<li><p>User management</p>
</li>
<li><p>Configuration options</p>
</li>
<li><p>Technical support</p>
</li>
</ul>
<p>See an <a href="/work/proyecto2025">example of a web page with INMO Flash</a></p>
<p>TIENDAFlash is a web application that contemplates all the needs to set up an online store. The application consists of the following modules:</p>
<h3 id="tiendaflash---website">TIENDAFlash - Website</h3>
<ul>
<li><p>Graphical interface that incorporates product search engine.</p>
</li>
<li><p>Personalized corporate image.</p>
</li>
<li><p>Private customer area.</p>
</li>
<li><p>Product description with infinite images, descriptions, models, brands, etc.</p>
</li>
<li><p>Payment gateway (Paypal or bank).</p>
</li>
<li><p>Shopping cart</p>
</li>
<li><p>TIENDAFlash - Administration panel</p>
</li>
<li><p>Complete product management (insert, modify, delete).</p>
</li>
<li><p>Complete management of customers and sales.</p>
</li>
<li><p>Configuration options.</p>
</li>
<li><p>Technical support.</p>
</li>
</ul>
<p>See an <a href="/work/nosurrender">example of a web page with TIENDA Flash</a></p>
]]></content:encoded>
            <enclosure url="https://www.joanmira.com/blog/inmoflash-and-tiendaflash/images/inmoflash_pc7u7h.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>