<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9711045</id><updated>2012-02-11T08:56:55.011-05:00</updated><category term='install'/><category term='bioshock'/><category term='Python'/><category term='Queue'/><category term='blocks'/><category term='bake'/><category term='atari infesa computer fabian mejia'/><category term='list'/><category term='web'/><category term='7.10'/><category term='Source Control'/><category term='fallout 3'/><category term='Traicionera'/><category term='turtoise'/><category term='Mel'/><category term='Studio'/><category term='sdl'/><category term='Maya'/><category term='half life 2'/><category term='entity'/><category term='Open'/><category term='C++'/><category term='Maya 2008'/><category term='dell'/><category term='Version'/><category term='Valve'/><category term='detection'/><category term='mouse'/><category term='for'/><category term='excel'/><category term='Source'/><category term='lightwave 3D'/><category term='opengl'/><category term='Chrome'/><category term='sdk'/><category term='comparison'/><category term='shift'/><category term='browser'/><category term='1520'/><category term='video'/><category term='windows'/><category term='3'/><category term='glut'/><category term='code'/><category term='vector'/><category term='Collision'/><category term='2008'/><category term='Tropico'/><category term='broken'/><category term='Adobe'/><category term='xml'/><category term='vs'/><category term='logical'/><category term='Plugin'/><category term='speed'/><category term='polytope'/><category term='cienaguera'/><category term='Premiere'/><category term='wizard'/><category term='inspiron'/><category term='internet explorer'/><category term='Hammer'/><category term='programming'/><category term='tutorial'/><category term='sqlite'/><category term='Visual'/><category term='CVS'/><category term='card'/><category term='memory'/><category term='flobots handlebars'/><category term='game'/><category term='Shaggy'/><category term='8600'/><category term='server side'/><category term='visual studio'/><category term='bluetooth'/><category term='NFS'/><category term='Firefox'/><category term='cumbia'/><category term='3D'/><category term='sql'/><category term='gprof'/><category term='STL'/><category term='pyramid'/><category term='Linux'/><category term='feel the rush'/><category term='Plug-in'/><category term='mod'/><category term='ubuntu'/><category term='Need'/><category term='nvidia'/><category term='vista'/><category term='subversion'/><category term='svn'/><title type='text'>Fabian Mejia</title><subtitle type='html'>&lt;p align="right"&gt;&lt;i&gt;"Computer is a serious tool, Michael"&lt;/i&gt;&lt;/p&gt;
&lt;p align="right"&gt;KITT&lt;/p&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9711045.post-1595851354464457289</id><published>2011-09-26T11:19:00.003-05:00</published><updated>2011-09-26T11:46:54.891-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='bake'/><category scheme='http://www.blogger.com/atom/ns#' term='dell'/><category scheme='http://www.blogger.com/atom/ns#' term='1520'/><category scheme='http://www.blogger.com/atom/ns#' term='broken'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='card'/><title type='text'>nvidia Cookies</title><content type='html'>Last week I was re-installing Windows Vista in my wife's Dell Inspiron 1520.&lt;div&gt;Everything was going well, when suddenly the screen was showing random pixels on the screen. I experienced the same issue few years ago when my favorite machine start showing the same pattern. It starts with few pixels, then you can barely understand what's going on in the desktop and finally screen becomes black or the computer restarts itself.&lt;/div&gt;&lt;div&gt;At that time the only solution was to throw my precious to the trash can (I am talking about the PC!). It was already old and almost impossible to find spare parts that will cost less than a new computer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was concerned that the faith of my wife's computer will be the same. We tried different things, like disabling some hardware in the BIOS and running RivaTuner to try to keep the GPU cool by "underclocking it".&lt;/div&gt;&lt;div&gt;As expected, nothing actually worked. The machine was behaving worst and worst.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After some research I found that it was possible to "bake" your video card in order to reconnect broken electrical connections. Several guides were available but the following video explains plain and clear how to do it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/vpzpNI7EBa0" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The most difficult part is just to disassemble the computer. Fortunately DELL made public the document with these details [&lt;a href="http://support.dell.com/support/edocs/systems/ins1520/en/sm/index.htm"&gt;Dell 1520 Service Manual&lt;/a&gt;]. Of course it's not exactly straightforward, and you will need to unmount several parts to access the video card.&lt;/div&gt;&lt;div&gt;After you have the card at hand, you must separate it from the cooling system. I was a little bit afraid because the Cooling paste sticks very hard both parts, so you actually feel like if you break the video card, but don't worry, everything should be fine.&lt;/div&gt;&lt;div&gt;Then follow video directions: Bake the video card for 10 minutes at 200 Celsius. You will the effect because it will start smelling like "solder". Yummy!! It means your nvidia cookie is almost ready.&lt;/div&gt;&lt;div&gt;Assemble the whole guts and with some luck and magical dust your machine will come back to life.&lt;/div&gt;&lt;div&gt;I forgot to mention that this procedure worked 100% for me. &lt;/div&gt;&lt;div&gt;If you have some thoughts or questions, feel free to comment here.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-1595851354464457289?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/1595851354464457289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=1595851354464457289&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/1595851354464457289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/1595851354464457289'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2011/09/nvidia-cookies.html' title='nvidia Cookies'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/vpzpNI7EBa0/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-6846472502927376412</id><published>2011-08-14T03:48:00.008-05:00</published><updated>2011-08-15T13:08:52.884-05:00</updated><title type='text'>My First Game Program</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Although I don't have the original source code (It was done more than 24 years ago) and was programmed a little bit after starting computer classes in 6th grade  (Sept-1987) I think this piece of code resembles the "game".&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://2.bp.blogspot.com/-Zuqn7AlsAqg/TklZJGM2hwI/AAAAAAAAAP8/xiJ6LUc-YR0/s400/gameList.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5641138021076469506" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 209px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This game is a guess-the-number kind. Pretty simple but rewarding. For the first time I found that such a device "TRS-80" could be nice source of income and make a living for my future.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://4.bp.blogspot.com/-6fT5wuKUkAc/TklZI1CRIJI/AAAAAAAAAP0/1NmK97URhuE/s400/gamerun.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 209px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5641138016468672658" /&gt;&lt;/span&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;There was a simple trick I used in this game to always beat my friends (although game was not exciting and they got bored after couple minutes) and complete it in less attempts. I guess you already know how to solve it (log2(100))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;1 Year later I learnt how to get some money from my school friends by doing their programming homework. &lt;/span&gt;&lt;/span&gt;At that time very few people was interested in computers and programming (moreover when you are 12 years old).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-6846472502927376412?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/6846472502927376412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=6846472502927376412&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6846472502927376412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6846472502927376412'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2011/08/my-first-game-program.html' title='My First Game Program'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Zuqn7AlsAqg/TklZJGM2hwI/AAAAAAAAAP8/xiJ6LUc-YR0/s72-c/gameList.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-6326833177850295632</id><published>2010-06-06T01:00:00.003-05:00</published><updated>2010-06-06T01:29:45.745-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='3'/><category scheme='http://www.blogger.com/atom/ns#' term='Tropico'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Vamos a disflutal del tlopico friends!</title><content type='html'>&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt; Welcome to Tropico 3 ....&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;And I am Juanito!&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="center"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 225px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479542506193500994" border="0" alt="" src="http://3.bp.blogspot.com/_XriYlJDFQCg/TAs-4KVRO0I/AAAAAAAAAO8/tsh8NLA4AM8/s400/Tropico+3+-4.jpg" /&gt;[Don't let your Island become a Banana Republic]&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div align="justify"&gt;It looks like I've been playing lately a lot of games (I also have to mention that this weekend I just bought Dragon Age Origins, Splinter Cell Conviction and Split Second).&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;What I love of this game is how they take al the cliches from the Latin american people (more precisely people from the caribean countries) Although cliches, it's really close to the folklore in that region of the world. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;Being Latin American it's interesting that a Bulgarian developer team has really good knowledge of the caribean (Well maybe there are some latin guys in their development team).&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 225px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479542499859029106" border="0" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/TAs-3yvA3HI/AAAAAAAAAO0/kC-7bzI5wns/s400/Tropico+3+-7.jpg" /&gt;[Luisa ... I can't wait to see you]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;The music is also splendid both in quality and region-match. Lyrics are funny and ... eventhough I finished the game I still sing those songs in the streets (para ponerte ... para ponerte..... para ponerte mi apellido)&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;One drawback for this game is the lack of good tutorial. I had to play 4 times the first game to be able to understand all the economic and politics, and how they are linked to the behavior of the people. &lt;/div&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 225px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479542492903636066" border="0" alt="" src="http://4.bp.blogspot.com/_XriYlJDFQCg/TAs-3Y0t_GI/AAAAAAAAAOs/vYrA3ax7Lpc/s400/Tropico+3+-6.jpg" /&gt;&lt;br /&gt;&lt;div align="center"&gt;[Summer 1975, What a wonderful time]&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;From my personal point of view, this game a must. It's curious that although it's just a game, sometimes it's close to the reality of many latin american countries.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;After all it's really difficult to have everybody happy!!&lt;/div&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 225px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479542483706421218" border="0" alt="" src="http://4.bp.blogspot.com/_XriYlJDFQCg/TAs-22j7n-I/AAAAAAAAAOk/jOv9lBPyD1c/s400/Tropico+3+-5.jpg" /&gt;&lt;br /&gt;&lt;p align="center"&gt;[Juan ... you are close!]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-6326833177850295632?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/6326833177850295632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=6326833177850295632&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6326833177850295632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6326833177850295632'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2010/06/vamos-disflutal-del-tlopico-friends.html' title='Vamos a disflutal del tlopico friends!'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XriYlJDFQCg/TAs-4KVRO0I/AAAAAAAAAO8/tsh8NLA4AM8/s72-c/Tropico+3+-4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-2356736881419734825</id><published>2010-05-23T03:34:00.004-05:00</published><updated>2010-06-06T01:30:48.586-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='speed'/><category scheme='http://www.blogger.com/atom/ns#' term='NFS'/><category scheme='http://www.blogger.com/atom/ns#' term='for'/><category scheme='http://www.blogger.com/atom/ns#' term='Need'/><category scheme='http://www.blogger.com/atom/ns#' term='shift'/><title type='text'>Need For Speed Shift</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_XriYlJDFQCg/S_josQfBENI/AAAAAAAAAOc/SFfFO_Pimhs/s1600/NFS_Final.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 225px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5474381194105786578" border="0" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/S_josQfBENI/AAAAAAAAAOc/SFfFO_Pimhs/s400/NFS_Final.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;Last time I played and racing game was Need For Speed 3 (1998) and, correct me if I am wrong but that one was the best NFS ever.&lt;br /&gt;&lt;br /&gt;This version is more like a realistic racing simulation. Is not as fan as previous games, but I still enjoyed it. I have to accept that I played the game in easy but without the help of the brake. Even with that level, the game is not really easy.&lt;br /&gt;&lt;br /&gt;Graphics are amazing, and all details and effects look real. Also, cars are fully customizable, and you can upgrade and tunning most of the car features.&lt;br /&gt;There are two important features missing in this game: night and rain (or any other athmospheric effects) These are my favorite features, but this game lacks of them. I think they give different feeling and challenges to the game.&lt;br /&gt;&lt;br /&gt;Overall, if you like racing games and looking for a real driving challenge, this game is for you, but if you want something fun then play Dirt 2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-2356736881419734825?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/2356736881419734825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=2356736881419734825&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/2356736881419734825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/2356736881419734825'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2010/05/need-for-speed-shift.html' title='Need For Speed Shift'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XriYlJDFQCg/S_josQfBENI/AAAAAAAAAOc/SFfFO_Pimhs/s72-c/NFS_Final.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-2143241907216988268</id><published>2010-05-14T06:35:00.003-05:00</published><updated>2010-05-14T06:50:39.566-05:00</updated><title type='text'>World is not Flat!</title><content type='html'>I was having an interesting discussion with a fellow from "United States of America" regarding the "American Pizza". It's an old thing I have in my brain because "American" is not the correct term for people born in United States of America; "American" can be any person between Tierra del Fuego and the Bering Strait.&lt;br /&gt;So, how should we call them? I suggest "Unitedstatesians", although it sounds kinda stupid.&lt;br /&gt;&lt;br /&gt;Anyway, this discussion led to a better term "North American", but, wait a minute, Canada and Mexico are part of North America. North America is a subcontinent of America, as well as Central and South America, right? No! According to him, there's no such thing as Subcontinent, there are two different continents, one named North America and another one South America.&lt;br /&gt;&lt;br /&gt;Don't you believe me? Well search wikipedia and you will have the answer.&lt;br /&gt;But if you just follow my words, you are not a good researcher. This continent thing, believe or not, is dependent on the region, culture and language. Some people think there are 5 continents (as we learn in Latin America) some other think there are 6 and even 7 continents.&lt;br /&gt;&lt;br /&gt;Whether or not you believe there's such a thing like "South America Continent", next time you order a particular style of food just say "please Unitedstatesian Style."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-2143241907216988268?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/2143241907216988268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=2143241907216988268&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/2143241907216988268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/2143241907216988268'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2010/05/world-is-not-flat.html' title='World is not Flat!'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-5916876385797398409</id><published>2010-04-09T09:53:00.003-05:00</published><updated>2010-04-09T09:59:47.380-05:00</updated><title type='text'>Mass Effect 2 - Investigate</title><content type='html'>Long time without updating this page, but ... I got new computer! (Pics will be uploaded later)&lt;br /&gt;&lt;br /&gt;By now, I've been playing Mass Effect 2. It's a beautiful game. Both the games and the game play deserve to spend hours playing it. It took this nice picture from the game play .. curious, isn't it?&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/S79AkpuU3lI/AAAAAAAAAOU/zqwKP2riDPQ/s1600/ME2.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/S79AkpuU3lI/AAAAAAAAAOU/zqwKP2riDPQ/s400/ME2.jpg" alt="" id="BLOGGER_PHOTO_ID_5458152271815958098" border="0" /&gt;&lt;/a&gt;[Sure .. I can help]&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-5916876385797398409?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/5916876385797398409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=5916876385797398409&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/5916876385797398409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/5916876385797398409'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2010/04/mass-effect-2-investigate.html' title='Mass Effect 2 - Investigate'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XriYlJDFQCg/S79AkpuU3lI/AAAAAAAAAOU/zqwKP2riDPQ/s72-c/ME2.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-8751131842179120300</id><published>2009-01-08T06:00:00.000-05:00</published><updated>2009-01-08T06:00:01.142-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fallout 3'/><title type='text'>Fallout 3</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SWVNelXKcqI/AAAAAAAAANI/j1yEv3aidgI/s1600-h/ScreenShot7.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SWVNelXKcqI/AAAAAAAAANI/j1yEv3aidgI/s400/ScreenShot7.jpg" alt="" id="BLOGGER_PHOTO_ID_5288718525237195426" border="0" /&gt;&lt;/a&gt;Year has ended and so I finished playing Fallout 3. I enjoyed a lot this game.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/SWVNd9pCurI/AAAAAAAAAMo/_6kKdjYtnHs/s1600-h/ScreenShot1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SWVNd9pCurI/AAAAAAAAAMo/_6kKdjYtnHs/s400/ScreenShot1.jpg" alt="" id="BLOGGER_PHOTO_ID_5288718514574768818" border="0" /&gt;&lt;/a&gt;I have few thing to say about it. The story is well constructed and the environment is really cool. I've been before in D.C, and the post-apocalyptic landscape looks terrifying in Fallout 3.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/SWVNePm99YI/AAAAAAAAAMw/eTRhbK_tiuM/s1600-h/ScreenShot2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SWVNePm99YI/AAAAAAAAAMw/eTRhbK_tiuM/s400/ScreenShot2.jpg" alt="" id="BLOGGER_PHOTO_ID_5288718519397905794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SWVNeSsFRyI/AAAAAAAAANA/VbA_uCrvPdU/s1600-h/ScreenShot5.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SWVNeSsFRyI/AAAAAAAAANA/VbA_uCrvPdU/s400/ScreenShot5.jpg" alt="" id="BLOGGER_PHOTO_ID_5288718520224663330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Two things impression me: First, loading times. Game start pretty quick, and reloading a saved game or changing to a different level/screen is fast. Probably faster than any other game I've played lately. Second, graphics have the best quality you can find in 2008 games.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SWVNeF9A6DI/AAAAAAAAAM4/FABCUfJXwYE/s1600-h/ScreenShot3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SWVNeF9A6DI/AAAAAAAAAM4/FABCUfJXwYE/s400/ScreenShot3.jpg" alt="" id="BLOGGER_PHOTO_ID_5288718516806019122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As you can see above, characters are well detailed. I have to criticize that characters lack of emotion. They look the same when they are happy or sad, angry or laughing. This sometimes confuses the player, specially when you want to decide the next chat action.&lt;br /&gt;&lt;br /&gt;Playability is good and controls are easy to handle. The V.A.T.S feature give a different dimension to the game, turning battles into cinematic shots; even sounds seem to go in slow motion.&lt;br /&gt;&lt;br /&gt;Game is not really long (I was expecting more from the story) but as we are getting used to, expansions will be released. Puzzles are not difficult (Even I solved all of them) and they are entertaining.&lt;br /&gt;&lt;br /&gt;If you had time to play this excellent game, I hope you had the same feeling I had; if you don't ... what are you waiting to play it?&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-8751131842179120300?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/8751131842179120300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=8751131842179120300&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/8751131842179120300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/8751131842179120300'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2009/01/fallout-3.html' title='Fallout 3'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XriYlJDFQCg/SWVNelXKcqI/AAAAAAAAANI/j1yEv3aidgI/s72-c/ScreenShot7.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-8330788664746908902</id><published>2009-01-07T08:27:00.018-05:00</published><updated>2009-01-07T12:14:09.864-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlite'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Embedded database - SQLite</title><content type='html'>First of all .... H A P P Y      N E W        Y E A R ! ! !&lt;br /&gt;&lt;br /&gt;I whish you dear readers the best of all during this 2009 (Although It didn't start good in Middle East and Africa).&lt;br /&gt;&lt;br /&gt;-- Political crap start here --&lt;br /&gt;My whish for 2009 is that all religion Gods meet some day and kick some bad humans asses (i.e. Mr. B,  Mr. Ch and Mr. Uribe)!&lt;br /&gt;-- Political crap end here --&lt;br /&gt;&lt;br /&gt;When building applications, one of the main issues is the data storage. If you take a look at C++, persistence is not part of the specification so, use third party components. Serialization is a good way to convert objects directly to a binary data and saving in files or being transferred through a network.&lt;br /&gt;&lt;br /&gt;Building systems doesn't mean only storing data. Storing seem to be an easy task for C++ but, what about data management? That's a different subject and, if you want to administer data II can think of two ways:&lt;br /&gt;&lt;br /&gt;- Build your own code to read/write and manage files (add, remove, and link objects). Moreover, you have to create your own file format and data structures.&lt;br /&gt;&lt;br /&gt;- Use a relational database. If you are not aware of it, in most cases these databases need to be installed and take hundredths of megabytes in storage and take up system memory. Not to say that some require license and their price is high.&lt;br /&gt;&lt;br /&gt;Of course, relational databases are powerful, but they are targeted to applications with tons of data and mostly client-server applications.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SWTNte_UNoI/AAAAAAAAAMI/YFf69j-sC6Q/s1600-h/sqlite1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 68px;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SWTNte_UNoI/AAAAAAAAAMI/YFf69j-sC6Q/s400/sqlite1.JPG" alt="" id="BLOGGER_PHOTO_ID_5288578043736241794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Well, not everything is lost. Fortunately the open source development community is working hard to provide quality software for most needs.&lt;br /&gt;&lt;br /&gt;SQLite is one of the best relational-data management solutions to be embedded in your applications. Now you will say -Never heard of it ... is it really good? Has been tested? Is it used by any commercial package?- Take a look at this page and you will find some answers:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlite.org/famous.html"&gt;http://www.sqlite.org/famous.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SQLite uses the SQL (Structured Query Language) to manage data. If you already know SQL you are aware how useful this language is.&lt;br /&gt;&lt;br /&gt;Databases are stored in single cross-platform files. Meaning that if you need to backup your data or move it to a different machine, all you have to do is to copy/move this file. Being cross-platform means that you can move that file to any other os/hardware (i.e. from your embedded device to windows xp) without having to perform any conversion related to endianness.&lt;br /&gt;&lt;br /&gt;You can use it as a linked DLL or include the source code in your project.&lt;br /&gt;&lt;br /&gt;Before we continue, you have to create a database. SQLite includes a Command-line application to manage databases. This application can be found in the Download page.&lt;br /&gt;&lt;br /&gt;You can follow this link for a quick guide using the SQLite application:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlite.org/sqlite.html"&gt;http://www.sqlite.org/sqlite.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Method 1: Including Source Code&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is the easiest way to include SQLite in your project. All you have to do is download the source code (Please download the "Amalgamation" source) and include it in your project.&lt;br /&gt;I will use Visual Studio 2005 to show you how easy this can be accomplished.&lt;br /&gt;Create a new win32 console project without precompile headers.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XriYlJDFQCg/SWTaWx2VQOI/AAAAAAAAAMQ/ZzpHVAqncdY/s1600-h/sqlite2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 229px;" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SWTaWx2VQOI/AAAAAAAAAMQ/ZzpHVAqncdY/s400/sqlite2.JPG" alt="" id="BLOGGER_PHOTO_ID_5288591947313004770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Include the following files in your project:&lt;br /&gt;- sqlite3.c&lt;br /&gt;- sqlite3.h&lt;br /&gt;&lt;br /&gt;You can add the code in the quick introduction following this link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlite.org/quickstart.html"&gt;http://www.sqlite.org/quickstart.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In MS Visual Studio you will have to include also the stdlib in order to use the exit function. Otherwise you will get an error.&lt;br /&gt;and build the project.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Method 2: Linking to a DLL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First of all you have to download the shared library (there are versions for Linux and windows). It contains 2 files:&lt;br /&gt;- sqlite3.dll&lt;br /&gt;- sqlite3.def&lt;br /&gt;&lt;br /&gt;As you can see there's still missing the .lib and .h files.&lt;br /&gt;- The .h file can be obtained by downloading the source code from the SQLite downloads page.&lt;br /&gt;- the .lib file can be generated from the dll and the def files by using lib.exe command for visual studio. This will create the .lib file to be linked to your project. Lib command syntax is like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 255, 153);"&gt;     lib /DEF:sqlite3.def&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now you have all files to create the application. Create a new win32 console application project, without precompiled headers.&lt;br /&gt;&lt;br /&gt;Again, copy the code from the introduction and include the stdlib.h header.&lt;br /&gt;&lt;br /&gt;Finally, setup the linking library to the project:&lt;br /&gt;&lt;br /&gt;a. Set the .lib file location (directory)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SWTeDyjChPI/AAAAAAAAAMY/KSKi_khcc0M/s1600-h/sqlite3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 274px;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SWTeDyjChPI/AAAAAAAAAMY/KSKi_khcc0M/s400/sqlite3.JPG" alt="" id="BLOGGER_PHOTO_ID_5288596019129517298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;b. Add the .lib dependence to the project.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SWTeEKmDoLI/AAAAAAAAAMg/dZw8Kik9LkQ/s1600-h/sqlite4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 274px;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SWTeEKmDoLI/AAAAAAAAAMg/dZw8Kik9LkQ/s400/sqlite4.JPG" alt="" id="BLOGGER_PHOTO_ID_5288596025584623794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When you build the application, it should work with no issues.&lt;br /&gt;&lt;br /&gt;If you have tried both methods you will note that using a DLL will generate smaller code (about 40kb), but if you include the source code the file will grow up to (600kb). Both methods are valid it's up to you to decide which one to use.&lt;br /&gt;&lt;br /&gt;If you are working in an environment where you are sure that the dll is installed in the system or you are working with embedded devices, then I suggest the second method.&lt;br /&gt;&lt;br /&gt;I hope using SQLite improve your development cycle by reducing the effort in creating data management interfaces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-8330788664746908902?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/8330788664746908902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=8330788664746908902&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/8330788664746908902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/8330788664746908902'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2009/01/embedded-database-sqlite.html' title='Embedded database - SQLite'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XriYlJDFQCg/SWTNte_UNoI/AAAAAAAAAMI/YFf69j-sC6Q/s72-c/sqlite1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-9095970671730188033</id><published>2008-11-06T09:53:00.006-05:00</published><updated>2009-01-07T08:26:24.807-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server side'/><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Rotate text in Web Generated Excel File</title><content type='html'>There are many reasons to generate Excel files from your website, mainly generating data reports.&lt;br /&gt;As far as I know there are a couple of ways to generate Excel file from your web server regardless the platform:&lt;br /&gt;&lt;br /&gt;- Component Server Side: There are several server-side components available to create excel files. Moreover, if you have MS Excel installed in your computer you can create excel files without third-party components.&lt;br /&gt;&lt;br /&gt;-Client Side: If there's Excel installed in the client machine, a client vbscript can generate the file you need. I am not sure if it works under Firefox and, running client-side scripts can create a security hole in your system.&lt;br /&gt;&lt;br /&gt;- XML Server Side. One nice feature of excel is that you can generate an excel file without the need of a component. That is, you generate an HTML-like document with the appropriate header and it will be available in Excel.&lt;br /&gt;&lt;br /&gt;Well, this is just an introduction, not the subject of this post. I will focus on XML server side Excel file, but you will find several tutorials out there.&lt;br /&gt;&lt;br /&gt;A friend of mine asked me how to rotate a text in a generated Excel file using the technique above. She was using the following style properties to accomplish that in HTML:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 255, 153);"&gt;        writing-mode: tb-rl;&lt;/span&gt; &lt;span style="color: rgb(102, 255, 153);"&gt;        filter: flipv fliph;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately it doesn't work in the excel file. Although Excel accepts HTML styles (CSS) to decorate the cells itself, the code above won't make your code appear vertical.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SRMd-Fv03qI/AAAAAAAAALo/1AqZw1g4XJk/s1600-h/excel-rotate.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 192px;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SRMd-Fv03qI/AAAAAAAAALo/1AqZw1g4XJk/s400/excel-rotate.JPG" alt="" id="BLOGGER_PHOTO_ID_5265585341858111138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The following property will do the job if you want to rotate your text:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 255, 153);"&gt;&amp;lt;td style="mso-rotate:90;"&lt;/span&gt;&lt;span style="color: rgb(102, 255, 153);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(102, 255, 153);"&gt;I Rotate&lt;/span&gt;&lt;span style="color: rgb(102, 255, 153);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(102, 255, 153);"&gt;/td&lt;/span&gt;&lt;span style="color: rgb(102, 255, 153);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the property "mso-rotate:xx", specific to Microsoft products (mso) will rotate the text inside the cell (TD)&lt;br /&gt;&lt;br /&gt;It wont only allow you to rotate the text vertical, but using any angle. Some people will prefer smaller angles instead of 90 as they are more readable.&lt;br /&gt;&lt;br /&gt;If you want your Excel file look even better you should use "mso-" prefixed styles, they work like a charm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-9095970671730188033?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/9095970671730188033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=9095970671730188033&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/9095970671730188033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/9095970671730188033'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/11/rotate-text-in-web-generated-excel-file.html' title='Rotate text in Web Generated Excel File'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XriYlJDFQCg/SRMd-Fv03qI/AAAAAAAAALo/1AqZw1g4XJk/s72-c/excel-rotate.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-5632675113256095718</id><published>2008-10-18T17:37:00.014-05:00</published><updated>2008-10-18T19:59:39.592-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gprof'/><category scheme='http://www.blogger.com/atom/ns#' term='vector'/><category scheme='http://www.blogger.com/atom/ns#' term='Queue'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='STL'/><category scheme='http://www.blogger.com/atom/ns#' term='list'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Queues with STL</title><content type='html'>In this project, I was requested to build an application to manage Queues (something like the ones you find when you want to view the latest Blockbuster movie). OK, It sounds simple, use a STL queue.&lt;br /&gt;&lt;br /&gt;Unfortunately, this is not the whole requirement. Being a graphical application, it requested to refresh the screen from time to time showing all the items in the queue.&lt;br /&gt;&lt;br /&gt;After some research I was not able to find a way to access elements inside the queue, only the Front and Back elements were accessible [if this is possible, let me know]. So, I had to take a look at other containers in STL in order to be able to get the functionality with good performance.&lt;br /&gt;&lt;br /&gt;I have selected 4 containers to accomplish this task : Queue (Only to measure it's performance), Lists, Vectors and Deques.&lt;br /&gt;&lt;br /&gt;All of them included members to work like Queues:&lt;br /&gt;  - Queue: push(int), front(), pop()&lt;br /&gt;  - List: push_back(int), front() and pop_front()&lt;br /&gt;  - Vector: push_back(int), front() and erase(vector::begin())&lt;br /&gt;  - Deque: push_back(int), front() and pop_front()&lt;br /&gt;&lt;br /&gt;I performed 2 tests as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Pop and Push elements&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This test consisted of adding 50'000,000 integer elements to the end of the container, performing a sum of all elements starting from the first one and removing the First element (As a queue works).&lt;br /&gt;&lt;br /&gt;Compiling the application to allow profiling with &lt;span style="font-weight: bold;"&gt;gprof&lt;/span&gt;, I get the following results (Please note I resumed them):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt; i     %Time   self    Child                 name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[1]     98.2    0.00   16.76                 main [1]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     0.81    5.27       1/1 testList() [2]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     0.78    5.04       1/1 testVector() [3]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     0.88    1.75       1/1 testQueue() [6]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     0.73    1.50       1/1 testDeque() [7]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[2]     &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;35.6&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;    0.81    5.27       1 testList() [2]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[3]     &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;34.1&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;    0.78    5.04       1 testVector() [3]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[6]     &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;15.4&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;    0.88    1.75       1 testQueue() [6]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[7]     &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;13.1&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;    0.73    1.50       1 testDeque() [7]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As we can see from this results, the best performance was accomplished surprisingly by the Deque (honestly, I thought queues were better) followed by Queues and finally Lists and Vectors, which doubles the execution percent time of the other two.&lt;br /&gt;&lt;br /&gt;Why causes Lists and Vectors be that slow? Deeper analysis of the profile results shown that for Lists, most overhead is caused by adding elements to the end of the list (15.5%) and removing elements (12.6%). Getting the first element was really quick, only 2.7% of the whole execution time. Checking Vectors, overhead is caused by the function &lt;span style="font-weight: bold;"&gt;erase()&lt;/span&gt;, about (24.3%) of the total execution time.&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;It looks like vectors don't like to remove their elements. Accessing first element and adding was quick also (3.3%) and (2.8%) respectively.&lt;br /&gt;&lt;br /&gt;There's no much to say about Queues and Deques; their performance was similar, but deques outperform queues when removing elements (1.2%) vs (2.0%)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Go through the elements&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For this test, I will get rid of the insertion/removal of elements in the container as this will happen about 3-4 seconds. I will focus on iteration through the container to display all queue elements. 100 Elements will be added to the queue and system will iterate 500.000 times the whole list.&lt;br /&gt;Performing the application profiling the following results are obtained:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt; i     %Time   self    Child                 name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[1]     98.2    0.00    8.28                 main [1]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     0.71    2.38       1/1     testVectorIterate() [2]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     0.51    2.57       1/1     testDequeIterate() [3]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     0.66    1.39       1/1     testListIterate() [4]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     0.00    0.06       1/1     populate() [33]&lt;/span&gt;&lt;br /&gt;[2]     &lt;span style="font-weight: bold;"&gt;36.7&lt;/span&gt;    0.71    2.38       1         testVectorIterate() [2]&lt;br /&gt;[3]     &lt;span style="font-weight: bold;"&gt;36.5&lt;/span&gt;    0.51    2.57       1         testDequeIterate() [3]&lt;br /&gt;[4]     &lt;span style="font-weight: bold;"&gt;24.4&lt;/span&gt;    0.66    1.39       1         testListIterate() [4]&lt;br /&gt;&lt;br /&gt;From above results we can see that Iterating linearly the contained was performed faster by the List (24.4%) of the total execution time, followed by Deque (36.5%) and Vector(36.5%).&lt;br /&gt;&lt;br /&gt;As you can see  in previous example, although we were supposed to implement a Queue, the best option was not the Queue but the List, because, subtle in the requirements, the behavior we wanted was like a list and the bottelneck was not to pop or push elements but to go through them.&lt;br /&gt;&lt;br /&gt;From this analysis I can conclude that we can't guide only by the obvious (There's needed something like a Queue, ok, let's use a Queue). Critical areas of an application must be profiled carefully and memory checking tools must be used to ensured that not only the application runs faster but also manage properly resources.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-5632675113256095718?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/5632675113256095718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=5632675113256095718&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/5632675113256095718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/5632675113256095718'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/10/queues-with-stl.html' title='Queues with STL'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-2930651232029505070</id><published>2008-10-02T17:49:00.009-05:00</published><updated>2008-10-02T18:08:01.035-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blocks'/><category scheme='http://www.blogger.com/atom/ns#' term='sdl'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>code::blocks - OpenGL - SDL</title><content type='html'>After my previous post I decided to play with SDL and try to setup code::blocks with both OpenGL and SDL.&lt;br /&gt;I found it pretty simple (with code::blocks, so many things are easy, forget about gdb). Open your SDL project created previously, and set the link libraries as follow:&lt;br /&gt;(In case you are lost: project-&gt;Build Options-&gt;Linker Settings&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XriYlJDFQCg/SOVSBd8S_ZI/AAAAAAAAALc/afdJxK8L3iA/s1600-h/Screenshot-Project+build+options.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SOVSBd8S_ZI/AAAAAAAAALc/afdJxK8L3iA/s400/Screenshot-Project+build+options.png" alt="" id="BLOGGER_PHOTO_ID_5252694725568429458" border="0" /&gt;&lt;/a&gt;That's all, then you have to include the OpenGL headers or SDL headers:&lt;br /&gt;&lt;br /&gt;If you want to include only OpenGL files, you can do the following:&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;     #include &lt;gl style="color: rgb(51, 204, 0);" h=""&gt;&lt;/gl&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&amp;lt;GL/gl.h&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;     #include &lt;gl h=""&gt;&lt;/gl&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;gl h=""&gt;&lt;/gl&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&amp;lt;GL/glu.h&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SDL also includes a wrapper for OpenGL in the following file&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;      #include &lt;sdl_opengl.h style="color: rgb(51, 204, 0);"&gt;&lt;/sdl_opengl.h&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&amp;lt;SDL_opengl.h&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Both should work with code generated by the Template. I have to stop here. If you need more information you can find several tutorials about SDL and OpenGL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-2930651232029505070?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/2930651232029505070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=2930651232029505070&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/2930651232029505070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/2930651232029505070'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/10/codeblocks-opengl-sdl.html' title='code::blocks - OpenGL - SDL'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XriYlJDFQCg/SOVSBd8S_ZI/AAAAAAAAALc/afdJxK8L3iA/s72-c/Screenshot-Project+build+options.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-6394807870490998247</id><published>2008-09-28T15:54:00.019-05:00</published><updated>2008-10-01T17:05:42.411-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blocks'/><category scheme='http://www.blogger.com/atom/ns#' term='sdl'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='wizard'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='glut'/><title type='text'>code::blocks and OpenGL</title><content type='html'>Last time I used OpenGL was in a University project. By that time, I had to connect using telnet (and xterm, I think, but I barely remember) to a SUN sparc station running probably Solaris. I remember it was really exciting being able to view those simple 3D models on the screen and running in real time!&lt;br /&gt;&lt;br /&gt;Lately I was reading some DirectX 10 and sudendly I was wondering what happened to OpenGL? Did It die? Is it there any develoment going on? Surprisingly I found that these libraries are alive and well. It's been used in several platforms including the iPhone so ... you can imagine the future of a technology installed in more than 5 million of devices! (Also, this library is used in both PS 3 and wii (add some other million).&lt;br /&gt;&lt;br /&gt;After this brief introduction I decided to build a program under linux, c++ and OpenGL. The IDE of choice Code::Blocks. I used this IDE to build an embedded application so I recommend it. It runs really well with no complains.&lt;br /&gt;&lt;br /&gt;One cool thing I found is that Code::Blocks already includes templates to create OpenGL applications using GLUT or using OpenGL with direct access to the X windows libraries.&lt;br /&gt;&lt;br /&gt;Now, let's go to the practice. Select File-&gt;New-&gt;Project. This will pop up the following screen:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SOPrjTTD0NI/AAAAAAAAAK0/T0ImUWwJzVk/s1600-h/Screenshot-New+from+template.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SOPrjTTD0NI/AAAAAAAAAK0/T0ImUWwJzVk/s400/Screenshot-New+from+template.png" alt="" id="BLOGGER_PHOTO_ID_5252300582152294610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OpenGL Library with X-windows access:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OpenGL project is straightforward. You only have to follow the wizard. The project will be ready and you will be able to run it immediately:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/SOPsT9egB3I/AAAAAAAAALU/2SCd_WA0BmU/s1600-h/Screenshot-OpenGL+project.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SOPsT9egB3I/AAAAAAAAALU/2SCd_WA0BmU/s400/Screenshot-OpenGL+project.png" alt="" id="BLOGGER_PHOTO_ID_5252301418108290930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As you can see, the wizard is clear and people from code::blocks really did a great job! Below, you can see the simple program running. After finishing the wizard, I just hit F9, and Voila!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SOPrjedfHxI/AAAAAAAAAKs/u8WjehSobsg/s1600-h/Screenshot-main.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SOPrjedfHxI/AAAAAAAAAKs/u8WjehSobsg/s400/Screenshot-main.png" alt="" id="BLOGGER_PHOTO_ID_5252300585148817170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OpenGL Library using GLUT:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order yo have GLUT libraries (and of course, the code::blocks template) you will have to install the following packages:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XriYlJDFQCg/SOPrtkrbGnI/AAAAAAAAALE/cXJNMIg-ZnM/s1600-h/Screenshot-Synaptic+Package+Manager+-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SOPrtkrbGnI/AAAAAAAAALE/cXJNMIg-ZnM/s400/Screenshot-Synaptic+Package+Manager+-1.png" alt="" id="BLOGGER_PHOTO_ID_5252300758616578674" border="0" /&gt;&lt;/a&gt;Installing libxxf86vm from synaptics package Manager&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SOPrjsxudHI/AAAAAAAAAK8/lpqvBNPUq_8/s1600-h/Screenshot-Synaptic+Package+Manager+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SOPrjsxudHI/AAAAAAAAAK8/lpqvBNPUq_8/s400/Screenshot-Synaptic+Package+Manager+.png" alt="" id="BLOGGER_PHOTO_ID_5252300588991804530" border="0" /&gt;&lt;/a&gt;freeglut3 being selected in Synaptics Manager&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Please note I have installed the freeglut version of GLUT. You can see in the screen above the following message: "This package has been replaced by freeglut3'. Hmm, It looks like there are some restrictions in the GLUT license. (and glut seem to be out of date).&lt;br /&gt;&lt;br /&gt;With these packages installed you can run code::blocks and go through the GLUT wizard.&lt;br /&gt;&lt;br /&gt;First step is to let code::blocks where is GLUT installed. Usually all installed libraries in Linux are located in /usr.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/SOPrjMhrC8I/AAAAAAAAAKc/Ou8mrvBbhIA/s1600-h/Screenshot-GLUT+project.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SOPrjMhrC8I/AAAAAAAAAKc/Ou8mrvBbhIA/s400/Screenshot-GLUT+project.png" alt="" id="BLOGGER_PHOTO_ID_5252300580334537666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Follow the wizard to create your project. Finish it and hit F9. Again, you will be able to see this cool screen: solid and wireframe models.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/SOPrjfjq7II/AAAAAAAAAKk/rH2kufuET8Y/s1600-h/Screenshot-GLUT+Shapes.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SOPrjfjq7II/AAAAAAAAAKk/rH2kufuET8Y/s400/Screenshot-GLUT+Shapes.png" alt="" id="BLOGGER_PHOTO_ID_5252300585443191938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And .. that's all by now.&lt;br /&gt;&lt;br /&gt;ps. I also suggest using SDL (Simple DirectMedia Layer). This library controls also Audio and Keyboard. You should install the following libraries in order to have SDL applications working:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SOPrtn2Y63I/AAAAAAAAALM/TJqB9kVFkf4/s1600-h/Screenshot-Synaptic+Package+Manager+-2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SOPrtn2Y63I/AAAAAAAAALM/TJqB9kVFkf4/s400/Screenshot-Synaptic+Package+Manager+-2.png" alt="" id="BLOGGER_PHOTO_ID_5252300759467879282" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-6394807870490998247?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/6394807870490998247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=6394807870490998247&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6394807870490998247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6394807870490998247'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/09/codeblocks-and-opengl.html' title='code::blocks and OpenGL'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XriYlJDFQCg/SOPrjTTD0NI/AAAAAAAAAK0/T0ImUWwJzVk/s72-c/Screenshot-New+from+template.png' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-1820713168130273384</id><published>2008-09-24T17:15:00.015-05:00</published><updated>2008-09-25T08:09:09.082-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='comparison'/><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='vs'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Web Browser memory comparison</title><content type='html'>That title may sound more detailed than it is. I just want to compare memory allocation from 3 popular web browsers I have installed on my machine: Internet explorer 6 (a little out of date), Mozilla Firefox 3.02 and Google chrome 0.2.&lt;br /&gt;All of them ran under the same machine (Windows XP professional). In order to be fair, same web pages were loaded, chosen randomly:&lt;br /&gt;www.elespectador.com (A local news paper)&lt;br /&gt;www.facebook.com (facebook? what's that?)&lt;br /&gt;&lt;br /&gt;I have to say before comparing those applications that Internet Explorer was the slowest browser followed by Firefox. The fastest one, chrome, but I have to say that I just installed it so there are no historic information, cookies, plugins, etc.&lt;br /&gt;Facebook did not run flawlessly in chrome, if you can verify, try to send a feedback. The "Send Feedback" link does not work in Chrome.&lt;br /&gt;Aestheticaly (although I think is somewhat subjective) Chrome has a best GUI, it's clean and simple. Unfortunatelly, Firefox is the ugliest one (I think this is because its relationship with Linux. I love linux, but it's ugly).&lt;br /&gt;&lt;br /&gt;Now let's see what Task Manager has to say:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SNrAUa0EsII/AAAAAAAAAIg/ZM3yiJc41KA/s1600-h/performance+1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SNrAUa0EsII/AAAAAAAAAIg/ZM3yiJc41KA/s400/performance+1.JPG" alt="" id="BLOGGER_PHOTO_ID_5249719772681384066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/SNrAlIaIE5I/AAAAAAAAAIo/-STyQ357ytw/s1600-h/performance+2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SNrAlIaIE5I/AAAAAAAAAIo/-STyQ357ytw/s400/performance+2.JPG" alt="" id="BLOGGER_PHOTO_ID_5249720059798492050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The two screens above show the number of processes and memory used by the applications:&lt;br /&gt;&lt;br /&gt;Chrome: 21,620k&lt;br /&gt;Chrome: 28,588k&lt;br /&gt;Chrome: 16,136k&lt;br /&gt;Chrome: 21,140k&lt;br /&gt;explorer: 31,044k&lt;br /&gt;explorer: 32,664k&lt;br /&gt;firefox: 56,952k&lt;br /&gt;&lt;br /&gt;4 processes for Chrome? hm there's something to explain here .... Indeed, Google created a booklet to explain us, the mortals, why this memory eater software does what it does: [&lt;a href="http://www.google.com/googlebooks/chrome/index.html"&gt;chrome&lt;/a&gt;]. Do you think they need to explain us that? Maybe I am wrong so I encourage you to post your opinions. Chrome will open a 20mb process for each page you want to visit. Anyway my system didn't seem to complain about that.&lt;br /&gt;&lt;br /&gt;I didn't want to add Internet Explorer because this version is not Tab Based but I will keep it just as a comparison.&lt;br /&gt;&lt;br /&gt;Firefox looks just better when checking the memory allocated for that process. It's smaller than Internet Explorer and there's a lot difference with Chrome (is it ok if I sum 21mb+28mb+26mb+21? It looks like a lot of memory).&lt;br /&gt;&lt;br /&gt;Now, I will close each application:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;This is the performance before closing.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SNrD7wD-08I/AAAAAAAAAIw/BMVQEUdlfsg/s1600-h/performance+3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SNrD7wD-08I/AAAAAAAAAIw/BMVQEUdlfsg/s400/performance+3.JPG" alt="" id="BLOGGER_PHOTO_ID_5249723746935034818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;After closing Chrome&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SNrERnL9VTI/AAAAAAAAAI4/dNWtNhH2NZA/s1600-h/performance+4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SNrERnL9VTI/AAAAAAAAAI4/dNWtNhH2NZA/s400/performance+4.JPG" alt="" id="BLOGGER_PHOTO_ID_5249724122509694258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After closing i.e.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XriYlJDFQCg/SNrER3o7BOI/AAAAAAAAAJA/UaK0eRsLz_w/s1600-h/performance+5.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SNrER3o7BOI/AAAAAAAAAJA/UaK0eRsLz_w/s400/performance+5.JPG" alt="" id="BLOGGER_PHOTO_ID_5249724126926144738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: center;"&gt;After closing Firefox&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SNrER-EUxAI/AAAAAAAAAJI/Hda7JLhRhDM/s1600-h/performance+6.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SNrER-EUxAI/AAAAAAAAAJI/Hda7JLhRhDM/s400/performance+6.JPG" alt="" id="BLOGGER_PHOTO_ID_5249724128651691010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Chrome PF Usage: 1.17 - 1.10 = 0.06GB&lt;br /&gt;i.e. PF Usage: 1.10 - 1.06 = 0.04GB&lt;br /&gt;Firefox PF Usage 1.06 - 1.01 = 0.05GB&lt;br /&gt;You can also check the Total Commit Charge (That is, the virual memory used by the processes)&lt;br /&gt;&lt;br /&gt;From these numbers I can say that Chrome uses more memory than the other two applications and, therefore it may slow your computer if you don't have enough phyisical memory. Maybe this can be a trade off between program stability and memory consumption. As you will know after reading the booklet, separate processes won't crash the whole browsing experience. Only the tab implicated may fail.&lt;br /&gt;&lt;br /&gt;Finally I have to add that both Firefox and Internet Explorer crashes in my system about one time a week (not that bad).&lt;br /&gt;&lt;br /&gt;p.s. Visiting Chrome home page I found that the latest version available is BETA although About box in my machine doesn't even mention that: 0.2.147.27, Official Build 1583.&lt;br /&gt;&lt;br /&gt;Comments and corrections are welcome.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-1820713168130273384?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/1820713168130273384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=1820713168130273384&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/1820713168130273384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/1820713168130273384'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/09/web-browser-memory-comparison.html' title='Web Browser memory comparison'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XriYlJDFQCg/SNrAUa0EsII/AAAAAAAAAIg/ZM3yiJc41KA/s72-c/performance+1.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-4792257537389688498</id><published>2008-06-24T21:22:00.050-05:00</published><updated>2008-12-10T20:41:44.025-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='entity'/><category scheme='http://www.blogger.com/atom/ns#' term='Source'/><category scheme='http://www.blogger.com/atom/ns#' term='sdk'/><category scheme='http://www.blogger.com/atom/ns#' term='logical'/><category scheme='http://www.blogger.com/atom/ns#' term='Hammer'/><category scheme='http://www.blogger.com/atom/ns#' term='Valve'/><category scheme='http://www.blogger.com/atom/ns#' term='half life 2'/><category scheme='http://www.blogger.com/atom/ns#' term='mod'/><title type='text'>Valve's Source - Part 3</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Authoring a Logical Entity&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This post is related to the second modding tutorial you can find [&lt;a href="http://developer.valvesoftware.com/wiki/Authoring_a_Logical_Entity"&gt;here&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;This is a very important tutorial as it's a real introduction to Mod programming in Valve's Source, and if you understand it you will be able to do more complex stuff.&lt;br /&gt;&lt;br /&gt;Exploring this tutorial is not clear what is it purpose or how can you test it. That's the purpose of this post, make it clearer. Please note, there's not a single example of how can you use the entity or where it can be useful. I will help on that.&lt;br /&gt;&lt;br /&gt;Go through the tutorial and, when you have completed the &lt;span style="font-style: italic;"&gt;Build &lt;/span&gt;process, go back to this post. I will just mention a couple of things may help you with this process.&lt;br /&gt;&lt;br /&gt;1. Although there's no mention about that, it's good if you start with the mod you just created in previous tutorial.&lt;br /&gt;&lt;br /&gt;2. the sdk_logicalentity file name can be any other, what really matters is the following line:&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;LINK_ENTITY_TO_CLASS( my_logical_entity, CMyLogicalEntity  );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Where you link the class you are creating to "my_logical_entity" label in the FGD file. This name is what you will see in Hammer&lt;br /&gt;&lt;br /&gt;Once code is built, you can start the process of adding the logical entity to your map. Create the FGD as suggested in tutorial, and let's proceed with the map.&lt;br /&gt;&lt;br /&gt;Now, open the Source SDK and double click the Hammer editor (Where you create the Levels). Before opening Hammer, make sure that under "Current Game", you have to select the Mod you have modified.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XriYlJDFQCg/SGRBgEeE-qI/AAAAAAAAAHM/3HvYNFSUMYE/s1600-h/ValveMod-21.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SGRBgEeE-qI/AAAAAAAAAHM/3HvYNFSUMYE/s400/ValveMod-21.jpg" alt="" id="BLOGGER_PHOTO_ID_5216366287613393570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now, you have to setup Hammer so you can use the logical entity by linking the FGD (with the entity description) to Hammer. Follow tutorial Instructions but, take a look at my screenshot. In &lt;span style="font-weight: bold;"&gt;Configuration&lt;/span&gt;, make sure you selected your Mod and, in &lt;span style="font-weight: bold;"&gt;Game Data Files&lt;/span&gt;, click on Add to add your FGD file. That's all. You are now ready to create your Level.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/SGRBgZCZaLI/AAAAAAAAAHU/FDpiuWpSQok/s1600-h/ValveMod-22.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SGRBgZCZaLI/AAAAAAAAAHU/FDpiuWpSQok/s400/ValveMod-22.jpg" alt="" id="BLOGGER_PHOTO_ID_5216366293134436530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I won't give details on how to create a map, but it's prety straightforward if you have used a 3D package before. You can follow the &lt;a href="http://developer.valvesoftware.com/wiki/Your_First_Map"&gt;Your First Map &lt;/a&gt;tutorial to create it. I just made a squared room where the action will take place.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SGRBgnarmEI/AAAAAAAAAHc/_LP_jfVTdwA/s1600-h/ValveMod-23.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SGRBgnarmEI/AAAAAAAAAHc/_LP_jfVTdwA/s400/ValveMod-23.jpg" alt="" id="BLOGGER_PHOTO_ID_5216366296994388034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As you can see in the screenshot, I added three rpg rounds (item_rpg_round) a crate (item_item_crate)  and an npc grenade (npc_grenade_frag). Also, a player (Dr. Freeman) has been added so the game is ready. Now, run map to create the BSP file. I check "Don't run the game after compiling" so you don't have to start the Mod for every change you do. Instead, run your Mod from Steam and load map by typing "map [your map name]". If you make any change in your map, compile it and reload it in your Mod without restarting the application.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Note. &lt;/span&gt;Do not forget to name every object in your map (well, at least the most relevant) so you can link them later in events.&lt;br /&gt;&lt;br /&gt;Now the logical entity starts to work. Let me think of a counter usage (no clues in tutorial) ... hmm it can be use for example to count flags you capture. Another usage ... as a trap; in our example we will use the counter to setup a trap for a player hungry for Ammo. If the user takes more than two Rpg rounds, the hidden grenade will blow punishing player. Got it?&lt;br /&gt;&lt;br /&gt;Add &lt;span style="font-weight: bold;"&gt;my_logical_entity&lt;/span&gt; to the map and, place it anywhere (Mine is the red square on screen). Double click for properties. In threshold keyvalue enter 3. That is, the output is launched when count equals 3.&lt;br /&gt;&lt;span style="text-decoration: underline; font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;Go to outputs and add a new Output. Take a look at the following screenshot. Please note that, when the event "OnThreshold" is triggered, The entity "My Grenade" will call it's action "Ignite", that is ... blow!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/SGRBg4NvWbI/AAAAAAAAAHk/JlkwpOMJ62A/s1600-h/ValveMod-24.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SGRBg4NvWbI/AAAAAAAAAHk/JlkwpOMJ62A/s400/ValveMod-24.jpg" alt="" id="BLOGGER_PHOTO_ID_5216366301503510962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now, there's only one thing left ... How to increment the counter? Take each Rpg Round and add an output: In the event that user touches the Round (OnPlayerTouch), tell the target (First Counter, this  is the name of my logical Entity) to "Tick", that is, increment the counter. Do this for every round.&lt;br /&gt;&lt;br /&gt;Now, when user picks up all three rounds, the logical entity counter will increment to 3 and the grenade will ignite.&lt;br /&gt;&lt;br /&gt;This is how it looks when playing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XriYlJDFQCg/SGRBhL6s9nI/AAAAAAAAAHs/JFUKsqivKE4/s1600-h/ValveMod-25.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SGRBhL6s9nI/AAAAAAAAAHs/JFUKsqivKE4/s400/ValveMod-25.jpg" alt="" id="BLOGGER_PHOTO_ID_5216366306792371826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;That's all. I hope you enjoy creating some other Logical Entities. Let me know what came to your mind.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-4792257537389688498?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/4792257537389688498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=4792257537389688498&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4792257537389688498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4792257537389688498'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/06/valves-source-part-3.html' title='Valve&apos;s Source - Part 3'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XriYlJDFQCg/SGRBgEeE-qI/AAAAAAAAAHM/3HvYNFSUMYE/s72-c/ValveMod-21.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-3324507713348560874</id><published>2008-06-23T15:39:00.007-05:00</published><updated>2008-06-23T16:13:50.883-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cumbia'/><category scheme='http://www.blogger.com/atom/ns#' term='feel the rush'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaggy'/><category scheme='http://www.blogger.com/atom/ns#' term='cienaguera'/><title type='text'>Shaggy Vs. Cumbia Cienaguera</title><content type='html'>It's football time, UEFA cup is about to finish, and every time a game starts the official video is shown on TV. It's Shaggy's "Feel the rush". A nice song but ... hold on .... I can hear something familiar ... I've heard that accordion notes somewhere in my childhood ....&lt;br /&gt;&lt;br /&gt;Please, check Shaggy's video below when a happy and friendly guy plays the accordion (Thanks Germany for this wonderful instrument), and listen carefully.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FjspxBtxFXg&amp;amp;hl=en"&gt;&lt;embed src="http://www.youtube.com/v/FjspxBtxFXg&amp;amp;hl=en" type="application/x-shockwave-flash" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Oh I remember where I heard that. I was young ... long time ago ... and that song played everywhere in parties. It a song from the country, It's name "Cumbia Cienaguera" means Cumbia from the pond (cumbia is a music style from the Colombian Folklore), composed by Martinez and Montaño.&lt;br /&gt;&lt;br /&gt;Follow this link to listen the original version [&lt;a href="http://www.discosfuentes.com/epages/Discosfuentes.sf/en_US/?ObjectPath=/Shops/Discosfuentes/Products/REFED10326"&gt;here&lt;/a&gt;] and click on the speaker link next to the song name "Cumbia Cienaguera".&lt;br /&gt;&lt;br /&gt;Is Shaggy aware of anything I mention here? I hope so, otherwise, I think there's some kind of Copyright Infringement. Can anybody give some lights?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-3324507713348560874?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/3324507713348560874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=3324507713348560874&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/3324507713348560874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/3324507713348560874'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/06/shaggy-vs-cumbia-cienaguera.html' title='Shaggy Vs. Cumbia Cienaguera'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-4857084122053787231</id><published>2008-06-19T17:37:00.013-05:00</published><updated>2008-12-10T20:41:44.604-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Maya 2008 Plugin development - Part 2</title><content type='html'>&lt;strong&gt;Intro&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Fortunately, you are not tied only to the development of plugins for Maya 3D using C++, which implies a good knowledge of programming, debugging, memory management, etc.&lt;br /&gt;&lt;br /&gt;Using Python has some advantages over C++:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Multiplatform: Although C++ can run in multiple platforms, you have to fit the code to the machine and use different compilers and setting for each platform (although you use open source compilers). Anyway you have to recompile. There's no such in Python. It will work in every platform.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Faster coding: Coding in Python is a way easier than C++. Few setup steps are required to develop applications in Python, and obviously, results will be seen faster.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Nothing is perfect, so these are the disadvantages I can think of:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Speed: Being a scripted language, Python is a lot slower than C++ (Compiled)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Low Level Programming: If you need to make son low level operations, then C++ (and assembler calls) is the right option.&lt;/li&gt;&lt;/ul&gt;For in-house development it's ok, but if I really want to make a commercial product (to be sold as a commercial plugin) I think C++ is the best choice.&lt;br /&gt;&lt;br /&gt;(Please correct me if I made any mistake)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Python Plugin&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ok, but the purpose of this post is to have a small guide to setup Maya to be able to create a python plugin ... let's start.&lt;br /&gt;&lt;br /&gt;Python packages are located here:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{Base Maya Directory}\Python\lib\site-packages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The only step needed to setup the Maya is by creating an environment variable in the system:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Variable name: PYTHONPATH&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Value: {Base Maya Directory}\Python\lib\site-packages&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5213771003205082562" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SFsJGopFXcI/AAAAAAAAAD8/vdE6mYq8vs8/s320/python1.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;After this variable has been created, you should restart Maya in order to have it updated with the new variable pointing to the Python libraries.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, let's test if Python works. Try the following in the Maya Script Editor (Please make sure you are working in the Python Tab as shown in the following image&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import maya.cmds as cmd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you get the following error, then the Python variables were not set up properly. Please check your environment variable making sure that you have not included the "Maya" subfolder in the PYTHONPATH variable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Error: No module named maya.cmds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If no error is thrown, then you can start writing your Python scripts. Let's create a sphere with a radius of 3 units. The following command will create the new object named "Sphere1"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cmd.sphere(name='sphere1', radius=3)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now you have a nice sphere, let's change some shape .... hmm something like an American Football ball (or whatever it's called ... pigskin?). To accomplish this, let's scale the sphere unevenly:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cmd.setAttr('sphere1.scale', 1, 1, 2, type='double3')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note that the attribute is "scale" from the "sphere1" object. Also, we have a vector of 3 doubles with values 1, 1 and 2.&lt;br /&gt;&lt;br /&gt;Finally, let's change our ball color. If you are thinking on something like setAttr sphere1.color, then you are wrong. Remember that color does not belong to the sphere itself but to the shader linked to it. By default, shader is lambert1, so let's change ball's color:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cmd.setAttr('lambert1.color', 0.63, 0.146, 0, type='double3')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Again, we modify "color" attribute from "lambert1" object, by updating color value using a 3-vector of doubles.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5213771008136755890" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SFsJG7A4urI/AAAAAAAAAEE/8C551P88IlA/s320/python2.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;I hope this brief introduction will help you in your journey inside Maya scripting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-4857084122053787231?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/4857084122053787231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=4857084122053787231&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4857084122053787231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4857084122053787231'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/06/maya-2008-plugin-development-part-2.html' title='Maya 2008 Plugin development - Part 2'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XriYlJDFQCg/SFsJGopFXcI/AAAAAAAAAD8/vdE6mYq8vs8/s72-c/python1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-6665439131989162293</id><published>2008-06-05T11:52:00.022-05:00</published><updated>2008-12-10T20:41:45.944-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CVS'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='turtoise'/><category scheme='http://www.blogger.com/atom/ns#' term='Source Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Open'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='Version'/><title type='text'>Open Source Control Version System (Part 2)</title><content type='html'>&lt;strong&gt;Client Side&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now that we have setup the server side application and repository, clients (developers) should have access to repositories using a client tool.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A useful tool for this purpose is the &lt;a href="http://tortoisesvn.tigris.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;TortoiseSVN&lt;/span&gt;&lt;/a&gt;. It's a subversion client for windows. (Please note that subversion is the core of the Version Control Server). It support several protocols including http (the one we will use for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;VisualSVN Server&lt;/span&gt;) and it's really easy to use.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5208490041446766130" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SEhGGNCYFjI/AAAAAAAAADc/H-GNvPM-fb4/s320/turt2.jpg" border="0" /&gt; &lt;/p&gt;&lt;p&gt;After you have downloaded and installed the application you will be surprised that there's no applications to run (rather than the diff and merge applications) to manage files. Instead, under the windows explorer you will find new options when you right-click on a file or folder (that's what it's called a &lt;em&gt;shell extension&lt;/em&gt;).&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5208491222114983410" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SEhHK7XnXfI/AAAAAAAAADk/zwL0ca44Ej8/s320/turt4.jpg" border="0" /&gt;&lt;br /&gt;The first step to setup your environment is by creating a directory where your files will be stored where you take them from the repository. Of course this folder can be the location of the sources after you created a project, or the location of your local web application.&lt;/p&gt;&lt;p&gt;So, choose your target directory and right click, then select "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SVN&lt;/span&gt; Checkout".&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5208494036658976738" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SEhJuwXMd-I/AAAAAAAAADs/ZfA302u04lQ/s320/turt5.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;A window will ask you for some information like the location of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SVN&lt;/span&gt; server (in this particular case is the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SimpleSample&lt;/span&gt; folder) and click &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;OK&lt;/span&gt;. This action will take a copy of all files from the repository into the folder you selected.&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5208495543508155474" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SEhLGd0CPFI/AAAAAAAAAD0/roJDltFEi2E/s320/turt6.jpg" border="0" /&gt;&lt;br /&gt;&lt;p&gt;Now, you can open any file inside that folder and start the edition process, and saving in your local machine. Then, when you feel comfortable with its &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;functionality&lt;/span&gt;, you can send it back to the repository by selecting &lt;em&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SVN&lt;/span&gt; Commit&lt;/em&gt; and of course, you can get the latest version of the file by clicking &lt;em&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SVN&lt;/span&gt; Update&lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;course&lt;/span&gt; there's more than that, but at least you have your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SVN&lt;/span&gt; working and you can try other great features like merging, file versions, etc.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-6665439131989162293?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/6665439131989162293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=6665439131989162293&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6665439131989162293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6665439131989162293'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/06/open-source-control-version-system-part.html' title='Open Source Control Version System (Part 2)'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XriYlJDFQCg/SEhGGNCYFjI/AAAAAAAAADc/H-GNvPM-fb4/s72-c/turt2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-5936565835283573889</id><published>2008-06-04T21:58:00.003-05:00</published><updated>2008-12-10T20:41:47.121-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Valve'/><category scheme='http://www.blogger.com/atom/ns#' term='half life 2'/><category scheme='http://www.blogger.com/atom/ns#' term='mod'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Valve's Source - Part 2</title><content type='html'>&lt;strong&gt;My First Mod&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This guide complements &lt;a href="http://developer.valvesoftware.com/wiki/My_First_Mod"&gt;&lt;strong&gt;My First Mod&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;basic tutorial from the Valve's developer web page, so please, have booth pages opened.&lt;br /&gt;&lt;br /&gt;After you have downloaded and Installed the SDK, you should run the Game and .... just to make sure everything will run ok, restart the computer (Well, I had to do it because the Source SDK didn't start when I tried to run it)&lt;br /&gt;&lt;br /&gt;This is how Source SDK looks when you double click on the application. In order to continue with the tutorial, double click on the &lt;strong&gt;Create a Mod&lt;/strong&gt; link under &lt;em&gt;Utilities.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XriYlJDFQCg/SGJbMGTttuI/AAAAAAAAAGs/O--BEV4twTU/s1600-h/Mod2-1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SGJbMGTttuI/AAAAAAAAAGs/O--BEV4twTU/s400/Mod2-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5215831581858313954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It takes some time to create all Mod files (All source files required to rebuild the application). When finished, a folder &lt;em&gt;src&lt;/em&gt; is created and, below it there's the Solution. Please open it according to the Visual Studio version you have. In my particular case, it's VS2005.&lt;br /&gt;&lt;br /&gt;Following screen shot illustrates the solution location, as well as the Rocket file location and line to be changed:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XriYlJDFQCg/SGJb8E468pI/AAAAAAAAAG0/i5gO7lrrTVk/s1600-h/Mod2-2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SGJb8E468pI/AAAAAAAAAG0/i5gO7lrrTVk/s400/Mod2-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5215832406111220370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You go through the steps in tutorial in order to compile changes. Now you have to restart Steam. By restarting, I mean right click on Steam tray Icon, select Exit, and open the application again. You will then be able to see something like this (FabianMod is now available):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SGJb8Q2-UjI/AAAAAAAAAG8/cjwWEHx_eOw/s1600-h/Mod2-3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SGJb8Q2-UjI/AAAAAAAAAG8/cjwWEHx_eOw/s400/Mod2-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5215832409324278322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Please follow me. Although tutorial is correct, it's confusing because it says "Run the game", but then ... hold on, there's nothing to view, please go back and do this... These are the instructions I propose:&lt;p&gt;1. After Building the application, you have to have a map to test the change you just did in the rocket speed. So, download GCFScape. This application will allow you to copy a map from the HL2 library into your Mod.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;NOTE&lt;/span&gt;: You don't have to copy the map inside the folder where the solution is located. When you build the Mod, a folder is created in the following path (In this particular example):&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;$ValvePath\Steam\SteamApps\SourceMods\FabianMod&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So, copy the map into the &lt;em&gt;maps&lt;/em&gt; folder just below &lt;em&gt;FabianMod &lt;/em&gt;(or your Mod's name).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. Start the Mod from the Steam console.&lt;/p&gt;&lt;p&gt;3. Enable the ~ key to be able to open the Console&lt;/p&gt;&lt;p&gt;4. load Map by typing "map [your map name]" and hit enter&lt;/p&gt;&lt;p&gt;5. Enable cheats to be able to select Rocket weapon: "sv_cheats 1"&lt;/p&gt;&lt;p&gt;6. load all weapons by typing: "impulse 101"&lt;/p&gt;&lt;p&gt;That's all, now you should be able to launch a really slow rocket . I can even take a screenshot!&lt;/p&gt;&lt;p&gt;The following is an in-game screenshot:&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/SGJb8uFRe8I/AAAAAAAAAHE/68o6hvweY7o/s1600-h/Mod2-4.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SGJb8uFRe8I/AAAAAAAAAHE/68o6hvweY7o/s400/Mod2-4.jpg" alt="" id="BLOGGER_PHOTO_ID_5215832417168882626" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-5936565835283573889?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/5936565835283573889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=5936565835283573889&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/5936565835283573889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/5936565835283573889'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/06/valves-source-part-2.html' title='Valve&apos;s Source - Part 2'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XriYlJDFQCg/SGJbMGTttuI/AAAAAAAAAGs/O--BEV4twTU/s72-c/Mod2-1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-7295796783895456786</id><published>2008-06-03T09:33:00.002-05:00</published><updated>2008-12-10T20:41:48.988-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CVS'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='turtoise'/><category scheme='http://www.blogger.com/atom/ns#' term='Source Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Open'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='Version'/><title type='text'>Open Source Control Version System (Part 1)</title><content type='html'>When Software Projects become larger and more people is involved, there's need to keep control of source code files.&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Usually, several users have to make changes at the same time in a core file. Doing this the wrong way may lead to delete changes made by a developer, wasting a lot of time and raising errors in the coding.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Fortunately&lt;/span&gt;, there's Version Control software which keeps track of who is using a file, keep versions of that files, allows merging, branching and other cool stuff to keep &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;your&lt;/span&gt; software project &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;synchronized&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are several vendors and open open source versions of this software, and a couple of models. Please check the &lt;a href="http://en.wikipedia.org/wiki/List_of_revision_control_software"&gt;List of Revision Control Software&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;In this case we are going to setup a Control software using a Client-Server model with an open source application.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Server Side&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;VisualSVN&lt;/span&gt; is our choice, because it's Open Source, provides an easy installation package and a clean control panel. Just download it from &lt;a href="http://www.visualsvn.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;VisualSVN&lt;/span&gt;&lt;/a&gt;. After downloading, run the setup and follow the wizard:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5208424949109748514" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SEgK5VL38yI/AAAAAAAAACs/UUlQIGnUdtA/s320/svn2.jpg" border="0" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Next, set install location and repositories path. Repository is where the files will be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;physically&lt;/span&gt; located (Please do not modify anything inside repositories unless you know exactly what are you doing). Also, set the server port. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;VisualSVN&lt;/span&gt; Server runs on Apache server and it can be accessed through http protocol, that is, you can have some access using a web browser.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5208430196601950722" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SEgPqxngkgI/AAAAAAAAAC0/n0Eo8N3HSoc/s320/svn3.jpg" border="0" /&gt;&lt;br /&gt;That's all. Now you can access the control panel using the Manager:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5208433382713087666" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SEgSkOzmVrI/AAAAAAAAADE/mzok5bgOs-8/s320/svn5.jpg" border="0" /&gt; First of all you have to create the users who will have access to the repository by clicking on the "Create new user" link.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5208433157079570194" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SEgSXGQYFxI/AAAAAAAAAC8/CLI3RyRAs30/s320/svn6.jpg" border="0" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Final step in the server side is create the New Repository, that is, the particular space where the application files will be stored. I created a sample for this:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5208438331778684450" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SEgXETgyViI/AAAAAAAAADM/-ancy6bNxMA/s320/svn7.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can check if your system is running properly by logging to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;VisualSVN&lt;/span&gt; server location using a web browser (As I am running local, I just entered &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;localhost&lt;/span&gt;:8080/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;svn&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SimpleSample&lt;/span&gt;):&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5208439854176936946" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_XriYlJDFQCg/SEgYc640I_I/AAAAAAAAADU/0wVTXNiUOtg/s320/svn8.jpg" border="0" /&gt;&lt;/p&gt;&lt;p&gt;Just remember you log in using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SVN&lt;/span&gt; user you created previously. You can create a user for each developer, so when you track changes you can view who modified the application by the means of this user.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-7295796783895456786?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/7295796783895456786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=7295796783895456786&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/7295796783895456786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/7295796783895456786'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/06/open-source-control-version-system.html' title='Open Source Control Version System (Part 1)'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XriYlJDFQCg/SEgK5VL38yI/AAAAAAAAACs/UUlQIGnUdtA/s72-c/svn2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-2891257883532421409</id><published>2008-05-28T09:53:00.005-05:00</published><updated>2008-06-05T09:32:50.331-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flobots handlebars'/><title type='text'>I can ride my bike with no handle bars</title><content type='html'>&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Handlebards&lt;/span&gt; is a cool song I have been listening lately from a band named &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Flobots&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;It's so cool not only the music or the Trumpet sound (for me it sounds like a trumpet) but their &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;lyrics&lt;/span&gt; are loaded with a strong message, not the usual blatant lyrics and the video clip enforces the meaning of the song. Please listen and watch it!&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/gMEhescEBaE&amp;amp;hl=" width="425" height="355" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-2891257883532421409?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/2891257883532421409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=2891257883532421409&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/2891257883532421409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/2891257883532421409'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/05/i-can-ride-my-bicycle-with-no-handle.html' title='I can ride my bike with no handle bars'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-4712595686969816779</id><published>2008-05-17T12:48:00.007-05:00</published><updated>2008-12-10T20:41:49.357-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mel'/><category scheme='http://www.blogger.com/atom/ns#' term='Plug-in'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='2008'/><title type='text'>Spherical Helix Plugin</title><content type='html'>This plugin for Autodesk Maya, will create a Spherical Helix made of a Nurbs curve.&lt;br /&gt;&lt;br /&gt;The usage for this plugin is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   SphereHelix -r &lt;radius&gt;-h &lt;height&gt;-n &lt;name&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   -r: The sphere maximum radius. By default, radius is 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   -h: The curve height from y=0. By default, height is 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   -n: The name of the Nurbs curve. By default curve name is SphereHelix#, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;       where # is a consecutive number for existing curves.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To install plugin, just download it, unzip it, copy .mll to &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;maya&gt;\bin\plug-ins &lt;/span&gt;and load it from the plug-in manager.&lt;br /&gt;&lt;br /&gt;Following images were created with this plugin using different settings:&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5201907030659582114" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SDDi4i0SSKI/AAAAAAAAACc/WywffktwvCE/s320/sphere.jpg" border="0" /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5201907034954549426" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_XriYlJDFQCg/SDDi4y0SSLI/AAAAAAAAACk/WZTlYQoWoDY/s320/sphere2.jpg" border="0" /&gt;&lt;br /&gt;Find out the plugin here:&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://fabianmejia.googlepages.com/SphereHelix.zip"&gt;Plugin Download&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-4712595686969816779?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/4712595686969816779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=4712595686969816779&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4712595686969816779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4712595686969816779'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/05/spherical-helix-plugin.html' title='Spherical Helix Plugin'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XriYlJDFQCg/SDDi4i0SSKI/AAAAAAAAACc/WywffktwvCE/s72-c/sphere.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-4814742241949826692</id><published>2008-05-01T12:42:00.015-05:00</published><updated>2008-12-10T20:41:50.023-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual'/><category scheme='http://www.blogger.com/atom/ns#' term='wizard'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='2008'/><title type='text'>Maya 2008 Plugin development - Part 1</title><content type='html'>Building plugins for Maya allows both Game Developers and Artist to customize Maya and speed up the workflow.&lt;br /&gt;&lt;br /&gt;So far, doing some reading and research, I found there are two ways to develop Maya plugins: Using a traditional compiled VC++ .mll plugin or by using Python.&lt;br /&gt;&lt;br /&gt;I will start this research by building a simple plugin using Visual Studio 2005 (Visual Studio 8)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Start by installing the Plugin Wizard&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;First step is to setup the Visual Studio environment. Fortunately, Maya includes a Plugin Wizard for Visual Studio 8 (aka Visual Studio 2005) so you can create them easily.&lt;br /&gt;Plugin wizard is found in the following location:&lt;br /&gt;&lt;br /&gt;\devkit\PluginWizard&lt;br /&gt;&lt;br /&gt;Of course, you can follow the readme instructions, but there's a little change you should do in order to have the plugin working.&lt;br /&gt;&lt;br /&gt;a. Unzip the MayaPluginWizard2.0.zip file&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;a.1 This is the new Step: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Edit the &lt;em&gt;MayaPluginWizard.vsz&lt;/em&gt; file, and change the following line:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Wizard=VsWizard.VsWizardEngine.7.1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;to &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Wizard=VsWizard.VsWizardEngine.8.0&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;(For Some reason wizard developers forgot to update this for Visual studio 2005 Developers)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;b. Copy the following files:&lt;br /&gt;&lt;br /&gt;MayaPluginWizard.vsdir MayaPluginWizard.vsz MayaPluginWizard.ico&lt;br /&gt;&lt;br /&gt;To &lt;visual&gt;\VC\VCProjects&lt;br /&gt;&lt;br /&gt;c. Copy the MayaPluginWizard folder to &lt;visual&gt;\VC\VCWizards&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Create plugin in Visual Stuio&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5195510163045716098" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/SBoo919FkII/AAAAAAAAACM/Aa4NDL6ASJY/s320/MayaPlugin1.jpg" border="0" /&gt; &lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:times new roman;color:#006600;"&gt;(This is a sample check box.)??? &lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:times new roman;color:#006600;"&gt;Is there something missing to finish in this Wizard?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Create a new project, as usual, and click OK. The wizard will show you the screen above. Then you should choose the options you want. By clicking Next you must select the type of plugin you want to create and the Command Name for this plugin (This is the entry point of the plugin in Maya; that is the command you write when calling the plugin)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5195513659149095058" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_XriYlJDFQCg/SBosJV9FkJI/AAAAAAAAACU/n44sEKN4318/s320/MayaPlugin2.jpg" border="0" /&gt;&lt;br /&gt;&lt;p&gt;That's all, you are ready to write your plugin. Please note the Wizard will setup the project so you only have to build the project and the .mll file will be created.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. Install Plugin in Maya&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Open Maya (of course) and go to Window-&gt;Preferences-&gt;Plugin Manager, click Browse and find the plugin you just created. It should be marked as "Loaded". Check "Auto Load" if you want the plugin to be loaded everytime you start Maya.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. Execute the Plugin&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Open the Script Editor and excecute the command you just created. This is the result from mine:&lt;/p&gt;&lt;p&gt;&lt;span style="color:#009900;"&gt;MysimpleMelCommand;&lt;br /&gt;// Result: MysimpleMelCommand command was successfully excecuted&lt;br /&gt;// &lt;/span&gt;&lt;/p&gt;&lt;p&gt;That's all. I hope it works for you.&lt;/p&gt;&lt;p&gt;Some Sources:&lt;br /&gt;&lt;a href="http://highend3d.com/boards/lofiversion/index.php/t220538.html"&gt;http://highend3d.com/boards/lofiversion/index.php/t220538.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-4814742241949826692?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/4814742241949826692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=4814742241949826692&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4814742241949826692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4814742241949826692'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/05/maya-2008-plugin-development-part-1.html' title='Maya 2008 Plugin development - Part 1'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XriYlJDFQCg/SBoo919FkII/AAAAAAAAACM/Aa4NDL6ASJY/s72-c/MayaPlugin1.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-1079449531346713060</id><published>2008-04-18T22:22:00.001-05:00</published><updated>2008-06-23T16:09:06.072-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Source'/><category scheme='http://www.blogger.com/atom/ns#' term='sdk'/><category scheme='http://www.blogger.com/atom/ns#' term='Valve'/><category scheme='http://www.blogger.com/atom/ns#' term='mod'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Valve's Source - Pre</title><content type='html'>Lately, I've been going through the process of learning about Valve's Source.&lt;br /&gt;&lt;br /&gt;Initially, you should own a valid copy of any Valve games (I actually own HL2, so I am ready to work).&lt;br /&gt;&lt;br /&gt;First step in this process is to get the Source SDK from the Valve website. It's really easy, as you only have to open the STEAM Control Panel and, under the Tools tab, you have to double click on Source SDK Base and Source SDK packages, and Steam will install and download them for you. As easy as it can be.&lt;br /&gt;&lt;br /&gt;The follow link will guide you in detail:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.valvesoftware.com/wiki/SDK_Installation"&gt;http://developer.valvesoftware.com/wiki/SDK_Installation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please follow the instructions ... not as I did ... &lt;strong&gt;It's mandatory that you run the game before running the SDK, otherwise SDK won't run!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When you are ready, you can launch source from Steam Control Panel. Your entry point then is to visit the SDK Reference Docs located in the Documentation Area.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What's first? Creating a Map? Creating a Mod? Is there any place to start? I am lost!!! Here is where I complain about the documentation from Valve. Well, According to the Oxford English Dictionary (1997), complain: &lt;em&gt;say one is dissatisfied&lt;/em&gt;. So, instead of &lt;em&gt;complaining&lt;/em&gt;, I will try to give some more details on the tutorials where you can get clueless as there are not details, screenshots, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, let's start. The following link will take you to the Entry point for basic documentation:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.valvesoftware.com/wiki/Category:Programming"&gt;http://developer.valvesoftware.com/wiki/Category:Programming&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next tutorial will guide you through the creation of a Mod.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-1079449531346713060?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/1079449531346713060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=1079449531346713060&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/1079449531346713060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/1079449531346713060'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/04/valves-source-pre.html' title='Valve&apos;s Source - Pre'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-7356076708102735642</id><published>2008-04-12T19:51:00.007-05:00</published><updated>2008-04-12T20:17:02.495-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pyramid'/><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Collision'/><category scheme='http://www.blogger.com/atom/ns#' term='detection'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='polytope'/><title type='text'>Collision detection with Pyramids</title><content type='html'>It's well known the classic collision detection between two objects using Axis Aligned bounding boxes, Object Oriented Bounding Boxes, Spheres and Cylinders. These are the first methods discard collision between two objects.&lt;br /&gt;&lt;br /&gt;Here, I propose a different approach for that collision detection. I found some speed issues when using some of the above methods although I have to say that Spheres are great for this task.&lt;br /&gt;&lt;br /&gt;This method uses Pyramid (if they can be called that way) shaped polytopes. That is, a figure formed by three triangles using four points. In particular, the space limited by the intersection of 3 planes, instead of the six planes used by the Box method.&lt;br /&gt;&lt;br /&gt;One thing of interest is trying to make the model fit inside the pyramid. It's clear that for cylinders, spheres and Boxes, this a quite simple task.&lt;br /&gt;&lt;br /&gt;Results are in development, so expect them later.&lt;br /&gt;&lt;br /&gt;Contributions are welcome&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-7356076708102735642?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/7356076708102735642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=7356076708102735642&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/7356076708102735642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/7356076708102735642'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/04/collision-detection-with-pyramids.html' title='Collision detection with Pyramids'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-1171123361517401742</id><published>2008-04-12T19:39:00.002-05:00</published><updated>2008-04-12T19:49:31.749-05:00</updated><title type='text'>Future is written ... in history books</title><content type='html'>This phrase came to me after a discussion with my wife regarding whether the Future is already written or not. That is, if everything in our lifes has already been established previously, like the destiny.&lt;br /&gt;&lt;br /&gt;If you are supposed to be a Musician, there's nothing you can do to change that; a Predestination.&lt;br /&gt;&lt;br /&gt;But, I totally disagree with that thought. I think everyting is happening right now! and you can change it now!&lt;br /&gt;&lt;br /&gt;Here we use that quote: "Future is already written".&lt;br /&gt;&lt;br /&gt;I have decided to rephrase that with the following:&lt;br /&gt;&lt;br /&gt;"Future is already written ... in history books"&lt;br /&gt;"el futuro esta escrito ... en los libros de historia"&lt;br /&gt;&lt;br /&gt;What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-1171123361517401742?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/1171123361517401742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=1171123361517401742&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/1171123361517401742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/1171123361517401742'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/04/future-is-written-in-history-books.html' title='Future is written ... in history books'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-8660888198963627246</id><published>2008-03-10T12:34:00.000-05:00</published><updated>2008-05-17T12:47:43.496-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Traicionera'/><category scheme='http://www.blogger.com/atom/ns#' term='lightwave 3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Premiere'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><title type='text'>Traicionera</title><content type='html'>Traicionera (Betrayer) is a song played by Jose Pastor Lopez, a tropical music singer from Barquisimeto, Venezuela. His work is appreciated here in Colombia where his songs were enjoyed by our parents.&lt;br /&gt;As a Tribute, and after some attemps to create animated precolumbian characters I designed and built the following musical video:&lt;br /&gt;&lt;br /&gt;&lt;p align = "center"&gt;&lt;br /&gt;&lt;embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-3834961047222394043&amp;hl=en" flashvars=""&gt; &lt;/embed&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Animation an rendering was developed in Lightwave 3D Version 6.5. Carlos Santa helped me with camera positions and movements. That was really helpful as my knowledge in this field is limited. Adobe premiere did its work on the edition and sound mixing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-8660888198963627246?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/8660888198963627246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=8660888198963627246&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/8660888198963627246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/8660888198963627246'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/04/traicionera.html' title='Traicionera'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-6182164501746389302</id><published>2008-02-12T11:19:00.001-05:00</published><updated>2008-12-10T20:41:50.452-05:00</updated><title type='text'>My First book about computers and Basic</title><content type='html'>&lt;p align="left"&gt;These were the first books I read about computers and programming (out of the books I read in school), where I really understood how everything worked inside of it and lead me to the path of computers. &lt;/p&gt;Thanks Luca Novelli!!!!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XriYlJDFQCg/R7HKOUCR6LI/AAAAAAAAACE/AGgMXMIS_9k/s1600-h/My+First+Book+of+Basic.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5166132594815920306" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_XriYlJDFQCg/R7HKOUCR6LI/AAAAAAAAACE/AGgMXMIS_9k/s320/My+First+Book+of+Basic.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://3.bp.blogspot.com/_XriYlJDFQCg/R7HH-kCR6KI/AAAAAAAAAB8/Ju3qrR87lvo/s1600-h/My+Fiirst+book.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5166130125209725090" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_XriYlJDFQCg/R7HH-kCR6KI/AAAAAAAAAB8/Ju3qrR87lvo/s320/My+Fiirst+book.jpg" border="0" /&gt;&lt;/a&gt; &lt;p align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_XriYlJDFQCg/R7HH-kCR6KI/AAAAAAAAAB8/Ju3qrR87lvo/s1600-h/My+Fiirst+book.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_XriYlJDFQCg/R7HH-kCR6KI/AAAAAAAAAB8/Ju3qrR87lvo/s1600-h/My+Fiirst+book.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-6182164501746389302?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/6182164501746389302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=6182164501746389302&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6182164501746389302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6182164501746389302'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/02/my-first-book-about-computers.html' title='My First book about computers and Basic'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XriYlJDFQCg/R7HKOUCR6LI/AAAAAAAAACE/AGgMXMIS_9k/s72-c/My+First+Book+of+Basic.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-4992104115638319999</id><published>2008-02-04T17:28:00.000-05:00</published><updated>2008-12-10T20:41:50.707-05:00</updated><title type='text'>Crysis</title><content type='html'>Crysis is the most advanced game I've ever played (so far). Graphics are stunning, although I have to say that it requires a powerful machine to run. Even on my machine with good features, the ending still runs slow with the lowest settings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5163255789384083250" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/R6eRyMq3pzI/AAAAAAAAABs/GyzuMDPlIuI/s320/Crysis.jpg" border="0" /&gt;&lt;br /&gt;Gameplay is great and every weapon has customization options. According to the developers, the whole environment is 3D. That is, even the distant mountains are 3d models, not Bitmaps. &lt;/p&gt;&lt;p&gt;Folliage looks great too and trees can be destroyed with the weapons available. One nice features is the ability to hide beneath the bushes. Some people rather prefer direct fighting with enemies, but I love the ambush!&lt;/p&gt;&lt;p&gt;Being invisible is a good option inside the game. You can walk undiscovered by using the Invisible tool but even with that, enemies will suspect there's something around there.&lt;/p&gt;&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_XriYlJDFQCg/R6eSK8q3p0I/AAAAAAAAAB0/F_GcyxoCLh8/s1600-h/Crysis2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5163256214585845570" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_XriYlJDFQCg/R6eSK8q3p0I/AAAAAAAAAB0/F_GcyxoCLh8/s320/Crysis2.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Finally, I have to note that characters are very detailed, you can even see the wrinkles on the face of this man. Check out the above screenshot.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;Amazing!!! Isn't it?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-4992104115638319999?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/4992104115638319999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=4992104115638319999&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4992104115638319999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4992104115638319999'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2008/02/crysis.html' title='Crysis'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XriYlJDFQCg/R6eRyMq3pzI/AAAAAAAAABs/GyzuMDPlIuI/s72-c/Crysis.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-9031928506780048916</id><published>2007-11-07T10:30:00.000-05:00</published><updated>2007-11-07T10:40:25.740-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='atari infesa computer fabian mejia'/><title type='text'>Atari Infesa</title><content type='html'>&lt;p&gt;This video, dated about 1986 is an ad from the public channels offering an Atari 800 computer.&lt;/p&gt;&lt;p&gt;Thanks to this video my father purchased our first computer. I even went to the training center (offered for free by the seller)&lt;/p&gt;&lt;p&gt;Thanks Dad, this is one of the two best gifts ever!!!!&lt;/p&gt;&lt;p&gt;&lt;embed src="http://www.youtube.com/v/Cm-BMq3_iNc" width="425" height="355" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;p&gt;"You can gift your child many things or a future"&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-9031928506780048916?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/9031928506780048916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=9031928506780048916&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/9031928506780048916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/9031928506780048916'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2007/11/atari-infesa.html' title='Atari Infesa'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-3863679411760691870</id><published>2007-10-25T19:31:00.000-05:00</published><updated>2008-12-10T20:41:51.388-05:00</updated><title type='text'>Bioshock status .... Finished</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;div&gt;I can believe it .... Just a couple of minutes ago, I finished Bioshock (without cheating). &lt;/div&gt;&lt;br /&gt;&lt;div&gt;This is an amazing game. I love the graphics and the characters (I am a real fan of Art-Deco style). I love the Chrysler and the American Radiator Buildings in NY  (they are Art-Deco too, right?).&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Please take a look at the following pictures from my cellphone. (I was unable to take screenshots using the "Print Screen" key).&lt;/div&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5125442055663591602" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/RyE6ZNStILI/AAAAAAAAABk/USmcOizywko/s320/25-10-07_1921.jpg" border="0" /&gt;&lt;img id="BLOGGER_PHOTO_ID_5125441823735357602" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_XriYlJDFQCg/RyE6LtStIKI/AAAAAAAAABc/3mkZZxGMWyc/s320/25-10-07_1920.jpg" border="0" /&gt;&lt;br /&gt;&lt;div&gt;I have to say that the ending was not as good as the whole game, It looked more like a "Love movie". (Well, if you played as Mr Goodie two shoes)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-3863679411760691870?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/3863679411760691870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=3863679411760691870&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/3863679411760691870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/3863679411760691870'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2007/10/bioshock-status-finished.html' title='Bioshock status .... Finished'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XriYlJDFQCg/RyE6ZNStILI/AAAAAAAAABk/USmcOizywko/s72-c/25-10-07_1921.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-6381826614836910045</id><published>2007-10-18T20:32:00.000-05:00</published><updated>2008-12-10T20:41:51.788-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth'/><category scheme='http://www.blogger.com/atom/ns#' term='1520'/><category scheme='http://www.blogger.com/atom/ns#' term='mouse'/><category scheme='http://www.blogger.com/atom/ns#' term='inspiron'/><category scheme='http://www.blogger.com/atom/ns#' term='7.10'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu 7.10 on Inspiron 1520</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XriYlJDFQCg/RxlW4x1ty9I/AAAAAAAAABM/Meu7TH0Zvfg/s1600-h/00001.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XriYlJDFQCg/RxlW4x1ty9I/AAAAAAAAABM/Meu7TH0Zvfg/s320/00001.jpg" alt="" id="BLOGGER_PHOTO_ID_5123221584561949650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Today Ubuntu 7.10 has been released!&lt;br /&gt;You can download it at: &lt;a href="http://www.ubuntu.com/"&gt;www.ubuntu.com&lt;/a&gt;&lt;br /&gt;Where I live, Internet connection is not fast so I rather prefer downloading the Torrent first.&lt;br /&gt;&lt;br /&gt;I Installed Ubuntu in my Inspiron 1520 Machine without any trouble (Compared to previous versions). So far, I have tried the following Items:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Wireless Network. It worked like a breeze&lt;/li&gt;&lt;li&gt;Screen at High Resolution (Although I haven't tried yet the nVidia drivers)&lt;/li&gt;&lt;li&gt;Bluetooth seem to be working (It finds devices nearby)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;First Item I was not able to have running is the audio, so I searched over the Internet, and I found this great thread in a Forum:&lt;/p&gt;&lt;p&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=577469"&gt;http://ubuntuforums.org/showthread.php?t=577469&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I followed the steps in a similar way as described in that thread:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Installed "libc6-dev" using the Synaptics package Manager&lt;/li&gt;&lt;li&gt;Installed "patch" using the synaptics package Manager&lt;/li&gt;&lt;li&gt;wget &lt;a href="ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.15rc1.tar.bz2"&gt;ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.15rc1.tar.bz2&lt;/a&gt; &lt;/li&gt;&lt;li&gt;tar xvpjf alsa-driver-1.0.15rc1.tar.bz2&lt;/li&gt;&lt;li&gt;cd alsa-driver-1.0.15rc1&lt;/li&gt;&lt;li&gt;./configure --with-cards=hda-intel,emu10k1&lt;/li&gt;&lt;li&gt;make&lt;/li&gt;&lt;li&gt;sudo make install&lt;/li&gt;&lt;/ul&gt;Reboot the system (just to make sure everything is set up) and Audio worked.&lt;br /&gt;&lt;br /&gt;I had issues with the Bluetooth mouse. When trying to connect to that device, system thrown an error.&lt;br /&gt;I followed directions on this thread:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=87919"&gt;http://ubuntuforums.org/showthread.php?t=87919&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But, with some slight modifications. Please take a look:&lt;br /&gt;&lt;br /&gt;Execute:&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;br /&gt;hcitool scan&lt;/span&gt;&lt;br /&gt;This application will scan the surroundings identifying Bluetooth devices. Don't forget clicking on the "Available" button on your mouse. If mouse is found, then you will be able to view its MAC address&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XriYlJDFQCg/RxlXSh1ty-I/AAAAAAAAABU/l5qL6sq9d9c/s1600-h/00005.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XriYlJDFQCg/RxlXSh1ty-I/AAAAAAAAABU/l5qL6sq9d9c/s320/00005.jpg" alt="" id="BLOGGER_PHOTO_ID_5123222026943581154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Next instruction:&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;sudo hidd --connect xx:xx:xx:xx:xx:xx&lt;/span&gt;&lt;br /&gt;Where xx... is the MAC address you found with the previous command.&lt;br /&gt;This command will connect the mouse to your computer, but ... only temporarily. As soon as you restart your computer, you loose connection.&lt;br /&gt;&lt;br /&gt;Having you mouse working always, you have to edit the following file:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/etc/default/bluetooth&lt;/span&gt;&lt;br /&gt;(This is the correct name under Ubuntu 7.10)&lt;br /&gt;By modifying the following lines:&lt;br /&gt;HIDD_ENABLED=1&lt;br /&gt;HIDD_OPTIONS="-i xx:xx:xx:xx:xx:xx --server"&lt;br /&gt;&lt;br /&gt;This way, mouse will be working as you ever dreamed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-6381826614836910045?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/6381826614836910045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=6381826614836910045&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6381826614836910045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6381826614836910045'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2007/10/ubuntu-710-on-inspiron-1520.html' title='Ubuntu 7.10 on Inspiron 1520'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XriYlJDFQCg/RxlW4x1ty9I/AAAAAAAAABM/Meu7TH0Zvfg/s72-c/00001.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-5094470804984160152</id><published>2007-10-16T10:51:00.000-05:00</published><updated>2008-12-10T20:41:52.791-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bioshock'/><category scheme='http://www.blogger.com/atom/ns#' term='8600'/><category scheme='http://www.blogger.com/atom/ns#' term='1520'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='inspiron'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>Running Bioshock on Inspiron 1520</title><content type='html'>I just received my new Dell Inspiron 1520 with the nVidia 8600 GT. This purchase also included Bioshock, The Sims 2 Deluxe and Company of Heroes.&lt;br /&gt;&lt;br /&gt;As soon as I turned on the computer, It was too slow. More than I expected for a new computer with 2GB of RAM. I blame the Bloatware preinstalled on this machine. Also, going to "My computer", I found there were 3 "Three"! partitions: main drive and two more with media direct and some other stuff. I really found it useless. What's the purpose of getting access to media without booting the computer? I rather prefer turning on the iPod or the radio.&lt;br /&gt;&lt;br /&gt;I decided to clean up that preloaded-mess and reinstalled Windows Vista. Install is pretty straightforward. I removed all partitions and created only two: One for Windows and some empty space for Ubuntu (Which will be installed later).&lt;br /&gt;&lt;br /&gt;Drivers were installed without any trouble from the DELL drivers Disk. I couldn't wait more to play Bioshock ...&lt;br /&gt;&lt;br /&gt;Game Installed successfully after a couple of minutes and I was now ready to play.&lt;br /&gt;&lt;br /&gt;Game intro worked .... [They told me .... son you're special] .... but after that, the game crash, the screen remains black.&lt;br /&gt;&lt;br /&gt;If you have faced this, then you still have the Dell Drivers installed. To overcome this issue, you have to get the latest drivers. The ones from the nVidia website didn't work (Oh sorry, I forgot to mention that my machine is equiped with the nVidia 8600M GT video Card).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.laptopvideo2go.com/"&gt;http://www.laptopvideo2go.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the link above you will find the latest drivers location. I downloaded the 163.67 version. After you download the drivers, run the .exe file and replace the [nv_disp.inf] file with the &lt;strong&gt;Modded Inf &lt;/strong&gt;file located in the same page.&lt;br /&gt;&lt;br /&gt;Following the steps mentioned, I ran the game again. Now, I was able to view the stunning graphics provided by 2k, but ..... No Sound!!!&lt;br /&gt;&lt;br /&gt;At first I thought this was part of the scene mood, but quickly I noticed the game was running without sound (The game Intro was heared ok).&lt;br /&gt;&lt;br /&gt;To solve this, go to the executable location, right click on it and under the Compatibility mode, enable and select Windows XP/2000.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5122500420898245554" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://4.bp.blogspot.com/_XriYlJDFQCg/RxbG_h1ty7I/AAAAAAAAAA8/6IGDOo9ShT4/s320/bioshock1.jpg" border="0" /&gt;&lt;br /&gt;No I have my game Working. Here a screnshoot as a proof:&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5122500665711381442" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/RxbHNx1ty8I/AAAAAAAAABE/vfljPJK9MxY/s320/bioshock2.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-5094470804984160152?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/5094470804984160152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=5094470804984160152&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/5094470804984160152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/5094470804984160152'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2007/10/running-bioshock-in-inspiron-1520.html' title='Running Bioshock on Inspiron 1520'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XriYlJDFQCg/RxbG_h1ty7I/AAAAAAAAAA8/6IGDOo9ShT4/s72-c/bioshock1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-385754735813211681</id><published>2007-10-05T15:16:00.000-05:00</published><updated>2007-10-05T18:07:10.501-05:00</updated><title type='text'>So, do you want to go into space?</title><content type='html'>Science fiction is slowly merging with reality.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Surfing on the web I read that Lord British (Richard Garriot, the creator of the Ultima series) is planning to travel to the ISS (International Space Station).&lt;br /&gt;&lt;br /&gt;You can travel too .... if you can afford it.&lt;br /&gt;&lt;br /&gt;More details for those interested can be found in the Space Adventures (Private Space Exploration company) website:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.spaceadventures.com/"&gt;http://www.spaceadventures.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;For about $100 million you can join the Lunar Mission.&lt;/p&gt;&lt;p&gt;For $30 to 40 million, yo can join the crew in the ISS (International Space Station)&lt;/p&gt;&lt;p&gt;And suborbital spaceflights for only $102.000.&lt;/p&gt;&lt;p&gt;The Lord British news link:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=15683"&gt;http://www.gamasutra.com/php-bin/news_index.php?story=15683&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-385754735813211681?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/385754735813211681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=385754735813211681&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/385754735813211681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/385754735813211681'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2007/10/so-do-you-want-to-go-into-space.html' title='So, do you want to go into space?'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-6950439828289013698</id><published>2007-09-24T17:37:00.000-05:00</published><updated>2007-09-24T18:02:52.836-05:00</updated><title type='text'>gcc Preprocessor directives</title><content type='html'>Preprocessor directives will allow you to determine at compiling time which pieces of code will be processed from your source code (I suppose there must be other usages, so please reply if you know other).&lt;br /&gt;&lt;br /&gt;One known example are the debug variables or messages. When you finish your job you can forget to delete all debugging messages. It won't be good if the customer clicks on a button and suddenly gets a "Oh Shit!!" as a message.&lt;br /&gt;&lt;br /&gt;Well, you can avoid that with preprocessor directives. This is an example (I had to simulate the signal from an ADC). ADC was not available all the time, so I read from a plain text file the same way ADC data was gathered:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;#ifdef _USEFILESRC_&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;double SignalSource::read(){&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;        //Read   from a text file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;#else&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;double SignalSource::read(){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;&lt;br /&gt;      //Read from ADC&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 204, 255);"&gt;-----------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That means: if _USERFILESRC_ has been defined when compiling then use the first function, otherwise, use the second function.&lt;br /&gt;&lt;br /&gt;Next, the gcc command will look like this when compiling the application to read from the plain file:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;gcc -Wall -D &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;_USEFILESRC_ signalsource.cpp -o signalsource.o&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;And, when reading from ADC (Analog to digital conversor):&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;gcc -Wall&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; signalsource.cpp -o signalsource.o&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Another use for this technique is when writing code for different platforms, you can for example define register and interrupt variables and porting when compiling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-6950439828289013698?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/6950439828289013698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=6950439828289013698&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6950439828289013698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/6950439828289013698'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2007/09/gcc-preprocessor-directives.html' title='gcc Preprocessor directives'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9711045.post-4773693608826736595</id><published>2007-09-23T13:44:00.000-05:00</published><updated>2008-12-10T20:41:53.019-05:00</updated><title type='text'>Looking for a good Linux mp3 player?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XriYlJDFQCg/Rva3Pyb5pDI/AAAAAAAAAAM/JDVCsaANfyE/s1600-h/foto.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113475908790494258" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_XriYlJDFQCg/Rva3Pyb5pDI/AAAAAAAAAAM/JDVCsaANfyE/s320/foto.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When I installed Ubuntu, I found that the mp3 coded was not available due to licensing issues.&lt;br /&gt;&lt;br /&gt;I installed the codec, and some music applications under Linux, but I was really missing the simplicity and power of Winamp.&lt;br /&gt;&lt;br /&gt;Seaching on the Internet I found a great application which runs under linux and is similar to Winamp. So similar that you can even apply the winamp skins.&lt;br /&gt;&lt;br /&gt;Its name: &lt;span style="FONT-WEIGHT: bold"&gt;AUDACIOUS&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;This is the application link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://audacious-media-player.org/"&gt;http://audacious-media-player.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Installing was pretty straightforward:&lt;br /&gt;&lt;br /&gt;Add the Audacious repository by editing the /etc/apt/sources.list and adding the following lines:&lt;br /&gt;&lt;pre&gt;deb &lt;a class="external free" title="http://static.audacious-media-player.org/ubuntu" href="http://static.audacious-media-player.org/ubuntu" rel="nofollow"&gt;http://static.audacious-media-player.org/ubuntu&lt;/a&gt; edgy main&lt;br /&gt;deb-src &lt;a class="external free" title="http://static.audacious-media-player.org/ubuntu" href="http://static.audacious-media-player.org/ubuntu" rel="nofollow"&gt;http://static.audacious-media-player.org/ubuntu&lt;/a&gt; edgy main&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;Then updating the repository:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;apt-get update.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;Finally:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;apt-get install audacious.&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family:times new roman;"&gt;That's all. &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note: For&lt;span style="font-family:times new roman;"&gt; Ubuntu, I downladed the debian package (For some reason the ubuntu package didn't work)&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9711045-4773693608826736595?l=fabianmejia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabianmejia.blogspot.com/feeds/4773693608826736595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9711045&amp;postID=4773693608826736595&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4773693608826736595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9711045/posts/default/4773693608826736595'/><link rel='alternate' type='text/html' href='http://fabianmejia.blogspot.com/2007/09/looking-for-good-linux-mp3-player.html' title='Looking for a good Linux mp3 player?'/><author><name>Fabian Mejia</name><uri>http://www.blogger.com/profile/03625116654222249435</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XriYlJDFQCg/Rva3Pyb5pDI/AAAAAAAAAAM/JDVCsaANfyE/s72-c/foto.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
