April 5, 2011

Gerações

Posted in Uncategorized at 8:53 pm by sagito

Ao contrário das restantes entradas deste blog, sinto que esta história deva ser contada em português…

Hoje na rua tive a oportunidade de ouvir uma conversa entre dois senhores, certamente com não muito mais de 55 anos, que falavam sobre política. “É certo que estamos na crise mais grave de sempre”, dizia um… “A culpa é desta juventude ignorante, estúpida e irresponsável que só quer discotecas e copos, só pensa em comprar coisas e depois deixa as coisas neste estado! Não sabem poupar estes jovens bestas de agora.”, respondeu o outro.

Serve este post para relembrar todos os que pensam assim, que os da minha geração e os mais jovens que eu, a chamada “juventude”, acabam de entrar para o mundo de trabalho. Mundo esse no qual muitos de nós não têm oportunidade de receber pelo esforço que dedicam e pelo trabalho que fazem. No qual muitos de nós passaram anos e anos a estudar, para ter um curso superior, para poderem ir para as caixas dos supermercados. No qual muitos veem-se obrigados a sair do país onde nasceram para encontrar trabalho e estabilidade em outros países onde haja bom senso. No qual toda a gente lhes tira a esperança e diz: “Isto só vai piorar”. A todos vocês que pensam como o senhor que hoje falava na rua, quero-vos lembrar: A culpa é toda vossa!

Porque a minha geração só agora está a contactar com o mundo de trabalho. Aquele mundo que vocês destruiram. Os da vossa geração, não os da minha. Somos nós, e não vocês, que vamos levar com as consequências do vosso comportamento depravado e inconsequente. Porque somos nós que neste momento estamos a tentar remendar os erros cometidos pela geração dos nossos pais. E porque é que temos que ser nós a corrigir os vossos erros, resultantes dos vossos delírios de grandeza, quando devia ser o contrário? Não deviam ser os pais a corrigir e educar os filhos? Porquê fazer esta situação mais grave e difícil do que já é? Porque é que temos que ser nós, a geração “rasca e besta, que só vive do consumismo, que não sabe poupar” a resolver não só o problema que vocês criaram mas também a lutar por um futuro que vocês destruiram?

E atenção… Não pretendo falar das poucas pessoas da geração dos nossos pais que ainda mantêm o bom senso. Considero que tive uma educação muito boa e agradeço por nunca me ter faltado nada. Conheço muita gente dessa faixa etária que merece todo o meu respeito e que sei que se solidarizam com a situação actual em que estamos. Mais ainda, que pretendem ajudar-nos a resolve-la. Falo apenas aqui dos imbecis que trabalharam durante meia dúzia de anos em empresas públicas ou pseudo-públicas, que tiraram a reforma antecipada muito antes de todos os outros que têm que trabalhar uma vida inteira para conseguirem pôr comida na mesa para os filhos, que recebem pensões altissímas (a roçar o escandaloso) do estado… E que ainda assim, passam o dia todo sentados a dizer que o governo não presta, a criar powerpoints e encher o nosso email de spam revolucionário, a dizer que a geração dos jovens de hoje não vale nada, que não têm pena nenhuma de nós e que não temos solução.

A todos vocês volto a relembrar: A culpa é toda vossa! Só vossa e de mais ninguém. Vocês são os culpados pela fome dos vossos filhos e mesmo assim viram a cara e dizem: “Não quero saber, a culpa é tua!”. Nunca será possível mudar nada até que vocês abram os olhos e vejam o poço para onde nos atiraram. Assumam as culpas! Falam de responsabilidade, mas não a têm, não a querem usar. Atiram-nos com medo à cara, tiram-nos a esperança… Será que são vocês que têm medo de abrir os olhos e ver que destruíram o futuro dos que se seguiam?

E agora esperam o quê? Que vos agradeça? Obrigado então… Obrigado por nos terem mostrado que afinal a vida é ainda mais complicada do que parecia. Obrigado por nos fazerem ter que crescer tão rápido. Mas sobretudo, obrigado por nos voltarem a dar a sensação de que somos capazes e de que se queremos lutar um futuro, não poderemos contar convosco, mas apenas connosco. Obrigado sobretudo por nos fazerem sentir que fomos traídos e que vamos saber responder a isso. Obrigado por nos fazerem sentir que somos capazes de vos ensinar o que é trabalhar a sério, governar, ter sonhos e querer ter uma vida. Obrigado então, se é isso que esperavam ouvir.

Sem mais de momento, e a todos vocês que pensam isto, tais como os senhores na rua e que nos puseram aqui, deixo-vos o meu mais profundo nojo…

August 15, 2009

Holidays!

Posted in Uncategorized tagged , , , , , , , at 11:17 am by sagito

Hi everyone… This post is to inform that the blog will not be receiving updates during the next 15 days because… I’m going on holidays! 😀 My destinations include Algarve, Africa and Barcelona!

Promise that I’ll be posting some news as soon as I get back here… 😉

July 12, 2009

Burn my shadow!

Posted in Uncategorized tagged , , , , , , , at 5:56 pm by sagito

Hi again! I think my network is definitely back! 😀 I’m posting today a different type of music… Not quite the genre I prefer the most, but it is still a great music. However, my attention falls on the video which is absolutely amazing! The combination of music and video gives it a tense atmosphere that I find fascinating!

I think you will like it too… 😉 Unkle – Burn my shadow

July 7, 2009

Textures!

Posted in Uncategorized tagged , , , , , , , , , , , , at 12:06 am by sagito

After a long, long day of work, I’m proud to announce that the Conspiracy Engine now feature textures (finally)! Well, textures do not use to be such a pain, why did it took so long this time? The answer is quite simple… When exporting the object data, 3D Studio Max exports the (X,Y,Z) vertex data and the (U, V, W) texture coordinate data. However, I was surprised to see that I had 8 vertices in my object and 12 sets of texture coordinates… Well, this made sense, because a vertex shared between edges may hava different texture coordinates along each face!

The problem is that 3DS does not keep any kind of relation between one vertex and its texture coordinates. So, we must first ask the face which vertices and which texture coordinates it uses and only then attempt to relate both these kinds of vertices. I could have done this the easy way by just ignoring repetitions of vertices and letting DirectX handle the optimizations. Of course that I chose not to…

So, I had to create two auxiliar data structures to aid me: An Hash Table (with customizable rehashing) and a Pair. With the Hash Table I was now able to set keys for each vertex individually, thereby removing repeated indices and vertices with ease! The Pair was just a helper utility that I used to handle some data more easily. However, I think that these structures will prove worthy in the future, as they did now! 😀

Well, here is the actual result from all this work:

textured

Tomorrow I will be working with collisions, although that should be a pretty simple matter to handle… 😉 As promised, I will be keeping you posted!

July 6, 2009

About Microsoft’s Live Mesh

Posted in Uncategorized tagged , , , , , , , , , , at 12:03 pm by sagito

Not long ago I found out about this new Microsoft product called Live Mesh. The idea was appealing, if you have some data that you want to synchronize between your computers (PC or Mac) or even with your mobile phone, then you just had to install the Live Mesh client, sign in for a Windows Live ID account and it’s ready to use. Microsoft synchronized data among the computers and mobile phones and also with a Remote Desktop which is located somewhere in some Microsoft server and has a 5GB storage space.

At first this seemed like an amazing idea! Was it really? Of course not!

As soon as I heard about this Mesh thing, I installed the Live Mesh Client thing in both my desktop and my laptop. As I was working in a project that used a SVN repository, I wanted to synchronize the SVN local folder between my desktop and my laptop automatically to avoid having to do a SVN update on both computers every time I changed something. Live Mesh looked like a great option for that!

However, one beautiful day, the SVN just crashed in my laptop while updating. Then, as usual, the .svn folder became corrupted, the cleanup wouldn’t work and so, I had to delete the whole folder and perform a complete checkout again. Problem is, that when I deleted everything that was inside the folder, Live Mesh synchronized and deleted everything on both the Remote Live Desktop and in my desktop. Well, that kinda makes sense, because I actually wanted to delete the whole project, right? The problem comes when I do a new full project checkout… For some stupid reason, as the new files were being downloaded from the SVN, they were imediately deleted by Live Mesh! Why? Because it synchronized with the desktop and the Remote Live Desktop and decided that those files should definitely NOT be there… And this would happen everytime I did a checkout, so if I kept Live Mesh working I would have lost the entire project. Thank you Microsoft!

But you may say that this happened because this is a beta version! Oh c’mon, this is a problem that is too serious to be left undetected and released to the public! Either this reveals an amazing lack of testing or an amazing ammount of naiveness…

However, this is not the only problem… When you install the Live Mesh client,  your computer is automatically open to Remote Desktop Connections (RDC). With a RDC you can control your computer over the internet and perform any action that you would do if you had physical access to the machine. Of course that this feature should only be enabled when its really necessary because it represents a serious security issue… But Mesh does not even ask! It just opens the RDC and controls it as it wishes… The access is locked to your Windows Live ID account, of course, but… What if your Windows Live ID is stolen/hacked?

Not only do you lose control of your MSN, Hotmail, etc. but also to your computers now! Every single one that is connected to the Live Mesh! This is too serious to be put aside, and as far as I know, I refuse to use Live Mesh until this is solved! Once again, thank you Microsoft for making me lose my time and work!

July 4, 2009

Kiwi!

Posted in Uncategorized tagged , , , , , , , , at 10:30 pm by sagito

This time, I’m bringing you something quite different! Kiwi is a short CGI film, created in Maya, that tells the story of a Kiwi Bird who wanted to fly. The graphics aren’t wonderful, but fit pretty well in the overall look of the movie. However, that can be easily forgotten due to the wonderful (although sad) story behind it and to the great animations.

Just loved this video, hope you also will:

June 22, 2009

Prototype Puzzle Site

Posted in Uncategorized tagged , , , , , , , at 11:18 pm by sagito

After some (somehow simple) work, I managed to get my first prototype working. The site can be easily parameterized through the new piece’s configuration file. To ease my work, I prefered to avoid using XML and created a rather simple syntax, somewhat similar to a scene graph which describes the data to be transfered to the page.

On to the results, the basic page looks like this:

Basic site

This page’s class inherits directly from the Piece class, which searches for configuration files on every page_load and saves the new data internally. So, I created a small configuration file, as follows:

{news}
<ul>
<li><a href=”#”>Puzzle system is now working!</a></li>
</ul>
{/news}

When I refresh the page, the content is automatically updated, and it is now as follows:

news

So, I decided to try out something different and also customize the top menu, and so, I fed the piece a new configuration file with the following:

{menu}
| <a href=”http://www.google.com”>Google!</a&gt; |
<a href=”https://sagito.wordpress.com”>Tiago’s Blog</a>
{/menu}
{news}
<ul>
<li><a href=”#”>Puzzle system is now working!</a></li>
</ul>
{/news}

Ready, we have a different menu on-the-fly, as shown below:

menu

Thought this could be useful for when a piece wants it’s place in the top menu! 😉 So, what must a normal page do in order to implement this architecture, so far? Very simple:

  1. Inherit the Piece class
  2. Call the Piece constructor with the Piece name. For example (from within a constructor): public _Default() : base(“Main Page Piece”) {}
  3. Get the desired information through getInfoNodeByName(string node). For example: InfoNode news = getInfoNodeByName(“news”);
  4. Fill the desired fields with this information. 🙂

And it is ready to use! However, many os these steps are very complicated and should be automatic. Also, a piece must also generate automagically the configuration/data files, which are still created manually.

So, expect further updates very soon! 😀

June 20, 2009

Welcome to my new blog!

Posted in Uncategorized at 11:00 am by sagito

Before anything else, welcome to my new blog!

In this blog, I will post the latest news of some of the projects I’m envolved with and present some information about the technologies I’m using and brief tutorials about some steps I’m taking. I’m currently working in some projects within the most distinct areas of the computer science, which include Web Applications, Software Patterns, Computer Graphics, Database Systems, Safety Critical Systems, etc…

Also, I intend to include in this blog some news about the most recent technologies, games, software development tools (such as API’s, game engines, frameworks, etc…), interesting scientific articles and so on…

I hope you will like… 🙂